public bool saveWorld(string Name) { StaticObject[] foundObjects = GameObject.FindObjectsOfType<StaticObject> (); //Bestimme Weltgröße int minX=0; int minY=0; int maxX=0; int maxY=0; int minZ = 0; int maxZ = 0; foreach (StaticObject so in foundObjects) { if(so.getGridPosition().x<minX) minX=(int)so.getGridPosition().x; if(so.getGridPosition().x>maxX) maxX=(int)so.getGridPosition().x; if(so.getGridPosition().y<minY) minY=(int)so.getGridPosition().y; if(so.getGridPosition().y>maxY) maxY=(int)so.getGridPosition().y; if(so.getGridPosition().z<minZ) minZ=(int)so.getGridPosition().z; if(so.getGridPosition().z>maxZ) maxZ=(int)so.getGridPosition().z; } int sizeX = (maxX - minX)+10; int sizeY = (maxY - minY)+10; int sizeZ = (maxZ - minZ)+10; //Negative werte werden durch einen versatz positiv gemacht TWorld nWorld = new TWorld (new Vector3 (sizeX, sizeY, sizeZ),new Vector3(minX,minY,minZ)); nWorld.WorldName = Name; foreach (StaticObject so in foundObjects) { Vector3 v=so.getGridPosition(); nWorld.Nodes[(int)v.x,(int)v.y,(int)v.z].allObjects.Add(new TWorld.TWorldObject(so.transform.position,so.transform.rotation.eulerAngles,transform.localScale,so.assetID)); } //Serialize to File FileHelper.WriteToFile("./data/worlds/"+Name+".wld",FileHelper.serializeObject<TWorld>(nWorld)); return true; }
public bool setUpWorld(string WorldName) { usedWorld=FileHelper.deserializeObject<TWorld>(FileHelper.ReadFromFile("./data/worlds/"+WorldName+".wld")); return true; }