Reworked tile generation, removed map, redone colour scheme, v1.2.0
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user