예제 #1
0
        public override void ExposeData()
        {
            base.ExposeData();

            Scribe_Values.Look <string>(ref ButtonLocationString, "PathAvoid.ButtonOrder", "0", false);
            Scribe_Values.Look <bool>(ref SettingsController.AdvancedModeEnabled, "PathAvoice.AdvancedModeEnabled", false, false);

            if (SettingsController.AdvancedModeEnabled)
            {
                Dictionary <string, string> d = new Dictionary <string, string>();
                SettingsController.SetDefaults(d);
                foreach (KeyValuePair <string, string> kv in d)
                {
                    int value = int.Parse(kv.Value);
                    if (SettingsController.PathAvoidDefNameValue.ContainsKey(kv.Key))
                    {
                        int.TryParse(SettingsController.PathAvoidDefNameValue[kv.Key], out value);
                    }

                    Scribe_Values.Look <int>(ref value, "PathAvoid." + kv.Key, int.Parse(kv.Value), false);

                    if (Scribe.mode != LoadSaveMode.Saving)
                    {
                        SettingsController.SetValue(SettingsController.PathAvoidDefNameValue, kv.Key, value.ToString());
                    }
                }
            }

            if (SettingsController.PathAvoidDefNameValue == null)
            {
                SettingsController.PathAvoidDefNameValue = new Dictionary <string, string>();
            }

            if (Scribe.mode == LoadSaveMode.PostLoadInit)
            {
                ApplyLocation();
                if (!SettingsController.AdvancedModeEnabled)
                {
                    SettingsController.PathAvoidDefNameValue.Clear();
                }
                else
                {
                    SettingsController.ApplyLevelSettings(DefDatabase <PathAvoidDef> .AllDefs);
                }
            }
        }
예제 #2
0
 static void Prefix()
 {
     SettingsController.ApplyLevelSettings(DefDatabase <PathAvoidDef> .AllDefs);
 }