/// <summary> Called when the nfo[] edit fields should be rendered </summary>
    public override void NfoField(plyDataObject data, EditorWindow ed)
    {
        // Let designer pick a reward type
        EditorGUI.BeginChangeCheck();
        selectedOption = EditorGUILayout.Popup("Reward Type", selectedOption, Options);
        if (EditorGUI.EndChangeCheck())
        {
            data.nfo[0] = selectedOption.ToString();
            data.nfo[1] = "";

            if (selectedOption == 1)
            {
                // set a default item to be selected
                selectedItem = 0;
                data.nfo[1] = ItemNames[0];
            }
        }

        // Let designer pick an item as reward
        if (selectedOption == 1)
        {
            EditorGUI.BeginChangeCheck();
            selectedItem = EditorGUILayout.Popup(" ", selectedItem, ItemNames);
            if (EditorGUI.EndChangeCheck()) data.nfo[1] = ItemNames[selectedItem];
        }
    }
		/// <summary> Return a nice name that identifies the data. Shown in the button
		/// used to open the data provider editor window for setup. </summary>
		public override string PrettyName(plyDataObject data, string emptyText)
		{
			if (data.nfo[0] == "0")
                return "Currency";
            
            if (data.nfo[0] == "1")
                return "Inventory Pro item: " + data.nfo[2];

            return emptyText;
		}
Пример #3
0
        /// <summary> Called when the data provider is selected </summary>
        public override void NfoFieldFocus(plyDataObject data, EditorWindow ed)
        {
            // make sure the Component that handles the Rewards is registered to be added to DiaQ
            EdGlobal.RemoveAutoComponent("DiaQ", typeof(plyRPGDiaQRewardHandler).AssemblyQualifiedName); // make sure old one is not present as it causes problems
            EdGlobal.RegisterAutoComponent("DiaQ", typeof(InventoryProDiaQRewardHandler).AssemblyQualifiedName);

            _selected = 0;
            int.TryParse(data.nfo[0], out _selected);

            if (_attribsAsset == null)
            {
                if (_dataAsset == null)
                {
                    _dataAsset = EdGlobal.GetDataAsset();
                }
                _attribsAsset = (ActorAttributesAsset)_dataAsset.GetAsset <ActorAttributesAsset>();
                if (_attribsAsset == null)
                {
                    _attribsAsset = (ActorAttributesAsset)EdGlobal.LoadOrCreateAsset <ActorAttributesAsset>(plyEdUtil.DATA_PATH_SYSTEM + "attributes.asset", null);
                }
            }

            if (_itemsAsset == null)
            {
                if (_dataAsset == null)
                {
                    _dataAsset = EdGlobal.GetDataAsset();
                }
                _itemsAsset = (ItemsAsset)_dataAsset.GetAsset <ItemsAsset>();
                if (_itemsAsset == null)
                {
                    _itemsAsset = (ItemsAsset)EdGlobal.LoadOrCreateAsset <ItemsAsset>(plyEdUtil.DATA_PATH_SYSTEM + "items.asset", null);
                }
                _itemsAsset.UpdateItemCache();
            }

            _selectedIdent = -1;
            _attribNames   = new string[_attribsAsset.attributes.Count];
            for (int i = 0; i < _attribsAsset.attributes.Count; i++)
            {
                _attribNames[i] = _attribsAsset.attributes[i].def.screenName;
                if (_selected == 1 && _selectedIdent < 0)
                {
                    if (data.nfo[1].Equals(_attribsAsset.attributes[i].id.ToString()))
                    {
                        _selectedIdent = i;
                        data.nfo[2]    = _attribsAsset.attributes[_selectedIdent].ToString();                      // update cached name just in case it has changed
                        GUI.changed    = true;
                    }
                }
            }
        }
Пример #4
0
        /// <summary> Return a nice name that identifies the data. Shown in the button
        /// used to open the data provider editor window for setup. </summary>
        public override string PrettyName(plyDataObject data, string emptyText)
        {
            if (data.nfo[0] == "0")
            {
                return("Currency: " + data.nfo[2]);
            }

            if (data.nfo[0] == "1")
            {
                return("Inventory Pro item: " + data.nfo[2]);
            }

            return(emptyText);
        }
