public InternalService(PassengerServiceFactory p_service) { queue = new List <Passenger>(); // add all internal nodes queue_start = p_service.queueStart.internalNode; queue_end = p_service.queueEnd.internalNode; passenger_node = p_service.passengerNode.internalNode; employee_node = p_service.employeeNode.internalNode; category = p_service.category; maxQueueSize = p_service.maxQueueSize; }
public InternalService(PassengerServiceFactory p_service) { queue = new List<Passenger>(); // add all internal nodes queue_start = p_service.queueStart.internalNode; queue_end = p_service.queueEnd.internalNode; passenger_node = p_service.passengerNode.internalNode; employee_node = p_service.employeeNode.internalNode; category = p_service.category; maxQueueSize = p_service.maxQueueSize; }
/* * Only do this when building is created! */ void SetupNodes() { BuildingNode node; List <BuildingNode> tempNodes = new List <BuildingNode>(); List <PassengerServiceFactory> tempPassengerServices = new List <PassengerServiceFactory>(); // add edge nodes to temp list foreach (Transform child in edgeNodeParent.transform) { node = child.gameObject.GetComponent <BuildingNode>(); tempNodes.Add(node); // also add passenger service if it exists PassengerServiceFactory p_service = child.gameObject.GetComponent <PassengerServiceFactory>(); if (p_service != null) { tempPassengerServices.Add(p_service); } } // add connecting nodes to temp list, and set up edge node connections foreach (Transform child in connectingParent.transform) { node = child.gameObject.GetComponent <BuildingNode>(); node.SetupAutoConnection(); node.SetupEdgeNodeConnections(); tempNodes.Add(node); } // for each building node, create internal node to replace old one foreach (BuildingNode bNode in tempNodes) { bNode.internalNode = new InternalBuildingNode(bNode, this.transform.position, bNode.transform.position, bNode.door, bNode.gameObject.name); } // loop last time to add internal node connections, and add to final list foreach (BuildingNode bNode in tempNodes) { bNode.internalNode.nodeConnections = bNode.GetInternalConnections(); internalNodes.Add(bNode.internalNode); if (bNode.edgeNode) { edgeNodes.Add(bNode.internalNode); } if (bNode.entrance) { entrances.Add(bNode.internalNode); } } // also convert passengerService references to internal foreach (PassengerServiceFactory p_service in tempPassengerServices) { InternalService new_service = new InternalService(p_service); passengerServices.Add(new_service); } // destroy gameObjects DestroyOldGameObjects(); }