draw external receivers only once
This commit is contained in:
parent
ffcf420715
commit
36f876c0d8
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user