public static void Main() { // SozCore.IngressPoint.AddRequiredTechComponent(typeof(TargetManager)); // .WriteLine("Assume added TargetManager as requried component"); // WeaponAimMod.src.WrappedDataHolder.unitGravity = Physics.gravity; // WeaponAimMod.src.WrappedDataHolder.gravityMagnitude = Physics.gravity.magnitude; // WeaponAimMod.src.WrappedDataHolder.unitGravity.Normalize(); HarmonyInstance.Create("flsoz.ttmm.weaponaim.mod").PatchAll(Assembly.GetExecutingAssembly()); // mod Config Config = new ModConfig(); Config.BindConfig <WeaponAimSettings>(null, "PlayerLead"); // Using BindConfig will set UseRef as true, changing some methods to work with the RefList. Config.BindConfig <WeaponAimSettings>(null, "EnemyLead"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. Config.BindConfig <WeaponAimSettings>(null, "SmartMissile"); // Using BindConfig will set UseRef as true, changing some methods to work with the RefList. Config.BindConfig <WeaponAimSettings>(null, "PlayerMissileLead"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. Config.BindConfig <WeaponAimSettings>(null, "EnemyMissileLead"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. Config.BindConfig <WeaponAimSettings>(null, "BallisticMissile"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. // Config.BindConfig<WeaponAimSettings>(null, "AutoSetFuse"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. Config.BindConfig <WeaponAimSettings>(null, "OctantAim"); // If 'Setting2' was loaded from the config.json, it will apply the variable to the field. // UI PlayerLead = new OptionToggle("Player leading", ModName, WeaponAimSettings.PlayerLead); PlayerLead.onValueSaved.AddListener(() => { WeaponAimSettings.PlayerLead = PlayerLead.SavedValue; Config.WriteConfigJsonFile(); }); EnemyLead = new OptionToggle("Enemy leading", ModName, WeaponAimSettings.EnemyLead); EnemyLead.onValueSaved.AddListener(() => { WeaponAimSettings.EnemyLead = EnemyLead.SavedValue; Config.WriteConfigJsonFile(); }); EnemyMissileLead = new OptionToggle("Enemy-fired missile leading", ModName, WeaponAimSettings.EnemyMissileLead); EnemyMissileLead.onValueSaved.AddListener(() => { WeaponAimSettings.EnemyMissileLead = EnemyMissileLead.SavedValue; Config.WriteConfigJsonFile(); }); PlayerMissileLead = new OptionToggle("Player-fired missile leading", ModName, WeaponAimSettings.PlayerMissileLead); PlayerMissileLead.onValueSaved.AddListener(() => { WeaponAimSettings.PlayerMissileLead = PlayerMissileLead.SavedValue; Config.WriteConfigJsonFile(); }); SmartMissile = new OptionToggle("Smart missiles", ModName, WeaponAimSettings.SmartMissile); SmartMissile.onValueSaved.AddListener(() => { WeaponAimSettings.SmartMissile = SmartMissile.SavedValue; Config.WriteConfigJsonFile(); }); BallisticMissile = new OptionToggle("Ballistic missiles", ModName, WeaponAimSettings.BallisticMissile); BallisticMissile.onValueSaved.AddListener(() => { WeaponAimSettings.BallisticMissile = BallisticMissile.SavedValue; Config.WriteConfigJsonFile(); }); // AutoSetFuse = new OptionToggle("All weapons timed fuse", ModName, WeaponAimSettings.AutoSetFuse); // AutoSetFuse.onValueSaved.AddListener(() => { WeaponAimSettings.AutoSetFuse = AutoSetFuse.SavedValue; Config.WriteConfigJsonFile(); }); OctantAim = new OptionToggle("Independent Targeting", ModName, WeaponAimSettings.OctantAim); OctantAim.onValueSaved.AddListener(() => { WeaponAimSettings.OctantAim = OctantAim.SavedValue; Config.WriteConfigJsonFile(); }); }
public static void Run() { config = new ModConfig(); config.BindConfig <Class1>(null, "FanJetMultiplier"); config.BindConfig <Class1>(null, "FanJetVelocityRestraint"); config.BindConfig <Class1>(null, "BoosterJetMultiplier"); config.BindConfig <Class1>(null, "ModuleWingMultiplier"); config.BindConfig <Class1>(null, "WorldDrag"); config.BindConfig <Class1>(null, "TechDrag"); config.UpdateConfig += GUIConfig.ResetMultipliers; HarmonyInstance mod = HarmonyInstance.Create("aceba1.ttmm.misc"); mod.PatchAll(Assembly.GetExecutingAssembly()); new GameObject().AddComponent <GUIConfig>(); GUIConfig.ResetMultipliers(); }
public static void Load() { config = new ModConfig(); foreach (FieldInfo f in typeof(MoreOptionsMod).GetFields(BindingFlags.Static | BindingFlags.NonPublic).Where(f => f.Name.EndsWith("Bool"))) { config.BindConfig(null, f); } var harmony = new Harmony("exund.moreoptions"); harmony.PatchAll(Assembly.GetExecutingAssembly()); var modName = "More Options"; //doProcessFire = new OptionToggle("Process Fire", modName, doProcessFireBool); var displayMuzzleFlashes = new OptionToggle("Muzzle Flashes", modName, displayMuzzleFlashesBool); var displayBulletsCasing = new OptionToggle("Bullets Casing", modName, displayBulletsCasingBool); var displaySmokeTrails = new OptionToggle("Smoke Trails", modName, displaySmokeTrailsBool); var displayHoverEffects = new OptionToggle("Hover Effects", modName, displayHoverEffectsBool); var displayRemoteChargersEffects = new OptionToggle("Remote Chargers Effects", modName, displayRemoteChargersEffectsBool); var displayHolderBeams = new OptionToggle("Holder Beams", modName, displayHolderBeamsBool); var displayThrustersEffects = new OptionToggle("Thrusters Effects", modName, displayThrustersEffectsBool); var displayMissileSmoke = new OptionToggle("Missile Smoke", modName, displayMissileSmokeBool); var displayProjectileExplosions = new OptionToggle("Projectile Explosions", modName, displayProjectileExplosionsBool); var displayBlockExplosions = new OptionToggle("Block Explosions", modName, displayBlockExplosionsBool); var displayAntennaGlow = new OptionToggle("Antenna Glow", modName, displayAntennaGlowBool); var antigravMatSwap = new OptionToggle("Antigrav color pulse", modName, antigravMatSwapBool); var displayBubbles = new OptionToggle("Bubbles (shield, healing)", modName, displayBubblesBool); /*doProcessFire.onValueSaved.AddListener(() => * { * doProcessFireBool = doProcessFire.SavedValue; * });*/ displayMuzzleFlashes.onValueSaved.AddListener(() => { displayMuzzleFlashesBool = displayMuzzleFlashes.SavedValue; }); displayBulletsCasing.onValueSaved.AddListener(() => { displayBulletsCasingBool = displayBulletsCasing.SavedValue; }); displaySmokeTrails.onValueSaved.AddListener(() => { displaySmokeTrailsBool = displaySmokeTrails.SavedValue; }); displayHoverEffects.onValueSaved.AddListener(() => { displayHoverEffectsBool = displayHoverEffects.SavedValue; }); displayRemoteChargersEffects.onValueSaved.AddListener(() => { displayRemoteChargersEffectsBool = displayRemoteChargersEffects.SavedValue; }); displayHolderBeams.onValueSaved.AddListener(() => { displayHolderBeamsBool = displayHolderBeams.SavedValue; }); displayThrustersEffects.onValueSaved.AddListener(() => { displayThrustersEffectsBool = displayThrustersEffects.SavedValue; }); displayMissileSmoke.onValueSaved.AddListener(() => { displayMissileSmokeBool = displayMissileSmoke.SavedValue; }); displayProjectileExplosions.onValueSaved.AddListener(() => { displayProjectileExplosionsBool = displayProjectileExplosions.SavedValue; }); displayBlockExplosions.onValueSaved.AddListener(() => { displayBlockExplosionsBool = displayBlockExplosions.SavedValue; }); displayAntennaGlow.onValueSaved.AddListener(() => { displayAntennaGlowBool = displayAntennaGlow.SavedValue; }); antigravMatSwap.onValueSaved.AddListener(() => { antigravMatSwapBool = antigravMatSwap.SavedValue; }); displayBubbles.onValueSaved.AddListener(() => { displayBubblesBool = displayBubbles.SavedValue; }); NativeOptionsMod.onOptionsSaved.AddListener(() => { config.WriteConfigJsonFile(); }); }
public static void Main() { //Where the fun begins //Initiate the madness HarmonyInstance harmonyInstance = HarmonyInstance.Create("Legionite.collidercommand.core"); harmonyInstance.PatchAll(Assembly.GetExecutingAssembly()); GUIColliderController.Initiate(); //ColliderCommander.EarlySubscribe(); //BlockScanner.GUIBlockGrabber.Initiate(); if (LookForMod("WaterMod")) { Debug.Log("COLLIDER CONTROLLER: Found Water Mod! Will compensate for missing buoyency colliders!"); isWaterModPresent = true; if (LookForMod("ScaleableTechs")) { Debug.Log("COLLIDER CONTROLLER: Found ScaleTechs! Will update post rescale update!"); isScaleTechsPresent = true; } } if (LookForMod("Control Block")) { Debug.Log("COLLIDER CONTROLLER: Found Control blocks! Will switch no-collider block fetch system to Control-Block Supported!"); isControlBlocksPresent = true; } Debug.Log("\nCOLLIDER CONTROLLER: Config Loading"); ModConfig thisModConfig = new ModConfig(); Debug.Log("\nCOLLIDER CONTROLLER: Config Loaded."); thisModConfig.BindConfig <KickStart>(null, "keyInt"); hotKey = (KeyCode)keyInt; //thisModConfig.BindConfig<KickStart>(null, "colliderGUIActive"); thisModConfig.BindConfig <KickStart>(null, "KeepBFFaceBlocks"); thisModConfig.BindConfig <KickStart>(null, "KeepGCArmorPlates"); thisModConfig.BindConfig <KickStart>(null, "KeepHESlopes"); thisModConfig.BindConfig <KickStart>(null, "KeepGSOArmorPlates"); thisModConfig.BindConfig <KickStart>(null, "enableBlockUpdate"); thisModConfig.BindConfig <KickStart>(null, "ActiveColliders"); thisModConfig.BindConfig <KickStart>(null, "AutoToggleOnEnemy"); thisModConfig.BindConfig <KickStart>(null, "AutoToggleOnAlly"); thisModConfig.BindConfig <KickStart>(null, "noColliderModeMouse"); _thisModConfig = thisModConfig; //Nativeoptions var ColliderProperties = ModName + " - Collider Menu Settings"; GUIMenuHotKey = new OptionKey("GUI Menu button", ColliderProperties, hotKey); GUIMenuHotKey.onValueSaved.AddListener(() => { keyInt = (int)(hotKey = GUIMenuHotKey.SavedValue); thisModConfig.WriteConfigJsonFile(); }); //UIActive = new OptionToggle("Collider GUI Active", ColliderProperties, colliderGUIActive); //UIActive.onValueSaved.AddListener(() => {colliderGUIActive = UIActive.SavedValue; }); KeepBF = new OptionToggle("Keep BF Face Blocks", ColliderProperties, KeepBFFaceBlocks); KeepBF.onValueSaved.AddListener(() => { KeepBFFaceBlocks = KeepBF.SavedValue; }); KeepGC = new OptionToggle("Keep GC Shock Plates", ColliderProperties, KeepGCArmorPlates); KeepGC.onValueSaved.AddListener(() => { KeepGCArmorPlates = KeepGC.SavedValue; }); KeepHE = new OptionToggle("Keep HE Fort Slopes", ColliderProperties, KeepHESlopes); KeepHE.onValueSaved.AddListener(() => { KeepHESlopes = KeepHE.SavedValue; }); KeepGSO = new OptionToggle("Keep GSO Armour Plates and Ploughs", ColliderProperties, KeepGSOArmorPlates); KeepGSO.onValueSaved.AddListener(() => { KeepGSOArmorPlates = KeepGSO.SavedValue; }); mouseModeWithNoColliders = new OptionToggle("Allow Grab of Disabled Colliders", ColliderProperties, noColliderModeMouse); mouseModeWithNoColliders.onValueSaved.AddListener(() => { noColliderModeMouse = mouseModeWithNoColliders.SavedValue; }); autoHandleCombat = new OptionToggle("Toggle Colliders on Combat", ColliderProperties, AutoToggleOnEnemy); autoHandleCombat.onValueSaved.AddListener(() => { AutoToggleOnEnemy = autoHandleCombat.SavedValue; }); autoHandleAlly = new OptionToggle("Toggle Colliders on Allied Collision", ColliderProperties, AutoToggleOnAlly); autoHandleAlly.onValueSaved.AddListener(() => { AutoToggleOnAlly = autoHandleAlly.SavedValue; }); blockUpdate = new OptionToggle("BlockUpdate (INCREASES LAG ON HUGE)", ColliderProperties, enableBlockUpdate); blockUpdate.onValueSaved.AddListener(() => { enableBlockUpdate = blockUpdate.SavedValue; }); activeColliderGrab = new OptionRange("Non-Collider Grabber (More means more lag)", ColliderProperties, ActiveColliders, 20f, 100f, 10f); activeColliderGrab.onValueSaved.AddListener(() => { ActiveColliders = (int)activeColliderGrab.SavedValue; }); }