add HUD manager class. The old and new HUD code is a bit tedious to handle
in keyboard.xml. Better concentrate that on one place.
This commit is contained in:
parent
a6ebef1d0a
commit
8ecfdb2a96
1 changed files with 57 additions and 0 deletions
|
@ -215,3 +215,60 @@ light = {
|
|||
};
|
||||
|
||||
|
||||
|
||||
# HUD control class to handle both HUD implementations.
|
||||
#
|
||||
HUDControl = {
|
||||
new : func {
|
||||
var m = { parents : [HUDControl] };
|
||||
m.vis0N = props.globals.getNode("/sim/hud/visibility[0]", 1);
|
||||
m.vis1N = props.globals.getNode("/sim/hud/visibility[1]", 1);
|
||||
m.currcolN = props.globals.getNode("/sim/hud/current-color", 1);
|
||||
m.paletteN = props.globals.getNode("/sim/hud/palette", 1);
|
||||
m.brightnessN = props.globals.getNode("/sim/hud/color/brightness", 1);
|
||||
m.currentN = m.vis0N;
|
||||
return m;
|
||||
},
|
||||
cycle_color : func { # h-key
|
||||
if (!me.currentN.getBoolValue()) { # if off, turn on
|
||||
return me.currentN.setBoolValue(1);
|
||||
}
|
||||
var i = me.currcolN.getValue() + 1; # if through, turn off
|
||||
if (i < 0 or i >= size(me.paletteN.getChildren("color"))) {
|
||||
me.currentN.setBoolValue(0);
|
||||
me.currcolN.setIntValue(0);
|
||||
} else { # otherwise change color
|
||||
me.currentN.setBoolValue(1);
|
||||
me.currcolN.setIntValue(i);
|
||||
}
|
||||
},
|
||||
cycle_brightness : func { # H-key
|
||||
var br = me.brightnessN.getValue() - 0.2;
|
||||
me.brightnessN.setValue(br > 0.01 ? br : 1);
|
||||
},
|
||||
normal_type : func { # i-key
|
||||
me.oldinit1();
|
||||
me.vis0N.setBoolValue(1);
|
||||
me.vis1N.setBoolValue(0);
|
||||
me.currentN = me.vis0N;
|
||||
},
|
||||
cycle_type : func { # I-key
|
||||
if (me.currentN == me.vis0N) {
|
||||
me.vis0N.setBoolValue(0);
|
||||
me.vis1N.setBoolValue(1);
|
||||
me.currentN = me.vis1N;
|
||||
} elsif (me.currentN == me.vis1N) {
|
||||
me.vis0N.setBoolValue(1);
|
||||
me.vis1N.setBoolValue(0);
|
||||
me.oldinit2();
|
||||
me.currentN = me.vis0N;
|
||||
}
|
||||
},
|
||||
oldinit1 : func { fgcommand("hud-init", props.Node.new()) },
|
||||
oldinit2 : func { fgcommand("hud-init2", props.Node.new()) },
|
||||
};
|
||||
|
||||
var HUD = nil;
|
||||
settimer(func { HUD = HUDControl.new() }, 0);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue