55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Terraria.Map.MapTile
|
|
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
|
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
|
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
|
|
|
namespace Terraria.Map
|
|
{
|
|
public struct MapTile
|
|
{
|
|
public ushort Type;
|
|
public byte Light;
|
|
private byte _extraData;
|
|
|
|
public bool IsChanged
|
|
{
|
|
get => ((int) this._extraData & 128) == 128;
|
|
set
|
|
{
|
|
if (value)
|
|
this._extraData |= (byte) 128;
|
|
else
|
|
this._extraData &= (byte) 127;
|
|
}
|
|
}
|
|
|
|
public byte Color
|
|
{
|
|
get => (byte) ((uint) this._extraData & (uint) sbyte.MaxValue);
|
|
set => this._extraData = (byte) ((int) this._extraData & 128 | (int) value & (int) sbyte.MaxValue);
|
|
}
|
|
|
|
private MapTile(ushort type, byte light, byte extraData)
|
|
{
|
|
this.Type = type;
|
|
this.Light = light;
|
|
this._extraData = extraData;
|
|
}
|
|
|
|
public bool Equals(ref MapTile other) => (int) this.Light == (int) other.Light && (int) this.Type == (int) other.Type && (int) this.Color == (int) other.Color;
|
|
|
|
public bool EqualsWithoutLight(ref MapTile other) => (int) this.Type == (int) other.Type && (int) this.Color == (int) other.Color;
|
|
|
|
public void Clear()
|
|
{
|
|
this.Type = (ushort) 0;
|
|
this.Light = (byte) 0;
|
|
this._extraData = (byte) 0;
|
|
}
|
|
|
|
public MapTile WithLight(byte light) => new MapTile(this.Type, light, (byte) ((uint) this._extraData | 128U));
|
|
|
|
public static MapTile Create(ushort type, byte light, byte color) => new MapTile(type, light, (byte) ((uint) color | 128U));
|
|
}
|
|
}
|