DS-Pokemon-Rom-Editor/DS_Map/ROMFiles/HeadbuttTree.cs
Miguel Terol Espino 0254b46a41 Added the levelscript editor
Co-authored-by: Cuddlyogre <cuddlyogre@users.noreply.github.com>
2024-03-03 17:35:34 +01:00

104 lines
2.4 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 unused { get { return globalX == ushort.MaxValue && globalY == ushort.MaxValue; } }
public enum Types {
Normal,
Special,
}
public HeadbuttTree(BinaryReader br) {
this.globalX = br.ReadUInt16();
this.globalY = br.ReadUInt16();
}
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() {
string suffix = unused ? "unused" : $"globalX: {globalX}, globalY: {globalY}";
return $"{nameof(HeadbuttTree)} - {suffix}";
}
}
}