Get subcluster nucleus

This commit is contained in:
Pascal Serrarens 2026-03-03 08:51:09 +01:00
parent 96b240ad6c
commit bd24e6e19b

View File

@ -414,16 +414,32 @@ public class Cluster : Nucleus {
}
public Nucleus GetNucleus(string nucleusName) {
string nucleusName0 = nucleusName + ": 0";
foreach (Nucleus nucleus in this.clusterNuclei) {
if (nucleus is IReceptor receptor) {
if (nucleus.name == nucleusName | nucleus.name == nucleusName0)
int dotPosition = nucleusName.IndexOf('.');
if (dotPosition >= 0) {
string clusterName = nucleusName[..dotPosition];
string clusterName0 = clusterName + ": 0";
foreach (Nucleus nucleus in this.clusterNuclei) {
if (nucleus is Cluster cluster) {
if (cluster.name == clusterName || cluster.name == clusterName0) {
string subNucleusName = nucleusName[(dotPosition + 1)..];
return cluster.GetNucleus(subNucleusName);
}
}
}
return null;
}
else {
string nucleusName0 = nucleusName + ": 0";
foreach (Nucleus nucleus in this.clusterNuclei) {
if (nucleus is IReceptor receptor) {
if (nucleus.name == nucleusName | nucleus.name == nucleusName0)
return nucleus;
}
else if (nucleus.name == nucleusName)
return nucleus;
}
else if (nucleus.name == nucleusName)
return nucleus;
return null;
}
return null;
}
[Obsolete("Use GetNucleus instead")]
@ -440,7 +456,7 @@ public class Cluster : Nucleus {
// Only add receivers outside this cluster
if (receiver.clusterPrefab != this.prefab)
receivers.Add(receiver);
//receivers.AddRange(output.receivers);
//receivers.AddRange(output.receivers);
}
}
return receivers;