draw external receivers only once

This commit is contained in:
Pascal Serrarens 2026-04-28 17:22:51 +02:00
parent ffcf420715
commit 36f876c0d8
2 changed files with 7 additions and 7 deletions

View File

@ -327,7 +327,7 @@ namespace NanoBrain {
if (nucleus is Neuron neuron)
receivers = neuron.receivers;
else if (nucleus is Cluster cluster)
receivers = cluster.CollectReceivers();
receivers = cluster.CollectReceivers(true);
else
return;
@ -357,7 +357,6 @@ namespace NanoBrain {
float margin = 10 + spacing / 2;
int row = 0;
List<Nucleus[]> drawnArrays = new();
foreach (Nucleus receiver in receivers) {
Nucleus receiverNucleus = receiver;
if (receiverNucleus == null)
@ -733,7 +732,7 @@ namespace NanoBrain {
if (nucleus == this.currentNucleus) {
if (Application.isPlaying) {
if (nucleus is Cluster)
expandArray = !expandArray;
expandArray = !expandArray;
else
expandArray = false;
}

View File

@ -716,7 +716,7 @@ namespace NanoBrain {
#region Receivers
public virtual List<Nucleus> CollectReceivers() {
public virtual List<Nucleus> CollectReceivers(bool removeDuplicates = false) {
List<Nucleus> receivers = new();
foreach (Nucleus outputNucleus in this.clusterNuclei) {
if (outputNucleus is not Neuron output)
@ -725,10 +725,11 @@ namespace NanoBrain {
// Debug.Log($"output {this.name} {outputNucleus.name}");
foreach (Nucleus receiver in output.receivers) {
// Debug.Log($"output {receiver.name}");
// Only add receivers outside this cluster
// Only add receivers outside this cluster
if (receiver.clusterPrefab != this.prefab) {
// Debug.Log($" YES");
receivers.Add(receiver);
if (removeDuplicates && receivers.Contains(receiver) == false)
// Debug.Log($" YES");
receivers.Add(receiver);
}
}
}