Add Gaze scene

This commit is contained in:
Pascal Serrarens 2026-02-19 09:49:00 +01:00
parent c110a6e723
commit 15b298f399
3 changed files with 95 additions and 90 deletions

View File

@ -420,11 +420,14 @@ public class Cluster : Nucleus {
}
public IReceptor GetReceptor(string receptorName) {
string receptorName0 = receptorName + ": 0";
foreach (Nucleus nucleus in this.clusterNuclei) {
if (nucleus is IReceptor receptor)
if (receptor.GetName() == receptorName)
if (nucleus is IReceptor receptor) {
if (nucleus.name == receptorName | nucleus.name == receptorName0)
//if (receptor.GetName() == receptorName)
return receptor;
}
}
return null;
}

View File

@ -108,11 +108,13 @@ public class ClusterInspector : Editor {
};
List<string> names = this.prefab.outputs.Select(output => output.name).ToList();
if (names.Count > 0 && names.First() != null) {
outputsField = new(names, names.First()) {
style = { flexGrow = 1 }
};
outputsField.RegisterValueChangedCallback(evt => OnOutputChanged(evt.newValue));
outputContainer.Add(outputsField);
}
Button addButton = new(() => OnAddClusterOutput()) {
text = "Add"
@ -565,7 +567,7 @@ public class ClusterInspector : Editor {
style.alignment = TextAnchor.UpperCenter;
Vector3 labelPos = position - Vector3.down * (size + 5); // below disc along up axis
int colonPos = nucleus.name.IndexOf(":");
if (expandArray || (colonPos > 0 && colonPos < nucleus.name.Length - 2)) {
if (expandArray && nucleus is Receptor) { //} || (colonPos > 0 && colonPos < nucleus.name.Length - 2)) {
// string baseName = nucleus.name[..colonPos];
// Handles.Label(labelPos, baseName, style);
}
@ -614,14 +616,17 @@ public class ClusterInspector : Editor {
if (nucleus == this.currentNucleus) {
if (nucleus is Receptor || nucleus is ClusterReceptor)
expandArray = !expandArray;
else
expandArray = false;
}
else if (nucleus is ReceptorInstance receptor) {
expandArray = false;
this.currentNucleus = receptor.receptor;
expandArray = false;
BuildLayers();
}
else if (nucleus is Nucleus n) {
this.currentNucleus = n;
else {
this.currentNucleus = nucleus;
expandArray = false;
BuildLayers();
}
}

View File

@ -6,6 +6,8 @@ using static Unity.Mathematics.math;
public class Receptor : Neuron, IReceptor {
public Receptor(Cluster parent, string name) : base(parent, name) {
this.array ??= new NucleusArray(this);
if (this.name.IndexOf(":") < 0)
this.name += ": 0";
}
public Receptor(ClusterPrefab prefab, string name) : base(prefab, name) {
this.array ??= new NucleusArray(this);
@ -16,20 +18,15 @@ public class Receptor : Neuron, IReceptor {
}
public override Nucleus ShallowCloneTo(Cluster parent) {
Receptor clone = new(parent, name) {
//array = this.array
};
Receptor clone = new(parent, name);
CloneFields(clone);
return clone;
}
public override Nucleus Clone(ClusterPrefab prefab) {
Receptor clone = new(prefab, name) {
//array = this.array
array = this.array
};
CloneFields(clone);
// Adding receivers will also add synapses to the receivers
foreach (Nucleus receiver in this.receivers)
clone.AddReceiver(receiver);
return clone;
}