void Start() { itemManager = GetComponent <vItemManager>(); if (itemManager) { itemManager.onAddItem.AddListener(AddAmmo); itemManager.onDropItem.AddListener(DropAmmo); itemManager.onLeaveItem.AddListener(LeaveAmmo); itemManager.onChangeItemAmount.AddListener(ChangeItemAmount); } if (ammoListData) { ammos.Clear(); for (int i = 0; i < ammoListData.ammos.Count; i++) { var ammo = new vAmmo(ammoListData.ammos[i]); ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem); ammos.Add(ammo); } } AddAmmo("Rifle Ammo", 13, 999999); // 총알 수정 AddAmmo("HandGun Ammo", 14, 999999); }
/// <summary> /// Create a Json text from Inventory EquipAreas and ItemManager Items /// </summary> /// <param name="itemManager">Target ItemManaget</param> /// <returns>Json file text</returns> public static string InventoryToJsonText(vItemManager itemManager) { if (!itemManager.inventory) { return(string.Empty); } InventoryData data = new InventoryData(); vEquipArea[] equipAreas = itemManager.inventory.equipAreas; for (int i = 0; i < equipAreas.Length; i++) { EquipAreaData equipAreaData = new EquipAreaData(); equipAreaData.indexOfSelectedSlot = equipAreas[i].indexOfEquippedItem; for (int e = 0; e < equipAreas[i].equipSlots.Count; e++) { SlotData equipAreaSlotData = new SlotData(); equipAreaSlotData.hasItem = equipAreas[i].equipSlots[e].item != null; if (equipAreaSlotData.hasItem) { equipAreaSlotData.indexOfItem = itemManager.items.IndexOf(equipAreas[i].equipSlots[e].item); } equipAreaData.slotsData.Add(equipAreaSlotData); } data.equipAreas.Add(equipAreaData); } for (int i = 0; i < itemManager.items.Count; i++) { data.itemReferences.Add(new ItemReference(itemManager.items[i])); } return(JsonUtility.ToJson(data, true)); }
protected virtual void CheckItem(vItemManager itemManager) { if (getItemByName) { if (itemManager.ContainItem(itemName)) { onContains.Invoke(); } else { onNotContains.Invoke(); } } else { if (itemManager.ContainItem(itemID)) { onContains.Invoke(); } else { onNotContains.Invoke(); } } }
private void Start() { if (itemManager == null) { if (getInParent) { itemManager = GetComponentInParent <vItemManager>(); } else { itemManager = GetComponent <vItemManager>(); } } if (tpController == null) { if (getInParent) { tpController = GetComponentInParent <vThirdPersonController>(); } else { tpController = GetComponent <vThirdPersonController>(); } } if (itemManager) { itemManager.canUseItemDelegate -= new vItemManager.CanUseItemDelegate(CanUseItem); itemManager.canUseItemDelegate += new vItemManager.CanUseItemDelegate(CanUseItem); } }
void Start() { itemManager = GetComponent <vItemManager>(); cc = GetComponent <vThirdPersonController>(); if (itemManager) { itemManager.onFinishEquipItem.AddListener(EquipWeapon); itemManager.onFinishUnequipItem.AddListener(UnequipWeapon); holders = GetComponentsInChildren <vWeaponHolder>(true); if (holders != null) { foreach (vWeaponHolder holder in holders) { if (!holderAreas.ContainsKey(holder.equipPointName)) { holderAreas.Add(holder.equipPointName, new List <vWeaponHolder>()); holderAreas[holder.equipPointName].Add(holder); } else { holderAreas[holder.equipPointName].Add(holder); } holder.SetActiveHolder(false); holder.SetActiveWeapon(false); } } } }
public static bool ItemIsEquiped(this vItemManager itemManager, int id) { if (itemManager.inventory) { return(System.Array.Find(itemManager.inventory.equipAreas, equipArea => equipArea.currentEquipedItem && equipArea.currentEquipedItem.id.Equals(id))); } return(false); }
public static bool ItemTypeIsEquipped(this vItemManager itemManager, vItemType type) { if (itemManager.inventory) { return(System.Array.Find(itemManager.inventory.equipAreas, equipArea => equipArea.currentEquippedItem && equipArea.currentEquippedItem.type.Equals(type))); } return(false); }
public static vItem GetEquippedItem(this vItemManager itemManager, int id) { if (itemManager.inventory) { var area = System.Array.Find(itemManager.inventory.equipAreas, equipArea => equipArea.currentEquipedItem && equipArea.currentEquipedItem.id.Equals(id)); return(area ? area.currentEquipedItem : null); } return(null); }
IEnumerator Start() { if (instance == null) { inventory = FindObjectOfType <vInventory>(); instance = this; var melee = GetComponent <vMeleeCombatInput>(); if (!inventory && inventoryPrefab) { inventory = Instantiate(inventoryPrefab); } if (!inventory) { Debug.LogError("No vInventory assigned!"); } if (inventory) { inventory.GetItemsHandler = GetItems; inventory.GetItemsAllHandler = GetAllItems; if (melee) { inventory.IsLockedEvent = () => { return(melee.lockInventory); } } ; //Locking Inventory Input if MeleeInput is lockInventory inventory.onEquipItem.AddListener(EquipItem); inventory.onUnequipItem.AddListener(UnequipItem); inventory.onDropItem.AddListener(DropItem); inventory.onLeaveItem.AddListener(DestroyItem); inventory.onUseItem.AddListener(UseItem); inventory.onOpenCloseInventory.AddListener(OnOpenCloseInventory); } animator = GetComponent <Animator>(); if (dropItemsWhenDead) { var character = GetComponent <vCharacterController.vICharacter>(); if (character != null) { character.onDead.AddListener(DropAllItens); } } yield return(new WaitForEndOfFrame()); items = new List <vItem>(); if (itemListData) { for (int i = 0; i < startItems.Count; i++) { AddItem(startItems[i], true); } } } }
IEnumerator Start() { if (instance == null) { inventory = FindObjectOfType <vInventory>(); instance = this; if (!inventory && inventoryPrefab) { inventory = Instantiate(inventoryPrefab); } if (!inventory) { Debug.LogError("No vInventory assigned!"); } if (inventory) { inventory.GetItemsHandler = GetItems; inventory.onEquipItem.AddListener(EquipItem); inventory.onUnequipItem.AddListener(UnequipItem); inventory.onDropItem.AddListener(DropItem); inventory.onLeaveItem.AddListener(DestroyItem); inventory.onUseItem.AddListener(UseItem); inventory.onOpenCloseInventory.AddListener(OnOpenCloseInventory); } animator = GetComponent <Animator>(); if (dropItemsWhenDead) { var character = GetComponent <vCharacterController.vICharacter>(); if (character != null) { character.onDead.AddListener(DropAllItens); } } var genericAction = GetComponent <vCharacterController.vActions.vGenericAction>(); if (genericAction != null) { genericAction.OnDoAction.AddListener(CollectItem); } yield return(new WaitForEndOfFrame()); items = new List <vItem>(); if (itemListData) { for (int i = 0; i < startItems.Count; i++) { AddItem(startItems[i], true); } } } }
/// <summary> /// Save inventory items and occupied equipSlots /// </summary> /// <param name="itemManager"></param> public static void SaveInventory(this vItemManager itemManager) { string json = InventoryToJsonText(itemManager); if (!string.IsNullOrEmpty(json)) { File.WriteAllText(InventoryDataFile, json); itemManager.onSaveItems.Invoke(); } }
public bool Check(vItemManager itemManager) { bool _ContainItem = true; for (int i = 0; i < _itemsID.Count; i++) { if (!itemManager.ContainItem(_itemsID[i])) { _ContainItem = false; break; } } return(_ContainItem); }
/// <summary> /// Check if the <seealso cref="vItemManager"/> has the target item and call events <seealso cref="onContains"/> or <seealso cref="onNotContains"/> /// </summary> /// <param name="itemManager"></param> protected virtual void CheckItem(vItemManager itemManager) { if (itemManager == null) { return; } if (ContainsItem(itemManager)) { onContains.Invoke(); } else { onNotContains.Invoke(); } }
public void OnTriggerStay(Collider other) { if (!useTriggerStay) { return; } if (other.gameObject.CompareTag("Player")) { itemManager = other.GetComponent <vItemManager>(); if (itemManager) { CheckItem(itemManager); } } }
void Awake() { if (!itemManager) { if (getInParent) { itemManager = GetComponentInParent <vItemManager>(); } else { itemManager = GetComponent <vItemManager>(); } itemManager.onEquipItem.AddListener(CheckIsEquipped); itemManager.onUnequipItem.AddListener(CheckIsEquipped); } }
public void CheckOnTrigger(Collider collider) { if (collider != null) { itemManager = collider.gameObject.GetComponent <vItemManager>(); if (itemManager) { for (int i = 0; i < itemIDEvents.Count; i++) { CheckItemIDEvent check = itemIDEvents[i]; CheckItemID(check); } } } }
public static bool ItemIsEquipped(this vItemManager itemManager, int id, out EquipedItemInfo equipedItemInfo) { equipedItemInfo = null; if (itemManager.inventory) { var area = System.Array.Find(itemManager.inventory.equipAreas, equipArea => equipArea.currentEquipedItem && equipArea.currentEquipedItem.id.Equals(id)); if (area) { equipedItemInfo = new EquipedItemInfo(area.currentEquipedItem, area); equipedItemInfo.indexOfArea = System.Array.IndexOf(itemManager.inventory.equipAreas, area); equipedItemInfo.indexOfItem = itemManager.items.IndexOf(area.currentEquipedItem); } return(area != null); } return(false); }
public void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { itemManager = other.GetComponent <vItemManager>(); if (itemManager) { itemEvent.targetItem = itemManager.GetItem(itemEvent.id); if (itemEvent.targetItem) { itemEvent.ChangeItemUsageDelay(); itemManager.onUseItem.AddListener(OnUseItem); itemManager.onOpenCloseInventory.AddListener(itemEvent.OnOpenInventory); itemEvent.targetItem.canBeUsed = true; } } } }
/// <summary> /// Load inventory items and occupied equipSlots /// </summary> /// <param name="itemManager"></param> public static void LoadInventory(this vItemManager itemManager) { string json = LoadInventoryJasonText(); if (!string.IsNullOrEmpty(json)) { InventoryData data = new InventoryData(); JsonUtility.FromJsonOverwrite(json, data); itemManager.items = data.GetItems(itemManager.itemListData); vEquipArea[] equipAreas = itemManager.inventory.equipAreas; for (int i = 0; i < equipAreas.Length; i++) { if (i < data.equipAreas.Count) { vEquipArea area = equipAreas[i]; EquipAreaData areaData = data.equipAreas[i]; area.indexOfEquippedItem = areaData.indexOfSelectedSlot; for (int e = 0; e < equipAreas[i].equipSlots.Count; e++) { if (e < areaData.slotsData.Count) { SlotData slotData = areaData.slotsData[e]; vEquipSlot slot = equipAreas[i].equipSlots[e]; itemManager.temporarilyIgnoreItemAnimation = true; if (slotData.hasItem) { area.AddItemToEquipSlot(e, itemManager.items[slotData.indexOfItem]); } else { area.RemoveItemOfEquipSlot(e); } } } } } } itemManager.inventory.UpdateInventory(); itemManager.temporarilyIgnoreItemAnimation = false; itemManager.onLoadItems.Invoke(); }
protected virtual IEnumerator Start() { inventory = getComponentsInParent ? GetComponentInParent <vInventory>() : GetComponent <vInventory>(); if (!inventory) { yield return(new WaitForEndOfFrame()); itemManager = getComponentsInParent ? GetComponentInParent <vItemManager>() : GetComponent <vItemManager>(); if (itemManager) { inventory = itemManager.inventory; } } if (inventory) { inventory.onOpenCloseInventory.AddListener(OpenCloseInventory); } }
void Awake() { if (!itemManager) { if (getInParent) { itemManager = GetComponentInParent <vItemManager>(); } else { itemManager = GetComponent <vItemManager>(); } if (itemManager) { itemManager.onAddItemID.AddListener(CheckItemExists); itemManager.onRemoveItemID.AddListener(CheckItemExists); } } }
protected virtual void CheckItem(vItemManager itemManager) { if (getItemByName) { // VERIFY IF YOU HAVE A SPECIFIC ITEM IN YOUR INVENTORY if (itemManager.ContainItem(itemName)) { // AUTOMATICALLY EQUIP THE ITEM IF YOU HAVE IT // // - vItem can be access using the itemManager.GetItem(itemName) // - indexArea is the equipmentArea that you want to equip the item, for example 0 is RightArm, 1 is LeftArm, 2 is Consumable. // - Immediate is true to instantly equip the weapon or false to trigger the equip animation. itemManager.AutoEquipItem(itemManager.GetItem(itemName), 0, false); // trigger OnContains Event onContains.Invoke(); } else { onNotContains.Invoke(); } } else { // VERIFY IF YOU HAVE A SPECIFIC ITEM IN YOUR INVENTORY if (itemManager.ContainItem(itemID)) { // AUTOMATICALLY EQUIP THE ITEM IF YOU HAVE IT // // - vItem can be access using the itemManager.GetItem(itemName) // - indexArea is the equipmentArea that you want to equip the item, for example 0 is RightArm, 1 is LeftArm, 2 is Consumable. // - Immediate is true to instantly equip the weapon or false to trigger the equip animation. itemManager.AutoEquipItem(itemManager.GetItem(itemID), 0, false); // trigger OnContains Event onContains.Invoke(); } else { onNotContains.Invoke(); } } }
vItem GetItem(vItemManager itemManager) { if (getItemByName) { // VERIFY IF YOU HAVE A SPECIFIC ITEM IN YOUR INVENTORY if (itemManager.ContainItem(itemName)) { return(itemManager.GetItem(itemName)); } } else { // VERIFY IF YOU HAVE A SPECIFIC ITEM IN YOUR INVENTORY if (itemManager.ContainItem(itemID)) { return(itemManager.GetItem(itemID)); } } return(null); }
vItem GetItem(vItemManager itemManager) { if (getItemByName) { // Check if you have an item via name (string) in your Inventory if (itemManager.ContainItem(itemName)) { return(itemManager.GetItem(itemName)); } } else { // Check if you have an item via ID (integer) in your Inventory if (itemManager.ContainItem(itemID)) { return(itemManager.GetItem(itemID)); } } return(null); }
protected override void OnEnable() { base.OnEnable(); m_Logo = (Texture2D)Resources.Load("itemManagerIcon", typeof(Texture2D)); manager = (vItemManager)target; itemReferenceList = serializedObject.FindProperty("startItems"); skin = Resources.Load("vSkin") as GUISkin; var meleeManager = manager.GetComponent <vMeleeManager>(); vItemManagerUtilities.CreateDefaultEquipPoints(manager, meleeManager); animator = manager.GetComponent <Animator>(); if (manager.equipPoints != null) { inEdition = new bool[manager.equipPoints.Count]; newPointNames = new string[manager.equipPoints.Count]; } else { manager.equipPoints = new List <EquipPoint>(); } }
private void Init(GameObject character) { vItemManager itemManager = character.GetComponent <vItemManager>(); if (itemManager == null) { Debug.Log("No item manager"); } else { foreach (var eqpPnt in itemManager.equipPoints) { if (eqpPnt.equipPointName.Equals("RightArm")) { sword = eqpPnt.equipmentReference.equipedObject; break; } } } wps = sword.GetComponentInChildren <WeaponParticleSystem>(); }
private void Init(GameObject character) { vItemManager itemManager = character.GetComponent <vItemManager>(); if (itemManager == null) { Debug.Log("No item manager"); } else { color = character.GetComponent <ColorMove>(); foreach (var eqpPnt in itemManager.equipPoints) { if (eqpPnt.equipPointName.Equals("RightArm")) { rifle = eqpPnt.equipmentReference.equipedObject.transform; break; } } } }
void Start() { itemManager = GetComponent <vItemManager>(); if (itemManager) { itemManager.onAddItem.AddListener(AddAmmo); itemManager.onDropItem.AddListener(DropAmmo); itemManager.onDestroyItem.AddListener(LeaveAmmo); itemManager.onChangeItemAmount.AddListener(ChangeItemAmount); itemManager.onLoadItems.AddListener(ReloadAllAmmoItems); } if (ammoListData) { ammos.Clear(); for (int i = 0; i < ammoListData.ammos.Count; i++) { var ammo = new vAmmo(ammoListData.ammos[i]); ammo.onDestroyAmmoItem = new vAmmo.OnDestroyItem(OnDestroyAmmoItem); ammos.Add(ammo); } } }
public void RemoveItem(vItemManager itemManager) { if (itemManager) { var item = GetItem(itemManager); if (item != null) { if (type == vRemoveCurrentItem.Type.UnequipItem) { itemManager.UnequipItem(item); } else if (type == vRemoveCurrentItem.Type.DestroyItem) { itemManager.DestroyItem(item, 1); } else { itemManager.DropItem(item, 1); } } } }
private void vLeaveDropItensWindow(int windowID) { GUILayout.BeginVertical(); itemManager = FindObjectOfType <vItemManager>(); if (itemManager) { scroll = GUILayout.BeginScrollView(scroll, GUILayout.Width(300), GUILayout.MinHeight(300)); for (int i = 0; i < itemManager.items.Count; i++) { GUILayout.BeginHorizontal("box"); GUILayout.Label(new GUIContent("Name:" + itemManager.items[i].name + "\nAmount :" + itemManager.items[i].amount.ToString()), GUILayout.Width(200), GUILayout.Height(40)); GUILayout.BeginVertical("box"); if (GUILayout.Button("Leave")) { itemManager.inventory.isOpen = true; itemManager.inventory.OnLeaveItem(itemManager.items[i], 1); itemManager.inventory.isOpen = false; break; } if (GUILayout.Button("Drop")) { itemManager.inventory.isOpen = true; itemManager.inventory.OnDropItem(itemManager.items[i], 1); itemManager.inventory.isOpen = false; break; } GUILayout.EndVertical(); GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } GUILayout.EndVertical(); GUI.DragWindow(); }