private void Process(Client client, ClientContainerAddItem msg) { var container = state.history.container.GetOrAddNew(msg.ownerGuid); container.items[msg.itemGuid] = msg; SendToAll(client.peer, msg); }
public static void AddItem(Pickupable pickupable, GameObject owner) { if (Multiplayer.main.blocked) { return; } var res = new ClientContainerAddItem(); res.ownerGuid = GuidHelper.Get(owner); res.itemGuid = GuidHelper.Get(pickupable.gameObject); res.tech = pickupable.GetTechType(); res.position = owner.transform.position; GuidHelper.GetChildGuids(pickupable.gameObject); res.data = ObjectSerializer.GetBytes(pickupable.gameObject, true); if (res.data == null) { return; } Multiplayer.main.Send(res); }
private void Process(ClientContainerAddItem msg) { var owner = GuidHelper.Find(msg.ownerGuid); var container = Helpers.GetItemsContainer(owner); if (container == null) { FindRemoteInventory(msg.ownerGuid)?.Add(msg.itemGuid, msg.data); return; } using (new MessageBlocker()) { var item = ObjectSerializer.GetGameObject(msg.data); GuidHelper.Set(item, msg.itemGuid); var pickupable = item.GetComponent <Pickupable>(); if (pickupable == null) { return; } container.AddItem(pickupable); } }