Changed spawn to be dynamically created

This commit is contained in:
TAASONI3 2023-11-25 22:00:58 +01:00
parent b9aa033c13
commit 509c207d32
5 changed files with 80 additions and 1486 deletions

File diff suppressed because it is too large Load Diff

View File

@ -58,10 +58,6 @@ namespace Assets.Scripts
{
tiletype = tiletype.Replace("Tile", "");
}
else
{
tiletype = "Spawn";
}
coordinates.GetComponent<Text>().text = TextHandler.getText(tiletype) + "(" + (int)position.x + "/" + (int)position.y + "/" + (int)position.z + ")";
}

View File

@ -146,24 +146,6 @@ public class Tile : MonoBehaviour
}
}
public void resetSpawn()
{
foreach (Rigidbody rigid in gameObject.GetComponentsInChildren<Rigidbody>())
{
rigid.useGravity = true;
}
foreach (Renderer rend in gameObject.GetComponentsInChildren<Renderer>())
{
rend.enabled = true;
}
foreach (Collider col in gameObject.GetComponentsInChildren<Collider>())
{
col.enabled = true;
}
}
public bool enteredTile(float playerX, float playerZ)
{
bool result = false;

View File

@ -30,13 +30,9 @@ public class WorldGenerator : MonoBehaviour
private void OnEnable()
{
tiles = new Dictionary<Vector3, GameObject>();
tiles.Add(new Vector3(0, 0, 0), GameObject.Find("Spawn"));
renderedTiles = new List<GameObject>();
currentTile = GameObject.Find("Spawn");
currentTile.GetComponent<Tile>().setPosition(new Vector3(0, 0, 0));
currentTile.GetComponent<Tile>().setBorders();
renderedTiles.Add(currentTile);
noise = new NoiseGenerator();
createSpawn();
cityAmount = 10;
maxCityAmount = 10;
}
@ -51,17 +47,13 @@ public class WorldGenerator : MonoBehaviour
if (tiles != null)
{
foreach (GameObject tile in tiles.Values)
{
if (tile.name != "Spawn")
{
Destroy(tile);
}
}
}
player.transform.position = new Vector3(0,1.5f,0);
player.transform.position = new Vector3(0, 1.5f, 0);
player.transform.rotation = Quaternion.identity;
OnEnable();
currentTile.GetComponent<Tile>().resetSpawn();
this.cityAmount = cityAmount;
maxCityAmount = cityAmount;
}
@ -83,13 +75,35 @@ public class WorldGenerator : MonoBehaviour
}
}
public void createSpawn()
{
Vector3 pos = new Vector3(0, 0, 0);
string name = "";
Vector3 mapPos = new Vector3(pos.x * 100, 0, pos.z * 100);
GameObject newTile = Instantiate(tile, mapPos, Quaternion.identity);
noise.applyNoise(newTile, name, tiles);
if (name.Length <= 0)
{
name = tile.name;
}
if (name.Contains("_"))
{
name = name.Split('_')[0];
}
newTile.name = name + "_" + tiles.Count;
newTile.GetComponent<Tile>().generateTile(pos, name);
tiles.Add(pos, newTile);
renderedTiles.Add(newTile);
currentTile = newTile;
}
public void createTile(float playerX, float playerZ)
{
Vector3 pos = currentTile.GetComponent<Tile>().needConnectedTile(playerX, playerZ);
if (!tiles.ContainsKey(pos) && pos.y == 0)
{
string name = "";
int chance = rand.Next(1,11);
int chance = rand.Next(1, 11);
Vector3 mapPos = new Vector3(pos.x * 100, 0, pos.z * 100);
GameObject newTile = Instantiate(tile, mapPos, Quaternion.identity);
if (chance == 1)
@ -102,7 +116,8 @@ public class WorldGenerator : MonoBehaviour
}
}
noise.applyNoise(newTile, name, tiles);
if(name.Length <= 0){
if (name.Length <= 0)
{
name = tile.name;
}
if (name.Contains("_"))
@ -159,8 +174,6 @@ public class WorldGenerator : MonoBehaviour
result = result + "\"currentTile\": " + currentTile.GetComponent<Tile>().saveCurrent() + ",\r\n";
result = result + "\"map\": {\r\n";
foreach (GameObject tile in tiles.Values)
{
if (tile.name != "Spawn")
{
savePath = "./save/tile" + counter + ".json";
result = result + "\"tile" + counter + "\": \"" + savePath + "\"";
@ -179,7 +192,6 @@ public class WorldGenerator : MonoBehaviour
}
counter++;
}
}
result = result + "\r\n}";
return result;
}

View File

@ -18,4 +18,4 @@ MonoBehaviour:
m_AssetTable:
m_TableReference:
m_TableCollectionName: GUID:be998aea26820a30aa2217983d31b9c7
m_TrackingChanges: 1
m_TrackingChanges: 0