blob: 1e2e135831cad4768faf5c76eface0c0a1174b3b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
local class = require"common.class"
local Chunk = require"common.chunk".Chunk
local json = require"common.dkjson"
local ChunkS = class.extend(Chunk)
function ChunkS.make(cls,...)
local self = Chunk.make(cls,...)
self.dirty = false
return self
end
function ChunkS.load_from_disk(cls,cp)
-- returns nil if not there
local filename = cp:filename()
local f = io.open(filename,"r")
if not f then return nil end
local j = json.decode(f:read("a"))
self = cls:from_packet_data(j)
f:close()
return self
end
function ChunkS.save_if_dirty(self)
if self.dirty then
print("saving chunk",self.cp)
local filename = self.cp:filename()
local f = io.open(filename,"w")
f:write(self:data_packet())
f:flush()
f:close()
self.dirty = false
end
end
function ChunkS.set_at(self,...)
Chunk.set_at(self,...)
self.dirty = true
end
return {ChunkS=ChunkS}
|