using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerHeightEntity : MonoBehaviour
{
public float entityHeight;
public Collider2D physicsCollider;
public GameObject spriteRenderer;
public GameObject shadowSpriteRenderer;
public float startingShadowHeight;
public float spriteHeight;
public float currentFloorHeight;
public PlayerJump playerJump;
public float jumpDuration;
public float currentSpriteFloorHeight;
public float defaultFloorHeight;
public float defaultSpriteFloorHeight;
public PlatformChecker platformChecker;
public List<Collider2D> colliders;
public float spriteToEntityRatio;
public float gravityScale;
[SerializeField] private float gravity;
public void Start()
{
startingShadowHeight = shadowSpriteRenderer.transform.localPosition.y;
spriteHeight = spriteRenderer.transform.localPosition.y;
}
public void FloorChecks()
{
if(!playerJump.onFloor && !playerJump.isJumping)
{
gravity = gravityScale;
}
else
{
gravity = 0;
}
if(!platformChecker.onPlatform)
{
shadowSpriteRenderer.transform.localPosition = new Vector3(0, startingShadowHeight
+ currentSpriteFloorHeight);
}
}
public void Update()
{
CorrectColliderList();
spriteHeight = spriteRenderer.transform.localPosition.y;
FloorChecks();
}
public void FixedUpdate()
{
spriteRenderer.transform.position -= new Vector3(0, 1f, 0) * gravity;
entityHeight -= gravity * spriteToEntityRatio;
}
public void CorrectColliders()
{
foreach(Collider2D col in colliders)
{
HeightCollider colHeight = col.GetComponent<HeightCollider>();
colHeight.dynamicColliderHeightLevel = colHeight.startingColliderHeightLevel + (int)entityHeight;
colHeight.ChangeHeightLevel();
}
}
public void CorrectColliderList()
{
foreach(Collider2D col in colliders)
{
HeightColliderList colHeightList = col.GetComponent<HeightColliderList>();
for(int i = 0; i < colHeightList.dynamicColliderHeightLevels.Count; i++)
{
colHeightList.dynamicColliderHeightLevels[i] = colHeightList.startingColliderHeightLevels[i] + (int)entityHeight;
Debug.Log((int)entityHeight);
}
colHeightList.ChangeHeightLevels();
}
}
}