summaryrefslogtreecommitdiff
path: root/homedecor_common/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'homedecor_common/init.lua')
-rw-r--r--homedecor_common/init.lua82
1 files changed, 82 insertions, 0 deletions
diff --git a/homedecor_common/init.lua b/homedecor_common/init.lua
new file mode 100644
index 0000000..6d81c44
--- /dev/null
+++ b/homedecor_common/init.lua
@@ -0,0 +1,82 @@
+-- Home Decor API/functions, and common textures and models
+-- by VanessaE
+
+local modpath = minetest.get_modpath("homedecor_common")
+
+homedecor = {}
+homedecor.modpath = modpath
+
+-- Intllib support
+homedecor.gettext, homedecor.ngettext = dofile(modpath.."/intllib.lua")
+
+local S = homedecor.gettext
+
+-- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
+function homedecor.find_ceiling(itemstack, placer, pointed_thing)
+ -- most of this is copied from the rotate-and-place function in builtin
+ local unode = core.get_node_or_nil(pointed_thing.under)
+ if not unode then
+ return
+ end
+ local undef = core.registered_nodes[unode.name]
+ if undef and undef.on_rightclick then
+ undef.on_rightclick(pointed_thing.under, unode, placer,
+ itemstack, pointed_thing)
+ return
+ end
+
+ local above = pointed_thing.above
+ local under = pointed_thing.under
+ local iswall = (above.y == under.y)
+ local isceiling = not iswall and (above.y < under.y)
+ local anode = core.get_node_or_nil(above)
+ if not anode then
+ return
+ end
+ local pos = pointed_thing.above
+ local node = anode
+
+ if undef and undef.buildable_to then
+ pos = pointed_thing.under
+ node = unode
+ end
+
+ if core.is_protected(pos, placer:get_player_name()) then
+ core.record_protection_violation(pos,
+ placer:get_player_name())
+ return
+ end
+
+ local ndef = core.registered_nodes[node.name]
+ if not ndef or not ndef.buildable_to then
+ return
+ end
+ return isceiling, pos
+end
+
+screwdriver = screwdriver or {}
+
+homedecor.plain_wood = { name = "homedecor_generic_wood_plain.png", color = 0xffa76820 }
+homedecor.mahogany_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff7d2506 }
+homedecor.white_wood = "homedecor_generic_wood_plain.png"
+homedecor.dark_wood = { name = "homedecor_generic_wood_plain.png", color = 0xff39240f }
+homedecor.lux_wood = { name = "homedecor_generic_wood_luxury.png", color = 0xff643f23 }
+
+homedecor.color_black = 0xff303030
+homedecor.color_dark_grey = 0xff606060
+homedecor.color_med_grey = 0xffa0a0a0
+
+-- load different handler subsystems
+dofile(modpath.."/nodeboxes.lua")
+dofile(modpath.."/expansion.lua")
+dofile(modpath.."/furnaces.lua")
+dofile(modpath.."/inventory.lua")
+dofile(modpath.."/registration.lua")
+dofile(modpath.."/water_particles.lua")
+dofile(modpath.."/mt_game_beds_functions.lua")
+dofile(modpath.."/sit.lua")
+dofile(modpath.."/crafts.lua")
+
+if minetest.settings:get_bool("log_mod") then
+ minetest.log("action", "[HomeDecor API] " .. S("Loaded!"))
+end