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)); }
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); } }
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); }
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); }
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); }