|
- using System;
- using RobocraftX.GUI.CommandLine;
- using RobocraftX.Multiplayer;
- using RobocraftX.StateSync;
- using RobocraftX.Character;
- using RobocraftX.Common;
- using Svelto.ECS;
- using Svelto.ECS.EntityStructs;
- using Unity.Entities;
- using UnityEngine;
- using uREPL;
- using Svelto.Context;
- using RobocraftX;
-
- namespace ExtraCommands.Building
- {
- //[CustomCommand("MoveBlocks", "Move blocks from their original position")]
- class MoveBlocksCommandEngine : CustomCommandEngine
- {
- public MoveBlocksCommandEngine(UnityContext<FullGameCompositionRoot> ctxHolder, EnginesRoot enginesRoot, World physW, Action reloadGame, MultiplayerInitParameters mpParams) : base(ctxHolder, enginesRoot, physW, reloadGame, mpParams)
- {
- }
-
- public override void Ready()
- {
- CustomCommandUtility.Register<float, float, float>("MoveBlocks", MoveBlocksCommand, "Move blocks from their original position");
- }
-
- private void MoveBlocksCommand(float x, float y, float z)
- {
- uint blockCount;
- PositionEntityStruct[] posStructs = this.entitiesDB.QueryEntities<PositionEntityStruct>(CommonExclusiveGroups.OWNED_BLOCKS_GROUP, out blockCount);
- for (uint i = 0; i < blockCount; i++)
- {
- ref PositionEntityStruct posStruct = ref posStructs[i];
- if (!posStruct.Equals(null) && !posStruct.position.Equals(null))
- {
- posStruct.position.x += x;
- posStruct.position.y += y;
- posStruct.position.z += z;
- } else {
- uREPL.Log.Warn("Null position found for position "+i);
- }
- }
- }
-
- public override void Dispose()
- {
- CustomCommandUtility.Unregister("MoveBlocks");
- }
- }
- }
|