Ejemplo n.º 1
0
        public void BreakCube(CubeCoordinates coordinates)
        {
            var chunkCoordinates = CubeChunkHelper.FindBaseCoordinates(coordinates);

            var tookChunk = TakeChunkAt(chunkCoordinates);

            int cubePositionInChunk = CubeChunkHelper.GetIndexFromCoordinates(coordinates);

            tookChunk[cubePositionInChunk] = null;
        }
Ejemplo n.º 2
0
        public CubeColor GetCubeColorAt(CubeCoordinates coordinates)         // TODO: Redundance fix
        {
            var chunkCoordinates = CubeChunkHelper.FindBaseCoordinates(coordinates);

            var tookChunk = TakeChunkAt(chunkCoordinates);

            int cubePositionInChunk = CubeChunkHelper.GetIndexFromCoordinates(coordinates);

            return(tookChunk[cubePositionInChunk]);
        }
Ejemplo n.º 3
0
        public void LayCube(Cube cube)
        {
            var chunkCoordinates = CubeChunkHelper.FindBaseCoordinates(cube.Coordinates);

            var tookChunk = TakeChunkAt(chunkCoordinates);

            int cubePositionInChunk = CubeChunkHelper.GetIndexFromCoordinates(cube.Coordinates);

            tookChunk[cubePositionInChunk] = cube.Color;
        }
Ejemplo n.º 4
0
        public bool IsFreeSpace(CubeCoordinates coordinates)         // TO-OPTIMIZE
        {
            var chunkCoordinates = CubeChunkHelper.FindBaseCoordinates(coordinates);

            var gotChunk = (from chunk in LoadedChunks
                            where chunk.Coordinates == chunkCoordinates
                            select chunk).FirstOrDefault();

            if (gotChunk == null)             // don't try to check in a not loaded chunk, or it will crash
            {
                return(false);
            }

            int cubePositionInChunk = CubeChunkHelper.GetIndexFromCoordinates(coordinates);

            if (!(gotChunk[cubePositionInChunk] == null))
            {
                return(false);
            }

            return(true);
        }