Exemple #1
0
    public PlainBuildingDataStruct getDataStruct(BuildingFoundation foundation)
    {
        PlainBuildingDataStruct data = new PlainBuildingDataStruct();

        data.sizeX      = foundation.lengthX;
        data.sizeZ      = foundation.lengthZ;
        data.floorCount = Randomiser.intBetween(2, 3);
        GameObject[] windowPrefabs = GenericUtils.loadAllPrefabs("prefabs/windows");
        data.windowPrefab    = windowPrefabs [Random.Range(0, windowPrefabs.Length)];
        data.wallPrefab      = GenericUtils.loadPrefab("plain building", "wallPrefab");
        data.fullFloorPrefab = GenericUtils.loadPrefab("plain building", "fullFloorPrefab");
        data.roofPrefab      = GenericUtils.loadPrefab("plain building", "roofPrefab");
        return(data);
    }
Exemple #2
0
    public CourtyardBuildingDataStruct getDataStruct(BuildingFoundation foundation)
    {
        CourtyardBuildingDataStruct data = new CourtyardBuildingDataStruct();
        ArchData ad = gameObject.GetComponent <ArchData> ();

        windowPrefabs            = GenericUtils.loadAllPrefabs("prefabs/windows");
        data.sizeX               = foundation.lengthX;
        data.sizeZ               = foundation.lengthZ;
        data.windowPrefab        = windowPrefabs[Random.Range(0, windowPrefabs.Length)];
        data.columnBasePrefab    = ad.getColumnBase();
        data.columnShaftPrefab   = ad.getColumnShaft();
        data.columnCapitalPrefab = ad.getColumnCapital();
        data.archPrefab          = ad.getArch();
        return(data);
    }
 bool checkOverlaps(BuildingFoundation newFoundation)
 {
     foreach (Vector3 corner in newFoundation.corners)
     {
         foreach (RectangleFoundation r in rectangles)
         {
             if (r.containsPoint(corner))
             {
                 return(false);
             }
         }
         foreach (SquareFoundation s in squares)
         {
             if (s.containsPoint(corner))
             {
                 return(false);
             }
         }
     }
     return(true);
 }
    void updateLists(BuildingFoundation newFoundation, Edge curEdge, Junction curJunction, List <BuildingFoundation> toUpdate, bool addEdges, bool addFreeCorners)
    {
        toUpdate.Add(newFoundation);
        if (addFreeCorners)
        {
            freeCorners.AddRange(newFoundation.corners);
        }
        allCorners.AddRange(newFoundation.corners);
        List <Edge> newEdges = newFoundation.getEdges();

        usedEdges.Add(newEdges [3]);
        if (addEdges)
        {
            newEdges.RemoveAt(3);
            freeEdges.AddRange(newEdges);
        }
        freeEdges.Remove(curEdge);
        usedEdges.Add(curEdge);
        curJunction.adjacentFoundations [0] = curEdge.foundation;
        curJunction.adjacentFoundations [1] = newFoundation;
        junctions.Add(curJunction);
    }
Exemple #5
0
    public MosqueDataStruct getDataStruct(BuildingFoundation foundation)
    {
        MosqueDataStruct dataStruct = new MosqueDataStruct();

        dataStruct.size           = foundation.lengthX;
        dataStruct.collarDiameter = dataStruct.size * 0.9f;
        dataStruct.collarHeight   = 1.5f;
        int collars = Randomiser.intBetween(0, 3);

        dataStruct.collarSequence = new List <int> ();
        for (int i = 0; i < collars; i++)
        {
            dataStruct.collarSequence.Add((int)Randomiser.oneOf(0, 1.5f));                //0 -> full collar, 1 -> arch collar
        }
        dataStruct.baseHeight       = 5;
        dataStruct.decorSequence    = generateDecorSequence();
        dataStruct.mosqueBodyPrefab = mosqueBodyPrefabs[Random.Range(0, mosqueBodyPrefabs.Count)];
        dataStruct.fullCollarPrefab = fullCollarPrefab;
        GameObject[] arches = GenericUtils.loadAllPrefabs("prefabs/arches/simple");
        dataStruct.archPrefab  = arches [Random.Range(0, arches.Length)];
        dataStruct.topPrefab   = topPrefabs [Random.Range(0, topPrefabs.Count)];
        dataStruct.decorPrefab = decorPrefab;
        return(dataStruct);
    }
Exemple #6
0
 public Edge(Vector3[] endpoints, Vector3 axisDirection, BuildingFoundation foundation)
 {
     this.endpoints     = endpoints;
     this.axisDirection = axisDirection;
     this.foundation    = foundation;
 }