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) {
|
public Nucleus GetNucleus(string nucleusName) {
|
||||||
string nucleusName0 = nucleusName + ": 0";
|
int dotPosition = nucleusName.IndexOf('.');
|
||||||
foreach (Nucleus nucleus in this.clusterNuclei) {
|
if (dotPosition >= 0) {
|
||||||
if (nucleus is IReceptor receptor) {
|
string clusterName = nucleusName[..dotPosition];
|
||||||
if (nucleus.name == nucleusName | nucleus.name == nucleusName0)
|
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;
|
return nucleus;
|
||||||
}
|
}
|
||||||
else if (nucleus.name == nucleusName)
|
return null;
|
||||||
return nucleus;
|
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Obsolete("Use GetNucleus instead")]
|
[Obsolete("Use GetNucleus instead")]
|
||||||
@ -440,7 +456,7 @@ public class Cluster : Nucleus {
|
|||||||
// Only add receivers outside this cluster
|
// Only add receivers outside this cluster
|
||||||
if (receiver.clusterPrefab != this.prefab)
|
if (receiver.clusterPrefab != this.prefab)
|
||||||
receivers.Add(receiver);
|
receivers.Add(receiver);
|
||||||
//receivers.AddRange(output.receivers);
|
//receivers.AddRange(output.receivers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return receivers;
|
return receivers;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user