From c91717945ccc02cdfc87d2568734d6fa9680adb7 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Thu, 14 Dec 2023 22:34:21 +0000
Subject: [PATCH] Changed rotor animation handling

---
 Assets/Characters/Player/Rotor/Shuriken1.png.meta |  237 ++++++++++
 Assets/Characters/Player/Player.prefab            |   34 +
 Assets/Characters/Player/Rotor/Shuriken1.png      |    0 
 Assets/Scripts/PlayerController.cs                |   24 
 Assets/Scenes/GameplayScene.unity                 |  454 ++++++++++++++++++++
 Assets/Characters/Player/AC_Flying.controller     |  157 +++++++
 Assets/Characters/Player/rotor_stop.anim.meta     |    4 
 Assets/Characters/Player/rotor_idle.anim          |   72 +++
 /dev/null                                         |   49 --
 Assets/Characters/Player/AC_Player.controller     |   47 ++
 Assets/Characters/Player/rotor_stop.anim          |   53 ++
 Assets/Characters/Player/rotor_idle.anim.meta     |    4 
 Assets/Characters/Player/rotor_start.anim         |   84 +++
 Assets/Scripts/TouchingDirections.cs.meta         |   11 
 Assets/Characters/Player/rotor_start.anim.meta    |    4 
 Assets/Scripts/AnimationStrings.cs                |    2 
 Assets/Scripts/TouchingDirections.cs              |   51 ++
 17 files changed, 1,213 insertions(+), 74 deletions(-)

diff --git a/Assets/Characters/Player/AC_Flying.controller b/Assets/Characters/Player/AC_Flying.controller
index 7da2279..268cc37 100644
--- a/Assets/Characters/Player/AC_Flying.controller
+++ b/Assets/Characters/Player/AC_Flying.controller
@@ -11,7 +11,16 @@
   m_ChildStates:
   - serializedVersion: 1
     m_State: {fileID: 7530906470296434405}
-    m_Position: {x: 290, y: 170, z: 0}
+    m_Position: {x: 400, y: -10, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -4363231531035811044}
+    m_Position: {x: 400, y: 230, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: 706672698126450382}
+    m_Position: {x: 280, y: 110, z: 0}
+  - serializedVersion: 1
+    m_State: {fileID: -4692003973031684304}
+    m_Position: {x: 520, y: 110, z: 0}
   m_ChildStateMachines: []
   m_AnyStateTransitions: []
   m_EntryTransitions: []
@@ -21,7 +30,82 @@
   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: 7530906470296434405}
+  m_DefaultState: {fileID: -4363231531035811044}
+--- !u!1102 &-4692003973031684304
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: rotor_stop
+  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: 0}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1102 &-4363231531035811044
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: rotor_idle
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions:
+  - {fileID: 7011382255060591458}
+  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: ac76ccd3a8191ca4588136d08f6dacd1, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1101 &-3256331238631696850
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions: []
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 7530906470296434405}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0
+  m_TransitionOffset: 0
+  m_ExitTime: 1
+  m_HasExitTime: 1
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!91 &9100000
 AnimatorController:
   m_ObjectHideFlags: 0
@@ -30,7 +114,19 @@
   m_PrefabAsset: {fileID: 0}
   m_Name: AC_Flying
   serializedVersion: 5
-  m_AnimatorParameters: []
+  m_AnimatorParameters:
+  - m_Name: IsGrounded
+    m_Type: 4
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 0}
+  - m_Name: IsFlying
+    m_Type: 4
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 0}
   m_AnimatorLayers:
   - serializedVersion: 5
     m_Name: Base Layer
@@ -44,6 +140,61 @@
     m_IKPass: 0
     m_SyncedLayerAffectsTiming: 0
     m_Controller: {fileID: 9100000}
