|
- 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()
- {
- uREPL.RuntimeCommands.Register<float, float, float>("MoveBlocks", MoveBlocksCommand, "Move blocks from their original position");
- }
-
- private void MoveBlocksCommand(float x, float y, float z)
- {
- uint loopCount;
- for (loopCount = 0; loopCount < CommonExclusiveGroups.CurrentBlockEntityID; loopCount++)
- {
- ref PositionEntityStruct posStruct = ref this.entitiesDB.QueryEntity<PositionEntityStruct>(loopCount, CommonExclusiveGroups.OWNED_BLOCKS_GROUP);
- 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 ID "+loopCount);
- }
- }
- }
-
- public override void Dispose()
- {
- uREPL.RuntimeCommands.Unregister("MoveBlocks");
- }
- }
- }
|