示例#1
0
        [HarmonyPriority(410)] //slightly higher priority since it clears events and other might want to hook in as well
        public static void Postfix(GeyserGenericConfig __instance, ref List <GameObject> __result)
        {
            GameObject geyserGenericOrg = __result.Find(x => x.name == "GeyserGeneric");

            if (geyserGenericOrg == null)
            {
                Debug.LogWarning("[CustomizeGeyser] RandomizerPatch critical error: Did not find GeyserGeneric");
                return;
            }

            //if (!CustomizeGeyserState.StateManager.State.RandomizerHighlanderMode)
            //{
            //    KPrefabID prefab = geyserGenericOrg.AddOrGet<KPrefabID>();
            //    AccessTools.Field(typeof(KPrefabID), "prefabInitFn").SetValue(prefab, null);
            //    prefab.prefabInitFn += PrefabInitForGeysers;
            //}
            GameObject geyserGeneric = EntityTemplates.CreatePlacedEntity(id: "GeyserGeneric", name: "Random Geyser Spawner", desc: GeyserGenericDescription, mass: 2000f,
                                                                          anim: Assets.GetAnim(GeyserGenericKAnim), initialAnim: GeyserGenericInitialState, sceneLayer: Grid.SceneLayer.BuildingBack,
                                                                          width: 3, height: 3, decor: TUNING.BUILDINGS.DECOR.BONUS.TIER1, noise: TUNING.NOISE_POLLUTION.NOISY.TIER6,
                                                                          element: SimHashes.Katairite, additionalTags: null, defaultTemperature: 372.15f);

            geyserGeneric.AddOrGet <SaveLoadRoot>();
            geyserGeneric.AddOrGet <KPrefabID>().prefabInitFn += PrefabInitForGeysers;

            __result.Remove(geyserGenericOrg);
            __result.Add(geyserGeneric);

            if (RandomizerTable.geysers == null)
            {
                RandomizerTable.Initialize();
            }
        }
示例#2
0
 public static void Reinitialize()
 {
     RandomizerTable.Initialize();
 }
示例#3
0
 public static void Prefix()
 {
     Debug.Log("[CustomizeGeyser] Re-initializing RandomizerTable...");
     RandomizerTable.Reinitialize();
 }