Reworked tile generation, removed map, redone colour scheme, v1.2.0

This commit is contained in:
Nicola Sovic
2022-04-06 21:07:26 +02:00
parent 4e46d21a63
commit f472ff1449
28 changed files with 1376 additions and 4541 deletions

View File

@@ -7,10 +7,8 @@ using UnityEngine.UI;
public class WorldGenerator : MonoBehaviour
{
public GameObject player;
public GameObject[] prefabsHighProbability; // 50%
public GameObject[] prefabsMiddleProbability; // 35%
public GameObject[] prefabsLowProbability; // 10%
public GameObject[] prefabsLowestProbability; // 5%
public GameObject city;
public GameObject tile;
Dictionary<Vector3, GameObject> tiles;
GameObject currentTile;
List<GameObject> renderedTiles;
@@ -65,11 +63,6 @@ public class WorldGenerator : MonoBehaviour
resetPlayer();
}
public void prepareMap()
{
GameObject.Find("Map").GetComponent<Map>().prepare(tiles, currentTile);
}
void resetPlayer()
{
if (player.transform.position.y <= -5)
@@ -84,37 +77,28 @@ public class WorldGenerator : MonoBehaviour
Vector3 pos = currentTile.GetComponent<Tile>().needConnectedTile(playerX, playerZ);
if (!tiles.ContainsKey(pos) && pos.y == 0)
{
int chance = rand.Next(1,101);
GameObject[] usedArray;
if (chance > 50)
GameObject newTile;
string name;
int chance = rand.Next(1,11);
Vector3 mapPos = new Vector3(pos.x * 100, 0, pos.z * 100);
if (chance == 1)
{
usedArray = prefabsHighProbability;
}
else if (chance > 15 && chance <= 50)
{
usedArray = prefabsMiddleProbability;
}
else if (chance > 5 && chance <= 15)
{
usedArray = prefabsLowProbability;
newTile = Instantiate(city, mapPos, Quaternion.identity);
name = city.name;
}
else
{
usedArray = prefabsLowestProbability;
newTile = Instantiate(tile, mapPos, Quaternion.identity);
name = tile.name;
noise.applyNoise(newTile);
}
int index = rand.Next(0, usedArray.Length);
Vector3 mapPos = new Vector3(pos.x * 100, 0, pos.z * 100);
GameObject newTile = Instantiate(usedArray[index], mapPos, Quaternion.identity);
string name = usedArray[index].name;
if (name.Contains("_"))
{
name = name.Split('_')[0];
}
newTile.name = name + "_" + tiles.Count;
newTile.GetComponent<Tile>().generateTile(pos, name);
applyNoise(newTile, name.Split('_')[0]);
tiles.Add(pos, newTile);
renderedTiles.Add(newTile);
}
@@ -131,37 +115,6 @@ public class WorldGenerator : MonoBehaviour
}
}
private void applyNoise(GameObject tile, string type)
{
switch (type.ToLower())
{
case "tile":
noise.applyTileNoise(tile);
break;
case "stonetile":
noise.applyStoneTileNoise(tile);
break;
case "treetile":
noise.applyTreeTileNoise(tile);
break;
case "citytile":
noise.applyCityTileNoise(tile);
break;
case "rivertile1":
noise.applyRiverTileNoise(tile);
break;
case "rivertile2":
noise.applyRiverTileNoise(tile);
break;
case "rivertile3":
noise.applyRiverTileNoise(tile);
break;
case "laketile":
noise.applyLakeTileNoise(tile);
break;
}
}
public void hideTile(float playerX, float playerZ)
{
if (currentTile.GetComponent<Tile>().leftTile(playerX, playerZ))