Multi-Floors LevelGrid
parent
d8bf1d0746
commit
c7d0389e17
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33055f3c15d93c4a8a0245cf9546b0ba
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,22 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace Grid {
|
||||
public struct GridPosition : IEquatable<GridPosition> {
|
||||
public int X { get; }
|
||||
public int Z { get; }
|
||||
public readonly struct GridPosition : IEquatable<GridPosition> {
|
||||
public int XPosition { get; }
|
||||
public int ZPosition { get; }
|
||||
public int Floor { get; }
|
||||
|
||||
public GridPosition(int x, int z) {
|
||||
X = x;
|
||||
Z = z;
|
||||
public GridPosition(int xPosition, int zPosition, int floor) {
|
||||
XPosition = xPosition;
|
||||
ZPosition = zPosition;
|
||||
Floor = floor;
|
||||
}
|
||||
|
||||
public override string ToString() => $"{X};{Z}";
|
||||
public static bool operator ==(GridPosition a, GridPosition b) => a.X == b.X && a.Z == b.Z;
|
||||
public static bool operator !=(GridPosition a, GridPosition b) => a.X != b.X || a.Z != b.Z;
|
||||
public override bool Equals(object obj) => obj is GridPosition other && Equals(other);
|
||||
public override int GetHashCode() => HashCode.Combine(X, Z);
|
||||
public bool Equals(GridPosition other) => X == other.X && Z == other.Z;
|
||||
public static GridPosition operator +(GridPosition a, GridPosition b) => new(a.X + b.X, a.Z + b.Z);
|
||||
public static GridPosition operator -(GridPosition a, GridPosition b) => new(a.X - b.X, a.Z - b.Z);
|
||||
public override string ToString() => $"X: {XPosition}; Z: {ZPosition}; Floor: {Floor}";
|
||||
public static bool operator ==(GridPosition a, GridPosition b) => a.XPosition == b.XPosition && a.ZPosition == b.ZPosition && a.Floor == b.Floor;
|
||||
public static bool operator !=(GridPosition a, GridPosition b) => a.XPosition != b.XPosition || a.ZPosition != b.ZPosition || a.Floor != b.Floor;
|
||||
public override bool Equals(object gridPositionObject) => gridPositionObject is GridPosition gridPosition && Equals(gridPosition);
|
||||
public override int GetHashCode() => HashCode.Combine(XPosition, ZPosition, Floor);
|
||||
public bool Equals(GridPosition gridPosition) => XPosition == gridPosition.XPosition && ZPosition == gridPosition.ZPosition && Floor == gridPosition.Floor;
|
||||
public static GridPosition operator +(GridPosition a, GridPosition b) => new(a.XPosition + b.XPosition, a.ZPosition + b.ZPosition, a.Floor + b.Floor);
|
||||
public static GridPosition operator -(GridPosition a, GridPosition b) => new(a.XPosition - b.XPosition, a.ZPosition - b.ZPosition, a.Floor - b.Floor);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue