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 - - ..\..\GamecraftModdingAPI\GamecraftModdingAPI\bin\Debug\net472\GamecraftModdingAPI.dll + + ..\..\ref\TechbloxPreview_Data\Managed\Svelto.Common.dll - - IllusionPlugin.dll + + ..\..\ref\TechbloxPreview_Data\Managed\Svelto.Tasks.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() + + private IEnumerator OnSimulationStarted(Block lastBlock) { - GamecraftModdingAPI.Main.Init(); + SimBody body; + int C = 0; + while ((body = lastBlock.GetSimBody()) == null) + { + C++; + yield return null; + } + + Console.WriteLine($"Body position: {body.Position} ({C})"); + } + + public override void OnApplicationStart() + { + TechbloxModdingAPI.Main.Init(); CommandBuilder.Builder("importWorld", "Imports a Minecraft world.") .Action(ImportWorld).Build(); - _serializer.TraceWriter = _traceWriter; + //_serializer.TraceWriter = _traceWriter; Debug.Log("GCMC loaded"); } - public void OnApplicationQuit() - { - } - - public void OnLevelWasLoaded(int level) - { - } - - public void OnLevelWasInitialized(int level) - { - } - - public void OnUpdate() - { - } - - 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 aa7fa2e..0000000 Binary files a/GCMC/IllusionPlugin.dll and /dev/null differ