using Robust.Shared.Serialization; using DrawDepthTag = Robust.Shared.GameObjects.DrawDepth; namespace Content.Shared.DrawDepth { [ConstantsFor(typeof(DrawDepthTag))] public enum DrawDepth { /// /// This is for sub-floors, the floors you see after prying off a tile. /// LowFloors = DrawDepthTag.Default - 14, // various entity types that require different // draw depths, as to avoid hiding #region SubfloorEntities ThickPipe = DrawDepthTag.Default - 13, ThickWire = DrawDepthTag.Default - 12, ThinPipe = DrawDepthTag.Default - 11, ThinWire = DrawDepthTag.Default - 10, #endregion /// /// Things that are beneath regular floors. /// BelowFloor = DrawDepthTag.Default - 9, /// /// Used for entities like carpets. /// FloorTiles = DrawDepthTag.Default - 8, /// /// Things that are actually right on the floor, like ice crust or atmos devices. This does not mean objects like /// tables, even though they are technically "on the floor". /// FloorObjects = DrawDepthTag.Default - 7, /// // Discrete drawdepth to avoid z-fighting with other FloorObjects but also above floor entities. /// Puddles = DrawDepthTag.Default - 6, /// // Objects that are on the floor, but should render above puddles. This includes kudzu, holopads, telepads and levers. /// HighFloorObjects = DrawDepthTag.Default - 5, DeadMobs = DrawDepthTag.Default - 4, /// /// Allows small mobs like mice and drones to render under tables and chairs but above puddles and vents /// SmallMobs = DrawDepthTag.Default - 3, Walls = DrawDepthTag.Default - 2, /// /// Used for windows (grilles use walls) and misc signage. Useful if you want to have an APC in the middle /// of some wall-art or something. /// WallTops = DrawDepthTag.Default - 1, /// /// Furniture, crates, tables. etc. If an entity should be drawn on top of a table, it needs a draw depth /// that is higher than this. /// Objects = DrawDepthTag.Default, /// /// In-between an furniture and an item. Useful for entities that need to appear on top of tables, but are /// not items. E.g., power cell chargers. Also useful for pizza boxes, which appear above crates, but not /// above the pizza itself. /// SmallObjects = DrawDepthTag.Default + 1, /// /// Posters, APCs, air alarms, etc. This also includes most lights & lamps. /// WallMountedItems = DrawDepthTag.Default + 2, /// /// Generic items. Things that should be above crates & tables, but underneath mobs. /// Items = DrawDepthTag.Default + 3, /// /// Stuff that should be drawn below mobs, but on top of items. Like muzzle flash. /// BelowMobs = DrawDepthTag.Default + 4, Mobs = DrawDepthTag.Default + 5, OverMobs = DrawDepthTag.Default + 6, Doors = DrawDepthTag.Default + 7, /// /// Blast doors and shutters which go over the usual doors. /// BlastDoors = DrawDepthTag.Default + 8, /// /// Stuff that needs to draw over most things, but not effects, like Kudzu. /// Overdoors = DrawDepthTag.Default + 9, /// /// Explosions, fire, melee swings. Whatever. /// Effects = DrawDepthTag.Default + 10, Ghosts = DrawDepthTag.Default + 11, /// /// Use this selectively if it absolutely needs to be drawn above (almost) everything else. Examples include /// the pointing arrow, the drag & drop ghost-entity, and some debug tools. /// Overlays = DrawDepthTag.Default + 12, } }