From 00cd9d750f2ee5ce954426251ab97bb304d2e2a6 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Tue, 9 Jun 2020 17:44:13 +0200 Subject: Added Missing Files --- src/common/schems.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/common/schems.lua (limited to 'src/common/schems.lua') diff --git a/src/common/schems.lua b/src/common/schems.lua new file mode 100644 index 0000000..ace1637 --- /dev/null +++ b/src/common/schems.lua @@ -0,0 +1,42 @@ +skycraft.schems = {} + +function skycraft.get_schem(schemname) + return skycraft.schems[schemname].data +end + +function skycraft.get_schem_raw(schemname) + return skycraft.schems[schemname].raw +end + +function skycraft.load_schem(schemname) + local schem = {} + local file = io.open(skycraft.modpath .. "/schems/" .. schemname .. ".we", "r") + schem.raw = file:read() + file:seek("set") + local _, _, contents = file:read("*number", 1, "*all") + file:close() + schem.data = minetest.deserialize(contents) + skycraft.schems[schemname] = schem +end + +function skycraft.check_schem(pos, schemname) + local schem = skycraft.get_schem(schemname) + for _, n in pairs(schem) do + if minetest.get_node(vector.add(pos, n)).name ~= n.name then + return false + end + end + return true +end + +function skycraft.remove_schem(pos, schemname) + local schem = skycraft.get_schem(schemname) + for _, n in pairs(schem) do + minetest.remove_node(vector.add(pos, n)) + end +end + +function skycraft.add_schem(pos, schemname) + local schem_raw = skycraft.get_schem_raw(schemname) + worldedit.deserialize(pos, schem_raw) +end -- cgit v1.2.3