aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlockhead <jbis1337@hotmail.com>2020-07-07 18:19:56 +1000
committerGabriel PĂ©rez-Cerezo <gabriel@gpcf.eu>2020-07-10 22:14:39 +0200
commitad49854fed1ccd426db5ab43d6734856a6b0bc74 (patch)
tree406e9d4cf4d1ac1c06b7ec431c4d70a0e1d70ec6
parent74bf177cc850164a0a6c13a634e7da6410f9f73a (diff)
downloadadvtrains-ad49854fed1ccd426db5ab43d6734856a6b0bc74.tar.gz
advtrains-ad49854fed1ccd426db5ab43d6734856a6b0bc74.tar.bz2
advtrains-ad49854fed1ccd426db5ab43d6734856a6b0bc74.zip
Make using the default tracks optional, even in submods
If advtrains_train_track is disabled, don't register any tracks that use its model like the LuaATC automation rail, point speed restriction rail, station/stop rail. For LuaATC, the definition for firing an event when a train runs over the rail needs to be moved into the common defs so that other mods like linetrack can use that as an interface.
-rw-r--r--advtrains_interlocking/depends.txt3
-rw-r--r--advtrains_interlocking/tsr_rail.lua23
-rw-r--r--advtrains_line_automation/depends.txt2
-rw-r--r--advtrains_line_automation/stoprail.lua23
-rw-r--r--advtrains_luaautomation/active_common.lua7
-rw-r--r--advtrains_luaautomation/atc_rail.lua71
6 files changed, 66 insertions, 63 deletions
diff --git a/advtrains_interlocking/depends.txt b/advtrains_interlocking/depends.txt
index 6f00bf6..fdf6b17 100644
--- a/advtrains_interlocking/depends.txt
+++ b/advtrains_interlocking/depends.txt
@@ -1 +1,2 @@
-advtrains \ No newline at end of file
+advtrains
+advtrains_train_track? \ No newline at end of file
diff --git a/advtrains_interlocking/tsr_rail.lua b/advtrains_interlocking/tsr_rail.lua
index 89da290..a500c8f 100644
--- a/advtrains_interlocking/tsr_rail.lua
+++ b/advtrains_interlocking/tsr_rail.lua
@@ -42,14 +42,15 @@ local adefunc = function(def, preset, suffix, rotation)
end
-
-advtrains.register_tracks("default", {
- nodename_prefix="advtrains_interlocking:dtrack_npr",
- texture_prefix="advtrains_dtrack_npr",
- models_prefix="advtrains_dtrack",
- models_suffix=".b3d",
- shared_texture="advtrains_dtrack_shared_npr.png",
- description="Point Speed Restriction Rail",
- formats={},
- get_additional_definiton = adefunc,
-}, advtrains.trackpresets.t_30deg_straightonly)
+if minetest.get_modpath("advtrains_train_track") ~= nil then
+ advtrains.register_tracks("default", {
+ nodename_prefix="advtrains_interlocking:dtrack_npr",
+ texture_prefix="advtrains_dtrack_npr",
+ models_prefix="advtrains_dtrack",
+ models_suffix=".b3d",
+ shared_texture="advtrains_dtrack_shared_npr.png",
+ description="Point Speed Restriction Rail",
+ formats={},
+ get_additional_definiton = adefunc,
+ }, advtrains.trackpresets.t_30deg_straightonly)
+end \ No newline at end of file
diff --git a/advtrains_line_automation/depends.txt b/advtrains_line_automation/depends.txt
index 53500ee..ce2e23c 100644
--- a/advtrains_line_automation/depends.txt
+++ b/advtrains_line_automation/depends.txt
@@ -1,2 +1,2 @@
advtrains_interlocking
-advtrains_train_track \ No newline at end of file
+advtrains_train_track? \ No newline at end of file
diff --git a/advtrains_line_automation/stoprail.lua b/advtrains_line_automation/stoprail.lua
index 0990876..ee8faac 100644
--- a/advtrains_line_automation/stoprail.lua
+++ b/advtrains_line_automation/stoprail.lua
@@ -204,14 +204,15 @@ local adefunc = function(def, preset, suffix, rotation)
}
end
-
-advtrains.register_tracks("default", {
- nodename_prefix="advtrains_line_automation:dtrack_stop",
- texture_prefix="advtrains_dtrack_stop",
- models_prefix="advtrains_dtrack",
- models_suffix=".b3d",
- shared_texture="advtrains_dtrack_shared_stop.png",
- description="Station/Stop Rail",
- formats={},
- get_additional_definiton = adefunc,
-}, advtrains.trackpresets.t_30deg_straightonly)
+if minetest.get_modpath("advtrains_train_track") ~= nil then
+ advtrains.register_tracks("default", {
+ nodename_prefix="advtrains_line_automation:dtrack_stop",
+ texture_prefix="advtrains_dtrack_stop",
+ models_prefix="advtrains_dtrack",
+ models_suffix=".b3d",
+ shared_texture="advtrains_dtrack_shared_stop.png",
+ description="Station/Stop Rail",
+ formats={},
+ get_additional_definiton = adefunc,
+ }, advtrains.trackpresets.t_30deg_straightonly)
+end \ No newline at end of file
diff --git a/advtrains_luaautomation/active_common.lua b/advtrains_luaautomation/active_common.lua
index 48f75ac..dac81b3 100644
--- a/advtrains_luaautomation/active_common.lua
+++ b/advtrains_luaautomation/active_common.lua
@@ -165,4 +165,11 @@ if advtrains.lines and advtrains.lines.sched then
end)
end
+ac.trackdef_advtrains_defs = {
+ on_train_enter = function(pos, train_id)
+ --do async. Event is fired in train steps
+ atlatc.interrupt.add(0, pos, {type="train", train=true, id=train_id})
+ end,
+}
+
atlatc.active=ac
diff --git a/advtrains_luaautomation/atc_rail.lua b/advtrains_luaautomation/atc_rail.lua
index ce9e0fa..0b9c911 100644
--- a/advtrains_luaautomation/atc_rail.lua
+++ b/advtrains_luaautomation/atc_rail.lua
@@ -131,46 +131,39 @@ function r.fire_event(pos, evtdata)
end
-advtrains.register_tracks("default", {
- nodename_prefix="advtrains_luaautomation:dtrack",
- texture_prefix="advtrains_dtrack_atc",
- models_prefix="advtrains_dtrack",
- models_suffix=".b3d",
- shared_texture="advtrains_dtrack_shared_atc.png",
- description=atltrans("LuaAutomation ATC Rail"),
- formats={},
- get_additional_definiton = function(def, preset, suffix, rotation)
- return {
- after_place_node = atlatc.active.after_place_node,
- after_dig_node = atlatc.active.after_dig_node,
-
- on_receive_fields = function(pos, ...)
- atlatc.active.on_receive_fields(pos, ...)
-
- --set arrowconn (for ATC)
- local ph=minetest.pos_to_string(pos)
- local _, conns=advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
- atlatc.active.nodes[ph].arrowconn=conns[1].c
- end,
-
- advtrains = {
- on_train_enter = function(pos, train_id)
- --do async. Event is fired in train steps
- atlatc.interrupt.add(0, pos, {type="train", train=true, id=train_id})
+if minetest.get_modpath("advtrains_train_track") ~= nil then
+ advtrains.register_tracks("default", {
+ nodename_prefix="advtrains_luaautomation:dtrack",
+ texture_prefix="advtrains_dtrack_atc",
+ models_prefix="advtrains_dtrack",
+ models_suffix=".b3d",
+ shared_texture="advtrains_dtrack_shared_atc.png",
+ description=atltrans("LuaAutomation ATC Rail"),
+ formats={},
+ get_additional_definiton = function(def, preset, suffix, rotation)
+ return {
+ after_place_node = atlatc.active.after_place_node,
+ after_dig_node = atlatc.active.after_dig_node,
+ on_receive_fields = function(pos, ...)
+ atlatc.active.on_receive_fields(pos, ...)
+ --set arrowconn (for ATC)
+ local ph=minetest.pos_to_string(pos)
+ local _, conns=advtrains.get_rail_info_at(pos, advtrains.all_tracktypes)
+ atlatc.active.nodes[ph].arrowconn=conns[1].c
end,
- },
- luaautomation = {
- fire_event=r.fire_event
- },
- digiline = {
- receptor = {},
- effector = {
- action = atlatc.active.on_digiline_receive
+ advtrains = atlatc.active.trackdef_advtrains_defs,
+ luaautomation = {
+ fire_event=r.fire_event
},
- },
- }
- end,
-}, advtrains.trackpresets.t_30deg_straightonly)
-
+ digiline = {
+ receptor = {},
+ effector = {
+ action = atlatc.active.on_digiline_receive
+ },
+ },
+ }
+ end,
+ }, advtrains.trackpresets.t_30deg_straightonly)
+end
atlatc.rail = r