Files
RobustToolbox/Robust.Shared/Map/ITileDefinition.cs
Ed e30e963623 Hidden tiles (#5102)
* hidden tiles

* Update TileSpawningUIController.cs

* Update TileSpawningUIController.cs

* Update ITileDefinition.cs

* Update TileSpawningUIController.cs

* Move EditorHidden where clause out

* Make EditorHidden a DIM

So there's no breaking change

* Release notes.

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-05-16 19:05:39 +02:00

65 lines
2.0 KiB
C#

using System.Collections.Generic;
using Robust.Shared.Maths;
using Robust.Shared.Utility;
namespace Robust.Shared.Map
{
/// <summary>
/// The definition (template) for a grid tile.
/// </summary>
public interface ITileDefinition
{
/// <summary>
/// The numeric tile ID used to refer to this tile inside the map datastructure.
/// </summary>
ushort TileId { get; }
/// <summary>
/// The name of the definition. This is user facing.
/// </summary>
string Name { get; }
/// <summary>
/// Internal name of the definition.
/// </summary>
string ID { get; }
/// <summary>
/// The path of the sprite to draw.
/// </summary>
ResPath? Sprite { get; }
/// <summary>
/// Possible sprites to use if we're neighboring another tile.
/// </summary>
Dictionary<Direction, ResPath> EdgeSprites { get; }
/// <summary>
/// When drawing adjacent tiles that both specify edge sprites, the one with the higher priority
/// is always solely drawn.
/// </summary>
int EdgeSpritePriority { get; }
/// <summary>
/// Physics objects that are interacting on this tile are slowed down by this float.
/// </summary>
float Friction { get; }
/// <summary>
/// Number of variants this tile has. ALSO DETERMINES THE EXPECTED INPUT TEXTURE SIZE.
/// </summary>
byte Variants { get; }
/// <summary>
/// Assign a new value to <see cref="TileId"/>, used when registering the tile definition.
/// </summary>
/// <param name="id">The new tile ID for this tile definition.</param>
void AssignTileId(ushort id);
/// <summary>
/// Allows you to hide tiles from the tile spawn menu.
/// </summary>
bool EditorHidden => false;
}
}