public static EntityPosition Create(TilePos basePosition, EntityPosition other) { var offset = basePosition - other.BasePosition; var relativePosition = other.RelativePosition - offset.Vec * Tile.RealSize; return(new EntityPosition(basePosition, relativePosition)); }
public static EntityPosition Create(TilePos basePosition, Vector3 relativePosition) { var offset = (Vector3I)(relativePosition / Tile.RealSize).Floor(); basePosition = basePosition.Offset(offset); relativePosition -= offset * Tile.RealSize; return(new EntityPosition(basePosition, relativePosition)); }
public bool Equals(TilePos other) { return(Vec == other.Vec); }
private EntityPosition(TilePos basePos, Vector3 relativePos) { BasePosition = basePos; RelativePosition = relativePos; }