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);
            }
        }
        public override int GetBottomTextureRotation(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 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);
            }
        }
示例#4
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
            }
        }
        public override int GetEastTextureIndex(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.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;
            }
        }
示例#6
0
        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 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);
        }