fixed locals, fixed object+world gen
This commit is contained in:
@@ -24,16 +24,16 @@ public class ContentGenerator : MonoBehaviour
|
||||
{
|
||||
switch (tiletype.ToLower())
|
||||
{
|
||||
case "plane":
|
||||
case "plain":
|
||||
return generateTileContent();
|
||||
case "mountains":
|
||||
return generateStoneTileContent();
|
||||
case "forest":
|
||||
return generateTreeTileContent();
|
||||
case "river":
|
||||
return generateRiverTileContent();
|
||||
case "lake":
|
||||
return generateLakeTileContent();
|
||||
case "hills":
|
||||
return generateHillTileContent();
|
||||
case "desert":
|
||||
return generateDesertTileContent();
|
||||
case "city":
|
||||
return generateCityTileContent();
|
||||
}
|
||||
@@ -77,11 +77,11 @@ public class ContentGenerator : MonoBehaviour
|
||||
int chance = rand.Next(1, 101);
|
||||
if (chance < 60)
|
||||
{
|
||||
return stones[rand.Next(0, stones.Length)];
|
||||
return null;
|
||||
}
|
||||
else if (chance >= 60 && chance < 90)
|
||||
{
|
||||
return trees[rand.Next(0, trees.Length)];
|
||||
return stones[rand.Next(0, stones.Length)];
|
||||
}
|
||||
else if (chance >= 90 && chance < 95)
|
||||
{
|
||||
@@ -122,7 +122,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
public GameObject generateRiverTileContent()
|
||||
public GameObject generateDesertTileContent()
|
||||
{
|
||||
int chance = rand.Next(1, 101);
|
||||
if (chance < 50)
|
||||
@@ -131,14 +131,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
else if (chance >= 50 && chance < 90)
|
||||
{
|
||||
if (rand.Next(0, 2) == 0)
|
||||
{
|
||||
return trees[rand.Next(0, trees.Length)];
|
||||
}
|
||||
else
|
||||
{
|
||||
return stones[rand.Next(0, stones.Length)];
|
||||
}
|
||||
return stones[rand.Next(0, stones.Length)];
|
||||
}
|
||||
else if (chance >= 90 && chance < 95)
|
||||
{
|
||||
@@ -154,7 +147,7 @@ public class ContentGenerator : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
public GameObject generateLakeTileContent()
|
||||
public GameObject generateHillTileContent()
|
||||
{
|
||||
int chance = rand.Next(1, 101);
|
||||
if (chance < 75)
|
||||
|
||||
@@ -140,7 +140,6 @@ namespace Assets.Scripts
|
||||
switch (place)
|
||||
{
|
||||
case ItemPlace.LEFTHAND:
|
||||
Debug.Log(GameObject.Find("Player").GetComponent<PlayerGameObject>().getClass().classname);
|
||||
image = Resources.Load<Texture>("Equipment/" + GameObject.Find("Player").GetComponent<PlayerGameObject>().getClass().classname + "/Inv_LeftHand");
|
||||
break;
|
||||
case ItemPlace.RIGHTHAND:
|
||||
|
||||
@@ -86,7 +86,7 @@ public class NoiseGenerator
|
||||
|
||||
for (int i = 0; i < samples.Length; i++)
|
||||
{
|
||||
vertices[i].y = samples[i] * 3;
|
||||
vertices[i].y = samples[i];
|
||||
}
|
||||
|
||||
applyMesh(tile, mesh, vertices, colors);
|
||||
@@ -139,7 +139,7 @@ public class NoiseGenerator
|
||||
vertices = mesh.vertices;
|
||||
for (int i = 0; i < sidelength; i++)
|
||||
{
|
||||
result[sidelength - 1 + i * sidelength] = vertices[0 + i * sidelength].y / 3;
|
||||
result[sidelength - 1 + i * sidelength] = vertices[0 + i * sidelength].y;
|
||||
result[sidelength - 2 + i * sidelength] = (result[sidelength - 1 + i * sidelength] + result[sidelength - 3 + i * sidelength]) / 2;
|
||||
}
|
||||
}
|
||||
@@ -149,7 +149,7 @@ public class NoiseGenerator
|
||||
vertices = mesh.vertices;
|
||||
for (int i = 0; i < sidelength; i++)
|
||||
{
|
||||
result[0 + i * sidelength] = vertices[sidelength - 1 + i * sidelength].y / 3;
|
||||
result[0 + i * sidelength] = vertices[sidelength - 1 + i * sidelength].y;
|
||||
result[1 + i * sidelength] = (result[0 + i * sidelength] + result[2 + i * sidelength]) / 2;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ public class NoiseGenerator
|
||||
vertices = mesh.vertices;
|
||||
for (int i = 0; i < sidelength; i++)
|
||||
{
|
||||
result[sidelength * sidelength - (sidelength - i)] = vertices[i].y / 3;
|
||||
result[sidelength * sidelength - (sidelength - i)] = vertices[i].y;
|
||||
result[sidelength * (sidelength - 1) - (sidelength - i)] = (result[sidelength * sidelength - (sidelength - i)] + result[sidelength * (sidelength - 2) - (sidelength - i)]) / 2;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ public class NoiseGenerator
|
||||
vertices = mesh.vertices;
|
||||
for (int i = 0; i < sidelength; i++)
|
||||
{
|
||||
result[i] = vertices[sidelength * sidelength - (sidelength - i)].y / 3;
|
||||
result[i] = vertices[sidelength * sidelength - (sidelength - i)].y;
|
||||
result[i + sidelength] = (result[i] + result[i + sidelength * 2]) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,13 +218,14 @@ namespace Assets.Scripts.Player
|
||||
{
|
||||
worldGenerator.changeCurrentTile(col.gameObject);
|
||||
|
||||
worldGenerator.createTile(new Vector3(-1,0,-1));
|
||||
worldGenerator.createTile(new Vector3(0,0,-1));
|
||||
worldGenerator.createTile(new Vector3(1,0,-1));
|
||||
worldGenerator.createTile(new Vector3(-1,0,0));
|
||||
worldGenerator.createTile(new Vector3(1,0,0));
|
||||
worldGenerator.createTile(new Vector3(-1,0,1));
|
||||
worldGenerator.createTile(new Vector3(0,0,1));
|
||||
worldGenerator.createTile(new Vector3(0,0,-1));
|
||||
|
||||
worldGenerator.createTile(new Vector3(-1,0,-1));
|
||||
worldGenerator.createTile(new Vector3(1,0,-1));
|
||||
worldGenerator.createTile(new Vector3(-1,0,1));
|
||||
worldGenerator.createTile(new Vector3(1,0,1));
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ public class Tile : MonoBehaviour
|
||||
System.Random rand = new System.Random();
|
||||
TileType tiletype;
|
||||
GameObject contentGenerator;
|
||||
|
||||
List<GameObject> aliveEnemies = new List<GameObject>();
|
||||
|
||||
public void generateTile(Vector3 pos, TileType type)
|
||||
@@ -26,7 +25,7 @@ public class Tile : MonoBehaviour
|
||||
|
||||
public void Update()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void generateContent()
|
||||
@@ -40,23 +39,41 @@ public class Tile : MonoBehaviour
|
||||
public List<Vector3> getSpawnLocations()
|
||||
{
|
||||
List<Vector3> list = new List<Vector3>();
|
||||
//Change object spawning
|
||||
int objectAmount = rand.Next(20, 101);
|
||||
Vector3 newPoint;
|
||||
while(list.Count < objectAmount){
|
||||
newPoint = new Vector3(rand.Next(-40, 40) + 100 * position.x, 50, rand.Next(-40, 40) + 100 * position.z);
|
||||
if (!list.Contains(newPoint))
|
||||
{
|
||||
list.Add(newPoint);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void spawnObject(Vector3 position)
|
||||
{
|
||||
int chance = rand.Next(1, 101);
|
||||
|
||||
if (chance >= 25)
|
||||
{
|
||||
GameObject content = contentGenerator.GetComponent<ContentGenerator>().generateContent(tiletype.ToString());
|
||||
if (content != null)
|
||||
{
|
||||
if(tiletype == TileType.CITY && (content.tag.ToLower().Contains("npc") || content.tag.ToLower().Contains("tree") || content.tag.ToLower().Contains("stone") || content.tag.ToLower().Contains("ore"))){
|
||||
position.y = 5;
|
||||
float verticeX = position.x / 10;
|
||||
float verticeZ = position.z / 10;
|
||||
|
||||
Vector3 vertice = new Vector3(Mathf.Round(verticeX), 0, Mathf.Round(verticeZ));
|
||||
Vector3[] vertices = gameObject.GetComponent<MeshFilter>().mesh.vertices;
|
||||
|
||||
foreach(Vector3 v in vertices){
|
||||
if(v.x == vertice.x && v.z == vertice.z){
|
||||
position.y = v.y;
|
||||
break;
|
||||
}
|
||||
}
|
||||
GameObject obj = Instantiate(content, position, Quaternion.identity);
|
||||
obj.transform.parent = gameObject.transform;
|
||||
|
||||
GameObject obj = Instantiate(content, position, Quaternion.identity, gameObject.transform);
|
||||
if (obj.tag.Contains("Enemy"))
|
||||
{
|
||||
aliveEnemies.Add(obj);
|
||||
@@ -103,10 +120,12 @@ public class Tile : MonoBehaviour
|
||||
{
|
||||
result = result + obj.GetComponent<Enemy>().saveEnemy() + "\r\n}";
|
||||
}
|
||||
else if(obj.name.ToLower().Contains("house")){
|
||||
else if (obj.name.ToLower().Contains("house"))
|
||||
{
|
||||
result = result + obj.transform.Find("Door").GetComponent<Door>().saveHouse() + "\r\n}";
|
||||
}
|
||||
else if(obj.name.ToLower().Contains("npc")){
|
||||
else if (obj.name.ToLower().Contains("npc"))
|
||||
{
|
||||
result = result + obj.GetComponent<NPC>().saveNPC() + "\r\n}";
|
||||
}
|
||||
else
|
||||
@@ -166,10 +185,12 @@ public class Tile : MonoBehaviour
|
||||
spawnedObject.GetComponent<Enemy>().loadEnemy(obj);
|
||||
}
|
||||
}
|
||||
else if(spawnedObject.name.ToLower().Contains("house")){
|
||||
else if (spawnedObject.name.ToLower().Contains("house"))
|
||||
{
|
||||
spawnedObject.transform.Find("Door").GetComponent<Door>().loadHouse(obj);
|
||||
}
|
||||
else if(spawnedObject.tag.ToLower().Contains("npc")){
|
||||
else if (spawnedObject.tag.ToLower().Contains("npc"))
|
||||
{
|
||||
spawnedObject.GetComponent<NPC>().loadQuest(obj["receivedQuest"].ToString());
|
||||
}
|
||||
}
|
||||
@@ -178,7 +199,8 @@ public class Tile : MonoBehaviour
|
||||
setPosition(pos);
|
||||
}
|
||||
|
||||
public List<TileType> getPossibleNeighbours(){
|
||||
public List<TileType> getPossibleNeighbours()
|
||||
{
|
||||
return TileTypeMethods.getPossibleNeighbours(tiletype);
|
||||
}
|
||||
}
|
||||
@@ -152,7 +152,7 @@ namespace Assets.Scripts
|
||||
case TileType.HILLS:
|
||||
lowModifier[0] = 0.2f;
|
||||
lowModifier[1] = 0.1f;
|
||||
highModifier[0] = 0.5f;
|
||||
highModifier[0] = 0.3f;
|
||||
highModifier[1] = 0.1f;
|
||||
break;
|
||||
case TileType.FOREST:
|
||||
@@ -162,9 +162,9 @@ namespace Assets.Scripts
|
||||
highModifier[1] = 0.1f;
|
||||
break;
|
||||
case TileType.MOUNTAINS:
|
||||
lowModifier[0] = 0.2f;
|
||||
lowModifier[0] = 0.5f;
|
||||
lowModifier[1] = 0.3f;
|
||||
highModifier[0] = 1.0f;
|
||||
highModifier[0] = 0.5f;
|
||||
highModifier[1] = 0.2f;
|
||||
break;
|
||||
case TileType.LAKE:
|
||||
@@ -176,7 +176,7 @@ namespace Assets.Scripts
|
||||
case TileType.DESERT:
|
||||
lowModifier[0] = 0.2f;
|
||||
lowModifier[1] = 0.1f;
|
||||
highModifier[0] = 0.5f;
|
||||
highModifier[0] = 0.3f;
|
||||
highModifier[1] = 0.1f;
|
||||
break;
|
||||
case TileType.CITY:
|
||||
@@ -206,10 +206,10 @@ namespace Assets.Scripts
|
||||
switch (type)
|
||||
{
|
||||
case TileType.LAKE:
|
||||
result[i] = basis[i] - 3;
|
||||
result[i] = basis[i] - 1.5f;
|
||||
break;
|
||||
case TileType.MOUNTAINS:
|
||||
result[i] = basis[i] + 3;
|
||||
result[i] = basis[i] + 1.5f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class WorldGenerator : MonoBehaviour
|
||||
|
||||
void resetPlayer()
|
||||
{
|
||||
if (player.transform.position.y <= -10)
|
||||
if (player.transform.position.y <= -20)
|
||||
{
|
||||
Vector3 position = new Vector3(currentTile.transform.position.x, 50, currentTile.transform.position.z);
|
||||
player.transform.SetPositionAndRotation(position, player.transform.rotation);
|
||||
|
||||
Reference in New Issue
Block a user