diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2020-07-26 23:28:24 +0200 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2020-07-26 23:30:07 +0200 |
commit | 45413ee5c031d9d44342a09f4ac8b412a75568be (patch) | |
tree | 3502fafaed7d8e4fca704b09cab3381f694a1453 | |
parent | c54e0b341a88349e1a4fc7d902fdd9d9e1a6040d (diff) | |
download | advtrains-45413ee5c031d9d44342a09f4ac8b412a75568be.tar.gz advtrains-45413ee5c031d9d44342a09f4ac8b412a75568be.tar.bz2 advtrains-45413ee5c031d9d44342a09f4ac8b412a75568be.zip |
Add function to step through freight codes
-rw-r--r-- | advtrains/trainlogic.lua | 10 | ||||
-rw-r--r-- | advtrains/wagons.lua | 3 | ||||
-rw-r--r-- | advtrains_luaautomation/atc_rail.lua | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua index 1bda0f2..2c2e247 100644 --- a/advtrains/trainlogic.lua +++ b/advtrains/trainlogic.lua @@ -922,6 +922,16 @@ function advtrains.split_train_at_fc(train) end end +function advtrains.train_step_fc(train) + for i=1,#train.trainparts do + local w_id = train.trainparts[i] + local data = advtrains.wagons[w_id] + if data then + advtrains.step_fc(data) + end + end +end + function advtrains.split_train_at_index(train, index) -- this function splits a train at index, creating a new train from the back part of the train. diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index d805bc6..71557fa 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -874,6 +874,7 @@ function wagon.prev_fc(data) end
function wagon.next_fc(data)
+ if not data.fc then return end
if data.fcrev then
wagon.prev_fc(data)
return
@@ -1127,7 +1128,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) wagon.show_wagon_properties({id=uid}, pname)
end
if fields.fcn then
- wagon.next_fc(data)
+ advtrains.step_fc(data)
wagon.show_wagon_properties({id=uid}, pname)
end
end
diff --git a/advtrains_luaautomation/atc_rail.lua b/advtrains_luaautomation/atc_rail.lua index 69c519a..04e2f85 100644 --- a/advtrains_luaautomation/atc_rail.lua +++ b/advtrains_luaautomation/atc_rail.lua @@ -75,6 +75,10 @@ function r.fire_event(pos, evtdata) end return fc end, + step_fc = function() + if not train_id then return false end + advtrains.train_step_fc(train) + end, set_shunt = function() if not train_id then return false end train.autocouple = true |