public IncomingEntityMessage(int uid, EntityMessage messageType, object message, NetConnection sender) { Uid = uid; MessageType = messageType; Message = message; LastProcessingAttempt = DateTime.Now; ReceivedTime = DateTime.Now; Expires = 30; Sender = sender; }
protected override void OnEntityMessage(EntityMessage <TEntity> msg) { if (EnableEntityChangedSynchronization && msg.MessageType == EntityMessageType.Changed) { if (Equals(Repository.GetPrimaryKey(msg.Entity), PrimaryKey)) { Reload(); } } base.OnEntityMessage(msg); }
private void OnEntityMessageReceived(ulong sender, EntityMessage entityMessage) { var wrapper = entityMessage.Wrapper; if (_entityMessageHandler.ContainsKey(wrapper.EntityId)) { var handlers = _entityMessageHandler[wrapper.EntityId]; foreach (var handler in handlers) { var message = handler.Deserialize(wrapper); handler.Invoke(wrapper.Sender, message); } } }
private bool TryAddEntityToSeeables(IEntityHandle handle) { if (handle.IsDead() || handle.IsQueuedForDeath()) { return(false); } if (!_seeableEntities.Add(handle)) { return(false); } Parent.SendMessage(EntityMessage.EnteredViewRange(handle)); return(true); }
public object OnMessage(EntityMessage cmd, object param = null) { // if (m_MessageDelegate.ContainsKey(cmd)) // { // return m_MessageDelegate[cmd].Invoke(param); // } //modify by dianyu 此处key 是枚举 有待优化 MessageDelegate md = null; int key = (int)cmd; if (m_MessageDelegate.TryGetValue(key, out md)) { return(md.Invoke(param)); } return(null); }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { team = Team.Ally; end = Factory.GetFactoryByID(message.arg3); turns = message.arg4; endTime = Game.gameTime + turns; } else { team = Team.Enemy; } start = Factory.GetFactoryByID(message.arg2); }
private byte[] Encode(ref EntityMessage message) { ushort msgtype = 2; if (message.id == 0) { message.id = GetNextID(); } byte[] ver = BitConverter.GetBytes(MOD_VER); byte[] type = BitConverter.GetBytes(msgtype); byte[] modid = BitConverter.GetBytes(m_modId); byte[] mid = BitConverter.GetBytes(message.id); byte[] ttl = BitConverter.GetBytes(message.ttl); byte[] orient = new byte[1] { (byte)message.t_orientation }; byte[] entity = BitConverter.GetBytes(message.entityid); byte[] mx = BitConverter.GetBytes(message.max.X); byte[] my = BitConverter.GetBytes(message.max.Y); byte[] rel = Encode(message.rel); byte[] up = Encode(message.up); byte[] forward = Encode(message.forward); byte[] scale = BitConverter.GetBytes(message.scale); byte[] encode = Encoding.UTF8.GetBytes(message.message); byte[] msg = new byte[ver.Length + type.Length + modid.Length + mid.Length + ttl.Length + entity.Length + rel.Length + up.Length + forward.Length + scale.Length + encode.Length + 1 + mx.Length + my.Length]; int lth = 0; Copy(ref msg, ref ver, ref lth); Copy(ref msg, ref type, ref lth); Copy(ref msg, ref modid, ref lth); Copy(ref msg, ref mid, ref lth); Copy(ref msg, ref ttl, ref lth); Copy(ref msg, ref entity, ref lth); Copy(ref msg, ref orient, ref lth); Copy(ref msg, ref mx, ref lth); Copy(ref msg, ref my, ref lth); Copy(ref msg, ref rel, ref lth); Copy(ref msg, ref up, ref lth); Copy(ref msg, ref forward, ref lth); Copy(ref msg, ref scale, ref lth); Copy(ref msg, ref encode, ref lth); return(msg); }
private void OnNewFollowPlayer(EntityMessage data) { var ent = data.AsNewPlayerFollowTarget().Entity; if (ent.IsDead()) { return; } var player = ent.Get().GetPlayer(); if (player == null) { return; } SetInteractingEntity(new PlayerInteractingEntity(player)); }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { team = Team.Ally; } else if (message.arg1 == -1) { team = Team.Enemy; } else { team = Team.Neutral; } numRobots = message.arg2; production = message.arg3; }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { SetTeam(Team.Ally); } else { SetTeam(Team.Enemy); } start = Factory.GetFactoryByID(message.arg2); end = Factory.GetFactoryByID(message.arg3); count = message.arg4; turns = message.arg5; end.incoming.Add(id, this); }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { SetTeam(Team.Ally); } else if (message.arg1 == -1) { SetTeam(Team.Enemy); } else { SetTeam(Team.Neutral); } count = message.arg2; production = message.arg3; }
/// <summary> /// 建立消息 /// </summary> /// <param name="messageID"></param> /// <returns></returns> public override Message Create(int messageID) { if (!Enum.IsDefined(typeof(RemotingMessageType), messageID)) return null; RemotingMessageType rmt = (RemotingMessageType)messageID; RemotingMessage message = null; switch (rmt) { case RemotingMessageType.Method: message = new MethodMessage(); break; case RemotingMessageType.Entity: message = new EntityMessage(); break; default: break; } return message; }
static void Main(string[] args) { string[] inputs; int factoryCount = int.Parse(Console.ReadLine()); // the number of factories int linkCount = int.Parse(Console.ReadLine()); // the number of links between factories for (int i = 0; i < linkCount; i++) { inputs = Console.ReadLine().Split(' '); int factory1 = int.Parse(inputs[0]); int factory2 = int.Parse(inputs[1]); int distance = int.Parse(inputs[2]); Factory.AddLink(factory1, factory2, distance); } // game loop while (true) { int entityCount = int.Parse(Console.ReadLine()); // the number of entities (e.g. factories and troops) for (int i = 0; i < entityCount; i++) { inputs = Console.ReadLine().Split(' '); int entityId = int.Parse(inputs[0]); string entityType = inputs[1]; int arg1 = int.Parse(inputs[2]); int arg2 = int.Parse(inputs[3]); int arg3 = int.Parse(inputs[4]); int arg4 = int.Parse(inputs[5]); int arg5 = int.Parse(inputs[6]); EntityMessage message = new EntityMessage(entityId, entityType, arg1, arg2, arg3, arg4, arg5); message.ProcessMessage(); } // Write an action using Console.WriteLine() // To debug: Console.Error.WriteLine("Debug messages..."); // Any valid action, such as "WAIT" or "MOVE source destination cyborgs" Console.WriteLine("WAIT"); } }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { isAlly = true; isEnemy = false; team = Team.Ally; start = Factory.GetFactoryByID(message.arg2); end = Factory.GetFactoryByID(message.arg3); turns = message.arg4; endTime = Game.gameTime + turns; end.incoming.Add(id, this); } else { isAlly = false; isEnemy = true; turns = 0; endTime = Game.gameTime; team = Team.Enemy; enemyBombs.Add(id, this); start = Factory.GetFactoryByID(message.arg2); if (Game.gameTime == 1) { end = Factory.ally.First(); turns = end.links[start]; endTime = Game.gameTime + turns; oldBombs.Add(this); } } start = Factory.GetFactoryByID(message.arg2); }
static void Main(string[] args) { string[] inputs; int factoryCount = int.Parse(Console.ReadLine()); // the number of factories int linkCount = int.Parse(Console.ReadLine()); // the number of links between factories for (int i = 0; i < linkCount; i++) { inputs = Console.ReadLine().Split(' '); int factory1 = int.Parse(inputs[0]); int factory2 = int.Parse(inputs[1]); int distance = int.Parse(inputs[2]); Factory.AddLink(factory1, factory2, distance); } // game loop while (true) { int entityCount = int.Parse(Console.ReadLine()); // the number of entities (e.g. factories and troops) for (int i = 0; i < entityCount; i++) { inputs = Console.ReadLine().Split(' '); int entityId = int.Parse(inputs[0]); string entityType = inputs[1]; int arg1 = int.Parse(inputs[2]); int arg2 = int.Parse(inputs[3]); int arg3 = int.Parse(inputs[4]); int arg4 = int.Parse(inputs[5]); int arg5 = int.Parse(inputs[6]); EntityMessage message = new EntityMessage(entityId, entityType, arg1, arg2, arg3, arg4, arg5); message.ProcessMessage(); } Game.MakeMove(); Action.PrintActions(); //Print the move Game.CleanUp(); } }
public void LogIncomingComponentNetMessage(int uid, EntityMessage entityMessage, ComponentFamily componentFamily, object[] parameters) { if (!_logging) return; for (int i = 0; i < parameters.Length; i++) { if (parameters[i] is Enum) parameters[i] = (int) parameters[i]; } try { _loggerServiceClient.LogClientIncomingNetMessage(uid, (int) entityMessage, (int) componentFamily, parameters); } catch (CommunicationException e) { } }
// 消息处理 public object SendMessage(EntityMessage cmd, object param = null) { if (cmd == EntityMessage.EntityCommand_StopMove) { // Debug.LogError("send stopmove"); } Dictionary <int, IEntityCommpent> .Enumerator iter = m_Commpents.GetEnumerator(); object ret = null; while (iter.MoveNext()) { ret = iter.Current.Value.OnMessage(cmd, param); if (ret != null) { return(ret); } } return(null); }
public void ProcessMessage(EntityMessage message) { count = message.arg2; production = message.arg3; if (message.arg1 == 1) { SetTeam(Team.Ally); Factory.allyTotalProduction += production; } else if (message.arg1 == -1) { SetTeam(Team.Enemy); Factory.enemyTotalProduction += production; } else { SetTeam(Team.Neutral); } }
static void Main(string[] args) { string[] inputs; int factoryCount = int.Parse(Console.ReadLine()); // the number of factories int linkCount = int.Parse(Console.ReadLine()); // the number of links between factories for (int i = 0; i < linkCount; i++) { inputs = Console.ReadLine().Split(' '); int factory1 = int.Parse(inputs[0]); int factory2 = int.Parse(inputs[1]); int distance = int.Parse(inputs[2]); Factory.AddLink(factory1, factory2, distance); } Game.InitializeFirstTurn(); // game loop while (true) { float loopStartTime = Timer.TickCount; int entityCount = int.Parse(Console.ReadLine()); // the number of entities (e.g. factories and troops) for (int i = 0; i < entityCount; i++) { var str = Console.ReadLine(); EntityMessage message = new EntityMessage(str); message.ProcessMessage(); } Game.InitializeTurn(); Game.MakeMove(); Game.PrintActions(); //Print the move Game.CleanUp(); float loopTime = Timer.TickCount - loopStartTime; Console.Error.WriteLine("LoopTime: " + loopTime); } }
public override async Task <IResult <EntityMessage <int> > > Handle(Request request, CancellationToken cancellationToken = default) { var byId = new RecipesByIdWithCategoriesSpecification(request.Id); var maybeRecipe = await _data.Recipes.Get(byId, cancellationToken); if (maybeRecipe.HasValue) { return(await maybeRecipe.Value .Tee(r => Transfer(request, r)) .TeeAsync(r => _data.Recipes.Update(r, cancellationToken)) .TeeAsync(r => ManageCategories(request, r, cancellationToken)) .MapAsync(r => Ok(EntityMessage.Create("Recipe updated.", r.Id)))); } return(await new Recipe() .Tee(r => Transfer(request, r)) .TeeAsync(r => _data.Recipes.Add(r, cancellationToken)) .TeeAsync(r => ManageCategories(request, r, cancellationToken)) .MapAsync(r => Ok(EntityMessage.Create("Recipe added.", r.Id)))); }
public void ProcessMessage(EntityMessage message) { if (message.arg1 == 1) { SetTeam(Team.Ally); } else { SetTeam(Team.Enemy); } start = Factory.GetFactoryByID(message.arg2); end = Factory.GetFactoryByID(message.arg3); count = message.arg4; turns = message.arg5; endTime = Game.gameTime + turns; end.incoming.Add(this); lastEndTime = Math.Max(lastEndTime, endTime); //get the last troop endTime; }
private void OnMessage(EntityMessage <TEntity> message) { if (!Repository.HasPrimaryKey(message.Entity)) { return; } var key = GetPrimaryKey(message.Entity); switch (message.MessageType) { case EntityMessageType.Added: OnEntityAdded(key); break; case EntityMessageType.Changed: OnEntityChanged(key); break; case EntityMessageType.Deleted: OnEntityDeleted(key); break; } }
public void LogIncomingComponentNetMessage(int uid, EntityMessage entityMessage, ComponentFamily componentFamily, object[] parameters) { if (!_logging) { return; } for (int i = 0; i < parameters.Length; i++) { if (parameters[i] is Enum) { parameters[i] = (int)parameters[i]; } } try { _loggerServiceClient.LogClientIncomingNetMessage(uid, (int)entityMessage, (int)componentFamily, parameters); } catch (CommunicationException e) { } }
private void NotifyNearbyEntitiesOfDeath() { AddMarkedForDeathComponent(); Parent.AssertGetVision().Broadcast(EntityMessage.NearbyEntityQueuedForDeath(Parent.Handle)); }
public void SendMessage(EntityMessage message) { SendMessage(message.Message.Value, (object)null, message.Scope); }
private byte[] Encode(ref EntityMessage message) { ushort msgtype = 2; if (message.id == 0) { message.id = GetNextID(); } byte[] ver = BitConverter.GetBytes(MOD_VER); byte[] type = BitConverter.GetBytes(msgtype); byte[] modid = BitConverter.GetBytes(m_modId); byte[] mid = BitConverter.GetBytes(message.id); byte[] ttl = BitConverter.GetBytes(message.ttl); byte[] orient = new byte[1] { (byte)message.t_orientation }; byte[] entity = BitConverter.GetBytes(message.entityid); byte[] mx = BitConverter.GetBytes(message.max.X); byte[] my = BitConverter.GetBytes(message.max.Y); byte[] rel = Encode(message.rel); byte[] up = Encode(message.up); byte[] forward = Encode(message.forward); byte[] scale = BitConverter.GetBytes(message.scale); byte[] encode = Encoding.UTF8.GetBytes(message.message); byte[] msg = new byte[ver.Length + type.Length + modid.Length + mid.Length + ttl.Length + entity.Length + rel.Length + up.Length + forward.Length + scale.Length + encode.Length + 1 + mx.Length + my.Length]; int lth = 0; Copy(ref msg, ref ver, ref lth); Copy(ref msg, ref type, ref lth); Copy(ref msg, ref modid, ref lth); Copy(ref msg, ref mid, ref lth); Copy(ref msg, ref ttl, ref lth); Copy(ref msg, ref entity, ref lth); Copy(ref msg, ref orient, ref lth); Copy(ref msg, ref mx, ref lth); Copy(ref msg, ref my, ref lth); Copy(ref msg, ref rel, ref lth); Copy(ref msg, ref up, ref lth); Copy(ref msg, ref forward, ref lth); Copy(ref msg, ref scale, ref lth); Copy(ref msg, ref encode, ref lth); return msg; }
void ProcessEntity(EntityMessage message, Stream stream) { BinaryWriter writer = new BinaryWriter(stream); String str = String.Format("你要请求的实体是:[{0}]{1}", message.EntityType, message.Entity); writer.Write(str); }
private void CatchNearbyEntityDying(EntityMessage msg) { TryDeleteEntityFromSeeables(msg.Entity); }
/// <summary> /// Sends an Entity Attached Message to others. Entity Messages will stick to the assigned entity. /// </summary> /// <param name="message">EntityMessage being sent or resent</param> /// <returns>EntityMessage with Populated ID</returns> public EntityMessage SendToOthers(EntityMessage message) { var msg = Encode(ref message); MyAPIGateway.Multiplayer.SendMessageToOthers(HUDAPI_ADVMSG, msg, true); return message; }
/// <summary> /// Sends an arbitrary entity network message /// </summary> /// <param name="sendingEntity">The entity the message is going from(and to, on the other end)</param> /// <param name="type">Message type</param> /// <param name="list">List of parameter objects</param> public void SendEntityNetworkMessage(IEntity sendingEntity, EntityMessage type, params object[] list) { }
public void SendMessage <TArg>(EntityMessage message, TArg argument) { SendMessage(message.Message.Value, argument, message.Scope); }
/// <summary> /// Sends an arbitrary entity network message /// </summary> /// <param name="sendingEntity">The entity the message is going from(and to, on the other end)</param> /// <param name="type">Message type</param> /// <param name="list">List of parameter objects</param> public void SendEntityNetworkMessage(Entity sendingEntity, EntityMessage type, params object[] list) { NetOutgoingMessage message = CreateEntityMessage(); message.Write((byte)type); message.Write(sendingEntity.Uid); //Write this entity's UID PackParams(message, list); _networkManager.SendMessage(message, NetDeliveryMethod.ReliableUnordered); }
/// <summary> /// Sends an arbitrary entity network message /// </summary> /// <param name="sendingEntity">The entity the message is going from(and to, on the other end)</param> /// <param name="type">Message type</param> /// <param name="list">List of parameter objects</param> public void SendEntityNetworkMessage(Entity sendingEntity, EntityMessage type, params object[] list) { }
private void ProductChange(EntityMessage<Product> message) { var changedProduct = message.Entity; if (changedProduct == null) { return; } var productList = Products.Value; var currentEntity = productList .SingleOrDefault(product => product.Id == changedProduct.Id); switch (message.EntityChange) { case EntityChangeEnum.Insert: productList.Add(message.Entity); break; case EntityChangeEnum.Update: if (currentEntity == null) { break; } productList[productList.IndexOf(currentEntity)] = changedProduct; break; case EntityChangeEnum.Delete: if (currentEntity == null) { break; } productList.Remove(currentEntity); break; } }
private void SelectEMsgType_SelectionChanged(object sender, SelectionChangedEventArgs e) { _entityMessageFilter = (EntityMessage)SelectEMsgType.SelectedItem; UpdateItemsView(); }
protected void RegisterMessageDelegate(EntityMessage msg, MessageDelegate msgProc) { int key = (int)msg; m_MessageDelegate[key] = msgProc; }
private static DkimMessage ToDkimMessage(EntityMessage entityMessage) { return(new DkimMessage(entityMessage.MessageType, entityMessage.Text, entityMessage.MarkDown)); }