2022-10-19 13:51:46 +00:00
using System.Collections ;
using System.Collections.Generic ;
using UnityEngine ;
using UnityEngine.UI ;
using UnityEngine.EventSystems ;
using static SimpleInventorySystem . GridUI ;
using System ;
namespace SimpleInventorySystem
{
[RequireComponent(typeof(RectTransform), typeof(CanvasGroup))]
2022-10-29 19:56:00 +00:00
public class ItemUI : MonoBehaviour , IPointerEnterHandler , IPointerExitHandler
2022-10-19 13:51:46 +00:00
{
2022-12-23 03:50:16 +00:00
[Header("Item Attributes")]
2022-12-11 03:03:30 +00:00
public string itemName ;
2022-11-15 22:58:54 +00:00
public Image image ;
2022-12-23 03:50:16 +00:00
public RarityType rarity ;
public ItemTags ItemTag = ItemTags . Any ;
public int StackLimit = 1 ;
public int width ;
public int height ;
[Header("Container Prefab")]
public GameObject containerUIPrefab ;
[Header("Required Component Links")]
2022-12-11 03:03:30 +00:00
public Image backdropImage ;
2022-12-23 03:50:16 +00:00
public RectTransform emptyGridContainer ;
// Hidden public variables
[HideInInspector] public bool interactable = true ;
[HideInInspector] public Canvas overrideSortingCanvas ;
[HideInInspector] public bool Equipped ;
[HideInInspector] public List < ItemUI > ContainedItems = new List < ItemUI > ( ) ;
[HideInInspector] public ItemUI ParentContainer ;
[HideInInspector] public GameObject container ;
2022-11-17 13:19:28 +00:00
[HideInInspector] public Canvas canvas ;
2022-12-23 03:50:16 +00:00
[HideInInspector] public bool PickedUpOnFrame ;
[HideInInspector] public List < GameObject > ContextWindows = new List < GameObject > ( ) ;
[HideInInspector] public bool IsLinkedSlotClone ;
[HideInInspector] public LimitStackSlotCapacity limitStackSlotCapacity ;
[HideInInspector] public PickUp pickUp ;
[HideInInspector] public TargetAttachment targetAttachment ;
// private variables
private Vector2 oldImageSizeDelta ;
private Vector2 oldSizeDelta ;
private RectTransform rectTransform ;
2022-10-19 13:51:46 +00:00
private CanvasGroup canvasGroup ;
private float scale = 1f ;
private SlotUI slot ;
private Cell [ ] cells ;
private bool isDragging ;
private Size imageSizeOnGrid ;
private Orientation imageOrientation = Orientation . Portrait ;
2022-12-23 03:50:16 +00:00
private RenderItemUIProperty renderProp ;
// archived variables
//public Item itemPrefab;
2022-11-15 22:58:54 +00:00
2022-12-23 03:50:16 +00:00
//public variables
public SlotUI previousSlot { get ; private set ; }
2022-10-29 19:56:00 +00:00
public bool Stackable
{
get { return StackLimit > 1 ; }
}
private int count ;
public int Count
{
get { return count ; }
set
{
if ( ! Stackable )
{
count = 1 ;
}
else
{
count = value ;
}
SetRenderItemUIPropertyValue ( ) ;
}
}
2022-11-06 02:28:29 +00:00
public bool PointerIsHoveredOver { get { return InventorySystem . IsMouseOverItemUITop ( this ) ; } }
2022-10-19 13:51:46 +00:00
//public Item item;
2022-12-11 03:03:30 +00:00
2022-10-19 13:51:46 +00:00
private void Awake ( )
{
rectTransform = GetComponent < RectTransform > ( ) ;
2022-11-15 22:58:54 +00:00
2022-12-11 03:03:30 +00:00
if ( image = = null )
2022-11-15 22:58:54 +00:00
{
Image [ ] images = transform . GetComponentsInChildren < Image > ( ) ;
for ( int i = 0 ; i < images . Length ; i + + )
{
if ( images [ i ] = = GetComponent < Image > ( ) )
{
continue ;
}
image = transform . GetComponentInChildren < Image > ( ) ;
break ;
}
}
if ( image = = null )
{
2022-12-11 03:03:30 +00:00
Debug . LogError ( "ItemUI: Item needs a child with an Image component." ) ;
2022-11-15 22:58:54 +00:00
}
2022-10-19 13:51:46 +00:00
canvasGroup = GetComponent < CanvasGroup > ( ) ;
2022-10-29 19:56:00 +00:00
renderProp = GetComponent < RenderItemUIProperty > ( ) ;
2022-11-06 02:28:29 +00:00
limitStackSlotCapacity = GetComponent < LimitStackSlotCapacity > ( ) ;
2022-10-19 13:51:46 +00:00
2022-10-29 19:56:00 +00:00
if ( width < = 0 | | height < = 0 )
2022-10-19 13:51:46 +00:00
{
2022-11-06 02:28:29 +00:00
Debug . LogError ( "Inventory ItemUI must contain a positive integer value for Width and Height: " + name ) ;
2022-10-19 13:51:46 +00:00
}
2022-11-15 22:58:54 +00:00
int eulerAngle = Mathf . Abs ( Mathf . CeilToInt ( transform . rotation . eulerAngles . z ) ) ;
2022-10-19 13:51:46 +00:00
switch ( eulerAngle )
{
case 270 :
imageOrientation = ( height > width ) ? Orientation . Portrait : Orientation . Landscape ;
break ;
case 180 :
imageOrientation = ( width > height ) ? Orientation . Landscape : Orientation . Portrait ;
break ;
case 90 :
imageOrientation = ( height > width ) ? Orientation . Portrait : Orientation . Landscape ;
break ;
default :
imageOrientation = ( width > height ) ? Orientation . Landscape : Orientation . Portrait ;
break ;
}
//InstantiateItem();
}
2022-12-11 03:03:30 +00:00
public Rarity GetRarity ( )
{
Debug . Log ( rarity ) ;
return InventorySystem . instance . GetRarityFromList ( rarity ) ;
}
2022-11-06 02:28:29 +00:00
/// <summary>
/// Returns an integer number if it has a container with a GridUI. the number returned is either -1 if no gridUI exists, or the capacity in terms of 1x1 cells.
/// </summary>
/// <returns></returns>
public int ContainerCapacity ( )
{
GridUI gridUI = null ;
if ( container ! = null & & container . TryGetComponent < GridUI > ( out gridUI ) )
{
return gridUI . gridSize . Width * gridUI . gridSize . Height ;
}
return - 1 ;
}
2022-10-29 19:56:00 +00:00
private void SetRenderItemUIPropertyValue ( )
{
if ( renderProp ! = null )
{
renderProp . value = Count . ToString ( ) ;
}
}
2022-10-19 13:51:46 +00:00
public void InstantiateItem ( )
{
//if (item == null && itemPrefab != null)
//{
// item = Instantiate(itemPrefab);
//}
}
2022-11-06 02:28:29 +00:00
public SlotUI GetSlotUI ( )
{
return slot ;
}
2022-10-19 13:51:46 +00:00
public void OnBeginDrag ( PointerEventData eventData )
{
}
public void OnDrag ( PointerEventData eventData )
{
}
public void OnEndDrag ( PointerEventData eventData )
2022-10-29 19:56:00 +00:00
{
//rectTransform.localPosition = new Vector3(0, 0);
}
2022-12-11 03:03:30 +00:00
public bool Equip ( )
{
foreach ( TagSlotPairing tsp in InventorySystem . instance . TagSlotPairings )
{
2022-12-23 03:50:16 +00:00
if ( ! tsp . HasSlotOccupied ( ) | | tsp . slot . IsStacking ( ) )
2022-12-11 03:03:30 +00:00
{
UnsetSlot ( ) ;
bool value = tsp . slot . DropOntoSlot ( gameObject ) ;
if ( ! value )
{
ReturnToSlot ( ) ;
}
2022-12-23 03:50:16 +00:00
else
{
return true ;
}
2022-12-11 03:03:30 +00:00
}
}
return false ;
}
public void DropItemOntoSlot ( )
2022-10-19 13:51:46 +00:00
{
//Debug.Log("OnEndDrag");
if ( image ! = null )
{
canvasGroup . alpha = 1f ;
image . maskable = true ;
}
canvasGroup . blocksRaycasts = true ;
isDragging = false ;
2022-12-23 03:50:16 +00:00
if ( ! slot . useImageAsSlotHolder )
ShowEmptyGrid ( ) ;
else
HideEmptyGrid ( ) ;
2022-10-29 19:56:00 +00:00
InventorySystem . instance . DraggedItem = null ;
2022-10-19 13:51:46 +00:00
2022-10-29 19:56:00 +00:00
if ( slot = = null )
2022-10-19 13:51:46 +00:00
{
Debug . Log ( "ItemUI: OnEndDrag: Returning to parent" ) ;
2022-11-15 22:58:54 +00:00
//ReturnToSlot();
2022-10-19 13:51:46 +00:00
}
2022-10-29 19:56:00 +00:00
else
{
// TODO: this need improvement
Equipped = slot . EquipSlot ;
}
}
public void GrabAndDragItem ( )
{
2022-12-11 03:03:30 +00:00
if ( ! isDragging & & interactable )
2022-10-29 19:56:00 +00:00
{
2022-11-06 02:28:29 +00:00
Debug . Log ( "GRAB AND DRAG" ) ;
2022-10-29 19:56:00 +00:00
//Debug.Log("OnPointerDown");
//Debug.Log("OnBeginDrag");
canvasGroup . alpha = . 7f ;
canvasGroup . blocksRaycasts = false ;
2022-11-15 22:58:54 +00:00
2022-12-23 03:50:16 +00:00
transform . SetParent ( canvas . transform ) ;
rectTransform . anchorMin = new Vector2 ( 0 , 1 ) ;
rectTransform . anchorMax = new Vector2 ( 0 , 1 ) ;
rectTransform . pivot = new Vector2 ( 0 , 1 ) ;
2022-11-15 22:58:54 +00:00
image . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , oldImageSizeDelta . x ) ;
image . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , oldImageSizeDelta . y ) ;
rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , oldSizeDelta . x ) ;
rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , oldSizeDelta . y ) ;
2022-12-23 03:50:16 +00:00
emptyGridContainer . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , oldSizeDelta . x ) ;
emptyGridContainer . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , oldSizeDelta . y ) ;
backdropImage . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , oldSizeDelta . x ) ;
backdropImage . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , oldSizeDelta . y ) ;
2022-12-11 03:03:30 +00:00
UnsetSlot ( ) ;
2022-12-23 03:50:16 +00:00
HideEmptyGrid ( ) ;
2022-10-29 19:56:00 +00:00
isDragging = true ;
InventorySystem . instance . DraggedItem = this ;
PickedUpOnFrame = true ;
// Destroy each associated window, since we won't rely on windows if we are moving this item
for ( int i = ContextWindows . Count - 1 ; i > = 0 ; i - - )
{
ContextWindows [ i ] . SetActive ( true ) ;
}
ContextWindows . Clear ( ) ;
}
2022-10-19 13:51:46 +00:00
}
2022-12-11 03:03:30 +00:00
public void UnsetSlot ( )
{
if ( slot ! = null )
{
previousSlot = slot ;
slot . RemoveDragDropItem ( ) ;
slot = null ;
}
if ( cells ! = null )
{
foreach ( Cell c in cells )
{
if ( c ! = null )
{
c . inUse = false ;
//c.overlapped = false;
//s.ShowImage();
if ( c . GetSlot ( ) ! = null & & c . GetSlot ( ) ! = this . slot )
{
c . GetSlot ( ) . UnsetCell ( ) ; // RemoveDragDropItem(true);
}
}
}
cells = null ;
}
}
2022-11-06 02:28:29 +00:00
public void AddToContainedItems ( ItemUI item )
{
ContainedItems . Add ( item ) ;
item . ParentContainer = this ;
}
public void RemoveFromContainedItems ( ItemUI item )
{
ContainedItems . Remove ( item ) ;
item . ParentContainer = null ;
}
2022-10-19 13:51:46 +00:00
public void OnPointerDown ( PointerEventData eventData )
{
2022-10-29 19:56:00 +00:00
if ( eventData . button = = PointerEventData . InputButton . Left )
{
GrabAndDragItem ( ) ;
}
}
public void OnPointerClick ( PointerEventData eventData )
{
if ( eventData . button = = PointerEventData . InputButton . Left )
{
GrabAndDragItem ( ) ;
}
else if ( eventData . button = = PointerEventData . InputButton . Right )
{
InventorySystem . instance . OpenContextMenu ( this ) ;
}
/ * else if ( eventData . button = = PointerEventData . InputButton . Right )
{
InventorySystem . instance . OpenContextMenu ( this ) ;
} * /
2022-10-19 13:51:46 +00:00
}
2022-10-29 19:56:00 +00:00
2022-11-15 22:58:54 +00:00
public void FitImageInSlot ( Vector2 size )
2022-10-19 13:51:46 +00:00
{
2022-11-15 22:58:54 +00:00
Debug . Log ( "FitImageInSlot: " + image . transform . name ) ;
float ratio = size . y / image . rectTransform . sizeDelta . y ;
rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , size . x ) ;
rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ;
2022-12-23 03:50:16 +00:00
image . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , size . x ) ;
2022-11-15 22:58:54 +00:00
image . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ;
2022-12-23 03:50:16 +00:00
backdropImage . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , size . x ) ;
backdropImage . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ;
emptyGridContainer . SetSizeWithCurrentAnchors ( RectTransform . Axis . Horizontal , size . x ) ;
emptyGridContainer . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ;
/ * image . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ; // = new Vector2(image.rectTransform.sizeDelta.x * ratio, size.y);
Debug . Log ( oldImageSizeDelta + ", " + oldSizeDelta ) ;
this . rectTransform . SetSizeWithCurrentAnchors ( RectTransform . Axis . Vertical , size . y ) ; ; * /
//image.transform.localScale *= ratio;
2022-11-15 22:58:54 +00:00
//this.scale = scale;
//image.transform.localScale *= scale;
2022-10-19 13:51:46 +00:00
}
public void SetSlot ( SlotUI slot )
{
this . slot = slot ;
}
// TODO: Make sure it was dropped somewhere, if not, return it to the original parent
public void ReturnToSlot ( )
{
2022-11-15 22:58:54 +00:00
if ( previousSlot ! = null & & ! isDragging )
2022-10-19 13:51:46 +00:00
{
2022-11-06 02:28:29 +00:00
Debug . Log ( "RETURNED: " + previousSlot . gameObject . name ) ;
2022-10-19 13:51:46 +00:00
previousSlot . DropOntoSlot ( this . gameObject ) ;
}
}
// Start is called\ before the first frame update
void Start ( )
{
2022-11-15 22:58:54 +00:00
oldImageSizeDelta = image . rectTransform . sizeDelta ;
oldSizeDelta = this . rectTransform . sizeDelta ;
2022-12-23 03:50:16 +00:00
if ( oldImageSizeDelta = = Vector2 . zero )
{
oldImageSizeDelta = oldSizeDelta ;
}
if ( oldSizeDelta = = Vector2 . zero )
{
oldSizeDelta = oldImageSizeDelta ;
}
2022-11-15 22:58:54 +00:00
// TODO: Possibly have item image scale into slot here.
2022-10-19 13:51:46 +00:00
imageSizeOnGrid = new Size ( width * InventorySystem . instance . DefaultSizeOnGrid . Width , height * InventorySystem . instance . DefaultSizeOnGrid . Height ) ;
if ( canvas = = null )
{
canvas = SimpleInventorySystem . InventorySystem . instance . inventoryUI ;
}
2022-10-29 19:56:00 +00:00
if ( Count = = 0 )
{
Count = 1 ;
}
SetRenderItemUIPropertyValue ( ) ;
2022-12-11 03:03:30 +00:00
Rarity r = GetRarity ( ) ;
if ( backdropImage = = null )
{
backdropImage = transform . GetComponent < Image > ( ) ;
}
if ( backdropImage = = null )
{
Debug . LogError ( "ItemUI: Item needs at least an Image component." ) ;
}
else if ( r ! = null )
{
backdropImage . color = new Color ( r . color . r , r . color . g , r . color . b , InventorySystem . instance . ItemBackdropTransparency ) ;
}
2022-12-23 03:50:16 +00:00
//backdropImage.sprite.rect.
/ * overrideSortingCanvas = gameObject . AddComponent < Canvas > ( ) ;
if ( overrideSortingCanvas ! = null )
{
overrideSortingCanvas . overrideSorting = true ;
overrideSortingCanvas . sortingLayerID = 5 ;
//overrideSortingCanvas.sortingLayerName = "ItemUI";
} * /
2022-10-19 13:51:46 +00:00
}
public Orientation ImageOrientation ( )
{
return imageOrientation ;
}
public Size SizeAfterOrientation ( )
{
Debug . Log ( imageOrientation ) ;
2022-10-29 19:56:00 +00:00
if ( imageOrientation = = Orientation . Landscape )
2022-10-19 13:51:46 +00:00
{
if ( width > = height )
{
return new Size ( width , height ) ;
}
else
{
return new Size ( height , width ) ;
}
}
else
{
if ( height > = width )
{
return new Size ( width , height ) ;
}
else
{
return new Size ( height , width ) ;
}
}
}
public void HideSlots ( )
{
2022-10-29 19:56:00 +00:00
if ( cells ! = null )
2022-10-19 13:51:46 +00:00
{
foreach ( Cell cell in cells )
{
2022-10-29 19:56:00 +00:00
if ( cell ! = null )
2022-10-19 13:51:46 +00:00
{
SlotUI slot = cell . GetSlot ( ) ;
2022-12-23 03:50:16 +00:00
if ( slot ! = null ) // && !slot.useImageAsSlotHolder)
2022-10-19 13:51:46 +00:00
slot . HideImage ( ) ;
}
}
}
}
2022-12-23 03:50:16 +00:00
public void HideEmptyGrid ( )
{
if ( emptyGridContainer ! = null )
{
emptyGridContainer . gameObject . SetActive ( false ) ;
}
}
public void ShowEmptyGrid ( )
{
if ( emptyGridContainer ! = null )
{
emptyGridContainer . gameObject . SetActive ( true ) ;
}
}
2022-10-19 13:51:46 +00:00
public void SetSlots ( List < Cell > cellList )
{
cells = new Cell [ cellList . Count ] ;
2022-10-29 19:56:00 +00:00
for ( int i = 0 ; i < cellList . Count ; i + + )
{
if ( cellList [ i ] ! = null )
2022-10-19 13:51:46 +00:00
{
2022-10-29 19:56:00 +00:00
cells [ i ] = cellList [ i ] ;
cells [ i ] . inUse = true ;
2022-10-19 13:51:46 +00:00
}
2022-10-29 19:56:00 +00:00
}
2022-10-19 13:51:46 +00:00
}
public bool IsSingleCellItem ( )
{
return width = = 1 & & height = = 1 ;
}
2022-10-29 19:56:00 +00:00
public bool AddToStack ( int value = 1 )
{
if ( Stackable & & Count < StackLimit )
{
Count + = value ;
return true ;
}
return false ;
}
public bool RemoveFromStack ( int value = 1 )
{
if ( Stackable & & Count > 0 )
{
Count - = value ;
return true ;
}
return false ;
}
2022-10-19 13:51:46 +00:00
public void UnsetSlots ( )
{
cells = null ;
}
2022-10-29 19:56:00 +00:00
void FixedUpdate ( )
{
}
2022-10-19 13:51:46 +00:00
// Update is called once per frame
void Update ( )
{
2022-11-15 22:58:54 +00:00
if ( isDragging )
{
// TODO: fix this
rectTransform . position = InventorySystem . instance . MouseInCanvasPosition ;
}
2022-12-11 03:03:30 +00:00
if ( PointerIsHoveredOver & & InventorySystem . instance . PressedEquipItemKey ( false ) )
{
Equip ( ) ;
// TODO: see if more needs to be implemented here.
return ;
}
if ( PointerIsHoveredOver & & InventorySystem . instance . PressedDropItemKey ( false ) )
{
DropItemAway ( ) ;
return ;
}
2022-11-15 22:58:54 +00:00
if ( PointerIsHoveredOver & & InventorySystem . instance . DraggedItem = = null )
2022-10-19 13:51:46 +00:00
{
2022-11-06 02:28:29 +00:00
if ( Input . GetMouseButtonDown ( 0 ) & & ! isDragging & & InventorySystem . instance . DraggedItem = = null & & ! slot . DroppedOnFrame )
2022-10-29 19:56:00 +00:00
{
GrabAndDragItem ( ) ;
}
if ( Input . GetMouseButtonDown ( 1 ) & & InventorySystem . instance . DraggedItem = = null )
2022-10-19 13:51:46 +00:00
{
2022-10-29 19:56:00 +00:00
InventorySystem . instance . OpenContextMenu ( this ) ;
2022-10-19 13:51:46 +00:00
}
}
2022-12-11 03:03:30 +00:00
2022-10-29 19:56:00 +00:00
if ( Input . GetMouseButtonUp ( 0 ) )
{
PickedUpOnFrame = false ;
}
if ( isDragging )
{
if ( image ! = null )
{
image . maskable = false ;
}
if ( InventorySystem . instance . PressedKeyRotation ( true ) )
{
2022-11-15 22:58:54 +00:00
Debug . Log ( "Rotate" ) ;
RectTransform handler = ( RectTransform ) transform ;
int eulerAngle = Mathf . Abs ( Mathf . CeilToInt ( handler . rotation . eulerAngles . z ) ) - 90 ;
Debug . Log ( "euler" + eulerAngle ) ;
2022-10-29 19:56:00 +00:00
switch ( eulerAngle )
{
2022-11-15 22:58:54 +00:00
case - 90 :
2022-12-11 03:03:30 +00:00
rectTransform . pivot = new Vector2 ( 0 , 0 ) ;
2022-11-15 22:58:54 +00:00
rectTransform . Rotate ( new Vector3 ( 0 , 0 , 1 ) , - 90 ) ;
2022-10-29 19:56:00 +00:00
imageOrientation = ( width > height ) ? Orientation . Portrait : Orientation . Landscape ;
break ;
case 180 :
2022-11-15 22:58:54 +00:00
rectTransform . pivot = new Vector2 ( 1 , 0 ) ;
handler . Rotate ( new Vector3 ( 0 , 0 , 1 ) , - 90 ) ;
2022-10-29 19:56:00 +00:00
imageOrientation = ( width > height ) ? Orientation . Landscape : Orientation . Portrait ;
break ;
case 90 :
2022-11-15 22:58:54 +00:00
rectTransform . pivot = new Vector2 ( 1 , 1 ) ;
handler . Rotate ( new Vector3 ( 0 , 0 , 1 ) , - 90 ) ;
2022-10-29 19:56:00 +00:00
imageOrientation = ( width > height ) ? Orientation . Portrait : Orientation . Landscape ;
break ;
default :
2022-11-15 22:58:54 +00:00
handler . Rotate ( new Vector3 ( 0 , 0 , 1 ) , - 90 ) ;
2022-10-29 19:56:00 +00:00
handler . localPosition = new Vector3 ( 0 , 0 , 0 ) ;
2022-11-15 22:58:54 +00:00
handler . pivot = new Vector2 ( 0 , 1 ) ;
2022-10-29 19:56:00 +00:00
imageOrientation = ( width > height ) ? Orientation . Landscape : Orientation . Portrait ;
break ;
}
}
2022-12-11 03:03:30 +00:00
}
}
2022-11-15 22:58:54 +00:00
2022-12-11 03:03:30 +00:00
public void DropItemAway ( )
{
if ( pickUp = = null )
{
// TODO: Create a new pickup for items without a gameobject attached
Debug . LogError ( "No in-world gameobject previously attached with itemUI" ) ;
2022-10-29 19:56:00 +00:00
}
2022-12-11 03:03:30 +00:00
else
{
InventorySystem . instance . player . DetachItemGameObject ( pickUp . ItemGameObject , this ) ;
}
isDragging = false ;
2022-12-23 03:50:16 +00:00
SetOverrideSortingCanvasEnabled ( false ) ;
2022-12-11 03:03:30 +00:00
InventorySystem . instance . DraggedItem = null ;
UnsetSlot ( ) ;
}
2022-12-23 03:50:16 +00:00
public void SetOverrideSortingCanvasEnabled ( bool value )
{
/ * if ( overrideSortingCanvas ! = null )
{
overrideSortingCanvas . enabled = value ;
} * /
}
2022-12-11 03:03:30 +00:00
public void SetInteractable ( bool value )
{
interactable = value ;
2022-10-29 19:56:00 +00:00
}
public void OnPointerExit ( PointerEventData eventData )
{
2022-11-06 02:28:29 +00:00
//PointerIsHoveredOver = false;
2022-10-29 19:56:00 +00:00
}
public void OnPointerEnter ( PointerEventData eventData )
{
2022-11-06 02:28:29 +00:00
//PointerIsHoveredOver = true;
2022-10-19 13:51:46 +00:00
}
}
}