Changed playerpos to collider, fixed mountain gen

This commit is contained in:
TAASONI3
2023-12-08 09:34:27 +01:00
parent 5fd78ed030
commit 10ad860d3e
9 changed files with 348 additions and 438 deletions

View File

@@ -14,8 +14,6 @@ public class WorldGenerator : MonoBehaviour
public GameObject tile;
Dictionary<Vector3, GameObject> tiles;
GameObject currentTile;
List<GameObject> renderedTiles;
List<GameObject> toRemove;
NoiseGenerator noise;
int cityAmount = 0;
int maxCityAmount = 0;
@@ -30,7 +28,6 @@ public class WorldGenerator : MonoBehaviour
private void OnEnable()
{
tiles = new Dictionary<Vector3, GameObject>();
renderedTiles = new List<GameObject>();
noise = new NoiseGenerator();
createSpawn();
cityAmount = 10;
@@ -51,7 +48,7 @@ public class WorldGenerator : MonoBehaviour
Destroy(tile);
}
}
player.transform.position = new Vector3(0, 4f, 0);
player.transform.position = new Vector3(0, 50f, 0);
player.transform.rotation = Quaternion.identity;
OnEnable();
this.cityAmount = cityAmount;
@@ -61,8 +58,6 @@ public class WorldGenerator : MonoBehaviour
// Update is called once per frame
void Update()
{
createTile(player.transform.position.x, player.transform.position.z);
changeCurrentTile(player.transform.position.x, player.transform.position.z);
resetPlayer();
}
@@ -70,7 +65,7 @@ public class WorldGenerator : MonoBehaviour
{
if (player.transform.position.y <= -10)
{
Vector3 position = new Vector3(currentTile.transform.position.x, 5, currentTile.transform.position.z);
Vector3 position = new Vector3(currentTile.transform.position.x, 50, currentTile.transform.position.z);
player.transform.SetPositionAndRotation(position, player.transform.rotation);
}
}
@@ -86,13 +81,11 @@ public class WorldGenerator : MonoBehaviour
currentTile = newTile;
}
public void createTile(float playerX, float playerZ)
public void createTile(Vector3 requiredPosition)
{
Vector3 pos = currentTile.GetComponent<Tile>().needConnectedTile(playerX, playerZ);
Vector3 pos = currentTile.GetComponent<Tile>().getPosition() + requiredPosition;
if (!tiles.ContainsKey(pos) && pos.y == 0)
{
string name = "";
int chance = rand.Next(1, 11);
Vector3 mapPos = new Vector3(pos.x * 100, 0, pos.z * 100);
GameObject newTile = Instantiate(tile, mapPos, Quaternion.identity);
@@ -104,20 +97,9 @@ public class WorldGenerator : MonoBehaviour
}
}
public void changeCurrentTile(float playerX, float playerZ)
public void changeCurrentTile(GameObject newCurrent)
{
if (currentTile.GetComponent<Tile>().leftTile(playerX, playerZ))
{
renderedTiles.Remove(currentTile);
foreach (GameObject tile in renderedTiles)
{
if (tile.GetComponent<Tile>().enteredTile(playerX, playerZ))
{
currentTile = tile;
break;
}
}
}
currentTile = newCurrent;
}
public GameObject getCurrentTile()
@@ -184,7 +166,6 @@ public class WorldGenerator : MonoBehaviour
noise.loadTile(loadedTile, jsonData["vertices"], jsonData["colors"]);
}
tiles.Add(pos, loadedTile);
renderedTiles.Add(loadedTile);
}
currentTile = tiles[current];
Vector3 position = new Vector3(currentTile.transform.position.x, 5, currentTile.transform.position.z);