Exemplo n.º 1
0
    // Create uility tools for each node
    public void ShowingNodeUtilityGroup(GameObject _GameObject_NodeUtilityGroup, GameObject _NodeGroup)
    {
        Vector3 DefaultNodeUtilityLocation = new Vector3(0, 0, 0);

        GameObject[] AllNodes = GetAllNodeGameObjects();

        foreach (GameObject EachAllNode in AllNodes)
        {
            NewNodeUtilityGroup = Instantiate(_GameObject_NodeUtilityGroup, DefaultNodeUtilityLocation, Quaternion.identity, _NodeGroup.transform) as GameObject;
            NewNodeUtilityGroup.GetComponent <NodeUtilityGroupRenderer> ().UpdateInformation(EachAllNode.transform.localPosition, EachAllNode);
            NewNodeUtilityGroup.name     = EachAllNode.name + "UtilityGroup";
            EachAllNode.transform.parent = NewNodeUtilityGroup.transform;
            EachAllNode.GetComponent <NodeRenderer> ().NodeCentralize();
        }
    }
Exemplo n.º 2
0
    // Destroy uility tools on all nodes
    public void DestoryNodeUtilityGroup(GameObject _NodeGroup)
    {
        GameObject[] AllNodeUtilities     = GetAllNodeUtilityGameObjects();
        GameObject[] AllNodes             = GetAllNodeGameObjects();
        Vector2      NewNodePositionIndex = new Vector2(0, 0);

        foreach (GameObject EachAllNode in AllNodes)
        {
            NewNodePositionIndex         = EachAllNode.GetComponent <NodeRenderer> ().GetNodePositionIndex();
            EachAllNode.transform.parent = _NodeGroup.transform;
            EachAllNode.GetComponent <NodeRenderer> ().UpdateLocation(NewNodePositionIndex);
        }

        foreach (GameObject EachAllNodeUtilities in AllNodeUtilities)
        {
            Destroy(EachAllNodeUtilities);
        }
    }
Exemplo n.º 3
0
    // Get All Possible Position
    // Vector3 <X, Y, 0 or 1 (0 = Empty, 1 = Occupied)>
    public List <Vector3> GetAllPossiblePosition()
    {
        Vector2 NodePositionIndex = NewNode.GetComponent <NodeRenderer>().GetNodePositionIndex();

        GameObject[]   AllNodes = GameObject.FindGameObjectsWithTag("Node");
        List <Vector2> OccupiedNodePositionIndexs    = new List <Vector2> ();
        List <Vector3> AllPossibleNodePositionIndexs = new List <Vector3> ();

        foreach (GameObject EachAllNode in AllNodes)
        {
            OccupiedNodePositionIndexs.Add(EachAllNode.GetComponent <NodeRenderer> ().GetNodePositionIndex());
        }

        Vector2 PossibleNodePositionIndex_Limit_Lower = NodePositionIndex - new Vector2(GameConstants.Node_ExpensionLevel, GameConstants.Node_ExpensionLevel);
        Vector2 PossibleNodePositionIndex_Limit_Upper = NodePositionIndex + new Vector2(GameConstants.Node_ExpensionLevel, GameConstants.Node_ExpensionLevel);
        Vector2 NewPossiblePositionIndex = new Vector2(0, 0);

        for (int PositionIndex_X = (int)PossibleNodePositionIndex_Limit_Lower.x; PositionIndex_X <= (int)PossibleNodePositionIndex_Limit_Upper.x; PositionIndex_X++)
        {
            for (int PositionIndex_Y = (int)PossibleNodePositionIndex_Limit_Lower.y; PositionIndex_Y <= (int)PossibleNodePositionIndex_Limit_Upper.y; PositionIndex_Y++)
            {
                NewPossiblePositionIndex = new Vector2(PositionIndex_X, PositionIndex_Y);
                if (NewPossiblePositionIndex != NodePositionIndex)
                {
                    if (OccupiedNodePositionIndexs.Contains(NewPossiblePositionIndex))
                    {
                        AllPossibleNodePositionIndexs.Add(new Vector3(PositionIndex_X, PositionIndex_Y, 1));
                    }
                    else
                    {
                        AllPossibleNodePositionIndexs.Add(new Vector3(PositionIndex_X, PositionIndex_Y, 0));
                    }
                }
            }
        }

        return(AllPossibleNodePositionIndexs);
    }