Example #1
0
        public byte GetLight(int x, int y, int z)
        {
            Vector3i chunkPos = OCChunk.ToChunkPosition(x, y, z);
            Vector3i localPos = OCChunk.ToLocalPosition(x, y, z);

            return(GetLight(chunkPos, localPos, y));
        }
Example #2
0
        public static void SetLightDirty(OCMap map, Vector3i pos)
        {
            Vector3i chunkPos = OCChunk.ToChunkPosition(pos);
            Vector3i localPos = OCChunk.ToLocalPosition(pos);

            SetChunkLightDirty(map, chunkPos);

            if (localPos.x == 0)
            {
                SetChunkLightDirty(map, chunkPos - Vector3i.right);
            }
            if (localPos.y == 0)
            {
                SetChunkLightDirty(map, chunkPos - Vector3i.up);
            }
            if (localPos.z == 0)
            {
                SetChunkLightDirty(map, chunkPos - Vector3i.forward);
            }

            if (localPos.x == OCChunk.SIZE_X - 1)
            {
                SetChunkLightDirty(map, chunkPos + Vector3i.right);
            }
            if (localPos.y == OCChunk.SIZE_Y - 1)
            {
                SetChunkLightDirty(map, chunkPos + Vector3i.up);
            }
            if (localPos.z == OCChunk.SIZE_Z - 1)
            {
                SetChunkLightDirty(map, chunkPos + Vector3i.forward);
            }
        }
Example #3
0
    public void Set(I val, int x, int y, int z)
    {
        Vector3i    chunkPos = OCChunk.ToChunkPosition(x, y, z);
        Vector3i    localPos = OCChunk.ToLocalPosition(x, y, z);
        Chunk3D <I> chunk    = GetChunkInstance(chunkPos);

        chunk.Set(val, localPos);
    }
Example #4
0
    public I Get(int x, int y, int z)
    {
        Vector3i    chunkPos = OCChunk.ToChunkPosition(x, y, z);
        Vector3i    localPos = OCChunk.ToLocalPosition(x, y, z);
        Chunk3D <I> chunk    = GetChunk(chunkPos);

        if (chunk != null)
        {
            return(chunk.Get(localPos));
        }
        return(defaultValue);
    }
Example #5
0
        public bool SetMaxLight(byte light, int x, int y, int z)
        {
            Vector3i       chunkPos = OCChunk.ToChunkPosition(x, y, z);
            Vector3i       localPos = OCChunk.ToLocalPosition(x, y, z);
            Chunk3D <byte> chunk    = lights.GetChunkInstance(chunkPos);
            byte           oldLight = chunk.Get(localPos);

            if (oldLight < light)
            {
                chunk.Set(light, localPos);
                return(true);
            }
            return(false);
        }