2025-08-07 16:44:43 +08:00
|
|
|
using System;
|
|
|
|
using UnityEngine;
|
|
|
|
using UnityEngine.Tilemaps;
|
|
|
|
|
|
|
|
namespace Map
|
|
|
|
{
|
2025-08-19 20:22:10 +08:00
|
|
|
public class MapGenerator:Utils.MonoSingleton<MapGenerator>
|
2025-08-07 16:44:43 +08:00
|
|
|
{
|
|
|
|
public DoubleMap baseLevel;
|
|
|
|
public Tilemap buildLevel;
|
|
|
|
public Tilemap plantLevel;
|
|
|
|
|
|
|
|
public void Start()
|
|
|
|
{
|
|
|
|
var perline= Utils.PerlinNoise.Instance;
|
2025-08-20 17:55:22 +08:00
|
|
|
var size = 100;
|
2025-08-19 20:22:10 +08:00
|
|
|
baseLevel.InitializeData(size, size);
|
2025-08-20 17:55:22 +08:00
|
|
|
for (var i = 0; i < size; i++) {
|
|
|
|
for (var j = 0; j < size; j++) {
|
|
|
|
var dx = i - size/2;
|
|
|
|
var dy = j - size/2;
|
|
|
|
baseLevel.mapData[i][j] = (int)(Math.Sqrt(dx*dx + dy*dy) / 5) & 1;
|
|
|
|
}
|
|
|
|
}
|
2025-08-19 20:22:10 +08:00
|
|
|
baseLevel.RefreshAllTiles();
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool CanPassThrough(int x, int y)
|
|
|
|
{
|
|
|
|
return GetTilePassCost(x, y) < 1;
|
|
|
|
}
|
|
|
|
public float GetTilePassCost(int x, int y)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
public float GetTileBulletCover(int x, int y)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected override void OnStart()
|
|
|
|
{
|
|
|
|
|
2025-08-07 16:44:43 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|