/games/minimal/mods/default/textures/

l opt">=false if pc.jump then train.ctrl_user = 1 act=true end -- If atc command set, only "Jump" key can clear command. To prevent accidental control. if train.tarvelocity or train.atc_command then return end if pc.up then train.ctrl_user=4 act=true end if pc.down then if train.velocity>0 then if pc.jump then train.ctrl_user = 0 else train.ctrl_user = 2 end act=true else advtrains.invert_train(train.id) advtrains.atc.train_reset_command(train) end end if pc.left then if train.door_open ~= 0 then train.door_open = 0 else train.door_open = -1 end end if pc.right then if train.door_open ~= 0 then train.door_open = 0 else train.door_open = 1 end end if not act then train.ctrl_user = nil end end end function advtrains.update_driver_hud(pname, train, flip) local inside=train.text_inside or "" local ft, ht = advtrains.hud_train_format(train, flip) advtrains.set_trainhud(pname, inside.."\n"..ft, ht) end function advtrains.clear_driver_hud(pname) advtrains.set_trainhud(pname, "") end function advtrains.set_trainhud(name, text, driver) local hud = advtrains.hud[name] local player=minetest.get_player_by_name(name) if not player then return end local drivertext = driver or "" local driverhud = { hud_elem_type = "image", name = "ADVTRAINS_DRIVER", position = {x=0.5, y=1}, offset = {x=0,y=-170}, text = drivertext, alignment = {x=0,y=-1}, scale = {x=1,y=1}, } if not hud then hud = {} advtrains.hud[name] = hud hud.id = player:hud_add { hud_elem_type = "text", name = "ADVTRAINS", number = 0xFFFFFF, position = {x=0.5, y=1}, offset = {x=0, y=-300}, text = text, scale = {x=200, y=60}, alignment = {x=0, y=-1}, } hud.driver = player:hud_add(driverhud) hud.oldText = text hud.oldDriver = drivertext else if hud.oldText ~= text then player:hud_change(hud.id, "text", text) hud.oldText=text end if hud.driver then if hud.oldDriver ~= drivertext then player:hud_change(hud.driver, "text", drivertext) hud.oldDriver = drivertext end elseif driver then hud.driver = player:hud_add(driverhud) hud.oldDriver = drivertext end end end function advtrains.set_help_hud(name, text) local hud = advtrains.hhud[name] local player=minetest.get_player_by_name(name) if not player then return end if not hud then hud = {} advtrains.hhud[name] = hud hud.id = player:hud_add({ hud_elem_type = "text", name = "ADVTRAINS_HELP", number = 0xFFFFFF, position = {x=1, y=0.3}, offset = {x=0, y=0}, text = text, scale = {x=200, y=60}, alignment = {x=1, y=0}, }) hud.oldText=text return elseif hud.oldText ~= text then player:hud_change(hud.id, "text", text) hud.oldText=text end end --train.lever: --Speed control lever in train, for new train control system. --[[ Value Disp Control Meaning 0 BB S+Space Emergency Brake 1 B Space Normal Brake 2 - S Roll 3 o <none> Stay at speed 4 + W Accelerate ]] function advtrains.hud_train_format(train, flip) if not train then return "","" end local sformat = string.format -- this appears to be faster than (...):format local max = train.max_speed or 10 local res = train.speed_restriction local vel = advtrains.abs_ceil(train.velocity) local vel_kmh=advtrains.abs_ceil(advtrains.ms_to_kmh(train.velocity)) local tlev=train.lever or 3 if train.velocity==0 and not train.active_control then tlev=1 end if train.hud_lzb_effect_tmr then tlev=1 end local hud = T.combine(440, 110, "black") local st = {} if train.debug then st = {train.debug} end -- lever hud:add_multicolor_fill_topdown(275, 10, 5, 90, 1, "cyan", 1, "white", 2, "orange", 1, "red") hud:add_lever_topdown(280, 10, 30, 90, 18, 6, (4-tlev)/4, "gray", "darkslategray") -- reverser hud:add(245, 10, T"advtrains_hud_arrow.png":transform"FY":multiply(flip and "gray" or "cyan")) hud:add(245, 85, T"advtrains_hud_arrow.png":multiply(flip and "orange" or "gray")) hud:add_lever_topdown(240, 30, 25, 50, 15, 5, flip and 1 or 0, "gray", "darkslategray") -- train control/safety indication hud:add(10, 10, T"advtrains_hud_atc.png":resize(30, 30):multiply((train.tarvelocity or train.atc_command) and "cyan" or "darkslategray")) hud:add(50, 10, T"advtrains_hud_lzb.png":resize(30, 30):multiply(train.hud_lzb_effect_tmr and "red" or "darkslategray"))