public override int GetNorthTextureIndex(ILocalChunkCache manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: if (topblock != 0) { return(0); } else { return(2); } case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } }
private static OrientationFlags FindCorner(Vector2 point, OrientationFlags upperLeftCorner, OrientationFlags upperRightCorner, OrientationFlags lowerLeftCorner, OrientationFlags lowerRightCorner) { if (point.X < 0.5f) { if (point.Y < 0.5f) { return(upperLeftCorner); } else { return(lowerLeftCorner); } } else { if (point.Y < 0.5f) { return(upperRightCorner); } else { return(lowerRightCorner); } } }
private static OrientationFlags FindEdge(Vector2 point, OrientationFlags upper, OrientationFlags lower, OrientationFlags left, OrientationFlags right) { if (point.X > point.Y) { if (1f - point.X > point.Y) { return(upper); } else { return(right); } } else { if (1f - point.X > point.Y) { return(left); } else { return(lower); } } }
public override int GetNorthTextureIndex(IPlanetResourceManager manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(0); case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } }
public override int GetSouthTextureRotation(ILocalChunkCache manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: return(1); case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(0); } }
public override int GetTextureRotation(Wall wall, ILocalChunkCache manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); switch (wall) { case Wall.Top: case Wall.Bottom: case Wall.Back: case Wall.Front: switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: return(1); case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(0); } case Wall.Left: case Wall.Right: switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(1); case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(0); } default: return(base.GetTextureRotation(wall, manager, x, y, z)); //should never ever happen } }
private static OrientationFlags FindEdge(Vector2 point, OrientationFlags upper, OrientationFlags lower, OrientationFlags left, OrientationFlags right) { if (point.X > point.Y) { if (1f - point.X > point.Y) return upper; else return right; } else { if (1f - point.X > point.Y) return left; else return lower; } }
private static OrientationFlags FindCorner(Vector2 point, OrientationFlags upperLeftCorner, OrientationFlags upperRightCorner, OrientationFlags lowerLeftCorner, OrientationFlags lowerRightCorner) { if (point.X < 0.5f) { if (point.Y < 0.5f) return upperLeftCorner; else return lowerLeftCorner; } else { if (point.Y < 0.5f) return upperRightCorner; else return lowerRightCorner; } }
/// <summary> /// Setzt einen neuen Block. /// </summary> /// <param name="blockIndex"></param> /// <param name="orientation"></param> public void Apply(Index3 blockIndex, OrientationFlags orientation) { lastApply = blockIndex; lastOrientation = orientation; }
/// <summary> /// Utility function used to determine if the passed in MLWorldPlane object's /// flags contain the passed in OrientationFlags. /// </summary> /// <param name="plane">The MLWorldPlane object to be checked</param> /// <param name="flag">The OrientationFlags to be checked</param> public static bool DoesPlaneHaveFlag(MLWorldPlane plane, OrientationFlags flag) { return (plane.Flags & (uint)flag) == (uint)flag; }
public void Apply(Index3 blockIndex, OrientationFlags orientation) { lastApply = blockIndex; lastOrientation = orientation; }
public IBlock GetInstance(OrientationFlags orientation) { return new GroundBlock(); }
public override int GetTextureIndex(Wall wall, ILocalChunkCache manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); switch (wall) { case Wall.Top: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(1); case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: if (topblock != 0) { return(0); } else { return(2); } } } case Wall.Bottom: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(1); case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: if (topblock != 0) { return(0); } else { return(2); } } } case Wall.Front: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: if (topblock != 0) { return(0); } else { return(2); } case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } case Wall.Back: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: if (topblock != 0) { return(0); } else { return(2); } case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } case Wall.Left: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: if (topblock != 0) { return(0); } else { return(2); } case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } case Wall.Right: { ushort topblock = manager.GetBlock(x, y, z + 1); switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: if (topblock != 0) { return(0); } else { return(2); } case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } } // Should never happen // Assert here return(-1); }
public IBlock GetInstance(OrientationFlags orientation) { return new WoodBlock() { Orientation = orientation }; }
public IBlock GetInstance(OrientationFlags orientation) { return new StoneBlock(); }
public override int GetTextureIndex(Wall wall, ILocalChunkCache manager, int x, int y, int z) { OrientationFlags orientation = (OrientationFlags)manager.GetBlockMeta(x, y, z); switch (wall) { case Wall.Top: case Wall.Bottom: { switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(1); case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(0); } } case Wall.Back: // North case Wall.Front: // South { switch (orientation) { case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: return(0); case OrientationFlags.SideWest: case OrientationFlags.SideEast: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } case Wall.Left: case Wall.Right: { switch (orientation) { case OrientationFlags.SideWest: case OrientationFlags.SideEast: return(0); case OrientationFlags.SideSouth: case OrientationFlags.SideNorth: case OrientationFlags.SideBottom: case OrientationFlags.SideTop: default: return(1); } } } // Assert this return(-1); }