public void OnPreprocessBuild(BuildReport report) { PlayerProperties playerPropertiesAsset = Resources.Load <PlayerProperties>(PlayerProperties.ASSET_NAME); if (playerPropertiesAsset.RestoreOnBuild) { playerPropertiesAsset.Restore(); } QuestAsset questAsset = Resources.Load <QuestAsset>(QuestAsset.ASSET_NAME); if (questAsset.RestoreOnBuild) { questAsset.Restore(); } IntroductionAsset introAsset = Resources.Load <IntroductionAsset>(IntroductionAsset.ASSET_NAME); if (introAsset.RestoreOnBuild) { introAsset.Restore(); } MiniGameSettingAsset minigameAsset = Resources.Load <MiniGameSettingAsset>(MiniGameSettingAsset.ASSET_NAME); if (minigameAsset.RestoreOnBuild) { minigameAsset.Restore(); } Debug.Log($"Tried restoring scriptable object assets"); }
IEnumerator Flip(QuestAsset startImage, QuestAsset endImage, int cardIndex) { float time = 0f; while (time <= 1f) { float scale = scaleCurve.Evaluate(time); time += Time.deltaTime / duration; Vector3 localScale = transform.localScale; localScale.x = scale; transform.localScale = localScale; yield return(new WaitForFixedUpdate()); } if (cardIndex == -1) { model.ToggleFace(false); } else { model.questCardIndex = cardIndex; model.ToggleFace(true); } }
public void OnQuestAddElement(ReorderableList reorderableList) { Undo.RecordObject(serializedObject.targetObject, "Add Quest Item"); ReorderableList.defaultBehaviours.DoAddButton(reorderableList); serializedObject.ApplyModifiedProperties(); QuestAsset p = CreateAsset <QuestAsset>(assetName: GetUniqueQuestName(typeof(QuestAsset).Name)); reorderableList.serializedProperty.GetArrayElementAtIndex(reorderableList.serializedProperty.arraySize - 1).objectReferenceValue = p; serializedObject.ApplyModifiedProperties(); }
public void OnPreprocessBuild(BuildReport report) { PlayerPropertiesAsset playerPropertiesAsset = Resources.Load <PlayerPropertiesAsset>(PlayerPropertiesAsset.ASSET_NAME); if (playerPropertiesAsset.RestoreOnBuild) { playerPropertiesAsset.Restore(); } QuestAsset questAsset = Resources.Load <QuestAsset>(QuestAsset.ASSET_NAME); if (questAsset.RestoreOnBuild) { questAsset.Restore(); } }
private void PrefixNames() { QuestAsset quest = ((QuestAsset)serializedObject.targetObject); if (quest == null) { return; } ProgressionPointAsset[] progressionPointArray = quest.GetProgressionPoints(); for (int i = 0; i < progressionPointArray.Length; i++) { ProgressionPointAsset p = progressionPointArray[i]; string intFormat = new string('0', (progressionPointArray.Length / 10) + 1); p.name = quest.name + "_" + i.ToString(intFormat) + "|" + p.name; } EditorUtility.SetDirty(serializedObject.targetObject); }
public void OnGUI() { EditorStyles.textField.wordWrap = true; TabBar(); GUILayout.BeginHorizontal(); switch (tabState) { case TabState.WEAPONS: Weapons(); break; case TabState.CONSUMABLES: Consumables(); break; case TabState.QUEST_ITEMS: QuestItems(); break; default: About(); break; } GUILayout.EndHorizontal(); StatusBar(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Create Weapon", EditorStyles.toolbarButton)) { var newAsset = new WeaponAsset(WeaponDatabase.Instance.GetNextId()); WeaponDatabase.Instance.Add(newAsset); } if (GUILayout.Button("Create Consumable", EditorStyles.toolbarButton)) { var newAsset = new ConsumableAsset(ConsumableDatabase.Instance.GetNextId()); ConsumableDatabase.Instance.Add(newAsset); } if (GUILayout.Button("Create Quest Item", EditorStyles.toolbarButton)) { var newAsset = new QuestAsset(QuestDatabase.Instance.GetNextId()); QuestDatabase.Instance.Add(newAsset); } GUILayout.EndHorizontal(); }
public void OnDisable() { QuestAsset quest = (QuestAsset)serializedObject.targetObject; if (quest == null) { return; } PrefixNames(); ProgressionPointAsset[] progressionPointArray = quest.GetProgressionPoints(); for (int i = 0; i < progressionPointArray.Length; i++) { if (AssetPath != AssetDatabase.GetAssetPath(progressionPointArray[i])) { AssetDatabase.AddObjectToAsset(progressionPointArray[i], quest); } } EditorApplication.delayCall += () => AssetDatabase.ImportAsset(AssetPath); }
public void OnQuestElementGUI(Rect rect, int index, bool isActive, bool isFocused) { SerializedProperty serializedProperty = questsProperty.GetArrayElementAtIndex(index); QuestAsset quest = serializedProperty.objectReferenceValue as QuestAsset; serializedProperty.isExpanded = true; if (quest == null) { return; } if (isActive) { int original = GUI.skin.textField.fontSize; GUI.skin.textField.fontSize = original * 2; EditorGUI.BeginChangeCheck(); GUIStyle style = new GUIStyle(GUI.skin.textField); style.fontSize = original * 2; GUI.SetNextControlName(quest.GetInstanceID().ToString()); string newName = EditorGUI.DelayedTextField(rect, "", quest.name, style); if (GUI.GetNameOfFocusedControl() == quest.GetInstanceID().ToString()) { Rect helpRect = new Rect(rect.x, rect.y - EditorGUIUtility.singleLineHeight, rect.width, rect.height / 2); EditorGUI.HelpBox(helpRect, "Press Enter To Submit", MessageType.Warning); } if (EditorGUI.EndChangeCheck()) { newName = GetUniqueQuestName(newName); Undo.RecordObject(quest, "Change name from " + quest.name + " to " + newName); quest.name = newName; EditorUtility.SetDirty(quest); serializedObject.ApplyModifiedProperties(); questsReorderableList.onSelectCallback(questsReorderableList); } GUI.skin.textField.fontSize = original; } else { EditorGUI.LabelField(rect, quest.name); } }
public override void OnInspectorGUI() { DrawDefaultInspector(); EditorGUILayout.Space(25f); GUIStyle style = new GUIStyle(GUI.skin.button) { alignment = TextAnchor.MiddleCenter, fontSize = 15, fontStyle = FontStyle.Italic, padding = new RectOffset(15, 15, 5, 5) }; EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button(BUTTON_TEXT, style, GUILayout.ExpandWidth(false))) { QuestAsset asset = target as QuestAsset; asset.Restore(); } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }
public void OnQuestRemoveElement(ReorderableList reorderableList) { Undo.RecordObject(serializedObject.targetObject, "Delete Quest Item"); if (questEditor != null) { DestroyImmediate(questEditor); } QuestManagerAsset st = ((QuestManagerAsset)serializedObject.targetObject); QuestAsset p = st.GetQuests()[reorderableList.index]; ProgressionPointAsset[] progressionPoints = p.GetProgressionPoints(); for (int i = 0; i < progressionPoints.Length; i++) { DestroyAsset(progressionPoints[i]); } reorderableList.serializedProperty.DeleteArrayElementAtIndex(reorderableList.index); reorderableList.serializedProperty.MoveArrayElement(reorderableList.index, reorderableList.count - 1); reorderableList.serializedProperty.arraySize--; if (p != null) { DestroyAsset(p); } }
public void QuestItems() { scrollPosition = GUILayout.BeginScrollView(scrollPosition); for (int i = 0; i < QuestDatabase.GetAssetCount(); i++) { QuestAsset asset = QuestDatabase.GetAt(i); if (asset != null) { GUILayout.BeginHorizontal(EditorStyles.toolbar); GUILayout.Label(string.Format("ID: {0}", asset.ID.ToString("D3")), GUILayout.Width(60)); bool clicked = GUILayout.Toggle(asset.ID == activeID, asset.Name, ToggleButtonStyle); if (clicked != (asset.ID == activeID)) { if (clicked) { activeID = asset.ID; GUI.FocusControl(null); } else { activeID = -1; } } if (GUILayout.Button("x", EditorStyles.toolbarButton, GUILayout.Width(30)) && EditorUtility.DisplayDialog("Delete Quest Item", "Are you sure you want to delete " + asset.Name + " Consumable?", "Delete", "Cancel")) { QuestDatabase.Instance.RemoveAt(i); } GUILayout.EndHorizontal(); if (activeID == asset.ID) { EditorGUI.BeginChangeCheck(); GUILayout.BeginVertical("Box"); GUILayout.BeginHorizontal(); //ITEM SPRITE GUILayout.BeginVertical(GUILayout.Width(75)); //begin vertical asset.Icon = (Sprite)EditorGUILayout.ObjectField(asset.Icon, typeof(Sprite), false, GUILayout.Width(72), GUILayout.Height(72)); GUILayout.Label("Item Sprite", GUILayout.Width(72)); GUILayout.EndVertical(); //end vertical //ITEM CLASS GUILayout.BeginVertical(); //begin vertical GUILayout.Label("Item Class: " + asset.IType.ToString(), EditorStyles.boldLabel); //NAME GUILayout.BeginHorizontal(); GUILayout.Label("Name", GUILayout.Width(80)); asset.Name = EditorGUILayout.TextField(asset.Name); GUILayout.EndHorizontal(); //DESCRIPTION GUILayout.BeginHorizontal(); GUILayout.Label("Description", GUILayout.Width(80)); asset.Description = EditorGUILayout.TextArea(asset.Description, GUILayout.MinHeight(30)); GUILayout.EndHorizontal(); //COST GUILayout.BeginHorizontal(); GUILayout.Label("Cost", GUILayout.Width(80)); asset.Cost = EditorGUILayout.IntField(asset.Cost); GUILayout.EndHorizontal(); //STACKABLE GUILayout.BeginHorizontal(); GUILayout.Label("Stackable", GUILayout.Width(80)); GUILayout.BeginVertical(); asset.Stackable = EditorGUILayout.BeginToggleGroup("Enabled", asset.Stackable); GUILayout.BeginHorizontal(); GUILayout.Label("Stack Size", GUILayout.Width(80)); asset.StackSize = EditorGUILayout.IntSlider(asset.StackSize, 2, 64); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); EditorGUILayout.EndToggleGroup(); GUILayout.BeginHorizontal(); GUILayout.Label("Level", GUILayout.Width(80)); asset.Level = EditorGUILayout.IntSlider(asset.Level, 1, 99); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Weight", GUILayout.Width(80)); asset.Weight = EditorGUILayout.IntSlider(asset.Weight, 0, 99); GUILayout.EndHorizontal(); GUILayout.Label("QuestItem Variables", EditorStyles.boldLabel); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(QuestDatabase.Instance); } } } } GUILayout.EndScrollView(); }
public void FlipCard(QuestAsset startImage, QuestAsset endImage, int cardIndex) { StopCoroutine(Flip(startImage, endImage, cardIndex)); StartCoroutine(Flip(startImage, endImage, cardIndex)); }