SHOW:
|
|
- or go back to the newest paste.
1 | // DroneController.hx | |
2 | if(mause.started()){ | |
3 | x = pickClosest(mause) | |
4 | if(x.distanceIsOk && x.hasTrait("Pickable")){ // not to far | |
5 | x.getTrait(Pickable).pick(); | |
6 | } | |
7 | } | |
8 | ||
9 | // Pickable.hx - add to all buttons, set values - 1,2,3.. clear, back | |
10 | class Pickable { | |
11 | @prop | |
12 | public var value: string / dynamic? = null; | |
13 | public var listeners: Void->Void[] = []; // Or maybe a map? | |
14 | ||
15 | fn pick(){ | |
16 | - | if(value && callback) loop listeners and call them; |
16 | + | if(value && listeners.length > 0) *loop listeners and call them with value; |
17 | } | |
18 | } | |
19 | ||
20 | // DoorController.hx | |
21 | ||
22 | .... | |
23 | ||
24 | onInit(){ | |
25 | for(x in allButtons){ | |
26 | y = x.getTrait(Pickable); | |
27 | // can also set value here y.value = 'xxxx'; | |
28 | y.listeners.push/add(function(value: string){ // so we can also remove later | |
29 | this.registerButtonPress(x, value); | |
30 | }); | |
31 | } | |
32 | } | |
33 | ||
34 | registerButtonPress(btn, value){ | |
35 | doorDisplayTr = object.getChild('display..').getTrait('DoorDisplay'); /// better on init once | |
36 | switch value { | |
37 | enterArray.push(something);// Populate arr orsmth | |
38 | Event.send()//for anim | |
39 | doorDisplayTr.chaneCode(enterArray); | |
40 | } | |
41 | } |