diff options
author | orwell96 <mono96.mml@gmail.com> | 2016-08-28 20:59:54 +0200 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2016-08-28 20:59:54 +0200 |
commit | 30dd71ea5a0ec1be65d664941037ab2fd1ba4e4e (patch) | |
tree | 4d135de5e379da01ed88e6b451afe026384f96cb /misc_nodes.lua | |
parent | 0787e197511a7844c266f23541cfd51d8ae35500 (diff) | |
download | advtrains-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.lua | 61 |
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") |