diff --git a/GamecraftModdingAPI/Blocks/CustomBlock.cs b/GamecraftModdingAPI/Blocks/CustomBlock.cs index 7a79345..af8f374 100644 --- a/GamecraftModdingAPI/Blocks/CustomBlock.cs +++ b/GamecraftModdingAPI/Blocks/CustomBlock.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using DataLoader; +using GamecraftModdingAPI.Utility; using GPUInstancer; using HarmonyLib; using RobocraftX.Blocks; @@ -246,23 +247,33 @@ namespace GamecraftModdingAPI.Blocks [HarmonyPatch] public static class MGPatch { - internal static (World, BlobAssetStore) data; + internal static (World, BlobAssetStore) data; public static void Prefix(World physicsWorld, BlobAssetStore blobStore, IDataDB dataDB) { data = (physicsWorld, blobStore); //RobocraftX.CR.MachineEditing.UpdateSelectedGhostBlockEngine.UpdateGhostBlock - var cld = (CubeListData) ((DataImplementor) dataDB).CreateDataObject("500", typeof(CubeListData), null); - cld.cubeType = CubeType.Block; - cld.cubeCategory = CubeCategory.General; - cld.inventoryCategory = InventoryCategory.Shapes; - cld.ID = 500; - cld.Path = "Assets/Prefabs/Cube.prefab"; //Index out of range exception: Asset failed to load (wrong path) - cld.SpriteName = "CTR_CommandBlock"; - cld.CubeNameKey = "strConsoleBlock"; - cld.SelectableFaces = new[] {0, 1, 2, 3, 4, 5}; - cld.GridScale = new[] {1, 1, 1}; - cld.Mass = 1; - cld.JointBreakAngle = 1; + //var cld = (CubeListData) ((DataImplementor) dataDB).CreateDataObject("500", typeof(CubeListData), null); + var abd = dataDB.GetValue((int) BlockIDs.AluminiumCube); + var cld = new CubeListData + { + cubeType = CubeType.Block, + cubeCategory = CubeCategory.General, + inventoryCategory = InventoryCategory.Shapes, + ID = 500, + Path = "Assets/Prefabs/Cube.prefab", //Index out of range exception: Asset failed to load (wrong path) + SpriteName = "CTR_CommandBlock", + CubeNameKey = "strConsoleBlock", + SelectableFaces = new[] {0, 1, 2, 3, 4, 5}, + GridScale = new[] {1, 1, 1}, + Mass = 1, + JointBreakAngle = 1, + Material = abd.Material + }; + Console.WriteLine("Aluminium block data:\n" + abd); + Console.WriteLine("Material: " + abd.Material); + dataDB.GetValues().Add("500", cld); //The registration needs to happen after the ID has been set + dataDB.GetFasterValues().Add(500, cld); + //RobocraftX.ExplosionFragments.Engines.PlayFragmentExplodeEngine.PlayRigidBodyEffect } public static MethodBase TargetMethod()