Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void GenerateRiver()
- {
- // find start and end
- // int randomX = (int)Random.Range(0, createTilesOnX-1);
- // int randomZ = (int)Random.Range(0, createTilesOnZ-1);
- // randomPos = ((int)Random.Range(0, createTilesOnX-1))* (createTilesOnZ -1) + ((int)Random.Range(0, createTilesOnZ - 1));
- Debug.Log("River Init");
- int startEdge = (int)Random.Range(0, 3);
- int endEdge = 3 - ((int)Random.Range(0, 3));
- int startPos = findRandomEdgePos(startEdge);
- int startZ = startPos % (yTiles - 1);
- int startX = (startPos - startZ) / ((yTiles - 1));
- int endPos = findRandomEdgePos(endEdge);
- int endZ = endPos % (yTiles - 1);
- int endX = (endPos - startZ) / ((yTiles - 1));
- int curPos = startPos;
- int curZ = startZ;
- int curX = startX;
- int distZ = startZ - endZ;
- int distX = startX - endX;
- Debug.Log("Random End");
- while (curPos != endPos)
- {
- Debug.Log("ich bin am leben");
- int tempCurZ = curZ;
- int tempCurX = curX;
- //Decide wheter to move on X or Z
- if (Random.Range(0, 1) > .5)
- {
- // move Z
- if (distZ > 0)
- tempCurZ--;
- else
- tempCurZ++;
- }
- else
- {
- // move Y
- if (distX > 0)
- tempCurX--;
- else
- tempCurX++;
- }
- //check if in bounds else revert changes
- if (tempCurZ < yTiles && tempCurX < xTiles)
- {
- curPos = curX * (yTiles - 1) + curZ;
- Tile curTile = gridTiles[curPos].GetComponent<Tile>();
- curTile.SetRiver();
- //gridTiles[curPos] set tile Type River
- }
- }
- }
- int findRandomEdgePos(int ranSeed)
- {
- int edgePos;
- if (ranSeed == 0)
- {
- // 0 upper Edge
- edgePos = (int)Random.Range(0, yTiles - 1);
- }
- else if (ranSeed == 1)
- {
- // 1 left Edge
- edgePos = (int)Random.Range(0, xTiles - 1) * (yTiles - 1);
- }
- else if (ranSeed == 2)
- {
- // 2 right Edge
- edgePos = (int)Random.Range(0, xTiles - 1) * (yTiles - 1) + (yTiles - 1);
- }
- else
- {
- // 3 lower Edge
- edgePos = (xTiles - 1) * (yTiles - 1) + (int)Random.Range(0, yTiles - 1);
- }
- return edgePos;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement