|
|
@@ -0,0 +1,55 @@ |
|
|
|
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; |
|
|
|
|
|
|
|
namespace GamecraftModdingAPI.Inventory |
|
|
|
{ |
|
|
|
public class HotbarEngine : IApiEngine |
|
|
|
{ |
|
|
|
public string Name { get; } = "GamecraftModdingAPIHotbarGameEngine"; |
|
|
|
|
|
|
|
public EntitiesDB entitiesDB { set; private get; } |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |