public void SetChunkAtPosition(int2 position, T chunk) { if (position.Equals(int2(0, 0))) { Value = chunk; } else if (position.Equals(int2(0, 1))) { North = chunk; } else if (position.Equals(int2(1, 1))) { NorthEast = chunk; } else if (position.Equals(int2(1, 0))) { East = chunk; } else if (position.Equals(int2(1, -1))) { SouthEast = chunk; } else if (position.Equals(int2(0, -1))) { South = chunk; } else if (position.Equals(int2(-1, -1))) { SouthWest = chunk; } else if (position.Equals(int2(-1, 0))) { West = chunk; } else if (position.Equals(int2(-1, 1))) { NorthWest = chunk; } else { throw new ArgumentException("Wrong argument bro", nameof(position)); } }
public readonly T ChunkFromPosition(int2 position) { if (position.Equals(int2(0, 0))) { return(Value); } if (position.Equals(int2(0, 1))) { return(North); } if (position.Equals(int2(1, 1))) { return(NorthEast); } if (position.Equals(int2(1, 0))) { return(East); } if (position.Equals(int2(1, -1))) { return(SouthEast); } if (position.Equals(int2(0, -1))) { return(South); } if (position.Equals(int2(-1, -1))) { return(SouthWest); } if (position.Equals(int2(-1, 0))) { return(West); } if (position.Equals(int2(-1, 1))) { return(NorthWest); } throw new ArgumentException("Wrong argument bro", nameof(position)); }
// Equals public bool Equals(int2x2 rhs) { return(c0.Equals(rhs.c0) && c1.Equals(rhs.c1)); }
public bool Equals(int2x4 rhs) { return(c0.Equals(rhs.c0) && c1.Equals(rhs.c1) && c2.Equals(rhs.c2) && c3.Equals(rhs.c3)); }