UUpdate Tutorials
This commit is contained in:
4
tanks_nodes/README.md
Normal file
4
tanks_nodes/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
- Player1: `Up Left Down Right`, `Space`
|
||||
- Player2: `W A S D`, `F`
|
||||
|
||||
https://github.com/lnxnkx3d/lnxnkx/wiki/tanks
|
||||
73
tanks_nodes/Sources/lnx/node/FireTree.hx
Normal file
73
tanks_nodes/Sources/lnx/node/FireTree.hx
Normal file
@ -0,0 +1,73 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class FireTree 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 _ApplyImpulse_001 = new leenkx.logicnode.ApplyImpulseNode(this);
|
||||
_ApplyImpulse_001.preallocInputs(4);
|
||||
_ApplyImpulse_001.preallocOutputs(1);
|
||||
var _SpawnObject_001 = new leenkx.logicnode.SpawnObjectNode(this);
|
||||
_SpawnObject_001.preallocInputs(4);
|
||||
_SpawnObject_001.preallocOutputs(2);
|
||||
var _OnEvent = new leenkx.logicnode.OnEventNode(this);
|
||||
_OnEvent.property1 = "init";
|
||||
_OnEvent.preallocInputs(1);
|
||||
_OnEvent.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "fire"), _OnEvent, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_OnEvent, _SpawnObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, "Bullet"), _SpawnObject_001, 0, 1);
|
||||
var _GetObjectTransform = new leenkx.logicnode.GetTransformNode(this);
|
||||
_GetObjectTransform.preallocInputs(2);
|
||||
_GetObjectTransform.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _GetObjectTransform, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, false), _GetObjectTransform, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_GetObjectTransform, _SpawnObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _SpawnObject_001, 0, 3);
|
||||
leenkx.logicnode.LogicNode.addLink(_SpawnObject_001, _ApplyImpulse_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_SpawnObject_001, _ApplyImpulse_001, 1, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.VectorNode(this, 0.0,7.0,0.0), _ApplyImpulse_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _ApplyImpulse_001, 0, 3);
|
||||
var _ArrayShift_001 = new leenkx.logicnode.ArrayShiftNode(this);
|
||||
_ArrayShift_001.preallocInputs(1);
|
||||
_ArrayShift_001.preallocOutputs(1);
|
||||
var _ArrayObject_001 = new leenkx.logicnode.ArrayObjectNode(this);
|
||||
_ArrayObject_001.preallocInputs(0);
|
||||
_ArrayObject_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayObject_001, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayObject_001, _ArrayShift_001, 0, 0);
|
||||
var _Sleep = new leenkx.logicnode.SleepNode(this);
|
||||
_Sleep.preallocInputs(2);
|
||||
_Sleep.preallocOutputs(1);
|
||||
var _ArrayAdd_001 = new leenkx.logicnode.ArrayAddNode(this);
|
||||
_ArrayAdd_001.preallocInputs(6);
|
||||
_ArrayAdd_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_ApplyImpulse_001, _ArrayAdd_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayObject_001, _ArrayAdd_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, false), _ArrayAdd_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _ArrayAdd_001, 0, 3);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, false), _ArrayAdd_001, 0, 4);
|
||||
leenkx.logicnode.LogicNode.addLink(_SpawnObject_001, _ArrayAdd_001, 1, 5);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayAdd_001, new leenkx.logicnode.NullNode(this), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayAdd_001, _Sleep, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 2.0), _Sleep, 0, 1);
|
||||
var _RemoveObject_001 = new leenkx.logicnode.RemoveObjectNode(this);
|
||||
_RemoveObject_001.preallocInputs(4);
|
||||
_RemoveObject_001.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Sleep, _RemoveObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_ArrayShift_001, _RemoveObject_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _RemoveObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _RemoveObject_001, 0, 3);
|
||||
leenkx.logicnode.LogicNode.addLink(_RemoveObject_001, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
}
|
||||
}
|
||||
150
tanks_nodes/Sources/lnx/node/Player1Controls.hx
Normal file
150
tanks_nodes/Sources/lnx/node/Player1Controls.hx
Normal file
@ -0,0 +1,150 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class Player1Controls 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 _Gamepad_003 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_003.property0 = "down";
|
||||
_Gamepad_003.property1 = "left";
|
||||
_Gamepad_003.preallocInputs(1);
|
||||
_Gamepad_003.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 0), _Gamepad_003, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_003, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject_004 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_004.preallocInputs(3);
|
||||
_SendEventtoObject_004.preallocOutputs(1);
|
||||
var _Merge_008 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_008.property0 = "once_per_input";
|
||||
_Merge_008.preallocInputs(2);
|
||||
_Merge_008.preallocOutputs(2);
|
||||
var _Keyboard_002 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_002.property0 = "down";
|
||||
_Keyboard_002.property1 = "right";
|
||||
_Keyboard_002.preallocInputs(0);
|
||||
_Keyboard_002.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_002, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_002, _Merge_008, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_003, _Merge_008, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_008, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_008, _SendEventtoObject_004, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_right"), _SendEventtoObject_004, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_004, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_004, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Gamepad_001 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_001.property0 = "down";
|
||||
_Gamepad_001.property1 = "up";
|
||||
_Gamepad_001.preallocInputs(1);
|
||||
_Gamepad_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 0), _Gamepad_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _Gamepad_004 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_004.property0 = "down";
|
||||
_Gamepad_004.property1 = "right";
|
||||
_Gamepad_004.preallocInputs(1);
|
||||
_Gamepad_004.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 0), _Gamepad_004, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_004, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject_002 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_002.preallocInputs(3);
|
||||
_SendEventtoObject_002.preallocOutputs(1);
|
||||
var _Merge_002 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_002.property0 = "once_per_input";
|
||||
_Merge_002.preallocInputs(2);
|
||||
_Merge_002.preallocOutputs(2);
|
||||
var _Keyboard_004 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_004.property0 = "down";
|
||||
_Keyboard_004.property1 = "up";
|
||||
_Keyboard_004.preallocInputs(0);
|
||||
_Keyboard_004.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_004, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_004, _Merge_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_004, _Merge_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, _SendEventtoObject_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_left"), _SendEventtoObject_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_002, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_002, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _SendEventtoObject = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject.preallocInputs(3);
|
||||
_SendEventtoObject.preallocOutputs(1);
|
||||
var _Merge_003 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_003.property0 = "once_per_input";
|
||||
_Merge_003.preallocInputs(2);
|
||||
_Merge_003.preallocOutputs(2);
|
||||
var _Keyboard_001 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_001.property0 = "down";
|
||||
_Keyboard_001.property1 = "left";
|
||||
_Keyboard_001.preallocInputs(0);
|
||||
_Keyboard_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, _Merge_003, 0, 0);
|
||||
var _Gamepad_002 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_002.property0 = "down";
|
||||
_Gamepad_002.property1 = "down";
|
||||
_Gamepad_002.preallocInputs(1);
|
||||
_Gamepad_002.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 0), _Gamepad_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_002, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_002, _Merge_003, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_003, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_003, _SendEventtoObject, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "backward"), _SendEventtoObject, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _SendEventtoObject_001 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_001.preallocInputs(3);
|
||||
_SendEventtoObject_001.preallocOutputs(1);
|
||||
var _Merge_001 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_001.property0 = "once_per_input";
|
||||
_Merge_001.preallocInputs(2);
|
||||
_Merge_001.preallocOutputs(2);
|
||||
var _Keyboard = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard.property0 = "down";
|
||||
_Keyboard.property1 = "back";
|
||||
_Keyboard.preallocInputs(0);
|
||||
_Keyboard.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard, _Merge_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_001, _Merge_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_001, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_001, _SendEventtoObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "forward"), _SendEventtoObject_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_001, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Merge = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge.property0 = "once_per_input";
|
||||
_Merge.preallocInputs(0);
|
||||
_Merge.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_005 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_005.property0 = "once_per_input";
|
||||
_Merge_005.preallocInputs(0);
|
||||
_Merge_005.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_005, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_005, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_006 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_006.property0 = "once_per_input";
|
||||
_Merge_006.preallocInputs(0);
|
||||
_Merge_006.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_006, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_006, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_007 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_007.property0 = "once_per_input";
|
||||
_Merge_007.preallocInputs(0);
|
||||
_Merge_007.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_007, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_007, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
}
|
||||
}
|
||||
51
tanks_nodes/Sources/lnx/node/Player1Fire.hx
Normal file
51
tanks_nodes/Sources/lnx/node/Player1Fire.hx
Normal file
@ -0,0 +1,51 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class Player1Fire 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 _Gamepad = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad.property0 = "started";
|
||||
_Gamepad.property1 = "cross";
|
||||
_Gamepad.preallocInputs(1);
|
||||
_Gamepad.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 0), _Gamepad, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject_001 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_001.preallocInputs(3);
|
||||
_SendEventtoObject_001.preallocOutputs(1);
|
||||
var _Merge_002 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_002.property0 = "once_per_input";
|
||||
_Merge_002.preallocInputs(2);
|
||||
_Merge_002.preallocOutputs(2);
|
||||
var _Keyboard_001 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_001.property0 = "started";
|
||||
_Keyboard_001.property1 = "space";
|
||||
_Keyboard_001.preallocInputs(0);
|
||||
_Keyboard_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, _Merge_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, _Merge_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, _SendEventtoObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "fire"), _SendEventtoObject_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_001, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Merge = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge.property0 = "once_per_input";
|
||||
_Merge.preallocInputs(0);
|
||||
_Merge.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
}
|
||||
}
|
||||
150
tanks_nodes/Sources/lnx/node/Player2Controls.hx
Normal file
150
tanks_nodes/Sources/lnx/node/Player2Controls.hx
Normal file
@ -0,0 +1,150 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class Player2Controls 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 _Gamepad = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad.property0 = "down";
|
||||
_Gamepad.property1 = "right";
|
||||
_Gamepad.preallocInputs(1);
|
||||
_Gamepad.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 1), _Gamepad, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject_004 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_004.preallocInputs(3);
|
||||
_SendEventtoObject_004.preallocOutputs(1);
|
||||
var _Merge_008 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_008.property0 = "once_per_input";
|
||||
_Merge_008.preallocInputs(2);
|
||||
_Merge_008.preallocOutputs(2);
|
||||
var _Keyboard_002 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_002.property0 = "down";
|
||||
_Keyboard_002.property1 = "a";
|
||||
_Keyboard_002.preallocInputs(0);
|
||||
_Keyboard_002.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_002, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_002, _Merge_008, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, _Merge_008, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_008, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_008, _SendEventtoObject_004, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_right"), _SendEventtoObject_004, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_004, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_004, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Gamepad_004 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_004.property0 = "down";
|
||||
_Gamepad_004.property1 = "left";
|
||||
_Gamepad_004.preallocInputs(1);
|
||||
_Gamepad_004.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 1), _Gamepad_004, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_004, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _Gamepad_001 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_001.property0 = "down";
|
||||
_Gamepad_001.property1 = "up";
|
||||
_Gamepad_001.preallocInputs(1);
|
||||
_Gamepad_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 1), _Gamepad_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject_002 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_002.preallocInputs(3);
|
||||
_SendEventtoObject_002.preallocOutputs(1);
|
||||
var _Merge_002 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_002.property0 = "once_per_input";
|
||||
_Merge_002.preallocInputs(2);
|
||||
_Merge_002.preallocOutputs(2);
|
||||
var _Keyboard = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard.property0 = "down";
|
||||
_Keyboard.property1 = "d";
|
||||
_Keyboard.preallocInputs(0);
|
||||
_Keyboard.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard, _Merge_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_004, _Merge_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_002, _SendEventtoObject_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_left"), _SendEventtoObject_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_002, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_002, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Gamepad_002 = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad_002.property0 = "down";
|
||||
_Gamepad_002.property1 = "down";
|
||||
_Gamepad_002.preallocInputs(1);
|
||||
_Gamepad_002.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 1), _Gamepad_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_002, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
var _SendEventtoObject = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject.preallocInputs(3);
|
||||
_SendEventtoObject.preallocOutputs(1);
|
||||
var _Merge_003 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_003.property0 = "once_per_input";
|
||||
_Merge_003.preallocInputs(2);
|
||||
_Merge_003.preallocOutputs(2);
|
||||
var _Keyboard_001 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_001.property0 = "down";
|
||||
_Keyboard_001.property1 = "w";
|
||||
_Keyboard_001.preallocInputs(0);
|
||||
_Keyboard_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, _Merge_003, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_001, _Merge_003, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_003, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_003, _SendEventtoObject, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "forward"), _SendEventtoObject, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _SendEventtoObject_001 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_001.preallocInputs(3);
|
||||
_SendEventtoObject_001.preallocOutputs(1);
|
||||
var _Merge_001 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_001.property0 = "once_per_input";
|
||||
_Merge_001.preallocInputs(2);
|
||||
_Merge_001.preallocOutputs(2);
|
||||
var _Keyboard_003 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_003.property0 = "down";
|
||||
_Keyboard_003.property1 = "s";
|
||||
_Keyboard_003.preallocInputs(0);
|
||||
_Keyboard_003.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_003, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_003, _Merge_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad_002, _Merge_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_001, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_001, _SendEventtoObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "backward"), _SendEventtoObject_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_001, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Merge = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge.property0 = "once_per_input";
|
||||
_Merge.preallocInputs(0);
|
||||
_Merge.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_005 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_005.property0 = "once_per_input";
|
||||
_Merge_005.preallocInputs(0);
|
||||
_Merge_005.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_005, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_005, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_006 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_006.property0 = "once_per_input";
|
||||
_Merge_006.preallocInputs(0);
|
||||
_Merge_006.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_006, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_006, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
var _Merge_007 = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge_007.property0 = "once_per_input";
|
||||
_Merge_007.preallocInputs(0);
|
||||
_Merge_007.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_007, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge_007, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
}
|
||||
}
|
||||
45
tanks_nodes/Sources/lnx/node/Player2Fire.hx
Normal file
45
tanks_nodes/Sources/lnx/node/Player2Fire.hx
Normal file
@ -0,0 +1,45 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class Player2Fire 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 _SendEventtoObject_001 = new leenkx.logicnode.SendEventNode(this);
|
||||
_SendEventtoObject_001.preallocInputs(3);
|
||||
_SendEventtoObject_001.preallocOutputs(1);
|
||||
var _Merge = new leenkx.logicnode.MergeNode(this);
|
||||
_Merge.property0 = "once_per_input";
|
||||
_Merge.preallocInputs(2);
|
||||
_Merge.preallocOutputs(2);
|
||||
var _Keyboard_001 = new leenkx.logicnode.MergedKeyboardNode(this);
|
||||
_Keyboard_001.property0 = "started";
|
||||
_Keyboard_001.property1 = "f";
|
||||
_Keyboard_001.preallocInputs(0);
|
||||
_Keyboard_001.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Keyboard_001, _Merge, 0, 0);
|
||||
var _Gamepad = new leenkx.logicnode.MergedGamepadNode(this);
|
||||
_Gamepad.property0 = "started";
|
||||
_Gamepad.property1 = "circle";
|
||||
_Gamepad.preallocInputs(1);
|
||||
_Gamepad.preallocOutputs(2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.IntegerNode(this, 1), _Gamepad, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, new leenkx.logicnode.BooleanNode(this, false), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Gamepad, _Merge, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, new leenkx.logicnode.IntegerNode(this, 0), 1, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_Merge, _SendEventtoObject_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "fire"), _SendEventtoObject_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _SendEventtoObject_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_SendEventtoObject_001, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
}
|
||||
}
|
||||
98
tanks_nodes/Sources/lnx/node/TankTree.hx
Normal file
98
tanks_nodes/Sources/lnx/node/TankTree.hx
Normal file
@ -0,0 +1,98 @@
|
||||
package lnx.node;
|
||||
|
||||
@:access(leenkx.logicnode.LogicNode)@:keep class TankTree 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 _TranslateObject = new leenkx.logicnode.TranslateObjectNode(this);
|
||||
_TranslateObject.preallocInputs(4);
|
||||
_TranslateObject.preallocOutputs(1);
|
||||
var _OnEvent_001 = new leenkx.logicnode.OnEventNode(this);
|
||||
_OnEvent_001.property1 = "init";
|
||||
_OnEvent_001.preallocInputs(1);
|
||||
_OnEvent_001.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "backward"), _OnEvent_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_OnEvent_001, _TranslateObject, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _TranslateObject, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.VectorNode(this, 0.0,-0.05000000074505806,0.0), _TranslateObject, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _TranslateObject, 0, 3);
|
||||
leenkx.logicnode.LogicNode.addLink(_TranslateObject, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _TranslateObject_002 = new leenkx.logicnode.TranslateObjectNode(this);
|
||||
_TranslateObject_002.preallocInputs(4);
|
||||
_TranslateObject_002.preallocOutputs(1);
|
||||
var _OnEvent_003 = new leenkx.logicnode.OnEventNode(this);
|
||||
_OnEvent_003.property1 = "init";
|
||||
_OnEvent_003.preallocInputs(1);
|
||||
_OnEvent_003.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "forward"), _OnEvent_003, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_OnEvent_003, _TranslateObject_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _TranslateObject_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.VectorNode(this, 0.0,0.05000000074505806,0.0), _TranslateObject_002, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.BooleanNode(this, true), _TranslateObject_002, 0, 3);
|
||||
leenkx.logicnode.LogicNode.addLink(_TranslateObject_002, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _Rotation_001 = new leenkx.logicnode.RotationNode(this);
|
||||
_Rotation_001.property0 = "EulerAngles";
|
||||
_Rotation_001.property1 = "Deg";
|
||||
_Rotation_001.property2 = "XYZ";
|
||||
_Rotation_001.preallocInputs(2);
|
||||
_Rotation_001.preallocOutputs(1);
|
||||
var _Vector_001 = new leenkx.logicnode.VectorNode(this);
|
||||
_Vector_001.preallocInputs(3);
|
||||
_Vector_001.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Vector_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Vector_001, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.029999999329447746), _Vector_001, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Vector_001, _Rotation_001, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Rotation_001, 0, 1);
|
||||
var _RotateObject = new leenkx.logicnode.RotateObjectNode(this);
|
||||
_RotateObject.property0 = "Local";
|
||||
_RotateObject.preallocInputs(3);
|
||||
_RotateObject.preallocOutputs(1);
|
||||
var _OnEvent = new leenkx.logicnode.OnEventNode(this);
|
||||
_OnEvent.property1 = "init";
|
||||
_OnEvent.preallocInputs(1);
|
||||
_OnEvent.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_left"), _OnEvent, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_OnEvent, _RotateObject, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _RotateObject, 0, 1);
|
||||
var _Rotation = new leenkx.logicnode.RotationNode(this);
|
||||
_Rotation.property0 = "EulerAngles";
|
||||
_Rotation.property1 = "Deg";
|
||||
_Rotation.property2 = "XYZ";
|
||||
_Rotation.preallocInputs(2);
|
||||
_Rotation.preallocOutputs(1);
|
||||
var _Vector_002 = new leenkx.logicnode.VectorNode(this);
|
||||
_Vector_002.preallocInputs(3);
|
||||
_Vector_002.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Vector_002, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Vector_002, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, -0.029999999329447746), _Vector_002, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_Vector_002, _Rotation, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.FloatNode(this, 0.0), _Rotation, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Rotation, _RotateObject, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_RotateObject, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
var _RotateObject_003 = new leenkx.logicnode.RotateObjectNode(this);
|
||||
_RotateObject_003.property0 = "Local";
|
||||
_RotateObject_003.preallocInputs(3);
|
||||
_RotateObject_003.preallocOutputs(1);
|
||||
var _OnEvent_004 = new leenkx.logicnode.OnEventNode(this);
|
||||
_OnEvent_004.property1 = "init";
|
||||
_OnEvent_004.preallocInputs(1);
|
||||
_OnEvent_004.preallocOutputs(1);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.StringNode(this, "turn_right"), _OnEvent_004, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(_OnEvent_004, _RotateObject_003, 0, 0);
|
||||
leenkx.logicnode.LogicNode.addLink(new leenkx.logicnode.ObjectNode(this, ""), _RotateObject_003, 0, 1);
|
||||
leenkx.logicnode.LogicNode.addLink(_Rotation_001, _RotateObject_003, 0, 2);
|
||||
leenkx.logicnode.LogicNode.addLink(_RotateObject_003, new leenkx.logicnode.NullNode(this), 0, 0);
|
||||
}
|
||||
}
|
||||
BIN
tanks_nodes/tanks_nodes.blend
Normal file
BIN
tanks_nodes/tanks_nodes.blend
Normal file
Binary file not shown.
Reference in New Issue
Block a user