miepzerino
2025-04-06 a576c4a6edc69f703422ab289ee46b05011b9275
Assets/Scripts/Managers/GameManager.cs
@@ -27,6 +27,7 @@
    public GameObject pickups;
    public Tilemap fogTilemap;
    public FogOfWar fogOfWar;
    public GameObject backGroundPrefab;
    private void Awake()
    {
@@ -49,6 +50,25 @@
        StartCoroutine(generateTileMap.GenerateTiles(LoadTileMapsFinished, destroyedTiles));
    }
    private void InitializeBackgroundTiles()
    {
        GameObject tilesParent = new GameObject("BackgroundTiles");
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        Vector3 backgroundPos = player.transform.position;
        // Adjust the new position based on whether y is positive or negative
        float colliderHeight = backGroundPrefab.GetComponent<BoxCollider2D>().size.y;
        if (backgroundPos.y >= 0)
        {
            backgroundPos.y -= Mathf.Abs(backgroundPos.y) % colliderHeight;
        }
        else
        {
            backgroundPos.y += Mathf.Abs(backgroundPos.y) % colliderHeight;
        }
        Instantiate(backGroundPrefab, (backgroundPos), Quaternion.identity, tilesParent.transform);
    }
    private void LoadMapState()
    {
        SaveDataMap mapState = SaveSystem.LoadMapState();
@@ -56,6 +76,7 @@
        {
            //fogOfWar.LoadFromSaveData(mapState.fogOfWarData);
            generateTileMap.SetSettingsFromSeed(mapState.seed);
            if (mapState.destroyedTiles != null && mapState.destroyedTiles.Count > 0)
            {
                // TODO rework load map (it's fucky wucky currently as I had to make an extra class for it to jsonify the tiles correctly, as unity does not like lists of arrays or 2d arrays)
@@ -64,6 +85,11 @@
                    destroyedTiles.Add(tile.tileCoord.ConvertToVector3Int());
                }                //destroyedTiles.AddRange(mapState.destroyedTiles.Select(tile => { return tile.tileCoord; }).ToList().ConvertToVector3Int());
            }
            // Load chunk cache
            if (mapState.chunkData != null)
            {
                generateTileMap.LoadChunkDataFromSave(mapState.chunkData);
            }
        }
    }
@@ -71,6 +97,8 @@
    {
        Debug.Log("done async map loading");
        levelChanger.GetComponent<Animator>().SetBool("SceneLoading", false);
        //Initialize background tiles after the tilemap is loaded
        //InitializeBackgroundTiles();
        GameLoaded();
    }
    public void GameLoaded()
@@ -176,8 +204,10 @@
                        CharacterLootObtained(tileGameObject.transform.position, item, dropAmount);
                    }
                }
                // Update tilemap
                tilemap.SetTile(cellCoord, null);
                destroyedTiles.Add(cellCoord);
                generateTileMap.UpdateChunkCache(cellCoord, cellWorldPosition);
                CharacterEvents.characterDrillingToPosition.Invoke(cellWorldPosition, drillDirection);
            }
            else
@@ -186,6 +216,7 @@
            }
        }
    }
    #endregion