]> git.lizzy.rs Git - elidragon_v2.git/blob - mods/elidragon_schems/init.lua
Merge pull request #1 from HimbeerserverDE/master
[elidragon_v2.git] / mods / elidragon_schems / init.lua
1 local schems = {}
2 schems.loaded = {}
3
4 function schems.get(name)
5         return schems.loaded[name].data
6 end
7
8 function schems.get_raw(name)
9         return schems.loaded[name].raw
10 end
11
12 function schems.load(name)
13         local schem = {}
14         local file = io.open(minetest.get_modpath(minetest.get_current_modname()) .. "/schems/" .. name .. ".we", "r")
15         schem.raw = file:read()
16         file:seek("set")
17         local _, _, contents = file:read("*number", 1, "*all")
18         file:close()
19         schem.data = minetest.deserialize(contents)
20         schems.loaded[name] = schem
21 end
22
23 function schems.check(pos, name)
24         local schem = schems.get(name)
25         for _, n in ipairs(schem) do
26                 if minetest.get_node(vector.add(pos, n)).name ~= n.name then
27                         return false
28                 end
29         end
30         return true
31 end
32
33 function schems.remove(pos, name)
34         local schem = schems.get(name)
35         for _, n in ipairs(schem) do
36                 minetest.remove_node(vector.add(pos, n))
37         end
38 end
39
40 function schems.add_schem(pos, schemname)
41         local schem_raw = schems.get_raw(schemname)
42         worldedit.deserialize(pos, schem_raw)
43 end
44
45 elidragon.schems = schems