예제 #1
0
        public IFuture <TValue> GetNode(TKey key)
        {
            IFuture <TValue> future = new Future <TValue>();

            LinkedActor.SendMessage(PeerOrder.PeerGetNode, key, future);
            return(future);
        }
예제 #2
0
        public IFuture <HashKey> GetHashKey()
        {
            var future = new Future <HashKey>();

            LinkedActor.SendMessage(future);
            return(future);
        }
예제 #3
0
        private void Update(Tuple <CalcEvent, string> evt)
        {
            string data = evt.Item2;

            switch (evt.Item1)
            {
            case CalcEvent.Clear: { accumulators = new Accumulators(); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Digit: { accumulators = accumulators.Enter(data); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Plus: { accumulators = accumulators.Plus(); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Moins: { accumulators = accumulators.Moins(); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Mult: { accumulators = accumulators.Mult(); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Div: { accumulators = accumulators.Div(); LinkedActor.SendMessage(accumulators); break; }

            case CalcEvent.Sign:
            {
                accumulators = accumulators.Sign();
                LinkedActor.SendMessage(accumulators);
                break;
            }

            default: break;
            }
        }
예제 #4
0
        public Future <bool, TKey, TValue> GetKeyValue(TKey key)
        {
            var future = new Future <bool, TKey, TValue>();

            LinkedActor.SendMessage((IActor)future, key);
            return(future);
        }
예제 #5
0
        public IFuture <IEnumerable <KeyValuePair <TKey, TValue> > > AsEnumerable()
        {
            IFuture <IEnumerable <KeyValuePair <TKey, TValue> > > future = new Future <IEnumerable <KeyValuePair <TKey, TValue> > >();

            LinkedActor.SendMessage(future);
            return(future);
        }
예제 #6
0
    public NPCData craftNewNpc(LinkedActor actor)
    {
        string uuid = Guid.NewGuid().ToString();

        string job = actor.job;

        Vector3 pos = new Vector3(actor.position[0], actor.position[1], actor.position[2]);

        return(new NPCData(uuid, job, pos, Quaternion.Euler(0, 0, 0), false, WalkMode.idle, actor.canDie));
    }
예제 #7
0
 public SupervisedBehavior()
 {
     Pattern = t => true;
     Apply   = t =>
     {
         if (t.Equals(SupervisorAction.Kill))
         {
             LinkedActor.SendMessage(SystemMessage.NullBehavior);
         }
     };
 }
예제 #8
0
 public void DeleteNode(TKey key)
 {
     LinkedActor.SendMessage(PeerOrder.PeerDeleteNode, key);
 }
예제 #9
0
 public void AddKeyValue(TKey key, TValue value)
 {
     LinkedActor.SendMessage(key, value);
 }
예제 #10
0
 public void UnregisterOutput(IActor actor) => LinkedActor.SendMessage(actor, false, false);
예제 #11
0
 public void UnregisterInput(IActor actor) => LinkedActor.SendMessage(actor, true, false);
예제 #12
0
 public void GetValue()
 {
     LinkedActor.SendMessage(((StateBehaviors <T>)LinkedTo).Value);
 }
예제 #13
0
 public void StoreNode(TKey key, TValue value)
 {
     LinkedActor.SendMessage(PeerOrder.PeerStoreNode, key, value);
 }
예제 #14
0
 public void RegisterOutput(IActor actor)
 {
     LinkedActor.SendMessage(actor, false, true);
 }
예제 #15
0
 public SupervisedBehavior()
 {
     Pattern = t => t == SupervisorAction.Kill;
     Apply   = _ => LinkedActor.SendMessage(SystemMessage.NullBehavior);
 }
예제 #16
0
 public void SetData(T aMessage)
 {
     LinkedActor.SendMessage((ITrait <T>) this, aMessage);
 }
예제 #17
0
 public void RemoveKey(TKey key)
 {
     LinkedActor.SendMessage(key);
 }
예제 #18
0
 public void GetNode(TKey key, IActor actor)
 {
     LinkedActor.SendMessage(PeerOrder.PeerGetNode, key, actor);
 }
예제 #19
0
 private void GetValue() => LinkedActor.SendMessage(((StateBehaviors <T>)LinkedTo).Value);
예제 #20
0
 public void Clear()
 {
     LinkedActor.SendMessage(DictionaryBehaviorOrder.clear);
 }
예제 #21
0
 public void RegisterInput(IActor actor) => LinkedActor.SendMessage(actor, true, true);
예제 #22
0
 public void SetData(T aMessage)
 {
     LinkedActor.SendMessage(typeof(ITrait <T>), aMessage);
 }