using System;
using System.Reflection;

using RobocraftX.GUI;
using RobocraftX.GUI.Hotbar;
using Svelto.ECS;

using HarmonyLib;
using GamecraftModdingAPI.Blocks;

namespace GamecraftModdingAPI.Inventory
{
    [HarmonyPatch]
    public class HotbarSlotSelectionHandlerEnginePatch
    {
		private static int selectedBlockInt = 0;

		public static BlockIDs EquippedPartID { get => (BlockIDs)selectedBlockInt; }

		private static MethodInfo PatchedMethod { get; } = AccessTools.Method(AccessTools.TypeByName("RobocraftX.GUI.Hotbar.HotbarSlotSelectionHandlerEngine"), "ActivateSlotForCube", parameters: new Type[] { typeof(uint), typeof(int), typeof(ExclusiveGroupStruct) });

		public static void Prefix(uint playerID, int selectedDBPartID, ExclusiveGroupStruct groupID)
		{
			selectedBlockInt = selectedDBPartID;
		}

		public static MethodBase TargetMethod(Harmony harmonyInstance)
        {
			return PatchedMethod;
        }
    }
}