+--- !u!1102 &706672698126450382
+AnimatorState:
+  serializedVersion: 6
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: rotor_start
+  m_Speed: 1
+  m_CycleOffset: 0
+  m_Transitions:
+  - {fileID: -3256331238631696850}
+  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: 736513e06a318ac4da1d8ddd992f8b9e, type: 2}
+  m_Tag: 
+  m_SpeedParameter: 
+  m_MirrorParameter: 
+  m_CycleOffsetParameter: 
+  m_TimeParameter: 
+--- !u!1101 &7011382255060591458
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 1
+    m_ConditionEvent: IsFlying
+    m_EventTreshold: 0
+  - m_ConditionMode: 2
+    m_ConditionEvent: IsGrounded
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 706672698126450382}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0
+  m_TransitionOffset: 0
+  m_ExitTime: 0
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 0
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
 --- !u!1102 &7530906470296434405
 AnimatorState:
   serializedVersion: 6
diff --git a/Assets/Characters/Player/AC_Player.controller b/Assets/Characters/Player/AC_Player.controller
index ec98c2e..9da6a87 100644
--- a/Assets/Characters/Player/AC_Player.controller
+++ b/Assets/Characters/Player/AC_Player.controller
@@ -117,6 +117,9 @@
   - m_ConditionMode: 1
     m_ConditionEvent: IsFlying
     m_EventTreshold: 0
+  - m_ConditionMode: 2
+    m_ConditionEvent: IsGrounded
+    m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 7984510369417086179}
   m_Solo: 0
@@ -147,6 +150,12 @@
     m_DefaultBool: 0
     m_Controller: {fileID: 0}
   - m_Name: IsFlying
+    m_Type: 4
+    m_DefaultFloat: 0
+    m_DefaultInt: 0
+    m_DefaultBool: 0
+    m_Controller: {fileID: 0}
+  - m_Name: IsGrounded
     m_Type: 4
     m_DefaultFloat: 0
     m_DefaultInt: 0
@@ -204,6 +213,9 @@
   - m_ConditionMode: 2
     m_ConditionEvent: IsFlying
     m_EventTreshold: 0
+  - m_ConditionMode: 1
+    m_ConditionEvent: IsGrounded
+    m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 6445297590206837791}
   m_Solo: 0
@@ -213,6 +225,34 @@
   m_TransitionDuration: 0
   m_TransitionOffset: 0
   m_ExitTime: 0
+  m_HasExitTime: 0
+  m_HasFixedDuration: 1
+  m_InterruptionSource: 1
+  m_OrderedInterruption: 1
+  m_CanTransitionToSelf: 1
+--- !u!1101 &3484489205103101802
+AnimatorStateTransition:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: 
+  m_Conditions:
+  - m_ConditionMode: 2
+    m_ConditionEvent: IsGrounded
+    m_EventTreshold: 0
+  - m_ConditionMode: 2
+    m_ConditionEvent: IsFlying
+    m_EventTreshold: 0
+  m_DstStateMachine: {fileID: 0}
+  m_DstState: {fileID: 68305137226140118}
+  m_Solo: 0
+  m_Mute: 0
+  m_IsExit: 0
+  serializedVersion: 3
+  m_TransitionDuration: 0
+  m_TransitionOffset: 0
+  m_ExitTime: 0.5
   m_HasExitTime: 0
   m_HasFixedDuration: 1
   m_InterruptionSource: 1
@@ -228,6 +268,9 @@
   m_Conditions:
   - m_ConditionMode: 1
     m_ConditionEvent: IsFlying
+    m_EventTreshold: 0
+  - m_ConditionMode: 2
+    m_ConditionEvent: IsGrounded
     m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 7984510369417086179}
@@ -282,6 +325,9 @@
   - m_ConditionMode: 1
     m_ConditionEvent: IsMoving
     m_EventTreshold: 0
+  - m_ConditionMode: 1
+    m_ConditionEvent: IsGrounded
+    m_EventTreshold: 0
   m_DstStateMachine: {fileID: 0}
   m_DstState: {fileID: 6445297590206837791}
   m_Solo: 0
@@ -309,6 +355,7 @@
   m_Transitions:
   - {fileID: 1760657886866949958}
   - {fileID: -8857883071945152901}
+  - {fileID: 3484489205103101802}
   m_StateMachineBehaviours: []
   m_Position: {x: 50, y: 50, z: 0}
   m_IKOnFeet: 0
