diff options
Diffstat (limited to 'trainhud.lua')
-rw-r--r-- | trainhud.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/trainhud.lua b/trainhud.lua new file mode 100644 index 0000000..b64c81c --- /dev/null +++ b/trainhud.lua @@ -0,0 +1,56 @@ + +advtrains.hud = {} + +minetest.register_on_leaveplayer(function(player) +advtrains.hud[player:get_player_name()] = nil +end) + +function advtrains.set_trainhud(name, text) + local hud = advtrains.hud[name] + local player=minetest.get_player_by_name(name) + 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=0.7}, + offset = {x=0, y=0}, + text = text, + scale = {x=200, y=60}, + alignment = {x=0, y=0}, + }) + hud.oldText=text + return + elseif hud.oldText ~= text then + player:hud_change(hud.id, "text", text) + hud.oldText=text + end +end +function advtrains.hud_train_format(train, flip) + local fct=1 + if flip then fct=-1 end + if not train then return "" end + local max=advtrains.all_traintypes[train.traintype].max_speed or 10 + local vel=math.ceil(train.velocity)*fct + local tvel=math.ceil(train.tarvelocity)*fct + local firstLine, secondLine + if vel<0 then + firstLine="Speed: <"..string.rep("_", vel+max)..string.rep("+", -vel).."|"..string.rep("_", max)..">" + else + firstLine="Speed: <"..string.rep("_", max).."|"..string.rep("+", vel)..string.rep("_", max-vel)..">" + end + if tvel<0 then + secondLine="Target: <"..string.rep("_", tvel+max)..string.rep("+", -tvel).."|"..string.rep("_", max)..">" + else + secondLine="Target: <"..string.rep("_", max).."|"..string.rep("+", tvel)..string.rep("_", max-tvel)..">" + end + if vel==0 then + return firstLine.."\n"..secondLine.."\nup for forward, down for backward, use to get off train. " + elseif vel<0 then + return firstLine.."\n"..secondLine.."\nPress up to decelerate, down to accelerate, sneak to stop." + elseif vel>0 then + return firstLine.."\n"..secondLine.."\nPress up to accelerate, down to decelerate, sneak to stop." + end +end
\ No newline at end of file |