Exemple #1
0
        public void SeeComponents(Storage storage)
        {
            IComponentIterator iterator = storage.CreateNumerator();

            while (iterator.HasNext())
            {
                var component = iterator.Next() as Component;
                Console.WriteLine($"{component.Name}\n{component.Price}\n{component.Type}\n----------");
            }
        }
        public void TestGetComponentsIterator_PassCorrectEntityId_ReturnsIteratorReference()
        {
            Assert.DoesNotThrow(() =>
            {
                EntityId entityId = (EntityId)0;

                mComponentManager.RegisterEntity(entityId);

                mComponentManager.AddComponent <TTestComponent>(entityId);
                mComponentManager.AddComponent <TAnotherComponent>(entityId);

                IComponentIterator iter = mComponentManager.GetComponentsIterator(entityId);

                Assert.IsNotNull(iter);
            });
        }
        public override void OnInspectorGUI()
        {
            EntityObserver entityObserver = target as EntityObserver;

            if (mCurrSelectedEntity != entityObserver)
            {
                Array.Clear(mComponentsFoldOutInfo, 0, mComponentsFoldOutInfo.Length);

                mCurrSelectedEntity = entityObserver;
            }

            IEntity entity = entityObserver.Entity;

            EditorGUILayout.BeginVertical(GUI.skin.box);

            EditorGUILayout.LabelField("Entity Info:", EditorStyles.boldLabel);

            EditorGUILayout.LabelField("Id", entity.Id.ToString());
            EditorGUILayout.LabelField("Name", entity.Name);

            EditorGUILayout.Separator();
            GUILayout.Space(20.0f);

            // display all components that are attached to the entity
            IComponentIterator componentIter = entity.GetComponentsIterator();

            int i = 0;

            while (componentIter.MoveNext())
            {
                _displayComponent(componentIter.Get(), i++, ref mComponentsFoldOutInfo);
            }

            EditorGUILayout.EndVertical();

            Repaint();
        }