diff --git a/Runtime/Scripts/Core/Cluster.cs b/Runtime/Scripts/Core/Cluster.cs index e200f74..4ec2fed 100644 --- a/Runtime/Scripts/Core/Cluster.cs +++ b/Runtime/Scripts/Core/Cluster.cs @@ -183,8 +183,10 @@ namespace NanoBrain { if (externalCluster.name == synapseData.clusterName) instanceCount = externalCluster.instanceCount; } - Cluster extCluster = new Cluster(extPrefab, this, instanceCount); + if (this.nuclei.Find(nucleus => nucleus.name == synapseData.clusterName) is not Cluster extCluster) + extCluster = new(extPrefab, this, instanceCount); Neuron extNeuron = extCluster.GetNeuron(synapseData.neuronName); + Debug.Log("Add receiver for external"); extNeuron.AddReceiver(receiver); } } diff --git a/Runtime/Scripts/Core/Neuron.cs b/Runtime/Scripts/Core/Neuron.cs index 6e4dd1b..cd74076 100644 --- a/Runtime/Scripts/Core/Neuron.cs +++ b/Runtime/Scripts/Core/Neuron.cs @@ -646,10 +646,9 @@ namespace NanoBrain { public virtual void AddReceiver(Nucleus receiverToAdd, float weight = 1, bool trainable = false) { if (receiverToAdd is not Neuron receiverNeuron) return; + this._receivers.Add(receiverNeuron); receiverNeuron.AddSynapse(this, weight, trainable); - //Debug.Log($"Add synapse {this.clusterPrefab.name}.{this.name} -> {receiverToAdd.name} --- [{this.receivers.Count}]"); - } ///