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); }
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); }
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); }
public Edge(Vector3[] endpoints, Vector3 axisDirection, BuildingFoundation foundation) { this.endpoints = endpoints; this.axisDirection = axisDirection; this.foundation = foundation; }