UUpdate Tutorials

This commit is contained in:
2026-10-25 12:43:53 -07:00
commit cd94bb4ba8
32 changed files with 1077 additions and 0 deletions

View File

@ -0,0 +1,32 @@
package lnx;
import iron.object.Object;
import iron.system.Input;
import iron.Scene;
import leenkx.trait.physics.RigidBody;
class SpawnBox extends iron.Trait {
public function new() {
super();
// We want to get notified every frame
notifyOnUpdate(update);
}
function update() {
// f key was pressed
if (Input.getKeyboard().started("f")) {
// Spawn Box object
Scene.active.spawnObject("Box", null, boxSpawned);
}
}
// Box just got spawned
function boxSpawned(o:Object) {
// Translate cube to the location of empty object
var traitOwner = object;
o.transform.loc.setFrom(traitOwner.transform.loc);
// Box object has a rigid body trait
// Notify physics system to take new location into effect!
o.getTrait(RigidBody).syncTransform();
}
}

View File

@ -0,0 +1,64 @@
package lnx.node;
@:access(leenkx.logicnode.LogicNode)@:keep class MoveCylinder extends leenkx.logicnode.LogicTree {
var functionNodes:Map<String, leenkx.logicnode.FunctionNode>;
var functionOutputNodes:Map<String, leenkx.logicnode.FunctionOutputNode>;
public function new() {
super();
this.functionNodes = new Map();
this.functionOutputNodes = new Map();
notifyOnAdd(add);
}
override public function add() {
var _GetObjectLocation_001 = new leenkx.logicnode.GetLocationNode(this);
_GetObjectLocation_001.preallocInputs(2);
_GetObjectLocation_001.preallocOutputs(1);
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _GetObjectLocation_001, 0, 0);
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, false), _GetObjectLocation_001, 0, 1);
var _SeparateXYZ = new leenkx.logicnode.SeparateVectorNode(this);
_SeparateXYZ.preallocInputs(1);
_SeparateXYZ.preallocOutputs(3);
leenkx.logicnode.LogicNode.addLink(_GetObjectLocation_001, _SeparateXYZ, 0, 0);
leenkx.logicnode.LogicNode.addLink(_SeparateXYZ, new leenkx.logicnode.FloatNode(this, 0.0), 0, 0);
var _SetObjectLocation_001 = new leenkx.logicnode.SetLocationNode(this);
_SetObjectLocation_001.preallocInputs(4);
_SetObjectLocation_001.preallocOutputs(1);
var _OnUpdate = new leenkx.logicnode.OnUpdateNode(this);
_OnUpdate.property0 = "Update";
_OnUpdate.preallocInputs(0);
_OnUpdate.preallocOutputs(1);
leenkx.logicnode.LogicNode.addLink(_OnUpdate, _SetObjectLocation_001, 0, 0);
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SetObjectLocation_001, 0, 1);
var _Vector = new leenkx.logicnode.VectorNode(this);
_Vector.preallocInputs(3);
_Vector.preallocOutputs(1);
var _Math = new leenkx.logicnode.MathNode(this);
_Math.property0 = "Multiply";
_Math.property1 = false;
_Math.preallocInputs(2);
_Math.preallocOutputs(1);
var _Math_001 = new leenkx.logicnode.MathNode(this);
_Math_001.property0 = "Sine";
_Math_001.property1 = false;
_Math_001.preallocInputs(1);
_Math_001.preallocOutputs(1);
var _GetApplicationTime = new leenkx.logicnode.TimeNode(this);
_GetApplicationTime.preallocInputs(0);
_GetApplicationTime.preallocOutputs(3);
leenkx.logicnode.LogicNode.addLink(_GetApplicationTime, new leenkx.logicnode.FloatNode(this, 0.0), 1, 0);
leenkx.logicnode.LogicNode.addLink(_GetApplicationTime, new leenkx.logicnode.FloatNode(this, 0.0), 2, 0);
leenkx.logicnode.LogicNode.addLink(_GetApplicationTime, _Math_001, 0, 0);
leenkx.logicnode.LogicNode.addLink(_Math_001, _Math, 0, 0);
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 4.0), _Math, 0, 1);
leenkx.logicnode.LogicNode.addLink(_Math, _Vector, 0, 0);
leenkx.logicnode.LogicNode.addLink(_SeparateXYZ, _Vector, 1, 1);
leenkx.logicnode.LogicNode.addLink(_SeparateXYZ, _Vector, 2, 2);
leenkx.logicnode.LogicNode.addLink(_Vector, _SetObjectLocation_001, 0, 2);
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, false), _SetObjectLocation_001, 0, 3);
leenkx.logicnode.LogicNode.addLink(_SetObjectLocation_001, new leenkx.logicnode.NullNode(this), 0, 0);
}
}