aboutsummaryrefslogtreecommitdiff
path: root/src/guiVolumeChange.h
blob: 9f8199fa8bdfd36dcb9fa9308b7c0f4ae6334e6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
Part of Minetest
Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2013 Ciaran Gultnieks <ciaran@ciarang.com>
Copyright (C) 2013 RealBadAngel, Maciej Kasatkin <mk@realbadangel.pl>

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#ifndef GUIVOLUMECHANGE_HEADER
#define GUIVOLUMECHANGE_HEADER

#include "irrlichttypes_extrabloated.h"
#include "modalMenu.h"
#include "client.h"
#include <string>

class GUIVolumeChange : public GUIModalMenu
{
public:
	GUIVolumeChange(gui::IGUIEnvironment* env,
			gui::IGUIElement* parent, s32 id,
			IMenuManager *menumgr,
			Client* client);
	~GUIVolumeChange();
	
	void removeChildren();
	/*
		Remove and re-add (or reposition) stuff
	*/
	void regenerateGui(v2u32 screensize);

	void drawMenu();

	bool OnEvent(const SEvent& event);
	
	bool pausesGame() { return true; }
};

#endif

class="hl opt">.up then train.tarvelocity = train.max_speed or 10 end if pc.down then train.tarvelocity = 0 end if pc.left then train.tarvelocity = 4 end if pc.right then train.tarvelocity = 8 end if pc.jump then train.brake = true --0: released, 1: brake and pressed, 2: released and brake, 3: pressed and brake if not train.brake_hold_state or train.brake_hold_state==0 then train.brake_hold_state = 1 elseif train.brake_hold_state==2 then train.brake_hold_state = 3 end elseif train.brake_hold_state==1 then train.brake_hold_state = 2 elseif train.brake_hold_state==3 then train.brake = false train.brake_hold_state = 0 end --shift+use:see wagons.lua else if pc.up then train.tarvelocity = train.tarvelocity + 1 end if pc.down then if train.velocity>0 then train.tarvelocity = math.max(train.tarvelocity - 1, 0) else train.movedir = -train.movedir end end if train.brake_hold_state~=2 then train.brake = false end if pc.jump then train.brake = true end if pc.aux1 then --horn end end end function advtrains.update_driver_hud(pname, train, flip) advtrains.set_trainhud(pname, advtrains.hud_train_format(train, flip)) end function advtrains.clear_driver_hud(pname) advtrains.set_trainhud(pname, "") end function advtrains.set_trainhud(name, text) local hud = advtrains.hud[name] local player=minetest.get_player_by_name(name) if not player then return end 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=flip and -1 or 1 if not train then return "" end local max=train.max_speed or 10 local vel=advtrains.abs_ceil(train.velocity) local tvel=advtrains.abs_ceil(train.tarvelocity) local topLine, firstLine, secondLine topLine="Train".." ["..mletter[fct*train.movedir].."] "..(train.brake and "="..( train.brake_hold_state==2 and "^" or "" ).."B=" or "") firstLine="Speed: |"..string.rep("+", vel)..string.rep("_", max-vel)..">" secondLine="Target: |"..string.rep("+", tvel)..string.rep("_", max-tvel)..">" return topLine.."\n"..firstLine.."\n"..secondLine end