From 576c113fadde0791c40fad63b374f9430f875af5 Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Wed, 27 Dec 2023 18:17:22 +0000 Subject: [PATCH] Changed drops, no need just go directly into inventory --- Assets/Scripts/PlayerController.cs | 102 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 90 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 081b55e..ca18e3d 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -1,6 +1,7 @@ using Assets.Scripts.Enums; using Assets.Scripts.Helpers; using System; +using System.Linq; using UnityEngine; using UnityEngine.InputSystem; @@ -25,12 +26,13 @@ TouchingDirections touchingDirections; // Time it takes to drill - public float drillingTime = 1f; + [SerializeField] + private float drillingTime = 1f; private float timeSinceDrill = 0f; private bool drillToPosition; private Vector3 drillTilePosition; private Vector3 drillOriginalPosition; - + [SerializeField] private bool _isMoving; public bool IsMoving @@ -55,15 +57,63 @@ animator_rotor.SetBool(AnimationStrings.Player.isFlying, value); } } - [SerializeField] - private bool _isDrilling; public bool IsDrilling { - get { return _isDrilling; } + get { return IsDrillingDown || IsDrillingLeftRight; } set { - _isDrilling = value; - //animator.SetBool(AnimationStrings.Player.isDrilling, value); + if (value) + { + Debug.Assert(false, "Can't set IsDrilling this way, use IsDrillingLeftRight or IsDrillingDown!"); + } + if (IsDrillingDown) + { + IsDrillingDown = false; + } + if (IsDrillingLeftRight) + { + IsDrillingLeftRight = false; + } + } + } + [SerializeField] + private bool _isDrillingLeftRight; + public bool IsDrillingLeftRight + { + get { return _isDrillingLeftRight; } + set + { + _isDrillingLeftRight = value; + animator.SetBool(AnimationStrings.Player.isDrillingLeftRight, value); + animator_rotor.SetBool(AnimationStrings.Player.isFlying, false); + if (value) + { + animator.speed = 1 / drillingTime; + } + else + { + animator.speed = 1f; + } + } + } + [SerializeField] + private bool _isDrillingDown; + public bool IsDrillingDown + { + get { return _isDrillingDown; } + set + { + _isDrillingDown = value; + animator.SetBool(AnimationStrings.Player.isDrillingDown, value); + animator_rotor.SetBool(AnimationStrings.Player.isFlying, false); + if (value) + { + animator.speed = 1 / drillingTime; + } + else + { + animator.speed = 1f; + } } } @@ -93,11 +143,13 @@ private void OnEnable() { CharacterEvents.characterDrillingToPosition += (DrillingToPosition); + //CharacterEvents.characterDrillingToPositionAbort += (DrillingToPositionAbort); } private void OnDisable() { CharacterEvents.characterDrillingToPosition -= (DrillingToPosition); + //CharacterEvents.characterDrillingToPositionAbort -= (DrillingToPositionAbort); } private void Awake() @@ -245,18 +297,33 @@ case DrillDirection.Down: touchingDirections.groundHits[0].collider.GetContacts(contactPoints); break; + default: + Debug.Assert(false, "Add DrillDirection here!"); + break; } //Debug.Log(contactPoints[0].otherRigidbody?.gameObject.name); - if (contactPoints[0].otherRigidbody?.name == "Tilemap") + if (contactPoints.Any(x => x.otherRigidbody?.name == "Tilemap")) { - boxCollider.enabled = false; - IsDrilling = true; - CharacterEvents.characterDrill.Invoke(contactPoints[0], drillDirection); + CharacterEvents.characterDrill.Invoke(contactPoints.Single(x => x.otherRigidbody?.name == "Tilemap"), drillDirection); } } - private void DrillingToPosition(Vector3 tilePosition) + private void DrillingToPosition(Vector3 tilePosition, DrillDirection drillDirection) { + boxCollider.enabled = false; + switch (drillDirection) + { + case DrillDirection.Left: + case DrillDirection.Right: + IsDrillingLeftRight = true; + break; + case DrillDirection.Down: + IsDrillingDown = true; + break; + default: + Debug.Assert(false, "Add DrillDirection here!"); + break; + } //Debug.Log("DrillingToPosition() called"); //Debug.Log(gameObject.transform.position); drillToPosition = true; @@ -265,6 +332,17 @@ drillOriginalPosition = gameObject.transform.position; //Debug.Log("drillOriginalPosition: " + drillOriginalPosition); } + //private void DrillingToPositionAbort() + //{ + // IsDrilling = false; + // //Debug.Log("DrillingToPosition() called"); + // //Debug.Log(gameObject.transform.position); + // drillToPosition = false; + // //drillTilePosition = null; + // //Debug.Log("drillTilePosition: " + drillTilePosition); + // drillOriginalPosition = gameObject.transform.position; + // //Debug.Log("drillOriginalPosition: " + drillOriginalPosition); + //} //private void DrillLeftOrRight() //{ -- Gitblit v1.9.3