Esempio n. 1
0
 public void NodeEnteredRange(WaterNetworkNode otherNode)
 {
     // If other node is part of a network, join that network if we need one
     if(Network == null && otherNode.Network != null) {
         otherNode.Network.AddNode(this, true);
     }
 }
Esempio n. 2
0
 // Adds the node and all of its neighbors to the given network
 protected void AddNodeToNetwork(WaterNetwork network, WaterNetworkNode node, HashSet<WaterNetworkNode> closedSet)
 {
     if(!closedSet.Contains(node)) {
         network.AddNode(node, false);
         closedSet.Add(node);
         foreach(WaterNetworkNode neighbor in node.GetNeighbors()) {
             AddNodeToNetwork(network, neighbor, closedSet);
         }
     }
 }
Esempio n. 3
0
    // Removes a node from this network and optionally rebuilds the network
    // Currently, this is never called. The only ways to be removed from a network are to rebuild it or be destroyed.
    public void RemoveNode(WaterNetworkNode node, bool rebuildNetwork)
    {
        if(node is WaterNetworkSource) {
            Sources.Remove((WaterNetworkSource)node);
        }
        Nodes.Remove(node);

        node.Network = null;
        node.transform.parent = this.transform.parent; //hierarchy not really needed, but useful for development

        if(Nodes.Count == 0) {
            Destroy(this.gameObject);
        } else if(rebuildNetwork) {
            RebuildWaterNetwork();
        }
    }
Esempio n. 4
0
    // Adds a node to this network and optionally rebuilds the network
    public void AddNode(WaterNetworkNode node, bool rebuildNetwork)
    {
        if(node.Network != null) {
            node.Network.RemoveNode(node, false);
        }

        if(node is WaterNetworkSource && !Sources.Contains((WaterNetworkSource)node)) {
            Sources.Add((WaterNetworkSource)node);
        }
        if(!Nodes.Contains(node)) {
            Nodes.Add(node);
        }

        node.Network = this;
        node.transform.parent = this.transform; //hierarchy not really needed, but useful for development

        if(rebuildNetwork) {
            RebuildWaterNetwork();
        }
    }
Esempio n. 5
0
 public void NodeLeftRange(WaterNetworkNode otherNode)
 {
     //nothing here yet
 }