Add Gaze scene
This commit is contained in:
parent
c110a6e723
commit
15b298f399
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
11
Receptor.cs
11
Receptor.cs
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user