Get subcluster nucleus
This commit is contained in:
parent
96b240ad6c
commit
bd24e6e19b
32
Cluster.cs
32
Cluster.cs
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user