2 using System.Collections.Generic;
4 namespace Entitas.Serialization.Blueprints {
10 public string fullTypeName;
14 Dictionary<string, PublicMemberInfo> _componentMembers;
20 _type = component.GetType();
21 _componentMembers = null;
24 fullTypeName = _type.FullName;
26 var memberInfos = _type.GetPublicMemberInfos();
28 for (
int i = 0; i < memberInfos.Count; i++) {
29 var info = memberInfos[i];
31 info.name, info.GetValue(component)
38 _type = fullTypeName.ToType();
42 "Type '" + fullTypeName +
43 "' doesn't exist in any assembly!",
44 "Please check the full type name." 50 "Type '" + fullTypeName +
51 "' doesn't implement IComponent!",
53 " only supports IComponent." 60 if(_componentMembers == null) {
61 var memberInfos = _type.GetPublicMemberInfos();
62 _componentMembers =
new Dictionary<string, PublicMemberInfo>(
65 for (
int i = 0; i < memberInfos.Count; i++) {
66 var info = memberInfos[i];
67 _componentMembers.Add(info.name, info);
71 for (
int i = 0; i < members.Length; i++) {
72 var member = members[i];
75 if(!_componentMembers.TryGetValue(member.name, out memberInfo)) {
77 "Could not find member '" + member.name +
78 "' in type '" + _type.FullName +
"'!",
79 "Only non-static public members are supported." 83 memberInfo.SetValue(component, member.value);
IComponent CreateComponent(int index, Type type)
Base exception used by Entitas.