Files
Leenkx_Examples/script_rigidbody_trigger/Sources/lnx/Trigger.hx
2026-05-06 17:52:45 -07:00

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;
});
}
}