public override void ReceiveMessage(IGameMessage msg) { switch (msg.EventId) { case (int)MessageId.ItemAction: { var itemMsg = msg.AsItemAction(); var item = itemMsg.GetItem(); item.Id.OnAction(Parent, itemMsg.Container, itemMsg.ItemIndexInContainer, itemMsg.Interface, item, (int)itemMsg.ItemActionType); break; } case (int)MessageId.ItemOnItemAction: { var itemMsg = msg.AsItemOnItemAction(); itemMsg.GetItemA().Id.UseWith(Parent, itemMsg.GetItemB()); break; } } }