]> git.lizzy.rs Git - dragonblocks3d-lua.git/blob - modules/WorldSystem/src/chunk.lua
Refactoring
[dragonblocks3d-lua.git] / modules / WorldSystem / src / chunk.lua
1 local Chunk = Dragonblocks.create_class()
2
3 local size = 16
4 local size_squared = math.pow(size, 2)
5
6 function Chunk:constructor()
7         self.blocks = {}
8         MapGen:generate(self)
9         if Client then
10                 Client.graphics:create_chunk_meshes(self)
11         end
12 end
13
14 function Chunk:get_pos_hash(pos)
15         return pos.x + size * pos.y + size_squared * pos.z
16 end
17
18 function Chunk:add_block(pos, def)
19         local block = WorldSystem.Block(def, pos)
20         self.blocks[self:get_pos_hash(pos)] = block
21 end
22
23 function Chunk:remove_block(pos)
24         self.blocks[self:get_pos_hash(pos)] = nil
25 end
26
27 function Chunk:get_block(pos)
28         return self.blocks[self:get_pos_hash(pos)]
29 end
30
31 return Chunk