Esempio n. 1
0
 // Start is called before the first frame update
 void Start()
 {
     if (inventory == null)
     {
         inventory = FindObjectOfType <DTInventory>();
     }
 }
Esempio n. 2
0
        private void Start()
        {
            if (inventory == null)
            {
                inventory = FindObjectOfType <DTInventory>();
            }

            if (PlayerPrefs.GetInt("ar15Save") == 1)
            {
                inventory.AddItem(ar15.GetComponent <Item>());
            }

            if (PlayerPrefs.GetInt("ShotgunSave") == 1)
            {
                inventory.AddItem(shotgun.GetComponent <Item>());
            }
            if (PlayerPrefs.GetInt("BarretItemSave") == 1)
            {
                inventory.AddItem(sniper.GetComponent <Item>());
            }
            if (PlayerPrefs.GetInt("ar15magSave") == 1)
            {
                inventory.AddItem(ar15mag.GetComponent <Item>());
            }

            if (PlayerPrefs.GetInt("bottleSave") == 1)
            {
                inventory.AddItem(bottle.GetComponent <Item>());
            }
            if (PlayerPrefs.GetInt("conserveSave") == 1)
            {
                inventory.AddItem(conserve.GetComponent <Item>());
            }
        }
Esempio n. 3
0
        private void OnEnable()
        {
            if (canvas == null)
            {
                canvas = GetComponent <Canvas>();
            }

            if (inventory == null)
            {
                inventory = FindObjectOfType <DTInventory>();
            }

            InventoryClose();
        }
Esempio n. 4
0
        private void Start()
        {
            if (itemNameTooltip != null)
            {
                itemNameTooltip.text = string.Empty;
            }

            if (playerCamera == null && Camera.main != null)
            {
                playerCamera = Camera.main.transform;
            }

            if (inventory == null)
            {
                inventory = FindObjectOfType <DTInventory>();
            }
        }
Esempio n. 5
0
 private void OnEnable()
 {
     if (m_rect == null)
     {
         m_rect = GetComponent <RectTransform>();
     }
     if (inventory == null)
     {
         inventory = FindObjectOfType <DTInventory>();
     }
     if (image == null)
     {
         image = GetComponent <Image>();
     }
     if (stackText == null)
     {
         stackText = GetComponentInChildren <Text>();
     }
 }
Esempio n. 6
0
        public void Load()
        {
            print("Load started");

            var itemsToDestroy = FindObjectsOfType <Item>();

            var sceneLootBoxes = FindObjectsOfType <LootBox>();

            foreach (var item in itemsToDestroy)
            {
                Destroy(item.gameObject);
            }

            foreach (var lootbox in sceneLootBoxes)
            {
                lootbox.lootBoxItems.Clear();
            }

            //Inventory
            DTInventory inventory = FindObjectOfType <DTInventory>();

            InventoryData inventoryData = JsonUtility.FromJson <InventoryData>(File.ReadAllText(Application.persistentDataPath + "/" + SceneManager.GetActiveScene().name + "_inventoryData"));

            var inventoryItems = inventoryData.itemNames;
            var stackSize      = inventoryData.stackSize;
            var itemPos        = inventoryData.itemGridPos;

            bool isAutoEquipEnabled = inventory.autoEquipItems;

            inventory.autoEquipItems = false;

            if (inventoryItems != null)
            {
                for (int i = 0; i < inventoryItems.Length; i++)
                {
                    var findItem = assetsDatabase.FindItem(inventoryItems[i]);

                    if (findItem != null)
                    {
                        var item = Instantiate(findItem);

                        item.stackSize = stackSize[i];

                        inventory.AddItem(item, (int)itemPos[i].x, (int)itemPos[i].y);
                    }
                    else
                    {
                        Debug.LogAssertion("Missing item. Check if it exists in the ItemsDatabase inspector");
                    }
                }
            }

            inventory.autoEquipItems = isAutoEquipEnabled;

            print("Looking for data for scene " + SceneManager.GetActiveScene().name);

            LevelData itemsLevelData = JsonUtility.FromJson <LevelData>(File.ReadAllText(Application.persistentDataPath + "/" + SceneManager.GetActiveScene().name + "_itemsLevelData"));

            for (int i = 0; i < itemsLevelData.itemName.Length; i++)
            {
                if (itemsLevelData.itemName[i] != null)
                {
                    try
                    {
                        var item = Instantiate(assetsDatabase.FindItem(itemsLevelData.itemName[i]));
                        item.transform.position = itemsLevelData.itemPos[i];
                        item.transform.rotation = itemsLevelData.itemRot[i];
                        item.stackSize          = itemsLevelData.itemStackSize[i];
                    }
                    catch
                    {
                        Debug.LogAssertion("Item you try to restore from save: " + itemsLevelData.itemName[i] + " is null or not exist in database");
                    }
                }
            }

            LootBoxData lootBoxData = JsonUtility.FromJson <LootBoxData>(File.ReadAllText(Application.persistentDataPath + "/" + SceneManager.GetActiveScene().name + "_lootboxData"));

            for (int i = 0; i < sceneLootBoxes.Length; i++)
            {
                var lootbox = sceneLootBoxes[i];

                char[] separator = new char[] { '|' };

                string[] itemsTitles = lootBoxData.itemNames[i].Split(separator, System.StringSplitOptions.RemoveEmptyEntries);

                //foreach (string t in itemsTitles)
                //    print(t);

                string[] itemStackSizes = lootBoxData.stackSize[i].Split(separator, System.StringSplitOptions.RemoveEmptyEntries);

                //foreach (string jk in itemStackSizes)
                //    print(jk);

                List <int> itemStackSizesInt = new List <int>();

                foreach (string itemStackSizeString in itemStackSizes)
                {
                    int resultInt = -1;

                    int.TryParse(itemStackSizeString, out resultInt);

                    itemStackSizesInt.Add(resultInt);
                }

                for (int j = 0; j < itemsTitles.Length; j++)
                {
                    if (assetsDatabase.FindItem(itemsTitles[j]) != null)
                    {
                        var item = Instantiate(assetsDatabase.FindItem(itemsTitles[j]));

                        item.gameObject.SetActive(false);

                        if (itemStackSizesInt[j] > -1)
                        {
                            item.stackSize = itemStackSizesInt[j];
                        }

                        lootbox.lootBoxItems.Add(item);
                    }
                }
            }
        }
