Ejemplo n.º 1
0
        public static IReadOnlyEventField <B> Watch <T, B>(this IReadOnlyEventField <T> field, Func <T, IReadOnlyEventField <B> > chain)
        {
            var watcher = new EventField <B> ();

            field.Handlers[watcher].Add(new EventFieldChainHandler <T, B> (field, watcher, chain));
            return(watcher);
        }
Ejemplo n.º 2
0
        public EventField <B> Watch <B> (Func <T, EventField <B> > chain)
        {
            var watcher = new EventField <B> ();

            Handlers[watcher] += new EventFieldChainHandler <T, B> (this, watcher, chain);
            return(watcher);
        }
Ejemplo n.º 3
0
        public EventFieldChainHandler(EventField <T> source, EventField <B> target, Func <T, EventField <B> > chain)
        {
            SourceField = source;
            TargetField = target;
            Chain       = chain;

            ChainedField = Chain(SourceField.Value);
        }
Ejemplo n.º 4
0
 public Actor()
 {
     behaviours = new List <INodeInstance> ();
     Health     = new EventField <int>
     {
         Value = 100
     };
 }
Ejemplo n.º 5
0
        public void OnAfterChanged()
        {
            ChainedField = Chain(SourceField.Value);
            if (ChainedField == null)
            {
                TargetField.Value = default(B);
                return;
            }

            ChainedField.Handlers[this] += new EventFieldMirrorHandler <B> (ChainedField, TargetField);
            TargetField.Value            = ChainedField.Value;
        }
Ejemplo n.º 6
0
 public HandlerCollection(EventField <T> field)
 {
     this.field = field;
     handlers   = null;
 }
Ejemplo n.º 7
0
 public ContextWrapped(EventField <T> field, object context)
 {
     Field   = field;
     Context = context;
     Result  = null;
 }