public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); RPGMakerGUI.Title("Objectives - Options"); RPGMakerGUI.Toggle("Show Quest Markers?", ref Questing.ShowQuestMarkers); Questing.QuestStarted.Audio = RPGMakerGUI.AudioClipSelector("Quest Started Sound:", Questing.QuestStarted.Audio, ref Questing.QuestStarted.AudioPath); Questing.QuestComplete.Audio = RPGMakerGUI.AudioClipSelector("Quest Completed Sound:", Questing.QuestComplete.Audio, ref Questing.QuestComplete.AudioPath); GUILayout.EndArea(); }
public static void Options(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); RPGMakerGUI.Title("Game Options"); RPGMakerGUI.SubTitle("General"); Customise.GameHasAchievements = RPGMakerGUI.Toggle("Enable Achievements?", Customise.GameHasAchievements, GUILayout.Width(300)); Customise.AchievementUnlockedSound.Audio = RPGMakerGUI.AudioClipSelector("Achievement Unlocked Sound:", Customise.AchievementUnlockedSound.Audio, ref Customise.AchievementUnlockedSound.AudioPath); Customise.LoadingScreen.Image = RPGMakerGUI.ImageSelector("Loading Screen:", Customise.LoadingScreen.Image, ref Customise.LoadingScreen.ImagePath); RPGMakerGUI.SubTitle("Enable Popups"); RPGMakerGUI.Toggle("Exp Gained", ref Customise.EnableExpGainedPopup); RPGMakerGUI.Toggle("Level Reached", ref Customise.EnableLevelReachedPopup); RPGMakerGUI.Toggle("Skill Exp Gained", ref Customise.EnableSkillExpGainedPopup); RPGMakerGUI.SubTitle("Tooltip"); RPGMakerGUI.Toggle("Follow Mouse Position", ref Customise.TooltipFollowsCursor); GUILayout.EndArea(); }
public static void GlobalPlaylist(Rect fullArea, Rect leftArea, Rect mainArea) { GUI.Box(fullArea, "", "backgroundBox"); GUILayout.BeginArea(fullArea); playlistScrollPos = GUILayout.BeginScrollView(playlistScrollPos); RPGMakerGUI.Title("Global Music Playlist"); RPGMakerGUI.SubTitle("Audio Options"); Audio.PlayThroughSceneSwitch = RPGMakerGUI.Toggle("Persist Through Scenes?", Audio.PlayThroughSceneSwitch, GUILayout.Width(300)); Audio.LoadAllAudioOnLoad = RPGMakerGUI.Toggle("Load All Audio On Load?", Audio.LoadAllAudioOnLoad, GUILayout.Width(300)); Audio.FadeOutMusic = RPGMakerGUI.Toggle("Fade Out Tracks?", Audio.FadeOutMusic, GUILayout.Width(300)); Audio.FadeOutTime = RPGMakerGUI.FloatField("Fade Out Time:", Audio.FadeOutTime, 1, GUILayout.Width(300)); Audio.FadeInMusic = RPGMakerGUI.Toggle("Fade In Tracks?", Audio.FadeInMusic, GUILayout.Width(300)); Audio.FadeInTime = RPGMakerGUI.FloatField("Fade In Time:", Audio.FadeInTime, 1, GUILayout.Width(300)); RPGMakerGUI.Toggle("Shuffle Playlist?", ref Audio.ShufflePlaylist, GUILayout.Width(300)); var result = RPGMakerGUI.FoldoutToolBar(ref showPlaylist, "Global Playlist", new[] { "+ Music" }); if (showPlaylist) { if (result == 0) { Audio.GlobalPlaylist.Add(new AudioContainer()); } GUILayout.Space(5); for (int index = 0; index < Audio.GlobalPlaylist.Count; index++) { var music = Audio.GlobalPlaylist[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", music.Audio, ref music.AudioPath); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.GlobalPlaylist.Remove(music); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.GlobalPlaylist.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add bg music to be played when scene music is not found.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } if (RPGMakerGUI.Toggle("Unique scene music?", ref Audio.PlayUniqueMusicForScenes)) { var battleResult = RPGMakerGUI.FoldoutToolBar(ref showScenePlaylists, "Scene Playlists", new[] { "+ Scene" }); if (showScenePlaylists) { if (battleResult == 0) { Audio.ScenePlaylists.Add(new SceneMusic()); } GUILayout.Space(5); for (int index = 0; index < Audio.ScenePlaylists.Count; index++) { var sceneMusic = Audio.ScenePlaylists[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); sceneMusic.Music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", sceneMusic.Music.Audio, ref sceneMusic.Music.AudioPath); sceneMusic.SceneName = RPGMakerGUI.SceneSelector("Scene:", ref sceneMusic.SceneName); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.ScenePlaylists.Remove(sceneMusic); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.ScenePlaylists.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add music to be played during battles.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } } if (RPGMakerGUI.Toggle("Unique battle music?", ref Audio.PlayUniqueMusicForBattles)) { var battleResult = RPGMakerGUI.FoldoutToolBar(ref showBattlePlaylist, "Battle Playlist", new[] { "+ Music" }); if (showBattlePlaylist) { if (battleResult == 0) { Audio.BattlePlaylist.Add(new AudioContainer()); } GUILayout.Space(5); for (int index = 0; index < Audio.BattlePlaylist.Count; index++) { var music = Audio.BattlePlaylist[index]; GUILayout.BeginHorizontal(GUILayout.Height(30)); GUILayout.Space(5); music.Audio = RPGMakerGUI.AudioClipSelector("Music File:", music.Audio, ref music.AudioPath); if (GUILayout.Button(RPGMakerGUI.DelIcon, "genericButton", GUILayout.Width(25), GUILayout.Height(25))) { Audio.BattlePlaylist.Remove(music); index--; } GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); } if (Audio.BattlePlaylist.Count == 0) { EditorGUILayout.HelpBox("Click +Music to add music to be played during battles.", MessageType.Info); } RPGMakerGUI.EndFoldout(); } } if (RPGMakerGUI.Toggle("Unique music on Player Death?", ref Audio.PlayUniqueMusicForDeath)) { Audio.DeathMusic.Audio = RPGMakerGUI.AudioClipSelector("- Music File:", Audio.DeathMusic.Audio, ref Audio.DeathMusic.AudioPath); } GUILayout.EndScrollView(); GUILayout.EndArea(); }
public static void HarvestableObjects(Rect fullArea, Rect leftArea, Rect mainArea) { var list = Rm_RPGHandler.Instance.Harvesting.HarvestableDefinitions; GUI.Box(leftArea, "", "backgroundBox"); GUI.Box(mainArea, "", "backgroundBoxMain"); GUILayout.BeginArea(PadRect(leftArea, 0, 0)); RPGMakerGUI.ListArea(list, ref selectedHarvestable, Rm_ListAreaType.Harvestables, false, true); GUILayout.EndArea(); GUILayout.BeginArea(mainArea); areaScrollPos = GUILayout.BeginScrollView(areaScrollPos); RPGMakerGUI.Title("Harvestable Objects"); if (selectedHarvestable != null) { RPGMakerGUI.TextField("ID: ", selectedHarvestable.ID); selectedHarvestable.Name = RPGMakerGUI.TextField("Name: ", selectedHarvestable.Name); GUILayout.BeginHorizontal(); gameObject = RPGMakerGUI.PrefabSelector("Prefab:", gameObject, ref selectedHarvestable.PrefabPath); gameObject = RPGMakerGUI.PrefabGeneratorButton(Rmh_PrefabType.Harvest, gameObject, ref selectedHarvestable.PrefabPath, null, selectedHarvestable.ID); GUILayout.EndHorizontal(); if (RPGMakerGUI.Toggle("Regenerates harvestables?", ref selectedHarvestable.RegensResources)) { selectedHarvestable.TimeInSecToRegen = RPGMakerGUI.FloatField("Time before regen:", selectedHarvestable.TimeInSecToRegen); selectedHarvestable.AmountRegenerated = RPGMakerGUI.IntField("Amount regenerated:", selectedHarvestable.AmountRegenerated); selectedHarvestable.MaxAtOnce = RPGMakerGUI.IntField("Max At Once:", selectedHarvestable.MaxAtOnce); } else { selectedHarvestable.MinObtainable = RPGMakerGUI.IntField("Min Total Quantity Obtainable:", selectedHarvestable.MinObtainable); selectedHarvestable.MaxObtainable = RPGMakerGUI.IntField("Max Total Quantity Obtainable:", selectedHarvestable.MaxObtainable); } if (RPGMakerGUI.Toggle("Is Quest Item?", ref selectedHarvestable.IsQuestItem)) { RPGMakerGUI.PopupID <Quest>("Accepted Quest Required To Loot:", ref selectedHarvestable.QuestAcceptedID); RPGMakerGUI.PopupID <Item>("Harvested Quest Item:", ref selectedHarvestable.HarvestedObjectID, "ID", "Name", "Quest"); if (!string.IsNullOrEmpty(selectedHarvestable.HarvestedObjectID)) { var item = Rm_RPGHandler.Instance.Repositories.QuestItems.AllItems.First(i => i.ID == selectedHarvestable.HarvestedObjectID); var stackable = item as IStackable; if (stackable != null) { selectedHarvestable.MinAmountGained = RPGMakerGUI.IntField("Min Quantity Gained:", selectedHarvestable.MinAmountGained); selectedHarvestable.MaxAmountGained = RPGMakerGUI.IntField("Max Quantity Gained:", selectedHarvestable.MaxAmountGained); } } } else { RPGMakerGUI.PopupID <Item>("Harvested Item:", ref selectedHarvestable.HarvestedObjectID); if (!string.IsNullOrEmpty(selectedHarvestable.HarvestedObjectID)) { var item = Rm_RPGHandler.Instance.Repositories.Items.AllItems.First(i => i.ID == selectedHarvestable.HarvestedObjectID); var stackable = item as IStackable; if (stackable != null) { selectedHarvestable.MinAmountGained = RPGMakerGUI.IntField("Min Quantity Gained:", selectedHarvestable.MinAmountGained); selectedHarvestable.MaxAmountGained = RPGMakerGUI.IntField("Max Quantity Gained:", selectedHarvestable.MaxAmountGained); } } } selectedHarvestable.HarvestSound = RPGMakerGUI.AudioClipSelector("Harvesting Sound:", selectedHarvestable.HarvestSound, ref selectedHarvestable.HarvestingSoundPath); selectedHarvestable.TimeToHarvest = RPGMakerGUI.FloatField("Time to harvest:", selectedHarvestable.TimeToHarvest); if (RPGMakerGUI.Toggle("Require Level To Harvest:", ref selectedHarvestable.RequireLevel)) { selectedHarvestable.LevelRequired = RPGMakerGUI.IntField("- Required Level", selectedHarvestable.LevelRequired); } if (RPGMakerGUI.Toggle("Require Trait Level To Harvest:", ref selectedHarvestable.RequireTraitLevel)) { RPGMakerGUI.PopupID <Rm_TraitDefintion>("- Trait", ref selectedHarvestable.RequiredTraitID); selectedHarvestable.TraitLevelRequired = RPGMakerGUI.IntField("- Required Trait Level", selectedHarvestable.TraitLevelRequired); } Rme_Main_General.ProgressionGain(true, selectedHarvestable.ProgressionGain); if (RPGMakerGUI.Foldout(ref showHarvestAnims, "Animations")) { foreach (var classHarvestAnim in selectedHarvestable.ClassHarvestingAnims) { var classInfo = RPG.Player.GetCharacterDefinition(classHarvestAnim.ClassID); var className = classInfo.Name; if (classInfo.AnimationType == RPGAnimationType.Legacy) { classHarvestAnim.LegacyAnim = RPGMakerGUI.TextField(className + " Animation:", classHarvestAnim.LegacyAnim); } else { GUILayout.BeginHorizontal(); classHarvestAnim.AnimNumber = RPGMakerGUI.IntField(className + "Anim AnimNumber:", classHarvestAnim.AnimNumber); GUILayout.EndHorizontal(); } } RPGMakerGUI.EndFoldout(); } } else { EditorGUILayout.HelpBox("Add or select a new field to customise harvestable objects.", MessageType.Info); } GUILayout.EndScrollView(); GUILayout.EndArea(); }