Пример #5
0
        /// <summary> Called when the nfo[] edit fields should be rendered </summary>
        public override void NfoField(plyDataObject data, EditorWindow ed)
        {
            // nfo[0] = 0:Currency, 1:Item
            // nfo[1] = the identifier of the attribute or item.(not used with currency selected)
            // nfo[2] = cached name of selected attribute or item

            EditorGUI.BeginChangeCheck();
            _selected = EditorGUILayout.Popup("Reward Type", _selected, _options);
            if (EditorGUI.EndChangeCheck())
            {
                data.nfo[0] = _selected.ToString();
                data.nfo[1] = "-1";
                data.nfo[2] = "";
            }

            if (_selected == 0)
            {
                ObjectPickerUtility.RenderObjectPickerForType <CurrencyDefinition>("Currency", _selectedCurrency, (val) =>
                {
                    _selectedCurrency = val;
                });

                data.nfo[0] = "0";
                data.nfo[1] = _selectedCurrency.ToString();
                data.nfo[2] = _selectedCurrency != null ? _selectedCurrency.singleName : " (NOT FOUND)";
            }
            else if (_selected == 1)
            {
                if (GUILayout.Button("Select item"))
                {
                    //itemPicker = InventoryItemPicker.Get();
                    ObjectPickerUtility.GetObjectPickerForType <InventoryItemBase>(item =>
                    {
                        data.nfo[0]       = "1";
                        data.nfo[1]       = item.ID.ToString();
                        data.nfo[2]       = item.name;
                        _selectedCurrency = null;
                        //data.nfo[2] = item.currentStackSize.ToString();

                        ed.Repaint();
                        GUI.changed = true;
                    });
                }
            }
        }
        /// <summary> Called when the nfo[] edit fields should be rendered </summary>
        public override void NfoField(plyDataObject data, EditorWindow ed)
        {
            // nfo[0] = 0:Currency, 1:Attribute, 2:Item
            // nfo[1] = the identifier of the attribute or item.(not used with currency selected)
            // nfo[2] = cached name of selected attribute or item

            if (selectingItem)
            {
                ShowSelectItem(data);
                return;
            }

            EditorGUI.BeginChangeCheck();
            selected = EditorGUILayout.Popup("Reward Type", selected, Options);
            if (EditorGUI.EndChangeCheck())
            {
                data.nfo[0] = selected.ToString();
                data.nfo[1] = "-1";
                data.nfo[2] = "";
            }

            if (selected == 1)
            {
                EditorGUI.BeginChangeCheck();
                selectedIdent = EditorGUILayout.Popup(" ", selectedIdent, attribNames);
                if (EditorGUI.EndChangeCheck())
                {
                    data.nfo[1] = attribsAsset.attributes[selectedIdent].id.ToString();
                    data.nfo[2] = attribsAsset.attributes[selectedIdent].def.screenName;
                }
            }

            else if (selected == 2)
            {
                if (GUILayout.Button(string.IsNullOrEmpty(data.nfo[2]) ? "-select-" : data.nfo[2]))
                {
                    selectingItem = true;
                }
            }
        }
        private void ShowSelectItem(plyDataObject data)
        {
            GUILayout.Label("Select Item");
            if (GUILayout.Button(GC_BACK))
            {
                selectingItem = false;
                return;
            }

            foreach (Item it in itemsAsset.items)
            {
                if (GUILayout.Button(it.def.screenName))
                {
                    data.nfo[1] = it.prefabId.ToString();
                    data.nfo[2] = it.def.screenName;
                    selectingItem = false;
                    return;
                }
            }
        }
 /// <summary> Return a nice name that identifies the data. Shown in the button
 /// used to open the data provider editor window for setup. </summary>
 public override string PrettyName(plyDataObject data, string emptyText)
 {
     if (data.nfo[0] == "0") return "Currency";
     return string.IsNullOrEmpty(data.nfo[2]) ? "-error-" : data.nfo[2];
 }
        /// <summary> Called when the data provider is selected </summary>
        public override void NfoFieldFocus(plyDataObject data, EditorWindow ed)
        {
            // make sure the Component that handles the Rewards is registered to be added to DiaQ
            EdGlobal.RegisterAutoComponent("DiaQ", "plyRPGDiaQRewardHandler");

            selected = 0;
            int.TryParse(data.nfo[0], out selected);

            if (attribsAsset == null)
            {
                if (dataAsset == null) dataAsset = EdGlobal.GetDataAsset();
                attribsAsset = (ActorAttributesAsset)dataAsset.GetAsset<ActorAttributesAsset>();
                if (attribsAsset == null) attribsAsset = (ActorAttributesAsset)EdGlobal.LoadOrCreateAsset<ActorAttributesAsset>(EdGlobal.DATA_PATH_SYSTEM + "attributes.asset", null);
            }

            if (itemsAsset == null)
            {
                if (dataAsset == null) dataAsset = EdGlobal.GetDataAsset();
                itemsAsset = (ItemsAsset)dataAsset.GetAsset<ItemsAsset>();
                if (itemsAsset == null) itemsAsset = (ItemsAsset)EdGlobal.LoadOrCreateAsset<ItemsAsset>(EdGlobal.DATA_PATH_SYSTEM + "items.asset", null);
                itemsAsset.UpdateItemCache();
            }

            selectedIdent = -1;
            attribNames = new string[attribsAsset.attributes.Count];
            for (int i = 0; i < attribsAsset.attributes.Count; i++)
            {
                attribNames[i] = attribsAsset.attributes[i].def.screenName;
                if (selected == 1 && selectedIdent < 0)
                {
                    if (data.nfo[1].Equals(attribsAsset.attributes[i].id.ToString()))
                    {
                        selectedIdent = i;
                        data.nfo[2] = attribsAsset.attributes[selectedIdent].def.screenName; // update cached name just in case it has changed
                        GUI.changed = true;
                    }
                }
            }

            if (data.nfo[0] == "2")
            {
                if (null == itemsAsset.GetDefinition(new UniqueID(data.nfo[1])))
                {
                    data.nfo[1] = "";
                    data.nfo[2] = "";
                    GUI.changed = true;
                }
            }
        }
		/// <summary> Called when the nfo[] edit fields should be rendered </summary>
		public override void NfoField(plyDataObject data, EditorWindow ed)
		{
			// nfo[0] = 0:Currency, 1:Item
			// nfo[1] = the identifier of the attribute or item.(not used with currency selected)
			// nfo[2] = cached name of selected attribute or item

			EditorGUI.BeginChangeCheck();
			selected = EditorGUILayout.Popup("Reward Type", selected, Options);
			if (EditorGUI.EndChangeCheck())
			{
				data.nfo[0] = selected.ToString();
                data.nfo[1] = "-1";
                data.nfo[2] = "";
			}

            if (selected == 0)
            {
                GUILayout.TextField("New currency system in development");
            }
            else if (selected == 1)
            {
                if (GUILayout.Button("Select item"))
                {
                    //itemPicker = InventoryItemPicker.Get();
                    itemPicker.Show(true);
                    itemPicker.OnPickObject += (item) =>
                    {
                        data.nfo[0] = "1";
                        data.nfo[1] = item.ID.ToString();
                        data.nfo[2] = item.name;
                        selectedItem = item;
                        //data.nfo[2] = item.currentStackSize.ToString();

                        ed.Repaint();
                        GUI.changed = true;
                    };
                }
            }
		}
		/// <summary> Called when the data provider is selected </summary>
		public override void NfoFieldFocus(plyDataObject data, EditorWindow ed)
		{
			// make sure the Component that handles the Rewards is registered to be added to DiaQ
            EdGlobal.RemoveAutoComponent("DiaQ", typeof(plyRPGDiaQRewardHandler).AssemblyQualifiedName); // make sure old one is not present as it causes problems
            EdGlobal.RegisterAutoComponent("DiaQ", typeof(InventoryProDiaQRewardHandler).AssemblyQualifiedName);

			selected = 0;
			int.TryParse(data.nfo[0], out selected);

			if (attribsAsset == null)
			{
				if (dataAsset == null) dataAsset = EdGlobal.GetDataAsset();
				attribsAsset = (ActorAttributesAsset)dataAsset.GetAsset<ActorAttributesAsset>();
				if (attribsAsset == null) attribsAsset = (ActorAttributesAsset)EdGlobal.LoadOrCreateAsset<ActorAttributesAsset>(plyEdUtil.DATA_PATH_SYSTEM + "attributes.asset", null);
			}

			if (itemsAsset == null)
			{
				if (dataAsset == null) dataAsset = EdGlobal.GetDataAsset();
				itemsAsset = (ItemsAsset)dataAsset.GetAsset<ItemsAsset>();
				if (itemsAsset == null) itemsAsset = (ItemsAsset)EdGlobal.LoadOrCreateAsset<ItemsAsset>(plyEdUtil.DATA_PATH_SYSTEM + "items.asset", null);
				itemsAsset.UpdateItemCache();
			}

			selectedIdent = -1;
			attribNames = new string[attribsAsset.attributes.Count];
			for (int i = 0; i < attribsAsset.attributes.Count; i++)
			{
				attribNames[i] = attribsAsset.attributes[i].def.screenName;
				if (selected == 1 && selectedIdent < 0)
				{
					if (data.nfo[1].Equals(attribsAsset.attributes[i].id.ToString()))
					{
						selectedIdent = i;
						data.nfo[2] = attribsAsset.attributes[selectedIdent].ToString(); // update cached name just in case it has changed
						GUI.changed = true;
					}
				}
			}
		}
    /// <summary> Return a nice name that identifies the data. Shown in the button
    /// used to open the data provider editor window for setup. </summary>
    public override string PrettyName(plyDataObject data, string emptyText)
    {
        if (data.nfo[0] == "0") return "XP";

        // in this case we use nfo[1] as a cache of the name of the picked item
        if (data.nfo[0] == "1") return "Item: " + data.nfo[1];
        return emptyText;
    }
    /// <summary> Called when the data provider is selected </summary>
    public override void NfoFieldFocus(plyDataObject data, EditorWindow ed)
    {
        selectedOption = 0;
        int.TryParse(data.nfo[0], out selectedOption);

        selectedItem = -1;
        if (selectedOption == 1)
        {
            for (int i = 0; i < ItemNames.Length; i++)
            {
                if (ItemNames[i].Equals(data.nfo[1]))
                {
                    selectedItem = i;
                    break;
                }
            }

            if (selectedItem < 0)
            {
                // no item selected. set a default.
                selectedItem = 0;
                data.nfo[1] = ItemNames[0];
                GUI.changed = true; // so changed gets saved
            }
        }
    }