using System; using RobocraftX.Character; using RobocraftX.GUI.Hotbar; using RobocraftX.Players; using RobocraftX.Common; using RobocraftX.Common.Input; using RobocraftX.Common.Players; using Svelto.ECS; using GamecraftModdingAPI.Blocks; using GamecraftModdingAPI.Utility; using GamecraftModdingAPI.Engines; using RobocraftX.Blocks; using Techblox.FlyCam; namespace GamecraftModdingAPI.Inventory { public class HotbarEngine : IApiEngine { public string Name { get; } = "GamecraftModdingAPIHotbarGameEngine"; public EntitiesDB entitiesDB { set; private get; } public bool isRemovable => false; public bool IsInGame = false; public void Dispose() { IsInGame = false; } public void Ready() { IsInGame = true; } public bool SelectBlock(int block, uint playerID, bool cubeSelectedByPick = false) { if (!entitiesDB.TryQueryEntitiesAndIndex(playerID, Techblox.FlyCam.FlyCam.Group, out var index, out var inputs)) return false; inputs[index].CubeSelectedByPick = cubeSelectedByPick; inputs[index].SelectedDBPartID = block; // TODO: expose the rest of the input functionality return true; } public uint GetLocalPlayerID() { return LocalPlayerIDUtility.GetLocalPlayerID(entitiesDB); } } }