From 6f2125d2cd1607b8fb70db652607adc84fd9346c Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Fri, 22 Dec 2023 19:40:59 +0000 Subject: [PATCH] Added drilling function to player --- Assets/Characters/Player/Player.prefab | 7 Assets/Scripts/Enums/DrillDirection.cs.meta | 11 Assets/Scripts/Managers/GameManager.cs | 21 + Assets/Scripts/PlayerController.cs | 73 +++ Assets/Scripts/Enums/DrillDirection.cs | 14 Assets/Scenes/GameplayScene.unity | 934 ++++++++++-------------------------------------- Assets/Scripts/Events/CharacterEvents.cs | 2 Assets/Scripts/TouchingDirections.cs | 42 + 8 files changed, 356 insertions(+), 748 deletions(-) diff --git a/Assets/Characters/Player/Player.prefab b/Assets/Characters/Player/Player.prefab index 4b725e2..2c4a01b 100644 --- a/Assets/Characters/Player/Player.prefab +++ b/Assets/Characters/Player/Player.prefab @@ -241,8 +241,10 @@ maxFallSpeed: -20 maxFallSpeedDamge: -10 rotorGO: {fileID: 1519978218308964847} + drillingTime: 1 _isMoving: 0 _isFlying: 0 + _isDrilling: 0 --- !u!114 &6914713383366050867 MonoBehaviour: m_ObjectHideFlags: 0 @@ -385,7 +387,7 @@ m_AutoTiling: 0 serializedVersion: 2 m_Size: {x: 0.7205616, y: 0.7178567} - m_EdgeRadius: 0.12 + m_EdgeRadius: 0 --- !u!95 &2451348752795735853 Animator: serializedVersion: 5 @@ -438,7 +440,8 @@ ceilingDistance: 0.05 rotorGO: {fileID: 1519978218308964847} _isGrounded: 1 - _isAtWall: 0 + _isAtWallLeft: 0 + _isAtWallRight: 0 _isAtCeiling: 0 --- !u!114 &2350719025294399868 MonoBehaviour: diff --git a/Assets/Scenes/GameplayScene.unity b/Assets/Scenes/GameplayScene.unity index 36bc663..42df583 100644 --- a/Assets/Scenes/GameplayScene.unity +++ b/Assets/Scenes/GameplayScene.unity @@ -909,6 +909,67 @@ m_CorrespondingSourceObject: {fileID: 2368348636056148999, guid: c220ec455fce341408d66d880b464cad, type: 3} m_PrefabInstance: {fileID: 257677327013671455} m_PrefabAsset: {fileID: 0} +--- !u!1001 &318061306 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 2563239544192693220, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_Name + value: AudioManager + objectReference: {fileID: 0} + - target: {fileID: 2563239544192693220, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalPosition.z + value: -10 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6382851984236710143, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 6b54c0762333ea34a93ec05ccbb1330f, type: 3} --- !u!1001 &391227262 PrefabInstance: m_ObjectHideFlags: 0 @@ -4071,6 +4132,7 @@ - component: {fileID: 1919262560} - component: {fileID: 1919262562} - component: {fileID: 1919262561} + - component: {fileID: 1919262563} m_Layer: 6 m_Name: Tilemap m_TagString: Untagged @@ -4087,7 +4149,7 @@ m_GameObject: {fileID: 1919262556} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: -128, y: -257, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -4150,718 +4212,152 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1919262556} m_Enabled: 1 - m_Tiles: - - first: {x: -3, y: -5, 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: -2, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -1, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 5, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 6, y: -5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 7, y: -5, 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: -3, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 4 - m_TileSpriteIndex: 4 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -2, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -1, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 5, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 6, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 7, y: -4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 5 - m_TileSpriteIndex: 5 - 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: 8 - m_TileSpriteIndex: 8 - 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: 7 - m_TileSpriteIndex: 7 - 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: 6 - m_TileSpriteIndex: 6 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -3, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 4 - m_TileSpriteIndex: 4 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -2, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -1, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 5, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 6, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 7, y: -3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 5 - m_TileSpriteIndex: 5 - 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: 4 - m_TileSpriteIndex: 4 - 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: 1 - m_TileSpriteIndex: 1 - 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: 5 - m_TileSpriteIndex: 5 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 11 - m_TileSpriteIndex: 10 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -3, y: -2, 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: -2, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -1, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 5, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 6, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 7, y: -2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 2 - m_TileSpriteIndex: 2 - 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: 3 - m_TileSpriteIndex: 13 - 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: 0 - m_TileSpriteIndex: 0 - 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: 2 - m_TileSpriteIndex: 2 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: -1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 13 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: -4, y: 5, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 12 - m_TileSpriteIndex: 11 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 + m_Tiles: {} m_AnimatedTiles: {} m_TileAssetArray: - - m_RefCount: 10 - m_Data: {fileID: 11400000, guid: 4739629ac582554429a2c7712d4a7932, type: 2} - - m_RefCount: 19 - m_Data: {fileID: 11400000, guid: 6710ea292eefe0a409010947812e5a30, type: 2} - - m_RefCount: 2 - m_Data: {fileID: 11400000, guid: 64ff2ae85e189834b9b4c888886420ff, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 45f6756a69eb96b44ba8f63785bcf482, type: 2} - - m_RefCount: 3 - m_Data: {fileID: 11400000, guid: 9f954b09168e28446a41aaab42edc51d, type: 2} - - m_RefCount: 3 - m_Data: {fileID: 11400000, guid: 5ad6b588bfcb8a34a8229c9d744b26da, type: 2} - - m_RefCount: 2 - m_Data: {fileID: 11400000, guid: 4841979de4e58dc4c89b3accf7443e63, type: 2} - - m_RefCount: 10 - m_Data: {fileID: 11400000, guid: 18f9684c26627104ba352b92d7c5450e, type: 2} - - m_RefCount: 2 - m_Data: {fileID: 11400000, guid: ef98d0a287bc82d4a9359dd067c16c3d, type: 2} - m_RefCount: 0 m_Data: {fileID: 0} - m_RefCount: 0 m_Data: {fileID: 0} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 3d59b10114dd8374795cb84c123617a9, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 5c4d4b6bc091bf54f89d2cec7f234b99, type: 2} - - m_RefCount: 6 - m_Data: {fileID: 11400000, guid: 4e9d6d19d0ce36a48980f6c99950197d, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: f4366b87b66653d41951ee029322b421, type: 2} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} m_TileSpriteArray: - - m_RefCount: 10 - m_Data: {fileID: -1554015212, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 19 - m_Data: {fileID: 68800321, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 2 - m_Data: {fileID: 952801214, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - m_RefCount: 0 m_Data: {fileID: 0} - - m_RefCount: 3 - m_Data: {fileID: -1701200628, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 3 - m_Data: {fileID: -1608621674, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 2 - m_Data: {fileID: -1438444955, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 10 - m_Data: {fileID: -603009601, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 2 - m_Data: {fileID: 1210147125, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - m_RefCount: 0 m_Data: {fileID: 0} - - m_RefCount: 1 - m_Data: {fileID: 663754295, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1397353389, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 6 - m_Data: {fileID: -19378075, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -1200237691, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1451081626, guid: 42962cf14c23fee4baaaea0cd52d52e0, type: 3} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} + - m_RefCount: 0 + m_Data: {fileID: 0} m_TileMatrixArray: - - m_RefCount: 61 + - m_RefCount: 0 m_Data: - e00: 1 + e00: 0 + e01: 0 + e02: 5.5000076 + e03: 5.5000076 + e10: 0 + e11: 0 + e12: 6.95e-43 + e13: 6.95e-43 + e20: 1.1215021e-15 + e21: 8.91894e+31 + e22: -9.3987e-28 + e23: -1.130028e-19 + e30: 4.5905e-41 + e31: 6.98e-43 + e32: 6.95e-43 + e33: 6.98e-43 + - m_RefCount: 0 + m_Data: + e00: 0 e01: 0 e02: 0 - e03: 0 + e03: 8.2592184e+23 e10: 0 - e11: 1 + e11: 0 e12: 0 - e13: 0 + e13: 1.06e-43 e20: 0 e21: 0 - e22: 1 + e22: 4.719261e-16 e23: 0 e30: 0 e31: 0 - e32: 0 - e33: 1 + e32: 4.5905e-41 + e33: 0 + - m_RefCount: 0 + m_Data: + e00: 0 + e01: 0 + e02: 5.5000076 + e03: 5.5000076 + e10: 0 + e11: 0 + e12: 6.95e-43 + e13: 6.95e-43 + e20: 1.1215021e-15 + e21: 14.638138 + e22: -1.3211928e-28 + e23: -1.093541e-19 + e30: 4.5905e-41 + e31: 6.98e-43 + e32: 6.95e-43 + e33: 6.98e-43 m_TileColorArray: - - m_RefCount: 61 - m_Data: {r: 1, g: 1, b: 1, a: 1} + - m_RefCount: 0 + m_Data: {r: 4.4012e-41, g: 4.4012e-41, b: 4.4012e-41, a: 4.4012e-41} m_TileObjectToInstantiateArray: [] m_AnimationFrameRate: 1 m_Color: {r: 1, g: 1, b: 1, a: 1} m_Origin: {x: -4, y: -5, z: 0} - m_Size: {x: 17, y: 11, z: 1} + m_Size: {x: 145, y: 263, z: 1} m_TileAnchor: {x: 0.5, y: 0.5, z: 0} m_TileOrientation: 0 m_TileOrientationMatrix: e00: 1 e01: 0 e02: 0 - e03: 0 + e03: -128 e10: 0 e11: 1 e12: 0 - e13: 0 + e13: -257 e20: 0 e21: 0 e22: 1 @@ -4944,66 +4440,9 @@ m_EdgeRadius: 0 m_ColliderPaths: - m_Collider: {fileID: 1919262560} - m_ColliderPaths: - - - X: 80000000 - Y: -45000000 - - X: 80000000 - Y: -10000000 - - X: -30000000 - Y: -10000000 - - X: -30000000 - Y: 55625000 - - X: -35000000 - Y: 60000000 - - X: -40000000 - Y: 60000000 - - X: -40000000 - Y: -20000000 - - X: -30000000 - Y: -20000000 - - X: -30000000 - Y: -43750000 - - X: -28125000 - Y: -47500000 - - X: -23750000 - Y: -50000000 - - X: 76250000 - Y: -50000000 - - - X: 130000000 - Y: -35000000 - - X: 130000000 - Y: -10000000 - - X: 100000000 - Y: -10000000 - - X: 100000000 - Y: -33750000 - - X: 101875000 - Y: -37500000 - - X: 106250000 - Y: -40000000 - - X: 126250000 - Y: -40000000 + m_ColliderPaths: [] m_CompositePaths: - m_Paths: - - - {x: 7.624987, y: -5} - - {x: 8, y: -4.4999914} - - {x: 7.9999704, y: -1} - - {x: -3, y: -0.9999706} - - {x: -3.0000088, y: 5.5625076} - - {x: -3.5000095, y: 6} - - {x: -4, y: 5.999971} - - {x: -3.999971, y: -2} - - {x: -3, y: -2.0000293} - - {x: -2.9999971, y: -4.3750057} - - {x: -2.8124933, y: -4.750004} - - {x: -2.3749933, y: -5} - - - {x: 12.624988, y: -4} - - {x: 13, y: -3.4999917} - - {x: 12.99997, y: -1} - - {x: 10, y: -1.0000293} - - {x: 10.000003, y: -3.3750057} - - {x: 10.187507, y: -3.7500036} - - {x: 10.625007, y: -4} + m_Paths: [] m_VertexDistance: 0.0005 m_OffsetDistance: 0.00005 m_UseDelaunayMesh: 0 @@ -5035,6 +4474,24 @@ m_SleepingMode: 1 m_CollisionDetection: 0 m_Constraints: 0 +--- !u!114 &1919262563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919262556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 000b2ca4a3c14d04e8c8a5c1084c700f, type: 3} + m_Name: + m_EditorClassIdentifier: + width: 256 + height: 256 + scale: 20 + offsetX: 0 + offsetY: 0 + ruleTile: {fileID: 11400000, guid: e77c00aec3ec74f4a9ec15ef63c3f9a7, type: 2} --- !u!1 &1990316377 GameObject: m_ObjectHideFlags: 0 @@ -5443,6 +4900,10 @@ value: 0 objectReference: {fileID: 0} - target: {fileID: 6908574976455911116, guid: 7296d9a2424531f4ba42c0c75e9c48a0, type: 3} + propertyPath: tilemap + value: + objectReference: {fileID: 1919262559} + - target: {fileID: 6908574976455911116, guid: 7296d9a2424531f4ba42c0c75e9c48a0, type: 3} propertyPath: playerUI value: objectReference: {fileID: 2064964502} @@ -5551,3 +5012,4 @@ - {fileID: 1409843026} - {fileID: 1406521045} - {fileID: 1007461191} + - {fileID: 318061306} diff --git a/Assets/Scripts/Enums/DrillDirection.cs b/Assets/Scripts/Enums/DrillDirection.cs new file mode 100644 index 0000000..628eaa8 --- /dev/null +++ b/Assets/Scripts/Enums/DrillDirection.cs @@ -0,0 +1,14 @@ +using System.Reflection; +using System; +using UnityEditor; +using UnityEngine; + +namespace Assets.Scripts.Enums +{ + public enum DrillDirection + { + Down = 0, + Left = 1, + Right = 2, + } +} \ No newline at end of file diff --git a/Assets/Scripts/Enums/DrillDirection.cs.meta b/Assets/Scripts/Enums/DrillDirection.cs.meta new file mode 100644 index 0000000..f39da89 --- /dev/null +++ b/Assets/Scripts/Enums/DrillDirection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a7ea500286a4ad546a302321e505e495 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Events/CharacterEvents.cs b/Assets/Scripts/Events/CharacterEvents.cs index 616086a..5d4e7f6 100644 --- a/Assets/Scripts/Events/CharacterEvents.cs +++ b/Assets/Scripts/Events/CharacterEvents.cs @@ -1,3 +1,4 @@ +using Assets.Scripts.Enums; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -7,4 +8,5 @@ { public static UnityAction<GameObject, int> characterDamaged; public static UnityAction<GameObject, int> characterHealed; + public static UnityAction<ContactPoint2D, DrillDirection> characterDrill; } diff --git a/Assets/Scripts/Managers/GameManager.cs b/Assets/Scripts/Managers/GameManager.cs index 0347568..c7925d3 100644 --- a/Assets/Scripts/Managers/GameManager.cs +++ b/Assets/Scripts/Managers/GameManager.cs @@ -5,6 +5,7 @@ using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.SceneManagement; +using UnityEngine.Tilemaps; public class GameManager : SettingsManager { @@ -12,6 +13,7 @@ public GameObject healthTextPrefab; public Canvas playerUI; public Canvas pauseMenuUI; + public Tilemap tilemap; private void Awake() { @@ -23,6 +25,7 @@ // add listen events CharacterEvents.characterDamaged += (CharacterTookDamange); CharacterEvents.characterHealed += (CharacterHealed); + CharacterEvents.characterDrill += (CharacterDrill); } @@ -31,6 +34,7 @@ // remove listen events CharacterEvents.characterDamaged -= (CharacterTookDamange); CharacterEvents.characterHealed -= (CharacterHealed); + CharacterEvents.characterDrill -= (CharacterDrill); } public void CharacterTookDamange(GameObject character, int damageReceived) @@ -53,6 +57,23 @@ tmpText.text = healthRestored.ToString(); } + public void CharacterDrill(ContactPoint2D contact, DrillDirection drillDirection) + { + Vector3Int cellCoord = tilemap.transform.GetComponentInParent<GridLayout>().WorldToCell(contact.point); + switch(drillDirection) + { + case DrillDirection.Left: + cellCoord.x = cellCoord.x - 1; + break; + case DrillDirection.Right: + cellCoord.x = cellCoord.x + 1; + break; + case DrillDirection.Down: + cellCoord.y = cellCoord.y - 1; + break; + } + tilemap.SetTile(cellCoord, null); + } public void GameLoaded() { pauseMenuUI.GetComponent<Animator>().SetTrigger("GameLoaded"); diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 8480803..1ab8309 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,8 +1,12 @@ +using Assets.Scripts.Enums; using Assets.Scripts.Helpers; using System; +using System.Collections; using System.ComponentModel.Design; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.InputSystem; +using UnityEngine.Tilemaps; [RequireComponent(typeof(Rigidbody2D))] public class PlayerController : MonoBehaviour @@ -13,12 +17,18 @@ private float maxFallSpeedCurrent = 0f; Vector2 moveInput; + [NonSerialized] public Rigidbody2D rb; Animator animator; Animator animator_rotor; public GameObject rotorGO; TouchingDirections touchingDirections; + [NonSerialized] public Damageable health; + + // Time it takes to drill + public float drillingTime = 1f; + private float timeSinceDrill = 0f; [SerializeField] private bool _isMoving; @@ -42,6 +52,17 @@ _isFlying = value; animator.SetBool(AnimationStrings.Player.isFlying, value); animator_rotor.SetBool(AnimationStrings.Player.isFlying, value); + } + } + [SerializeField] + private bool _isDrilling; + public bool IsDrilling + { + get { return _isDrilling; } + set + { + _isDrilling = value; + //animator.SetBool(AnimationStrings.Player.isDrilling, value); } } @@ -137,6 +158,35 @@ maxFallSpeedCurrent = rb.velocity.y; } } + if (touchingDirections.IsGrounded && moveInput.y < 0 && !IsDrilling) + { + //IsDrilling = true; + Drill(DrillDirection.Down); + } + if (touchingDirections.IsGrounded && touchingDirections.IsAtWall && moveInput.x != 0 && !IsDrilling) + { + //IsDrilling = true; + if (touchingDirections.IsAtWallLeft) + { + Drill(DrillDirection.Left); + } + else if (touchingDirections.IsAtWallRight) + { + Drill(DrillDirection.Right); + } + } + if (IsDrilling) + { + if (timeSinceDrill > drillingTime) + { + IsDrilling = false; + timeSinceDrill = 0; + } + else + { + timeSinceDrill += Time.deltaTime; + } + } } public void OnMove(InputAction.CallbackContext context) @@ -150,6 +200,7 @@ IsFlying = (moveInput.y != 0); SetFacingDirection(moveInput); + } else { @@ -159,6 +210,28 @@ } } + private void Drill(DrillDirection drillDirection) + { + IsDrilling = true; + ContactPoint2D[] contactPoints = new ContactPoint2D[1]; + //rb.GetContacts(contactPoints); + if (drillDirection == DrillDirection.Down) + { + touchingDirections.groundHits[0].collider.GetContacts(contactPoints); + } else if (drillDirection == DrillDirection.Left || drillDirection == DrillDirection.Right) + { + touchingDirections.wallHits[0].collider.GetContacts(contactPoints); + } + CharacterEvents.characterDrill.Invoke(contactPoints[0], drillDirection); + } + + //private void DrillLeftOrRight() + //{ + // ContactPoint2D[] contactPoints = new ContactPoint2D[1]; + // touchingDirections.wallHits[0].collider.GetContacts(contactPoints); + // CharacterEvents.characterDrillLeftOrRight.Invoke(contactPoints[0]); + //} + private void SetFacingDirection(Vector2 moveInput) { if (moveInput.x > 0 && !IsFacingRight) diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs index 4a26280..6091f02 100644 --- a/Assets/Scripts/TouchingDirections.cs +++ b/Assets/Scripts/TouchingDirections.cs @@ -9,7 +9,7 @@ public float wallDistance = 0.2f; public float ceilingDistance = 0.05f; - private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left; + //private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left; Rigidbody2D rb; public GameObject rotorGO; @@ -18,9 +18,9 @@ Animator animator; Animator animator_rotor; - RaycastHit2D[] groundHits = new RaycastHit2D[5]; - RaycastHit2D[] wallHits = new RaycastHit2D[5]; - RaycastHit2D[] ceilingHits = new RaycastHit2D[5]; + public RaycastHit2D[] groundHits = new RaycastHit2D[5]; + public RaycastHit2D[] wallHits = new RaycastHit2D[5]; + public RaycastHit2D[] ceilingHits = new RaycastHit2D[5]; [SerializeField] private bool _isGrounded; @@ -37,14 +37,27 @@ } [SerializeField] - private bool _isAtWall; + private bool _isAtWallLeft; - public bool IsAtWall + public bool IsAtWallLeft { - get { return _isAtWall; } + get { return _isAtWallLeft; } set { - _isAtWall = value; + _isAtWallLeft = value; + animator.SetBool(AnimationStrings.Player.isAtWall, value); + animator_rotor.SetBool(AnimationStrings.Player.isAtWall, value); + } + } + [SerializeField] + private bool _isAtWallRight; + + public bool IsAtWallRight + { + get { return _isAtWallRight; } + set + { + _isAtWallRight = value; animator.SetBool(AnimationStrings.Player.isAtWall, value); animator_rotor.SetBool(AnimationStrings.Player.isAtWall, value); } @@ -64,7 +77,13 @@ } } - + public bool IsAtWall + { + get + { + return IsAtWallLeft || IsAtWallRight; + } + } void Awake() { @@ -82,7 +101,10 @@ void FixedUpdate() { IsGrounded = touchingCol.Cast(Vector2.down, castFilter, groundHits, groundDistance) > 0; - IsAtWall = touchingCol.Cast(wallCheckDirection, castFilter, wallHits, wallDistance) > 0; + IsAtWallLeft = touchingCol.Cast(Vector2.left, castFilter, wallHits, wallDistance) > 0; + IsAtWallRight = touchingCol.Cast(Vector2.right, castFilter, wallHits, wallDistance) > 0; IsAtCeiling = touchingCol.Cast(Vector2.up, castFilter, ceilingHits, ceilingDistance) > 0; } + + //TODO getTileForDrillHere? } -- Gitblit v1.9.3