public virtual void OnClickRight()
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
ShowItemContextMenu(this.item.uuid, this.item.itemTypes, prefabContextMenu, itemTransform);
public virtual void ShowItemContextMenu(int uuid, int itemTypes, GameObject prefabContextMenu, RectTransform itemTransform)
if (this.itemContextMenu == null && InventoryManager.Instance.itemContextMenu == null)
this.itemContextMenu = Instantiate(prefabContextMenu, itemTransform);
this.itemContextMenu.transform.localScale = Vector3.one;
ItemContextMenuUI itemContextMenuUI = this.itemContextMenu.GetComponent<ItemContextMenuUI>();
AddButtonListeners(itemContextMenuUI, uuid, itemTypes);
SetButtonVisibility(uuid, itemContextMenuUI);
InventoryManager.Instance.itemContextMenu = this.itemContextMenu;
else if (this.itemContextMenu == null && InventoryManager.Instance.itemContextMenu != null)
this.itemContextMenu = Instantiate(prefabContextMenu, itemTransform);
this.itemContextMenu.transform.localScale = Vector3.one;
ItemContextMenuUI itemContextMenuUI = this.itemContextMenu.GetComponent<ItemContextMenuUI>();
AddButtonListeners(itemContextMenuUI, uuid, itemTypes);
SetButtonVisibility(uuid, itemContextMenuUI);
InventoryManager.Instance.itemContextMenu = this.itemContextMenu;
this.itemContextMenu.SetActive(true);
ItemContextMenuUI itemContextMenuUI = this.itemContextMenu.GetComponent<ItemContextMenuUI>();
SetButtonVisibility(uuid, itemContextMenuUI);
InventoryManager.Instance.itemContextMenu = this.itemContextMenu;
public virtual void HideItemContextMenu()
InventoryManager.Instance.itemContextMenu.SetActive(false);
InventoryManager.Instance.itemContextMenu = null;
public virtual void AddButtonListeners (ItemContextMenuUI itemContextMenuUI, int uuid, int itemTypes)
Button btnEquip = itemContextMenuUI.buttonEquip.GetComponent<Button>();
Button btnUnequip = itemContextMenuUI.buttonUnequip.GetComponent<Button>();
Button btnConsume = itemContextMenuUI.buttonConsume.GetComponent<Button>();
Button btnDrop = itemContextMenuUI.buttonDrop.GetComponent<Button>();
btnEquip.onClick.AddListener(() => itemEquip(uuid, itemTypes));
btnUnequip.onClick.AddListener(() => itemUnequip(uuid));
btnConsume.onClick.AddListener(() => itemConsume(uuid));
btnDrop.onClick.AddListener(() => itemDrop(uuid, itemTypes));
public virtual void SetButtonVisibility(int uuid, ItemContextMenuUI itemContextMenuUI)
Item item = InventoryManager.Instance.itemsCatalogue[uuid];
Item itemEquipped = null;
itemEquipped = InventoryManager.Instance.GetEquip(HookPlayer.Instance.gameObject, Convert.ToInt32(Math.Log(item.itemTypes, 2)));
GameObject buttonEquip = itemContextMenuUI.buttonEquip;
GameObject buttonUnequip = itemContextMenuUI.buttonUnequip;
GameObject buttonConsume = itemContextMenuUI.buttonConsume;
GameObject buttonDrop = itemContextMenuUI.buttonDrop;
if (item.equipable && itemEquipped == null)
buttonEquip.SetActive(true);
buttonUnequip.SetActive(false);
buttonDrop.SetActive(true);
else if (item.equipable && itemEquipped.uuid != item.uuid)
buttonEquip.SetActive(true);
buttonUnequip.SetActive(false);
buttonDrop.SetActive(true);
else if (item.equipable && itemEquipped.uuid == item.uuid)
buttonEquip.SetActive(false);
buttonUnequip.SetActive(true);
buttonDrop.SetActive(false);
buttonEquip.SetActive(false);
buttonUnequip.SetActive(false);
buttonConsume.SetActive(true);
buttonConsume.SetActive(false);
public virtual void itemEquip(int uuid, int itemTypes)
InventoryManager.Instance.Equip(HookPlayer.Instance.gameObject, uuid, Convert.ToInt32(Math.Log(itemTypes, 2)));
public virtual void itemUnequip(int uuid)
InventoryManager.Instance.Unequip(HookPlayer.Instance.gameObject, uuid);
public virtual void itemConsume(int uuid)
InventoryManager.Instance.ConsumeItem(uuid, HookPlayer.Instance.gameObject);
public virtual void itemDrop(int uuid, int itemTypes)
Vector3 position = HookPlayer.Instance.transform.TransformPoint(Vector3.forward * 1f);
Instantiate(this.item.prefab, position, Quaternion.identity);
InventoryManager.Instance.SubstractItemFromInventory(this.item.uuid, 1);