Example #1
0
        public void unregister(GameUri uri)
        {
            IComponentSystem system;

            if (_systems.TryGetValue(uri, out system))
            {
                if (system is IUpdateSubscriber)
                {
                    _updateSubscribers.Remove((IUpdateSubscriber)system);
                }

                if (system is IRenderSubscriber)
                {
                    _renderSubscribers.Remove((IRenderSubscriber)system);
                }

                _systems.Remove(uri);
                system.shutdown();
            }
        }
Example #2
0
        public T register <T>(GameUri uri, T system)
            where T : IComponentSystem
        {
            if (system is IUpdateSubscriber)
            {
                _updateSubscribers.Add((IUpdateSubscriber)system);
            }

            if (system is IRenderSubscriber)
            {
                _renderSubscribers.Add((IRenderSubscriber)system);
            }

            _systems.Add(uri, system);

            if (_initialised)
            {
                system.init();
            }

            return(system);
        }