public override float GetScore(Room room) { float num = 0f; int num2 = 0; RoomStatWorker_Beauty.countedThings.Clear(); foreach (IntVec3 cell in room.Cells) { num += BeautyUtility.CellBeauty(cell, room.Map, RoomStatWorker_Beauty.countedThings); num2++; } RoomStatWorker_Beauty.countedAdjCells.Clear(); List <Thing> containedAndAdjacentThings = room.ContainedAndAdjacentThings; for (int i = 0; i < containedAndAdjacentThings.Count; i++) { Thing thing = containedAndAdjacentThings[i]; if (thing.GetRoom(RegionType.Set_Passable) != room && !RoomStatWorker_Beauty.countedAdjCells.Contains(thing.Position)) { num += BeautyUtility.CellBeauty(thing.Position, room.Map, RoomStatWorker_Beauty.countedThings); RoomStatWorker_Beauty.countedAdjCells.Add(thing.Position); } } RoomStatWorker_Beauty.countedThings.Clear(); if (num2 == 0) { return(0f); } return(num / RoomStatWorker_Beauty.CellCountCurve.Evaluate((float)num2)); }
public static float AverageBeautyPerceptible(IntVec3 root, Map map) { float result; if (!root.IsValid || !root.InBounds(map)) { result = 0f; } else { BeautyUtility.tempCountedThings.Clear(); float num = 0f; int num2 = 0; BeautyUtility.FillBeautyRelevantCells(root, map); for (int i = 0; i < BeautyUtility.beautyRelevantCells.Count; i++) { num += BeautyUtility.CellBeauty(BeautyUtility.beautyRelevantCells[i], map, BeautyUtility.tempCountedThings); num2++; } BeautyUtility.tempCountedThings.Clear(); if (num2 == 0) { result = 0f; } else { result = num / (float)num2; } } return(result); }
public static float AverageBeautyPerceptible(IntVec3 root, Map map) { BeautyUtility.tempCountedThings.Clear(); float num = 0f; int num2 = 0; BeautyUtility.FillBeautyRelevantCells(root, map); for (int i = 0; i < BeautyUtility.beautyRelevantCells.Count; i++) { num += BeautyUtility.CellBeauty(BeautyUtility.beautyRelevantCells[i], map, BeautyUtility.tempCountedThings); num2++; } num /= (float)num2; BeautyUtility.tempCountedThings.Clear(); return(num); }