using System.Collections.Generic; using HarmonyLib; using RobocraftX.Blocks; using RobocraftX.PilotSeat; using Techblox.EngineBlock; using Techblox.ServoBlocksServer; using Techblox.WheelRigBlock; namespace CodeGenerator { internal class Program { public static void Main(string[] args) { var bcg = new BlockClassGenerator(); bcg.Generate("Engine", null, new Dictionary { { "engineOn", "On" } }, AccessTools.TypeByName("Techblox.EngineBlock.EngineBlockComponent"), // Simulation time properties typeof(EngineBlockTweakableComponent), typeof(EngineBlockReadonlyComponent)); bcg.Generate("DampedSpring", "DAMPEDSPRING_BLOCK_GROUP", new Dictionary { {"maxExtent", "MaxExtension"} }, typeof(TweakableJointDampingComponent), typeof(DampedSpringReadOnlyStruct)); bcg.Generate("LogicGate", "LOGIC_BLOCK_GROUP"); bcg.Generate("Servo", types: typeof(ServoReadOnlyTweakableComponent), renames: new Dictionary { {"minDeviation", "MinimumAngle"}, {"maxDeviation", "MaximumAngle"}, {"servoVelocity", "MaximumForce"} }); bcg.Generate("WheelRig", "WHEELRIG_BLOCK_BUILD_GROUP", null, typeof(WheelRigTweakableStruct), typeof(WheelRigReadOnlyStruct), typeof(WheelRigSteerableTweakableStruct), typeof(WheelRigSteerableReadOnlyStruct)); bcg.Generate("Seat", "RobocraftX.PilotSeat.SeatGroups.PILOTSEAT_BLOCK_BUILD_GROUP", null, typeof(SeatFollowCamComponent), typeof(SeatReadOnlySettingsComponent)); bcg.Generate("Piston", null, new Dictionary { {"pistonVelocity", "MaximumForce"} }, typeof(PistonReadOnlyStruct)); bcg.Generate("Motor", null, null, typeof(MotorReadOnlyStruct)); //bcg.Generate("ObjectID", "ObjectIDBlockExclusiveGroups.OBJECT_ID_BLOCK_GROUP", null, typeof(ObjectIDTweakableComponent)); } } }