diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj
index d2ee3cc..604c141 100644
--- a/Assembly-CSharp.csproj
+++ b/Assembly-CSharp.csproj
@@ -63,11 +63,13 @@
+
+
diff --git a/Assets/IsoTools/Examples/Scenes/Scene07.unity b/Assets/IsoTools/Examples/Scenes/Scene07.unity
index 9410475..847a06d 100644
--- a/Assets/IsoTools/Examples/Scenes/Scene07.unity
+++ b/Assets/IsoTools/Examples/Scenes/Scene07.unity
@@ -1734,15 +1734,17 @@ MonoBehaviour:
transitions: []
actionData:
actionNames:
+ - IsoTools.PlayMaker.Actions.IsoGetVelocity
- IsoTools.PlayMaker.Events.IsoTriggerEvent
- IsoTools.PlayMaker.Events.IsoCollisionEvent
customNames:
-
-
- actionEnabled: 0101
- actionIsOpen: 0101
- actionStartIndex: 0000000005000000
- actionHashCodes: 8802cd006a86ae01
+ -
+ actionEnabled: 010101
+ actionIsOpen: 010101
+ actionStartIndex: 00000000060000000b000000
+ actionHashCodes: 7ebd02028802cd006a86ae01
unityObjectParams: []
fsmGameObjectParams:
- useVariable: 1
@@ -1774,6 +1776,14 @@ MonoBehaviour:
showInInspector: 0
networkSync: 0
value: {fileID: 0}
+ - ownerOption: 0
+ gameObject:
+ useVariable: 0
+ name:
+ tooltip:
+ showInInspector: 0
+ networkSync: 0
+ value: {fileID: 0}
animationCurveParams: []
functionCallParams: []
fsmTemplateControlParams: []
@@ -1798,6 +1808,24 @@ MonoBehaviour:
fsmArrayParams: []
fsmEnumParams: []
fsmFloatParams:
+ - useVariable: 1
+ name:
+ tooltip:
+ showInInspector: 0
+ networkSync: 0
+ value: 0
+ - useVariable: 1
+ name:
+ tooltip:
+ showInInspector: 0
+ networkSync: 0
+ value: 0
+ - useVariable: 1
+ name:
+ tooltip:
+ showInInspector: 0
+ networkSync: 0
+ value: 0
- useVariable: 1
name:
tooltip:
@@ -1807,21 +1835,33 @@ MonoBehaviour:
fsmIntParams: []
fsmBoolParams: []
fsmVector2Params: []
- fsmVector3Params: []
+ fsmVector3Params:
+ - useVariable: 1
+ name: iso_vel
+ tooltip:
+ showInInspector: 1
+ networkSync: 0
+ value: {x: 0, y: 0, z: 0}
fsmColorParams: []
fsmRectParams: []
fsmQuaternionParams: []
stringParams:
- TO_UP
- TO_UP
- byteData: 0000000000000000
+ byteData: 010000000000000000
arrayParamSizes:
arrayParamTypes: []
customTypeSizes:
customTypeNames: []
- paramDataType: 140000000700000012000000170000001300000014000000070000001200000017000000130000000f000000
+ paramDataType: 140000001c0000000f0000000f0000000f00000001000000140000000700000012000000170000001300000014000000070000001200000017000000130000000f000000
paramName:
- gameObject
+ - storeVector
+ - storeX
+ - storeY
+ - storeZ
+ - everyFrame
+ - gameObject
- triggerType
- collideTag
- sendEvent
@@ -1832,8 +1872,8 @@ MonoBehaviour:
- sendEvent
- storeIsoCollider
- storeForce
- paramDataPos: 0000000000000000000000000000000000000000010000000400000001000000010000000100000000000000
- paramByteDataSize: 0000000004000000000000000000000000000000000000000400000000000000000000000000000000000000
+ paramDataPos: 0000000000000000000000000100000002000000000000000100000001000000000000000000000000000000020000000500000001000000010000000100000003000000
+ paramByteDataSize: 0000000000000000000000000000000000000000010000000000000004000000000000000000000000000000000000000400000000000000000000000000000000000000
- name: up
description:
colorIndex: 0
@@ -1957,7 +1997,13 @@ MonoBehaviour:
boolVariables: []
stringVariables: []
vector2Variables: []
- vector3Variables: []
+ vector3Variables:
+ - useVariable: 1
+ name: iso_vel
+ tooltip:
+ showInInspector: 1
+ networkSync: 0
+ value: {x: 0, y: 0, z: 0}
colorVariables: []
rectVariables: []
quaternionVariables: []
@@ -1969,7 +2015,7 @@ MonoBehaviour:
enumVariables: []
categories:
-
- variableCategoryIDs:
+ variableCategoryIDs: 00000000
description:
docUrl:
showStateLabel: 1
diff --git a/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs b/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs
new file mode 100644
index 0000000..3ad912e
--- /dev/null
+++ b/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs
@@ -0,0 +1,60 @@
+using UnityEngine;
+using HutongGames.PlayMaker;
+using IsoTools.PlayMaker.Internal;
+
+namespace IsoTools.PlayMaker.Actions {
+ [ActionCategory("IsoTools")]
+ [HutongGames.PlayMaker.Tooltip(
+ "Gets the Velocity of a IsoRigidbody and stores it " +
+ "in a Vector3 Variable or each Axis in a Float Variable")]
+ public class IsoGetVelocity : IsoComponentAction {
+ [RequiredField]
+ [CheckForComponent(typeof(IsoRigidbody))]
+ public FsmOwnerDefault gameObject;
+
+ [UIHint(UIHint.Variable)]
+ public FsmVector3 storeVector;
+
+ [UIHint(UIHint.Variable)]
+ public FsmFloat storeX;
+
+ [UIHint(UIHint.Variable)]
+ public FsmFloat storeY;
+
+ [UIHint(UIHint.Variable)]
+ public FsmFloat storeZ;
+
+ public bool everyFrame;
+
+ public override void Reset() {
+ gameObject = null;
+ storeVector = null;
+ storeX = null;
+ storeY = null;
+ storeZ = null;
+ everyFrame = false;
+ }
+
+ public override void OnEnter() {
+ DoAction();
+ if ( !everyFrame ) {
+ Finish();
+ }
+ }
+
+ public override void OnUpdate() {
+ DoAction();
+ }
+
+ void DoAction() {
+ var go = Fsm.GetOwnerDefaultTarget(gameObject);
+ if ( UpdateCache(go) ) {
+ var value = isoRigidbody.velocity;
+ storeVector.Value = value;
+ storeX.Value = value.x;
+ storeY.Value = value.y;
+ storeZ.Value = value.z;
+ }
+ }
+ }
+} // IsoTools.PlayMaker.Actions
\ No newline at end of file
diff --git a/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs.meta b/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs.meta
new file mode 100644
index 0000000..7284e25
--- /dev/null
+++ b/Assets/IsoTools/PlayMaker/Actions/IsoGetVelocity.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ea8962e92212e431ba4e354fbb0ff3e3
+timeCreated: 1450619756
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs b/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs
new file mode 100644
index 0000000..46588b8
--- /dev/null
+++ b/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs
@@ -0,0 +1,59 @@
+using UnityEngine;
+using HutongGames.PlayMaker;
+using IsoTools.PlayMaker.Internal;
+
+namespace IsoTools.PlayMaker.Actions {
+ [ActionCategory("IsoTools")]
+ [HutongGames.PlayMaker.Tooltip(
+ "Sets the Velocity of a IsoRigidbody. " +
+ "To leave any axis unchanged, set variable to 'None'.")]
+ public class IsoSetVelocity : IsoComponentAction {
+ [RequiredField]
+ [CheckForComponent(typeof(IsoRigidbody))]
+ public FsmOwnerDefault gameObject;
+
+ [UIHint(UIHint.Variable)]
+ public FsmVector3 vector;
+
+ public FsmFloat x;
+ public FsmFloat y;
+ public FsmFloat z;
+
+ public bool everyFrame;
+
+ public override void Reset() {
+ gameObject = null;
+ vector = null;
+ x = new FsmFloat{UseVariable = true};
+ y = new FsmFloat{UseVariable = true};
+ z = new FsmFloat{UseVariable = true};
+ everyFrame = false;
+ }
+
+ public override void OnPreprocess() {
+ Fsm.HandleFixedUpdate = true;
+ }
+
+ public override void OnEnter() {
+ DoAction();
+ if ( !everyFrame ) {
+ Finish();
+ }
+ }
+
+ public override void OnFixedUpdate() {
+ DoAction();
+ }
+
+ void DoAction() {
+ var go = Fsm.GetOwnerDefaultTarget(gameObject);
+ if ( UpdateCache(go) ) {
+ var value = vector.IsNone ? isoRigidbody.velocity : vector.Value;
+ if ( !x.IsNone ) { value.x = x.Value; }
+ if ( !y.IsNone ) { value.y = y.Value; }
+ if ( !z.IsNone ) { value.z = z.Value; }
+ isoRigidbody.velocity = value;
+ }
+ }
+ }
+} // IsoTools.PlayMaker.Actions
\ No newline at end of file
diff --git a/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs.meta b/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs.meta
new file mode 100644
index 0000000..43a7c01
--- /dev/null
+++ b/Assets/IsoTools/PlayMaker/Actions/IsoSetVelocity.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f5bf16fe3bbaa46a3a57303544d7f670
+timeCreated: 1450619746
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: