View difference between Paste ID: TWUC7aLv and rwG3W0CH
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
}