Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
 public bool setUpWorld(string WorldName)
 {
     usedWorld=FileHelper.deserializeObject<TWorld>(FileHelper.ReadFromFile("./data/worlds/"+WorldName+".wld"));
     return true;
 }