Update to Techblox and new API
This commit is contained in:
parent
bfedf5d2bb
commit
bba56a1967
5 changed files with 87 additions and 72 deletions
|
@ -1,4 +1,4 @@
|
|||
using GamecraftModdingAPI.Blocks;
|
||||
using TechbloxModdingAPI.Blocks;
|
||||
|
||||
namespace GCMC
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -6,69 +6,69 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ILMerge" Version="3.0.29" />
|
||||
<PackageReference Include="ILMerge" Version="3.0.41" />
|
||||
<PackageReference Include="ini-parser" Version="2.5.2" />
|
||||
<PackageReference Include="Lib.Harmony" Version="2.0.1" />
|
||||
<PackageReference Include="Lib.Harmony" Version="2.0.4" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="BlockEntityFactory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\BlockEntityFactory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CommandLine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\CommandLine.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\CommandLine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DataLoader, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\DataLoader.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\DataLoader.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GamecraftModdingAPI">
|
||||
<HintPath>..\..\GamecraftModdingAPI\GamecraftModdingAPI\bin\Debug\net472\GamecraftModdingAPI.dll</HintPath>
|
||||
<Reference Include="Svelto.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Svelto.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="IllusionPlugin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>IllusionPlugin.dll</HintPath>
|
||||
<Reference Include="Svelto.Tasks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Svelto.Tasks.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="TechbloxModdingAPI">
|
||||
<HintPath>..\..\ref\Plugins\TechbloxModdingAPI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="IllusionPlugin">
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\IllusionPlugin.dll</HintPath>
|
||||
<!-- <Private>False</Private> Need to copy for ILMerge -->
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Newtonsoft.Json.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.Blocks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Blocks.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Blocks.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.Character, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Character.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Character.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Common.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.GUI, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.GUI.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.GUI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.Input, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.Input.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.Input.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.MachineEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.MachineEditor.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.MachineEditor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RobocraftX.StateSync, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\RobocraftX.StateSync.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Svelto.Common_3, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>D:\Games\SteamLibrary\steamapps\common\RobocraftX\Gamecraft_Data\Managed\Svelto.Common_3.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\RobocraftX.StateSync.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Svelto.ECS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Svelto.ECS.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Svelto.ECS.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Unity.Entities, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Unity.Entities.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Unity.Entities.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Unity.Mathematics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\Unity.Mathematics.dll</HintPath>
|
||||
<Reference Include="Unity.Mathematics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\Unity.Mathematics.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="uREPL, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>..\..\ref\Gamecraft_Data\Managed\uREPL.dll</HintPath>
|
||||
<HintPath>..\..\ref\TechbloxPreview_Data\Managed\uREPL.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -79,9 +79,9 @@
|
|||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
<Target Name="AfterBuild">
|
||||
<!-- the ILMergePath property points to the location of ILMerge.exe console application -->
|
||||
<!-- <Target Name="AfterBuild">
|
||||
<!- the ILMergePath property points to the location of ILMerge.exe console application ->
|
||||
<Exec Command="$(ILMergeConsolePath) /ndebug /out:bin\Debug\net472\GCMC.dll bin\$(Configuration)\net472\GCMC.dll bin\$(Configuration)\net472\INIFileParser.dll" />
|
||||
</Target>
|
||||
</Target> -->
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -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<string, BlockType> mapping = new Dictionary<string, BlockType>(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<string>(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();
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in a new issue