Exemplo n.º 1
0
        public void RegisterBehaviour <TContainerType>(string name, UserInterfaceBehaviourEvent @event, UserInterfaceBehaviourHandler <TContainerType> callback)
        {
            if (!_registeredBehaviours.ContainsKey(name))
            {
                _registeredBehaviours[name] = new Dictionary <UserInterfaceBehaviourEvent, UserInterfaceBehaviourHandler <object> >();
            }

            _registeredBehaviours[name][@event] = (o, t, g, u) => { callback((TContainerType)o, t, g, u); };
        }
Exemplo n.º 2
0
        private void HandleEventFromContainer(UserInterfaceBehaviourEvent ev, object sender)
        {
            if (!_containerBehaviours.ContainsKey(sender))
            {
                return;
            }

            var behaviours = _containerBehaviours[sender];

            foreach (var behaviour in behaviours)
            {
                if (!_registeredBehaviours.ContainsKey(behaviour))
                {
                    continue;
                }

                if (!_registeredBehaviours[behaviour].ContainsKey(ev))
                {
                    continue;
                }

                _registeredBehaviours[behaviour][ev](sender, this, _currentGameContext, _currentUpdateContext);
            }
        }
Exemplo n.º 3
0
 public void RegisterBehaviour <TContainerType>(string name, UserInterfaceBehaviourEvent @event, UserInterfaceBehaviourHandler <TContainerType> callback)
 {
     _behaviourRegistration.Add(controller => controller.RegisterBehaviour <TContainerType>(name, @event, callback));
 }