diff --git a/Assets/Characters/Player/Player.prefab b/Assets/Characters/Player/Player.prefab
index cd4439a..61b138b 100644
--- a/Assets/Characters/Player/Player.prefab
+++ b/Assets/Characters/Player/Player.prefab
@@ -40,7 +40,7 @@
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1519978218308964847}
-  m_Enabled: 0
+  m_Enabled: 1
   m_CastShadows: 0
   m_ReceiveShadows: 0
   m_DynamicOccludee: 1
@@ -121,6 +121,7 @@
   - component: {fileID: 6914713383366050867}
   - component: {fileID: 3884295854780712968}
   - component: {fileID: 2451348752795735853}
+  - component: {fileID: 5338311196462064651}
   m_Layer: 0
   m_Name: Player
   m_TagString: Untagged
@@ -237,9 +238,9 @@
   m_EditorClassIdentifier: 
   moveSpeed: 5
   maxFallSpeed: -20
+  rotorGO: {fileID: 1519978218308964847}
   _isMoving: 0
   _isFlying: 0
-  rotorGO: {fileID: 1519978218308964847}
 --- !u!114 &6914713383366050867
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -400,3 +401,32 @@
   m_AllowConstantClipSamplingOptimization: 1
   m_KeepAnimatorStateOnDisable: 0
   m_WriteDefaultValuesOnDisable: 0
+--- !u!114 &5338311196462064651
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3345854317100013954}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 020eca3b7119d5d4a91c826741855730, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  castFilter:
+    useTriggers: 0
+    useLayerMask: 0
+    useDepth: 0
+    useOutsideDepth: 0
+    useNormalAngle: 0
+    useOutsideNormalAngle: 0
+    layerMask:
+      serializedVersion: 2
+      m_Bits: 0
+    minDepth: 0
+    maxDepth: 0
+    minNormalAngle: 0
+    maxNormalAngle: 0
+  groundDistance: 0.05
+  rotorGO: {fileID: 1519978218308964847}
+  _isGrounded: 1
diff --git a/Assets/Characters/Player/Rotor/Shuriken1.png b/Assets/Characters/Player/Rotor/Shuriken1.png
new file mode 100644
index 0000000..af4a94c
--- /dev/null
+++ b/Assets/Characters/Player/Rotor/Shuriken1.png
Binary files differ
diff --git a/Assets/Characters/Player/Rotor/Shuriken1.png.meta b/Assets/Characters/Player/Rotor/Shuriken1.png.meta
new file mode 100644
index 0000000..8714140
--- /dev/null
+++ b/Assets/Characters/Player/Rotor/Shuriken1.png.meta
@@ -0,0 +1,237 @@
+fileFormatVersion: 2
+guid: 27a3c1de00b16624da61c799b9a79d42
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 0
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 2
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 16
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 4096
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Shuriken1_0
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 16
+        height: 16
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 4a48f6f81d435674fb697ba29cac8f40
+      internalID: 43499823
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: Shuriken1_1
+      rect:
+        serializedVersion: 2
+        x: 16
+        y: 0
+        width: 16
+        height: 16
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: dcb481297f601224397d51f8d7c2d658
+      internalID: 1439463404
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: Shuriken1_2
+      rect:
+        serializedVersion: 2
+        x: 32
+        y: 0
+        width: 16
+        height: 16
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: d695e4f61752d154683756112b16b487
+      internalID: -524974412
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: Shuriken1_3
+      rect:
+        serializedVersion: 2
+        x: 48
+        y: 0
+        width: 16
+        height: 16
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: a09ce1ecdf90f1d4ba4152d245a62c11
+      internalID: -140900564
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    - serializedVersion: 2
+      name: Shuriken1_4
+      rect:
+        serializedVersion: 2
+        x: 64
+        y: 0
+        width: 16
+        height: 16
+      alignment: 0
+      pivot: {x: 0, y: 0}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: db4320539bd4b95409b84177fad9a1c1
+      internalID: 1804080735
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable:
+      Shuriken1_0: 43499823
+      Shuriken1_1: 1439463404
+      Shuriken1_2: -524974412
+      Shuriken1_3: -140900564
+      Shuriken1_4: 1804080735
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Characters/Player/rotor_idle.anim b/Assets/Characters/Player/rotor_idle.anim
new file mode 100644
index 0000000..abc24ef
--- /dev/null
+++ b/Assets/Characters/Player/rotor_idle.anim
@@ -0,0 +1,72 @@
+%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: rotor_idle
+  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: 1804080735, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    attribute: m_Sprite
+    path: 
+    classID: 212
+    script: {fileID: 0}
+    flags: 2
+  m_SampleRate: 6
+  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: 1804080735, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 0.16666667
+    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/Material/PixelPerfect.mat.meta b/Assets/Characters/Player/rotor_idle.anim.meta
similarity index 63%
copy from Assets/Material/PixelPerfect.mat.meta
copy to Assets/Characters/Player/rotor_idle.anim.meta
index 0fdcbdb..dff5aca 100644
--- a/Assets/Material/PixelPerfect.mat.meta
+++ b/Assets/Characters/Player/rotor_idle.anim.meta
@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: a0a78c458b47773469f08e5909adf266
+guid: ac76ccd3a8191ca4588136d08f6dacd1
 NativeFormatImporter:
   externalObjects: {}
