|
- 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;
-
- 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)
- {
- InputEntityStruct[] inputs = entitiesDB.QueryEntities<InputEntityStruct>(InputExclusiveGroups.LocalPlayers).ToFastAccess(out uint count);
- if (count == 0) return false;
- for (int i = 0; i < count; i++)
- {
- if (inputs[i].ID.entityID == playerID) {
- inputs[i].cubeSelectedByPick = cubeSelectedByPick;
- inputs[i].selectedCube = block;
- return true;
- }
- }
- // TODO: expose the rest of the input functionality
- return false;
- }
-
- public uint GetLocalPlayerID()
- {
- return LocalPlayerIDUtility.GetLocalPlayerID(entitiesDB);
- }
- }
- }
|