Skip to content
Snippets Groups Projects
Commit 31761dde authored by Robin Halseth Sandvik's avatar Robin Halseth Sandvik
Browse files

Fixed it so items apper in their slots.

parent a643b3a0
No related branches found
No related tags found
1 merge request!45Alexander
...@@ -72,7 +72,7 @@ namespace BigSock { ...@@ -72,7 +72,7 @@ namespace BigSock {
TryPickUpItem(ItemService.SINGLETON.Get(101)); TryPickUpItem(ItemService.SINGLETON.Get(101));
*/ */
//var tmp = PrefabService.SINGLETON; //var tmp = PrefabService.SINGLETON;
var tmp = SpriteService.SINGLETON; //var tmp = SpriteService.SINGLETON;
_testAttack = (IAttack) AbilityService.SINGLETON.Get(101); _testAttack = (IAttack) AbilityService.SINGLETON.Get(101);
_testAttack2 = (IAttack) AbilityService.SINGLETON.Get(102); _testAttack2 = (IAttack) AbilityService.SINGLETON.Get(102);
......
...@@ -7,107 +7,99 @@ using UnityEngine.UI; ...@@ -7,107 +7,99 @@ using UnityEngine.UI;
namespace BigSock.UI namespace BigSock.UI
{ {
public class InventoryPanel : MonoBehaviour public class InventoryPanel : MonoBehaviour
{ {
public PlayerController player; public PlayerController player;
public const string INVSLOT = "UI/Inventoryslot"; public const string INVSLOT = "UI/Inventoryslot";
public const string ITEM = "UI/Item"; public const string ITEM = "UI/Item";
public GridLayoutGroup gridBackPack; public GridLayoutGroup gridBackPack;
public GridLayoutGroup gridTools; public GridLayoutGroup gridTools;
public GridLayoutGroup gridAccessory; public GridLayoutGroup gridAccessory;
public GridLayoutGroup gridEquipment; public GridLayoutGroup gridEquipment;
//var bullet = PrefabService.SINGLETON.Instance(PROJECTILE_NAME, actor.transform.position); public void Start() {
//var bulletScript = bullet.GetComponent<AttackMovement>(); GenerateInv();
}
public void Start() public void GenerateInv()
{ {
GenerateInv(); var inventory = player.Inventory;
}
public void GenerateInv() for (int i = 0; i < inventory.Backpack.Count; ++i)
{ {
var inventory = player.Inventory; var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridBackPack.transform);
var invScript = invSlot.GetComponent<ItemSlot>();
invScript.inventory = inventory;
for (int i = 0; i < inventory.Backpack.Count; ++i) invScript.inventoryType = InventoryType.Backpack;
{ invScript.position = i;
var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridBackPack.transform); var item = inventory.Backpack[i];
var invScript = invSlot.GetComponent<ItemSlot>(); if (item != null)
invScript.inventory = inventory; {
invScript.inventoryType = InventoryType.Backpack; var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
invScript.position = i; var itemScript = itemPref.GetComponent<ItemPref>();
var item = inventory.Backpack[i]; itemScript.item = item;
if (item != null) itemScript.itemSlot = invScript;
{ invScript.item = itemScript;
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform); itemScript.transform.position = invScript.transform.position;
var itemScript = itemPref.GetComponent<ItemPref>(); }
itemScript.item = item; }
itemScript.itemSlot = invScript; for (int i = 0; i < inventory.Tools.Count; ++i)
invScript.item = itemScript; {
itemScript.transform.position = invScript.transform.position; var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridTools.transform);
var invScript = invSlot.GetComponent<ItemSlot>();
} invScript.inventory = inventory;
} invScript.inventoryType = InventoryType.Tool;
for (int i = 0; i < inventory.Tools.Count; ++i) invScript.position = i;
{ var item = inventory.Tools[i];
var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridTools.transform); if (item != null)
var invScript = invSlot.GetComponent<ItemSlot>(); {
invScript.inventory = inventory; var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
invScript.inventoryType = InventoryType.Tool; var itemScript = itemPref.GetComponent<ItemPref>();
invScript.position = i; itemScript.item = item;
var item = inventory.Tools[i]; itemScript.itemSlot = invScript;
if (item != null) invScript.item = itemScript;
{ itemScript.transform.position = invScript.transform.position;
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform); }
var itemScript = itemPref.GetComponent<ItemPref>(); }
itemScript.item = item; for (int i = 0; i < inventory.Equipment.Count; ++i)
itemScript.itemSlot = invScript; {
invScript.item = itemScript; var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridEquipment.transform);
itemScript.transform.position = invScript.transform.position; var invScript = invSlot.GetComponent<ItemSlot>();
invScript.inventory = inventory;
invScript.inventoryType = InventoryType.Equipment;
invScript.position = i;
var item = inventory.Equipment[i];
if (item != null)
{
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
var itemScript = itemPref.GetComponent<ItemPref>();
itemScript.item = item;
itemScript.itemSlot = invScript;
invScript.item = itemScript;
itemScript.transform.position = invScript.transform.position;
}
}
for (int i = 0; i < inventory.Accessories.Count; ++i)
{
var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridAccessory.transform);
var invScript = invSlot.GetComponent<ItemSlot>();
invScript.inventory = inventory;
invScript.inventoryType = InventoryType.Accessory;
invScript.position = i;
var item = inventory.Accessories[i];
if (item != null)
{
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
var itemScript = itemPref.GetComponent<ItemPref>();
itemScript.item = item;
itemScript.itemSlot = invScript;
invScript.item = itemScript;
itemScript.transform.position = invScript.transform.position;
}
}
} }
} }
for (int i = 0; i < inventory.Equipment.Count; ++i)
{
var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridEquipment.transform);
var invScript = invSlot.GetComponent<ItemSlot>();
invScript.inventory = inventory;
invScript.inventoryType = InventoryType.Equipment;
invScript.position = i;
var item = inventory.Equipment[i];
if (item != null)
{
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
var itemScript = itemPref.GetComponent<ItemPref>();
itemScript.item = item;
itemScript.itemSlot = invScript;
invScript.item = itemScript;
itemScript.transform.position = invScript.transform.position;
}
}
for (int i = 0; i < inventory.Accessories.Count; ++i)
{
var invSlot = PrefabService.SINGLETON.Instance(INVSLOT, gridAccessory.transform);
var invScript = invSlot.GetComponent<ItemSlot>();
invScript.inventory = inventory;
invScript.inventoryType = InventoryType.Accessory;
invScript.position = i;
var item = inventory.Accessories[i];
if (item != null)
{
var itemPref = PrefabService.SINGLETON.Instance(ITEM, transform);
var itemScript = itemPref.GetComponent<ItemPref>();
itemScript.item = item;
itemScript.itemSlot = invScript;
invScript.item = itemScript;
itemScript.transform.position = invScript.transform.position;
}
}
}
}
} }
...@@ -27,7 +27,6 @@ namespace BigSock.UI ...@@ -27,7 +27,6 @@ namespace BigSock.UI
{ {
rectTransform = GetComponent<RectTransform>(); rectTransform = GetComponent<RectTransform>();
canvasGroup = GetComponent<CanvasGroup>(); canvasGroup = GetComponent<CanvasGroup>();
} }
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
......
...@@ -7,33 +7,55 @@ using BigSock.Item; ...@@ -7,33 +7,55 @@ using BigSock.Item;
namespace BigSock.UI namespace BigSock.UI
{ {
public class ItemSlot : MonoBehaviour, IDropHandler public class ItemSlot : MonoBehaviour, IDropHandler
{ {
public InventoryType inventoryType; public InventoryType inventoryType;
public int position; public int position;
public ItemPref item; public ItemPref item;
public Inventory inventory; public Inventory inventory;
public void OnDrop(PointerEventData eventData)
{
if (eventData.pointerDrag != null)
{
//eventData.pointerDrag.GetComponent<DragDrop>()?.position = null;
var itemPref = eventData.pointerDrag.GetComponent<ItemPref>();
if (itemPref != null)
{
var didMove = inventory.MoveItem(itemPref.item, itemPref.itemSlot.inventoryType,
itemPref.itemSlot.position, inventoryType, position);
if (didMove)
{
itemPref.itemSlot.item = null;
itemPref.itemSlot = this;
item = itemPref;
eventData.pointerDrag.transform.position = transform.position;
itemPref.position = null;
} bool firstRan = false;
}
} public void Start() {
} transform.hasChanged = false;
} if(transform.hasChanged) {
//Debug.Log($"[ItemSlot.Start({GetInstanceID()})] {transform.position}");
}
}
public void Update() {
// If it hasn't ran before, and the position has changed, update the ItemPref.
if(!firstRan && transform.hasChanged) {
transform.hasChanged = false;
firstRan = true;
if(item != null) {
//Debug.Log($"[ItemSlot.Update({GetInstanceID()})] Item: {item?.transform?.position}, Slot: {transform.position}");
item.transform.position = transform.position;
}
}
}
public void OnDrop(PointerEventData eventData)
{
if (eventData.pointerDrag != null)
{
var itemPref = eventData.pointerDrag.GetComponent<ItemPref>();
if (itemPref != null)
{
var didMove = inventory.MoveItem(itemPref.item, itemPref.itemSlot.inventoryType,
itemPref.itemSlot.position, inventoryType, position);
if (didMove)
{
itemPref.itemSlot.item = null;
itemPref.itemSlot = this;
item = itemPref;
eventData.pointerDrag.transform.position = transform.position;
itemPref.position = null;
}
}
}
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment