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); } } }
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(); } }