From fe3c8a5515acdfcc50913d5b83de8f9504e95b73 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Sat, 23 Dec 2023 23:21:22 +0000
Subject: [PATCH] Added map save/load + seed generation
---
Assets/Scripts/TouchingDirections.cs | 73 ++++++++++++++++++++++++++++++++++--
1 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs
index cbf8a60..08bf06c 100644
--- a/Assets/Scripts/TouchingDirections.cs
+++ b/Assets/Scripts/TouchingDirections.cs
@@ -5,16 +5,24 @@
public class TouchingDirections : MonoBehaviour
{
public ContactFilter2D castFilter;
- public float groundDistance = 0.05f;
+ public float groundDistance = 0.01f;
+ public float wallDistance = 0.01f;
+ public float ceilingDistance = 0.05f;
+
+ //private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left;
Rigidbody2D rb;
public GameObject rotorGO;
BoxCollider2D touchingCol;
+ //CapsuleCollider2D touchingCol;
Animator animator;
Animator animator_rotor;
- RaycastHit2D[] groundHits = new RaycastHit2D[5];
+ public RaycastHit2D[] groundHits = new RaycastHit2D[5];
+ public RaycastHit2D[] wallHitsRight = new RaycastHit2D[5];
+ public RaycastHit2D[] wallHitsLeft = new RaycastHit2D[5];
+ public RaycastHit2D[] ceilingHits = new RaycastHit2D[5];
[SerializeField]
private bool _isGrounded;
@@ -25,16 +33,65 @@
set
{
_isGrounded = value;
- animator.SetBool(AnimationStrings.Player.IsGrounded, value);
- animator_rotor.SetBool(AnimationStrings.Player.IsGrounded, value);
+ animator.SetBool(AnimationStrings.Player.isGrounded, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isGrounded, value);
}
}
+ [SerializeField]
+ private bool _isAtWallLeft;
+
+ public bool IsAtWallLeft
+ {
+ get { return _isAtWallLeft; }
+ set
+ {
+ _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);
+ }
+ }
+
+ [SerializeField]
+ private bool _isAtCeiling;
+
+ public bool IsAtCeiling
+ {
+ get { return _isAtCeiling; }
+ set
+ {
+ _isAtCeiling = value;
+ animator.SetBool(AnimationStrings.Player.isAtCeiling, value);
+ animator_rotor.SetBool(AnimationStrings.Player.isAtCeiling, value);
+ }
+ }
+
+ public bool IsAtWall
+ {
+ get
+ {
+ return IsAtWallLeft || IsAtWallRight;
+ }
+ }
void Awake()
{
rb = GetComponent<Rigidbody2D>();
touchingCol = rb.GetComponent<BoxCollider2D>();
+ //touchingCol = rb.GetComponent<CapsuleCollider2D>();
animator = rb.GetComponent<Animator>();
animator_rotor = rotorGO.GetComponent<Animator>();
}
@@ -46,6 +103,14 @@
void FixedUpdate()
{
+
+ //int contactsAmount = touchingCol.GetContacts(contacts);
+ //Debug.Log("contactsAmount: " + contactsAmount);
IsGrounded = touchingCol.Cast(Vector2.down, castFilter, groundHits, groundDistance) > 0;
+ IsAtWallLeft = touchingCol.Cast(Vector2.left, castFilter, wallHitsLeft, wallDistance) > 0;
+ IsAtWallRight = touchingCol.Cast(Vector2.right, castFilter, wallHitsRight, wallDistance) > 0;
+ IsAtCeiling = touchingCol.Cast(Vector2.up, castFilter, ceilingHits, ceilingDistance) > 0;
}
+
+ //TODO getTileForDrillHere?
}
--
Gitblit v1.10.0