Added ants nest

This commit is contained in:
Pascal Serrarens 2026-02-06 15:12:34 +01:00
parent 8eb1cbea1a
commit 7fffa6dbe5
2 changed files with 15 additions and 18 deletions

View File

@ -396,6 +396,11 @@ public class ClusterInspector : Editor {
else { else {
style.alignment = TextAnchor.UpperCenter; style.alignment = TextAnchor.UpperCenter;
Vector3 labelPos = position - Vector3.down * (size + 10f); // below disc along up axis Vector3 labelPos = position - Vector3.down * (size + 10f); // below disc along up axis
int colonPos = nucleus.name.IndexOf(":");
if (colonPos > 0) {
string baseName = nucleus.name[..colonPos];
Handles.Label(labelPos, baseName, style);
} else
Handles.Label(labelPos, nucleus.name, style); Handles.Label(labelPos, nucleus.name, style);
} }
@ -428,17 +433,9 @@ public class ClusterInspector : Editor {
private void HandleMouseHover(Nucleus nucleus, Rect rect) { private void HandleMouseHover(Nucleus nucleus, Rect rect) {
GUIContent tooltip; GUIContent tooltip;
// if (nucleus is Nucleus n) {
// tooltip = new(
// $"{nucleus.name}" +
// //$"\nsynapse count {n.synapses.Count}" +
// $"\nValue: {length(nucleus.outputValue)}");
// }
// else {
tooltip = new( tooltip = new(
$"{nucleus.name}" + $"{nucleus.name}" +
$"\nValue: {length(nucleus.outputValue)}"); $"\nValue: {length(nucleus.outputValue)}");
// }
Vector2 mousePosition = Event.current.mousePosition; Vector2 mousePosition = Event.current.mousePosition;

View File

@ -66,20 +66,22 @@ public class NucleusArray {
public virtual void ProcessStimulus(int thingId, Vector3 inputValue, string thingName = null) { public virtual void ProcessStimulus(int thingId, Vector3 inputValue, string thingName = null) {
CleanupReceivers(); CleanupReceivers();
if (!thingReceivers.TryGetValue(thingId, out Nucleus selectedReceiver)) { if (!thingReceivers.TryGetValue(thingId, out Nucleus selectedReceiver)) {
Debug.Log($"No receiver found for {thingId}"); // Debug.Log($"No receiver found for {thingId}");
foreach (Nucleus receptor in this.nuclei) { foreach (Nucleus receptor in this.nuclei) {
if (receptor is not Nucleus receiver) if (receptor is not Nucleus receiver)
continue; continue;
if (thingReceivers.ContainsValue(receiver) == false) { if (thingReceivers.ContainsValue(receiver) == false) {
// receiver is not used yet // receiver is not used yet
Debug.Log($"{thingId} -> {receiver.name}"); // Debug.Log($"{thingId} -> {receiver.name}");
thingReceivers.Add(thingId, receiver); thingReceivers.Add(thingId, receiver);
selectedReceiver = receiver; selectedReceiver = receiver;
break; break;
} }
} }
} }
if (selectedReceiver == null)
return;
if (thingName != null) { if (thingName != null) {
string baseName = selectedReceiver.name; string baseName = selectedReceiver.name;
@ -99,8 +101,7 @@ public class NucleusArray {
List<int> receiversToRemove = new(); List<int> receiversToRemove = new();
foreach (KeyValuePair<int, Nucleus> item in thingReceivers) { foreach (KeyValuePair<int, Nucleus> item in thingReceivers) {
if (item.Value.isSleeping) { if (item.Value.isSleeping) {
Nucleus n = item.Value as Nucleus; //Nucleus n = item.Value as Nucleus;
Debug.Log($"{item.Value.name} is sleeping, stale = {n.stale}");
receiversToRemove.Add(item.Key); receiversToRemove.Add(item.Key);
} }
} }
@ -108,7 +109,6 @@ public class NucleusArray {
Nucleus selectedReceiver = thingReceivers[thingId]; Nucleus selectedReceiver = thingReceivers[thingId];
thingReceivers.Remove(thingId); thingReceivers.Remove(thingId);
Debug.Log($"Cleanup receiver for {thingId}");
int colonPos = selectedReceiver.name.IndexOf(":"); int colonPos = selectedReceiver.name.IndexOf(":");
if (colonPos > 0) if (colonPos > 0)