public static bool MapTemperatureTick(MapTemperature __instance) { if (Find.TickManager.TicksGame % 120 != 7 && !DebugSettings.fastEcology) { return(false); } HashSet <RoomGroup> fastProcessedRoomGroups = new HashSet <RoomGroup>(); List <Room> allRooms = map(__instance).regionGrid.allRooms; RoomGroup group; for (int index = 0; index < allRooms.Count; ++index) { try { group = allRooms[index].Group; } catch (ArgumentOutOfRangeException) { break; } if (!fastProcessedRoomGroups.Contains(group)) { if (null != group) { if (null != group.TempTracker) { group.TempTracker.EqualizeTemperature(); fastProcessedRoomGroups.Add(group); } } } } return(false); }
public static void ChooseSpaceWeather(MapTemperature __instance, ref float __result) { if (getMap(__instance).terrainGrid.TerrainAt(IntVec3.Zero)?.defName == "HardVacuum") { //really cold. This is not accurate, just for gameplay. __result = -100f; } }
public static void AddMapTempToDicts(MapTemperature mp) { var fprg = AccessTools.Field(typeof(MapTemperature), "fastProcessedRoomGroups"); fprgdict.Add(mp, fprg.GetValue(mp) as HashSet <RoomGroup>); var m = AccessTools.Field(typeof(MapTemperature), "map"); mapdict.Add(mp, m.GetValue(mp) as Map); }
static bool Prefix(ref MapTemperature __instance) { float modValue = Find.TickManager.TicksGame % 120; if (modValue < 7 && modValue >= 7 + RefcellRespeedConfig.currentTimeMultiplier && !DebugSettings.fastEcology) { return(false); } __instance.fastProcessedRoomGroups.Clear(); List <Room> allRooms = __instance.map.regionGrid.allRooms; for (int index = 0; index < allRooms.Count; ++index) { RoomGroup group = allRooms[index].Group; if (!__instance.fastProcessedRoomGroups.Contains(group)) { group.TempTracker.EqualizeTemperature(); __instance.fastProcessedRoomGroups.Add(group); } } __instance.fastProcessedRoomGroups.Clear(); return(false); }
public TemperatureMapPage(TemperatureModel temperatureSelected) { InitializeComponent(); MapTemperature.MoveToRegion( MapSpan.FromCenterAndRadius( new Position(temperatureSelected.Latitude, temperatureSelected.Longitude), Distance.FromMiles(.5) )); MapTemperature.Temperature = temperatureSelected; MapTemperature.Pins.Add( new Pin { Type = PinType.Place, Label = temperatureSelected.Comments, Position = new Position(temperatureSelected.Latitude, temperatureSelected.Longitude) } ); Comments.Text = temperatureSelected.Comments; }