private void DisplayTile() { if (isVoid || !hitSomething || ground.collider.CompareTag("Wall")) { return; } if (notFree && RecupTile()) { return; } if (inventory[index].TilesList.Count > 0) { currentTile = Instantiate(currentTile, ground.collider.gameObject.transform.position + Vector3.up * 1.5f, inventory[index].Orientation); Tween.LocalPosition(currentTile.transform, ground.collider.gameObject.transform.position + Vector3.up / 2, 0.2f, 0, Tween.EaseIn); currentTile.layer = 0; currentTile.gameObject.GetComponent <ObjectsInstanciateScript>().Init(); currentTile.transform.GetChild(0).gameObject.layer = 0; inventory[index].TilesList.RemoveAt(0); SetActiveFalseAllPreview(); OnUpdateInventory?.Invoke(inventory[index].TilesList.Count); if (inventory[index].TilesList.Count == 0) { OnInventoryEmpty?.Invoke(index); CheckTabsCount(); index = Mathf.Clamp(index, 0, inventory.Count - 1); } } }
public void MajInventory(OnUpdateInventory e) { List <Item> items = InventoryPlayer.Instance.itemsWornArray; int length = items.Count; Item item; for (int i = length - 1; i >= 0; i--) { item = items[i]; InventoryElement ie = scrollElement.Find(el => el.itemType == item.itemType); if (InventoryPlayer.Instance.nbItems[item.itemType] <= 0) { InventoryPlayer.Instance.itemsWornArray.Remove(item); scrollElement.Remove(ie); scroller.Remove(ie); } else { if (ie != null) { ie.MajText(); } else { InventoryElement newE = scroller.Add <InventoryElement>(elementModel); newE.itemType = item.itemType; newE.Init(); scrollElement.Add(newE); } } } scroller.Scale(); }
private bool RecupTile() { Inventory lInventory; for (int i = inventory.Count - 1; i >= 0; i--) { lInventory = inventory[i]; if (tileOnground.collider.CompareTag(lInventory.Tile.tag) && tileOnground.transform.rotation == lInventory.Orientation) { recupTileOnground = tileOnground; recupTileOnground.collider.gameObject.layer = 2; lInventory.TilesList.Add(lInventory.Tile); Tween.LocalPosition(recupTileOnground.transform, recupTileOnground.transform.position + Vector3.up / 2, 0.2f, 0, Tween.EaseIn); tileScaleTween = Tween.LocalScale(recupTileOnground.transform, Vector3.zero, 0.2f, 0.2f, Tween.EaseIn, Tween.LoopType.None, null, () => { testPreview(index); }); // CheckTabsCount(); index = inventory.IndexOf(lInventory); OnUpdateInventory?.Invoke(inventory[index].TilesList.Count); OnIndexChange?.Invoke(index); currentTile = lInventory.TilesList[0]; SetActiveFalseAllPreview(); if (allListEmpty) { allListEmpty = false; } return(true); } if (tileOnground.collider.CompareTag(targetTag) || tileOnground.collider.CompareTag(spawnTag) || tileOnground.collider.CompareTag("Wall") || tileOnground.collider.CompareTag("Teleport")) { return(true); } } return(false); }
/// <summary> /// Update all Inventory elements /// </summary> public virtual void UpdateInventory() { OnUpdateInventory.Invoke(); }