aboutsummaryrefslogtreecommitdiff
path: root/src/hud.h
Commit message (Expand)AuthorAge
* [CSM] Add basic HUD manipulation. (#6067)red-0012018-01-20
* Minimap: Add new HUD flag for minimap radar modeparamat2017-08-20
* C++ modernize: Pragma once (#6264)Loïc Blot2017-08-17
* Irrlicht cleanup: cleanup various object to use RenderingEngine (#6088)Loïc Blot2017-07-02
* hud.h: add missing false default state on use_hotbar_selected_imageLoïc Blot2017-06-19
* Cpp11 initializers 2 (#5999)Loïc Blot2017-06-17
* Add option to use neither node highlighting nor outliningezhh2017-05-15
* Environment & IGameDef code refactoring (#4985)Ner'zhul2017-01-09
* Halo: Highlight selected faceRealBadAngel2016-11-12
* Fix inventory hud scalingrubenwardy2016-04-12
* Hud: Cache hud_scaling, fix minor style issueskwolekr2016-04-10
* Hud: Fix offset being ignored by inventory barrubenwardy2016-04-10
* Use single box for halo meshRealBadAngel2016-02-11
* Cleanup selection mesh code, add shaders for halo and selection boxesRealBadAngel2016-02-08
* small drawItemStack cleanupest312016-02-08
* Use meshes to display inventory itemsRealBadAngel2016-02-07
* Hide minimap if it has been disabled by serverest312015-09-01
* minimap: Add ability to disable from serverkwolekr2015-08-13
* Make hud use fontengine toosapier2014-11-30
* Fix heart + bubble bar size on different texture packssapier2014-05-07
* Bugfix: make waypoints respect camera offsetRealBadAngel2014-05-05
* Add support for dpi based HUD scalingsapier2014-04-27
* New HUD element - waypoint.RealBadAngel2014-01-26
* Use player:set_hotbar_image() instead of hardcoded hotbar.pngPilzAdam2013-09-05
* Add support for using textures in hotbarBlockMen2013-08-25
* Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenuKahrl2013-08-14
* Add drowningPilzAdam2013-06-19
* Add ObjectRef.hud_set_hotbar_itemcount and add TOCLIENT_HUD_SET_PARAMKahrl2013-05-26
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
* Minor hud.cpp cleanupkwolekr2013-04-25
* Generalize hud_builtin_enable into hud_set_flagskwolekr2013-04-25
* Added support to disable built-in HUD elementsDiego Martínez2013-04-24
* Added offset support for HUD itemsDiego Martínez2013-04-23
* Added support for alignment in HUD itemsDiego Martínez2013-04-23
* Add direction parameter to statbars in HUD APIkwolekr2013-04-20
* Split HUD code off to hud.cpp, make into a class, extensive Lua HUD modificationkwolekr2013-04-18
="hl num">2, C=3} local door_dropdown_rev = {Right="R", Left="L", Closed="C"} local function show_stoprailform(pos, player) local pe = advtrains.encode_pos(pos) local pname = player:get_player_name() if minetest.is_protected(pos, pname) then minetest.chat_send_player(pname, "Position is protected!") return end local stdata = advtrains.lines.stops[pe] if not stdata then advtrains.lines.stops[pe] = { stn="", track="", doors="R", wait=10, ars={default=true}, ddelay=1,speed="M" } stdata = advtrains.lines.stops[pe] end local stn = advtrains.lines.stations[stdata.stn] local stnname = stn and stn.name or "" if not stdata.ddelay then stdata.ddelay = 1 end if not stdata.speed then stdata.speed = "M" end local form = "size[8,7]" form = form.."field[0.5,0.5;7,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]" form = form.."field[0.5,1.5;7,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]" form = form.."field[0.5,2.5;2,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]" form = form.."field[3,2.5;3,1;speed;"..attrans("Departure Speed")..";"..minetest.formspec_escape(stdata.speed).."]" form = form.."label[0.5,3;Door side:]" form = form.."dropdown[0.5,3;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]" form = form.."dropdown[3,3;1.5;reverse;---,Reverse;"..(stdata.reverse and 2 or 1).."]" form = form.."field[5,3.5;2,1;track;"..attrans("Track")..";"..stdata.track.."]" form = form.."field[5,4.5;2,1;wait;"..attrans("Stop Time")..";"..stdata.wait.."]" form = form.."textarea[0.5,4;4,2;ars;Trains stopping here (ARS rules);"..advtrains.interlocking.ars_to_text(stdata.ars).."]" form = form.."button[0.5,6;7,1;save;"..attrans("Save").."]" minetest.show_formspec(pname, "at_lines_stop_"..pe, form) end minetest.register_on_player_receive_fields(function(player, formname, fields) local pname = player:get_player_name() local pe = string.match(formname, "^at_lines_stop_(............)$") local pos = advtrains.decode_pos(pe) if pos then if minetest.is_protected(pos, pname) then minetest.chat_send_player(pname, "Position is protected!") return end local stdata = advtrains.lines.stops[pe] if fields.save then if fields.stn and stdata.stn ~= fields.stn then if fields.stn ~= "" then local stn = advtrains.lines.stations[fields.stn] if stn then if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stdata.stn = fields.stn else minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner) end else advtrains.lines.stations[fields.stn] = {name = fields.stnname, owner = pname} stdata.stn = fields.stn end end updatemeta(pos) show_stoprailform(pos, player) return end local stn = advtrains.lines.stations[stdata.stn] if stn and fields.stnname and fields.stnname ~= stn.name then if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stn.name = fields.stnname else minetest.chat_send_player(pname, "Not allowed to edit station name, owned by "..stn.owner) end end -- dropdowns if fields.doors then stdata.doors = door_dropdown_rev[fields.doors] or "C" end if fields.reverse then stdata.reverse = fields.reverse == "Reverse" end if fields.track then stdata.track = fields.track end if fields.wait then stdata.wait = to_int(fields.wait) or 10 end if fields.ars then stdata.ars = advtrains.interlocking.text_to_ars(fields.ars) end if fields.ddelay then stdata.ddelay = to_int(fields.ddelay) or 1 end if fields.speed then stdata.speed = to_int(fields.speed) or "M" end --TODO: signal updatemeta(pos) show_stoprailform(pos, player) end end end) local adefunc = function(def, preset, suffix, rotation) return { after_place_node=function(pos) local pe = advtrains.encode_pos(pos) advtrains.lines.stops[pe] = { stn="", track="", doors="R", wait=10 } updatemeta(pos) end, after_dig_node=function(pos) local pe = advtrains.encode_pos(pos) advtrains.lines.stops[pe] = nil end, on_rightclick = function(pos, node, player) show_stoprailform(pos, player) end, advtrains = { on_train_approach = function(pos,train_id, train, index) if train.path_cn[index] == 1 then local pe = advtrains.encode_pos(pos) local stdata = advtrains.lines.stops[pe] if stdata and stdata.stn then --TODO REMOVE AFTER SOME TIME (only migration) if not stdata.ars then stdata.ars = {default=true} end if stdata.ars and (stdata.ars.default or advtrains.interlocking.ars_check_rule_match(stdata.ars, train) ) then advtrains.lzb_add_checkpoint(train, index, 2, nil) local stn = advtrains.lines.stations[stdata.stn] local stnname = stn and stn.name or "Unknown Station" train.text_inside = "Next Stop:\n"..stnname end end end end, on_train_enter = function(pos, train_id, train, index) if train.path_cn[index] == 1 then local pe = advtrains.encode_pos(pos) local stdata = advtrains.lines.stops[pe] if not stdata then return end if stdata.ars and (stdata.ars.default or advtrains.interlocking.ars_check_rule_match(stdata.ars, train) ) then local stn = advtrains.lines.stations[stdata.stn] local stnname = stn and stn.name or "Unknown Station" -- Send ATC command and set text advtrains.atc.train_set_command(train, "B0 W O"..stdata.doors.." D"..stdata.wait.." OC "..(stdata.reverse and "R" or "").."D"..(stdata.ddelay or 1) .. "S" ..(stdata.speed or "M"), true) train.text_inside = stnname if tonumber(stdata.wait) then minetest.after(tonumber(stdata.wait), function() train.text_inside = "" end) end end end end }, } end advtrains.register_tracks("default", { nodename_prefix="advtrains_line_automation:dtrack_stop", texture_prefix="advtrains_dtrack_stop", models_prefix="advtrains_dtrack", models_suffix=".b3d", shared_texture="advtrains_dtrack_shared_stop.png", description="Station/Stop Rail", formats={}, get_additional_definiton = adefunc, }, advtrains.trackpresets.t_30deg_straightonly)