[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(); } }
public static void Reinitialize() { RandomizerTable.Initialize(); }