public static bool GrowthSeasonNow(IntVec3 c, Map map, bool forSowing = false) { Room roomOrAdjacent = c.GetRoomOrAdjacent(map, RegionType.Set_All); bool result; if (roomOrAdjacent == null) { result = false; } else if (roomOrAdjacent.UsesOutdoorTemperature) { if (forSowing) { result = map.weatherManager.growthSeasonMemory.GrowthSeasonOutdoorsNowForSowing; } else { result = map.weatherManager.growthSeasonMemory.GrowthSeasonOutdoorsNow; } } else { float temperature = c.GetTemperature(map); result = (temperature > 0f && temperature < 58f); } return(result); }
public static TaleData_Surroundings GenerateFrom(IntVec3 c, Map map) { TaleData_Surroundings taleData_Surroundings = new TaleData_Surroundings(); taleData_Surroundings.tile = map.Tile; Room roomOrAdjacent = c.GetRoomOrAdjacent(map, RegionType.Set_All); if (roomOrAdjacent != null) { if (roomOrAdjacent.PsychologicallyOutdoors) { taleData_Surroundings.weather = map.weatherManager.CurWeatherPerceived; } taleData_Surroundings.roomRole = roomOrAdjacent.Role; taleData_Surroundings.roomImpressiveness = roomOrAdjacent.GetStat(RoomStatDefOf.Impressiveness); taleData_Surroundings.roomBeauty = roomOrAdjacent.GetStat(RoomStatDefOf.Beauty); taleData_Surroundings.roomCleanliness = roomOrAdjacent.GetStat(RoomStatDefOf.Cleanliness); } if (!GenTemperature.TryGetTemperatureForCell(c, map, out taleData_Surroundings.temperature)) { taleData_Surroundings.temperature = 21f; } taleData_Surroundings.snowDepth = map.snowGrid.GetDepth(c); return(taleData_Surroundings); }
public static bool IsInPrisonCell(ref bool __result, IntVec3 c, Map map) { Room roomOrAdjacent = c.GetRoomOrAdjacent(map); if (roomOrAdjacent != null) { __result = roomOrAdjacent.isPrisonCell; return(false); } //TODO fix check for null room earlier //Log.Error("Checking prison cell status of " + c + " which is not in or adjacent to a room."); __result = false; return(false); }
public static bool GrowthSeasonNow(IntVec3 c, Map map) { Room roomOrAdjacent = c.GetRoomOrAdjacent(map, RegionType.Set_All); if (roomOrAdjacent == null) { return(false); } if (roomOrAdjacent.UsesOutdoorTemperature) { return(map.weatherManager.growthSeasonMemory.GrowthSeasonOutdoorsNow); } float temperature = c.GetTemperature(map); return(temperature > 0.0 && temperature < 58.0); }
// Token: 0x0600000C RID: 12 RVA: 0x000028CC File Offset: 0x00000ACC internal static bool TerrainEffects(TerrainDef terrain, IntVec3 terrainPosition, Pawn pawn) { if (ProximityGet.GetTProxRoomOnly(terrain)) { var room = terrainPosition.GetRoomOrAdjacent(pawn.Map); var room2 = pawn.Position.GetRoomOrAdjacent(pawn.Map); if (room != null && room2 != null && room != room2) { return(false); } } if (pawn.IsColonist && !ProximityGet.GetTProxColonist(terrain)) { return(false); } if (pawn.Drafted && !ProximityGet.GetTProxDrafted(terrain)) { return(false); } if (ProximityGet.GetTProxComposMentis(terrain)) { if (pawn.Downed || pawn.InMentalState || pawn.IsBurning() || HealthAIUtility.ShouldSeekMedicalRest(pawn)) { return(false); } if (!pawn.Awake()) { return(false); } } if (pawn.RaceProps.IsMechanoid && !ProximityGet.GetTProxMechanoid(terrain)) { return(false); } if (pawn.RaceProps.FleshType.defName == "Insectoid" && !ProximityGet.GetTProxInsectoid(terrain)) { return(false); } if (pawn.AnimalOrWildMan() && !ProximityGet.GetTProxAnimal(terrain)) { return(false); } if (pawn.IsPrisoner && !ProximityGet.GetTProxPrisoner(terrain)) { return(false); } var faction = pawn.Faction; var map = pawn.Map; return((faction == map?.ParentFaction || GetTerrainEffectsOutsider(terrain, pawn)) && (ProximityGet.GetTProxEquipped(terrain) == null || GetTerrainPawnHasEquipment(terrain, pawn))); }