using System; using RobocraftX.Common.Input; using RobocraftX.Multiplayer.Input; using GamecraftModdingAPI.Blocks; using GamecraftModdingAPI.Utility; using Harmony; namespace GamecraftModdingAPI.Inventory { public static class Hotbar { private static readonly HotbarEngine hotbarEngine = new HotbarEngine(); /// <summary> /// Switch the block in the player's hand /// </summary> /// <param name="block">The block to switch to.</param> /// <param name="playerID">The player. Omit this to use the local player.</param> public static void EquipBlock(BlockIDs block, uint playerID = uint.MaxValue) { if (playerID == uint.MaxValue) { playerID = hotbarEngine.GetLocalPlayerID(); } hotbarEngine.SelectBlock((int) block, playerID); // cubeSelectedByPick = true will crash the game // (this would be equivalent to mouse middle click pick block action) // reason: the game expects a Dictionary entry for the tweaked stats } /// <summary> /// Gets the block in the player's hand /// </summary> /// <returns>The equipped block.</returns> public static BlockIDs GetEquippedBlock() { return HotbarSlotSelectionHandlerEnginePatch.EquippedPartID; } public static void Init() { GameEngineManager.AddGameEngine(hotbarEngine); } } }