示例#1
0
    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;
    }
示例#3
0
    /*
     *	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();
    }