miepzerino
2023-12-23 eab47305629d96d19626e10b649ba4247d1f55f5
Assets/Scripts/Managers/GameManager.cs
@@ -1,10 +1,6 @@
using Assets.Scripts.Enums;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.Tilemaps;
public class GameManager : SettingsManager
@@ -13,13 +9,39 @@
    public GameObject healthTextPrefab;
    public Canvas playerUI;
    public Canvas pauseMenuUI;
    public GameObject levelChanger;
    public Tilemap tilemap;
    GenerateTileMap generateTileMap;
    private void Awake()
    {
        SoundManager.instance.ChangeMusic(SoundName.MusicHappy);
        LoadTileMaps(SaveSystem.isGameLoaded);
    }
    private void LoadTileMaps(bool loadFromSave)
    {
        pauseMenuUI.GetComponent<PauseMenu>().Pause();
        levelChanger.GetComponent<Animator>().SetBool("SceneLoading", true);
        generateTileMap = tilemap.GetComponent<GenerateTileMap>();
        Debug.Log("waiting for async");
        StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished));
    }
    public void LoadTileMapsFinished()
    {
        Debug.Log("done async");
        levelChanger.GetComponent<Animator>().SetBool("SceneLoading", false);
        GameLoaded();
    }
    public void GameLoaded()
    {
        pauseMenuUI.GetComponent<PauseMenu>().Resume();
        pauseMenuUI.GetComponent<Animator>().SetTrigger("GameLoaded");
    }
    #region characterEvents
    private void OnEnable()
    {
        // add listen events
@@ -59,8 +81,9 @@
    }
    public void CharacterDrill(ContactPoint2D contact, DrillDirection drillDirection)
    {
        Vector3Int cellCoord = tilemap.transform.GetComponentInParent<GridLayout>().WorldToCell(contact.point);
        switch(drillDirection)
        GridLayout grid = tilemap.transform.GetComponentInParent<GridLayout>();
        Vector3Int cellCoord = grid.WorldToCell(contact.point);
        switch (drillDirection)
        {
            case DrillDirection.Left:
                cellCoord.x = cellCoord.x - 1;
@@ -72,10 +95,18 @@
                cellCoord.y = cellCoord.y - 1;
                break;
        }
        tilemap.SetTile(cellCoord, null);
        //Debug.Log("cellCoord: " + grid.CellToWorld(cellCoord));
        //Debug.Log(tilemap.HasTile(cellCoord));
        if (tilemap.HasTile(cellCoord))
        {
            tilemap.SetTile(cellCoord, null);
            Vector3 moveToPosition = grid.CellToWorld(cellCoord);
            moveToPosition.x += 0.5f;
            moveToPosition.y += 0.5f;
            CharacterEvents.characterDrillingToPosition.Invoke(moveToPosition);
        }
    }
    public void GameLoaded()
    {
        pauseMenuUI.GetComponent<Animator>().SetTrigger("GameLoaded");
    }
    #endregion
}