private void GenericPickupController_AttemptGrant(On.RoR2.GenericPickupController.orig_AttemptGrant orig, RoR2.GenericPickupController self, RoR2.CharacterBody body) { if (PickupCatalog.GetPickupDef(self.pickupIndex).equipmentIndex != EquipmentIndex.None) { orig(self, body); return; } InventoryLimits limits = null; limits = body.master.gameObject.GetComponent <InventoryLimits>(); if (limits != null && PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex != ItemIndex.None) { if (limits.Limited) { /* * Chat.AddMessage($"<color=#FFFF00>Inventory full: {limits.amount}/{limits.limit}. Gain experience to gain free space.</color>"); */ return; } } orig(self, body); if (limits != null && PickupCatalog.GetPickupDef(self.pickupIndex).itemIndex != ItemIndex.None) { if (NetworkServer.active) { DropperChat.ItemCountMessage(body.GetUserName(), limits.amount, limits.limit); } } }
public void OnPointerClick(PointerEventData eventData) { if (master != null && master.playerCharacterMasterController != null) { ItemIcon itemIcon = GetComponent <ItemIcon>(); ItemIndex itemIndex = itemIcon.GetFieldValue <ItemIndex>("itemIndex"); if (ItemCatalog.GetItemDef(itemIndex).tier == ItemTier.NoTier) { Debug.LogWarning("Trash cannot be dropped :D"); return; } if (NetworkServer.active) { ServerStuffDropper.DropItem(master, itemIndex); InventoryLimits limits = master.GetComponent <InventoryLimits>(); if (!limits) { return; } limits.Count(master.inventory); } else { if (ClientScene.readyConnection == null) { Debug.LogError("Connection is not ready."); } ClientScene.readyConnection.Send(ConversionArtifactMod.msgItemDropType, new ItemDropMessage(itemIndex)); } } }
private void PlayerCharacterMasterController_OnBodyStart(On.RoR2.PlayerCharacterMasterController.orig_OnBodyStart orig, PlayerCharacterMasterController self) { if (NetworkClient.active) { ConversionArtifactMod.master = self.master; //self.networkUser.connectionToServer.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler); //self.connectionToServer.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler); //ClientScene.readyConnection.RegisterHandler(msgDropCallbackType, msgDropCallbackHandler); } var master = self.master; if (master != null && master.GetComponent <InventoryLimits>() == null && master.GetComponent <DropperApplier>() == null) { InventoryLimits limits = master.gameObject.AddComponent <InventoryLimits>(); limits.limit = (int)TeamManager.instance.GetTeamLevel(self.master.teamIndex); limits.Count(master.inventory); DropperApplier dropperApplier = master.gameObject.AddComponent <DropperApplier>(); dropperApplier.inventory = master.inventory; dropperApplier.master = master; } orig(self); }