static void Prefix(TileTemperaturesComp __instance) { if (Multiplayer.InInterface && __instance != Multiplayer.WorldComp.uiTemperatures) { Multiplayer.WorldComp.uiTemperatures.WorldComponentTick(); } }
public static bool ClearCaches(TileTemperaturesComp __instance) { tileCount = Find.WorldGrid.TilesCount; cache = new CachedTileTemperatureData[tileCount]; usedSlots = new int[tileCount]; return(false); }
static void Postfix(TileTemperaturesComp __instance, int tile, bool __state) { if (__state && Multiplayer.ShouldSync) { Array.Resize(ref __instance.cache[tile].twelfthlyTempAverages, 13); } }
public static bool SeasonAndOutdoorTemperatureAcceptableFor(TileTemperaturesComp __instance, ref bool __result, int tile, ThingDef animalRace) { if (__instance.SeasonAcceptableFor(tile, animalRace)) { __result = __instance.OutdoorTemperatureAcceptableFor(tile, animalRace); return(false); } __result = false; return(false); }
static bool Prefix(TileTemperaturesComp __instance, int tile, ref TileTemperaturesComp.CachedTileTemperatureData __result) { if (Multiplayer.InInterface && __instance != Multiplayer.WorldComp.uiTemperatures) { __result = Multiplayer.WorldComp.uiTemperatures.RetrieveCachedData(tile); return(false); } return(true); }
private static CachedTileTemperatureData RetrieveCachedData2(TileTemperaturesComp __instance, int tile) { if (cache[tile] != null) { return(cache[tile]); } cache[tile] = new CachedTileTemperatureData(tile); usedSlots[(Interlocked.Increment(ref endIndex) - 1) % tileCount] = tile; return(cache[tile]); }
public static bool OutdoorTemperatureAcceptableFor(TileTemperaturesComp __instance, ref bool __result, int tile, ThingDef animalRace) { float outdoorTemp = __instance.GetOutdoorTemp(tile); if (outdoorTemp > animalRace.GetStatValueAbstract(StatDefOf.ComfyTemperatureMin)) { __result = outdoorTemp < animalRace.GetStatValueAbstract(StatDefOf.ComfyTemperatureMax); return(false); } __result = false; return(false); }
static void Prefix(TileTemperaturesComp __instance, int tile, ref bool __state) { if (Multiplayer.Client == null) { return; } var cache = __instance.cache; __state = cache[tile] == null; if (!Multiplayer.ShouldSync && cache[tile]?.twelfthlyTempAverages.Length == 13) { cache[tile] = null; __instance.usedSlots.Remove(tile); } }
static bool Prefix(ref TileTemperaturesComp __instance) { for (int index = 0; index < __instance.usedSlots.Count; ++index) { __instance.cache[__instance.usedSlots[index]].CheckCache(); } int modvalue = Find.TickManager.TicksGame % 300; if ((modvalue < 84 && modvalue >= 84 + RefcellRespeedConfig.currentTimeMultiplier) || !__instance.usedSlots.Any <int>()) { return(false); } __instance.cache[__instance.usedSlots[0]] = (TileTemperaturesComp.CachedTileTemperatureData)null; __instance.usedSlots.RemoveAt(0); return(false); }
public static bool WorldComponentTick(TileTemperaturesComp __instance) { for (int i = startIndex; i < endIndex; i++) { if (cache[usedSlots[i % tileCount]] == null) { Interlocked.Increment(ref startIndex); } else { cache[usedSlots[i % tileCount]].CheckCache(); } } if (Find.TickManager.TicksGame % 300 == 84 && startIndex < endIndex) { cache[usedSlots[(Interlocked.Increment(ref startIndex) - 1) % tileCount]] = null; } return(false); }
public static bool AverageTemperatureForTwelfth(TileTemperaturesComp __instance, ref float __result, int tile, Twelfth twelfth) { __result = RetrieveCachedData2(__instance, tile).AverageTemperatureForTwelfth(twelfth); return(false); }
public static bool OffsetFromDailyRandomVariation(TileTemperaturesComp __instance, ref float __result, int tile, int absTick) { __result = RetrieveCachedData2(__instance, tile).OffsetFromDailyRandomVariation(absTick); return(false); }
public static bool OutdoorTemperatureAt(TileTemperaturesComp __instance, ref float __result, int tile, int absTick) { __result = RetrieveCachedData2(__instance, tile).OutdoorTemperatureAt(absTick); return(false); }
public static bool GetSeasonalTemp(TileTemperaturesComp __instance, ref float __result, int tile) { __result = RetrieveCachedData2(__instance, tile).GetSeasonalTemp(); return(false); }
public static bool WorldComponentTick(TileTemperaturesComp __instance) { if (!cache2.TryGetValue(__instance, out CachedTileTemperatureData2[] cache3))