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));
        }
 private Vector3I GetBaseDifference(EntityPosition other)
 {
     return((BasePosition - other.BasePosition).Vec * Tile.RealSize);
 }
 public Vector3 RelativeTo(EntityPosition other)
 {
     return(GetBaseDifference(other) + RelativePosition - other.RelativePosition);
 }