public void DoWindowContents(Rect canvas) { Listing_Standard list = new Listing_Standard(); list.ColumnWidth = (canvas.width - 17) / 2; // Subtract 17 for gap between columns list.Begin(canvas); // Do general settings Text.Font = GameFont.Medium; list.Label("CE_Settings_HeaderGeneral".Translate()); Text.Font = GameFont.Small; list.Gap(); list.CheckboxLabeled("CE_Settings_ShowCasings_Title".Translate(), ref showCasings, "CE_Settings_ShowCasings_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowTaunts_Title".Translate(), ref showTaunts, "CE_Settings_ShowTaunts_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AllowMeleeHunting_Title".Translate(), ref allowMeleeHunting, "CE_Settings_AllowMeleeHunting_Desc".Translate()); list.CheckboxLabeled("CE_Settings_SmokeEffects_Title".Translate(), ref smokeEffects, "CE_Settings_SmokeEffects_Desc".Translate()); list.CheckboxLabeled("CE_Settings_MergeExplosions_Title".Translate(), ref mergeExplosions, "CE_Settings_MergeExplosions_Desc".Translate()); list.CheckboxLabeled("CE_Settings_TurretsBreakShields_Title".Translate(), ref turretsBreakShields, "CE_Settings_TurretsBreakShields_Desc".Translate()); // Only Allow these settings to be changed in the main menu since doing while a // map is loaded will result in rendering issues. if (Current.Game == null) { list.CheckboxLabeled("CE_Settings_ShowBackpacks_Title".Translate(), ref showBackpacks, "CE_Settings_ShowBackpacks_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowWebbing_Title".Translate(), ref showTacticalVests, "CE_Settings_ShowWebbing_Desc".Translate()); } else { // tell the user that he can only change these settings from main menu list.GapLine(); Text.Font = GameFont.Medium; list.Label("CE_Settings_MainMenuOnly_Title".Translate(), tooltip: "CE_Settings_MainMenuOnly_Desc".Translate()); Text.Font = GameFont.Small; list.Gap(); list.Label("CE_Settings_ShowBackpacks_Title".Translate(), tooltip: "CE_Settings_ShowBackpacks_Desc".Translate()); list.Label("CE_Settings_ShowWebbing_Title".Translate(), tooltip: "CE_Settings_ShowWebbing_Desc".Translate()); list.Gap(); } #if DEBUG // Do Debug settings list.GapLine(); Text.Font = GameFont.Medium; list.Label("Debug"); list.Gap(); Text.Font = GameFont.Small; list.CheckboxLabeled("Enable debugging", ref debuggingMode, "This will enable all debugging features."); if (debuggingMode) { list.GapLine(); list.CheckboxLabeled("Verbose", ref debugVerbose, "Enable logging for internel states and many other things."); list.CheckboxLabeled("Draw intercept checks", ref debugDrawInterceptChecks, "Displays projectile checks for intercept."); list.CheckboxLabeled("Draw partial LoS checks", ref debugDrawPartialLoSChecks, "Displays line of sight checks against partial cover."); list.CheckboxLabeled("Draw debug things in range", ref debugGenClosetPawn); list.CheckboxLabeled("Draw target cover checks", ref debugDrawTargetCoverChecks, "Displays highest cover of target as it is selected."); list.CheckboxLabeled("Enable inventory validation", ref debugEnableInventoryValidation, "Inventory will refresh its cache every tick and log any discrepancies."); list.CheckboxLabeled("Display tree collision chances", ref debugShowTreeCollisionChance, "Projectiles will display chances of coliding with trees as they pass by."); list.CheckboxLabeled("Display suppression buildup", ref debugShowSuppressionBuildup, "Pawns will display buildup numbers when taking suppression."); list.CheckboxLabeled("Display light intensity affected by muzzle flash", ref debugMuzzleFlash); } else { list.Gap(); } #endif // Do ammo settings list.NewColumn(); Text.Font = GameFont.Medium; list.Label("CE_Settings_HeaderAmmo".Translate()); Text.Font = GameFont.Small; list.Gap(); list.CheckboxLabeled("CE_Settings_EnableAmmoSystem_Title".Translate(), ref enableAmmoSystem, "CE_Settings_EnableAmmoSystem_Desc".Translate()); list.GapLine(); if (enableAmmoSystem) { list.CheckboxLabeled("CE_Settings_RightClickAmmoSelect_Title".Translate(), ref rightClickAmmoSelect, "CE_Settings_RightClickAmmoSelect_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AutoReloadOnChangeAmmo_Title".Translate(), ref autoReloadOnChangeAmmo, "CE_Settings_AutoReloadOnChangeAmmo_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AutoTakeAmmo_Title".Translate(), ref autoTakeAmmo, "CE_Settings_AutoTakeAmmo_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowCaliberOnGuns_Title".Translate(), ref showCaliberOnGuns, "CE_Settings_ShowCaliberOnGuns_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ReuseNeolithicProjectiles_Title".Translate(), ref reuseNeolithicProjectiles, "CE_Settings_ReuseNeolithicProjectiles_Desc".Translate()); list.CheckboxLabeled("CE_Settings_RealisticCookOff_Title".Translate(), ref realisticCookOff, "CE_Settings_RealisticCookOff_Desc".Translate()); list.CheckboxLabeled("CE_Settings_EnableSimplifiedAmmo_Title".Translate(), ref enableSimplifiedAmmo, "CE_Settings_EnableSimplifiedAmmo_Desc".Translate());; } else { GUI.contentColor = Color.gray; list.Label("CE_Settings_RightClickAmmoSelect_Title".Translate()); list.Label("CE_Settings_AutoReloadOnChangeAmmo_Title".Translate()); list.Label("CE_Settings_AutoTakeAmmo_Title".Translate()); list.Label("CE_Settings_ShowCaliberOnGuns_Title".Translate()); list.Label("CE_Settings_ReuseNeolithicProjectiles_Title".Translate()); list.Label("CE_Settings_RealisticCookOff_Title".Translate()); list.Label("CE_Settings_EnableSimplifiedAmmo_Title".Translate()); GUI.contentColor = Color.white; } list.End(); // Update ammo if setting changes if (lastAmmoSystemStatus != enableAmmoSystem) { AmmoInjector.Inject(); AmmoInjector.AddRemoveCaliberFromGunRecipes(); //Ensure the labels are _removed_ when the ammo system gets disabled lastAmmoSystemStatus = enableAmmoSystem; TutorUtility.DoModalDialogIfNotKnown(CE_ConceptDefOf.CE_AmmoSettings); } else if (AmmoInjector.gunRecipesShowCaliber != showCaliberOnGuns) { AmmoInjector.AddRemoveCaliberFromGunRecipes(); } }
public void DoWindowContents(Rect canvas) { Listing_Standard list = new Listing_Standard(); list.ColumnWidth = (canvas.width - 17) / 2; // Subtract 17 for gap between columns list.Begin(canvas); // Do general settings Text.Font = GameFont.Medium; list.Label("CE_Settings_HeaderGeneral".Translate()); Text.Font = GameFont.Small; list.Gap(); list.CheckboxLabeled("CE_Settings_ShowCasings_Title".Translate(), ref showCasings, "CE_Settings_ShowCasings_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowTaunts_Title".Translate(), ref showTaunts, "CE_Settings_ShowTaunts_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AllowMeleeHunting_Title".Translate(), ref allowMeleeHunting, "CE_Settings_AllowMeleeHunting_Desc".Translate()); list.CheckboxLabeled("CE_Settings_SmokeEffects_Title".Translate(), ref smokeEffects, "CE_Settings_SmokeEffects_Desc".Translate()); list.CheckboxLabeled("CE_Settings_MergeExplosions_Title".Translate(), ref mergeExplosions, "CE_Settings_MergeExplosions_Desc".Translate()); #if DEBUG // Do Debug settings list.GapLine(); Text.Font = GameFont.Medium; list.Label("Debug"); Text.Font = GameFont.Small; list.Gap(); list.CheckboxLabeled("Draw intercept checks", ref debugDrawInterceptChecks, "Displays projectile checks for intercept."); list.CheckboxLabeled("Draw partial LoS checks", ref debugDrawPartialLoSChecks, "Displays line of sight checks against partial cover."); list.CheckboxLabeled("Draw target cover checks", ref debugDrawTargetCoverChecks, "Displays highest cover of target as it is selected."); list.CheckboxLabeled("Enable inventory validation", ref debugEnableInventoryValidation, "Inventory will refresh its cache every tick and log any discrepancies."); list.CheckboxLabeled("Display tree collision chances", ref debugShowTreeCollisionChance, "Projectiles will display chances of coliding with trees as they pass by."); list.CheckboxLabeled("Display suppression buildup", ref debugShowSuppressionBuildup, "Pawns will display buildup numbers when taking suppression."); #endif // Do ammo settings list.NewColumn(); Text.Font = GameFont.Medium; list.Label("CE_Settings_HeaderAmmo".Translate()); Text.Font = GameFont.Small; list.Gap(); list.CheckboxLabeled("CE_Settings_EnableAmmoSystem_Title".Translate(), ref enableAmmoSystem, "CE_Settings_EnableAmmoSystem_Desc".Translate()); list.GapLine(); if (enableAmmoSystem) { list.CheckboxLabeled("CE_Settings_RightClickAmmoSelect_Title".Translate(), ref rightClickAmmoSelect, "CE_Settings_RightClickAmmoSelect_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AutoReloadOnChangeAmmo_Title".Translate(), ref autoReloadOnChangeAmmo, "CE_Settings_AutoReloadOnChangeAmmo_Desc".Translate()); list.CheckboxLabeled("CE_Settings_AutoTakeAmmo_Title".Translate(), ref autoTakeAmmo, "CE_Settings_AutoTakeAmmo_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ShowCaliberOnGuns_Title".Translate(), ref showCaliberOnGuns, "CE_Settings_ShowCaliberOnGuns_Desc".Translate()); list.CheckboxLabeled("CE_Settings_ReuseNeolithicProjectiles_Title".Translate(), ref reuseNeolithicProjectiles, "CE_Settings_ReuseNeolithicProjectiles_Desc".Translate()); list.CheckboxLabeled("CE_Settings_RealisticCookOff_Title".Translate(), ref realisticCookOff, "CE_Settings_RealisticCookOff_Desc".Translate()); } else { GUI.contentColor = Color.gray; list.Label("CE_Settings_RightClickAmmoSelect_Title".Translate()); list.Label("CE_Settings_AutoReloadOnChangeAmmo_Title".Translate()); list.Label("CE_Settings_AutoTakeAmmo_Title".Translate()); list.Label("CE_Settings_ShowCaliberOnGuns_Title".Translate()); list.Label("CE_Settings_ReuseNeolithicProjectiles_Title".Translate()); list.Label("CE_Settings_RealisticCookOff_Title".Translate()); GUI.contentColor = Color.white; } list.End(); // Update ammo if setting changes if (lastAmmoSystemStatus != enableAmmoSystem) { AmmoInjector.Inject(); AmmoInjector.AddRemoveCaliberFromGunRecipes(); //Ensure the labels are _removed_ when the ammo system gets disabled lastAmmoSystemStatus = enableAmmoSystem; TutorUtility.DoModalDialogIfNotKnown(CE_ConceptDefOf.CE_AmmoSettings); } else if (AmmoInjector.gunRecipesShowCaliber != showCaliberOnGuns) { AmmoInjector.AddRemoveCaliberFromGunRecipes(); } }