forked from LeenkxTeam/Leenkx_Examples
41 lines
891 B
Haxe
41 lines
891 B
Haxe
package lnx;
|
|
|
|
import iron.object.Object;
|
|
import iron.Scene;
|
|
import leenkx.trait.physics.PhysicsWorld;
|
|
import leenkx.trait.physics.RigidBody;
|
|
|
|
class Trigger extends iron.Trait {
|
|
|
|
var rb:RigidBody;
|
|
var physics:leenkx.trait.physics.PhysicsWorld;
|
|
var obj:Object;
|
|
|
|
public function new() {
|
|
super();
|
|
|
|
notifyOnInit(function() {
|
|
rb = object.getTrait(RigidBody);
|
|
physics = leenkx.trait.physics.PhysicsWorld.active;
|
|
obj = Scene.active.getChild("Icosphere");
|
|
});
|
|
|
|
notifyOnUpdate(function() {
|
|
// TODO: replace with notifyOnCollisionEnter or notifyOnTriggerEnter once implemented
|
|
// ref: https://github.com/leenkx3d/leenkx/issues/331
|
|
var rbs = physics.getContacts(object.getTrait(RigidBody));
|
|
var visible = false;
|
|
|
|
if (rbs != null) {
|
|
for (rb in rbs){
|
|
if(rb.object.name == "Cube"){
|
|
visible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
obj.visible = visible;
|
|
});
|
|
}
|
|
}
|