Example #1
0
    public void SendEnergy(BuildSignalManager buildSignalManager)
    {
        // Looping through all energy output
        for (int i = 0; i < energyOut.Length; i++)
        {
            // If there is energy to be outputted
            if (energyOut[i] != null)
            {
                int outPort        = (runeData.RuneTemplate.connections[i] + rotation) % (int)runeData.RuneTemplate.sides;
                int neighborInPort = (outPort + (int)runeData.RuneTemplate.sides / 2) % (int)runeData.RuneTemplate.sides;
                // If there is a neighbor to output to
                if (neighbors[outPort] != null)
                {
                    RuneSlot neighbor = neighbors[outPort];

                    neighbor.ReceiveEnergy(energyOut[i], neighborInPort);
                }
                else
                {
                    // No neighbor, energy leak

                    buildSignalManager.receiveSignal("Energy leak");
                    //gameObject.GetComponent<Animator>().SetTrigger("error");
                }

                // Clearing energyOut
                energyOut[i] = null;
            }
        }
    }