rset=UTF-8 Last-Modified: Sun, 01 Nov 2026 16:16:56 GMT Expires: Wed, 29 Oct 2036 16:16:56 GMT advtrains.git - Advtrains mod for minetest.
aboutsummaryrefslogtreecommitdiff
path: root/advtrains/trainlogic.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains/trainlogic.lua')
-rw-r--r--advtrains/trainlogic.lua4
1 files changed, 2 insertions, 2 deletions
diff --git a/advtrains/trainlogic.lua b/advtrains/trainlogic.lua
index 7e9a613..c0c3888 100644
--- a/advtrains/trainlogic.lua
+++ b/advtrains/trainlogic.lua
@@ -434,7 +434,7 @@ function advtrains.train_step_b(id, train, dtime)
else s = (v1*v1 - v0*v0)/2/a
end
train.ctrl.lzb = nil
- if lzblimit.velocity and lzblimit.velocity < train.velocity then
+ if lzblimit.velocity and lzblimit.lever < train.lever then
tmp_lever = lzblimit.lever
while (lzbmap[tmp_lever].t > dtime) do
tmp_lever = tmp_lever - 1
@@ -457,7 +457,7 @@ function advtrains.train_step_b(id, train, dtime)
a = (v1 - train.velocity)/dtime
--- 4b. Move train and update train properties ---
local pdist = train.path_dist[math.floor(train.index)] or 1
- local distance = s / pdist
+ local distance = pdist == 0 and s or s / pdist
train.lever = tmp_lever
train.velocity = v1
train.acceleration = a
pan>pcnaming.name_map=stuff end end function atlatc.pcnaming.save() return atlatc.pcnaming.name_map end function atlatc.pcnaming.resolve_pos(pos, func_name) if type(pos)=="string" then local e = atlatc.pcnaming.name_map[pos] if e then return e end elseif type(pos)=="table" and pos.x and pos.y and pos.z then return pos end error("Invalid position supplied to " .. (func_name or "???")..": " .. dump(pos)) end minetest.register_craftitem("advtrains_luaautomation:pcnaming",{ description = attrans("Passive Component Naming Tool\n\nRight-click to name a passive component."), groups = {cracky=1}, -- key=name, value=rating; rating=1..3. inventory_image = "atlatc_pcnaming.png", wield_image = "atlatc_pcnaming.png", stack_max = 1, on_place = function(itemstack, placer, pointed_thing) local pname = placer:get_player_name() if not pname then return end if not minetest.check_player_privs(pname, {atlatc=true}) then minetest.chat_send_player(pname, "Missing privilege: atlatc") return end if pointed_thing.type=="node" then local pos=pointed_thing.under if advtrains.is_protected(pos, pname) then minetest.record_protection_violation(pos, pname) return end local node = advtrains.ndb.get_node(pos) if node.name and (minetest.get_item_group(node.name, "advtrains_signal")>0 or advtrains.is_passive(pos)) then --look if this one already has a name local pn="" for name, npos in pairs(atlatc.pcnaming.name_map) do if vector.equals(npos, pos) then pn=name end end minetest.show_formspec(pname, "atlatc_naming_"..minetest.pos_to_string(pos), "field[pn;Set name of component (empty to clear);"..minetest.formspec_escape(pn).."]") end end end, }) minetest.register_on_player_receive_fields(function(player, formname, fields) local pts=string.match(formname, "^atlatc_naming_(.+)") if pts then local pos=minetest.string_to_pos(pts) if fields.pn then --first remove all occurences for name, npos in pairs(atlatc.pcnaming.name_map) do if vector.equals(npos, pos) then atlatc.pcnaming.name_map[name]=nil end end if fields.pn~="" then atlatc.pcnaming.name_map[fields.pn]=pos end end end end)