aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--advtrains/misc_nodes.lua88
-rw-r--r--advtrains/mod.conf2
2 files changed, 85 insertions, 5 deletions
diff --git a/advtrains/misc_nodes.lua b/advtrains/misc_nodes.lua
index bcf7329..2c46062 100644
--- a/advtrains/misc_nodes.lua
+++ b/advtrains/misc_nodes.lua
@@ -1,6 +1,6 @@
--all nodes that do not fit in any other category
-function advtrains.register_platform(modprefix, preset)
+function advtrains.register_platform(modprefix, preset, use_full_nodename)
local ndef=minetest.registered_nodes[preset]
if not ndef then
minetest.log("warning", " register_platform couldn't find preset node "..preset)
@@ -9,9 +9,24 @@ function advtrains.register_platform(modprefix, preset)
local btex=ndef.tiles
if type(btex)=="table" then
btex=btex[1]
+ if type(btex) == "table" then
+ btex = btex.name
+ if type(btex) ~= "string" then
+ error("Error in tiles when registering a platform for "..preset.."!")
+ end
+ end
end
local desc=ndef.description or ""
- local nodename=string.match(preset, ":(.+)$")
+ local nodename
+
+ if use_full_nodename then
+ local a, b = string.match(":"..preset, ":(.+):(.+)$")
+ nodename = a.."_"..b
+ -- minetest.log("warning", "DEBUG: generated name '"..nodename.."'")
+ else
+ nodename =string.match(preset, ":(.+)$")
+ end
+ -- minetest.log("action", "DEBUG: will register platforms for "..preset.." using nodename = ("..nodename..")")
minetest.register_node(modprefix .. ":platform_low_"..nodename, {
description = attrans("@1 Platform (low)", desc),
tiles = {btex.."^advtrains_platform.png", btex, btex, btex, btex, btex},
@@ -118,6 +133,71 @@ function advtrains.register_platform(modprefix, preset)
})
end
-
advtrains.register_platform("advtrains", "default:stonebrick")
-advtrains.register_platform("advtrains", "default:sandstonebrick")
+-- advtrains.register_platform("advtrains", "default:sandstonebrick")
+
+local platform_materials = {
+ "basic_materials:cement_block",
+ "basic_materials:concrete_block",
+ "building_blocks:Tar",
+ {"cherrytree:wood"},
+ {"chestnuttree:wood"},
+ "darkage:basalt",
+ "darkage:basalt_brick",
+ -- "darkage:basalt_cobble",
+ --"darkage:gneiss",
+ "darkage:gneiss_brick",
+ --"darkage:gneiss_cobble",
+ {"darkage:marble"},
+ -- "darkage:ors",
+ "darkage:ors_brick",
+ -- "darkage:ors_cobble",
+ "darkage:serpentine",
+ -- "darkage:slate",
+ "darkage:slate_brick",
+ -- "darkage:slate_cobble",
+ "darkage:stone_brick",
+ "default:acacia_wood",
+ "default:aspen_wood",
+ "default:desert_stone",
+ "default:desert_stone_block",
+ "default:junglewood",
+ "default:pine_wood",
+ "default:steelblock",
+ "default:stone",
+ "default:stone_block",
+ "default:wood",
+ {"ebony:wood"},
+ "moretrees:cedar_planks",
+ "moretrees:date_palm_planks",
+ "moretrees:birch_planks",
+ -- "moretrees:beech_planks",
+ "moretrees:apple_tree_planks",
+ "moretrees:fir_planks",
+ "moretrees:oak_planks",
+ "moretrees:palm_planks",
+ "moretrees:rubber_tree_planks",
+ "moretrees:sequoia_planks",
+ "moretrees:spruce_planks",
+ "moretrees:poplar_planks",
+ "moreblocks:wood_tile_center",
+ "moreblocks:wood_tile_full",
+ {"plumtree:wood"},
+ {"technic:marble"},
+ {"willow:wood"},
+}
+for _, name in ipairs(platform_materials) do
+ local nodename, use_full_nodename
+ if type(name) == "string" then
+ nodename = name
+ else
+ nodename = name[1]
+ use_full_nodename = true
+ end
+
+ if minetest.registered_nodes[nodename] then
+ advtrains.register_platform("advtrains", nodename, use_full_nodename)
+ else
+ minetest.log("warning", nodename.." not find as a node to build a platform")
+ end
+end
diff --git a/advtrains/mod.conf b/advtrains/mod.conf
index 5808d1a..20ac6c0 100644
--- a/advtrains/mod.conf
+++ b/advtrains/mod.conf
@@ -4,4 +4,4 @@ description=Core system for realistic trains in Minetest
author=orwell96
depends=serialize_lib
-optional_depends=mesecons,mesecons_switch,digtron
+optional_depends=mesecons,mesecons_switch,digtron,moretrees,ebony,cherrytree,chestnuttree,plumtree,willow,darkage,basic_materials,building_blocks,technic_worldgen