diff --git a/CodeGenerator/BlockClassGenerator.cs b/CodeGenerator/BlockClassGenerator.cs index a56b222..77d4ad4 100644 --- a/CodeGenerator/BlockClassGenerator.cs +++ b/CodeGenerator/BlockClassGenerator.cs @@ -22,7 +22,7 @@ namespace CodeGenerator group = GetGroup(name) + "_BLOCK_BUILD_GROUP"; } - if (!group.Contains(".")) + if (!group.Contains('.')) group = "CommonExclusiveGroups." + group; var codeUnit = new CodeCompileUnit(); @@ -67,7 +67,7 @@ namespace CodeGenerator codeUnit.Namespaces.Add(ns); var provider = CodeDomProvider.CreateProvider("CSharp"); - var path = $@"..\..\..\TechbloxModdingAPI\Blocks\{name}.cs"; + var path = $@"..\..\..\..\TechbloxModdingAPI\Blocks\{name}.cs"; using (var sw = new StreamWriter(path)) { provider.GenerateCodeFromCompileUnit(codeUnit, sw, new CodeGeneratorOptions {BracingStyle = "C"}); diff --git a/CodeGenerator/CodeGenerator.csproj b/CodeGenerator/CodeGenerator.csproj index 035bf46..554855f 100644 --- a/CodeGenerator/CodeGenerator.csproj +++ b/CodeGenerator/CodeGenerator.csproj @@ -9,6 +9,7 @@ en-CA true 9 + Exe @@ -66,10 +67,6 @@ ..\ref\Techblox_Data\Managed\BevelEffect.dll ..\..\ref\Techblox_Data\Managed\BevelEffect.dll - - ..\ref\Techblox_Data\Managed\Blocks.HUDFeedbackBlocks.dll - ..\..\ref\Techblox_Data\Managed\Blocks.HUDFeedbackBlocks.dll - ..\ref\Techblox_Data\Managed\Boxophobic.TheVehetationEngine.Runtime.dll ..\..\ref\Techblox_Data\Managed\Boxophobic.TheVehetationEngine.Runtime.dll @@ -110,10 +107,6 @@ ..\ref\Techblox_Data\Managed\FullGame.dll ..\..\ref\Techblox_Data\Managed\FullGame.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.AudioBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.AudioBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.BlockEntityFactory.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlockEntityFactory.dll @@ -122,46 +115,18 @@ ..\ref\Techblox_Data\Managed\Gamecraft.BlockGroups.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlockGroups.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DamagingSurfaceBlock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DamagingSurfaceBlock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DestructionBlocks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DestructionBlocks.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.LogicBlock.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.LogicBlock.dll - - ..\ref\Techblox_Data\Managed\GameCraft.Blocks.ProjectileBlock.dll - ..\..\ref\Techblox_Data\Managed\GameCraft.Blocks.ProjectileBlock.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TextBlock.CompositionRoot.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TextBlock.CompositionRoot.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TimerBlock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TimerBlock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerability.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerability.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll - ..\ref\Techblox_Data\Managed\Gamecraft.ColourPalette.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.ColourPalette.dll @@ -186,10 +151,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Blueprints.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Blueprints.dll @@ -218,10 +179,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.ModeBar.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.ModeBar.dll @@ -246,10 +203,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.TimeModeClock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.TimeModeClock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Tweaks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Tweaks.dll @@ -258,18 +211,10 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.Mockup.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.InventoryTimeRunning.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.InventoryTimeRunning.dll - ..\ref\Techblox_Data\Managed\Gamecraft.JointBlocks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.JointBlocks.dll @@ -282,14 +227,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.NetStrings.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.NetStrings.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.PerformanceWarnings.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.PerformanceWarnings.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.PickupBlck.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.PickupBlck.dll - ..\ref\Techblox_Data\Managed\Gamecraft.PickupsCommon.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.PickupsCommon.dll @@ -298,10 +235,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.PopupMessage.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.PopupMessage.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Projectiles.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Projectiles.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Serialization.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Serialization.dll @@ -310,26 +243,14 @@ ..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.Mockup.dll - ..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.Decals.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.Decals.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Wires.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Wires.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Wires.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Wires.Mockup.dll - ..\ref\Techblox_Data\Managed\GameLiftServerSDKNet45.dll ..\..\ref\Techblox_Data\Managed\GameLiftServerSDKNet45.dll @@ -362,14 +283,6 @@ ..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll ..\..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll - - ..\ref\Techblox_Data\Managed\IllusionInjector.dll - ..\..\ref\Techblox_Data\Managed\IllusionInjector.dll - - - ..\ref\Techblox_Data\Managed\IllusionPlugin.dll - ..\..\ref\Techblox_Data\Managed\IllusionPlugin.dll - ..\ref\Techblox_Data\Managed\JWT.dll ..\..\ref\Techblox_Data\Managed\JWT.dll @@ -390,18 +303,14 @@ ..\ref\Techblox_Data\Managed\Monobehaviours.dll ..\..\ref\Techblox_Data\Managed\Monobehaviours.dll + + ..\ref\Techblox_Data\Managed\mscorlib.dll + ..\..\ref\Techblox_Data\Managed\mscorlib.dll + ..\ref\Techblox_Data\Managed\MultiplayerNetworking.dll ..\..\ref\Techblox_Data\Managed\MultiplayerNetworking.dll - - ..\ref\Techblox_Data\Managed\MultiplayerTest.dll - ..\..\ref\Techblox_Data\Managed\MultiplayerTest.dll - - - ..\ref\Techblox_Data\Managed\netstandard.dll - ..\..\ref\Techblox_Data\Managed\netstandard.dll - ..\ref\Techblox_Data\Managed\Newtonsoft.Json.dll ..\..\ref\Techblox_Data\Managed\Newtonsoft.Json.dll @@ -482,10 +391,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.FrontEnd.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.FrontEnd.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.GUI.BlockLabel.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.BlockLabel.dll - ..\ref\Techblox_Data\Managed\RobocraftX.GUI.DebugDisplay.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.DebugDisplay.dll @@ -534,10 +439,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.MainGame.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainGame.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.MainGameMock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.MainGameMock.dll - ..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.Audio.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.Audio.dll @@ -546,18 +447,10 @@ ..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.MockCharacter.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.MockCharacter.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.GUI.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.GUI.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll @@ -574,10 +467,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.ObjectIdBlocks.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.ObjectIdBlocks.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Party.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Party.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Physics.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Physics.dll @@ -590,10 +479,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.Player.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Player.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Rendering.Mock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Rendering.Mock.dll - ..\ref\Techblox_Data\Managed\RobocraftX.SaveAndLoad.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.SaveAndLoad.dll @@ -610,22 +495,10 @@ ..\ref\Techblox_Data\Managed\RobocraftX.SignalHandling.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.SignalHandling.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.SpawnPoints.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.SpawnPoints.dll - ..\ref\Techblox_Data\Managed\RobocraftX.StateSync.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.StateSync.dll - - ..\ref\Techblox_Data\Managed\RobocraftX_TextBlock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX_TextBlock.dll - - - ..\ref\Techblox_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll - ..\..\ref\Techblox_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll - ..\ref\Techblox_Data\Managed\Serilog.dll ..\..\ref\Techblox_Data\Managed\Serilog.dll @@ -794,10 +667,6 @@ ..\ref\Techblox_Data\Managed\Techblox.EngineBlock.dll ..\..\ref\Techblox_Data\Managed\Techblox.EngineBlock.dll - - ..\ref\Techblox_Data\Managed\Techblox.Environment.dll - ..\..\ref\Techblox_Data\Managed\Techblox.Environment.dll - ..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.BuildingEnvironment.dll ..\..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.BuildingEnvironment.dll @@ -862,14 +731,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.MockUps.dll - - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll @@ -882,10 +743,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.MockUps.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.Hotbar.Landscapes.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Hotbar.Landscapes.dll @@ -918,22 +775,10 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.dll - - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.DynamicListBuild.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.DynamicListBuild.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Notifications.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Notifications.MockUps.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll @@ -942,10 +787,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll @@ -958,10 +799,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll - ..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll ..\..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll @@ -1570,10 +1407,6 @@ ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll - - ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll - ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll - ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll diff --git a/CodeGenerator/Program.cs b/CodeGenerator/Program.cs index f403aeb..9f1e3ae 100644 --- a/CodeGenerator/Program.cs +++ b/CodeGenerator/Program.cs @@ -3,6 +3,7 @@ using HarmonyLib; using RobocraftX.Blocks; using RobocraftX.PilotSeat; using Techblox.EngineBlock; +using Techblox.ObjectIDBlockServer; using Techblox.WheelRigBlock; namespace CodeGenerator @@ -38,6 +39,7 @@ namespace CodeGenerator {"pistonVelocity", "MaximumForce"} }, typeof(PistonReadOnlyStruct)); bcg.Generate("Motor", null, null, typeof(MotorReadOnlyStruct)); + bcg.Generate("ObjectID", "ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP", null, typeof(ObjectIDTweakableComponent)); } } } \ No newline at end of file diff --git a/TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs b/TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs index 92e2236..a368e6f 100644 --- a/TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs +++ b/TechbloxModdingAPI/Blocks/Engines/BlockEngine.cs @@ -18,6 +18,7 @@ using Svelto.ECS.EntityStructs; using Svelto.ECS.Experimental; using Svelto.ECS.Hybrid; using Techblox.BuildingDrone; +using Techblox.ObjectIDBlockServer; using Unity.Mathematics; using TechbloxModdingAPI.Engines; @@ -171,7 +172,7 @@ namespace TechbloxModdingAPI.Blocks.Engines public SimBody[] GetSimBodiesFromID(byte id) { var ret = new FasterList(4); - var (oids, tags, count) = entitiesDB.QueryEntities(CommonExclusiveGroups.OBJID_BLOCK_GROUP); + var (oids, tags, count) = entitiesDB.QueryEntities(ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP); EGIDMapper? connections = null; for (int i = 0; i < count; i++) { @@ -272,11 +273,20 @@ namespace TechbloxModdingAPI.Blocks.Engines return set.ToArray(); } -#if DEBUG - public EntitiesDB GetEntitiesDB() + public ObjectID[] GetObjectIDsFromID(byte id) { - return entitiesDB; + if (!entitiesDB.HasAny(ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP)) + return Array.Empty(); + + var ret = new FasterList(4); + var (oids, tags, count) = entitiesDB.QueryEntities(ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP); + for (var index = 0; index < count; index++) + { + if (oids[index].objectIDToTrigger == id) + ret.Add(new ObjectID(tags[index].ID)); + } + + return ret.ToArray(); } -#endif } } \ No newline at end of file diff --git a/TechbloxModdingAPI/Blocks/ObjectID.cs b/TechbloxModdingAPI/Blocks/ObjectID.cs new file mode 100644 index 0000000..0496882 --- /dev/null +++ b/TechbloxModdingAPI/Blocks/ObjectID.cs @@ -0,0 +1,50 @@ +using System; +using Techblox.ObjectIDBlockServer; + +namespace TechbloxModdingAPI.Blocks +{ + using Svelto.ECS; + + + public class ObjectID : SignalingBlock + { + + /// + /// Constructs a(n) ObjectID object representing an existing block. + /// + public ObjectID(EGID egid) : + base(egid) + { + } + + /// + /// Constructs a(n) ObjectID object representing an existing block. + /// + public ObjectID(uint id) : + base(new EGID(id, ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP)) + { + } + + /// + /// Gets or sets the ObjectID's Identifier property. Tweakable stat. + /// + public char Identifier + { + get => (char) (BlockEngine.GetBlockInfo(this).objectIDToTrigger + 'A'); + set + { + if(value is < 'A' or > 'Z') + throw new ArgumentOutOfRangeException(nameof(value), "ObjectIdentifier must be set to a letter between A and Z."); + BlockEngine.GetBlockInfo(this).objectIDToTrigger = (byte) (value - 'A'); + Label = value + ""; //The label isn't updated automatically + } + } + + /// + /// Finds the identifier blocks with the given ID. + /// + /// The ID to look for + /// An array that may be empty + public static ObjectID[] GetByID(char id) => BlockEngine.GetObjectIDsFromID((byte) (id - 'A')); + } +} diff --git a/TechbloxModdingAPI/Blocks/WheelRig.cs b/TechbloxModdingAPI/Blocks/WheelRig.cs index 28ba739..217de8b 100644 --- a/TechbloxModdingAPI/Blocks/WheelRig.cs +++ b/TechbloxModdingAPI/Blocks/WheelRig.cs @@ -40,6 +40,21 @@ namespace TechbloxModdingAPI.Blocks } } + /// + /// Gets or sets the WheelRig's FlipDirection property. Tweakable stat. + /// + public bool FlipDirection + { + get + { + return BlockEngine.GetBlockInfo(this).flipDirection; + } + set + { + BlockEngine.GetBlockInfo(this).flipDirection = value; + } + } + /// /// Gets or sets the WheelRig's MaxVelocity property. May not be saved. /// @@ -71,6 +86,21 @@ namespace TechbloxModdingAPI.Blocks } } + /// + /// Gets or sets the WheelRig's FlipSteering property. Tweakable stat. + /// + public bool FlipSteering + { + get + { + return BlockEngine.GetBlockInfo(this).flipSteering; + } + set + { + BlockEngine.GetBlockInfo(this).flipSteering = value; + } + } + /// /// Gets or sets the WheelRig's VelocityForMinAngle property. May not be saved. /// diff --git a/TechbloxModdingAPI/Players/PlayerEngine.cs b/TechbloxModdingAPI/Players/PlayerEngine.cs index 7e53270..24f019c 100644 --- a/TechbloxModdingAPI/Players/PlayerEngine.cs +++ b/TechbloxModdingAPI/Players/PlayerEngine.cs @@ -8,7 +8,6 @@ using RobocraftX.Common.Input; using RobocraftX.CR.MachineEditing.BoxSelect; using RobocraftX.Physics; using RobocraftX.Blocks.Ghost; -using Gamecraft.GUI.HUDFeedbackBlocks; using RobocraftX.Common; using RobocraftX.Multiplayer; using RobocraftX.SimulationModeState; @@ -113,14 +112,6 @@ namespace TechbloxModdingAPI.Players return true; } - public bool GetGameOverScreen(uint playerId) - { - if (entitiesDB == null) return false; - ref HudActivatedBlocksEntityStruct habes = ref entitiesDB.QueryEntity(HUDFeedbackBlocksGUIExclusiveGroups.GameOverHudEgid); - NativeDynamicArrayCast nativeDynamicArrayCast = new NativeDynamicArrayCast(habes.activatedBlocksOrdered); - return nativeDynamicArrayCast.count > 0; - } - public bool IsDead(uint playerId) { if (entitiesDB == null) return true; diff --git a/TechbloxModdingAPI/TechbloxModdingAPI.csproj b/TechbloxModdingAPI/TechbloxModdingAPI.csproj index 619dcda..4cde902 100644 --- a/TechbloxModdingAPI/TechbloxModdingAPI.csproj +++ b/TechbloxModdingAPI/TechbloxModdingAPI.csproj @@ -63,10 +63,6 @@ ..\ref\Techblox_Data\Managed\BevelEffect.dll ..\..\ref\Techblox_Data\Managed\BevelEffect.dll - - ..\ref\Techblox_Data\Managed\Blocks.HUDFeedbackBlocks.dll - ..\..\ref\Techblox_Data\Managed\Blocks.HUDFeedbackBlocks.dll - ..\ref\Techblox_Data\Managed\Boxophobic.TheVehetationEngine.Runtime.dll ..\..\ref\Techblox_Data\Managed\Boxophobic.TheVehetationEngine.Runtime.dll @@ -107,10 +103,6 @@ ..\ref\Techblox_Data\Managed\FullGame.dll ..\..\ref\Techblox_Data\Managed\FullGame.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.AudioBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.AudioBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.BlockEntityFactory.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlockEntityFactory.dll @@ -119,46 +111,18 @@ ..\ref\Techblox_Data\Managed\Gamecraft.BlockGroups.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlockGroups.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DamagingSurfaceBlock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DamagingSurfaceBlock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DestructionBlocks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.DestructionBlocks.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.GenericPhysicsBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.LogicBlock.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.LogicBlock.dll - - ..\ref\Techblox_Data\Managed\GameCraft.Blocks.ProjectileBlock.dll - ..\..\ref\Techblox_Data\Managed\GameCraft.Blocks.ProjectileBlock.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TextBlock.CompositionRoot.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TextBlock.CompositionRoot.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TimerBlock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Blocks.TimerBlock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.BlocksEntityDescriptors.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerability.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerability.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.CharacterVulnerabilityGui.dll - ..\ref\Techblox_Data\Managed\Gamecraft.ColourPalette.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.ColourPalette.dll @@ -183,10 +147,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventory.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.BlueprintInventoryMock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Blueprints.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Blueprints.dll @@ -215,10 +175,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Hotbar.Colours.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.HUDFeedbackBlocks.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.ModeBar.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.ModeBar.dll @@ -243,10 +199,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.TabsBar.Common.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.TimeModeClock.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.TimeModeClock.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Tweaks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Tweaks.dll @@ -255,18 +207,10 @@ ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.Wires.Mockup.dll - ..\ref\Techblox_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.GUI.WorldSpaceGuis.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.InventoryTimeRunning.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.InventoryTimeRunning.dll - ..\ref\Techblox_Data\Managed\Gamecraft.JointBlocks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.JointBlocks.dll @@ -279,14 +223,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.NetStrings.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.NetStrings.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.PerformanceWarnings.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.PerformanceWarnings.dll - - - ..\ref\Techblox_Data\Managed\Gamecraft.PickupBlck.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.PickupBlck.dll - ..\ref\Techblox_Data\Managed\Gamecraft.PickupsCommon.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.PickupsCommon.dll @@ -295,10 +231,6 @@ ..\ref\Techblox_Data\Managed\Gamecraft.PopupMessage.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.PopupMessage.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Projectiles.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Projectiles.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Serialization.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Serialization.dll @@ -307,26 +239,14 @@ ..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Tweaks.Mockup.dll - ..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.Decals.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.Decals.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.VisualEffects.dll - ..\ref\Techblox_Data\Managed\Gamecraft.Wires.dll ..\..\ref\Techblox_Data\Managed\Gamecraft.Wires.dll - - ..\ref\Techblox_Data\Managed\Gamecraft.Wires.Mockup.dll - ..\..\ref\Techblox_Data\Managed\Gamecraft.Wires.Mockup.dll - ..\ref\Techblox_Data\Managed\GameLiftServerSDKNet45.dll ..\..\ref\Techblox_Data\Managed\GameLiftServerSDKNet45.dll @@ -359,14 +279,6 @@ ..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll ..\..\ref\Techblox_Data\Managed\Havok.Physics.Hybrid.dll - - ..\ref\Techblox_Data\Managed\IllusionInjector.dll - ..\..\ref\Techblox_Data\Managed\IllusionInjector.dll - - - ..\ref\Techblox_Data\Managed\IllusionPlugin.dll - ..\..\ref\Techblox_Data\Managed\IllusionPlugin.dll - ..\ref\Techblox_Data\Managed\JWT.dll ..\..\ref\Techblox_Data\Managed\JWT.dll @@ -395,10 +307,6 @@ ..\ref\Techblox_Data\Managed\MultiplayerNetworking.dll ..\..\ref\Techblox_Data\Managed\MultiplayerNetworking.dll - - ..\ref\Techblox_Data\Managed\MultiplayerTest.dll - ..\..\ref\Techblox_Data\Managed\MultiplayerTest.dll - ..\ref\Techblox_Data\Managed\Newtonsoft.Json.dll ..\..\ref\Techblox_Data\Managed\Newtonsoft.Json.dll @@ -479,10 +387,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.FrontEnd.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.FrontEnd.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.GUI.BlockLabel.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.BlockLabel.dll - ..\ref\Techblox_Data\Managed\RobocraftX.GUI.DebugDisplay.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.GUI.DebugDisplay.dll @@ -531,10 +435,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.MainGame.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainGame.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.MainGameMock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.MainGameMock.dll - ..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.Audio.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.Audio.dll @@ -543,18 +443,10 @@ ..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.MainSimulation.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.MockCharacter.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.MockCharacter.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.GUI.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.GUI.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Multiplayer.NetworkEntityStream.dll @@ -571,10 +463,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.ObjectIdBlocks.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.ObjectIdBlocks.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Party.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Party.dll - ..\ref\Techblox_Data\Managed\RobocraftX.Physics.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Physics.dll @@ -587,10 +475,6 @@ ..\ref\Techblox_Data\Managed\RobocraftX.Player.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.Player.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.Rendering.Mock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.Rendering.Mock.dll - ..\ref\Techblox_Data\Managed\RobocraftX.SaveAndLoad.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.SaveAndLoad.dll @@ -607,22 +491,10 @@ ..\ref\Techblox_Data\Managed\RobocraftX.SignalHandling.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.SignalHandling.dll - - ..\ref\Techblox_Data\Managed\RobocraftX.SpawnPoints.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX.SpawnPoints.dll - ..\ref\Techblox_Data\Managed\RobocraftX.StateSync.dll ..\..\ref\Techblox_Data\Managed\RobocraftX.StateSync.dll - - ..\ref\Techblox_Data\Managed\RobocraftX_TextBlock.dll - ..\..\ref\Techblox_Data\Managed\RobocraftX_TextBlock.dll - - - ..\ref\Techblox_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll - ..\..\ref\Techblox_Data\Managed\RobocratX.SimulationMockCompositionRoot.dll - ..\ref\Techblox_Data\Managed\Serilog.dll ..\..\ref\Techblox_Data\Managed\Serilog.dll @@ -791,10 +663,6 @@ ..\ref\Techblox_Data\Managed\Techblox.EngineBlock.dll ..\..\ref\Techblox_Data\Managed\Techblox.EngineBlock.dll - - ..\ref\Techblox_Data\Managed\Techblox.Environment.dll - ..\..\ref\Techblox_Data\Managed\Techblox.Environment.dll - ..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.BuildingEnvironment.dll ..\..\ref\Techblox_Data\Managed\Techblox.EnvironmentBlocks.BuildingEnvironment.dll @@ -859,14 +727,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.BuildRules.MockUps.dll - - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Commands.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Controls.dll @@ -879,10 +739,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.GamePortal.MockUps.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.Hotbar.Landscapes.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Hotbar.Landscapes.dll @@ -915,22 +771,10 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.MainGame.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.dll - - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.DynamicListBuild.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Mocks.DynamicListBuild.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.MyGamesScreen.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.Notifications.MockUps.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Notifications.MockUps.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.PauseMenuCommands.dll @@ -939,10 +783,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.Progression.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.ScreenCanvas.dll - ..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.TabsBar.Landscapes.dll @@ -955,10 +795,6 @@ ..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll ..\..\ref\Techblox_Data\Managed\Techblox.GUI.UsernameDisplay.dll - - ..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll - ..\..\ref\Techblox_Data\Managed\Techblox.GUI.WorldCanvas.dll - ..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll ..\..\ref\Techblox_Data\Managed\Techblox.InputCapture.dll @@ -1567,10 +1403,6 @@ ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll - - ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll - ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreModule.dll - ..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll ..\..\ref\Techblox_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll diff --git a/TechbloxModdingAPI/Tests/TechbloxModdingAPIPluginTest.cs b/TechbloxModdingAPI/Tests/TechbloxModdingAPIPluginTest.cs index 4307f16..7564816 100644 --- a/TechbloxModdingAPI/Tests/TechbloxModdingAPIPluginTest.cs +++ b/TechbloxModdingAPI/Tests/TechbloxModdingAPIPluginTest.cs @@ -261,7 +261,7 @@ namespace TechbloxModdingAPI.Tests /*((FasterList)AccessTools.Property(typeof(GuiInputMap), "GuiInputsButtonDown").GetValue(null)) .Add(new GuiInputMap.GuiInputMapElement(RewiredConsts.Action.ToggleCommandLine, GuiIn))*/ - Game.Enter += (sender, e) => + /*Game.Enter += (sender, e) => { ushort lastKey = ushort.MaxValue; foreach (var kv in FullGameFields._dataDb.GetValues() @@ -299,7 +299,7 @@ namespace TechbloxModdingAPI.Tests return result; }) .Aggregate((a, b) => a + "\n" + b)); - }; + };*/ CommandBuilder.Builder("takeScreenshot", "Enables the screenshot taker") .Action(() =>