コード例 #1
0
        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);
        }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
        }