DS-Pokemon-Rom-Editor/DS_Map/ROMFiles/HeadbuttTree.cs
2024-06-11 15:29:54 +02:00

105 lines
2.8 KiB
C#

using System.IO;
namespace DSPRE.ROMFiles {
public class HeadbuttTree {
public bool picked = false;
private ushort _globalX;
private ushort _globalY;
private ushort _matrixX;
private ushort _matrixY;
private ushort _mapX;
private ushort _mapY;
public bool IsUnused {
get {
return globalX == ushort.MaxValue && globalY == ushort.MaxValue;
}
}
public enum Types {
Normal,
Special,
}
public HeadbuttTree(ushort globalX = ushort.MaxValue, ushort globalY = ushort.MaxValue) {
this.globalX = globalX;
this.globalY = globalY;
}
public HeadbuttTree(HeadbuttTree original) {
this.globalX = original.globalX;
this.globalY = original.globalY;
}
public ushort globalX {
get { return _globalX; }
set {
_globalX = value;
_matrixX = (ushort)(_globalX / MapFile.mapSize);
_mapX = (ushort)(_globalX % MapFile.mapSize);
}
}
public ushort globalY {
get { return _globalY; }
set {
_globalY = value;
_matrixY = (ushort)(_globalY / MapFile.mapSize);
_mapY = (ushort)(_globalY % MapFile.mapSize);
}
}
public ushort matrixX {
get {
return _matrixX;
}
set {
_matrixX = value;
_globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX);
_mapX = (ushort)(_globalX % MapFile.mapSize);
}
}
public ushort matrixY {
get {
return _matrixY;
}
set {
_matrixY = value;
_globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY);
_mapY = (ushort)(_globalY % MapFile.mapSize);
}
}
public ushort mapX {
get {
return _mapX;
}
set {
_mapX = value;
_globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX);
_matrixX = (ushort)(_globalX / MapFile.mapSize);
}
}
public ushort mapY {
get {
return _mapY;
}
set {
_mapY = value;
_globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY);
_matrixY = (ushort)(_globalY / MapFile.mapSize);
}
}
public override string ToString() {
if (IsUnused) {
return "Unused Tree";
}
return $"Tree at Global X: {globalX}, Global Y: {globalY}";
}
}
}