public void RegisterUseMessage(EntityUseMessage useMessage, IToolImpact localImpact) { _syncItems.Add(new SyncItem { Added = DateTime.Now, UseMessage = useMessage, ToolImpact = localImpact }); }
protected void OnMessageEntityUse(EntityUseMessage ea) { if (MessageEntityUse != null) { MessageEntityUse(this, new ProtocolMessageEventArgs <EntityUseMessage> { Message = ea }); } }
//OUT Going Server Data concering current player ================================================================= //These are player event subscribing private void PlayerEntityUse(object sender, EntityUseEventArgs e) { var useMessage = new EntityUseMessage(e) { Token = ++_useToken }; _syncManager.RegisterUseMessage(useMessage, e.Impact); _server.ServerConnection.Send(useMessage); }
protected void OnMessageEntityUse(EntityUseMessage ea) { var handler = MessageEntityUse; if (handler != null) { handler(this, new ProtocolMessageEventArgs <EntityUseMessage> { Message = ea }); } }
private void HandleEntityUseMessage(EntityUseMessage entityUseMessage) { var playerCharacter = PlayerCharacter; var toolImpact = playerCharacter.ReplayUse(entityUseMessage); CurrentArea.UseFeedback(new UseFeedbackMessage { Token = entityUseMessage.Token, Impact = toolImpact, OwnerDynamicId = playerCharacter.DynamicId }); }
public override void Use(EntityUseMessage entityUseMessage) { if (entityUseMessage.DynamicEntityId != PlayerCharacter.DynamicId) { return; } base.Use(entityUseMessage); try { _dontSendInventoryEvents = true; HandleEntityUseMessage(entityUseMessage); } finally { _dontSendInventoryEvents = false; } }
public IToolImpact ReplayUse(EntityUseMessage msg) { EntityState = msg.State; switch (msg.UseType) { case UseType.Use: if (msg.ToolId != 0) { var tool = FindItemById(msg.ToolId) as ITool; if (tool == null) { return new ToolImpact { Message = "This item is not the tool" } } ; return(ToolUse(tool)); } return(ToolUse(HandTool)); case UseType.Put: return(PutUse()); case UseType.Craft: return(CraftUse(msg.RecipeIndex)); case UseType.Command: return(new ToolImpact()); default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// Perform using (tool or toolless use) /// </summary> /// <param name="entityUseMessage"></param> public virtual void Use(EntityUseMessage entityUseMessage) { // update entity state DynamicEntity.EntityState = entityUseMessage.State; }