From bba56a1967caa75f188576a41750d26e30f2974a Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Mon, 17 May 2021 23:26:19 +0200 Subject: [PATCH] Update to Techblox and new API --- GCMC/BlockType.cs | 2 +- GCMC/BlockTypes.ini | 23 ++++++++------ GCMC/GCMC.csproj | 62 ++++++++++++++++++------------------ GCMC/GCMCPlugin.cs | 68 +++++++++++++++++++++++----------------- GCMC/IllusionPlugin.dll | Bin 6656 -> 0 bytes 5 files changed, 85 insertions(+), 70 deletions(-) delete mode 100644 GCMC/IllusionPlugin.dll diff --git a/GCMC/BlockType.cs b/GCMC/BlockType.cs index 86caadf..a169804 100644 --- a/GCMC/BlockType.cs +++ b/GCMC/BlockType.cs @@ -1,4 +1,4 @@ -using GamecraftModdingAPI.Blocks; +using TechbloxModdingAPI.Blocks; namespace GCMC { diff --git a/GCMC/BlockTypes.ini b/GCMC/BlockTypes.ini index 42f672a..a877bff 100644 --- a/GCMC/BlockTypes.ini +++ b/GCMC/BlockTypes.ini @@ -1,16 +1,19 @@ [Dirt] -type=DirtCube +type=Cube +color=Orange +darkness=5 [Grass] -type=GrassCube +type=Cube +color=Green [Stone,Coal_ore,Iron_ore] -type=ConcreteCube +type=Cube color=White darkness=5 [Leaves] -type=AluminiumCube +type=Cube color=Green darkness=5 @@ -18,14 +21,16 @@ darkness=5 ignore=true [Log] -type=WoodCube +type=Cube +color=Orange +darkness=8 [Water] -type=GlassCube +type=Cube color=Blue [Sand] -type=AluminiumCube +type=Cube color=Yellow [Long_grass] @@ -35,11 +40,11 @@ type=Flower1 type=Flower2 [Gravel] -type=ConcreteCube +type=Cube color=White darkness=7 [Clay] -type=ConcreteCube +type=Cube color=White darkness=4 diff --git a/GCMC/GCMC.csproj b/GCMC/GCMC.csproj index d2317d7..d5704aa 100644 --- a/GCMC/GCMC.csproj +++ b/GCMC/GCMC.csproj @@ -6,69 +6,69 @@ - + - + - - ..\..\ref\Gamecraft_Data\Managed\BlockEntityFactory.dll - - ..\..\ref\Gamecraft_Data\Managed\CommandLine.dll + ..\..\ref\TechbloxPreview_Data\Managed\CommandLine.dll - ..\..\ref\Gamecraft_Data\Managed\DataLoader.dll + ..\..\ref\TechbloxPreview_Data\Managed\DataLoader.dll + + + ..\..\ref\TechbloxPreview_Data\Managed\Svelto.Common.dll - - ..\..\GamecraftModdingAPI\GamecraftModdingAPI\bin\Debug\net472\GamecraftModdingAPI.dll + + ..\..\ref\TechbloxPreview_Data\Managed\Svelto.Tasks.dll - - IllusionPlugin.dll + + ..\..\ref\Plugins\TechbloxModdingAPI.dll + + + ..\..\ref\TechbloxPreview_Data\Managed\IllusionPlugin.dll - ..\..\ref\Gamecraft_Data\Managed\Newtonsoft.Json.dll + ..\..\ref\TechbloxPreview_Data\Managed\Newtonsoft.Json.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Blocks.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Blocks.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Character.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Character.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Common.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Common.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.GUI.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.GUI.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.Input.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Input.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.MachineEditor.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.MachineEditor.dll - ..\..\ref\Gamecraft_Data\Managed\RobocraftX.StateSync.dll - - - D:\Games\SteamLibrary\steamapps\common\RobocraftX\Gamecraft_Data\Managed\Svelto.Common_3.dll + ..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.StateSync.dll - ..\..\ref\Gamecraft_Data\Managed\Svelto.ECS.dll + ..\..\ref\TechbloxPreview_Data\Managed\Svelto.ECS.dll - ..\..\ref\Gamecraft_Data\Managed\Unity.Entities.dll + ..\..\ref\TechbloxPreview_Data\Managed\Unity.Entities.dll - - ..\..\ref\Gamecraft_Data\Managed\Unity.Mathematics.dll + + ..\..\ref\TechbloxPreview_Data\Managed\Unity.Mathematics.dll - ..\..\ref\Gamecraft_Data\Managed\UnityEngine.CoreModule.dll + ..\..\ref\TechbloxPreview_Data\Managed\UnityEngine.CoreModule.dll - ..\..\ref\Gamecraft_Data\Managed\uREPL.dll + ..\..\ref\TechbloxPreview_Data\Managed\uREPL.dll @@ -79,9 +79,9 @@ - - + diff --git a/GCMC/GCMCPlugin.cs b/GCMC/GCMCPlugin.cs index a5e39ed..9c45834 100644 --- a/GCMC/GCMCPlugin.cs +++ b/GCMC/GCMCPlugin.cs @@ -1,23 +1,27 @@ using System; +using System.Collections; using System.Collections.Generic; using System.IO; using System.Reflection; using System.Threading.Tasks; -using GamecraftModdingAPI; -using GamecraftModdingAPI.Blocks; -using GamecraftModdingAPI.Commands; using IllusionPlugin; using Newtonsoft.Json; +using Svelto.Tasks.ExtraLean; +using TechbloxModdingAPI; +using TechbloxModdingAPI.App; +using TechbloxModdingAPI.Blocks; +using TechbloxModdingAPI.Commands; +using TechbloxModdingAPI.Tasks; using Unity.Mathematics; using UnityEngine; using uREPL; namespace GCMC { - public class GCMCPlugin : IPlugin + public class GCMCPlugin : IEnhancedPlugin { - public string Name { get; } = Assembly.GetExecutingAssembly().GetName().Name; - public string Version { get; } = Assembly.GetExecutingAssembly().GetName().Version.ToString(); + public override string Name { get; } = Assembly.GetExecutingAssembly().GetName().Name; + public override string Version { get; } = Assembly.GetExecutingAssembly().GetName().Version.ToString(); private readonly Dictionary mapping = new Dictionary(10); private JsonSerializer _serializer = JsonSerializer.Create(); @@ -76,7 +80,7 @@ namespace GCMC { Material = mcblock.ToUpper(), Type = type, - Color = new BlockColor {Color = color, Darkness = darkness} + Color = new BlockColor(color, darkness) }); } } @@ -91,6 +95,7 @@ namespace GCMC }); Log.Output("Placing blocks..."); int i; + Block lastBlock = null; for (i = 0; i < blocksArray.Length; i++) { var blocks = blocksArray[i]; @@ -102,11 +107,18 @@ namespace GCMC if (type.Type == BlockIDs.Invalid) continue; - Block.PlaceNew(type.Type, (blocks.Start + blocks.End) / 10 * 3, color: type.Color.Color, - darkness: type.Color.Darkness, scale: (blocks.End - blocks.Start + 1) * 3, - rotation: float3.zero); + var block = new Block(type.Type, (blocks.Start + blocks.End) / 10 * 3 + new float3(5000, 0, 5000)) + { + Color = type.Color, + //Scale = (blocks.End - blocks.Start + 1) * 3 + }; + Console.WriteLine("Placed block at " + block.Position); + lastBlock = block; } + if (lastBlock != null) + Game.Simulate += (sender, args) => OnSimulationStarted(lastBlock).RunOn(Scheduler.extraLeanRunner); + Log.Output(i + " blocks placed."); } catch (Exception e) @@ -115,35 +127,33 @@ namespace GCMC Log.Error(e.Message); } } - - public void OnApplicationStart() - { - GamecraftModdingAPI.Main.Init(); - CommandBuilder.Builder("importWorld", "Imports a Minecraft world.") - .Action(ImportWorld).Build(); - _serializer.TraceWriter = _traceWriter; - Debug.Log("GCMC loaded"); - } - - public void OnApplicationQuit() + private IEnumerator OnSimulationStarted(Block lastBlock) { - } + SimBody body; + int C = 0; + while ((body = lastBlock.GetSimBody()) == null) + { + C++; + yield return null; + } - public void OnLevelWasLoaded(int level) - { + Console.WriteLine($"Body position: {body.Position} ({C})"); } - public void OnLevelWasInitialized(int level) + public override void OnApplicationStart() { - } + TechbloxModdingAPI.Main.Init(); + CommandBuilder.Builder("importWorld", "Imports a Minecraft world.") + .Action(ImportWorld).Build(); + //_serializer.TraceWriter = _traceWriter; - public void OnUpdate() - { + Debug.Log("GCMC loaded"); } - public void OnFixedUpdate() + public override void OnApplicationQuit() { + TechbloxModdingAPI.Main.Shutdown(); } } } \ No newline at end of file diff --git a/GCMC/IllusionPlugin.dll b/GCMC/IllusionPlugin.dll deleted file mode 100644 index aa7fa2e7bde11b7bad935de118a11c36e033c226..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 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