/// <summary>
    /// <para>Generates a new terrain around the reference with square shape.</para>
    /// <para>If DynamicChunkLoading is enabled the square shape is substituted using the ChunkRenderDistance.</para>
    /// <para>If ParallelChunkLoading is enabled the chunks around the reference need to be build at Update method.</para>
    /// </summary>
    protected virtual void IniTerrain()
    {
        // Always load the current reference chunk
        LoadChunk(ReferenceChunkPos, true);

        // Load the other chunks
        foreach (Vector2Int chunkPos in LC_Math.AroundPositions(ReferenceChunkPos, ChunkRenderDistance))
        {
            LoadChunk(chunkPos);
        }

        IsGenerated = true;
    }