Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 public TypeQuery With <T>()
 {
     _includedTypes.Add(Registry.GetComponent <T>().HashCode);
     return(this);
 }