Beispiel #1
0
        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(); });
        }
Beispiel #2
0
        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; });
        }