aboutsummaryrefslogtreecommitdiff
path: root/misc_nodes.lua
diff options
context:
space:
mode:
authororwell96 <mono96.mml@gmail.com>2016-08-28 20:59:54 +0200
committerorwell96 <mono96.mml@gmail.com>2016-08-28 20:59:54 +0200
commit30dd71ea5a0ec1be65d664941037ab2fd1ba4e4e (patch)
tree4d135de5e379da01ed88e6b451afe026384f96cb /misc_nodes.lua
parent0787e197511a7844c266f23541cfd51d8ae35500 (diff)
downloadadvtrains-30dd71ea5a0ec1be65d664941037ab2fd1ba4e4e.tar.gz
advtrains-30dd71ea5a0ec1be65d664941037ab2fd1ba4e4e.tar.bz2
advtrains-30dd71ea5a0ec1be65d664941037ab2fd1ba4e4e.zip
Add a platform node, make some nodes (esp. fences) not blocking trains, implement benchmarking better and optimize some things
Diffstat (limited to 'misc_nodes.lua')
-rw-r--r--misc_nodes.lua61
1 files changed, 61 insertions, 0 deletions
diff --git a/misc_nodes.lua b/misc_nodes.lua
new file mode 100644
index 0000000..3e4742c
--- /dev/null
+++ b/misc_nodes.lua
@@ -0,0 +1,61 @@
+--all nodes that do not fit in any other category
+
+function advtrains.register_platform(preset)
+ local ndef=minetest.registered_nodes[preset]
+ if not ndef then
+ minetest.log("warning", "[advtrains] register_platform couldn't find preset node "..preset)
+ return
+ end
+ minetest.log("action", dump(ndef))
+ local btex=ndef.tiles
+ if type(btex)=="table" then
+ btex=btex[1]
+ end
+ local desc=ndef.description or ""
+ local nodename=string.match(preset, ":(.+)$")
+ minetest.register_node("advtrains:platform_low_"..nodename, {
+ description = desc.." Platform (low)",
+ tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
+ groups = {cracky = 1, not_blocking_trains = 1},
+ sounds = default.node_sound_stone_defaults(),
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, -0.1, -0.1, 0.5, 0 , 0.5},
+ {-0.5, -0.5, 0 , 0.5, -0.1, 0.5}
+ },
+ },
+ paramtype2="facedir",
+ paramtype = "light",
+ sunlight_propagates = true,
+ })
+ minetest.register_node("advtrains:platform_high_"..nodename, {
+ description = desc.." Platform (high)",
+ tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
+ groups = {cracky = 1, not_blocking_trains = 1},
+ sounds = default.node_sound_stone_defaults(),
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5, 0.3, -0.1, 0.5, 0.5, 0.5},
+ {-0.5, -0.5, 0 , 0.5, 0.3, 0.5}
+ },
+ },
+ paramtype2="facedir",
+ paramtype = "light",
+ sunlight_propagates = true,
+ })
+end
+
+minetest.register_abm({
+ name = "advtrains:platform_high",
+ -- In the following two fields, also group:groupname will work.
+ nodenames = {"advtrains:platform_high"},
+ interval=1,
+ chance=1,
+ action = function(pos, node, active_object_count, active_object_count_wider) minetest.set_node(pos, {name="advtrains:platform_high_stonebrick", param2=node.param2}) end,
+ })
+
+advtrains.register_platform("default:stonebrick")