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 - 10,
// various entity types that require different
// draw depths, as to avoid hiding
#region SubfloorEntities
ThickPipe = DrawDepthTag.Default - 9,
ThickWire = DrawDepthTag.Default - 8,
ThinPipe = DrawDepthTag.Default - 7,
ThinWire = DrawDepthTag.Default - 6,
#endregion
///
/// Things that are beneath regular floors.
///
BelowFloor = DrawDepthTag.Default - 5,
///
/// Used for entities like carpets.
///
FloorTiles = DrawDepthTag.Default - 4,
///
/// Things that are actually right on the floor, like puddles. This does not mean objects like
/// tables, even though they are technically "on the floor".
///
FloorObjects = 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,
Mobs = DrawDepthTag.Default + 4,
Doors = DrawDepthTag.Default + 5,
///
/// Stuff that needs to draw over most things, but not effects, like Kudzu.
///
Overdoors = DrawDepthTag.Default + 6,
///
/// Explosions, fire, melee swings. Whatever.
///
Effects = DrawDepthTag.Default + 7,
Ghosts = DrawDepthTag.Default + 8,
///
/// 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 + 9,
}
}