Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SubsystemNames.cs
浏览该文件的文档.
2
3namespace Game {
4 public class SubsystemNames : Subsystem {
5 public Dictionary<string, ComponentName> m_componentsByName = [];
6
7 public Component FindComponentByName(string name, Type componentType, string componentName) =>
8 FindEntityByName(name)?.FindComponent(componentType, componentName, false);
9
10 public T FindComponentByName<T>(string name, string componentName) where T : Component {
11 Entity entity = FindEntityByName(name);
12 if (entity == null) {
13 return null;
14 }
15 return entity.FindComponent<T>(componentName, false);
16 }
17
18 public Entity FindEntityByName(string name) {
19 m_componentsByName.TryGetValue(name, out ComponentName value);
20 return value?.Entity;
21 }
22
23 public static string GetEntityName(Entity entity) {
24 ComponentName componentName = entity.FindComponent<ComponentName>();
25 if (componentName != null) {
26 return componentName.Name;
27 }
28 return string.Empty;
29 }
30
31 public override void OnEntityAdded(Entity entity) {
32 foreach (ComponentName item in entity.FindComponents<ComponentName>()) {
33 m_componentsByName.Add(item.Name, item);
34 }
35 }
36
37 public override void OnEntityRemoved(Entity entity) {
38 foreach (ComponentName item in entity.FindComponents<ComponentName>()) {
39 m_componentsByName.Remove(item.Name);
40 }
41 }
42 }
43}
Entity FindEntityByName(string name)
override void OnEntityAdded(Entity entity)
T FindComponentByName< T >(string name, string componentName)
static string GetEntityName(Entity entity)
Component FindComponentByName(string name, Type componentType, string componentName)
Dictionary< string, ComponentName > m_componentsByName
override void OnEntityRemoved(Entity entity)
Component FindComponent(Type type, string name, bool throwOnError)