local class = require 'r.class' local SIZE = 64 local ChunkMap = class() function ChunkMap.make(cls) return setmetatable({d={}},cls) end local function key(pos) return pos.x .. ':' .. pos.y end function ChunkMap.add(self,pos,val) self.d[key(pos)] = val end function ChunkMap.remove(self,pos) self:add(pos,nil) end function ChunkMap.get(self,pos) return self.d[key(pos)] end local function idx(pos) return 1+pos.x*SIZE+pos.y end function ChunkMap.tile(self,pos) local cp = (pos/SIZE):floor() local ix = idx(pos-cp*SIZE) return self:get(cp)[ix] end return { ChunkMap = ChunkMap, }