aboutsummaryrefslogtreecommitdiff
path: root/advtrains_luaautomation
diff options
context:
space:
mode:
authororwell <orwell@bleipb.de>2025-01-09 00:57:32 +0100
committerorwell <orwell@bleipb.de>2025-01-09 08:38:09 +0100
commit8c91ce1ec178d6d49f3ddefc57d99eecd0caef3c (patch)
treec5915919c6efe856207d136404846f6ed86670ae /advtrains_luaautomation
parent9bd34f738663cdc268db6399ecb6aaba2d4c9a28 (diff)
Various bugfixes found in lunixforks debug
Diffstat (limited to 'advtrains_luaautomation')
-rw-r--r--advtrains_luaautomation/environment.lua10
1 files changed, 7 insertions, 3 deletions
diff --git a/advtrains_luaautomation/environment.lua b/advtrains_luaautomation/environment.lua
index b54d45c..a6ed2c7 100644
--- a/advtrains_luaautomation/environment.lua
+++ b/advtrains_luaautomation/environment.lua
@@ -226,11 +226,15 @@ if advtrains.interlocking then
end
static_env.get_aspect = function(signal)
local pos = atlatc.pcnaming.resolve_pos(signal)
- return advtrains.interlocking.signal_get_aspect(pos)
+ return advtrains.interlocking.signal.get_aspect_info(pos)
end
- static_env.set_aspect = function(signal, asp)
+ static_env.set_aspect = function(signal, main_asp, rem_signal)
+ if type(main_asp) == "table" then
+ error("set_aspect: Parameters of this method have changed to (signal, main_asp, rem_signal) with introduction of distant signalling: parameter 2 is now the main aspect name (a string)")
+ end
local pos = atlatc.pcnaming.resolve_pos(signal)
- return advtrains.interlocking.signal_set_aspect(pos,asp)
+ local rem_pos = rem_signal and atlatc.pcnaming.resolve_pos(rem_signal)
+ return advtrains.interlocking.signal_set_aspect(pos, main_asp, rem_pos)
end
--section_occupancy()
an> on_place = function(itemstack, placer, pointed_thing) end, --[[ ^ Shall place item and return the leftover itemstack ^ default: minetest.item_place ]] on_use = function(itemstack, user, pointed_thing) if pointed_thing.type=="node" then for x=-1,1 do for y=-1,1 do for z=-1,1 do minetest.remove_node(vector.add(pointed_thing.under, {x=x, y=y, z=z})) end end end end end, } ) minetest.register_chatcommand("atyaw", { params = "angledeg conn1 conn2", description = "", func = function(name, param) local angledegs, conn1s, conn2s = string.match(param, "^(%S+)%s(%S+)%s(%S+)$") if angledegs and conn1s and conn2s then local angledeg, conn1, conn2 = angledegs+0,conn1s+0,conn2s+0 local yaw = angledeg*math.pi/180 local yaw1 = advtrains.dir_to_angle(conn1) local yaw2 = advtrains.dir_to_angle(conn2) local adiff1 = advtrains.minAngleDiffRad(yaw, yaw1) local adiff2 = advtrains.minAngleDiffRad(yaw, yaw2) atdebug("yaw1",atfloor(yaw1*180/math.pi)) atdebug("yaw2",atfloor(yaw2*180/math.pi)) atdebug("dif1",atfloor(adiff1*180/math.pi)) atdebug("dif2",atfloor(adiff2*180/math.pi)) minetest.chat_send_all(advtrains.yawToAnyDir(yaw)) return true, advtrains.yawToDirection(yaw, conn1, conn2) end end, }) minetest.register_tool("advtrains:wagonpos_tester", { description = "Wagon position tester", groups = {cracky=1}, -- key=name, value=rating; rating=1..3. inventory_image = "drwho_screwdriver.png", wield_image = "drwho_screwdriver.png", stack_max = 1, range = 7.0, on_place = function(itemstack, placer, pointed_thing) end, --[[ ^ Shall place item and return the leftover itemstack ^ default: minetest.item_place ]] on_use = function(itemstack, user, pointed_thing) if pointed_thing.type=="node" then local pos = pointed_thing.under local trains = advtrains.occ.get_trains_at(pos) for train_id, index in pairs(trains) do local wagon_num, wagon_id, wagon_data, offset_from_center = advtrains.get_wagon_at_index(train_id, index) if wagon_num then atdebug(wagon_num, wagon_id, offset_from_center) end end end end, } ) local function trackitest(initial_pos, initial_connid) local ti, pos, connid, ok ti = advtrains.get_track_iterator(initial_pos, initial_connid, 500, true) atdebug("Starting at pos:",initial_pos,initial_connid) while ti:has_next_branch() do pos, connid = ti:next_branch() -- in first iteration, this will be the node at initial_pos. In subsequent iterations this will be the switch node from which we are branching off atdebug("Next Branch:",pos, connid) ok = true while ok do