1
0

DrawDepth.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using Robust.Shared.Serialization;
  2. using DrawDepthTag = Robust.Shared.GameObjects.DrawDepth;
  3. namespace Content.Shared.DrawDepth
  4. {
  5. [ConstantsFor(typeof(DrawDepthTag))]
  6. public enum DrawDepth
  7. {
  8. /// <summary>
  9. /// This is for sub-floors, the floors you see after prying off a tile.
  10. /// </summary>
  11. LowFloors = DrawDepthTag.Default - 18,
  12. // various entity types that require different
  13. // draw depths, as to avoid hiding
  14. #region SubfloorEntities
  15. ThickPipe = DrawDepthTag.Default - 17,
  16. ThickWire = DrawDepthTag.Default - 16,
  17. ThinPipe = DrawDepthTag.Default - 15,
  18. ThinWire = DrawDepthTag.Default - 14,
  19. #endregion
  20. /// <summary>
  21. /// Things that are beneath regular floors.
  22. /// </summary>
  23. BelowFloor = DrawDepthTag.Default - 13,
  24. /// <summary>
  25. /// Used for entities like carpets.
  26. /// </summary>
  27. FloorTiles = DrawDepthTag.Default - 12,
  28. /// <summary>
  29. /// Things that are actually right on the floor, like ice crust or atmos devices. This does not mean objects like
  30. /// tables, even though they are technically "on the floor".
  31. /// </summary>
  32. FloorObjects = DrawDepthTag.Default - 11,
  33. /// <summary>
  34. // Discrete drawdepth to avoid z-fighting with other FloorObjects but also above floor entities.
  35. /// </summary>
  36. Puddles = DrawDepthTag.Default - 10,
  37. // There's a gap for subfloor entities to retain relative draw depth when revealed by a t-ray scanner.
  38. /// <summary>
  39. // Objects that are on the floor, but should render above puddles. This includes kudzu, holopads, telepads and levers.
  40. /// </summary>
  41. HighFloorObjects = DrawDepthTag.Default - 5,
  42. DeadMobs = DrawDepthTag.Default - 4,
  43. /// <summary>
  44. /// Allows small mobs like mice and drones to render under tables and chairs but above puddles and vents
  45. /// </summary>
  46. SmallMobs = DrawDepthTag.Default - 3,
  47. Walls = DrawDepthTag.Default - 2,
  48. /// <summary>
  49. /// Used for windows (grilles use walls) and misc signage. Useful if you want to have an APC in the middle
  50. /// of some wall-art or something.
  51. /// </summary>
  52. WallTops = DrawDepthTag.Default - 1,
  53. /// <summary>
  54. /// Furniture, crates, tables. etc. If an entity should be drawn on top of a table, it needs a draw depth
  55. /// that is higher than this.
  56. /// </summary>
  57. Objects = DrawDepthTag.Default,
  58. /// <summary>
  59. /// In-between an furniture and an item. Useful for entities that need to appear on top of tables, but are
  60. /// not items. E.g., power cell chargers. Also useful for pizza boxes, which appear above crates, but not
  61. /// above the pizza itself.
  62. /// </summary>
  63. SmallObjects = DrawDepthTag.Default + 1,
  64. /// <summary>
  65. /// Posters, APCs, air alarms, etc. This also includes most lights & lamps.
  66. /// </summary>
  67. WallMountedItems = DrawDepthTag.Default + 2,
  68. /// <summary>
  69. /// Generic items. Things that should be above crates & tables, but underneath mobs.
  70. /// </summary>
  71. Items = DrawDepthTag.Default + 3,
  72. /// <summary>
  73. /// Stuff that should be drawn below mobs, but on top of items. Like muzzle flash.
  74. /// </summary>
  75. BelowMobs = DrawDepthTag.Default + 4,
  76. Mobs = DrawDepthTag.Default + 5,
  77. OverMobs = DrawDepthTag.Default + 6,
  78. Doors = DrawDepthTag.Default + 7,
  79. /// <summary>
  80. /// Blast doors and shutters which go over the usual doors.
  81. /// </summary>
  82. BlastDoors = DrawDepthTag.Default + 8,
  83. /// <summary>
  84. /// Stuff that needs to draw over most things, but not effects, like Kudzu.
  85. /// </summary>
  86. Overdoors = DrawDepthTag.Default + 9,
  87. /// <summary>
  88. /// Explosions, fire, melee swings. Whatever.
  89. /// </summary>
  90. Effects = DrawDepthTag.Default + 10,
  91. Ghosts = DrawDepthTag.Default + 11,
  92. /// <summary>
  93. /// Use this selectively if it absolutely needs to be drawn above (almost) everything else. Examples include
  94. /// the pointing arrow, the drag & drop ghost-entity, and some debug tools.
  95. /// </summary>
  96. Overlays = DrawDepthTag.Default + 12,
  97. }
  98. }