public View Spawn(ActorTag actorTag) { if (!_viewPrefabPools.TryGetValue(actorTag, out var pool)) { pool = new ViewPrefabPool(); pool.Prefab = Resources.Load <GameObject>($"{PATH_PREFIX}/{ActorTagPathDic[actorTag]}"); pool.SpawnRoot = new GameObject($"__SpawnRoot_{actorTag.ToString()}") .transform; pool.PoolRoot = new GameObject($"__PoolRoot_{actorTag.ToString()}") .transform; pool.SpawnRoot.SetParent(transform); pool.SpawnRoot.localPosition = Vector3.zero; pool.SpawnRoot.localRotation = Quaternion.identity; pool.SpawnRoot.localScale = Vector3.one; pool.PoolRoot.SetParent(transform); pool.PoolRoot.localPosition = Vector3.zero; pool.PoolRoot.localRotation = Quaternion.identity; pool.PoolRoot.localScale = Vector3.one; _viewPrefabPools.Add(actorTag, pool); } return(pool.Spawn()); }
private void Running(ActorTag msg) { fTestRun++; if (fNextNode != null) { if ((fTestRun % 100) == 0) { //var tr = new actTrace(); //tr.Start(); fNextNode.SendMessage(msg); //tr.Stop("End Node Ring"); } else { fNextNode.SendMessage(msg); } } else { if (fTestRun >= RingTest.fTest) { TestResult.end = DateTimeOffset.UtcNow; StringBuilder sb = new StringBuilder(); sb.AppendLine("End Test " + fTestRun.ToString() + " " + TestResult.end.ToString()); sb.AppendLine("Elapsed " + fTestRun.ToString() + " " + TestResult.Delta.ToString()); // .ToString("N5")); Console.WriteLine(sb.ToString()); RingTest.answer?.SendMessage(sb.ToString()); } } }
public RemoteSenderActor(ActorTag aTag) : base() { fRemoteTag = aTag; fSerializeService = ActorServer.GetInstance().SerializeService; Become(new Behavior <object>(DoRouting)); }
public APlayer(GraphicsDeviceManager graphics, ActorTag actorType, PlayerIndex controllerIndex, Vector2 startingPosition) : base(graphics, actorType) { //Set Starting Position Position = startingPosition; ControllerIndex = controllerIndex; ActorTag = actorType; }
public ParserActor() : base() { var collect = new Behavior <IActor, string>((a, s) => { fList.Add(s); Console.WriteLine("parsed {0}", s); } ); var connect = new Behavior <ActorTag>(t => fParserServer = t); var parse = new Behavior <IEnumerable <string> >(t => { IActor aServer = null; if (fParserServer == null) { aServer = new ParserServer(); fParserServer = aServer.Tag; } else { aServer = new ConnectActor(this, fParserServer.Host, "ParserServer"); } foreach (string s in t) { aServer.SendMessage(this, s); } } ); Become(collect); AddBehavior(connect); AddBehavior(parse); }
public void DataContractObjectTestWithData() { string someData = "someData"; ActorTag tag = new ActorTag(); var dco = new DataContractObject(someData, tag); Assert.AreEqual(someData, dco.Data); Assert.AreEqual(tag, dco.Tag); }
public object GetDeserializedObject(object obj, Type targetType) { IActor act = (IActor)obj; HostDirectoryActor.Register(act); // continue ActorTag remoteTag = act.Tag; return(act); }
public object GetDeserializedObject(object obj, Type targetType) { if (obj is IActor act) { HostDirectoryActor.Register(act); ActorTag remoteTag = act.Tag; // dont touch this return(act); } return(obj); }
public bool Recycle(View view, ActorTag tag) { if (!_viewPrefabPools.TryGetValue(tag, out var pool)) { Destroy(view.gameObject); return(false); } pool.Recycle(view); return(true); }
protected override void Execute(List <GameEntity> entities) { _entities?.Clear(); _currentTag = ActorTag.None; entities.Sort(Compare); foreach (var gameEntity in entities) { var findTargetComp = gameEntity.findTargetCmdComp; if (_entities == null || _currentTag != findTargetComp.TargetTag) { _entities = GameManager.GetEntities( findTargetComp.TargetTag, ref _entities); _currentTag = findTargetComp.TargetTag; } var targetId = -1; if (findTargetComp.FindTargetType == FindTargetType.Closet) { var selfPos = gameEntity.posComp.Value; var closeDis = float.MaxValue; foreach (var entity in _entities) { if (!entity.IsValid() || !entity.hasPosComp) { continue; } var dis = (entity.posComp.Value - selfPos).sqrMagnitude; if (closeDis > dis) { closeDis = dis; targetId = entity.idComp.Value; } } } if (targetId != -1) { gameEntity.RemoveFindTargetCmdComp(); gameEntity.AddTargetComp( targetId, findTargetComp.TargetTag, findTargetComp.FindTargetType, findTargetComp.LostTargetActionType); } } }
public void WorkerActorTest() { TestLauncherActor.Test( () => { EnumerableActor <string> memLogger = new EnumerableActor <string>(); IActor worker = new WorkerActorTestString(memLogger); IActor dummyBroker = new BaseActor(); ActorTag tag = new ActorTag(); worker.SendMessage(dummyBroker, tag, "Worker on stage"); Task.Delay(1000).Wait(); Assert.AreEqual(1, memLogger.Count); Assert.AreEqual("Worker on stage", memLogger.First()); }); }
public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) { if (info == null) { throw new ArgumentNullException("info", "SerializationInfo was null"); } IActor act = (IActor)obj; HostDirectoryActor.Register(act); // continue info.SetType(typeof(RemoteSenderActor)); ActorTag remoteTag = act.Tag; info.AddValue("RemoteTag", remoteTag, typeof(ActorTag)); }
public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { // Reset the property value using the GetValue method. // force misc init if (obj is RemoteSenderActor remoteActor) { if (info == null) { throw new ActorException("Receiving null SerializationInfo"); } BaseActor.CompleteInitialize(remoteActor); RemoteSenderActor.CompleteInitialize(remoteActor); ActorTag getTag = (ActorTag)info.GetValue("RemoteTag", typeof(ActorTag)); typeof(RemoteSenderActor).GetField("fRemoteTag").SetValue(obj, getTag); } return(null); // ms bug here }
private void Found(Dictionary <string, string> someServices) { if (someServices.TryGetValue(fServiceName, out string service)) { if (!string.IsNullOrEmpty(service)) { ActorTag tag = new ActorTag(service); Become(new Behavior <ActorTag>(DoConnect)); SendMessage(tag); } else // service with no end point { Become(new NullBehaviors()); } } else // not found { Become(new NullBehaviors()); } }
public T Spawn <T>(ActorTag actorTag) where T : class, IView { return(Spawn(actorTag) as T); }
public static APlayer GetPlayer(ActorTag actorTag) { return((APlayer)Actors.Find(x => x.ActorTag == actorTag)); }
public void Serialize(object data, ActorTag tag, Stream stream) { SerialObject so = new SerialObject(data, tag); NetDataActorSerializer.Serialize(so, stream); }
public void Serialize(object data, ActorTag tag, Stream stream) { DataContractObject dco = new DataContractObject(data, tag); DataContractActorSerializer.Serialize(dco, stream); }
public SerialObject(object someData, ActorTag aTag) { Data = someData; Tag = aTag; }
private void DoConnect(ActorTag tag) { IActor remoteSend = new RemoteSenderActor(tag); fSender.SendMessage(fServiceName, tag, remoteSend); }
public DataContractObject(object someData, ActorTag aTag) { Data = someData; Tag = aTag; }
public Actor(GraphicsDeviceManager graphics, ActorTag actorTag) { _graphics = graphics; ActorTag = actorTag; ActorManager.RegisterActor(this); }
public ABall(GraphicsDeviceManager graphics, ActorTag actorType) : base(graphics, actorType) { //Set Starting Position _startingPosition = new Vector2(_graphics.PreferredBackBufferWidth / 2, _graphics.PreferredBackBufferHeight / 2); Reset(); }