Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. using RimWorld;
  7. using UnityEngine;
  8. using Verse;
  9. using Verse.AI;
  10. using Verse.Sound;
  11.  
  12. namespace modNamespace
  13. {
  14.  
  15. public class MountainTemp : MapComponent
  16. {
  17. List<Room> RoomsInMountains = new List<Room>();
  18.  
  19. /// <summary>
  20. /// Fetchs the mountain rooms.
  21. /// </summary>
  22. void FetchMountainRooms()
  23. {
  24. // Clear our list of mountain rooms
  25. RoomsInMountains = new List<Room>();
  26.  
  27. // Get the list of rooms from the region grid
  28. List<Room> allRooms = Find.RegionGrid.allRooms;
  29.  
  30. // No rooms to check, abort now
  31. if( ( allRooms == null )||
  32. ( allRooms.Count < 1 ) )
  33. return;
  34.  
  35. // Itterate the rooms
  36. foreach( var room in allRooms ){
  37.  
  38. // No open roof? This could be in a mountain...
  39. if( room.OpenRoofCount == 0 ){
  40.  
  41. var roomCells = room.Cells.ToList();
  42.  
  43. // Only rooms with cells
  44. if( ( roomCells != null )&&
  45. ( roomCells.Any() == true ) ){
  46.  
  47. // Now make sure all cells have a thick roof
  48. if( roomCells.Exists(
  49. cell => cell.GetRoof().isThickRoof == false ) )
  50. continue;
  51.  
  52. // Room has all tick roofs
  53. RoomsInMountains.Add( room );
  54.  
  55. }
  56. }
  57. }
  58. }
  59.  
  60. /// <summary>
  61. /// Map tick for component
  62. /// </summary>
  63. public override void MapComponentTick()
  64. {
  65. // Get the rooms in the mountain
  66. FetchMountainRooms();
  67.  
  68. // No rooms, nothing to do
  69. if( RoomsInMountains.Count < 1 )
  70. return;
  71.  
  72. // Now do something with them
  73.  
  74. // Create a debug dump of the rooms :
  75. var debugDump = "Mountainous Rooms:\n";
  76. foreach( var room in RoomsInMountains ){
  77. debugDump += "RoomID: " + room.roomID + " Temp: " + room.Temperature + "\n";
  78. }
  79. Log.Message( debugDump );
  80. }
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement