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 static void AttachZetDropHandler(ItemIcon icon) { if (icon.GetComponent <ZetDropHandler>() != null) { return; } var dropItemHandler = icon.transform.gameObject.AddComponent <ZetDropHandler>(); dropItemHandler.GetItemIndex = () => icon.GetFieldValue <ItemIndex>("itemIndex"); dropItemHandler.GetInventory = () => icon.rectTransform.parent.GetComponent <ItemInventoryDisplay>().GetFieldValue <Inventory>("inventory"); }
public void TestReflectionGetAndSetFieldValueType() { var itemIcon = new ItemIcon(); itemIcon.SetFieldValue("itemIndex", ItemIndex.AlienHead); var iIndex = typeof(ItemIcon).GetField("itemIndex"); var refIndex = (ItemIndex)iIndex.GetValue(itemIcon); var index = itemIcon.GetFieldValue <ItemIndex>("itemIndex"); Assert.Equal(refIndex, index); Assert.Equal(ItemIndex.AlienHead, index); }