Перейти к содержанию

Тайлы (Terraria.Tile)

Основной класс в Terraria, который отвечает за блоки и стены - Terraria.Tile:

Массив тайлов находится в Terraria.Main.tile:

using Terraria;

Tile tile = Main.tile[100, 200];

tile.wall = 5; // заменяет стену на 5 (ID)

Поля Tile

Учтите, что существует также состояние active у блока.

public ushort type; // тип блока, ID начинается с 0
                    // не будет работать или отображаться, если tile.active() == false

public ushort wall; // wall, ID начинается с 1

public byte liquid; // количество жидкости

public short frameX; // смещение кадра блока по X

public short frameY; // смещение кадра блока по Y

public ushort sTileHeader; // другие сжатые значения по short

public byte bTileHeader; // другие сжатые значения по byte

public byte bTileHeader2; // другие сжатые значения по byte

public byte bTileHeader3; // другие сжатые значения по byte

Свойства Tile

public int collisionType { get; } // указывает на тип полублока

Методы Tile

Базовые

// возвращает bool, является ли блок активным
public bool active();
// устанавливает состояние активности
public void active(bool active);


// возвращает bool, является ли блок деактивированным проводами
public bool inActive();
// устанавливает состояние деактивированности проводами
public void inActive(bool inActive);

// очищает все данные
public void ClearEverything();

// очищает данные блока (тип полублока, деактивацию проводами,)
public void ClearTile();

// копирует данные с другого блока
// используйте этот метод, так как прямое использование newTile = oldTile, приведет к тому, что newTile будет ссылкой на oldTile
public void CopyFrom(Tile _from);

// возвращает тип полублока как int
public int blockType();

// удаляет все данные, и заменяет блок на указанный
public void ResetToType(ushort type);

// удаляет все данные помимо блока
internal void ClearMetadata();

public bool halfBrick();
public void halfBrick(bool halfBrick);

public byte slope();
public void slope(byte slope);

// возвращает bool, является ли тип полублока определенным
public bool topSlope();
public bool bottomSlope();
public bool leftSlope();
public bool rightSlope();

// возвращает bool, является ли тип полублока таким же как у 'tile'
public bool HasSameSlope(Tile tile);

Жидкости

// возвращает ID жидкости
public byte liquidType();
// устанавливает ID жидкости
public void liquidType(int liquidType);


// возвращает bool, имеет ли блок в себе жидкость лавы
public bool lava();
// устанавливает жидкость лавы
public void lava(bool lava);


// возвращает bool, имеет ли блок в себе жидкость меда
public bool honey();
// устанавливает жидкость меда
public void honey(bool honey);


// возвращает bool, имеет ли блок в себе жидкость мерцания
public bool shimmer();
// устанавливает жидкость мерцания
public void shimmer(bool shimmer);

Краски и покрытия

// возращает ID краски блока
public byte color();
// устанавливает краску блока
public void color(byte color);


// возращает ID краски стены
public byte wallColor();
// устанавливает краску стены
public void wallColor(byte wallColor);


// возвращает bool, если блок имеет эхо-покрытие
public bool invisibleBlock();
// устанавливает эхо-краску для блока
public void invisibleBlock(bool invisibleBlock);


// возвращает bool, если стена имеет эхо-покрытие
public bool invisibleWall();
// устанавливает эхо-краску для стены
public void invisibleWall(bool invisibleWall);

// очищает краску и покрытие для блока
public void ClearBlockPaintAndCoating();
// очищает краску и покрытие для стены
public void ClearWallPaintAndCoating();

Провода

// 4 ID это вроде желтый, я не помню :(
// возвращает bool, имеется ли тут провод с 4 ID.
public bool wire4();
// устанавливает провод с 4 ID.
public void wire4(bool wire4);


// все также с wire(), wire2(), wire3()