public AbstractClass(Type classType) { ClassType = classType; FieldInfo[] fields = ClassType.GetFields(); Components = new uint[fields.Length]; for (int i = 0; i < fields.Length; i++) { FieldInfo fieldInfo = fields[i]; Components[i] = Registry.GetComponent(fieldInfo.FieldType).HashCode; } HashCode = xxHashBranch.DetermineHashCode(ClassType); }
public EcsTable() { _containers = new Dictionary <uint, ValueWrapper[]>(); var classes = Registry.GetAllClasses(); for (int i = 0; i < classes.Length; i++) { AbstractClass abstractClass = classes[i]; ValueWrapper[] wrappers = new ValueWrapper[abstractClass.Components.Length]; for (int j = 0; j < wrappers.Length; j++) { wrappers[j] = new ValueWrapper(Registry.GetComponent(abstractClass.Components[j]).ComponentType, abstractClass.ClassType); } _containers.Add(abstractClass.HashCode, wrappers); } }
public TypeQuery With <T>() { _includedTypes.Add(Registry.GetComponent <T>().HashCode); return(this); }