diff --git a/Assets/Art/Sprites/Spritesheets/Quarry/Placeholders/LawnMowerMovingPLACEHOLDER.png.meta b/Assets/Art/Sprites/Spritesheets/Quarry/Placeholders/LawnMowerMovingPLACEHOLDER.png.meta
index e4b6e2d0..f08a6cd1 100644
--- a/Assets/Art/Sprites/Spritesheets/Quarry/Placeholders/LawnMowerMovingPLACEHOLDER.png.meta
+++ b/Assets/Art/Sprites/Spritesheets/Quarry/Placeholders/LawnMowerMovingPLACEHOLDER.png.meta
@@ -150,7 +150,7 @@ TextureImporter:
x: 24
y: 13
width: 569
- height: 380
+ height: 384
alignment: 9
pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -169,12 +169,12 @@ TextureImporter:
name: LawnMowerMovingPLACEHOLDER_1
rect:
serializedVersion: 2
- x: 415
+ x: 416
y: 7
- width: 16
+ width: 14
height: 20
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
+ alignment: 9
+ pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
@@ -193,8 +193,8 @@ TextureImporter:
serializedVersion: 2
x: 632
y: 13
- width: 569
- height: 380
+ width: 570
+ height: 384
alignment: 9
pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -214,11 +214,11 @@ TextureImporter:
rect:
serializedVersion: 2
x: 1013
- y: 12
+ y: 11
width: 24
- height: 24
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
+ height: 26
+ alignment: 9
+ pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
@@ -235,10 +235,10 @@ TextureImporter:
name: LawnMowerMovingPLACEHOLDER_4
rect:
serializedVersion: 2
- x: 1239
+ x: 1238
y: 13
- width: 569
- height: 380
+ width: 575
+ height: 384
alignment: 9
pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -258,9 +258,9 @@ TextureImporter:
rect:
serializedVersion: 2
x: 1861
- y: 12
- width: 569
- height: 380
+ y: 11
+ width: 568
+ height: 386
alignment: 9
pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
@@ -279,12 +279,12 @@ TextureImporter:
name: LawnMowerMovingPLACEHOLDER_6
rect:
serializedVersion: 2
- x: 2242
- y: 11
+ x: 2243
+ y: 10
width: 24
- height: 24
- alignment: 0
- pivot: {x: 0.5, y: 0.5}
+ height: 26
+ alignment: 9
+ pivot: {x: 0.5, y: 0.2}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
@@ -309,7 +309,9 @@ TextureImporter:
weights: []
secondaryTextures: []
spriteCustomMetadata:
- entries: []
+ entries:
+ - key: SpriteEditor.SliceSettings
+ value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":100.0,"y":100.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.20000000298023225},"autoSlicingMethod":0,"spriteAlignment":9,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}'
nameFileIdTable:
LawnMowerMovingPLACEHOLDER_0: -4444670910754578914
LawnMowerMovingPLACEHOLDER_1: 6348190279078284696
diff --git a/Assets/External/Pixelplacement/Surge/Tween/Tween.cs b/Assets/External/Pixelplacement/Surge/Tween/Tween.cs
index 11717534..caf8b7dd 100644
--- a/Assets/External/Pixelplacement/Surge/Tween/Tween.cs
+++ b/Assets/External/Pixelplacement/Surge/Tween/Tween.cs
@@ -77,7 +77,7 @@ namespace Pixelplacement
///
/// Moves a Transform along a spline path from a start percentage to an end percentage.
///
- public static TweenSystem.TweenBase Spline(Spline spline, Transform target, float startPercentage, float endPercentage, bool faceDirection, float duration, float delay, AnimationCurve easeCurve = null, LoopType loop = LoopType.None, Action startCallback = null, Action completeCallback = null, bool obeyTimescale = true)
+ public static TweenSystem.TweenBase Spline(Spline spline, Transform target, float startPercentage, float endPercentage, bool faceDirection, float duration, float delay, AnimationCurve easeCurve = null, LoopType loop = LoopType.None, Action startCallback = null, Action completeCallback = null, bool obeyTimescale = true, Action onComplete = null, Action onUpdate = null)
{
TweenSystem.SplinePercentage tween = new TweenSystem.SplinePercentage(spline, target, startPercentage, endPercentage, faceDirection, duration, delay, obeyTimescale, easeCurve, loop, startCallback, completeCallback);
SendTweenForProcessing(tween, true);
diff --git a/Assets/Prefabs/Environment/Placeholders/Lawnmower.prefab b/Assets/Prefabs/Environment/Placeholders/Lawnmower.prefab
index 708ed39e..854d29b5 100644
--- a/Assets/Prefabs/Environment/Placeholders/Lawnmower.prefab
+++ b/Assets/Prefabs/Environment/Placeholders/Lawnmower.prefab
@@ -96,7 +96,6 @@ GameObject:
- component: {fileID: 7695719922005140445}
- component: {fileID: 4901186366144297979}
- component: {fileID: 5264516637087018658}
- - component: {fileID: 8801225172547510663}
m_Layer: 10
m_Name: Lawnmower
m_TagString: Untagged
@@ -233,6 +232,21 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 73d6494a73174ffabc6a7d3089d51e73, type: 3}
m_Name:
m_EditorClassIdentifier:
+ isOneTime: 0
+ cooldown: -1
+ characterToInteract: 1
+ interactionStarted:
+ m_PersistentCalls:
+ m_Calls: []
+ interactionInterrupted:
+ m_PersistentCalls:
+ m_Calls: []
+ characterArrived:
+ m_PersistentCalls:
+ m_Calls: []
+ interactionComplete:
+ m_PersistentCalls:
+ m_Calls: []
--- !u!114 &5264516637087018658
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -246,15 +260,3 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
stepData: {fileID: 11400000, guid: ea383d1dee861f54c9a1d4f32a2f6afc, type: 2}
---- !u!114 &8801225172547510663
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4940025602237181209}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 833a4ccef651449e973e623d9107bef5, type: 3}
- m_Name:
- m_EditorClassIdentifier:
diff --git a/Assets/Scripts/DamianExperiments/Animations.meta b/Assets/Scripts/DamianExperiments/Animations.meta
new file mode 100644
index 00000000..c412235c
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/Animations.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c6fd0683cee159c4f899a794af80c7ce
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim b/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim
new file mode 100644
index 00000000..8c573a89
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim
@@ -0,0 +1,84 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: LawnMowerMowing
+ serializedVersion: 7
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves: []
+ m_PPtrCurves:
+ - serializedVersion: 2
+ curve:
+ - time: 0
+ value: {fileID: -4444670910754578914, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - time: 0.18333334
+ value: {fileID: 5233908553689211412, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - time: 0.33333334
+ value: {fileID: 7052581180763600252, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - time: 0.48333332
+ value: {fileID: 4839952163610979709, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - time: 0.6666667
+ value: {fileID: -4444670910754578914, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ attribute: m_Sprite
+ path:
+ classID: 212
+ script: {fileID: 0}
+ flags: 2
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ isIntCurve: 0
+ isSerializeReferenceCurve: 0
+ pptrCurveMapping:
+ - {fileID: -4444670910754578914, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - {fileID: 5233908553689211412, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - {fileID: 7052581180763600252, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - {fileID: 4839952163610979709, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ - {fileID: -4444670910754578914, guid: 464f70d7647a22a4aa688ffc2b6654cc, type: 3}
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.68333334
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 1
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim.meta b/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim.meta
new file mode 100644
index 00000000..068543b9
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/Animations/LawnMowerMowing.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 083a3166fef9168469713bd00eee5308
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller b/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller
new file mode 100644
index 00000000..feac809a
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller
@@ -0,0 +1,72 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-9094513822423650161
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: LawnMowerMowing
+ m_Speed: 1
+ m_CycleOffset: 0
+ m_Transitions: []
+ m_StateMachineBehaviours: []
+ m_Position: {x: 50, y: 50, z: 0}
+ m_IKOnFeet: 0
+ m_WriteDefaultValues: 1
+ m_Mirror: 0
+ m_SpeedParameterActive: 0
+ m_MirrorParameterActive: 0
+ m_CycleOffsetParameterActive: 0
+ m_TimeParameterActive: 0
+ m_Motion: {fileID: 7400000, guid: 083a3166fef9168469713bd00eee5308, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &-2429364330681070164
+AnimatorStateMachine:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Base Layer
+ m_ChildStates:
+ - serializedVersion: 1
+ m_State: {fileID: -9094513822423650161}
+ m_Position: {x: 30, y: 240, z: 0}
+ m_ChildStateMachines: []
+ m_AnyStateTransitions: []
+ m_EntryTransitions: []
+ m_StateMachineTransitions: {}
+ m_StateMachineBehaviours: []
+ m_AnyStatePosition: {x: 50, y: 20, z: 0}
+ m_EntryPosition: {x: 50, y: 120, z: 0}
+ m_ExitPosition: {x: 800, y: 120, z: 0}
+ m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
+ m_DefaultState: {fileID: -9094513822423650161}
+--- !u!91 &9100000
+AnimatorController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: _Lawnmower_Anim
+ serializedVersion: 5
+ m_AnimatorParameters: []
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: -2429364330681070164}
+ m_Mask: {fileID: 0}
+ m_Motions: []
+ m_Behaviours: []
+ m_BlendingMode: 0
+ m_SyncedLayerIndex: -1
+ m_DefaultWeight: 0
+ m_IKPass: 0
+ m_SyncedLayerAffectsTiming: 0
+ m_Controller: {fileID: 9100000}
diff --git a/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller.meta b/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller.meta
new file mode 100644
index 00000000..195a8f4f
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/Animations/_Lawnmower_Anim.controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: be48400cf83222c49ba9d7b34ab1d9e4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 9100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs b/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs
new file mode 100644
index 00000000..c2d02dfe
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs
@@ -0,0 +1,29 @@
+using UnityEngine;
+using Pixelplacement;
+
+public class LawnMowerBehaviour : MonoBehaviour
+{
+ private StateMachine stateMachineRef;
+
+ // Start is called once before the first execution of Update after the MonoBehaviour is created
+ void Start()
+ {
+ stateMachineRef = GetComponent();
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+
+ }
+ public void mowerTouched()
+ {
+ Debug.Log("Mower Touched");
+ }
+
+ public void stateSwitch(string StateName)
+ {
+ Debug.Log("State Switch to: " + StateName);
+ stateMachineRef.ChangeState(StateName);
+ }
+}
diff --git a/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs.meta b/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs.meta
new file mode 100644
index 00000000..627d2b6c
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/LawnMowerBehaviour.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 9fba2c868971b20439aaea06a939d8e7
\ No newline at end of file
diff --git a/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs
new file mode 100644
index 00000000..905a7165
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs
@@ -0,0 +1,69 @@
+using UnityEngine;
+using Pixelplacement;
+
+public class LawnMowerChaseBehaviour : MonoBehaviour
+{
+ public Spline ChaseSpline;
+ public Transform LawnMowerObject;
+ public float chaseDuration;
+ public float chaseDelay;
+
+ private Vector3 _originalScale;
+ private bool _facingRight = true;
+ private bool _movingForward = true;
+ private float _lastPercentage = 0f;
+ private const float AnchorThreshold = 0.1f; // Tolerance for anchor detection
+
+ void Start()
+ {
+ _originalScale = LawnMowerObject.localScale;
+
+ Tween.Spline(
+ ChaseSpline,
+ LawnMowerObject,
+ 0,
+ 1,
+ false,
+ chaseDuration,
+ chaseDelay,
+ Tween.EaseInOut,
+ Tween.LoopType.PingPong,
+ onComplete: OnTweenComplete
+ );
+ }
+
+ private void OnTweenComplete()
+ {
+ _movingForward = !_movingForward;
+ Flip(_movingForward);
+ }
+
+ private void OnTweenUpdate()
+ {
+ // Find the current percentage along the spline
+ float percentage = ChaseSpline.ClosestPoint(LawnMowerObject.position);
+
+ // Detect anchor arrival and flip accordingly
+ if (_facingRight && percentage >= 1f - AnchorThreshold)
+ {
+ Flip(false); // Face left at end anchor
+ _facingRight = false;
+ }
+ else if (!_facingRight && percentage <= AnchorThreshold)
+ {
+ Flip(true); // Face right at start anchor
+ _facingRight = true;
+ }
+
+ _lastPercentage = percentage;
+ }
+
+ private void Flip(bool faceRight)
+ {
+ var scale = _originalScale;
+ scale.x = Mathf.Abs(scale.x) * (faceRight ? 1 : -1);
+ LawnMowerObject.localScale = scale;
+ }
+
+ void Update() { }
+}
diff --git a/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs.meta b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs.meta
new file mode 100644
index 00000000..a4aebcb4
--- /dev/null
+++ b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 426d4511f8eb64747ab44f61973dcf2e
\ No newline at end of file