Exemple #1
0
    public void ConnectToStructure(BaseStructure other, bool initiator = true)
    {
        connections.Add(other);
        if (initiator)
        {
            other.ConnectToStructure(this, false);

            if (lr != null)
            {
                lr.positionCount += 2;
                lr.SetPosition(lr.positionCount - 2, transform.position);
                lr.SetPosition(lr.positionCount - 1, other.transform.position);
            }
        }
    }
Exemple #2
0
    public void MakeConnections(BaseStructure structure, Vector3 pos)
    {
        bool connectedToActive = false;

        if (structure.isConnector)
        {
            foreach (BaseStructure strct in structures)
            {
                if (Vector3.Distance(pos, strct.transform.position) < connectorReach)
                {
                    structure.ConnectToStructure(strct);
                    if (strct.Activated)
                    {
                        connectedToActive = true;
                    }
                }
            }
        }
        else
        {
            foreach (BaseStructure strct in connectors)
            {
                if (Vector3.Distance(pos, strct.transform.position) < connectorReach)
                {
                    strct.ConnectToStructure(structure);
                    if (strct.Activated)
                    {
                        connectedToActive = true;
                    }
                }
            }
        }

        if (!connectedToActive)
        {
            structure.Deactivate();
        }
        else
        {
            structure.Activate();
        }
    }