From 064f719f8250c746714a6541e368a96a4f19b534 Mon Sep 17 00:00:00 2001 From: "NGnius (Graham)" Date: Wed, 23 Oct 2019 21:35:06 -0400 Subject: [PATCH] Add move blocks command and improve dependencies --- .gitignore | 6 ++- IllusionPlugin.dll | Bin 0 -> 6656 bytes extracommands/ExtraCommands.csproj | 46 ++++++++++---------- extracommands/MoveBlocksCommandEngine.cs | 51 +++++++++++++++++++++++ 4 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 IllusionPlugin.dll create mode 100644 extracommands/MoveBlocksCommandEngine.cs diff --git a/.gitignore b/.gitignore index 4ce6fdd..d7d7d69 100644 --- a/.gitignore +++ b/.gitignore @@ -337,4 +337,8 @@ ASALocalRun/ .localhistory/ # BeatPulse healthcheck temp database -healthchecksdb \ No newline at end of file +healthchecksdb + +# Referenced DLLs +ref +ref/** \ No newline at end of file diff --git a/IllusionPlugin.dll b/IllusionPlugin.dll new file mode 100644 index 0000000000000000000000000000000000000000..aa7fa2e7bde11b7bad935de118a11c36e033c226 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/extracommands/ExtraCommands.csproj b/extracommands/ExtraCommands.csproj index e3d5100..1ec3ecc 100644 --- a/extracommands/ExtraCommands.csproj +++ b/extracommands/ExtraCommands.csproj @@ -1,7 +1,7 @@  - net45 + netstandard2.0 @@ -10,65 +10,69 @@ - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\CommandLine.dll + ..\ref\CommandLine.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\FullGame.dll + ..\ref\FullGame.dll - ..\..\..\IPA\IPA\bin\Debug\IPA\Data\Managed\IllusionPlugin.dll + ..\IllusionPlugin.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\RobocraftX.Character.dll + ..\ref\RobocraftX.Character.dll + + + ..\ref\RobocraftX.Common.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.dll + ..\ref\RobocraftX.Multiplayer.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll + ..\ref\RobocraftX.Multiplayer.NetworkEntityStream.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\RobocraftX.MultiplayerInput.dll + ..\ref\RobocraftX.MultiplayerInput.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\RobocraftX.StateSync.dll + ..\ref\RobocraftX.StateSync.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Svelto.Common.dll + ..\ref\Svelto.Common.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Svelto.ECS.dll + ..\ref\Svelto.ECS.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Entities.dll + ..\ref\Unity.Entities.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Entities.Hybrid.dll + ..\ref\Unity.Entities.Hybrid.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Entities.Properties.dll + ..\ref\Unity.Entities.Properties.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Entities.StaticTypeRegistry.dll + ..\ref\Unity.Entities.StaticTypeRegistry.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Mathematics.dll + ..\ref\Unity.Mathematics.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Mathematics.Extensions.dll + ..\ref\Unity.Mathematics.Extensions.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\Unity.Mathematics.Extensions.Hybrid.dll + ..\ref\Unity.Mathematics.Extensions.Hybrid.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\UnityEngine.dll + ..\ref\UnityEngine.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\UnityEngine.CoreModule.dll + ..\ref\UnityEngine.CoreModule.dll - ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Gamecraft\GamecraftPreview_Data\Managed\uREPL.dll + ..\ref\uREPL.dll + diff --git a/extracommands/MoveBlocksCommandEngine.cs b/extracommands/MoveBlocksCommandEngine.cs new file mode 100644 index 0000000..1919c03 --- /dev/null +++ b/extracommands/MoveBlocksCommandEngine.cs @@ -0,0 +1,51 @@ +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 ctxHolder, EnginesRoot enginesRoot, World physW, Action reloadGame, MultiplayerInitParameters mpParams) : base(ctxHolder, enginesRoot, physW, reloadGame, mpParams) + { + } + + public override void Ready() + { + uREPL.RuntimeCommands.Register("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(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"); + } + } +}