Esempio n. 7
0
 private void OnEnable()
 {
     inventory = FindObjectOfType <DTInventory>();
 }
Esempio n. 8
0
 private void OnEnable()
 {
     pickupItem = FindObjectOfType <PickupItem>();
     inventory  = FindObjectOfType <DTInventory>();
 }
Esempio n. 9
0
        void OnGUI()
        {
            tabIndex = GUILayout.Toolbar(tabIndex, tabHeaders);

            if (tabIndex == 0)
            {
                EditorGUILayout.HelpBox("Welcome to Inventory Wizard. With this tool you can create your own inventory. Watch video and follow steps", MessageType.Info);

                EditorGUILayout.LabelField("Inventory & Cell size", EditorStyles.centeredGreyMiniLabel);

                GUILayout.BeginVertical("HelpBox"); GUILayout.BeginVertical("GroupBox");

                SizeX = EditorGUILayout.IntSlider("Inventory Horizontal size", SizeX, 1, 100);
                SizeY = EditorGUILayout.IntSlider("Inventory Vertical size", SizeY, 1, 100);

                normalCellColor  = EditorGUILayout.ColorField("Normal cell color", normalCellColor);
                hoveredCellColor = EditorGUILayout.ColorField("Hovered cell color", hoveredCellColor);
                blockedCellCover = EditorGUILayout.ColorField("Blocked cell color", blockedCellCover);

                stackTextFont  = (Font)EditorGUILayout.ObjectField("Stack text font", stackTextFont, typeof(Font), false);
                stackTextColor = EditorGUILayout.ColorField("Stack text color", stackTextColor);

                EditorGUILayout.LabelField("");

                CellRectSize = EditorGUILayout.IntSlider("Cell size", CellRectSize, 1, 200);

                //CellSpacing = EditorGUILayout.IntSlider("Space between cells", CellSpacing, 0, 20);

                CellImage = (Sprite)EditorGUILayout.ObjectField("Cell image", CellImage, typeof(Sprite), false);

                inventoryBackgroundColor = EditorGUILayout.ColorField("Background color", inventoryBackgroundColor);
                InventoryBackground      = (Sprite)EditorGUILayout.ObjectField("Inventory background", InventoryBackground, typeof(Sprite), false);

                if (GUILayout.Button("Build inventory"))
                {
                    var eventSystem = Instantiate(new GameObject());
                    eventSystem.AddComponent <EventSystem>();
                    eventSystem.AddComponent <StandaloneInputModule>();
                    eventSystem.AddComponent <BaseInput>();
                    eventSystem.name = "Event System";

                    CleanUp();

                    if (CellImage == null)
                    {
                        EditorUtility.DisplayDialog("Setup uncompleted", " Please attach sprite to cell image field. Otherwise, inventory cells will be invisible", "Continue");
                        return;
                    }

                    // Drawing Canvas
                    var obj = Instantiate(new GameObject());
                    obj.AddComponent <Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
                    obj.AddComponent <CanvasScaler>();
                    obj.AddComponent <GraphicRaycaster>();
                    obj.AddComponent <InventoryManager>();

                    eventSystem.gameObject.transform.parent = obj.transform;

                    obj.name = "Inventory Canvas";


                    // Drawing Inventory (cell holder in context)

                    var cellHolder = Instantiate(new GameObject());
                    cellHolder.transform.SetParent(obj.transform);
                    cellHolder.name = "Inventory";

                    inventoryTransform = obj.transform;

                    var cellHolderImage = cellHolder.AddComponent <Image>();
                    cellHolderImage.rectTransform.sizeDelta        = new Vector2((CellRectSize + CellSpacing) * SizeX, (CellRectSize + CellSpacing) * SizeY);
                    cellHolderImage.rectTransform.anchoredPosition = Vector2.zero;
                    cellHolderImage.color = inventoryBackgroundColor;

                    inventoryRectSize = cellHolderImage.rectTransform.sizeDelta;

                    var inventory = cellHolder.AddComponent <DTInventory>();
                    inventory.cellSize = CellRectSize;
                    inventory.padding  = CellSpacing;
                    inventory.column   = SizeX;
                    inventory.row      = SizeY;

                    inventory.normalCellColor  = normalCellColor;
                    inventory.blockedCellColor = blockedCellCover;
                    inventory.hoveredCellColor = hoveredCellColor;

                    // Making inventory grid cell object

                    var imgObj = Instantiate(new GameObject());
                    imgObj.AddComponent <Image>().sprite            = CellImage;
                    imgObj.GetComponent <RectTransform>().sizeDelta = new Vector2(CellRectSize, CellRectSize);
                    imgObj.GetComponent <RectTransform>().anchorMin = new Vector2(0, 1);
                    imgObj.GetComponent <RectTransform>().anchorMax = new Vector2(0, 1);
                    imgObj.GetComponent <RectTransform>().pivot     = new Vector2(0, 1);
                    imgObj.transform.SetParent(obj.transform);

                    imgObj.GetComponent <Image>().type  = Image.Type.Sliced;
                    imgObj.GetComponent <Image>().color = Color.white;

                    imgObj.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 3000);
                    imgObj.AddComponent <GridSlot>();

                    imgObj.name = "Utility object (Don't delete!)";

                    var stackText = Instantiate(new GameObject());
                    stackText.transform.SetParent(imgObj.transform);

                    var stackTextComponent = stackText.AddComponent <Text>();
                    stackTextComponent.alignment                      = TextAnchor.LowerLeft;
                    stackTextComponent.raycastTarget                  = false;
                    stackTextComponent.rectTransform.anchorMin        = new Vector2(0, 0);
                    stackTextComponent.rectTransform.anchorMax        = new Vector2(0, 0);
                    stackTextComponent.rectTransform.anchoredPosition = new Vector2(53, 53);
                    stackTextComponent.color = stackTextColor;
                    if (stackTextFont != null)
                    {
                        stackTextComponent.font = stackTextFont;
                    }

                    // Drawing Inventory view

                    inventory.cell = imgObj.GetComponent <Image>();
                    inventory.DrawPreview();

                    CleanUp(); CleanUp(); CleanUp(); CleanUp();

                    //this.Close();
                }

                GUILayout.EndVertical();

                GUILayout.EndVertical();
            }

            if (tabIndex == 1)
            {
                inventory = FindObjectOfType <DTInventory>();

                if (inventory == null)
                {
                    EditorGUILayout.HelpBox("No inventory found in the scene. You must create inventory first, in order to create loot window", MessageType.Error);
                }
                else
                {
                    GUILayout.BeginVertical("GroupBox");

                    LootSizeX = EditorGUILayout.IntField("Loot Horizontal size", LootSizeX);
                    LootSizeY = EditorGUILayout.IntField("Loot Vertical size", LootSizeY);

                    if (GUILayout.Button("Build Loot Window"))
                    {
                        var cellHolder = Instantiate(new GameObject());
                        cellHolder.transform.SetParent(inventoryTransform);
                        cellHolder.name = "Loot window";

                        var cellHolderImage = cellHolder.AddComponent <Image>();
                        cellHolderImage.rectTransform.sizeDelta        = new Vector2((CellRectSize + CellSpacing) * LootSizeX, (CellRectSize + CellSpacing) * LootSizeY);
                        cellHolderImage.rectTransform.anchoredPosition = Vector2.zero;
                        cellHolderImage.color = inventoryBackgroundColor;

                        cellHolderImage.rectTransform.anchoredPosition = new Vector2(inventoryRectSize.x, 0);

                        inventory.lootPanel  = cellHolder.GetComponent <RectTransform>();
                        inventory.lootRow    = LootSizeX;
                        inventory.lootColumn = LootSizeY;

                        //DestroyImmediate(GameObject.Find("Inventory Canvas"));
                        inventory.DrawPreview();
                        CleanUp();
                    }
                }
            }

            if (tabIndex == 2)
            {
                if (inventory == null)
                {
                    EditorGUILayout.HelpBox("No inventory found in the scene. You must create inventory first, in order to create equipment panels", MessageType.Error);
                }
                else
                {
                    scrollPos = EditorGUILayout.BeginScrollView(scrollPos,
                                                                false,
                                                                false);

                    equipmentPanelsCount = EditorGUILayout.IntSlider("Equipment panels count", equipmentPanelsCount, 1, 20);

                    if (currentEquipmentPanelsCount != equipmentPanelsCount)
                    {
                        equipmentPanelX    = new int[equipmentPanelsCount];
                        equipmentPanelY    = new int[equipmentPanelsCount];
                        equipmentPanelType = new string[equipmentPanelsCount];

                        currentEquipmentPanelsCount = equipmentPanelsCount;
                    }

                    for (int i = 0; i < equipmentPanelsCount; i++)
                    {
                        GUILayout.BeginVertical("HelpBox");
                        GUILayout.Label("Equipment panel " + (i + 1) + " :" + equipmentPanelType[i], EditorStyles.boldLabel);

                        GUILayout.Label("");

                        equipmentPanelX[i] = EditorGUILayout.IntField("Equipment Horizontal size", equipmentPanelX[i]);

                        if (equipmentPanelX[i] == 0)
                        {
                            equipmentPanelX[i] = 1;
                        }

                        equipmentPanelY[i] = EditorGUILayout.IntField("Equipment Vertical size", equipmentPanelY[i]);

                        if (equipmentPanelY[i] == 0)
                        {
                            equipmentPanelY[i] = 1;
                        }

                        equipmentPanelType[i] = EditorGUILayout.TextField("Allowed item type", equipmentPanelType[i]);
                        GUILayout.EndVertical();
                    }

                    if (GUILayout.Button("Build panels"))
                    {
                        inventory.equipmentPanels = new List <EquipmentPanel>();

                        for (int i = 0; i < equipmentPanelsCount; i++)
                        {
                            var cellHolder = Instantiate(new GameObject());
                            cellHolder.transform.SetParent(inventoryTransform);
                            cellHolder.name = "Equiment panel :" + equipmentPanelType[i];
                            var equipmentPanel = cellHolder.AddComponent <EquipmentPanel>();

                            equipmentPanel.width           = equipmentPanelX[i];
                            equipmentPanel.height          = equipmentPanelY[i];
                            equipmentPanel.allowedItemType = equipmentPanelType[i];

                            var cellHolderImage = cellHolder.AddComponent <Image>();
                            cellHolderImage.rectTransform.sizeDelta        = new Vector2((CellRectSize + CellSpacing) * equipmentPanelX[i], (CellRectSize + CellSpacing) * equipmentPanelY[i]);
                            cellHolderImage.rectTransform.anchoredPosition = Vector2.zero;
                            cellHolderImage.color = inventoryBackgroundColor;

                            inventory.equipmentPanels.Add(equipmentPanel);

                            //cellHolderImage.rectTransform.anchoredPosition = new Vector2(inventoryRectSize.x, 0);

                            //DestroyImmediate(GameObject.Find("Inventory Canvas"));

                            CleanUp();
                        }

                        inventory.DrawPreview();
                    }

                    EditorGUILayout.EndScrollView();
                }
            }
        }