-  mainObjectFileID: 2100000
+  mainObjectFileID: 7400000
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/Assets/Characters/Player/rotor_start.anim b/Assets/Characters/Player/rotor_start.anim
new file mode 100644
index 0000000..48ca1f3
--- /dev/null
+++ b/Assets/Characters/Player/rotor_start.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: rotor_start
+  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: 1804080735, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - time: 0.25
+      value: {fileID: -140900564, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - time: 0.5
+      value: {fileID: -524974412, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - time: 0.75
+      value: {fileID: 43499823, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - time: 1.25
+      value: {fileID: -140900564, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    attribute: m_Sprite
+    path: 
+    classID: 212
+    script: {fileID: 0}
+    flags: 2
+  m_SampleRate: 4
+  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: 1804080735, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - {fileID: -140900564, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - {fileID: -524974412, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - {fileID: 43499823, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+    - {fileID: -140900564, guid: 27a3c1de00b16624da61c799b9a79d42, type: 3}
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1.5
+    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/Material/PixelPerfect.mat.meta b/Assets/Characters/Player/rotor_start.anim.meta
similarity index 63%
rename from Assets/Material/PixelPerfect.mat.meta
rename to Assets/Characters/Player/rotor_start.anim.meta
index 0fdcbdb..b9691e1 100644
--- a/Assets/Material/PixelPerfect.mat.meta
+++ b/Assets/Characters/Player/rotor_start.anim.meta
@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: a0a78c458b47773469f08e5909adf266
+guid: 736513e06a318ac4da1d8ddd992f8b9e
 NativeFormatImporter:
   externalObjects: {}
-  mainObjectFileID: 2100000
+  mainObjectFileID: 7400000
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/Assets/Characters/Player/rotor_stop.anim b/Assets/Characters/Player/rotor_stop.anim
new file mode 100644
index 0000000..8744d71
--- /dev/null
+++ b/Assets/Characters/Player/rotor_stop.anim
@@ -0,0 +1,53 @@
+%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: rotor_stop
+  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: []
+  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: []
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1
+    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/Material/PixelPerfect.mat.meta b/Assets/Characters/Player/rotor_stop.anim.meta
similarity index 63%
copy from Assets/Material/PixelPerfect.mat.meta
copy to Assets/Characters/Player/rotor_stop.anim.meta
index 0fdcbdb..69e44a8 100644
--- a/Assets/Material/PixelPerfect.mat.meta
+++ b/Assets/Characters/Player/rotor_stop.anim.meta
@@ -1,8 +1,8 @@
 fileFormatVersion: 2
-guid: a0a78c458b47773469f08e5909adf266
+guid: 2089a965dc1b72949bfcd5fa5d2aa655
 NativeFormatImporter:
   externalObjects: {}
-  mainObjectFileID: 2100000
+  mainObjectFileID: 7400000
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/Assets/Material/PixelPerfect.mat b/Assets/Material/PixelPerfect.mat
deleted file mode 100644
index 85b3954..0000000
--- a/Assets/Material/PixelPerfect.mat
+++ /dev/null
@@ -1,49 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!21 &2100000
-Material:
-  serializedVersion: 8
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: PixelPerfect
-  m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3}
-  m_Parent: {fileID: 0}
-  m_ModifiedSerializedProperties: 0
-  m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 4
-  m_EnableInstancingVariants: 0
-  m_DoubleSidedGI: 0
-  m_CustomRenderQueue: -1
-  stringTagMap: {}
-  disabledShaderPasses: []
-  m_LockedProperties: 
-  m_SavedProperties:
-    serializedVersion: 3
-    m_TexEnvs:
-    - _AlphaTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MainTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MaskTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _NormalMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    m_Ints: []
-    m_Floats:
-    - _EnableExternalAlpha: 0
-    m_Colors:
-    - _Color: {r: 1, g: 1, b: 1, a: 1}
-    - _Flip: {r: 1, g: 1, b: 1, a: 1}
-    - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
-  m_BuildTextureStacks: []
diff --git a/Assets/Scenes/GameplayScene.unity b/Assets/Scenes/GameplayScene.unity
index c05e3b6..c38f393 100644
--- a/Assets/Scenes/GameplayScene.unity
+++ b/Assets/Scenes/GameplayScene.unity
@@ -971,6 +971,26 @@
   m_GameObject: {fileID: 1235149190}
   m_Enabled: 1
   m_Tiles:
+  - first: {x: 0, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 32
+      m_TileSpriteIndex: 32
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 1, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 33
+      m_TileSpriteIndex: 33
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
   - first: {x: 3, y: -1, z: 0}
     second:
       serializedVersion: 2
@@ -996,6 +1016,46 @@
       serializedVersion: 2
       m_TileIndex: 3
       m_TileSpriteIndex: 3
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 6, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 34
+      m_TileSpriteIndex: 34
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 7, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 35
+      m_TileSpriteIndex: 35
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 6
+      m_TileSpriteIndex: 6
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 7
+      m_TileSpriteIndex: 7
       m_TileMatrixIndex: 0
       m_TileColorIndex: 0
       m_TileObjectToInstantiateIndex: 65535
@@ -1031,6 +1091,66 @@
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 1073741825
+  - first: {x: 6, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 36
+      m_TileSpriteIndex: 36
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 7, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 37
+      m_TileSpriteIndex: 37
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 9, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 8
+      m_TileSpriteIndex: 8
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 9
+      m_TileSpriteIndex: 9
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 10
+      m_TileSpriteIndex: 10
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 12, y: 0, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 11
+      m_TileSpriteIndex: 11
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
   - first: {x: 3, y: 1, z: 0}
     second:
       serializedVersion: 2
@@ -1061,6 +1181,206 @@
       m_TileObjectToInstantiateIndex: 65535
       dummyAlignment: 0
       m_AllTileFlags: 1073741825
+  - first: {x: 9, y: 1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 12
+      m_TileSpriteIndex: 12
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: 1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 13
+      m_TileSpriteIndex: 13
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 14
+      m_TileSpriteIndex: 14
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 12, y: 1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 15
+      m_TileSpriteIndex: 15
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 13, y: 1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 16
+      m_TileSpriteIndex: 16
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 9, y: 2, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 17
+      m_TileSpriteIndex: 17
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: 2, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 18
+      m_TileSpriteIndex: 18
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 2, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 19
+      m_TileSpriteIndex: 19
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 12, y: 2, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 20
+      m_TileSpriteIndex: 20
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 13, y: 2, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 21
+      m_TileSpriteIndex: 21
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 9, y: 3, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 22
+      m_TileSpriteIndex: 22
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: 3, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 23
+      m_TileSpriteIndex: 23
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 3, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 24
+      m_TileSpriteIndex: 24
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 12, y: 3, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 25
+      m_TileSpriteIndex: 25
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 13, y: 3, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 26
+      m_TileSpriteIndex: 26
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 9, y: 4, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 27
+      m_TileSpriteIndex: 27
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 10, y: 4, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 28
+      m_TileSpriteIndex: 28
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 4, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 29
+      m_TileSpriteIndex: 29
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 12, y: 4, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 30
+      m_TileSpriteIndex: 30
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  - first: {x: 11, y: 5, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 31
+      m_TileSpriteIndex: 31
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
   m_AnimatedTiles: {}
   m_TileAssetArray:
   - m_RefCount: 1
@@ -1075,6 +1395,70 @@
     m_Data: {fileID: 11400000, guid: 21f5cf297baea3c458bd8a48399028d9, type: 2}
   - m_RefCount: 2
     m_Data: {fileID: 11400000, guid: 6bf821d1664b8cd49972fb3b0c146bbb, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 763f4d63a67d142489d46a38f5dc96d2, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 8b8dc6507fc49644f8b32da98a229350, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 6db2f51edd89a5549805df0f1670e7d7, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 9d3bb838ebe39764a9cefee263a4804b, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: ef5bf6e8393267e418cd300968fb7797, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: caa07eea7f3068a4dbe179b97daba3aa, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 7b05be4f1493a2a4e96d90dc530f45d1, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: b1c019da0efc73340a459c4d601f57ca, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 76cd7d64181f1e04bb32dfd9f540cf33, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 45ca2a9486bbab745abdceefe19c6083, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 92b7847dccd22a4438fc54abd5997f8b, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: b2b501627d8777a4185a9dfcb07dc372, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: c3d8f6eba7167c64ab1cdec82d308c14, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 6e7691950dcf3ca4fa032abcf0905a06, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 8021086312a57c84da293bfc2171a08a, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 0ee344955b8f52d4b8217695130ab01a, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 60e0a4d3f2065b0409fc22cade05ef6a, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: ecd88c4613d27f3439ca041f92d71b99, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 1f4d25c9f2311b348a7310654a4e13e7, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: b5325964f54db4541a75a1cf23d586dc, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 1677d122df2c3114bab955737031358d, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: f801de5b659dc5449a42fc26c0d26ce4, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 66cb0feb7d0f30644a02f38f35837779, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 73161c40636cb7041b6316c1992dfc5c, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: a9d7315482052d24c8b51616d66cddac, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 204f1575a0e8de547a9b2cbb1647f6fc, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: ac28c543a2a6f1a49bd8330465dcc1d1, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 8ad8d99b82e70f44282c16e9d9212352, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 9b08cbd851e61d440ab3bbec430551d0, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: a6d768d37412b75439e62ced7c847ce1, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: 3ea8d82f6ede57b458c8cfad82436b07, type: 2}
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: e330cf9029f92104d8f96de7378b4470, type: 2}
   m_TileSpriteArray:
   - m_RefCount: 1
     m_Data: {fileID: 2053391641, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3}
@@ -1088,8 +1472,72 @@
     m_Data: {fileID: 1212536096, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3}
   - m_RefCount: 2
     m_Data: {fileID: 599150721, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 750320154, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 931924612, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1494238535, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -117029578, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 613417144, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1943270289, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 685382886, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1414578887, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1733927219, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1112185400, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -983550853, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1126874050, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -736197831, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 75902080, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1641904010, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 161513109, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1883699563, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -948358001, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1816190779, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 787792029, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 362693116, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 449572791, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -2017102104, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -2054200935, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1940499582, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -1185747153, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 838019610, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 111357136, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: -406455144, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1265893066, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 1513212746, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
+  - m_RefCount: 1
+    m_Data: {fileID: 303207288, guid: 118553c8864a2bf4abaf757c357494e5, type: 3}
   m_TileMatrixArray:
-  - m_RefCount: 9
+  - m_RefCount: 41
     m_Data:
       e00: 1
       e01: 0
@@ -1108,13 +1556,13 @@
       e32: 0
       e33: 1
   m_TileColorArray:
-  - m_RefCount: 9
+  - m_RefCount: 41
     m_Data: {r: 1, g: 1, b: 1, a: 1}
   m_TileObjectToInstantiateArray: []
   m_AnimationFrameRate: 1
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_Origin: {x: 0, y: -1, z: 0}
-  m_Size: {x: 6, y: 3, z: 1}
+  m_Size: {x: 14, y: 7, z: 1}
   m_TileAnchor: {x: 0.5, y: 0.5, z: 0}
   m_TileOrientation: 0
   m_TileOrientationMatrix:
diff --git a/Assets/Scripts/AnimationStrings.cs b/Assets/Scripts/AnimationStrings.cs
index ac9b492..0ed6a81 100644
--- a/Assets/Scripts/AnimationStrings.cs
+++ b/Assets/Scripts/AnimationStrings.cs
@@ -7,5 +7,7 @@
     {
         internal static string IsMoving = "IsMoving";
         internal static string IsFlying = "IsFlying";
+
+        internal static string IsGrounded = "IsGrounded";
     }
 }
\ No newline at end of file
diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs
index 3381b36..c193afd 100644
--- a/Assets/Scripts/PlayerController.cs
+++ b/Assets/Scripts/PlayerController.cs
@@ -10,6 +10,11 @@
     public float maxFallSpeed = -20f;
     Vector2 moveInput;
 
+    Rigidbody2D rb;
+    Animator animator;
+    Animator animator_rotor;
+    public GameObject rotorGO;
+
     [SerializeField]
     private bool _isMoving;
     public bool IsMoving
@@ -31,7 +36,7 @@
         {
             _isFlying = value;
             animator.SetBool(AnimationStrings.Player.IsFlying, value);
-            rotorSprite.enabled = value;
+            animator_rotor.SetBool(AnimationStrings.Player.IsFlying, value);
         }
     }
 
@@ -40,25 +45,21 @@
     public bool IsFacingRight
     {
         get { return _isFacingRight; }
-        set { 
+        set
+        {
             if (_isFacingRight != value)
             {
                 transform.localScale *= new Vector2(-1, 1);
             }
-            _isFacingRight = value; }
+            _isFacingRight = value;
+        }
     }
-
-
-    Rigidbody2D rb;
-    Animator animator;
-    public GameObject rotorGO;
-    SpriteRenderer rotorSprite;
 
     private void Awake()
     {
         rb = GetComponent<Rigidbody2D>();
         animator = GetComponent<Animator>();
-        rotorSprite = rotorGO.GetComponent<SpriteRenderer>();
+        animator_rotor = rotorGO.GetComponent<Animator>();
     }
 
     // Start is called before the first frame update
@@ -108,7 +109,8 @@
         moveInput = context.ReadValue<Vector2>();
 
         IsMoving = moveInput.x != 0;
-        IsFlying = moveInput.y != 0;
+
+        IsFlying = (moveInput.y != 0);
 
         SetFacingDirection(moveInput);
 
diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs
new file mode 100644
index 0000000..cbf8a60
--- /dev/null
+++ b/Assets/Scripts/TouchingDirections.cs
@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TouchingDirections : MonoBehaviour
+{
+    public ContactFilter2D castFilter;
+    public float groundDistance = 0.05f;
+
+    Rigidbody2D rb;
+    public GameObject rotorGO;
+
+    BoxCollider2D touchingCol;
+    Animator animator;
+    Animator animator_rotor;
+
+    RaycastHit2D[] groundHits = new RaycastHit2D[5];
+
+    [SerializeField]
+    private bool _isGrounded;
+
+    public bool IsGrounded
+    {
+        get { return _isGrounded; }
+        set
+        {
+            _isGrounded = value;
+            animator.SetBool(AnimationStrings.Player.IsGrounded, value);
+            animator_rotor.SetBool(AnimationStrings.Player.IsGrounded, value);
+        }
+    }
+
+
+    void Awake()
+    {
+        rb = GetComponent<Rigidbody2D>();
+        touchingCol = rb.GetComponent<BoxCollider2D>();
+        animator = rb.GetComponent<Animator>();
+        animator_rotor = rotorGO.GetComponent<Animator>();
+    }
+    // Start is called before the first frame update
+    void Start()
+    {
+
+    }
+
+    void FixedUpdate()
+    {
+        IsGrounded = touchingCol.Cast(Vector2.down, castFilter, groundHits, groundDistance) > 0;
+    }
+}
diff --git a/Assets/Scripts/TouchingDirections.cs.meta b/Assets/Scripts/TouchingDirections.cs.meta
new file mode 100644
index 0000000..b050eb5
--- /dev/null
+++ b/Assets/Scripts/TouchingDirections.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 020eca3b7119d5d4a91c826741855730
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.9.3