From 4e4dc0f7b69c60ea5bf1b87d8194c40238dd6b54 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 20 Aug 2022 16:21:30 -0400 Subject: [PATCH 01/27] prep work on dynamic beatmap format --- Assets/Scripts/BeatmapFormats.meta | 8 ++ .../Scripts/{ => BeatmapFormats}/Beatmap.cs | 0 .../{ => BeatmapFormats}/Beatmap.cs.meta | 2 +- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 118 ++++++++++++++++++ .../BeatmapFormats/DynamicBeatmap.cs.meta | 11 ++ 5 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 Assets/Scripts/BeatmapFormats.meta rename Assets/Scripts/{ => BeatmapFormats}/Beatmap.cs (100%) rename Assets/Scripts/{ => BeatmapFormats}/Beatmap.cs.meta (83%) create mode 100644 Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs create mode 100644 Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs.meta diff --git a/Assets/Scripts/BeatmapFormats.meta b/Assets/Scripts/BeatmapFormats.meta new file mode 100644 index 00000000..cca5334e --- /dev/null +++ b/Assets/Scripts/BeatmapFormats.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06e6e979954795a49824e8435a5298fc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Beatmap.cs b/Assets/Scripts/BeatmapFormats/Beatmap.cs similarity index 100% rename from Assets/Scripts/Beatmap.cs rename to Assets/Scripts/BeatmapFormats/Beatmap.cs diff --git a/Assets/Scripts/Beatmap.cs.meta b/Assets/Scripts/BeatmapFormats/Beatmap.cs.meta similarity index 83% rename from Assets/Scripts/Beatmap.cs.meta rename to Assets/Scripts/BeatmapFormats/Beatmap.cs.meta index 635d9c74..ba21c2d4 100644 --- a/Assets/Scripts/Beatmap.cs.meta +++ b/Assets/Scripts/BeatmapFormats/Beatmap.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 457977a51a5961a40b33da038cd88e9d +guid: 9ec74fe21af663f4d9645852eb4cfb88 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs new file mode 100644 index 00000000..1a772f04 --- /dev/null +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using UnityEngine; + +using Newtonsoft.Json; + +using HeavenStudio.Util; + +namespace HeavenStudio +{ + [Serializable] + public class DynamicBeatmap + { + public float bpm; + + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] + [DefaultValue(100)] public int musicVolume; // In percent (1-100) + + public Dictionary properties = + new Dictionary() { + {"remixtitle", "New Remix"}, + {"remixauthor", "Your Name"}, + }; + public List entities = new List(); + public List tempoChanges = new List(); + public List volumeChanges = new List(); + public float firstBeatOffset; + + [Serializable] + public class DynamicEntity : ICloneable + { + public float beat; + public int track; + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float length; + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float swing; + public Dictionary DynamicData = new Dictionary(); + + public string datamodel; + [JsonIgnore] public Editor.Track.TimelineEventObj eventObj; + + public object Clone() + { + return this.MemberwiseClone(); + } + + public DynamicEntity DeepCopy() + { + //lol the AI generated this + return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); + } + + public object this[string propertyName] + { + get + { + return DynamicData[propertyName]; + } + set + { + if (DynamicData.ContainsKey(propertyName)) + { + DynamicData[propertyName] = value; + } + else + { + UnityEngine.Debug.LogError($"This entity does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}"); + } + } + } + } + + [Serializable] + public class TempoChange : ICloneable + { + public float beat; + public float length; + public float tempo; + + public object Clone() + { + return this.MemberwiseClone(); + } + } + + [Serializable] + public class VolumeChange : ICloneable + { + public float beat; + public float length; + public float volume; + + public object Clone() + { + return this.MemberwiseClone(); + } + } + + public object this[string propertyName] + { + get + { + return properties[propertyName]; + } + set + { + if (properties.ContainsKey(propertyName)) + { + properties[propertyName] = value; + } + else + { + UnityEngine.Debug.LogError($"This beatmap does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}"); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs.meta b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs.meta new file mode 100644 index 00000000..d1fd7530 --- /dev/null +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ca2149f692fc3d84ba6526d33c132822 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From e2631acd2b779d55de9d39df143b0888432c1ab9 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 20 Aug 2022 19:03:51 -0400 Subject: [PATCH 02/27] start reorganize GameAction - this won't compile, haven't finished yet --- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 49 ++- Assets/Scripts/Games/DJSchool/DJSchool.cs | 80 ++-- Assets/Scripts/Games/FanClub/FanClub.cs | 79 ++-- Assets/Scripts/Games/KarateMan/KarateMan.cs | 232 ++++++++---- .../Scripts/Games/PajamaParty/PajamaParty.cs | 41 ++- .../Games/RhythmTweezers/RhythmTweezers.cs | 86 +++-- .../Games/SamuraiSliceNtr/SamuraiSliceNtr.cs | 20 +- Assets/Scripts/Games/Spaceball/Spaceball.cs | 56 ++- Assets/Scripts/Games/TapTrial/TapTrial.cs | 80 +++- Assets/Scripts/Games/TrickClass/TrickClass.cs | 22 +- Assets/Scripts/Minigames.cs | 347 ++++++++++-------- 11 files changed, 730 insertions(+), 362 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 1a772f04..4ebfe467 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -19,9 +19,48 @@ namespace HeavenStudio public Dictionary properties = new Dictionary() { - {"remixtitle", "New Remix"}, - {"remixauthor", "Your Name"}, + // software version (MajorMinorPatch, revision) + {"productversion", 000}, + {"productsubversion", 0}, + + // general chart info + {"remixtitle", "New Remix"}, // chart name + {"remixauthor", "Your Name"}, // charter's name + {"remixlevel", 1}, // chart difficulty + {"remixtempo", 120f}, // avg. chart tempo + {"remixtags", ""}, // chart tags + {"icontype", 0}, // chart icon (presets, custom - future) + {"iconurl", ""}, // custom icon location (future) + + // chart song info + {"idolgenre", "Song Genre"}, // song genre + {"idolsong", "Song Name"}, // song name + {"idolcredit", "Artist"}, // song artist + + // chart prologue + {"prologuetype", 0}, // prologue card animation (future) + {"prologuecaption", "Remix"}, // prologue card sub-title (future) + + // chart results screen messages + {"resultcaption", "Rhythm League Notes"}, // result screen header + {"resultcommon_hi", "Good rhythm."}, // generic "Superb" message (one-liner, or second line for single-type) + {"resultcommon_ok", "Eh. Passable."}, // generic "OK" message (one-liner, or second line for single-type) + {"resultcommon_ng", "Try harder next time."}, // generic "Try Again" message (one-liner, or second line for single-type) + + // the following are shown / hidden in-editor depending on the tags of the games used + {"resultnormal_hi", "You show strong fundamentals."}, // "Superb" message for normal games (two-liner) + {"resultnormal_ng", "Work on your fundamentals."}, // "Try Again" message for normal games (two-liner) + + {"resultkeep_hi", "You kept the beat well."}, // "Superb" message for keep-the-beat games (two-liner) + {"resultkeep_ng", "You had trouble keeping the beat."}, // "Try Again" message for keep-the-beat games (two-liner) + + {"resultaim_hi", "You had great aim."}, // "Superb" message for aim games (two-liner) + {"resultaim_ng", "Your aim was a little shaky."}, // "Try Again" message for aim games (two-liner) + + {"resultrepeat_hi", "You followed the example well."}, // "Superb" message for call-and-response games (two-liner) + {"resultrepeat_ng", "Next time, follow the example better."}, // "Try Again" message for call-and-response games (two-liner) }; + public List entities = new List(); public List tempoChanges = new List(); public List volumeChanges = new List(); @@ -68,6 +107,12 @@ namespace HeavenStudio } } } + + public void CreateProperty(string name, object defaultValue) + { + if (!DynamicData.ContainsKey(name)) + DynamicData.Add(name, defaultValue); + } } [Serializable] diff --git a/Assets/Scripts/Games/DJSchool/DJSchool.cs b/Assets/Scripts/Games/DJSchool/DJSchool.cs index 1c07e5bd..13834ac7 100644 --- a/Assets/Scripts/Games/DJSchool/DJSchool.cs +++ b/Assets/Scripts/Games/DJSchool/DJSchool.cs @@ -12,39 +12,65 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("djSchool", "DJ School", "008c97", false, false, new List() { - //new GameAction("bop", delegate { DJSchool.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 0.5f, true), - new GameAction("bop", delegate { DJSchool.instance.Bop(eventCaller.currentEntity.toggle); }, 0.5f, false, new List() + new GameAction("bop", "Bop") { - new Param("toggle", true, "Bop", "Whether both will bop to the beat or not") - }), - new GameAction("and stop ooh", delegate { var e = eventCaller.currentEntity; DJSchool.instance.AndStop(e.beat, e.toggle); }, 2.5f, false, - inactiveFunction: delegate { var e = eventCaller.currentEntity; DJSchool.WarnAndStop(e.beat, e.toggle); }, - parameters: new List() + function = delegate { DJSchool.instance.Bop(eventCaller.currentEntity.toggle); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("toggle", true, "Bop", "Whether both will bop to the beat or not") + } + }, + new GameAction("and stop ooh", "And Stop!") { - new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played") - }), - new GameAction("break c'mon ooh", delegate { var e = eventCaller.currentEntity; DJSchool.instance.BreakCmon(e.beat, e.type, e.toggle); }, 3f, false, - inactiveFunction: delegate { var e = eventCaller.currentEntity; DJSchool.WarnBreakCmon(e.beat, e.type, e.toggle); }, - parameters: new List() + function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.AndStop(e.beat, e.toggle); }, + defaultLength = 2.5f, + inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnAndStop(e.beat, e.toggle); }, + parameters = new List() + { + new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played") + } + }, + new GameAction("break c'mon ooh", "Break, C'mon!") { - new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"), - new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played") - }), - new GameAction("scratch-o hey", delegate { DJSchool.instance.ScratchoHey(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, eventCaller.currentEntity.toggle); }, 3f, false, new List() + function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.BreakCmon(e.beat, e.type, e.toggle); }, + defaultLength = 3f, + inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnBreakCmon(e.beat, e.type, e.toggle); }, + parameters = new List() + { + new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"), + new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played") + } + }, + new GameAction("scratch-o hey", "Scratch-o") { - new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"), - new Param("toggle", false, "Fast Hey", "Activate Remix 4 (DS) beat") - }), - new GameAction("dj voice lines", delegate { DJSchool.instance.voiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, 2f, false, - inactiveFunction: delegate { DJSchool.WarnDJVoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, - parameters: new List() + function = delegate { DJSchool.instance.ScratchoHey(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, eventCaller.currentEntity.toggle); }, + defaultLength = 3f, + parameters = new List() + { + new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"), + new Param("toggle", false, "Fast Hey", "Activate Remix 4 (DS) beat") + } + }, + new GameAction("dj voice lines", "DJ Yellow Banter") { - new Param("type", DJSchool.DJVoiceLines.CheckItOut, "Voice Lines", "The voice line to play"), - }), - new GameAction("sound FX", delegate { DJSchool.instance.soundFX(eventCaller.currentEntity.toggle); }, .5f, false, new List() + function = delegate { DJSchool.instance.voiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, + defaultLength = 2f, + inactiveFunction = delegate { DJSchool.WarnDJVoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, + parameters = new List() + { + new Param("type", DJSchool.DJVoiceLines.CheckItOut, "Voice Lines", "The voice line to play"), + } + }, + new GameAction("sound FX", "Scratchy Music") { - new Param("toggle", false, "Radio FX", "Toggle on and off for Radio Effects") - }) + function = delegate { DJSchool.instance.soundFX(eventCaller.currentEntity.toggle); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("toggle", false, "Radio FX", "Toggle on and off for Radio Effects") + } + } }, new List() {"ntr", "normal"}, "ntrdj", "en", diff --git a/Assets/Scripts/Games/FanClub/FanClub.cs b/Assets/Scripts/Games/FanClub/FanClub.cs index 0998b081..f4b84159 100644 --- a/Assets/Scripts/Games/FanClub/FanClub.cs +++ b/Assets/Scripts/Games/FanClub/FanClub.cs @@ -13,49 +13,76 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("fanClub", "Fan Club", "FDFD00", false, false, new List() { - new GameAction("bop", delegate { var e = eventCaller.currentEntity; FanClub.instance.Bop(e.beat, e.length, e.type); }, 0.5f, true, parameters: new List() + new GameAction("bop", "Bop") { - new Param("type", FanClub.IdolBopType.Both, "Bop target", "Who to make bop"), - }), - - new GameAction("yeah, yeah, yeah", delegate { var e = eventCaller.currentEntity; FanClub.instance.CallHai(e.beat, e.toggle); }, 8, false, parameters: new List() + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.Bop(e.beat, e.length, e.type); }, + defaultLength = 0.5f, + resizable = true, + parameters = new List() + { + new Param("type", FanClub.IdolBopType.Both, "Bop target", "Who to make bop"), + } + }, + new GameAction("yeah, yeah, yeah", "Yeah, Yeah, Yeah!") + { + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallHai(e.beat, e.toggle); }, + defaultLength = 8, + parameters = new List() { new Param("toggle", false, "Disable call", "Disable the idol's call") }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e.toggle);} - ), - - new GameAction("I suppose", delegate { var e = eventCaller.currentEntity; FanClub.instance.CallKamone(e.beat, e.toggle, 0, e.type); }, 6, false, parameters: new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e.toggle);} + }, + new GameAction("I suppose", "I Suppose!") + { + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallKamone(e.beat, e.toggle, 0, e.type); }, + defaultLength = 6, + parameters = new List() { new Param("type", FanClub.KamoneResponseType.Through, "Response type", "Type of response to use"), new Param("toggle", false, "Disable call", "Disable the idol's call") }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e.toggle, 0, e.type);} - ), - - new GameAction("double clap", delegate { var e = eventCaller.currentEntity; FanClub.instance.CallBigReady(e.beat, e.toggle); }, 4, false, parameters: new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e.toggle, 0, e.type);} + }, + new GameAction("double clap", "Double Clap") + { + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallBigReady(e.beat, e.toggle); }, + defaultLength = 4, + parameters = new List() { new Param("toggle", false, "Disable call", "Disable the call") }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; FanClub.WarnBigReady(e.beat, e.toggle); } - ), - - new GameAction("play idol animation", delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnim(e.beat, e.length, e.type); }, 1, true, parameters: new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnBigReady(e.beat, e.toggle); } + }, + new GameAction("play idol animation", "Idol Coreography") { - new Param("type", FanClub.IdolAnimations.Bop, "Animation", "Animation to play") - }), - - new GameAction("play stage animation", delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnimStage(e.beat, e.type); }, 1, true, parameters: new List() + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnim(e.beat, e.length, e.type); }, + resizable = true, + parameters = new List() + { + new Param("type", FanClub.IdolAnimations.Bop, "Animation", "Animation to play") + } + }, + new GameAction("play stage animation", "Stage Coreography") + { + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnimStage(e.beat, e.type); }, + resizable = true, + parameters = new List() + { + new Param("type", FanClub.StageAnimations.Flash, "Animation", "Animation to play") + } + }, + new GameAction("set performance type", "Coreography Type") { - new Param("type", FanClub.StageAnimations.Flash, "Animation", "Animation to play") - }), - new GameAction("set performance type", delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type);}, 0.5f, false, parameters: new List() + function = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type);}, + defaultLength = 0.5f, + parameters = new List() { new Param("type", FanClub.IdolPerformanceType.Normal, "Performance Type", "Set of animations for the idol to use") }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type); } - ), + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type); } + }, }, new List() {"ntr", "normal"}, "ntridol", "jp", diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs index 2e1547e2..4d571eed 100644 --- a/Assets/Scripts/Games/KarateMan/KarateMan.cs +++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs @@ -13,58 +13,97 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("karateman", "Karate Man", "70A8D8", false, false, new List() { - new GameAction("bop", delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity.toggle); }, 0.5f, false, new List() + new GameAction("bop", "Bop") + { + function = delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity.toggle); }, + defaultLength = 0.5f, + parameters = new List() { new Param("toggle", true, "Bop", "Whether to bop to the beat or not") }, - inactiveFunction: delegate { KarateMan.ToggleBopUnloaded(eventCaller.currentEntity.toggle); } - ), - new GameAction("hit", delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateItem(e.beat, e.type, e.type2); }, 2, false, - new List() + inactiveFunction = delegate { KarateMan.ToggleBopUnloaded(eventCaller.currentEntity.toggle); } + }, + new GameAction("hit", "Toss Object") { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateItem(e.beat, e.type, e.type2); }, + defaultLength = 2, + parameters = new List() { new Param("type", KarateMan.HitType.Pot, "Object", "The object to fire"), new Param("type2", KarateMan.KarateManFaces.Normal, "Success Expression", "The facial expression to set Joe to on hit") - }), - new GameAction("bulb", delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateBulbSpecial(e.beat, e.type, e.colorA, e.type2); }, 2, false, - new List() + } + }, + new GameAction("bulb", "Toss Lightbulb") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateBulbSpecial(e.beat, e.type, e.colorA, e.type2); }, + defaultLength = 2, + parameters = new List() { new Param("type", KarateMan.LightBulbType.Normal, "Type", "The preset bulb type. Yellow is used for kicks while Blue is used for combos"), new Param("colorA", new Color(1f,1f,1f), "Custom Color", "The color to use when the bulb type is set to Custom"), new Param("type2", KarateMan.KarateManFaces.Normal, "Success Expression", "The facial expression to set Joe to on hit") - }), - new GameAction("kick", delegate { var e = eventCaller.currentEntity; KarateMan.instance.Kick(e.beat, e.toggle, e.type); }, 4f, false, - new List() + }, + }, + new GameAction("kick", "Special: Kick") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Kick(e.beat, e.toggle, e.type); }, + defaultLength = 4f, + parameters = new List() { new Param("toggle", false, "Contains Ball", "Barrel contains a ball instead of a bomb?"), new Param("type", KarateMan.KarateManFaces.Smirk, "Success Expression", "The facial expression to set Joe to on hit") } - ), - new GameAction("combo", delegate { var e = eventCaller.currentEntity; KarateMan.instance.Combo(e.beat, e.type); }, 4f, false, - new List() + }, + new GameAction("combo", "Special: Combo") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Combo(e.beat, e.type); }, + defaultLength = 4, + parameters = new List() { new Param("type", KarateMan.KarateManFaces.Happy, "Success Expression", "The facial expression to set Joe to on hit") } - ), - new GameAction("hitX", delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, 1f, false, - new List() + }, + new GameAction("hitX", "Warnings") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, + defaultLength = 1f, + parameters = new List() { new Param("type", KarateMan.HitThree.HitThree, "Type", "The warning text to show") }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; KarateMan.DoWordSound(e.beat, e.type); } - ), - new GameAction("special camera", delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); }, 8f, true, new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoWordSound(e.beat, e.type); } + }, + new GameAction("special camera", "Special Camera") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); }, + defaultLength = 8f, + resizable = true, + parameters = new List() { new Param("toggle", true, "Return Camera", "Camera zooms back in?"), }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); } - ), - new GameAction("prepare", delegate { var e = eventCaller.currentEntity; KarateMan.instance.Prepare(e.beat, e.length);}, 1f, true), - new GameAction("set gameplay modifiers", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetGameplayMods(e.beat, e.type, e.toggle); }, 0.5f, false, new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); } + }, + new GameAction("prepare", "Preparation Stance") { - new Param("type", KarateMan.NoriMode.None, "Flow Bar type", "The type of Flow bar to use"), - new Param("toggle", true, "Enable Combos", "Allow the player to combo? (Contextual combos will still be allowed even when off)"), - }), - new GameAction("set background effects", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3); KarateMan.instance.SetBgTexture(e.type4, e.type5, e.colorC, e.colorD); }, 0.5f, true, new List() + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Prepare(e.beat, e.length);}, + resizable = true + }, + new GameAction("set gameplay modifiers", "Gameplay Modifiers") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetGameplayMods(e.beat, e.type, e.toggle); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", KarateMan.NoriMode.None, "Flow Bar type", "The type of Flow bar to use"), + new Param("toggle", true, "Enable Combos", "Allow the player to combo? (Contextual combos will still be allowed even when off)"), + } + }, + new GameAction("set background effects", "Background Appearance") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3); KarateMan.instance.SetBgTexture(e.type4, e.type5, e.colorC, e.colorD); }, + defaultLength = 0.5f, + resizable = true, + parameters = new List() { new Param("type", KarateMan.BackgroundType.Yellow, "Background Type", "The preset background type"), new Param("type2", KarateMan.ShadowType.Tinted, "Shadow Type", "The shadow type. If Tinted doesn't work with your background color try Custom"), @@ -77,43 +116,96 @@ namespace HeavenStudio.Games.Loaders new Param("colorD", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"), }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; KarateMan.SetBgEffectsUnloaded(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3, e.type4, e.type5, e.colorC, e.colorD); } - ), - new GameAction("set object colors", delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, 0.5f, false, new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.SetBgEffectsUnloaded(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3, e.type4, e.type5, e.colorC, e.colorD); } + }, + new GameAction("set object colors", "Object Colors") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, + defaultLength = 0.5f, + parameters = new List() { new Param("colorA", new Color(1,1,1,1), "Joe Body Color", "The color to use for Karate Joe's body"), new Param("colorB", new Color(0.81f,0.81f,0.81f,1), "Joe Highlight Color", "The color to use for Karate Joe's highlights"), new Param("colorC", new Color(1,1,1,1), "Item Color", "The color to use for the thrown items"), }, - inactiveFunction: delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); } - ), - new GameAction("particle effects", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetParticleEffect(e.beat, e.type, e.valA, e.valB); }, 0.5f, false, new List() + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); } + }, + new GameAction("particle effects", "Particle Effects") { - new Param("type", KarateMan.ParticleType.None, "Particle Type", "The type of particle effect to spawn. Using \"None\" will stop all effects"), - new Param("valA", new EntityTypes.Float(0f, 64f, 1f), "Wind Strength", "The strength of the particle wind"), - new Param("valB", new EntityTypes.Float(1f, 16f, 1f), "Particle Intensity", "The intensity of the particle effect") - }), - new GameAction("force facial expression", delegate { KarateMan.instance.SetFaceExpression(eventCaller.currentEntity.type); }, 0.5f, false, new List() + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetParticleEffect(e.beat, e.type, e.valA, e.valB); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", KarateMan.ParticleType.None, "Particle Type", "The type of particle effect to spawn. Using \"None\" will stop all effects"), + new Param("valA", new EntityTypes.Float(0f, 64f, 1f), "Wind Strength", "The strength of the particle wind"), + new Param("valB", new EntityTypes.Float(1f, 16f, 1f), "Particle Intensity", "The intensity of the particle effect") + } + }, + new GameAction("force facial expression", "Set Facial Expression") { - new Param("type", KarateMan.KarateManFaces.Normal, "Facial Expression", "The facial expression to force Joe to. Special moves may override this") - }), + function = delegate { KarateMan.instance.SetFaceExpression(eventCaller.currentEntity.type); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", KarateMan.KarateManFaces.Normal, "Facial Expression", "The facial expression to force Joe to. Special moves may override this") + } + }, // These are still here for backwards-compatibility but are hidden in the editor - new GameAction("pot", delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Pot); }, 2, hidden: true), - new GameAction("rock", delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Rock); }, 2, hidden: true), - new GameAction("ball", delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Ball); }, 2, hidden: true), - new GameAction("tacobell", delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.TacoBell); }, 2, hidden: true), - new GameAction("hit4", delegate { KarateMan.instance.DoWord(eventCaller.currentEntity.beat, (int) KarateMan.HitThree.HitFour); }, hidden: true), - new GameAction("bgfxon", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx((int) KarateMan.BackgroundFXType.Sunburst, e.beat, e.length); }, hidden: true), - new GameAction("bgfxoff", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx((int) KarateMan.BackgroundFXType.None, e.beat, e.length); }, hidden: true), - new GameAction("hit3", delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, 1f, false, - new List() + new GameAction("pot", "") + { + function = delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Pot); }, + defaultLength = 2, + hidden = true + }, + new GameAction("rock", "") + { + function = delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Rock); }, + defaultLength = 2, + hidden = true + }, + new GameAction("ball", "") + { + function = delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.Ball); }, + defaultLength = 2, + hidden = true + }, + new GameAction("tacobell", "") + { + function = delegate { KarateMan.instance.CreateItem(eventCaller.currentEntity.beat, 0, (int) KarateMan.HitType.TacoBell); }, + defaultLength = 2, + hidden = true + }, + new GameAction("bgfxon", "") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx((int) KarateMan.BackgroundFXType.Sunburst, e.beat, e.length); }, + hidden = true + }, + new GameAction("bgfxoff", "") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx((int) KarateMan.BackgroundFXType.None, e.beat, e.length); }, + hidden = true + }, + new GameAction("hit3", "") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, + parameters = new List() { new Param("type", KarateMan.HitThree.HitThree, "Type", "The warning text to show") }, - hidden: true), - new GameAction("set background color", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, (int) KarateMan.currentBgEffect); }, 0.5f, false, - new List() + hidden = true + }, + new GameAction("hit4", "") + { + function = delegate { KarateMan.instance.DoWord(eventCaller.currentEntity.beat, (int) KarateMan.HitThree.HitFour); }, + hidden = true + }, + new GameAction("set background color", "") + { + + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, (int) KarateMan.currentBgEffect); }, + defaultLength = 0.5f, + parameters = new List() { new Param("type", KarateMan.BackgroundType.Yellow, "Background Type", "The preset background type"), new Param("type2", KarateMan.ShadowType.Tinted, "Shadow Type", "The shadow type. If Tinted doesn't work with your background color try Custom"), @@ -121,22 +213,32 @@ namespace HeavenStudio.Games.Loaders new Param("colorB", new Color(), "Custom Shadow Color", "The shadow color to use when shadow type is set to Custom"), }, - hidden: true), - new GameAction("set background fx", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx(e.type, e.beat, e.length); }, 0.5f, false, new List() - { - new Param("type", KarateMan.BackgroundFXType.None, "FX Type", "The background effect to be displayed") + hidden = true }, - hidden: true), - - new GameAction("set background texture", delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgTexture(e.type, e.type2, e.colorA, e.colorB); }, 0.5f, false, new List() + new GameAction("set background fx", "") { - new Param("type", KarateMan.BackgroundTextureType.Plain, "Texture", "The type of background texture to use"), - new Param("type2", KarateMan.ShadowType.Tinted, "Color Filter Type", "The method used to apply colour to the texture"), - new Param("colorA", new Color(), "Custom Filter Color", "The filter color to use when color filter type is set to Custom"), - new Param("colorB", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"), + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx(e.type, e.beat, e.length); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", KarateMan.BackgroundFXType.None, "FX Type", "The background effect to be displayed") + }, + hidden = true }, - hidden: true), + new GameAction("set background texture", "") + { + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgTexture(e.type, e.type2, e.colorA, e.colorB); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", KarateMan.BackgroundTextureType.Plain, "Texture", "The type of background texture to use"), + new Param("type2", KarateMan.ShadowType.Tinted, "Color Filter Type", "The method used to apply colour to the texture"), + new Param("colorA", new Color(), "Custom Filter Color", "The filter color to use when color filter type is set to Custom"), + new Param("colorB", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"), + }, + hidden = true + }, }, new List() {"agb", "ntr", "rvl", "ctr", "pco", "normal"}, "karate", "en", diff --git a/Assets/Scripts/Games/PajamaParty/PajamaParty.cs b/Assets/Scripts/Games/PajamaParty/PajamaParty.cs index 39e73fde..b83a3d96 100644 --- a/Assets/Scripts/Games/PajamaParty/PajamaParty.cs +++ b/Assets/Scripts/Games/PajamaParty/PajamaParty.cs @@ -15,25 +15,38 @@ namespace HeavenStudio.Games.Loaders return new Minigame("pajamaParty", "Pajama Party", "965076", false, false, new List() { // both same timing - new GameAction("jump (side to middle)", delegate {PajamaParty.instance.DoThreeJump(eventCaller.currentEntity.beat);}, 4f, false, - inactiveFunction: delegate {PajamaParty.WarnThreeJump(eventCaller.currentEntity.beat);} - ), - new GameAction("jump (back to front)", delegate {PajamaParty.instance.DoFiveJump(eventCaller.currentEntity.beat);}, 4f, false, - inactiveFunction: delegate {PajamaParty.WarnFiveJump(eventCaller.currentEntity.beat);} - ), + new GameAction("jump (side to middle)", "Side to Middle Jumps") + { + function = delegate {PajamaParty.instance.DoThreeJump(eventCaller.currentEntity.beat);}, + defaultLength = 4f, + inactiveFunction = delegate {PajamaParty.WarnThreeJump(eventCaller.currentEntity.beat);} + }, + new GameAction("jump (back to front)", "Back to Front Jumps") + { + function =delegate {PajamaParty.instance.DoFiveJump(eventCaller.currentEntity.beat);}, + defaultLength = 4f, + inactiveFunction = delegate {PajamaParty.WarnFiveJump(eventCaller.currentEntity.beat);} + }, //idem - new GameAction("slumber", delegate {var e = eventCaller.currentEntity; PajamaParty.instance.DoSleepSequence(e.beat, e.toggle, e.type);}, 8f, false, parameters: new List() + new GameAction("slumber", "Slumber") + { + function = delegate {var e = eventCaller.currentEntity; PajamaParty.instance.DoSleepSequence(e.beat, e.toggle, e.type);}, + defaultLength = 8f, + parameters = new List() { new Param("type", PajamaParty.SleepType.Normal, "Sleep Type", "Type of sleep action to use"), new Param("toggle", false, "Alt. Animation", "Use an alternate animation for Mako") }, - inactiveFunction: delegate {var e = eventCaller.currentEntity; PajamaParty.WarnSleepSequence(e.beat, e.toggle);} - ), - new GameAction("throw", delegate {PajamaParty.instance.DoThrowSequence(eventCaller.currentEntity.beat);}, 8f, false, - inactiveFunction: delegate {PajamaParty.WarnThrowSequence(eventCaller.currentEntity.beat);} - ), - //cosmetic - // new GameAction("open / close background", delegate { }, 2f, true), + inactiveFunction = delegate {var e = eventCaller.currentEntity; PajamaParty.WarnSleepSequence(e.beat, e.toggle);} + }, + new GameAction("throw", "Throw Pillows") + { + function = delegate {PajamaParty.instance.DoThrowSequence(eventCaller.currentEntity.beat);}, + defaultLength = 8f, + inactiveFunction = delegate {PajamaParty.WarnThrowSequence(eventCaller.currentEntity.beat);} + }, + // todo cosmetic crap + // background stuff // do shit with mako's face? (talking?) }, new List() {"ctr", "normal"}, diff --git a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs index 9c6254b8..dabfd83d 100644 --- a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs +++ b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs @@ -15,32 +15,74 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("rhythmTweezers", "Rhythm Tweezers", "98b389", false, false, new List() { - new GameAction("start interval", delegate { RhythmTweezers.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 4f, true), - new GameAction("short hair", delegate { RhythmTweezers.instance.SpawnHair(eventCaller.currentEntity.beat); }, 0.5f), - new GameAction("long hair", delegate { RhythmTweezers.instance.SpawnLongHair(eventCaller.currentEntity.beat); }, 0.5f), - new GameAction("next vegetable", delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.NextVegetable(e.beat, e.type, e.colorA, e.colorB); }, 0.5f, false, new List() + new GameAction("start interval", "Start Interval") { - new Param("type", RhythmTweezers.VegetableType.Onion, "Type", "The vegetable to switch to"), - new Param("colorA", RhythmTweezers.defaultOnionColor, "Onion Color", "The color of the onion"), - new Param("colorB", RhythmTweezers.defaultPotatoColor, "Potato Color", "The color of the potato") - } ), - new GameAction("change vegetable", delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeVegetableImmediate(e.type, e.colorA, e.colorB); }, 0.5f, false, new List() + function = delegate { RhythmTweezers.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, + defaultLength = 4f, + resizable = true + }, + new GameAction("short hair", "Short Hair") { - new Param("type", RhythmTweezers.VegetableType.Onion, "Type", "The vegetable to switch to"), - new Param("colorA", RhythmTweezers.defaultOnionColor, "Onion Color", "The color of the onion"), - new Param("colorB", RhythmTweezers.defaultPotatoColor, "Potato Color", "The color of the potato") - } ), - new GameAction("set tweezer delay", delegate { RhythmTweezers.instance.tweezerBeatOffset = eventCaller.currentEntity.length; }, 1f, true), - new GameAction("reset tweezer delay", delegate { RhythmTweezers.instance.tweezerBeatOffset = 0f; }, 0.5f), - new GameAction("set background color", delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeBackgroundColor(e.colorA, 0f); }, 0.5f, false, new List() + + function = delegate { RhythmTweezers.instance.SpawnHair(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f + }, + new GameAction("long hair", "Curly Hair") { - new Param("colorA", RhythmTweezers.defaultBgColor, "Background Color", "The background color to change to") - } ), - new GameAction("fade background color", delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); }, 1f, true, new List() + function = delegate { RhythmTweezers.instance.SpawnLongHair(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f + }, + new GameAction("next vegetable", "Swap Vegetable") { - new Param("colorA", Color.white, "Start Color", "The starting color in the fade"), - new Param("colorB", RhythmTweezers.defaultBgColor, "End Color", "The ending color in the fade") - } ), + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.NextVegetable(e.beat, e.type, e.colorA, e.colorB); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", RhythmTweezers.VegetableType.Onion, "Type", "The vegetable to switch to"), + new Param("colorA", RhythmTweezers.defaultOnionColor, "Onion Color", "The color of the onion"), + new Param("colorB", RhythmTweezers.defaultPotatoColor, "Potato Color", "The color of the potato") + } + }, + new GameAction("change vegetable", "Change Vegetable (Instant)") + { + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeVegetableImmediate(e.type, e.colorA, e.colorB); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", RhythmTweezers.VegetableType.Onion, "Type", "The vegetable to switch to"), + new Param("colorA", RhythmTweezers.defaultOnionColor, "Onion Color", "The color of the onion"), + new Param("colorB", RhythmTweezers.defaultPotatoColor, "Potato Color", "The color of the potato") + } + }, + new GameAction("set tweezer delay", "Offset Tweezer") + { + function = delegate { RhythmTweezers.instance.tweezerBeatOffset = eventCaller.currentEntity.length; }, + resizable = true + }, + new GameAction("reset tweezer delay", "Reset Tweezer Offset") + { + function = delegate { RhythmTweezers.instance.tweezerBeatOffset = 0f; }, + defaultLength = 0.5f + }, + new GameAction("set background color", "Background Colour") + { + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeBackgroundColor(e.colorA, 0f); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("colorA", RhythmTweezers.defaultBgColor, "Background Color", "The background color to change to") + } + }, + new GameAction("fade background color", "Background Fade") + { + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); }, + resizable = true, + parameters = new List() + { + new Param("colorA", Color.white, "Start Color", "The starting color in the fade"), + new Param("colorB", RhythmTweezers.defaultBgColor, "End Color", "The ending color in the fade") + } + } }); } } diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs index f45d9694..0760f32b 100644 --- a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs +++ b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs @@ -14,15 +14,19 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("samuraiSliceNtr", "Samurai Slice (DS)", "00165D", false, false, new List() { - new GameAction("spawn object", delegate + new GameAction("spawn object", "Toss Object") { - SamuraiSliceNtr.instance.ObjectIn(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, (int) eventCaller.currentEntity.valA); - }, 8, false, new List() - { - new Param("type", SamuraiSliceNtr.ObjectType.Melon, "Object", "The object to spawn"), - new Param("valA", new EntityTypes.Integer(0, 30, 1), "Money", "The amount of coins the object spills out when sliced"), - }), - //new GameAction("start bopping", delegate { SamuraiSliceNtr.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 1), + function = delegate + { + SamuraiSliceNtr.instance.ObjectIn(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, (int) eventCaller.currentEntity.valA); + }, + defaultLength = 8, + parameters = new List() + { + new Param("type", SamuraiSliceNtr.ObjectType.Melon, "Object", "The object to spawn"), + new Param("valA", new EntityTypes.Integer(0, 30, 1), "Money", "The amount of coins the object spills out when sliced"), + } + }, }, new List() {"ntr", "normal"}, "ntrsamurai", "en", diff --git a/Assets/Scripts/Games/Spaceball/Spaceball.cs b/Assets/Scripts/Games/Spaceball/Spaceball.cs index 4b6cd9d0..7302b6b1 100644 --- a/Assets/Scripts/Games/Spaceball/Spaceball.cs +++ b/Assets/Scripts/Games/Spaceball/Spaceball.cs @@ -12,25 +12,51 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("spaceball", "Spaceball", "00A518", false, false, new List() { - new GameAction("shoot", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity.type); }, 2, false, new List() + new GameAction("shoot", "Pitch Ball") { - new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") - } ), - new GameAction("shootHigh", delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity.type); }, 3, false, new List() + function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity.type); }, + defaultLength = 2, + parameters = new List() + { + new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") + } + }, + new GameAction("shootHigh", "Pitch High Ball") { - new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") - } ), - new GameAction("costume", delegate { Spaceball.instance.Costume(eventCaller.currentEntity.type); }, 1f, false, new List() + function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity.type); }, + defaultLength = 3, + parameters = new List() + { + new Param("type", Spaceball.BallType.Baseball, "Type", "The type of ball/object to shoot") + } + }, + new GameAction("costume", "Change Batter Costume") { - new Param("type", Spaceball.CostumeType.Standard, "Type", "The costume to change to") - } ), - new GameAction("alien", delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat); } ), - new GameAction("camera", delegate { Spaceball.instance.OverrideCurrentZoom(); }, 4, true, new List() + function = delegate { Spaceball.instance.Costume(eventCaller.currentEntity.type); }, + parameters = new List() + { + new Param("type", Spaceball.CostumeType.Standard, "Type", "The costume to change to") + } + }, + new GameAction("alien", "Show Alien") { - new Param("valA", new EntityTypes.Integer(1, 320, 10), "Zoom", "The camera's zoom level (Lower value = Zoomed in)"), - new Param("ease", EasingFunction.Ease.Linear, "Ease", "The easing function to use while zooming") - } ), - new GameAction("prepare dispenser", delegate { Spaceball.instance.PrepareDispenser(); }, 1 ), + function = delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat); } + }, + new GameAction("camera", "Zoom Camera") + { + function = delegate { Spaceball.instance.OverrideCurrentZoom(); }, + defaultLength = 4, + resizable = true, + parameters = new List() + { + new Param("valA", new EntityTypes.Integer(1, 320, 10), "Zoom", "The camera's zoom level (Lower value = Zoomed in)"), + new Param("ease", EasingFunction.Ease.Linear, "Ease", "The easing function to use while zooming") + } + }, + new GameAction("prepare dispenser", "Dispenser Prepare") + { + function = delegate { Spaceball.instance.PrepareDispenser(); }, + }, }); } } diff --git a/Assets/Scripts/Games/TapTrial/TapTrial.cs b/Assets/Scripts/Games/TapTrial/TapTrial.cs index 69abb491..794097e4 100644 --- a/Assets/Scripts/Games/TapTrial/TapTrial.cs +++ b/Assets/Scripts/Games/TapTrial/TapTrial.cs @@ -14,26 +14,72 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("tapTrial", "Tap Trial \n[WIP]", "93ffb3", false, false, new List() { - new GameAction("bop", delegate { TapTrial.instance.Bop(eventCaller.currentEntity.toggle); }, .5f, false, new List() + new GameAction("bop", "Bop") { - new Param("toggle", true, "Bop", "Whether both will bop to the beat or not") - }), - new GameAction("tap", delegate { TapTrial.instance.Tap(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("double tap", delegate { TapTrial.instance.DoubleTap(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("triple tap", delegate { TapTrial.instance.TripleTap(eventCaller.currentEntity.beat); }, 4.0f, false), - new GameAction("jump tap prep", delegate { TapTrial.instance.JumpTapPrep(eventCaller.currentEntity.beat); }, 1.0f, false), - new GameAction("jump tap", delegate { TapTrial.instance.JumpTap(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("final jump tap", delegate { TapTrial.instance.FinalJumpTap(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("scroll event", delegate { TapTrial.instance.scrollEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, .5f, false, new List() + function = delegate { TapTrial.instance.Bop(eventCaller.currentEntity.toggle); }, + defaultLength = .5f, + parameters = new List() + { + new Param("toggle", true, "Bop", "Whether both will bop to the beat or not") + } + }, + new GameAction("tap", "Tap") { - new Param("toggle", false, "Scroll FX", "Will scroll"), - new Param("toggle", false, "Flash FX", "Will flash to white"), - }), - new GameAction("giraffe events", delegate { TapTrial.instance.giraffeEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, .5f, false, new List() + + function = delegate { TapTrial.instance.Tap(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f + }, + new GameAction("double tap", "Double Tap") { - new Param("toggle", false, "Enter", "Giraffe will enter the scene"), - new Param("toggle", false, "Exit", "Giraffe will exit the scene"), - }) + + function = delegate { TapTrial.instance.DoubleTap(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f + }, + new GameAction("triple tap", "Triple Tap") + { + + function = delegate { TapTrial.instance.TripleTap(eventCaller.currentEntity.beat); }, + defaultLength = 4.0f + }, + new GameAction("jump tap prep", "Prepare Stance") + { + + function = delegate { TapTrial.instance.JumpTapPrep(eventCaller.currentEntity.beat); }, + }, + new GameAction("jump tap", "Jump Tap") + { + + function = delegate { TapTrial.instance.JumpTap(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f + }, + new GameAction("final jump tap", "Final Jump Tap") + { + + function = delegate { TapTrial.instance.FinalJumpTap(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f + }, + new GameAction("scroll event", "Scroll Background") + { + + function = delegate { TapTrial.instance.scrollEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, + defaultLength = .5f, + parameters = new List() + { + new Param("toggle", false, "Scroll FX", "Will scroll"), + new Param("toggle", false, "Flash FX", "Will flash to white"), + } + }, + new GameAction("giraffe events", "Giraffe Animations") + { + + function = delegate { TapTrial.instance.giraffeEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, + defaultLength = .5f, + parameters = new List() + { + new Param("toggle", false, "Enter", "Giraffe will enter the scene"), + new Param("toggle", false, "Exit", "Giraffe will exit the scene"), + } + } }); } } diff --git a/Assets/Scripts/Games/TrickClass/TrickClass.cs b/Assets/Scripts/Games/TrickClass/TrickClass.cs index 8d40c21e..3c8def0c 100644 --- a/Assets/Scripts/Games/TrickClass/TrickClass.cs +++ b/Assets/Scripts/Games/TrickClass/TrickClass.cs @@ -15,14 +15,24 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("trickClass", "Trick on the Class", "C0171D", false, false, new List() { - new GameAction("toss", delegate + new GameAction("toss", "Toss Object") { - TrickClass.instance.TossObject(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); - }, 3, false, new List() + function = delegate + { + TrickClass.instance.TossObject(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); + }, + defaultLength = 3, + parameters = new List() + { + new Param("type", TrickClass.TrickObjType.Ball, "Object", "The object to toss") + } + }, + new GameAction("bop", "") { - new Param("type", TrickClass.TrickObjType.Ball, "Object", "The object to toss") - }), - new GameAction("bop", delegate { var e = eventCaller.currentEntity; TrickClass.instance.Bop(e.beat, e.length); }, 1, true, hidden: true), + function = delegate { var e = eventCaller.currentEntity; TrickClass.instance.Bop(e.beat, e.length); }, + resizable = true, + hidden = true + }, }); } } diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 61fc1455..193a028f 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -136,35 +136,56 @@ namespace HeavenStudio public class GameAction { public string actionName; + public string displayName; public EventCallback function; public float defaultLength; public bool resizable; public List parameters; public bool hidden; public EventCallback inactiveFunction; + public EventCallback preFunction; /// /// Creates a block that can be used in the editor. The block's function and attributes are defined in the parentheses. /// Note: Every parameter after the second one is an optional parameter. You can change optional parameters by adding (name): (value) after the second parameter. /// - /// Name of the block - /// What the block does when read during playback - /// Only does this if the game that it is associated with is loaded. + /// Entity model name + /// Name of the block used in the UI /// How long the block appears in the editor /// Allows the user to resize the block /// Extra parameters for this block that change how it functions. - /// Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline. + /// What the block does when read during playback + /// Only does this if the game that it is associated with is loaded. /// What the block does when read while the game it's associated with isn't loaded. - public GameAction(string actionName, EventCallback function, float defaultLength = 1, bool resizable = false, List parameters = null, bool hidden = false, EventCallback inactiveFunction = null) + /// What the block does when the GameManager seeks to this cue for pre-scheduling. + /// Prevents the block from being shown in the game list. Block will still function normally if it is in the timeline. + public GameAction(string actionName, string displayName, float defaultLength = 1, bool resizable = false, List parameters = null, EventCallback function = null, EventCallback inactiveFunction = null, EventCallback prescheduleFunction = null, bool hidden = false) { this.actionName = actionName; - this.function = function; + if (displayName == String.Empty) this.displayName = actionName; + else this.displayName = displayName; this.defaultLength = defaultLength; this.resizable = resizable; this.parameters = parameters; this.hidden = hidden; - if(inactiveFunction == null) inactiveFunction = delegate { }; - this.inactiveFunction = inactiveFunction; + + this.function = function ?? delegate { }; + this.inactiveFunction = inactiveFunction ?? delegate { }; + this.preFunction = prescheduleFunction ?? delegate { }; + + //todo: converting to new versions of GameActions + } + + /// + /// Shorthand constructor for a GameAction with only required data + /// + /// Entity model name + /// Name of the block used in the UI + public GameAction(string actionName, string displayName) + { + this.actionName = actionName; + if (displayName == String.Empty) this.displayName = actionName; + else this.displayName = displayName; } } @@ -179,7 +200,7 @@ namespace HeavenStudio /// /// A parameter that changes the function of a GameAction. /// - /// The name of the variable that's being changed. Must be one of the variables in + /// The name of the variable that's being changed. /// The value of the parameter /// The name shown in the editor. Can be anything you want. public Param(string propertyName, object parameter, string propertyCaption, string tooltip = "") @@ -192,6 +213,7 @@ namespace HeavenStudio } public delegate void EventCallback(); + public delegate void ParamChangeCallback(string paramName, object paramValue, DynamicBeatmap.DynamicEntity entity); // overengineered af but it's a modified version of // https://stackoverflow.com/a/19877141 @@ -216,48 +238,44 @@ namespace HeavenStudio { new Minigame("gameManager", "Game Manager", "", false, true, new List() { - new GameAction("switchGame", delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); }, 0.5f, inactiveFunction: delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); }), - new GameAction("end", delegate { - Debug.Log("end"); - if (Timeline.instance != null) - Timeline.instance?.Stop(0); - else - GameManager.instance.Stop(0); - }), - new GameAction("skill star", delegate { }, 1f, true), - - new GameAction("toggle inputs", delegate - { - GameManager.instance.ToggleInputs(eventCaller.currentEntity.toggle); - }, 0.5f, true, new List() - { - new Param("toggle", true, "Enable Inputs") - }), + new GameAction("switchGame", "Switch Game", 0.5f, false, + function: delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); }, + inactiveFunction: delegate { GameManager.instance.SwitchGame(eventCaller.currentSwitchGame, eventCaller.currentEntity.beat); } + ), + new GameAction("end", "End Remix", + function: delegate { + Debug.Log("end"); + if (Timeline.instance != null) + Timeline.instance?.Stop(0); + else + GameManager.instance.Stop(0); + } + ), + new GameAction("skill star", "Skill Star", 1f, true), + new GameAction("toggle inputs", "Toggle Inputs", 0.5f, true, + new List() + { + new Param("toggle", true, "Enable Inputs") + }, + delegate + { + GameManager.instance.ToggleInputs(eventCaller.currentEntity.toggle); + } + ), - // DEPRECATED! Now in VFX - new GameAction("flash", delegate - { - - /*Color colA = eventCaller.currentEntity.colorA; - Color colB = eventCaller.currentEntity.colorB; - - Color startCol = new Color(colA.r, colA.g, colA.b, eventCaller.currentEntity.valA); - Color endCol = new Color(colB.r, colB.g, colB.b, eventCaller.currentEntity.valB); - - GameManager.instance.fade.SetFade(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, startCol, endCol, eventCaller.currentEntity.ease);*/ - - }, 1f, true, new List() - { - new Param("colorA", Color.white, "Start Color"), - new Param("colorB", Color.white, "End Color"), - new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), - new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), - new Param("ease", EasingFunction.Ease.Linear, "Ease") - }, hidden: true ), - - new GameAction("move camera", delegate - { - }, 1f, true, new List() + // These are still here for backwards-compatibility but are hidden in the editor + new GameAction("flash", "", 1f, true, + new List() + { + new Param("colorA", Color.white, "Start Color"), + new Param("colorB", Color.white, "End Color"), + new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), + new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), + new Param("ease", EasingFunction.Ease.Linear, "Ease") + }, + hidden: true + ), + new GameAction("move camera", "", 1f, true, new List() { new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), @@ -265,10 +283,7 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease Type") }, hidden: true ), - - new GameAction("rotate camera", delegate - { - }, 1f, true, new List() + new GameAction("rotate camera", "", 1f, true, new List() { new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), @@ -280,119 +295,131 @@ namespace HeavenStudio new Minigame("countIn", "Count-Ins", "", false, true, new List() { - new GameAction("4 beat count-in", delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e.type); }, 4f, true, new List() - { - new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") - }), - new GameAction("8 beat count-in", delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e.type); }, 8f, true, new List() - { - new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") - }), - new GameAction("count", delegate { var e = eventCaller.currentEntity; SoundEffects.Count(e.type, e.toggle); }, 1f, false, new List() - { - new Param("type", SoundEffects.CountNumbers.One, "Number", "The sound to play"), - new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") - }), - new GameAction("cowbell", delegate { SoundEffects.Cowbell(); }, 1f), - new GameAction("ready!", delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, e.length / 2f); }, 2f, true), - new GameAction("and", delegate {SoundEffects.And(); }, 0.5f), - new GameAction("go!", delegate { SoundEffects.Go(eventCaller.currentEntity.toggle); }, 1f, false, new List() - { - new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") - }), + new GameAction("4 beat count-in", "4 Beat Count-In", 4f, true, + new List() + { + new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") + }, + delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e.type); } + ), + new GameAction("8 beat count-in", "8 Beat Count-In", 8f, true, + new List() + { + new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") + }, + delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e.type); } + ), + new GameAction("count", "Count", 1f, false, + new List() + { + new Param("type", SoundEffects.CountNumbers.One, "Number", "The sound to play"), + new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") + }, + delegate { var e = eventCaller.currentEntity; SoundEffects.Count(e.type, e.toggle); } + ), + new GameAction("cowbell", "Cowbell", + function: delegate { SoundEffects.Cowbell(); } + ), + new GameAction("ready!", "Ready!", 2f, true, + function: delegate { var e = eventCaller.currentEntity; SoundEffects.Ready(e.beat, e.length / 2f); } + ), + new GameAction("and", "And", 0.5f, + function: delegate { SoundEffects.And(); } + ), + new GameAction("go!", "Go!", 1f, false, + new List() + { + new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") + }, + function: delegate { SoundEffects.Go(eventCaller.currentEntity.toggle); } + ), + // These are still here for backwards-compatibility but are hidden in the editor - new GameAction("4 beat count-in (alt)", delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 1); }, 4f, hidden: true), - new GameAction("4 beat count-in (cowbell)", delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 2); }, 4f, hidden: true), - new GameAction("8 beat count-in (alt)", delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 1); }, 4f, hidden: true), - new GameAction("8 beat count-in (cowbell)", delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 2); }, 4f, hidden: true), - new GameAction("one", delegate { SoundEffects.Count(0, false); }, 1f, hidden: true), - new GameAction("one (alt)", delegate { SoundEffects.Count(0, true); }, 1f, hidden: true), - new GameAction("two", delegate { SoundEffects.Count(1, false); }, 1f, hidden: true), - new GameAction("two (alt)", delegate { SoundEffects.Count(1, true); }, 1f, hidden: true), - new GameAction("three", delegate { SoundEffects.Count(2, false); }, 1f, hidden: true), - new GameAction("three (alt)", delegate { SoundEffects.Count(2, true); }, 1f, hidden: true), - new GameAction("four", delegate { SoundEffects.Count(3, false); }, 1f, hidden: true), - new GameAction("four (alt)", delegate { SoundEffects.Count(3, true); }, 1f, hidden: true), - new GameAction("go! (alt)", delegate { SoundEffects.Go(true); }, 1f, hidden: true), + new GameAction("4 beat count-in (alt)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 1); }, hidden: true), + new GameAction("4 beat count-in (cowbell)", "", 4f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length, 2); }, hidden: true), + new GameAction("8 beat count-in (alt)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 1); }, hidden: true), + new GameAction("8 beat count-in (cowbell)", "", 8f, function: delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length, 2); }, hidden: true), + + new GameAction("one", "", function: delegate { SoundEffects.Count(0, false); }, hidden: true), + new GameAction("two", "", function: delegate { SoundEffects.Count(1, false); }, hidden: true), + new GameAction("three", "", function: delegate { SoundEffects.Count(2, false); }, hidden: true), + new GameAction("four", "", function: delegate { SoundEffects.Count(3, false); }, hidden: true), + new GameAction("one (alt)", "", function: delegate { SoundEffects.Count(0, true); }, hidden: true), + new GameAction("two (alt)", "", function: delegate { SoundEffects.Count(1, true); }, hidden: true), + new GameAction("three (alt)", "", function: delegate { SoundEffects.Count(2, true); }, hidden: true), + new GameAction("four (alt)", "", function: delegate { SoundEffects.Count(3, true); }, hidden: true), + new GameAction("go! (alt)", "", function: delegate { SoundEffects.Go(true); }, hidden: true), }), new Minigame("vfx", "Visual Effects", "", false, true, new List() { - new GameAction("flash", delegate - { + new GameAction("flash", "Flash", 1f, true, + new List() + { + new Param("colorA", Color.white, "Start Color"), + new Param("colorB", Color.white, "End Color"), + new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), + new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), + new Param("ease", EasingFunction.Ease.Linear, "Ease") + } + ), + new GameAction("move camera", "Move Camera", 1f, true, new List() + { + new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), + new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), + new Param("valC", new EntityTypes.Float(-0, 250, 10), "In / Out"), + new Param("ease", EasingFunction.Ease.Linear, "Ease Type") + } + ), + new GameAction("rotate camera", "Rotate Camera", 1f, true, new List() + { + new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), + new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), + new Param("valC", new EntityTypes.Integer(-360, 360, 0), "Roll"), + new Param("ease", EasingFunction.Ease.Linear, "Ease Type") + } + ), - /*Color colA = eventCaller.currentEntity.colorA; - Color colB = eventCaller.currentEntity.colorB; + new GameAction("screen shake", "Screen Shake", 1f, true, + new List() + { + new Param("valA", new EntityTypes.Float(0, 10, 0), "Horizontal Intensity"), + new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") + } + ), - Color startCol = new Color(colA.r, colA.g, colA.b, eventCaller.currentEntity.valA); - Color endCol = new Color(colB.r, colB.g, colB.b, eventCaller.currentEntity.valB); - - GameManager.instance.fade.SetFade(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, startCol, endCol, eventCaller.currentEntity.ease);*/ - - }, 1f, true, new List() - { - new Param("colorA", Color.white, "Start Color"), - new Param("colorB", Color.white, "End Color"), - new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), - new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), - new Param("ease", EasingFunction.Ease.Linear, "Ease") - }, hidden: false ), - - new GameAction("move camera", delegate {}, 1f, true, new List() - { - new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), - new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), - new Param("valC", new EntityTypes.Float(-0, 250, 10), "In / Out"), - new Param("ease", EasingFunction.Ease.Linear, "Ease Type") - } ), - - new GameAction("rotate camera", delegate {}, 1f, true, new List() - { - new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), - new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), - new Param("valC", new EntityTypes.Integer(-360, 360, 0), "Roll"), - new Param("ease", EasingFunction.Ease.Linear, "Ease Type") - } ), - - new GameAction("screen shake", delegate {}, 1f, true, new List() - { - new Param("valA", new EntityTypes.Float(0, 10, 0), "Horizontal Intensity"), - new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") - } ), - - new GameAction("display textbox", delegate - { - }, 1f, true, new List() - { - new Param("text1", "", "Text", "The text to display in the textbox (Rich Text is supported!)"), - new Param("type", Games.Global.Textbox.TextboxAnchor.TopMiddle, "Anchor", "Where to anchor the textbox"), - new Param("valA", new EntityTypes.Float(0.25f, 4, 1), "Textbox Width", "Textbox width multiplier"), - new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Textbox Height", "Textbox height multiplier") - } ), - new GameAction("display open captions", delegate - { - }, 1f, true, new List() - { - new Param("text1", "", "Text", "The text to display in the captions (Rich Text is supported!)"), - new Param("type", Games.Global.Textbox.TextboxAnchor.BottomMiddle, "Anchor", "Where to anchor the captions"), - new Param("valA", new EntityTypes.Float(0.25f, 4, 1), "Captions Width", "Captions width multiplier"), - new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Captions Height", "Captions height multiplier") - } ), - new GameAction("display closed captions", delegate - { - }, 1f, true, new List() - { - new Param("text1", "", "Text", "The text to display in the captions (Rich Text is supported!)"), - new Param("type", Games.Global.Textbox.ClosedCaptionsAnchor.Top, "Anchor", "Where to anchor the captions"), - new Param("valA", new EntityTypes.Float(0.5f, 4, 1), "Captions Height", "Captions height multiplier") - } ), - new GameAction("display song artist", delegate - { - }, 1f, true, new List() - { - new Param("text1", "", "Title", "Text to display in the upper label (Rich Text is supported!)"), - new Param("text2", "", "Artist", "Text to display in the lower label (Rich Text is supported!)"), - } ), + new GameAction("display textbox", "Display Textbox", 1f, true, new List() + { + new Param("text1", "", "Text", "The text to display in the textbox (Rich Text is supported!)"), + new Param("type", Games.Global.Textbox.TextboxAnchor.TopMiddle, "Anchor", "Where to anchor the textbox"), + new Param("valA", new EntityTypes.Float(0.25f, 4, 1), "Textbox Width", "Textbox width multiplier"), + new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Textbox Height", "Textbox height multiplier") + } + ), + new GameAction("display open captions", "Display Open Captions", 1f, true, + new List() + { + new Param("text1", "", "Text", "The text to display in the captions (Rich Text is supported!)"), + new Param("type", Games.Global.Textbox.TextboxAnchor.BottomMiddle, "Anchor", "Where to anchor the captions"), + new Param("valA", new EntityTypes.Float(0.25f, 4, 1), "Captions Width", "Captions width multiplier"), + new Param("valB", new EntityTypes.Float(0.5f, 8, 1), "Captions Height", "Captions height multiplier") + } + ), + new GameAction("display closed captions", "Display Closed Captions", 1f, true, + new List() + { + new Param("text1", "", "Text", "The text to display in the captions (Rich Text is supported!)"), + new Param("type", Games.Global.Textbox.ClosedCaptionsAnchor.Top, "Anchor", "Where to anchor the captions"), + new Param("valA", new EntityTypes.Float(0.5f, 4, 1), "Captions Height", "Captions height multiplier") + } + ), + new GameAction("display song artist", "Display Song Info", 1f, true, + new List() + { + new Param("text1", "", "Title", "Text to display in the upper label (Rich Text is supported!)"), + new Param("text2", "", "Artist", "Text to display in the lower label (Rich Text is supported!)"), + } + ), }), }; From 647a2a0d19255397bb472e7a633123c2d754f888 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 20 Aug 2022 23:13:52 -0400 Subject: [PATCH 03/27] finish conversions --- Assets/Scripts/Games/AirRally/AirRally.cs | 55 ++++++++----- Assets/Scripts/Games/BlueBear/BlueBear.cs | 12 ++- .../Games/BuiltToScaleDS/BuiltToScaleDS.cs | 16 +++- Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs | 38 ++++++--- Assets/Scripts/Games/CoinToss/CoinToss.cs | 77 ++++++++++++------- Assets/Scripts/Games/CropStomp/CropStomp.cs | 18 ++++- .../DrummingPractice/DrummingPractice.cs | 51 ++++++++---- .../Games/FirstContact/FirstContact.cs | 64 +++++++++++---- Assets/Scripts/Games/ForkLifter/ForkLifter.cs | 56 +++++++++++--- Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs | 26 +++++-- .../Scripts/Games/RhythmRally/RhythmRally.cs | 77 ++++++++++++++----- .../Scripts/Games/RhythmSomen/RhythmSomen.cs | 23 +++++- Assets/Scripts/Games/SpaceDance/SpaceDance.cs | 23 +++++- .../Scripts/Games/SpaceSoccer/SpaceSoccer.cs | 27 +++++-- .../Games/Tram&Pauline/TramAndPauline.cs | 17 +++- .../Games/WizardsWaltz/WizardsWaltz.cs | 13 +++- Assets/Scripts/Minigames.cs | 14 ++-- 17 files changed, 451 insertions(+), 156 deletions(-) diff --git a/Assets/Scripts/Games/AirRally/AirRally.cs b/Assets/Scripts/Games/AirRally/AirRally.cs index 7b947d42..8103d93e 100644 --- a/Assets/Scripts/Games/AirRally/AirRally.cs +++ b/Assets/Scripts/Games/AirRally/AirRally.cs @@ -16,26 +16,45 @@ namespace HeavenStudio.Games.Loaders { return new Minigame("airRally", "Air Rally", "008c97", false, false, new List() { - new GameAction("set distance", delegate { AirRally.instance.SetDistance(e.currentEntity.type); }, .5f, false, new List() + new GameAction("set distance", "Set Distance") { - new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") - }), + function = delegate { AirRally.instance.SetDistance(e.currentEntity.type); }, + defaultLength = .5f, + parameters = new List() + { + new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") + } + }, //new GameAction("start rally", delegate { AirRally.instance.StartRally(true); }, .5f, false), - new GameAction("rally", delegate { AirRally.instance.Rally(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.length); }, 2f, true, new List() - { - new Param("toggle", false, "Silent", "Make Forthington Silent"), - }), - new GameAction("ba bum bum bum", delegate { AirRally.instance.BaBumBumBum(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.type); }, 7f, false, new List() - { - new Param("toggle", false, "Count", "Make Forthington Count"), - new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") - }), - new GameAction("forthington voice lines", delegate { AirRally.instance.ForthVoice(e.currentEntity.type, e.currentEntity.type2); }, 1f, false, new List() - { - new Param("type", AirRally.CountSound.one, "Type", "The number Forthington will say"), - new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") - }), - + new GameAction("rally", "Rally") + { + function = delegate { AirRally.instance.Rally(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.length); }, + defaultLength = 2f, + resizable = true, + parameters = new List() + { + new Param("toggle", false, "Silent", "Make Forthington Silent"), + } + }, + new GameAction("ba bum bum bum", "Ba Bum Bum Bum") + { + function = delegate { AirRally.instance.BaBumBumBum(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.type); }, + defaultLength = 7f, + parameters = new List() + { + new Param("toggle", false, "Count", "Make Forthington Count"), + new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") + } + }, + new GameAction("forthington voice lines", "Forthington Voice Lines") + { + function = delegate { AirRally.instance.ForthVoice(e.currentEntity.type, e.currentEntity.type2); }, + parameters = new List() + { + new Param("type", AirRally.CountSound.one, "Type", "The number Forthington will say"), + new Param("type", AirRally.DistanceSound.close, "Type", "How far is Forthington?") + } + } }); } } diff --git a/Assets/Scripts/Games/BlueBear/BlueBear.cs b/Assets/Scripts/Games/BlueBear/BlueBear.cs index 1f5e0a69..6ffee5cd 100644 --- a/Assets/Scripts/Games/BlueBear/BlueBear.cs +++ b/Assets/Scripts/Games/BlueBear/BlueBear.cs @@ -13,8 +13,16 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("blueBear", "Blue Bear", "B4E6F6", false, false, new List() { - new GameAction("donut", delegate { BlueBear.instance.SpawnTreat(eventCaller.currentEntity.beat, false); }, 3, false), - new GameAction("cake", delegate { BlueBear.instance.SpawnTreat(eventCaller.currentEntity.beat, true); }, 4, false), + new GameAction("donut", "Donut") + { + function = delegate { BlueBear.instance.SpawnTreat(eventCaller.currentEntity.beat, false); }, + defaultLength = 3, + }, + new GameAction("cake", "Cake") + { + function = delegate { BlueBear.instance.SpawnTreat(eventCaller.currentEntity.beat, true); }, + defaultLength = 4, + }, }); } } diff --git a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs index a8130a54..20bbbaf4 100644 --- a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs +++ b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs @@ -15,11 +15,19 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("builtToScaleDS", "Built To Scale (DS)", "00BB00", true, false, new List() { - new GameAction("spawn blocks", delegate { }, 1f, true), - new GameAction("play piano", delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity.type); }, 1f, true, new List() + new GameAction("spawn blocks", "Spawn Blocks") { - new Param("type", new EntityTypes.Integer(-24, 24, 0), "Semitones", "The number of semitones up or down this note should be pitched") - } ), + resizable = true + }, + new GameAction("play piano", "Play Note") + { + function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity.type); }, + resizable = true, + parameters = new List() + { + new Param("type", new EntityTypes.Integer(-24, 24, 0), "Semitones", "The number of semitones up or down this note should be pitched") + } + }, }); } } diff --git a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs index 9555292f..ef5503a4 100644 --- a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs +++ b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs @@ -12,18 +12,38 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("clappyTrio", "The Clappy Trio", "29E7FF", false, false, new List() { - new GameAction("clap", delegate { ClappyTrio.instance.Clap(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 1, true), - new GameAction("bop", delegate { ClappyTrio.instance.Bop(eventCaller.currentEntity.beat); } ), - new GameAction("prepare", delegate { ClappyTrio.instance.Prepare(eventCaller.currentEntity.toggle ? 3 : 0); }, parameters: new List() + new GameAction("clap", "Clap") { - new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") - }), - new GameAction("change lion count", delegate { ClappyTrio.instance.ChangeLionCount((int)eventCaller.currentEntity.valA); }, 0.5f, false, new List() + function = delegate { ClappyTrio.instance.Clap(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, + resizable = true + }, + new GameAction("bop", "Bop") { - new Param("valA", new EntityTypes.Integer(3, 8, 3), "Lion Count", "The amount of lions") - }), + function = delegate { ClappyTrio.instance.Bop(eventCaller.currentEntity.beat); } + }, + new GameAction("prepare", "Prepare Stance") + { + function = delegate { ClappyTrio.instance.Prepare(eventCaller.currentEntity.toggle ? 3 : 0); }, + parameters = new List() + { + new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") + } + }, + new GameAction("change lion count", "Change Lion Count") + { + function = delegate { ClappyTrio.instance.ChangeLionCount((int)eventCaller.currentEntity.valA); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("valA", new EntityTypes.Integer(3, 8, 3), "Lion Count", "The amount of lions") + } + }, // This is still here for backwards-compatibility but is hidden in the editor - new GameAction("prepare_alt", delegate { ClappyTrio.instance.Prepare(3); }, hidden: true), + new GameAction("prepare_alt", "") + { + function = delegate { ClappyTrio.instance.Prepare(3); }, + hidden = true + }, }); } } diff --git a/Assets/Scripts/Games/CoinToss/CoinToss.cs b/Assets/Scripts/Games/CoinToss/CoinToss.cs index c1923e09..dd46aa4e 100644 --- a/Assets/Scripts/Games/CoinToss/CoinToss.cs +++ b/Assets/Scripts/Games/CoinToss/CoinToss.cs @@ -14,40 +14,63 @@ namespace HeavenStudio.Games.Loaders { return new Minigame("coinToss", "Coin Toss", "B4E6F6", false, false, new List() { - new GameAction("toss", delegate { CoinToss.instance.TossCoin(eventCaller.currentEntity.beat, eventCaller.currentEntity.toggle); }, 7, false, parameters: new List() + new GameAction("toss", "Toss Coin") { - new Param("toggle", false, "Audience Reaction", "Enable Audience Reaction"), - }), + function = delegate { CoinToss.instance.TossCoin(eventCaller.currentEntity.beat, eventCaller.currentEntity.toggle); }, + defaultLength = 7, + parameters = new List() + { + new Param("toggle", false, "Audience Reaction", "Enable Audience Reaction"), + } + }, + new GameAction("set background color", "Set Background Color") + { + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f); CoinToss.instance.ChangeBackgroundColor(e.colorB, 0f, true); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("colorA", CoinToss.defaultBgColor, "Background Color", "The background color to change to"), + new Param("colorB", CoinToss.defaultFgColor, "Foreground Color", "The foreground color to change to") + } + }, + new GameAction("fade background color", "Fade Background Color") + { + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); CoinToss.instance.FadeBackgroundColor(e.colorC, e.colorD, e.length, true); }, + resizable = true, + parameters = new List() + { + new Param("colorA", Color.white, "BG Start Color", "The starting color in the fade"), + new Param("colorB", CoinToss.defaultBgColor, "BG End Color", "The ending color in the fade"), + new Param("colorC", Color.white, "FG Start Color", "The starting color in the fade"), + new Param("colorD", CoinToss.defaultFgColor, "FG End Color", "The ending color in the fade") + } + }, - new GameAction("set background color", delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f); CoinToss.instance.ChangeBackgroundColor(e.colorB, 0f, true); }, 0.5f, false, new List() - { - new Param("colorA", CoinToss.defaultBgColor, "Background Color", "The background color to change to"), - new Param("colorB", CoinToss.defaultFgColor, "Foreground Color", "The foreground color to change to") - } ), - new GameAction("fade background color", delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); CoinToss.instance.FadeBackgroundColor(e.colorC, e.colorD, e.length, true); }, 1f, true, new List() - { - new Param("colorA", Color.white, "BG Start Color", "The starting color in the fade"), - new Param("colorB", CoinToss.defaultBgColor, "BG End Color", "The ending color in the fade"), - new Param("colorC", Color.white, "FG Start Color", "The starting color in the fade"), - new Param("colorD", CoinToss.defaultFgColor, "FG End Color", "The ending color in the fade") - } ), - - - //left in for backwards-compatibility, but cannot be placed - - new GameAction("set foreground color", delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f, true); }, 0.5f, false, new List - + new GameAction("set foreground color", "") { - new Param("colorA", CoinToss.defaultFgColor, "Foreground Color", "The foreground color to change to") + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f, true); }, + defaultLength = 0.5f, + parameters = new List + + { + new Param("colorA", CoinToss.defaultFgColor, "Foreground Color", "The foreground color to change to") - }, hidden: true ), + }, + hidden = true + }, - new GameAction("fade foreground color", delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length, true); }, 1f, true, new List() + new GameAction("fade foreground color", "") { - new Param("colorA", Color.white, "Start Color", "The starting color in the fade"), - new Param("colorB", CoinToss.defaultFgColor, "End Color", "The ending color in the fade") - }, hidden: true ), + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length, true); }, + resizable = true, + parameters = new List() + { + new Param("colorA", Color.white, "Start Color", "The starting color in the fade"), + new Param("colorB", CoinToss.defaultFgColor, "End Color", "The ending color in the fade") + }, + hidden = true + }, }, new List() {"ntr", "aim"}, "ntrcoin", "en", diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs index 72926f72..2b71ac99 100644 --- a/Assets/Scripts/Games/CropStomp/CropStomp.cs +++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs @@ -13,9 +13,21 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("cropStomp", "Crop Stomp", "BFDEA6", false, false, new List() { - new GameAction("start marching", delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, 2f, false, inactiveFunction: delegate { CropStomp.MarchInactive(eventCaller.currentEntity.beat); }), - new GameAction("veggies", delegate { }, 4f, true), - new GameAction("mole", delegate { }, 2f, false), + new GameAction("start marching", "Start Marching") + { + function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, + defaultLength = 2f, + inactiveFunction = delegate { CropStomp.MarchInactive(eventCaller.currentEntity.beat); } + }, + new GameAction("veggies", "Veggies") + { + defaultLength = 4f, + resizable = true + }, + new GameAction("mole", "Mole") + { + defaultLength = 2f + }, }); } } diff --git a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs index 6bf253de..c9669717 100644 --- a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs +++ b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs @@ -14,25 +14,44 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("drummingPractice", "Drumming Practice", "2BCF33", false, false, new List() { - new GameAction("bop", delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetBop(e.beat, e.length); }, 0.5f, true), - new GameAction("drum", delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.Prepare(e.beat, e.toggle); }, 2f, parameters: new List() + new GameAction("bop", "Bop") { - new Param("toggle", true, "Applause", "Whether or not an applause should be played on a successful hit") - }), - new GameAction("set mii", delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetMiis(e.type, e.type2, e.type3, e.toggle); }, 0.5f, parameters: new List() + function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetBop(e.beat, e.length); }, + defaultLength = 0.5f, + resizable = true + }, + new GameAction("drum", "Hit Drum") { - new Param("type", DrummingPractice.MiiType.Random, "Player Mii", "The Mii that the player will control"), - new Param("type2", DrummingPractice.MiiType.Random, "Left Mii", "The Mii on the left"), - new Param("type3", DrummingPractice.MiiType.Random, "Right Mii", "The Mii on the right"), - new Param("toggle", false, "Set All to Player", "Sets all Miis to the Player's Mii") - }), - new GameAction("set background color", delegate {var e = eventCaller.currentEntity; DrummingPractice.instance.SetBackgroundColor(e.colorA, e.colorB, e.colorC); }, 0.5f, false, new List() + function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.Prepare(e.beat, e.toggle); }, + defaultLength = 2f, + parameters = new List() + { + new Param("toggle", true, "Applause", "Whether or not an applause should be played on a successful hit") + } + }, + new GameAction("set mii", "Set Miis") { - new Param("colorA", new Color(43/255f, 207/255f, 51/255f), "Color A", "The top-most color of the background gradient"), - new Param("colorB", new Color(1, 1, 1), "Color B", "The bottom-most color of the background gradient"), - new Param("colorC", new Color(1, 247/255f, 0), "Streak Color", "The color of streaks that appear on a successful hit") - }) - + function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetMiis(e.type, e.type2, e.type3, e.toggle); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("type", DrummingPractice.MiiType.Random, "Player Mii", "The Mii that the player will control"), + new Param("type2", DrummingPractice.MiiType.Random, "Left Mii", "The Mii on the left"), + new Param("type3", DrummingPractice.MiiType.Random, "Right Mii", "The Mii on the right"), + new Param("toggle", false, "Set All to Player", "Sets all Miis to the Player's Mii") + } + }, + new GameAction("set background color", "Set Background Color") + { + function = delegate {var e = eventCaller.currentEntity; DrummingPractice.instance.SetBackgroundColor(e.colorA, e.colorB, e.colorC); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("colorA", new Color(43/255f, 207/255f, 51/255f), "Color A", "The top-most color of the background gradient"), + new Param("colorB", new Color(1, 1, 1), "Color B", "The bottom-most color of the background gradient"), + new Param("colorC", new Color(1, 247/255f, 0), "Streak Color", "The color of streaks that appear on a successful hit") + } + } }); } } diff --git a/Assets/Scripts/Games/FirstContact/FirstContact.cs b/Assets/Scripts/Games/FirstContact/FirstContact.cs index 80384be0..f0b4e4da 100644 --- a/Assets/Scripts/Games/FirstContact/FirstContact.cs +++ b/Assets/Scripts/Games/FirstContact/FirstContact.cs @@ -11,26 +11,58 @@ namespace HeavenStudio.Games.Loaders { return new Minigame("firstContact", "First Contact", "008c97", false, false, new List() { - new GameAction("beat intervals", delegate { FirstContact.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 4f, true), - new GameAction("alien speak", delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat, eventCaller.currentEntity.valA); }, 0.5f, false, new List() + new GameAction("beat intervals", "Start Interval") { - new Param("valA", new EntityTypes.Float(.8f, 1.5f, 1f), "Pitch") - }), - new GameAction("alien turnover", delegate { FirstContact.instance.alienTurnOver(eventCaller.currentEntity.beat); }, 0.5f, false), - new GameAction("alien success", delegate { FirstContact.instance.alienSuccess(eventCaller.currentEntity.beat); }, 1f, false), - new GameAction("mission control", delegate { FirstContact.instance.missionControlDisplay(eventCaller.currentEntity.beat, eventCaller.currentEntity.toggle, eventCaller.currentEntity.length); }, 1f, true, new List + function = delegate { FirstContact.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, + defaultLength = 4f, + resizable = true + }, + new GameAction("alien speak", "Alien Speak") { - new Param("toggle", false, "Stay", "If it's the end of the remix/song") - }), - new GameAction("look at", delegate { FirstContact.instance.lookAtDirection(eventCaller.currentEntity.type, eventCaller.currentEntity.type); }, .5f, false, new List() + function = delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat, eventCaller.currentEntity.valA); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("valA", new EntityTypes.Float(.8f, 1.5f, 1f), "Pitch") + } + }, + new GameAction("alien turnover", "Alien Turnover") { - new Param("type", FirstContact.alienLookAt.lookAtTranslator, "alien look at what", "[Alien] will look at what"), - new Param("type", FirstContact.translatorLookAt.lookAtAlien, "translator look at what", "[Translator] will look at what"), - }), - new GameAction("live bar beat", delegate { FirstContact.instance.liveBarBeat(eventCaller.currentEntity.toggle); }, .5f, false, new List() + function = delegate { FirstContact.instance.alienTurnOver(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f, + }, + new GameAction("alien success", "Confirm Response") { - new Param("toggle", true, "On Beat", "If the live bar animation will be on beat or not") - }), + function = delegate { FirstContact.instance.alienSuccess(eventCaller.currentEntity.beat); }, + }, + new GameAction("mission control", "Show Mission Control") + { + function = delegate { var e = eventCaller.currentEntity; FirstContact.instance.missionControlDisplay(e.beat, e.toggle, e.length); }, + resizable = true, + parameters = new List + { + new Param("toggle", false, "Stay", "If it's the end of the remix/song") + } + }, + new GameAction("look at", "Look At") + { + function = delegate { FirstContact.instance.lookAtDirection(eventCaller.currentEntity.type, eventCaller.currentEntity.type); }, + defaultLength = .5f, + parameters = new List() + { + new Param("type", FirstContact.alienLookAt.lookAtTranslator, "alien look at what", "[Alien] will look at what"), + new Param("type", FirstContact.translatorLookAt.lookAtAlien, "translator look at what", "[Translator] will look at what"), + } + }, + new GameAction("live bar beat", "Live Bar Beat") + { + function = delegate { FirstContact.instance.liveBarBeat(eventCaller.currentEntity.toggle); }, + defaultLength = .5f, + parameters = new List() + { + new Param("toggle", true, "On Beat", "If the live bar animation will be on beat or not") + } + }, //new GameAction("Version of First Contact", delegate { FirstContact.instance.versionOfFirstContact(eventCaller.currentEntity.type); }, .5f, false, new List //{ diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs index 30ddc798..9ba65292 100644 --- a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs +++ b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs @@ -14,18 +14,54 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("forkLifter", "Fork Lifter", "FFFFFF", false, false, new List() { - new GameAction("flick", delegate { var e = eventCaller.currentEntity; ForkLifter.instance.Flick(e.beat, e.type); }, 3, false, new List() + new GameAction("flick", "Flick Food") { - new Param("type", ForkLifter.FlickType.Pea, "Object", "The object to be flicked") - }), - new GameAction("prepare", delegate { ForkLifter.instance.ForkLifterHand.Prepare(); }, 0.5f), - new GameAction("gulp", delegate { ForkLifter.playerInstance.Eat(); }), - new GameAction("sigh", delegate { Jukebox.PlayOneShot("games/forkLifter/sigh"); }), + function = delegate { var e = eventCaller.currentEntity; ForkLifter.instance.Flick(e.beat, e.type); }, + defaultLength = 3, + parameters = new List() + { + new Param("type", ForkLifter.FlickType.Pea, "Object", "The object to be flicked") + } + }, + new GameAction("prepare", "Prepare Hand") + { + function = delegate { ForkLifter.instance.ForkLifterHand.Prepare(); }, + defaultLength = 0.5f + }, + new GameAction("gulp", "Swallow") + { + function = delegate { ForkLifter.playerInstance.Eat(); } + }, + new GameAction("sigh", "Sigh") + { + + function = delegate { Jukebox.PlayOneShot("games/forkLifter/sigh"); } + }, // These are still here for backwards-compatibility but are hidden in the editor - new GameAction("pea", delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 0); }, 3, hidden: true), - new GameAction("topbun", delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 1); }, 3, hidden: true), - new GameAction("burger", delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 2); }, 3, hidden: true), - new GameAction("bottombun", delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 3); }, 3, hidden: true), + new GameAction("pea", "") + { + function = delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 0); }, + defaultLength = 3, + hidden = true + }, + new GameAction("topbun", "") + { + function = delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 1); }, + defaultLength = 3, + hidden = true + }, + new GameAction("burger", "") + { + function = delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 2); }, + defaultLength = 3, + hidden = true + }, + new GameAction("bottombun", "") + { + function = delegate { ForkLifter.instance.Flick(eventCaller.currentEntity.beat, 3); }, + defaultLength = 3, + hidden = true + }, }); } } diff --git a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs index f497af3d..7da7b4ac 100644 --- a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs +++ b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs @@ -15,12 +15,28 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("mrUpbeat", "Mr. Upbeat", "FFFFFF", false, false, new List() { - new GameAction("prepare", delegate { MrUpbeat.instance.SetInterval(eventCaller.currentEntity.beat); }, 0.5f, true, inactiveFunction: delegate { MrUpbeat.Beep(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }), - new GameAction("go", delegate { MrUpbeat.instance.Go(eventCaller.currentEntity.beat); }, 4f, true), - new GameAction("ding!", delegate { MrUpbeat.instance.Ding(eventCaller.currentEntity.toggle); }, 0.5f, parameters: new List() + new GameAction("prepare", "Prepare") { - new Param("toggle", false, "Applause") - }), + function = delegate { MrUpbeat.instance.SetInterval(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f, + resizable = true, + inactiveFunction = delegate { MrUpbeat.Beep(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); } + }, + new GameAction("go", "Start Stepping") + { + function = delegate { MrUpbeat.instance.Go(eventCaller.currentEntity.beat); }, + defaultLength = 4f, + resizable = true + }, + new GameAction("ding!", "Finish Stepping") + { + function = delegate { MrUpbeat.instance.Ding(eventCaller.currentEntity.toggle); }, + defaultLength = 0.5f, + parameters = new List() + { + new Param("toggle", false, "Applause") + } + }, }); } } diff --git a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs index c4dfbcb7..ea51dd14 100644 --- a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs +++ b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs @@ -14,24 +14,65 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("rhythmRally", "Rhythm Rally", "FFFFFF", true, false, new List() { - new GameAction("bop", delegate { RhythmRally.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 0.5f, true), - new GameAction("whistle", delegate { RhythmRally.instance.PlayWhistle(); }, 0.5f), - new GameAction("toss ball", delegate { RhythmRally.instance.Toss(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, 6f, true); }, 2f), - new GameAction("rally", delegate { RhythmRally.instance.Serve(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Normal); }, 4f, true), - new GameAction("slow rally", delegate { RhythmRally.instance.Serve(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Slow); }, 8f, true), - new GameAction("fast rally", delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Fast); }, 6f), - new GameAction("superfast rally", delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.SuperFast); }, 12f), - new GameAction("pose", delegate { RhythmRally.instance.Pose(); }, 0.5f), - new GameAction("camera", delegate { - var e = eventCaller.currentEntity; - var rotation = new Vector3(0, e.valA, 0); - RhythmRally.instance.ChangeCameraAngle(rotation, e.valB, e.length, (Ease)e.type, (RotateMode)e.type2); - }, 4, true, new List() { - new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Angle", "The rotation of the camera around the center of the table"), - new Param("valB", new EntityTypes.Float(0.5f, 4f, 1), "Zoom", "The camera's level of zoom (Lower value = Zoomed in)"), - new Param("type", Ease.Linear, "Ease", "The easing function to use"), - new Param("type2", RotateMode.Fast, "Rotation Mode", "The rotation mode to use") - } ), + new GameAction("bop", "Bop") + { + function = delegate { RhythmRally.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, + defaultLength = 0.5f, + resizable = true + }, + new GameAction("whistle", "Whisle") + { + function = delegate { RhythmRally.instance.PlayWhistle(); }, + defaultLength = 0.5f + }, + new GameAction("toss ball", "Toss Ball") + { + function = delegate { RhythmRally.instance.Toss(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, 6f, true); }, + defaultLength = 2f + }, + new GameAction("rally", "Rally") + { + function = delegate { RhythmRally.instance.Serve(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Normal); }, + defaultLength = 4f, + resizable = true + }, + new GameAction("slow rally", "Slow Rally") + { + function = delegate { RhythmRally.instance.Serve(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Slow); }, + defaultLength = 8f, + resizable = true + }, + new GameAction("fast rally", "Fast Rally") + { + function = delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.Fast); }, + defaultLength = 6f + }, + new GameAction("superfast rally", "Superfast Rally") + { + function = delegate { RhythmRally.instance.PrepareFastRally(eventCaller.currentEntity.beat, RhythmRally.RallySpeed.SuperFast); }, + defaultLength = 12f + }, + new GameAction("pose", "End Pose") + { + function = delegate { RhythmRally.instance.Pose(); }, + defaultLength = 0.5f + }, + new GameAction("camera", "Camera Controls") + { + function = delegate { + var e = eventCaller.currentEntity; + var rotation = new Vector3(0, e.valA, 0); + RhythmRally.instance.ChangeCameraAngle(rotation, e.valB, e.length, (Ease)e.type, (RotateMode)e.type2); + }, + defaultLength = 4, + resizable = true, + parameters = new List() { + new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Angle", "The rotation of the camera around the center of the table"), + new Param("valB", new EntityTypes.Float(0.5f, 4f, 1), "Zoom", "The camera's level of zoom (Lower value = Zoomed in)"), + new Param("type", Ease.Linear, "Ease", "The easing function to use"), + new Param("type2", RotateMode.Fast, "Rotation Mode", "The rotation mode to use") + } + }, }); } } diff --git a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs index 25b567e0..8931558e 100644 --- a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs +++ b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs @@ -11,10 +11,25 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("rhythmSomen", "Rhythm Sōmen", "000000", false, false, new List() { - new GameAction("crane (far)", delegate { RhythmSomen.instance.DoFarCrane(eventCaller.currentEntity.beat); }, 4.0f, false), - new GameAction("crane (close)", delegate { RhythmSomen.instance.DoCloseCrane(eventCaller.currentEntity.beat); }, 3.0f, false), - new GameAction("crane (both)", delegate { RhythmSomen.instance.DoBothCrane(eventCaller.currentEntity.beat); }, 4.0f, false), - new GameAction("offbeat bell", delegate { RhythmSomen.instance.DoBell(eventCaller.currentEntity.beat); }, 1.0f, false), + new GameAction("crane (far)", "Far Crane") + { + function = delegate { RhythmSomen.instance.DoFarCrane(eventCaller.currentEntity.beat); }, + defaultLength = 4.0f, + }, + new GameAction("crane (close)", "Close Crane") + { + function = delegate { RhythmSomen.instance.DoCloseCrane(eventCaller.currentEntity.beat); }, + defaultLength = 3.0f, + }, + new GameAction("crane (both)", "Both Cranes") + { + function = delegate { RhythmSomen.instance.DoBothCrane(eventCaller.currentEntity.beat); }, + defaultLength = 4.0f, + }, + new GameAction("offbeat bell", "Offbeat Warning") + { + function = delegate { RhythmSomen.instance.DoBell(eventCaller.currentEntity.beat); }, + }, }); } } diff --git a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs index 6f1c647c..73079024 100644 --- a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs +++ b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs @@ -11,10 +11,25 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("spaceDance", "Space Dance \n[WIP don't use]", "000000", false, false, new List() { - new GameAction("turn right", delegate { SpaceDance.instance.DoTurnRight(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("sit down", delegate { SpaceDance.instance.DoSitDown(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("punch", delegate { SpaceDance.instance.DoPunch(eventCaller.currentEntity.beat); }, 2.0f, false), - new GameAction("bop", delegate { SpaceDance.instance.Bop(eventCaller.currentEntity.beat); }, 1.0f, false), + new GameAction("turn right", "Turn Right") + { + function = delegate { SpaceDance.instance.DoTurnRight(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f, + }, + new GameAction("sit down", "Sit Down") + { + function = delegate { SpaceDance.instance.DoSitDown(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f, + }, + new GameAction("punch", "Punch") + { + function = delegate { SpaceDance.instance.DoPunch(eventCaller.currentEntity.beat); }, + defaultLength = 2.0f, + }, + new GameAction("bop", "Bop") + { + function = delegate { SpaceDance.instance.Bop(eventCaller.currentEntity.beat); }, + }, }); } } diff --git a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs index 59c3e546..a0a7293d 100644 --- a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs +++ b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs @@ -12,17 +12,30 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("spaceSoccer", "Space Soccer", "B888F8", false, false, new List() { - new GameAction("ball dispense", delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity.toggle); }, 2f, - parameters: new List() + new GameAction("ball dispense", "Ball Dispense") + { + function = delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity.toggle); }, + defaultLength = 2f, + parameters = new List() { new Param("toggle", false, "Disable Sound", "Disables the dispense sound") }, - inactiveFunction: delegate { if (!eventCaller.currentEntity.toggle) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } }), - new GameAction("high kick-toe!", delegate { }, 3f, false, new List() + inactiveFunction = delegate { if (!eventCaller.currentEntity.toggle) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } } + }, + new GameAction("high kick-toe!", "High Kick-Toe!") { - new Param("swing", new EntityTypes.Float(0, 1, 0.5f), "Swing", "The amount of swing") - }), - new GameAction("keep-up", delegate { }, 4f, true, hidden: true), + defaultLength = 3f, + parameters = new List() + { + new Param("swing", new EntityTypes.Float(0, 1, 0.5f), "Swing", "The amount of swing") + } + }, + // This is still here for "backwards-compatibility" but is hidden in the editor (it does absolutely nothing however) + new GameAction("keep-up", "") + { + defaultLength = 4f, + resizable = true + }, }); } } diff --git a/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs b/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs index abc5b749..43c8ea39 100644 --- a/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs +++ b/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs @@ -12,11 +12,20 @@ namespace HeavenStudio.Games.Loaders { return new Minigame("tram&Pauline", "Tram & Pauline \n[WIP]", "000000", false, false, new List() { - new GameAction("curtains", delegate { TramAndPauline.instance.Curtains(eventCaller.currentEntity.beat); }, 0.5f), - new GameAction("SFX", delegate { var e = eventCaller.currentEntity; TramAndPauline.instance.SFX(e.beat, e.toggle); }, 2.5f, false, new List() + new GameAction("curtains", "Curtains") { - new Param("type", TramAndPauline.SoundEffects.Henge, "calls", "the sound effects to choose from"), - }), + function = delegate { TramAndPauline.instance.Curtains(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f + }, + new GameAction("SFX", "SFX") + { + function = delegate { var e = eventCaller.currentEntity; TramAndPauline.instance.SFX(e.beat, e.toggle); }, + defaultLength = 2.5f, + parameters = new List() + { + new Param("type", TramAndPauline.SoundEffects.Henge, "calls", "the sound effects to choose from"), + } + }, }); } diff --git a/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs b/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs index 16315f38..d41d4887 100644 --- a/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs +++ b/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs @@ -15,8 +15,17 @@ namespace HeavenStudio.Games.Loaders public static Minigame AddGame(EventCaller eventCaller) { return new Minigame("wizardsWaltz", "Wizard's Waltz \n(Mahou Tsukai)", "FFEF9C", false, false, new List() { - new GameAction("start interval", delegate { WizardsWaltz.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, 4f, true), - new GameAction("plant", delegate { WizardsWaltz.instance.SpawnFlower(eventCaller.currentEntity.beat); }, 0.5f, false), + new GameAction("start interval", "Start Interval") + { + function = delegate { WizardsWaltz.instance.SetIntervalStart(eventCaller.currentEntity.beat, eventCaller.currentEntity.length); }, + defaultLength = 4f, + resizable = true + }, + new GameAction("plant", "Plant") + { + function = delegate { WizardsWaltz.instance.SpawnFlower(eventCaller.currentEntity.beat); }, + defaultLength = 0.5f, + }, }); } } diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 193a028f..e2ab698b 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -137,13 +137,13 @@ namespace HeavenStudio { public string actionName; public string displayName; - public EventCallback function; - public float defaultLength; - public bool resizable; - public List parameters; - public bool hidden; - public EventCallback inactiveFunction; - public EventCallback preFunction; + public EventCallback function = delegate { }; + public float defaultLength = 1; + public bool resizable = false; + public List parameters = null; + public bool hidden = false; + public EventCallback inactiveFunction = delegate { }; + public EventCallback preFunction = delegate { }; /// /// Creates a block that can be used in the editor. The block's function and attributes are defined in the parentheses. From cf2850ccb108ed647b2ed5dee7e58f6c668cd0ae Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 20 Aug 2022 23:54:09 -0400 Subject: [PATCH 04/27] display action real name in aproppriate places - make text on entities larger - fix bug with enum properties - show beat of editing entity when viewing properties --- Assets/Scenes/Editor.unity | 10 +++++----- .../LevelEditor/EventSelector/EventParameterManager.cs | 2 +- .../LevelEditor/EventSelector/EventPropertyPrefab.cs | 4 +++- .../LevelEditor/EventSelector/GridGameSelector.cs | 4 ++-- Assets/Scripts/LevelEditor/Timeline/Timeline.cs | 9 +++++---- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 4fd53783..b971faf6 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -6340,8 +6340,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -0.047210693, y: 0.000017166138} - m_SizeDelta: {x: 36.806, y: 44.84} + m_AnchoredPosition: {x: -0.039999, y: 0.000017166138} + m_SizeDelta: {x: 36.813, y: 44.84} m_Pivot: {x: 1, y: 0.5} --- !u!114 &258006093 MonoBehaviour: @@ -6402,7 +6402,7 @@ MonoBehaviour: m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 - m_lineSpacing: 0 + m_lineSpacing: -100 m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 @@ -19238,7 +19238,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 0 + m_Value: 1 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -24820,7 +24820,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.9111} + m_AnchoredPosition: {x: 0, y: 129.91107} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs index c0e1c16d..8dcbb582 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs @@ -78,7 +78,7 @@ namespace HeavenStudio.Editor eventSelector.SetActive(false); this.entity = entity; - Editor.instance.SetGameEventTitle($"Properties for {entity.datamodel}"); + Editor.instance.SetGameEventTitle($"Properties for {entity.datamodel} at beat {entity.beat}"); DestroyParams(); diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 593b7f2c..e45cc825 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -172,7 +172,9 @@ namespace HeavenStudio.Editor dropdown.value = selected; dropdown.onValueChanged.AddListener(_ => - parameterManager.entity[propertyName] = Enum.ToObject(enumType, dropdown.value) + { + parameterManager.entity[propertyName] = (int) enumVals.GetValue(dropdown.value); + } ); break; diff --git a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs index 234067f5..b5147b65 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs @@ -140,7 +140,7 @@ namespace HeavenStudio.Editor if (!EventCaller.FXOnlyGames().Contains(EventCaller.instance.GetMinigame(mg.name))) { GameObject sg = Instantiate(EventRef, eventsParent); - sg.GetComponent().text = "switchGame"; + sg.GetComponent().text = "Switch Game"; sg.SetActive(true); sg.GetComponent().color = EditorTheme.theme.properties.EventSelectedCol.Hex2RGB(); } @@ -149,7 +149,7 @@ namespace HeavenStudio.Editor { if (mg.actions[i].actionName == "switchGame" || mg.actions[i].hidden) continue; GameObject g = Instantiate(EventRef, eventsParent); - g.GetComponent().text = mg.actions[i].actionName; + g.GetComponent().text = mg.actions[i].displayName; g.SetActive(true); } } diff --git a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs index 71f35d14..162eacb8 100644 --- a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs @@ -505,9 +505,11 @@ namespace HeavenStudio.Editor.Track public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), Beatmap.Entity entity = null, bool addEvent = false, string eventId = "") { + var game = EventCaller.instance.GetMinigame(eventName.Split(0)); + var action = EventCaller.instance.GetGameAction(game, eventName.Split(1)); GameObject g = Instantiate(TimelineEventObjRef.gameObject, TimelineEventObjRef.parent); g.transform.localPosition = pos; - g.transform.GetChild(3).GetComponent().text = eventName.Split('/')[1]; + g.transform.GetChild(3).GetComponent().text = action.displayName; TimelineEventObj eventObj = g.GetComponent(); @@ -572,9 +574,8 @@ namespace HeavenStudio.Editor.Track tempEntity = en; - // default param value - var game = EventCaller.instance.GetMinigame(eventName.Split(0)); - var ep = EventCaller.instance.GetGameAction(game, eventName.Split(1)).parameters; + // default param values + var ep = action.parameters; if (ep != null) { From f209b2fd17cfaadb6c92544568810309dbf5c1c1 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sun, 21 Aug 2022 19:46:45 -0400 Subject: [PATCH 05/27] start implementation of new format needs fixes for some types --- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 104 +++++++++++++++++- Assets/Scripts/Conductor.cs | 16 ++- Assets/Scripts/Datamodel.cs | 6 + Assets/Scripts/DebugUI.cs | 1 - Assets/Scripts/EventCaller.cs | 28 +++-- Assets/Scripts/GameCamera.cs | 30 ++--- Assets/Scripts/GameManager.cs | 27 +++-- Assets/Scripts/Games/AirRally/AirRally.cs | 8 +- .../Games/BuiltToScaleDS/BuiltToScaleDS.cs | 4 +- Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs | 6 +- Assets/Scripts/Games/CoinToss/CoinToss.cs | 10 +- Assets/Scripts/Games/CropStomp/CropStomp.cs | 4 +- Assets/Scripts/Games/DJSchool/DJSchool.cs | 18 +-- .../DrummingPractice/DrummingPractice.cs | 8 +- Assets/Scripts/Games/FanClub/FanClub.cs | 22 ++-- .../Games/FirstContact/FirstContact.cs | 10 +- Assets/Scripts/Games/ForkLifter/ForkLifter.cs | 2 +- Assets/Scripts/Games/Global/Flash.cs | 14 +-- Assets/Scripts/Games/Global/Textbox.cs | 36 +++--- Assets/Scripts/Games/KarateMan/KarateMan.cs | 58 +++++----- Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs | 6 +- .../Scripts/Games/PajamaParty/PajamaParty.cs | 4 +- .../Scripts/Games/RhythmRally/RhythmRally.cs | 6 +- .../Games/RhythmTweezers/RhythmTweezers.cs | 8 +- .../Games/SamuraiSliceNtr/SamuraiSliceNtr.cs | 2 +- Assets/Scripts/Games/SpaceSoccer/Ball.cs | 2 +- Assets/Scripts/Games/SpaceSoccer/Kicker.cs | 2 +- .../Scripts/Games/SpaceSoccer/SpaceSoccer.cs | 6 +- Assets/Scripts/Games/Spaceball/Spaceball.cs | 18 +-- Assets/Scripts/Games/TapTrial/TapTrial.cs | 6 +- .../Games/Tram&Pauline/TramAndPauline.cs | 2 +- Assets/Scripts/Games/TrickClass/TrickClass.cs | 4 +- .../Games/WizardsWaltz/WizardsWaltz.cs | 2 +- Assets/Scripts/LevelEditor/Commands/Block.cs | 6 +- Assets/Scripts/LevelEditor/Editor.cs | 15 ++- .../EventSelector/EventParameterManager.cs | 8 +- .../EventSelector/EventPropertyPrefab.cs | 3 +- .../LevelEditor/Timeline/TempoTimeline.cs | 6 +- .../LevelEditor/Timeline/TempoTimelineObj.cs | 2 +- .../Scripts/LevelEditor/Timeline/Timeline.cs | 21 +++- .../LevelEditor/Timeline/TimelineEventObj.cs | 2 +- .../LevelEditor/Timeline/VolumeTimelineObj.cs | 2 +- Assets/Scripts/Minigames.cs | 10 +- Assets/Scripts/Util/EntityTypes.cs | 28 +++++ 44 files changed, 374 insertions(+), 209 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 4ebfe467..899901ae 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -22,6 +22,8 @@ namespace HeavenStudio // software version (MajorMinorPatch, revision) {"productversion", 000}, {"productsubversion", 0}, + //file format version + {"riqversion", 0}, // general chart info {"remixtitle", "New Remix"}, // chart name @@ -73,7 +75,7 @@ namespace HeavenStudio public int track; [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float length; [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] public float swing; - public Dictionary DynamicData = new Dictionary(); + public Dictionary DynamicData = new Dictionary(); public string datamodel; [JsonIgnore] public Editor.Track.TimelineEventObj eventObj; @@ -89,7 +91,7 @@ namespace HeavenStudio return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); } - public object this[string propertyName] + public dynamic this[string propertyName] { get { @@ -108,7 +110,7 @@ namespace HeavenStudio } } - public void CreateProperty(string name, object defaultValue) + public void CreateProperty(string name, dynamic defaultValue) { if (!DynamicData.ContainsKey(name)) DynamicData.Add(name, defaultValue); @@ -159,5 +161,101 @@ namespace HeavenStudio } } } + + /// + /// converts from the old "rhmania" / "tengoku" format to the new "riq" format + /// + /// a deserialized .rhmania or .tengoku beatmap + /// a .riq beatmap + public static DynamicBeatmap BeatmapConverter(Beatmap beatmap) + { + DynamicBeatmap dynamicBeatmap = new DynamicBeatmap(); + dynamicBeatmap.bpm = beatmap.bpm; + dynamicBeatmap.musicVolume = beatmap.musicVolume; + dynamicBeatmap.firstBeatOffset = beatmap.firstBeatOffset; + + foreach (var entity in beatmap.entities) + { + dynamicBeatmap.entities.Add(new DynamicEntity() + { + beat = entity.beat, + track = entity.track, + length = entity.length, + swing = entity.swing, + datamodel = entity.datamodel, + DynamicData = new Dictionary() + { + { "valA", entity.valA }, + { "valB", entity.valB }, + { "valC", entity.valC }, + + { "toggle", entity.toggle }, + + { "type", entity.type }, + { "type2", entity.type2 }, + { "type3", entity.type3 }, + { "type4", entity.type4 }, + { "type5", entity.type5 }, + { "type6", entity.type6 }, + + { "ease", entity.ease }, + + { "colorA", entity.colorA }, + { "colorB", entity.colorB }, + { "colorC", entity.colorC }, + { "colorD", entity.colorD }, + { "colorE", entity.colorE }, + { "colorF", entity.colorF }, + + { "text1", entity.text1 }, + { "text2", entity.text2 }, + { "text3", entity.text3 }, + } + }); + } + foreach (var tempoChange in beatmap.tempoChanges) + { + dynamicBeatmap.tempoChanges.Add(new TempoChange() + { + beat = tempoChange.beat, + length = tempoChange.length, + tempo = tempoChange.tempo + }); + } + foreach (var volumeChange in beatmap.volumeChanges) + { + dynamicBeatmap.volumeChanges.Add(new VolumeChange() + { + beat = volumeChange.beat, + length = volumeChange.length, + volume = volumeChange.volume + }); + } + return dynamicBeatmap; + } + + /// + /// FUTURE: converts from a karateka mania chart ("bor") to the "riq" format + /// + /// a rawtext .bor chart + /// a .riq beatmap + /// not implemented yet + public static DynamicBeatmap KManiaBorConverter(String bor) + { + return null; + } + + /// + /// updates an "riq" beatmap + /// + /// old beatmap + /// version of old beatmap + /// updated beatmap + /// not implemented yet + public static DynamicBeatmap BeatmapUpdater(DynamicBeatmap beatmap, int version) + { + return beatmap; + } + } } \ No newline at end of file diff --git a/Assets/Scripts/Conductor.cs b/Assets/Scripts/Conductor.cs index 7f60d3cf..0e2dd774 100644 --- a/Assets/Scripts/Conductor.cs +++ b/Assets/Scripts/Conductor.cs @@ -245,9 +245,17 @@ namespace HeavenStudio return tempoChanges; } + private List GetSortedTempoChanges(DynamicBeatmap chart) + { + //iterate over all tempo changes, adding to counter + List tempoChanges = chart.tempoChanges; + tempoChanges.Sort((x, y) => x.beat.CompareTo(y.beat)); //sorts all tempo changes by ascending time (GameManager already does this but juste en cas...) + return tempoChanges; + } + public float GetSongPosFromBeat(float beat) { - Beatmap chart = GameManager.instance.Beatmap; + var chart = GameManager.instance.Beatmap; SetBpm(chart.bpm); //initial counter @@ -257,7 +265,7 @@ namespace HeavenStudio float lastTempoChangeBeat = 0f; //iterate over all tempo changes, adding to counter - List tempoChanges = GetSortedTempoChanges(chart); + var tempoChanges = GetSortedTempoChanges(chart); foreach (var t in tempoChanges) { if (t.beat > beat) @@ -297,12 +305,12 @@ namespace HeavenStudio public float GetBeatFromSongPos(float seconds) { // Debug.Log("Getting beat of seconds " + seconds); - Beatmap chart = GameManager.instance.Beatmap; + var chart = GameManager.instance.Beatmap; float lastTempoChangeBeat = 0f; float lastBpm = chart.bpm; float counterSeconds = -firstBeatOffset; - List tempoChanges = GetSortedTempoChanges(chart); + var tempoChanges = GetSortedTempoChanges(chart); foreach (var t in tempoChanges) { float beatToNext = t.beat - lastTempoChangeBeat; diff --git a/Assets/Scripts/Datamodel.cs b/Assets/Scripts/Datamodel.cs index 2c241457..d2c78672 100644 --- a/Assets/Scripts/Datamodel.cs +++ b/Assets/Scripts/Datamodel.cs @@ -10,5 +10,11 @@ namespace HeavenStudio { return s.Split('/')[index]; } + + public static string GetExtension(this string s) + { + string[] split = s.Split('.'); + return split[split.Length - 1]; + } } } \ No newline at end of file diff --git a/Assets/Scripts/DebugUI.cs b/Assets/Scripts/DebugUI.cs index 6a1449c0..80ace75f 100644 --- a/Assets/Scripts/DebugUI.cs +++ b/Assets/Scripts/DebugUI.cs @@ -71,7 +71,6 @@ namespace HeavenStudio SetText(currEvent, $"CurrentEvent: {GameManager.instance.Beatmap.entities[GameManager.instance.currentEvent - minus].datamodel}"); SetText(eventLength, $"Event Length: {GameManager.instance.Beatmap.entities[GameManager.instance.currentEvent - minus].length}"); - SetText(eventType, $"Event Type: {GameManager.instance.Beatmap.entities[GameManager.instance.currentEvent - minus].type}"); } } diff --git a/Assets/Scripts/EventCaller.cs b/Assets/Scripts/EventCaller.cs index d8449e32..27aab25a 100644 --- a/Assets/Scripts/EventCaller.cs +++ b/Assets/Scripts/EventCaller.cs @@ -9,16 +9,14 @@ namespace HeavenStudio public class EventCaller : MonoBehaviour { public Transform GamesHolder; - public Beatmap.Entity currentEntity = new Beatmap.Entity(); + public DynamicBeatmap.DynamicEntity currentEntity = new DynamicBeatmap.DynamicEntity(); public string currentSwitchGame; public delegate void EventCallback(); public static EventCaller instance { get; private set; } - public List minigames = new List() - { - }; + public List minigames = new List(); public Minigames.Minigame GetMinigame(string gameName) { @@ -34,7 +32,7 @@ namespace HeavenStudio { instance = this; - currentEntity = new Beatmap.Entity(); + currentEntity = new DynamicBeatmap.DynamicEntity(); Minigames.Init(this); @@ -60,7 +58,7 @@ namespace HeavenStudio } - public void CallEvent(Beatmap.Entity entity, bool gameActive) + public void CallEvent(DynamicBeatmap.DynamicEntity entity, bool gameActive) { string[] details = entity.datamodel.Split('/'); Minigames.Minigame game = minigames.Find(c => c.name == details[0]); @@ -86,10 +84,10 @@ namespace HeavenStudio } } - public static List GetAllInGameManagerList(string gameName, string[] include) + public static List GetAllInGameManagerList(string gameName, string[] include) { - List temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName); - List temp2 = new List(); + List temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName); + List temp2 = new List(); for (int i = 0; i < temp1.Count; i++) { if (include.Any(temp1[i].datamodel.Split('/')[1].Contains)) @@ -100,10 +98,10 @@ namespace HeavenStudio return temp2; } - public static List GetAllInGameManagerListExclude(string gameName, string[] exclude) + public static List GetAllInGameManagerListExclude(string gameName, string[] exclude) { - List temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName); - List temp2 = new List(); + List temp1 = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel.Split('/')[0] == gameName); + List temp2 = new List(); for (int i = 0; i < temp1.Count; i++) { if (!exclude.Any(temp1[i].datamodel.Split('/')[1].Contains)) @@ -114,18 +112,18 @@ namespace HeavenStudio return temp2; } - public static List GetAllPlayerEntities(string gameName) + public static List GetAllPlayerEntities(string gameName) { return GameManager.instance.playerEntities.FindAll(c => c.datamodel.Split('/')[0] == gameName); } - public static List GetAllPlayerEntitiesExcept(string gameName) + public static List GetAllPlayerEntitiesExcept(string gameName) { return GameManager.instance.playerEntities.FindAll(c => c.datamodel.Split('/')[0] != gameName); } // elaborate as fuck, boy - public static List GetAllPlayerEntitiesExceptBeforeBeat(string gameName, float beat) + public static List GetAllPlayerEntitiesExceptBeforeBeat(string gameName, float beat) { return GameManager.instance.playerEntities.FindAll(c => c.datamodel.Split('/')[0] != gameName && c.beat < beat); } diff --git a/Assets/Scripts/GameCamera.cs b/Assets/Scripts/GameCamera.cs index 45aa8f73..f4d57538 100644 --- a/Assets/Scripts/GameCamera.cs +++ b/Assets/Scripts/GameCamera.cs @@ -12,10 +12,10 @@ namespace HeavenStudio public static GameCamera instance { get; private set; } public new Camera camera; - private List positionEvents = new List(); - private List rotationEvents = new List(); - private List scaleEvents = new List(); - private List shakeEvents = new List(); + private List positionEvents = new List(); + private List rotationEvents = new List(); + private List scaleEvents = new List(); + private List shakeEvents = new List(); /** default cam position, for quick-resetting @@ -125,15 +125,15 @@ namespace HeavenStudio float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); if (prog >= 0f) { - EasingFunction.Function func = EasingFunction.GetEasingFunction(e.ease); - float dx = func(positionLast.x, e.valA, Mathf.Min(prog, 1f)); - float dy = func(positionLast.y, e.valB, Mathf.Min(prog, 1f)); - float dz = func(positionLast.z, -e.valC, Mathf.Min(prog, 1f)); + EasingFunction.Function func = EasingFunction.GetEasingFunction(e["ease"]); + float dx = func(positionLast.x, e["valA"], Mathf.Min(prog, 1f)); + float dy = func(positionLast.y, e["valB"], Mathf.Min(prog, 1f)); + float dz = func(positionLast.z, -e["valC"], Mathf.Min(prog, 1f)); position = new Vector3(dx, dy, dz); } if (prog > 1f) { - positionLast = new Vector3(e.valA, e.valB, -e.valC); + positionLast = new Vector3(e["valA"], e["valB"], -e["valC"]); } } } @@ -145,16 +145,16 @@ namespace HeavenStudio float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); if (prog >= 0f) { - EasingFunction.Function func = EasingFunction.GetEasingFunction(e.ease); - float dx = func(rotEluerLast.x, e.valA, Mathf.Min(prog, 1f)); - float dy = func(rotEluerLast.y, e.valB, Mathf.Min(prog, 1f)); - float dz = func(-rotEluerLast.z, e.valC, Mathf.Min(prog, 1f)); + EasingFunction.Function func = EasingFunction.GetEasingFunction(e["ease"]); + float dx = func(rotEluerLast.x, e["valA"], Mathf.Min(prog, 1f)); + float dy = func(rotEluerLast.y, e["valB"], Mathf.Min(prog, 1f)); + float dz = func(-rotEluerLast.z, e["valC"], Mathf.Min(prog, 1f)); rotEluer = new Vector3(dx, dy, dz); //I'm stupid and forgot to negate the rotation gfd 😢 } if (prog > 1f) { - rotEluerLast = new Vector3(e.valA, e.valB, -e.valC); + rotEluerLast = new Vector3(e["valA"], e["valB"], -e["valC"]); } } } @@ -167,7 +167,7 @@ namespace HeavenStudio if (prog >= 0f) { float fac = Mathf.Cos(Time.time * 80f) * 0.5f; - shakeResult = new Vector3(fac * e.valA, fac * e.valB); + shakeResult = new Vector3(fac * e["valA"], fac * e["valB"]); } if (prog > 1f) { diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index c5983495..0b86e52a 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -13,8 +13,8 @@ namespace HeavenStudio public class GameManager : MonoBehaviour { [Header("Lists")] - public Beatmap Beatmap = new Beatmap(); - [HideInInspector] public List playerEntities = new List(); + public DynamicBeatmap Beatmap = new DynamicBeatmap(); + [HideInInspector] public List playerEntities = new List(); private List preloadedGames = new List(); public List SoundObjects = new List(); @@ -75,7 +75,7 @@ namespace HeavenStudio if (txt != null) { string json = txt.text; - Beatmap = JsonConvert.DeserializeObject(json); + Beatmap = JsonConvert.DeserializeObject(json); } else { @@ -116,20 +116,33 @@ namespace HeavenStudio public void NewRemix() { - Beatmap = new Beatmap(); + Beatmap = new DynamicBeatmap(); Beatmap.bpm = 120f; Beatmap.musicVolume = 100; Beatmap.firstBeatOffset = 0f; Conductor.instance.musicSource.clip = null; } - public void LoadRemix(string json = "") + public void LoadRemix(string json = "", string type = "riq", int version = 0) { SortEventsList(); if (json != "") { - Beatmap = JsonConvert.DeserializeObject(json); + switch (type) + { + case "tengoku": + case "rhmania": + Beatmap toConvert = JsonConvert.DeserializeObject(json); + Beatmap = DynamicBeatmap.BeatmapConverter(toConvert); + break; + case "riq": + Beatmap = JsonConvert.DeserializeObject(json); + break; + default: + NewRemix(); + break; + } } else { @@ -213,7 +226,7 @@ namespace HeavenStudio // Debug.Log("Checking Tempo Change at " + tempoChanges[currentTempoEvent] + ", current beat " + Conductor.instance.songPositionInBeats); if (Conductor.instance.songPositionInBeats >= tempoChanges[currentTempoEvent]) { - // Debug.Log("Tempo Change at " + Conductor.instance.songPositionInBeats + " of bpm " + Beatmap.tempoChanges[currentTempoEvent].tempo); + // Debug.Log("Tempo Change at " + Conductor.instance.songPositionInBeats + " of bpm " + DynamicBeatmap.tempoChanges[currentTempoEvent].tempo); Conductor.instance.SetBpm(Beatmap.tempoChanges[currentTempoEvent].tempo); Conductor.instance.timeSinceLastTempoChange = Time.time; currentTempoEvent++; diff --git a/Assets/Scripts/Games/AirRally/AirRally.cs b/Assets/Scripts/Games/AirRally/AirRally.cs index 8103d93e..6947b821 100644 --- a/Assets/Scripts/Games/AirRally/AirRally.cs +++ b/Assets/Scripts/Games/AirRally/AirRally.cs @@ -18,7 +18,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("set distance", "Set Distance") { - function = delegate { AirRally.instance.SetDistance(e.currentEntity.type); }, + function = delegate { AirRally.instance.SetDistance(e.currentEntity["type"]); }, defaultLength = .5f, parameters = new List() { @@ -28,7 +28,7 @@ namespace HeavenStudio.Games.Loaders //new GameAction("start rally", delegate { AirRally.instance.StartRally(true); }, .5f, false), new GameAction("rally", "Rally") { - function = delegate { AirRally.instance.Rally(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.length); }, + function = delegate { AirRally.instance.Rally(e.currentEntity.beat, e.currentEntity["toggle"], e.currentEntity.length); }, defaultLength = 2f, resizable = true, parameters = new List() @@ -38,7 +38,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("ba bum bum bum", "Ba Bum Bum Bum") { - function = delegate { AirRally.instance.BaBumBumBum(e.currentEntity.beat, e.currentEntity.toggle, e.currentEntity.type); }, + function = delegate { AirRally.instance.BaBumBumBum(e.currentEntity.beat, e.currentEntity["toggle"], e.currentEntity["type"]); }, defaultLength = 7f, parameters = new List() { @@ -48,7 +48,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("forthington voice lines", "Forthington Voice Lines") { - function = delegate { AirRally.instance.ForthVoice(e.currentEntity.type, e.currentEntity.type2); }, + function = delegate { AirRally.instance.ForthVoice(e.currentEntity["type"], e.currentEntity["type2"]); }, parameters = new List() { new Param("type", AirRally.CountSound.one, "Type", "The number Forthington will say"), diff --git a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs index 20bbbaf4..eca6583c 100644 --- a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs +++ b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs @@ -21,7 +21,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("play piano", "Play Note") { - function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity.type); }, + function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["type"]); }, resizable = true, parameters = new List() { @@ -87,7 +87,7 @@ namespace HeavenStudio.Games elevatorAnim.Play("MakeRod", 0, 1f); } - List spawnedBlockEvents = new List(); + List spawnedBlockEvents = new List(); void Update() { if (!Conductor.instance.isPlaying && !Conductor.instance.isPaused) diff --git a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs index ef5503a4..2e1d94ad 100644 --- a/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs +++ b/Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs @@ -23,7 +23,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("prepare", "Prepare Stance") { - function = delegate { ClappyTrio.instance.Prepare(eventCaller.currentEntity.toggle ? 3 : 0); }, + function = delegate { ClappyTrio.instance.Prepare(eventCaller.currentEntity["toggle"] ? 3 : 0); }, parameters = new List() { new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") @@ -31,7 +31,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("change lion count", "Change Lion Count") { - function = delegate { ClappyTrio.instance.ChangeLionCount((int)eventCaller.currentEntity.valA); }, + function = delegate { ClappyTrio.instance.ChangeLionCount((int)eventCaller.currentEntity["valA"]); }, defaultLength = 0.5f, parameters = new List() { @@ -79,7 +79,7 @@ namespace HeavenStudio.Games } public override void OnGameSwitch(float beat) { - Beatmap.Entity changeLion = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "clappyTrio/change lion count" && c.beat <= beat); + DynamicBeatmap.DynamicEntity changeLion = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "clappyTrio/change lion count" && c.beat <= beat); if(changeLion != null) { EventCaller.instance.CallEvent(changeLion, true); diff --git a/Assets/Scripts/Games/CoinToss/CoinToss.cs b/Assets/Scripts/Games/CoinToss/CoinToss.cs index dd46aa4e..eca4cafa 100644 --- a/Assets/Scripts/Games/CoinToss/CoinToss.cs +++ b/Assets/Scripts/Games/CoinToss/CoinToss.cs @@ -16,7 +16,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("toss", "Toss Coin") { - function = delegate { CoinToss.instance.TossCoin(eventCaller.currentEntity.beat, eventCaller.currentEntity.toggle); }, + function = delegate { CoinToss.instance.TossCoin(eventCaller.currentEntity.beat, eventCaller.currentEntity["toggle"]); }, defaultLength = 7, parameters = new List() { @@ -25,7 +25,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set background color", "Set Background Color") { - function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f); CoinToss.instance.ChangeBackgroundColor(e.colorB, 0f, true); }, + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e["colorA"], 0f); CoinToss.instance.ChangeBackgroundColor(e["colorB"], 0f, true); }, defaultLength = 0.5f, parameters = new List() { @@ -35,7 +35,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("fade background color", "Fade Background Color") { - function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); CoinToss.instance.FadeBackgroundColor(e.colorC, e.colorD, e.length, true); }, + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e["colorA"], e["colorB"], e.length); CoinToss.instance.FadeBackgroundColor(e["colorC"], e["colorD"], e.length, true); }, resizable = true, parameters = new List() { @@ -49,7 +49,7 @@ namespace HeavenStudio.Games.Loaders //left in for backwards-compatibility, but cannot be placed new GameAction("set foreground color", "") { - function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e.colorA, 0f, true); }, + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.ChangeBackgroundColor(e["colorA"], 0f, true); }, defaultLength = 0.5f, parameters = new List @@ -62,7 +62,7 @@ namespace HeavenStudio.Games.Loaders new GameAction("fade foreground color", "") { - function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length, true); }, + function = delegate { var e = eventCaller.currentEntity; CoinToss.instance.FadeBackgroundColor(e["colorA"], e["colorB"], e.length, true); }, resizable = true, parameters = new List() { diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs index 2b71ac99..7b00ed7d 100644 --- a/Assets/Scripts/Games/CropStomp/CropStomp.cs +++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs @@ -174,7 +174,7 @@ namespace HeavenStudio.Games } } - List cuedMoleSounds = new List(); + List cuedMoleSounds = new List(); private void Update() { var cond = Conductor.instance; @@ -329,7 +329,7 @@ namespace HeavenStudio.Games return; } inactiveStart = beat; - Beatmap.Entity gameSwitch = GameManager.instance.Beatmap.entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp"); + DynamicBeatmap.DynamicEntity gameSwitch = GameManager.instance.Beatmap.entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp"); if (gameSwitch == null) return; int length = Mathf.CeilToInt((gameSwitch.beat - beat)/2); diff --git a/Assets/Scripts/Games/DJSchool/DJSchool.cs b/Assets/Scripts/Games/DJSchool/DJSchool.cs index 13834ac7..65960238 100644 --- a/Assets/Scripts/Games/DJSchool/DJSchool.cs +++ b/Assets/Scripts/Games/DJSchool/DJSchool.cs @@ -14,7 +14,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("bop", "Bop") { - function = delegate { DJSchool.instance.Bop(eventCaller.currentEntity.toggle); }, + function = delegate { DJSchool.instance.Bop(eventCaller.currentEntity["toggle"]); }, defaultLength = 0.5f, parameters = new List() { @@ -23,9 +23,9 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("and stop ooh", "And Stop!") { - function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.AndStop(e.beat, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.AndStop(e.beat, e["toggle"]); }, defaultLength = 2.5f, - inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnAndStop(e.beat, e.toggle); }, + inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnAndStop(e.beat, e["toggle"]); }, parameters = new List() { new Param("toggle", true, "Ooh", "Whether or not the \"ooh\" sound should be played") @@ -33,9 +33,9 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("break c'mon ooh", "Break, C'mon!") { - function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.BreakCmon(e.beat, e.type, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; DJSchool.instance.BreakCmon(e.beat, e["type"], e["toggle"]); }, defaultLength = 3f, - inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnBreakCmon(e.beat, e.type, e.toggle); }, + inactiveFunction = delegate { var e = eventCaller.currentEntity; DJSchool.WarnBreakCmon(e.beat, e["type"], e["toggle"]); }, parameters = new List() { new Param("type", DJSchool.DJVoice.Standard, "Voice", "The voice line to play"), @@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("scratch-o hey", "Scratch-o") { - function = delegate { DJSchool.instance.ScratchoHey(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, eventCaller.currentEntity.toggle); }, + function = delegate { DJSchool.instance.ScratchoHey(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"], eventCaller.currentEntity["toggle"]); }, defaultLength = 3f, parameters = new List() { @@ -54,9 +54,9 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("dj voice lines", "DJ Yellow Banter") { - function = delegate { DJSchool.instance.voiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, + function = delegate { DJSchool.instance.voiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); }, defaultLength = 2f, - inactiveFunction = delegate { DJSchool.WarnDJVoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); }, + inactiveFunction = delegate { DJSchool.WarnDJVoiceLines(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); }, parameters = new List() { new Param("type", DJSchool.DJVoiceLines.CheckItOut, "Voice Lines", "The voice line to play"), @@ -64,7 +64,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("sound FX", "Scratchy Music") { - function = delegate { DJSchool.instance.soundFX(eventCaller.currentEntity.toggle); }, + function = delegate { DJSchool.instance.soundFX(eventCaller.currentEntity["toggle"]); }, defaultLength = 0.5f, parameters = new List() { diff --git a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs index c9669717..bc490923 100644 --- a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs +++ b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs @@ -22,7 +22,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("drum", "Hit Drum") { - function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.Prepare(e.beat, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.Prepare(e.beat, e["toggle"]); }, defaultLength = 2f, parameters = new List() { @@ -31,7 +31,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set mii", "Set Miis") { - function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetMiis(e.type, e.type2, e.type3, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; DrummingPractice.instance.SetMiis(e["type"], e["type2"], e["type3"], e["toggle"]); }, defaultLength = 0.5f, parameters = new List() { @@ -43,7 +43,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set background color", "Set Background Color") { - function = delegate {var e = eventCaller.currentEntity; DrummingPractice.instance.SetBackgroundColor(e.colorA, e.colorB, e.colorC); }, + function = delegate {var e = eventCaller.currentEntity; DrummingPractice.instance.SetBackgroundColor(e["colorA"], e["colorB"], e["colorC"]); }, defaultLength = 0.5f, parameters = new List() { @@ -100,7 +100,7 @@ namespace HeavenStudio.Games public override void OnGameSwitch(float beat) { - Beatmap.Entity changeMii = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "drummingPractice/set mii" && c.beat <= beat); + var changeMii = GameManager.instance.Beatmap.entities.FindLast(c => c.datamodel == "drummingPractice/set mii" && c.beat <= beat); if(changeMii != null) { EventCaller.instance.CallEvent(changeMii, true); diff --git a/Assets/Scripts/Games/FanClub/FanClub.cs b/Assets/Scripts/Games/FanClub/FanClub.cs index f4b84159..5594d2fc 100644 --- a/Assets/Scripts/Games/FanClub/FanClub.cs +++ b/Assets/Scripts/Games/FanClub/FanClub.cs @@ -15,7 +15,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("bop", "Bop") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.Bop(e.beat, e.length, e.type); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.Bop(e.beat, e.length, e["type"]); }, defaultLength = 0.5f, resizable = true, parameters = new List() @@ -25,38 +25,38 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("yeah, yeah, yeah", "Yeah, Yeah, Yeah!") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallHai(e.beat, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallHai(e.beat, e["toggle"]); }, defaultLength = 8, parameters = new List() { new Param("toggle", false, "Disable call", "Disable the idol's call") }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e.toggle);} + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e["toggle"]);} }, new GameAction("I suppose", "I Suppose!") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallKamone(e.beat, e.toggle, 0, e.type); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallKamone(e.beat, e["toggle"], 0, e["type"]); }, defaultLength = 6, parameters = new List() { new Param("type", FanClub.KamoneResponseType.Through, "Response type", "Type of response to use"), new Param("toggle", false, "Disable call", "Disable the idol's call") }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e.toggle, 0, e.type);} + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e["toggle"], 0, e["type"]);} }, new GameAction("double clap", "Double Clap") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallBigReady(e.beat, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.CallBigReady(e.beat, e["toggle"]); }, defaultLength = 4, parameters = new List() { new Param("toggle", false, "Disable call", "Disable the call") }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnBigReady(e.beat, e.toggle); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnBigReady(e.beat, e["toggle"]); } }, new GameAction("play idol animation", "Idol Coreography") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnim(e.beat, e.length, e.type); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnim(e.beat, e.length, e["type"]); }, resizable = true, parameters = new List() { @@ -65,7 +65,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("play stage animation", "Stage Coreography") { - function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnimStage(e.beat, e.type); }, + function = delegate { var e = eventCaller.currentEntity; FanClub.instance.PlayAnimStage(e.beat, e["type"]); }, resizable = true, parameters = new List() { @@ -75,13 +75,13 @@ namespace HeavenStudio.Games.Loaders new GameAction("set performance type", "Coreography Type") { - function = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type);}, + function = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e["type"]);}, defaultLength = 0.5f, parameters = new List() { new Param("type", FanClub.IdolPerformanceType.Normal, "Performance Type", "Set of animations for the idol to use") }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e.type); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.SetPerformanceType(e["type"]); } }, }, new List() {"ntr", "normal"}, diff --git a/Assets/Scripts/Games/FirstContact/FirstContact.cs b/Assets/Scripts/Games/FirstContact/FirstContact.cs index f0b4e4da..896f7d46 100644 --- a/Assets/Scripts/Games/FirstContact/FirstContact.cs +++ b/Assets/Scripts/Games/FirstContact/FirstContact.cs @@ -19,7 +19,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("alien speak", "Alien Speak") { - function = delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat, eventCaller.currentEntity.valA); }, + function = delegate { FirstContact.instance.alienSpeak(eventCaller.currentEntity.beat, eventCaller.currentEntity["valA"]); }, defaultLength = 0.5f, parameters = new List() { @@ -37,7 +37,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("mission control", "Show Mission Control") { - function = delegate { var e = eventCaller.currentEntity; FirstContact.instance.missionControlDisplay(e.beat, e.toggle, e.length); }, + function = delegate { var e = eventCaller.currentEntity; FirstContact.instance.missionControlDisplay(e.beat, e["toggle"], e.length); }, resizable = true, parameters = new List { @@ -46,7 +46,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("look at", "Look At") { - function = delegate { FirstContact.instance.lookAtDirection(eventCaller.currentEntity.type, eventCaller.currentEntity.type); }, + function = delegate { FirstContact.instance.lookAtDirection(eventCaller.currentEntity["type"], eventCaller.currentEntity["type"]); }, defaultLength = .5f, parameters = new List() { @@ -56,7 +56,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("live bar beat", "Live Bar Beat") { - function = delegate { FirstContact.instance.liveBarBeat(eventCaller.currentEntity.toggle); }, + function = delegate { FirstContact.instance.liveBarBeat(eventCaller.currentEntity["toggle"]); }, defaultLength = .5f, parameters = new List() { @@ -64,7 +64,7 @@ namespace HeavenStudio.Games.Loaders } }, - //new GameAction("Version of First Contact", delegate { FirstContact.instance.versionOfFirstContact(eventCaller.currentEntity.type); }, .5f, false, new List + //new GameAction("Version of First Contact", delegate { FirstContact.instance.versionOfFirstContact(eventCaller.currentEntity["type"]); }, .5f, false, new List //{ // new Param("type", FirstContact.VersionOfContact.FirstContact, "Version", "Version of First Contact to play"), //}), diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs index 9ba65292..c1426e04 100644 --- a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs +++ b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs @@ -16,7 +16,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("flick", "Flick Food") { - function = delegate { var e = eventCaller.currentEntity; ForkLifter.instance.Flick(e.beat, e.type); }, + function = delegate { var e = eventCaller.currentEntity; ForkLifter.instance.Flick(e.beat, e["type"]); }, defaultLength = 3, parameters = new List() { diff --git a/Assets/Scripts/Games/Global/Flash.cs b/Assets/Scripts/Games/Global/Flash.cs index e0c0cd25..94c145b0 100644 --- a/Assets/Scripts/Games/Global/Flash.cs +++ b/Assets/Scripts/Games/Global/Flash.cs @@ -22,7 +22,7 @@ namespace HeavenStudio.Games.Global [SerializeField] private Color currentCol; - private List allFadeEvents = new List(); + private List allFadeEvents = new List(); private void Awake() { @@ -64,7 +64,7 @@ namespace HeavenStudio.Games.Global if (allFadeEvents.Count > 0) { - Beatmap.Entity startEntity = null; + DynamicBeatmap.DynamicEntity startEntity = null; for (int i = 0; i < allFadeEvents.Count; i++) { @@ -85,14 +85,14 @@ namespace HeavenStudio.Games.Global { if (!override_) { - Color colA = startEntity.colorA; - Color colB = startEntity.colorB; + Color colA = startEntity["colorA"]; + Color colB = startEntity["colorB"]; - startCol = new Color(colA.r, colA.g, colA.b, startEntity.valA); - endCol = new Color(colB.r, colB.g, colB.b, startEntity.valB); + startCol = new Color(colA.r, colA.g, colA.b, startEntity["valA"]); + endCol = new Color(colB.r, colB.g, colB.b, startEntity["valB"]); } - SetFade(startEntity.beat, startEntity.length, startCol, endCol, startEntity.ease); + SetFade(startEntity.beat, startEntity.length, startCol, endCol, startEntity["ease"]); } } } diff --git a/Assets/Scripts/Games/Global/Textbox.cs b/Assets/Scripts/Games/Global/Textbox.cs index 9628798d..78056ea6 100644 --- a/Assets/Scripts/Games/Global/Textbox.cs +++ b/Assets/Scripts/Games/Global/Textbox.cs @@ -27,10 +27,10 @@ namespace HeavenStudio.Games.Global Bottom, } - private List textboxEvents = new List(); - private List openCaptionsEvents = new List(); - private List idolEvents = new List(); - private List closedCaptionsEvents = new List(); + private List textboxEvents = new List(); + private List openCaptionsEvents = new List(); + private List idolEvents = new List(); + private List closedCaptionsEvents = new List(); Textbox instance; @@ -114,11 +114,11 @@ namespace HeavenStudio.Games.Global if (prog >= 0f && prog <= 1f) { TextboxEnabler.SetActive(true); - TextboxObject.SetText(e.text1); - TextboxObject.Resize(e.valA, e.valB); + TextboxObject.SetText(e["text1"]); + TextboxObject.Resize(e["valA"], e["valB"]); // ouch - switch (e.type) + switch (e["type"]) { case (int) TextboxAnchor.TopLeft: TextboxEnabler.transform.localPosition = new Vector3(-XAnchor, YAnchor); @@ -170,12 +170,12 @@ namespace HeavenStudio.Games.Global if (prog >= 0f && prog <= 1f) { OpenCaptionsEnabler.SetActive(true); - OpenCaptionsLabel.text = e.text1; + OpenCaptionsLabel.text = e["text1"]; - OpenCaptionsLabelRect.sizeDelta = new Vector2(18f * e.valA, 2.5f * e.valB); + OpenCaptionsLabelRect.sizeDelta = new Vector2(18f * e["valA"], 2.5f * e["valB"]); // ouch - switch (e.type) + switch (e["type"]) { case (int) TextboxAnchor.TopLeft: OpenCaptionsEnabler.transform.localPosition = new Vector3(-XAnchor, YAnchor); @@ -228,8 +228,8 @@ namespace HeavenStudio.Games.Global if (prog >= 0f && prog <= 1f) { float inp = cond.GetPositionFromBeat(e.beat, 1); - IdolSongLabel.text = e.text1; - IdolArtistLabel.text = e.text2; + IdolSongLabel.text = e["text1"]; + IdolArtistLabel.text = e["text2"]; IdolAnimator.Play("IdolShow", -1, Mathf.Min(inp, 1)); IdolAnimator.speed = 0; @@ -264,18 +264,18 @@ namespace HeavenStudio.Games.Global if (prog >= 0f && prog <= 1f) { ClosedCaptionsEnabler.SetActive(true); - ClosedCaptionsLabel.text = e.text1; + ClosedCaptionsLabel.text = e["text1"]; - ClosedCaptionsLabelRect.sizeDelta = new Vector2(9f, e.valA); - ClosedCaptionsBgRect.sizeDelta = new Vector2(9f, e.valA); + ClosedCaptionsLabelRect.sizeDelta = new Vector2(9f, e["valA"]); + ClosedCaptionsBgRect.sizeDelta = new Vector2(9f, e["valA"]); - switch (e.type) + switch (e["type"]) { case (int) ClosedCaptionsAnchor.Bottom: - ClosedCaptionsEnabler.transform.localPosition = new Vector3(0, -2.5f + e.valA/2); + ClosedCaptionsEnabler.transform.localPosition = new Vector3(0, -2.5f + e["valA"]/2); break; default: - ClosedCaptionsEnabler.transform.localPosition = new Vector3(0, 2.5f - e.valA/2); + ClosedCaptionsEnabler.transform.localPosition = new Vector3(0, 2.5f - e["valA"]/2); break; } diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs index 4d571eed..93c8ccac 100644 --- a/Assets/Scripts/Games/KarateMan/KarateMan.cs +++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs @@ -15,16 +15,16 @@ namespace HeavenStudio.Games.Loaders { new GameAction("bop", "Bop") { - function = delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity.toggle); }, + function = delegate { KarateMan.instance.ToggleBop(eventCaller.currentEntity["toggle"]); }, defaultLength = 0.5f, parameters = new List() { new Param("toggle", true, "Bop", "Whether to bop to the beat or not") }, - inactiveFunction = delegate { KarateMan.ToggleBopUnloaded(eventCaller.currentEntity.toggle); } + inactiveFunction = delegate { KarateMan.ToggleBopUnloaded(eventCaller.currentEntity["toggle"]); } }, new GameAction("hit", "Toss Object") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateItem(e.beat, e.type, e.type2); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateItem(e.beat, e["type"], e["type2"]); }, defaultLength = 2, parameters = new List() { @@ -34,7 +34,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("bulb", "Toss Lightbulb") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateBulbSpecial(e.beat, e.type, e.colorA, e.type2); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.CreateBulbSpecial(e.beat, e["type"], e["colorA"], e["type2"]); }, defaultLength = 2, parameters = new List() { @@ -45,7 +45,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("kick", "Special: Kick") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Kick(e.beat, e.toggle, e.type); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Kick(e.beat, e["toggle"], e["type"]); }, defaultLength = 4f, parameters = new List() { @@ -55,7 +55,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("combo", "Special: Combo") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Combo(e.beat, e.type); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.Combo(e.beat, e["type"]); }, defaultLength = 4, parameters = new List() { @@ -64,24 +64,24 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("hitX", "Warnings") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e["type"]); }, defaultLength = 1f, parameters = new List() { new Param("type", KarateMan.HitThree.HitThree, "Type", "The warning text to show") }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoWordSound(e.beat, e.type); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoWordSound(e.beat, e["type"]); } }, new GameAction("special camera", "Special Camera") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e["toggle"]); }, defaultLength = 8f, resizable = true, parameters = new List() { new Param("toggle", true, "Return Camera", "Camera zooms back in?"), }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e.toggle); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.DoSpecialCamera(e.beat, e.length, e["toggle"]); } }, new GameAction("prepare", "Preparation Stance") { @@ -90,7 +90,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set gameplay modifiers", "Gameplay Modifiers") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetGameplayMods(e.beat, e.type, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetGameplayMods(e.beat, e["type"], e["toggle"]); }, defaultLength = 0.5f, parameters = new List() { @@ -100,7 +100,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set background effects", "Background Appearance") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3); KarateMan.instance.SetBgTexture(e.type4, e.type5, e.colorC, e.colorD); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"]); KarateMan.instance.SetBgTexture(e["type4"], e["type5"], e["colorC"], e["colorD"]); }, defaultLength = 0.5f, resizable = true, parameters = new List() @@ -116,11 +116,11 @@ namespace HeavenStudio.Games.Loaders new Param("colorD", new Color(), "Fading Filter Color", "When using the Fade background effect, make filter colour fade to this colour"), }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.SetBgEffectsUnloaded(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3, e.type4, e.type5, e.colorC, e.colorD); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.SetBgEffectsUnloaded(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"], e["type4"], e["type5"], e["colorC"], e["colorD"]); } }, new GameAction("set object colors", "Object Colors") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e["colorA"], e["colorB"], e["colorC"]); }, defaultLength = 0.5f, parameters = new List() { @@ -128,11 +128,11 @@ namespace HeavenStudio.Games.Loaders new Param("colorB", new Color(0.81f,0.81f,0.81f,1), "Joe Highlight Color", "The color to use for Karate Joe's highlights"), new Param("colorC", new Color(1,1,1,1), "Item Color", "The color to use for the thrown items"), }, - inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e.colorA, e.colorB, e.colorC); } + inactiveFunction = delegate { var e = eventCaller.currentEntity; KarateMan.UpdateMaterialColour(e["colorA"], e["colorB"], e["colorC"]); } }, new GameAction("particle effects", "Particle Effects") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetParticleEffect(e.beat, e.type, e.valA, e.valB); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetParticleEffect(e.beat, e["type"], e["valA"], e["valB"]); }, defaultLength = 0.5f, parameters = new List() { @@ -143,7 +143,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("force facial expression", "Set Facial Expression") { - function = delegate { KarateMan.instance.SetFaceExpression(eventCaller.currentEntity.type); }, + function = delegate { KarateMan.instance.SetFaceExpression(eventCaller.currentEntity["type"]); }, defaultLength = 0.5f, parameters = new List() { @@ -188,7 +188,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("hit3", "") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e.type); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.DoWord(e.beat, e["type"]); }, parameters = new List() { new Param("type", KarateMan.HitThree.HitThree, "Type", "The warning text to show") @@ -203,7 +203,7 @@ namespace HeavenStudio.Games.Loaders new GameAction("set background color", "") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, (int) KarateMan.currentBgEffect); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgAndShadowCol(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], (int) KarateMan.currentBgEffect); }, defaultLength = 0.5f, parameters = new List() { @@ -217,7 +217,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set background fx", "") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx(e.type, e.beat, e.length); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgFx(e["type"], e.beat, e.length); }, defaultLength = 0.5f, parameters = new List() { @@ -228,7 +228,7 @@ namespace HeavenStudio.Games.Loaders new GameAction("set background texture", "") { - function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgTexture(e.type, e.type2, e.colorA, e.colorB); }, + function = delegate { var e = eventCaller.currentEntity; KarateMan.instance.SetBgTexture(e["type"], e["type2"], e["colorA"], e["colorB"]); }, defaultLength = 0.5f, parameters = new List() { @@ -542,8 +542,8 @@ namespace HeavenStudio.Games BGEffect.transform.position = new Vector3(GameCamera.instance.transform.position.x, GameCamera.instance.transform.position.y, 0); } - static List allHits = new List(); - static List allEnds = new List(); + static List allHits = new List(); + static List allEnds = new List(); public static int CountHitsToEnd(float fromBeat) { allHits = EventCaller.GetAllInGameManagerList("karateman", new string[] { "hit", "bulb", "kick", "combo" }); @@ -554,7 +554,7 @@ namespace HeavenStudio.Games float endBeat = Single.MaxValue; //get the beat of the closest end event - foreach (Beatmap.Entity end in allEnds) + foreach (var end in allEnds) { if (end.beat > fromBeat) { @@ -569,7 +569,7 @@ namespace HeavenStudio.Games string type; for (int i = 0; i < allHits.Count; i++) { - Beatmap.Entity h = allHits[i]; + var h = allHits[i]; if (h.beat >= fromBeat) { if (h.beat < endBeat) @@ -806,8 +806,8 @@ namespace HeavenStudio.Games var e = bgfx[i]; if (e.beat > beat) break; - SetBgAndShadowCol(e.beat, e.length, e.type, e.type2, e.colorA, e.colorB, e.type3); - SetBgTexture(e.type4, e.type5, e.colorC, e.colorD); + SetBgAndShadowCol(e.beat, e.length, e["type"], e["type2"], e["colorA"], e["colorB"], e["type3"]); + SetBgTexture(e["type4"], e["type5"], e["colorC"], e["colorD"]); } var camfx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/special camera"); for (int i = 0; i < camfx.Count; i++) @@ -815,7 +815,7 @@ namespace HeavenStudio.Games var e = camfx[i]; if (e.beat > beat) break; - DoSpecialCamera(e.beat, e.length, e.toggle); + DoSpecialCamera(e.beat, e.length, e["toggle"]); } // has issues when creating a new hitx entity so this is deactivated for now // var hitx = GameManager.instance.Beatmap.entities.FindAll(en => en.datamodel == "karateman/hitX"); @@ -825,7 +825,7 @@ namespace HeavenStudio.Games // if (e.beat > beat) // break; // Debug.Log("hitx"); - // DoWord(e.beat, e.type, false); + // DoWord(e.beat, e["type"], false); // } } diff --git a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs index 7da7b4ac..d1b2b82e 100644 --- a/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs +++ b/Assets/Scripts/Games/MrUpbeat/MrUpbeat.cs @@ -30,7 +30,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("ding!", "Finish Stepping") { - function = delegate { MrUpbeat.instance.Ding(eventCaller.currentEntity.toggle); }, + function = delegate { MrUpbeat.instance.Ding(eventCaller.currentEntity["toggle"]); }, defaultLength = 0.5f, parameters = new List() { @@ -82,7 +82,7 @@ namespace HeavenStudio.Games private void Update() { - List gos = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "mrUpbeat/go"); + List gos = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "mrUpbeat/go"); for (int i = 0; i < gos.Count; i++) { if ((gos[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && (gos[i].beat + gos[i].length) - 0.15f > Conductor.instance.songPositionInBeats) @@ -118,7 +118,7 @@ namespace HeavenStudio.Games public override void OnGameSwitch(float beat) { - foreach (Beatmap.Entity entity in GameManager.instance.Beatmap.entities) + foreach (var entity in GameManager.instance.Beatmap.entities) { if (entity.beat > beat) //the list is sorted based on the beat of the entity, so this should work fine. { diff --git a/Assets/Scripts/Games/PajamaParty/PajamaParty.cs b/Assets/Scripts/Games/PajamaParty/PajamaParty.cs index b83a3d96..1e6e82c8 100644 --- a/Assets/Scripts/Games/PajamaParty/PajamaParty.cs +++ b/Assets/Scripts/Games/PajamaParty/PajamaParty.cs @@ -30,14 +30,14 @@ namespace HeavenStudio.Games.Loaders //idem new GameAction("slumber", "Slumber") { - function = delegate {var e = eventCaller.currentEntity; PajamaParty.instance.DoSleepSequence(e.beat, e.toggle, e.type);}, + function = delegate {var e = eventCaller.currentEntity; PajamaParty.instance.DoSleepSequence(e.beat, e["toggle"], e["type"]);}, defaultLength = 8f, parameters = new List() { new Param("type", PajamaParty.SleepType.Normal, "Sleep Type", "Type of sleep action to use"), new Param("toggle", false, "Alt. Animation", "Use an alternate animation for Mako") }, - inactiveFunction = delegate {var e = eventCaller.currentEntity; PajamaParty.WarnSleepSequence(e.beat, e.toggle);} + inactiveFunction = delegate {var e = eventCaller.currentEntity; PajamaParty.WarnSleepSequence(e.beat, e["toggle"]);} }, new GameAction("throw", "Throw Pillows") { diff --git a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs index ea51dd14..871d1a38 100644 --- a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs +++ b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs @@ -61,8 +61,8 @@ namespace HeavenStudio.Games.Loaders { function = delegate { var e = eventCaller.currentEntity; - var rotation = new Vector3(0, e.valA, 0); - RhythmRally.instance.ChangeCameraAngle(rotation, e.valB, e.length, (Ease)e.type, (RotateMode)e.type2); + var rotation = new Vector3(0, e["valA"], 0); + RhythmRally.instance.ChangeCameraAngle(rotation, e["valB"], e.length, (Ease)e["type"], (RotateMode)e["type2"]); }, defaultLength = 4, resizable = true, @@ -259,7 +259,7 @@ namespace HeavenStudio.Games // Check if the opponent should swing. if (!served && timeBeforeNextHit <= 0f) { - List rallies = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "rhythmRally/rally" || c.datamodel == "rhythmRally/slow rally"); + var rallies = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "rhythmRally/rally" || c.datamodel == "rhythmRally/slow rally"); for (int i = 0; i < rallies.Count; i++) { var rally = rallies[i]; diff --git a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs index dabfd83d..952d1d77 100644 --- a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs +++ b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs @@ -34,7 +34,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("next vegetable", "Swap Vegetable") { - function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.NextVegetable(e.beat, e.type, e.colorA, e.colorB); }, + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.NextVegetable(e.beat, e["type"], e["colorA"], e["colorB"]); }, defaultLength = 0.5f, parameters = new List() { @@ -45,7 +45,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("change vegetable", "Change Vegetable (Instant)") { - function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeVegetableImmediate(e.type, e.colorA, e.colorB); }, + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeVegetableImmediate(e["type"], e["colorA"], e["colorB"]); }, defaultLength = 0.5f, parameters = new List() { @@ -66,7 +66,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("set background color", "Background Colour") { - function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeBackgroundColor(e.colorA, 0f); }, + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.ChangeBackgroundColor(e["colorA"], 0f); }, defaultLength = 0.5f, parameters = new List() { @@ -75,7 +75,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("fade background color", "Background Fade") { - function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.FadeBackgroundColor(e.colorA, e.colorB, e.length); }, + function = delegate { var e = eventCaller.currentEntity; RhythmTweezers.instance.FadeBackgroundColor(e["colorA"], e["colorB"], e.length); }, resizable = true, parameters = new List() { diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs index 0760f32b..930d452b 100644 --- a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs +++ b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs @@ -18,7 +18,7 @@ namespace HeavenStudio.Games.Loaders { function = delegate { - SamuraiSliceNtr.instance.ObjectIn(eventCaller.currentEntity.beat, eventCaller.currentEntity.type, (int) eventCaller.currentEntity.valA); + SamuraiSliceNtr.instance.ObjectIn(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"], (int) eventCaller.currentEntity["valA"]); }, defaultLength = 8, parameters = new List() diff --git a/Assets/Scripts/Games/SpaceSoccer/Ball.cs b/Assets/Scripts/Games/SpaceSoccer/Ball.cs index b9c07f60..257e67e0 100644 --- a/Assets/Scripts/Games/SpaceSoccer/Ball.cs +++ b/Assets/Scripts/Games/SpaceSoccer/Ball.cs @@ -47,7 +47,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer return; } - List highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!"); + var highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!"); int numHighKicks = 0; //determine what state the ball was in for the previous kick. for(int i = 0; i < highKicks.Count; i++) diff --git a/Assets/Scripts/Games/SpaceSoccer/Kicker.cs b/Assets/Scripts/Games/SpaceSoccer/Kicker.cs index 5023918f..e5e55af6 100644 --- a/Assets/Scripts/Games/SpaceSoccer/Kicker.cs +++ b/Assets/Scripts/Games/SpaceSoccer/Kicker.cs @@ -183,7 +183,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer // } // } - List highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!"); + var highKicks = GameManager.instance.Beatmap.entities.FindAll(c => c.datamodel == "spaceSoccer/high kick-toe!"); for (int i = 0; i < highKicks.Count; i++) { if ((highKicks[i].beat - 0.15f) <= Conductor.instance.songPositionInBeats && highKicks[i].beat + 1f > Conductor.instance.songPositionInBeats) diff --git a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs index a0a7293d..48101ffc 100644 --- a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs +++ b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs @@ -14,13 +14,13 @@ namespace HeavenStudio.Games.Loaders { new GameAction("ball dispense", "Ball Dispense") { - function = delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity.toggle); }, + function = delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity["toggle"]); }, defaultLength = 2f, parameters = new List() { new Param("toggle", false, "Disable Sound", "Disables the dispense sound") }, - inactiveFunction = delegate { if (!eventCaller.currentEntity.toggle) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } } + inactiveFunction = delegate { if (!eventCaller.currentEntity["toggle"]) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } } }, new GameAction("high kick-toe!", "High Kick-Toe!") { @@ -82,7 +82,7 @@ namespace HeavenStudio.Games public override void OnGameSwitch(float beat) { - foreach(Beatmap.Entity entity in GameManager.instance.Beatmap.entities) + foreach(var entity in GameManager.instance.Beatmap.entities) { if(entity.beat > beat) //the list is sorted based on the beat of the entity, so this should work fine. { diff --git a/Assets/Scripts/Games/Spaceball/Spaceball.cs b/Assets/Scripts/Games/Spaceball/Spaceball.cs index 7302b6b1..1e9bb08c 100644 --- a/Assets/Scripts/Games/Spaceball/Spaceball.cs +++ b/Assets/Scripts/Games/Spaceball/Spaceball.cs @@ -14,7 +14,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("shoot", "Pitch Ball") { - function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity.type); }, + function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, false, eventCaller.currentEntity["type"]); }, defaultLength = 2, parameters = new List() { @@ -23,7 +23,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("shootHigh", "Pitch High Ball") { - function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity.type); }, + function = delegate { Spaceball.instance.Shoot(eventCaller.currentEntity.beat, true, eventCaller.currentEntity["type"]); }, defaultLength = 3, parameters = new List() { @@ -32,7 +32,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("costume", "Change Batter Costume") { - function = delegate { Spaceball.instance.Costume(eventCaller.currentEntity.type); }, + function = delegate { Spaceball.instance.Costume(eventCaller.currentEntity["type"]); }, parameters = new List() { new Param("type", Spaceball.CostumeType.Standard, "Type", "The costume to change to") @@ -94,7 +94,7 @@ namespace HeavenStudio.Games public Sprite[] Balls; - private List allCameraEvents = new List(); + private List allCameraEvents = new List(); public Alien alien; @@ -121,7 +121,7 @@ namespace HeavenStudio.Games { instance = this; var camEvents = EventCaller.GetAllInGameManagerList("spaceball", new string[] { "camera" }); - List tempEvents = new List(); + List tempEvents = new List(); for (int i = 0; i < camEvents.Count; i++) { if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeats) @@ -187,26 +187,26 @@ namespace HeavenStudio.Games if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0) { if (currentZoomIndex - 1 >= 0) - lastCamDistance = allCameraEvents[currentZoomIndex - 1].valA * -1; + lastCamDistance = allCameraEvents[currentZoomIndex - 1]["valA"] * -1; else { if (currentZoomIndex == 0) lastCamDistance = -10; else - lastCamDistance = allCameraEvents[0].valA * -1; + lastCamDistance = allCameraEvents[0]["valA"] * -1; } currentZoomCamBeat = allCameraEvents[currentZoomIndex].beat; currentZoomCamLength = allCameraEvents[currentZoomIndex].length; - float dist = allCameraEvents[currentZoomIndex].valA * -1; + float dist = allCameraEvents[currentZoomIndex]["valA"] * -1; if (dist > 0) currentZoomCamDistance = 0; else currentZoomCamDistance = dist; - lastEase = allCameraEvents[currentZoomIndex].ease; + lastEase = allCameraEvents[currentZoomIndex]["ease"]; } } diff --git a/Assets/Scripts/Games/TapTrial/TapTrial.cs b/Assets/Scripts/Games/TapTrial/TapTrial.cs index 794097e4..8e0469b3 100644 --- a/Assets/Scripts/Games/TapTrial/TapTrial.cs +++ b/Assets/Scripts/Games/TapTrial/TapTrial.cs @@ -16,7 +16,7 @@ namespace HeavenStudio.Games.Loaders { new GameAction("bop", "Bop") { - function = delegate { TapTrial.instance.Bop(eventCaller.currentEntity.toggle); }, + function = delegate { TapTrial.instance.Bop(eventCaller.currentEntity["toggle"]); }, defaultLength = .5f, parameters = new List() { @@ -61,7 +61,7 @@ namespace HeavenStudio.Games.Loaders new GameAction("scroll event", "Scroll Background") { - function = delegate { TapTrial.instance.scrollEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, + function = delegate { TapTrial.instance.scrollEvent(eventCaller.currentEntity["toggle"], eventCaller.currentEntity["toggle"]); }, defaultLength = .5f, parameters = new List() { @@ -72,7 +72,7 @@ namespace HeavenStudio.Games.Loaders new GameAction("giraffe events", "Giraffe Animations") { - function = delegate { TapTrial.instance.giraffeEvent(eventCaller.currentEntity.toggle, eventCaller.currentEntity.toggle); }, + function = delegate { TapTrial.instance.giraffeEvent(eventCaller.currentEntity["toggle"], eventCaller.currentEntity["toggle"]); }, defaultLength = .5f, parameters = new List() { diff --git a/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs b/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs index 43c8ea39..0f1f8bfa 100644 --- a/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs +++ b/Assets/Scripts/Games/Tram&Pauline/TramAndPauline.cs @@ -19,7 +19,7 @@ namespace HeavenStudio.Games.Loaders }, new GameAction("SFX", "SFX") { - function = delegate { var e = eventCaller.currentEntity; TramAndPauline.instance.SFX(e.beat, e.toggle); }, + function = delegate { var e = eventCaller.currentEntity; TramAndPauline.instance.SFX(e.beat, e["toggle"]); }, defaultLength = 2.5f, parameters = new List() { diff --git a/Assets/Scripts/Games/TrickClass/TrickClass.cs b/Assets/Scripts/Games/TrickClass/TrickClass.cs index 3c8def0c..c7373cf8 100644 --- a/Assets/Scripts/Games/TrickClass/TrickClass.cs +++ b/Assets/Scripts/Games/TrickClass/TrickClass.cs @@ -19,7 +19,7 @@ namespace HeavenStudio.Games.Loaders { function = delegate { - TrickClass.instance.TossObject(eventCaller.currentEntity.beat, eventCaller.currentEntity.type); + TrickClass.instance.TossObject(eventCaller.currentEntity.beat, eventCaller.currentEntity["type"]); }, defaultLength = 3, parameters = new List() @@ -110,7 +110,7 @@ namespace HeavenStudio.Games if (timeToEvent > 0f && timeToEvent <= 1f) { string anim = "WarnBall"; - switch (e.type) + switch (e["type"]) { case (int) TrickObjType.Plane: anim = "WarnPlane"; diff --git a/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs b/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs index d41d4887..f5966238 100644 --- a/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs +++ b/Assets/Scripts/Games/WizardsWaltz/WizardsWaltz.cs @@ -60,7 +60,7 @@ namespace HeavenStudio.Games instance = this; wizard.Init(); - Beatmap.Entity nextStart = GameManager.instance.Beatmap.entities.Find(c => c.datamodel == "wizardsWaltz/start interval" && c.beat + c.length >= Conductor.instance.songPositionInBeats); + var nextStart = GameManager.instance.Beatmap.entities.Find(c => c.datamodel == "wizardsWaltz/start interval" && c.beat + c.length >= Conductor.instance.songPositionInBeats); if (nextStart != null) { diff --git a/Assets/Scripts/LevelEditor/Commands/Block.cs b/Assets/Scripts/LevelEditor/Commands/Block.cs index deb74105..4d7edbb5 100644 --- a/Assets/Scripts/LevelEditor/Commands/Block.cs +++ b/Assets/Scripts/LevelEditor/Commands/Block.cs @@ -127,7 +127,7 @@ namespace HeavenStudio.Editor.Commands deletedObj = eventObj; Selections.instance.Deselect(eventObj); Timeline.instance.DestroyEventObject(eventObj.entity); - // Beatmap.Entity e = deletedObjs[i].entity; + // DynamicBeatmap.DynamicEntity e = deletedObjs[i].entity; // Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID); } } @@ -166,7 +166,7 @@ namespace HeavenStudio.Editor.Commands { for (int i = 0; i < deletedObjs.Count; i++) { - Beatmap.Entity e = deletedObjs[i].entity; + DynamicBeatmap.DynamicEntity e = deletedObjs[i].entity; eventObjs[i] = Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID); } } @@ -190,7 +190,7 @@ namespace HeavenStudio.Editor.Commands { for (int i = 0; i < copiedObjs.Count; i++) { - Beatmap.Entity e = copiedObjs[i].entity; + DynamicBeatmap.DynamicEntity e = copiedObjs[i].entity; eventObjs[i] = Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID); } } diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index dc345fea..d2fc6e23 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -339,7 +339,7 @@ namespace HeavenStudio.Editor { var extensions = new[] { - new ExtensionFilter("Heaven Studio Remix File", "tengoku") + new ExtensionFilter("Heaven Studio Remix File", "riq") }; StandaloneFileBrowser.SaveFilePanelAsync("Save Remix As", "", "remix_level", extensions, (string path) => @@ -380,9 +380,9 @@ namespace HeavenStudio.Editor LoadRemix(""); } - public void LoadRemix(string json = "") + public void LoadRemix(string json = "", string type = "riq") { - GameManager.instance.LoadRemix(json); + GameManager.instance.LoadRemix(json, type); Timeline.instance.LoadRemix(); Timeline.instance.TempoInfo.UpdateStartingBPMText(); Timeline.instance.VolumeInfo.UpdateStartingVolumeText(); @@ -396,7 +396,8 @@ namespace HeavenStudio.Editor { var extensions = new[] { - new ExtensionFilter("Heaven Studio Remix File", new string[] { "tengoku", "rhmania" }) + new ExtensionFilter("Heaven Studio Remix File", new string[] { "riq" }), + new ExtensionFilter("Legacy Heaven Studio Remix", new string[] { "tengoku", "rhmania" }) }; StandaloneFileBrowser.OpenFilePanelAsync("Open Remix", "", extensions, false, (string[] paths) => @@ -405,6 +406,7 @@ namespace HeavenStudio.Editor if (path == string.Empty) return; loadedMusic = false; + string extension = path.GetExtension(); using var zipFile = File.Open(path, FileMode.Open); using var archive = new ZipArchive(zipFile, ZipArchiveMode.Read); @@ -416,7 +418,7 @@ namespace HeavenStudio.Editor { using var stream = entry.Open(); using var reader = new StreamReader(stream); - LoadRemix(reader.ReadToEnd()); + LoadRemix(reader.ReadToEnd(), extension); break; } @@ -435,7 +437,10 @@ namespace HeavenStudio.Editor } if (!loadedMusic) + { Conductor.instance.musicSource.clip = null; + MusicBytes = null; + } currentRemixPath = path; remixName = Path.GetFileName(path); diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs index 8dcbb582..e531980e 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs @@ -20,7 +20,7 @@ namespace HeavenStudio.Editor [SerializeField] private GameObject ColorP; [SerializeField] private GameObject StringP; - public Beatmap.Entity entity; + public DynamicBeatmap.DynamicEntity entity; public bool active; @@ -61,13 +61,13 @@ namespace HeavenStudio.Editor Editor.instance.SetGameEventTitle($"Select game event for {gridGameSelector.SelectedMinigame.Replace("\n", "")}"); } - public void StartParams(Beatmap.Entity entity) + public void StartParams(DynamicBeatmap.DynamicEntity entity) { active = true; AddParams(entity); } - private void AddParams(Beatmap.Entity entity) + private void AddParams(DynamicBeatmap.DynamicEntity entity) { var minigame = EventCaller.instance.GetMinigame(entity.datamodel.Split(0)); int actionIndex = minigame.actions.IndexOf(minigame.actions.Find(c => c.actionName == entity.datamodel.Split(1))); @@ -118,7 +118,7 @@ namespace HeavenStudio.Editor { prefab = DropdownP; } - else if (objType == typeof(Color)) + else if (objType == typeof(Color) || objType == typeof(EntityTypes.SerializableColor)) { prefab = ColorP; } diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 99ef48e4..03d3a3cb 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -121,10 +121,11 @@ namespace HeavenStudio.Editor break; case Color _: + case EntityTypes.SerializableColor _: colorPreview.colorPicker.onColorChanged += _ => parameterManager.entity[propertyName] = colorPreview.colorPicker.color; - var paramCol = (Color) parameterManager.entity[propertyName]; + Color paramCol = parameterManager.entity[propertyName]; ColorBTN.onClick.AddListener( () => diff --git a/Assets/Scripts/LevelEditor/Timeline/TempoTimeline.cs b/Assets/Scripts/LevelEditor/Timeline/TempoTimeline.cs index adfa9495..153ad772 100644 --- a/Assets/Scripts/LevelEditor/Timeline/TempoTimeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/TempoTimeline.cs @@ -29,7 +29,7 @@ namespace HeavenStudio.Editor.Track for (int i = 0; i < GameManager.instance.Beatmap.tempoChanges.Count; i++) { - Beatmap.TempoChange tempoChange = GameManager.instance.Beatmap.tempoChanges[i]; + DynamicBeatmap.TempoChange tempoChange = GameManager.instance.Beatmap.tempoChanges[i]; AddTempoChange(false, tempoChange); } } @@ -140,7 +140,7 @@ namespace HeavenStudio.Editor.Track tempoTimelineObjs.Clear(); } - public void AddTempoChange(bool create, Beatmap.TempoChange tempoChange_ = null) + public void AddTempoChange(bool create, DynamicBeatmap.TempoChange tempoChange_ = null) { GameObject tempoChange = Instantiate(RefTempoChange.gameObject, this.transform); @@ -157,7 +157,7 @@ namespace HeavenStudio.Editor.Track tempoChange.transform.position = new Vector3(Editor.instance.EditorCamera.ScreenToWorldPoint(Input.mousePosition).x + 0.08f, tempoChange.transform.position.y); tempoChange.transform.localPosition = new Vector3(Starpelly.Mathp.Round2Nearest(tempoChange.transform.localPosition.x, Timeline.SnapInterval()), tempoChange.transform.localPosition.y); - Beatmap.TempoChange tempoC = new Beatmap.TempoChange(); + DynamicBeatmap.TempoChange tempoC = new DynamicBeatmap.TempoChange(); tempoC.beat = tempoChange.transform.localPosition.x; tempoC.tempo = GameManager.instance.Beatmap.bpm; diff --git a/Assets/Scripts/LevelEditor/Timeline/TempoTimelineObj.cs b/Assets/Scripts/LevelEditor/Timeline/TempoTimelineObj.cs index 8e48f86b..886e7c6c 100644 --- a/Assets/Scripts/LevelEditor/Timeline/TempoTimelineObj.cs +++ b/Assets/Scripts/LevelEditor/Timeline/TempoTimelineObj.cs @@ -15,7 +15,7 @@ namespace HeavenStudio.Editor.Track [SerializeField] private TMP_Text tempoTXT; [SerializeField] private RectTransform raycastRect; - public Beatmap.TempoChange tempoChange; + public DynamicBeatmap.TempoChange tempoChange; private float startPosX; private bool moving = false; diff --git a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs index 162eacb8..4057ff08 100644 --- a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs @@ -503,7 +503,7 @@ namespace HeavenStudio.Editor.Track #region Functions - public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), Beatmap.Entity entity = null, bool addEvent = false, string eventId = "") + public TimelineEventObj AddEventObject(string eventName, bool dragNDrop = false, Vector3 pos = new Vector3(), DynamicBeatmap.DynamicEntity entity = null, bool addEvent = false, string eventId = "") { var game = EventCaller.instance.GetMinigame(eventName.Split(0)); var action = EventCaller.instance.GetGameAction(game, eventName.Split(1)); @@ -561,11 +561,11 @@ namespace HeavenStudio.Editor.Track if (addEvent) { - Beatmap.Entity tempEntity = entity; + DynamicBeatmap.DynamicEntity tempEntity = entity; if (entity == null) { - Beatmap.Entity en = new Beatmap.Entity(); + DynamicBeatmap.DynamicEntity en = new DynamicBeatmap.DynamicEntity(); en.datamodel = eventName; en.eventObj = eventObj; @@ -592,8 +592,17 @@ namespace HeavenStudio.Editor.Track { returnVal = ((EntityTypes.Float)ep[i].parameter).val; } + else if (propertyType == typeof(Color)) + { + returnVal = new EntityTypes.SerializableColor{ Color = (Color)ep[i].parameter }; + } + else if (propertyType.IsEnum) + { + returnVal = (int) ep[i].parameter; + } - tempEntity[ep[i].propertyName] = returnVal; + //tempEntity[ep[i].propertyName] = returnVal; + tempEntity.CreateProperty(ep[i].propertyName, returnVal); } } } @@ -614,7 +623,7 @@ namespace HeavenStudio.Editor.Track private List duplicatedEventObjs = new List(); public TimelineEventObj CopyEventObject(TimelineEventObj e) { - Beatmap.Entity clone = e.entity.DeepCopy(); + DynamicBeatmap.DynamicEntity clone = e.entity.DeepCopy(); TimelineEventObj dup = AddEventObject(clone.datamodel, false, new Vector3(clone.beat, -clone.track * Timeline.instance.LayerHeight()), clone, true, RandomID()); duplicatedEventObjs.Add(dup); @@ -627,7 +636,7 @@ namespace HeavenStudio.Editor.Track duplicatedEventObjs = new List(); } - public void DestroyEventObject(Beatmap.Entity entity) + public void DestroyEventObject(DynamicBeatmap.DynamicEntity entity) { if (EventParameterManager.instance.entity == entity) EventParameterManager.instance.Disable(); diff --git a/Assets/Scripts/LevelEditor/Timeline/TimelineEventObj.cs b/Assets/Scripts/LevelEditor/Timeline/TimelineEventObj.cs index 60fba269..311fd4da 100644 --- a/Assets/Scripts/LevelEditor/Timeline/TimelineEventObj.cs +++ b/Assets/Scripts/LevelEditor/Timeline/TimelineEventObj.cs @@ -29,7 +29,7 @@ namespace HeavenStudio.Editor.Track // private GameObject moveTemp; [Header("Properties")] - public Beatmap.Entity entity; + public DynamicBeatmap.DynamicEntity entity; public float length; public bool eligibleToMove = false; private bool lastVisible; diff --git a/Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs b/Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs index e800c5ee..af1ec65c 100644 --- a/Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs +++ b/Assets/Scripts/LevelEditor/Timeline/VolumeTimelineObj.cs @@ -15,7 +15,7 @@ namespace HeavenStudio.Editor.Track [SerializeField] private TMP_Text volumeTXT; [SerializeField] private RectTransform raycastRect; - public Beatmap.VolumeChange volumeChange; + public DynamicBeatmap.VolumeChange volumeChange; private float startPosX; private bool moving = false; diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index e2ab698b..3691f940 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -259,7 +259,7 @@ namespace HeavenStudio }, delegate { - GameManager.instance.ToggleInputs(eventCaller.currentEntity.toggle); + GameManager.instance.ToggleInputs(eventCaller.currentEntity["toggle"]); } ), @@ -300,14 +300,14 @@ namespace HeavenStudio { new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") }, - delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e.type); } + delegate { var e = eventCaller.currentEntity; SoundEffects.FourBeatCountIn(e.beat, e.length / 4f, e["type"]); } ), new GameAction("8 beat count-in", "8 Beat Count-In", 8f, true, new List() { new Param("type", SoundEffects.CountInType.Normal, "Type", "The sounds to play for the count-in") }, - delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e.type); } + delegate { var e = eventCaller.currentEntity; SoundEffects.EightBeatCountIn(e.beat, e.length / 8f, e["type"]); } ), new GameAction("count", "Count", 1f, false, new List() @@ -315,7 +315,7 @@ namespace HeavenStudio new Param("type", SoundEffects.CountNumbers.One, "Number", "The sound to play"), new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") }, - delegate { var e = eventCaller.currentEntity; SoundEffects.Count(e.type, e.toggle); } + delegate { var e = eventCaller.currentEntity; SoundEffects.Count(e["type"], e["toggle"]); } ), new GameAction("cowbell", "Cowbell", function: delegate { SoundEffects.Cowbell(); } @@ -331,7 +331,7 @@ namespace HeavenStudio { new Param("toggle", false, "Alt", "Whether or not the alternate version should be played") }, - function: delegate { SoundEffects.Go(eventCaller.currentEntity.toggle); } + function: delegate { SoundEffects.Go(eventCaller.currentEntity["toggle"]); } ), // These are still here for backwards-compatibility but are hidden in the editor diff --git a/Assets/Scripts/Util/EntityTypes.cs b/Assets/Scripts/Util/EntityTypes.cs index 4fb79a84..2a800ee9 100644 --- a/Assets/Scripts/Util/EntityTypes.cs +++ b/Assets/Scripts/Util/EntityTypes.cs @@ -1,7 +1,10 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using Newtonsoft.Json; + namespace HeavenStudio { public class EntityTypes @@ -33,5 +36,30 @@ namespace HeavenStudio this.max = max; } } + + // https://answers.unity.com/questions/772235/cannot-serialize-color.html + // i am crying + [System.Serializable] + public class SerializableColor + { + public float[] colorStore = new float[4] { 1F, 1F, 1F, 1F }; + public Color Color + { + get { return new Color(colorStore[0], colorStore[1], colorStore[2], colorStore[3]); } + set { colorStore = new float[4] { value.r, value.g, value.b, value.a }; } + } + + //makes this class usable as Color, Color normalColor = mySerializableColor; + public static implicit operator Color(SerializableColor instance) + { + return instance.Color; + } + + //makes this class assignable by Color, SerializableColor myColor = Color.white; + public static implicit operator SerializableColor(Color color) + { + return new SerializableColor { Color = color }; + } + } } } \ No newline at end of file From cc577966c12c3aa3816e72b774ea779c65fb1949 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sun, 21 Aug 2022 20:50:19 -0400 Subject: [PATCH 06/27] further work attempt at fixing colour deserialization, not working --- Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs | 14 +++++++------- Assets/Scripts/GameCamera.cs | 4 ++-- Assets/Scripts/Games/Global/Flash.cs | 2 +- Assets/Scripts/Games/Spaceball/Spaceball.cs | 2 +- .../EventSelector/EventPropertyPrefab.cs | 4 ++-- Assets/Scripts/LevelEditor/Timeline/Timeline.cs | 2 +- Assets/Scripts/Util/EntityTypes.cs | 6 +++--- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 899901ae..36b3c004 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -198,14 +198,14 @@ namespace HeavenStudio { "type5", entity.type5 }, { "type6", entity.type6 }, - { "ease", entity.ease }, + { "ease", (int) entity.ease }, - { "colorA", entity.colorA }, - { "colorB", entity.colorB }, - { "colorC", entity.colorC }, - { "colorD", entity.colorD }, - { "colorE", entity.colorE }, - { "colorF", entity.colorF }, + { "colorA", (EntityTypes.SerializableColor) entity.colorA }, + { "colorB", (EntityTypes.SerializableColor) entity.colorB }, + { "colorC", (EntityTypes.SerializableColor) entity.colorC }, + { "colorD", (EntityTypes.SerializableColor) entity.colorD }, + { "colorE", (EntityTypes.SerializableColor) entity.colorE }, + { "colorF", (EntityTypes.SerializableColor) entity.colorF }, { "text1", entity.text1 }, { "text2", entity.text2 }, diff --git a/Assets/Scripts/GameCamera.cs b/Assets/Scripts/GameCamera.cs index f4d57538..49c224aa 100644 --- a/Assets/Scripts/GameCamera.cs +++ b/Assets/Scripts/GameCamera.cs @@ -125,7 +125,7 @@ namespace HeavenStudio float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); if (prog >= 0f) { - EasingFunction.Function func = EasingFunction.GetEasingFunction(e["ease"]); + EasingFunction.Function func = EasingFunction.GetEasingFunction((EasingFunction.Ease) e["ease"]); float dx = func(positionLast.x, e["valA"], Mathf.Min(prog, 1f)); float dy = func(positionLast.y, e["valB"], Mathf.Min(prog, 1f)); float dz = func(positionLast.z, -e["valC"], Mathf.Min(prog, 1f)); @@ -145,7 +145,7 @@ namespace HeavenStudio float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); if (prog >= 0f) { - EasingFunction.Function func = EasingFunction.GetEasingFunction(e["ease"]); + EasingFunction.Function func = EasingFunction.GetEasingFunction((EasingFunction.Ease) e["ease"]); float dx = func(rotEluerLast.x, e["valA"], Mathf.Min(prog, 1f)); float dy = func(rotEluerLast.y, e["valB"], Mathf.Min(prog, 1f)); float dz = func(-rotEluerLast.z, e["valC"], Mathf.Min(prog, 1f)); diff --git a/Assets/Scripts/Games/Global/Flash.cs b/Assets/Scripts/Games/Global/Flash.cs index 94c145b0..1271caee 100644 --- a/Assets/Scripts/Games/Global/Flash.cs +++ b/Assets/Scripts/Games/Global/Flash.cs @@ -92,7 +92,7 @@ namespace HeavenStudio.Games.Global endCol = new Color(colB.r, colB.g, colB.b, startEntity["valB"]); } - SetFade(startEntity.beat, startEntity.length, startCol, endCol, startEntity["ease"]); + SetFade(startEntity.beat, startEntity.length, startCol, endCol, (EasingFunction.Ease) startEntity["ease"]); } } } diff --git a/Assets/Scripts/Games/Spaceball/Spaceball.cs b/Assets/Scripts/Games/Spaceball/Spaceball.cs index 1e9bb08c..e54a1171 100644 --- a/Assets/Scripts/Games/Spaceball/Spaceball.cs +++ b/Assets/Scripts/Games/Spaceball/Spaceball.cs @@ -206,7 +206,7 @@ namespace HeavenStudio.Games else currentZoomCamDistance = dist; - lastEase = allCameraEvents[currentZoomIndex]["ease"]; + lastEase = (EasingFunction.Ease) allCameraEvents[currentZoomIndex]["ease"]; } } diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 03d3a3cb..5713b0aa 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -120,10 +120,10 @@ namespace HeavenStudio.Editor ); break; - case Color _: case EntityTypes.SerializableColor _: + case Color _: colorPreview.colorPicker.onColorChanged += _ => - parameterManager.entity[propertyName] = colorPreview.colorPicker.color; + parameterManager.entity[propertyName] = new EntityTypes.SerializableColor { Color = colorPreview.colorPicker.color }; Color paramCol = parameterManager.entity[propertyName]; diff --git a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs index 4057ff08..e3a7eba9 100644 --- a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs @@ -594,7 +594,7 @@ namespace HeavenStudio.Editor.Track } else if (propertyType == typeof(Color)) { - returnVal = new EntityTypes.SerializableColor{ Color = (Color)ep[i].parameter }; + returnVal = new EntityTypes.SerializableColor { Color = (UnityEngine.Color) ep[i].parameter }; } else if (propertyType.IsEnum) { diff --git a/Assets/Scripts/Util/EntityTypes.cs b/Assets/Scripts/Util/EntityTypes.cs index 2a800ee9..5dd37692 100644 --- a/Assets/Scripts/Util/EntityTypes.cs +++ b/Assets/Scripts/Util/EntityTypes.cs @@ -43,20 +43,20 @@ namespace HeavenStudio public class SerializableColor { public float[] colorStore = new float[4] { 1F, 1F, 1F, 1F }; - public Color Color + public UnityEngine.Color Color { get { return new Color(colorStore[0], colorStore[1], colorStore[2], colorStore[3]); } set { colorStore = new float[4] { value.r, value.g, value.b, value.a }; } } //makes this class usable as Color, Color normalColor = mySerializableColor; - public static implicit operator Color(SerializableColor instance) + public static implicit operator UnityEngine.Color(SerializableColor instance) { return instance.Color; } //makes this class assignable by Color, SerializableColor myColor = Color.white; - public static implicit operator SerializableColor(Color color) + public static implicit operator SerializableColor(UnityEngine.Color color) { return new SerializableColor { Color = color }; } From fe0b97d1ab4657718419c2394fa9d821343e9eb9 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sun, 21 Aug 2022 21:57:32 -0400 Subject: [PATCH 07/27] finally fix deserialization of the new format --- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 46 ++++++++++++++++--- Assets/Scripts/EventCaller.cs | 5 ++ .../EventSelector/EventParameterManager.cs | 2 +- .../EventSelector/EventPropertyPrefab.cs | 4 +- .../Scripts/LevelEditor/Timeline/Timeline.cs | 4 -- Assets/Scripts/Util/EntityTypes.cs | 25 ---------- 6 files changed, 47 insertions(+), 39 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 36b3c004..ad7c4a00 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -4,6 +4,7 @@ using System.ComponentModel; using UnityEngine; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using HeavenStudio.Util; @@ -95,7 +96,38 @@ namespace HeavenStudio { get { - return DynamicData[propertyName]; + Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); + Minigames.GameAction action = EventCaller.instance.GetGameAction(game, datamodel.Split(1)); + Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); + var type = param.parameter.GetType(); + if (DynamicData.ContainsKey(propertyName)) + { + var pType = DynamicData[propertyName].GetType(); + if (pType == type) + { + return DynamicData[propertyName]; + } + else + { + if (type == typeof(EntityTypes.Integer)) + return (int) DynamicData[propertyName]; + else if (type == typeof(EntityTypes.Float)) + return (float) DynamicData[propertyName]; + else if (type.IsEnum) + return (int) DynamicData[propertyName]; + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + { + DynamicData[propertyName] = DynamicData[propertyName].ToObject(type); + return DynamicData[propertyName]; + } + else + return Convert.ChangeType(DynamicData[propertyName], type); + } + } + else + { + return param.parameter; + } } set { @@ -200,12 +232,12 @@ namespace HeavenStudio { "ease", (int) entity.ease }, - { "colorA", (EntityTypes.SerializableColor) entity.colorA }, - { "colorB", (EntityTypes.SerializableColor) entity.colorB }, - { "colorC", (EntityTypes.SerializableColor) entity.colorC }, - { "colorD", (EntityTypes.SerializableColor) entity.colorD }, - { "colorE", (EntityTypes.SerializableColor) entity.colorE }, - { "colorF", (EntityTypes.SerializableColor) entity.colorF }, + { "colorA", (Color) entity.colorA }, + { "colorB", (Color) entity.colorB }, + { "colorC", (Color) entity.colorC }, + { "colorD", (Color) entity.colorD }, + { "colorE", (Color) entity.colorE }, + { "colorF", (Color) entity.colorF }, { "text1", entity.text1 }, { "text2", entity.text2 }, diff --git a/Assets/Scripts/EventCaller.cs b/Assets/Scripts/EventCaller.cs index 27aab25a..7d687e1d 100644 --- a/Assets/Scripts/EventCaller.cs +++ b/Assets/Scripts/EventCaller.cs @@ -28,6 +28,11 @@ namespace HeavenStudio return game.actions.Find(c => c.actionName == action); } + public Minigames.Param GetGameParam(Minigames.Minigame game, string action, string param) + { + return GetGameAction(game, action).parameters.Find(c => c.propertyName == param); + } + public void Init() { instance = this; diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs index e531980e..a918ad68 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs @@ -118,7 +118,7 @@ namespace HeavenStudio.Editor { prefab = DropdownP; } - else if (objType == typeof(Color) || objType == typeof(EntityTypes.SerializableColor)) + else if (objType == typeof(Color)) { prefab = ColorP; } diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 5713b0aa..5bfdf155 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -120,10 +120,10 @@ namespace HeavenStudio.Editor ); break; - case EntityTypes.SerializableColor _: + // case EntityTypes.SerializableColor _: case Color _: colorPreview.colorPicker.onColorChanged += _ => - parameterManager.entity[propertyName] = new EntityTypes.SerializableColor { Color = colorPreview.colorPicker.color }; + parameterManager.entity[propertyName] = colorPreview.colorPicker.color; Color paramCol = parameterManager.entity[propertyName]; diff --git a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs index e3a7eba9..fd04b965 100644 --- a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs @@ -592,10 +592,6 @@ namespace HeavenStudio.Editor.Track { returnVal = ((EntityTypes.Float)ep[i].parameter).val; } - else if (propertyType == typeof(Color)) - { - returnVal = new EntityTypes.SerializableColor { Color = (UnityEngine.Color) ep[i].parameter }; - } else if (propertyType.IsEnum) { returnVal = (int) ep[i].parameter; diff --git a/Assets/Scripts/Util/EntityTypes.cs b/Assets/Scripts/Util/EntityTypes.cs index 5dd37692..8db25e71 100644 --- a/Assets/Scripts/Util/EntityTypes.cs +++ b/Assets/Scripts/Util/EntityTypes.cs @@ -36,30 +36,5 @@ namespace HeavenStudio this.max = max; } } - - // https://answers.unity.com/questions/772235/cannot-serialize-color.html - // i am crying - [System.Serializable] - public class SerializableColor - { - public float[] colorStore = new float[4] { 1F, 1F, 1F, 1F }; - public UnityEngine.Color Color - { - get { return new Color(colorStore[0], colorStore[1], colorStore[2], colorStore[3]); } - set { colorStore = new float[4] { value.r, value.g, value.b, value.a }; } - } - - //makes this class usable as Color, Color normalColor = mySerializableColor; - public static implicit operator UnityEngine.Color(SerializableColor instance) - { - return instance.Color; - } - - //makes this class assignable by Color, SerializableColor myColor = Color.white; - public static implicit operator SerializableColor(UnityEngine.Color color) - { - return new SerializableColor { Color = color }; - } - } } } \ No newline at end of file From 94001c354ce1a9697c0de76f5e119a460b1f908c Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sun, 21 Aug 2022 22:05:10 -0400 Subject: [PATCH 08/27] some notes --- Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index ad7c4a00..e2509990 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -96,6 +96,7 @@ namespace HeavenStudio { get { + //TODO: do this checking and conversion on load instead of at runtime Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); Minigames.GameAction action = EventCaller.instance.GetGameAction(game, datamodel.Split(1)); Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); @@ -215,6 +216,7 @@ namespace HeavenStudio length = entity.length, swing = entity.swing, datamodel = entity.datamodel, + //TODO: only convert properties that actually exist in each GameAction DynamicData = new Dictionary() { { "valA", entity.valA }, From dce22cb45aad69d31b54a41443fa7cf997208581 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sun, 21 Aug 2022 22:25:39 -0400 Subject: [PATCH 09/27] allow access to other data of entity --- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 73 +++++++++++-------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index e2509990..02401c54 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -13,6 +13,7 @@ namespace HeavenStudio [Serializable] public class DynamicBeatmap { + public static int CurrentRiqVersion = 0; public float bpm; [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] @@ -24,7 +25,7 @@ namespace HeavenStudio {"productversion", 000}, {"productsubversion", 0}, //file format version - {"riqversion", 0}, + {"riqversion", CurrentRiqVersion}, // general chart info {"remixtitle", "New Remix"}, // chart name @@ -96,38 +97,52 @@ namespace HeavenStudio { get { - //TODO: do this checking and conversion on load instead of at runtime - Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); - Minigames.GameAction action = EventCaller.instance.GetGameAction(game, datamodel.Split(1)); - Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); - var type = param.parameter.GetType(); - if (DynamicData.ContainsKey(propertyName)) + switch (propertyName) { - var pType = DynamicData[propertyName].GetType(); - if (pType == type) - { - return DynamicData[propertyName]; - } - else - { - if (type == typeof(EntityTypes.Integer)) - return (int) DynamicData[propertyName]; - else if (type == typeof(EntityTypes.Float)) - return (float) DynamicData[propertyName]; - else if (type.IsEnum) - return (int) DynamicData[propertyName]; - else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + case "beat": + return beat; + case "track": + return track; + case "length": + return length; + case "swing": + return swing; + case "datamodel": + return datamodel; + default: + //TODO: do this checking and conversion on load instead of at runtime + Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); + Minigames.GameAction action = EventCaller.instance.GetGameAction(game, datamodel.Split(1)); + Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); + var type = param.parameter.GetType(); + if (DynamicData.ContainsKey(propertyName)) { - DynamicData[propertyName] = DynamicData[propertyName].ToObject(type); - return DynamicData[propertyName]; + var pType = DynamicData[propertyName].GetType(); + if (pType == type) + { + return DynamicData[propertyName]; + } + else + { + if (type == typeof(EntityTypes.Integer)) + return (int) DynamicData[propertyName]; + else if (type == typeof(EntityTypes.Float)) + return (float) DynamicData[propertyName]; + else if (type.IsEnum) + return (int) DynamicData[propertyName]; + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + { + DynamicData[propertyName] = DynamicData[propertyName].ToObject(type); + return DynamicData[propertyName]; + } + else + return Convert.ChangeType(DynamicData[propertyName], type); + } } else - return Convert.ChangeType(DynamicData[propertyName], type); - } - } - else - { - return param.parameter; + { + return param.parameter; + } } } set From 4a6f4fa1f055e18c41d8b47a598acafecaff3066 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Mon, 22 Aug 2022 19:14:38 -0400 Subject: [PATCH 10/27] correct param typings on load now --- Assets/Scripts/BeatmapFormats/Beatmap.cs | 2 +- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 150 ++++++++++-------- Assets/Scripts/GameManager.cs | 4 +- .../EventSelector/EventParameterManager.cs | 2 +- 4 files changed, 92 insertions(+), 66 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/Beatmap.cs b/Assets/Scripts/BeatmapFormats/Beatmap.cs index 82e6885a..8d944af2 100644 --- a/Assets/Scripts/BeatmapFormats/Beatmap.cs +++ b/Assets/Scripts/BeatmapFormats/Beatmap.cs @@ -67,7 +67,7 @@ namespace HeavenStudio return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); } - public object this[string propertyName] + public dynamic this[string propertyName] { get { diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 02401c54..ddad957c 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -110,37 +110,12 @@ namespace HeavenStudio case "datamodel": return datamodel; default: - //TODO: do this checking and conversion on load instead of at runtime - Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); - Minigames.GameAction action = EventCaller.instance.GetGameAction(game, datamodel.Split(1)); - Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); - var type = param.parameter.GetType(); if (DynamicData.ContainsKey(propertyName)) - { - var pType = DynamicData[propertyName].GetType(); - if (pType == type) - { - return DynamicData[propertyName]; - } - else - { - if (type == typeof(EntityTypes.Integer)) - return (int) DynamicData[propertyName]; - else if (type == typeof(EntityTypes.Float)) - return (float) DynamicData[propertyName]; - else if (type.IsEnum) - return (int) DynamicData[propertyName]; - else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) - { - DynamicData[propertyName] = DynamicData[propertyName].ToObject(type); - return DynamicData[propertyName]; - } - else - return Convert.ChangeType(DynamicData[propertyName], type); - } - } + return DynamicData[propertyName]; else { + Minigames.Minigame game = EventCaller.instance.GetMinigame(datamodel.Split(0)); + Minigames.Param param = EventCaller.instance.GetGameParam(game, datamodel.Split(1), propertyName); return param.parameter; } } @@ -222,44 +197,49 @@ namespace HeavenStudio dynamicBeatmap.musicVolume = beatmap.musicVolume; dynamicBeatmap.firstBeatOffset = beatmap.firstBeatOffset; - foreach (var entity in beatmap.entities) + Minigames.Minigame game; + Minigames.GameAction action; + System.Type type, pType; + foreach (var e in beatmap.entities) { + game = EventCaller.instance.GetMinigame(e.datamodel.Split(0)); + action = EventCaller.instance.GetGameAction(game, e.datamodel.Split(1)); + + Dictionary dynamicData = new Dictionary(); + //check each param of the action + if (action.parameters != null) + { + foreach (var param in action.parameters) + { + type = param.parameter.GetType(); + pType = e[param.propertyName].GetType(); + if (pType == type) + { + dynamicData.Add(param.propertyName, e[param.propertyName]); + } + else + { + if (type == typeof(EntityTypes.Integer)) + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (type == typeof(EntityTypes.Float)) + dynamicData.Add(param.propertyName, (float) e[param.propertyName]); + else if (type.IsEnum && param.propertyName != "ease") + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); + else + dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + } + } + } dynamicBeatmap.entities.Add(new DynamicEntity() { - beat = entity.beat, - track = entity.track, - length = entity.length, - swing = entity.swing, - datamodel = entity.datamodel, - //TODO: only convert properties that actually exist in each GameAction - DynamicData = new Dictionary() - { - { "valA", entity.valA }, - { "valB", entity.valB }, - { "valC", entity.valC }, - - { "toggle", entity.toggle }, - - { "type", entity.type }, - { "type2", entity.type2 }, - { "type3", entity.type3 }, - { "type4", entity.type4 }, - { "type5", entity.type5 }, - { "type6", entity.type6 }, - - { "ease", (int) entity.ease }, - - { "colorA", (Color) entity.colorA }, - { "colorB", (Color) entity.colorB }, - { "colorC", (Color) entity.colorC }, - { "colorD", (Color) entity.colorD }, - { "colorE", (Color) entity.colorE }, - { "colorF", (Color) entity.colorF }, - - { "text1", entity.text1 }, - { "text2", entity.text2 }, - { "text3", entity.text3 }, - } + beat = e.beat, + track = e.track, + length = e.length, + swing = e.swing, + datamodel = e.datamodel, + DynamicData = dynamicData }); } foreach (var tempoChange in beatmap.tempoChanges) @@ -306,5 +286,49 @@ namespace HeavenStudio return beatmap; } + /// + /// processes an riq beatmap after it is loaded + /// + public void PostProcess() + { + Minigames.Minigame game; + Minigames.GameAction action; + System.Type type, pType; + foreach (var e in entities) + { + game = EventCaller.instance.GetMinigame(e.datamodel.Split(0)); + action = EventCaller.instance.GetGameAction(game, e.datamodel.Split(1)); + Dictionary dynamicData = new Dictionary(); + //check each param of the action + if (action.parameters != null) + { + foreach (var param in action.parameters) + { + type = param.parameter.GetType(); + pType = e[param.propertyName].GetType(); + if (pType == type) + { + dynamicData.Add(param.propertyName, e[param.propertyName]); + } + else + { + if (type == typeof(EntityTypes.Integer)) + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (type == typeof(EntityTypes.Float)) + dynamicData.Add(param.propertyName, (float) e[param.propertyName]); + else if (type == typeof(EasingFunction.Ease) && pType == typeof(string)) + dynamicData.Add(param.propertyName, Enum.Parse(typeof(EasingFunction.Ease), (string) e[param.propertyName])); + else if (type.IsEnum) + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); + else + dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + } + } + } + e.DynamicData = dynamicData; + } + } } } \ No newline at end of file diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 0b86e52a..61a1515a 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -125,7 +125,6 @@ namespace HeavenStudio public void LoadRemix(string json = "", string type = "riq", int version = 0) { - SortEventsList(); if (json != "") { @@ -138,6 +137,7 @@ namespace HeavenStudio break; case "riq": Beatmap = JsonConvert.DeserializeObject(json); + Beatmap.PostProcess(); break; default: NewRemix(); @@ -148,6 +148,7 @@ namespace HeavenStudio { NewRemix(); } + SortEventsList(); Conductor.instance.SetBpm(Beatmap.bpm); Conductor.instance.SetVolume(Beatmap.musicVolume); Conductor.instance.firstBeatOffset = Beatmap.firstBeatOffset; @@ -336,6 +337,7 @@ namespace HeavenStudio { Beatmap.entities.Sort((x, y) => x.beat.CompareTo(y.beat)); Beatmap.tempoChanges.Sort((x, y) => x.beat.CompareTo(y.beat)); + Beatmap.volumeChanges.Sort((x, y) => x.beat.CompareTo(y.beat)); } public void SetCurrentEventToClosest(float beat) diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs index a918ad68..3ebd306b 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs @@ -78,7 +78,7 @@ namespace HeavenStudio.Editor eventSelector.SetActive(false); this.entity = entity; - Editor.instance.SetGameEventTitle($"Properties for {entity.datamodel} at beat {entity.beat}"); + Editor.instance.SetGameEventTitle($"Properties for {entity.datamodel}"); DestroyParams(); From 4245f93e83e564fb57e32a3aad59c383832b8f83 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 09:09:43 -0400 Subject: [PATCH 11/27] fix typo --- Assets/Scripts/Games/RhythmRally/RhythmRally.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs index 871d1a38..0886a3d5 100644 --- a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs +++ b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs @@ -20,7 +20,7 @@ namespace HeavenStudio.Games.Loaders defaultLength = 0.5f, resizable = true }, - new GameAction("whistle", "Whisle") + new GameAction("whistle", "Whistle") { function = delegate { RhythmRally.instance.PlayWhistle(); }, defaultLength = 0.5f From 4e7b9f87eabc7a8a6a23cd0d509e6ddb0a6441ca Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 09:19:17 -0400 Subject: [PATCH 12/27] fix entity duplication --- Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index ddad957c..171e6c69 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -24,8 +24,10 @@ namespace HeavenStudio // software version (MajorMinorPatch, revision) {"productversion", 000}, {"productsubversion", 0}, - //file format version + // file format version {"riqversion", CurrentRiqVersion}, + // mapper set properties? (use this to flash the button) + {"propertiesmodified", false}, // general chart info {"remixtitle", "New Remix"}, // chart name @@ -89,8 +91,9 @@ namespace HeavenStudio public DynamicEntity DeepCopy() { - //lol the AI generated this - return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(this)); + DynamicEntity copy = (DynamicEntity)this.MemberwiseClone(); + copy.DynamicData = new Dictionary(this.DynamicData); + return copy; } public dynamic this[string propertyName] @@ -166,11 +169,11 @@ namespace HeavenStudio } } - public object this[string propertyName] + public dynamic this[string propertyName] { get { - return properties[propertyName]; + return properties[propertyName] ?? null; } set { From cfc8b296edf42d1d3523508849f168af32013d68 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 09:24:42 -0400 Subject: [PATCH 13/27] handle reserved property names of entities --- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 171e6c69..727ab4c1 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -125,14 +125,23 @@ namespace HeavenStudio } set { - if (DynamicData.ContainsKey(propertyName)) + switch (propertyName) { - DynamicData[propertyName] = value; - } - else - { - UnityEngine.Debug.LogError($"This entity does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}"); + case "beat": + case "track": + case "length": + case "swing": + case "datamodel": + UnityEngine.Debug.LogWarning($"Property name {propertyName} is reserved and cannot be set."); + break; + default: + if (DynamicData.ContainsKey(propertyName)) + DynamicData[propertyName] = value; + else + UnityEngine.Debug.LogError($"This entity does not have a property named {propertyName}! Attempted to insert value of type {value.GetType()}"); + break; } + } } From 2f05667126103aaea4cc4f811ff2081f0140e174 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 09:38:23 -0400 Subject: [PATCH 14/27] dialog for clearing current remix --- Assets/Scenes/Editor.unity | 1121 +++++++++++++---- .../Scripts/LevelEditor/NewRemixDialog.meta | 8 + .../NewRemixDialog/NewRemixDialog.cs | 27 + .../NewRemixDialog/NewRemixDialog.cs.meta | 11 + 4 files changed, 918 insertions(+), 249 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/NewRemixDialog.meta create mode 100644 Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs create mode 100644 Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index b971faf6..113be460 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -1731,7 +1731,6 @@ RectTransform: - {fileID: 344865318} - {fileID: 1550880755} - {fileID: 316841412} - - {fileID: 2099454902} m_Father: {fileID: 683816222} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -4964,6 +4963,219 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 191459085} m_CullTransparentMesh: 1 +--- !u!1 &195260750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 195260751} + - component: {fileID: 195260753} + - component: {fileID: 195260752} + m_Layer: 5 + m_Name: BlackBG (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &195260751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195260750} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 680919859} + - {fileID: 1271068199} + - {fileID: 196273864} + - {fileID: 811580415} + m_Father: {fileID: 1962376964} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -414.05002, y: 172.88} + m_SizeDelta: {x: 347.94, y: 194} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &195260752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195260750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.3529412} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &195260753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 195260750} + m_CullTransparentMesh: 1 +--- !u!1 &196273863 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 196273864} + - component: {fileID: 196273866} + - component: {fileID: 196273865} + m_Layer: 5 + m_Name: label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &196273864 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196273863} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.9995906, y: 0.9995906, z: 0.9995906} + m_Children: [] + m_Father: {fileID: 195260751} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.0024414, y: 37.88} + m_SizeDelta: {x: 440.28, y: 29.72} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &196273865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196273863} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Your current Remix will be cleared! + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292664540 + m_fontColor: {r: 0.8627451, g: 0.8627451, b: 0.8627451, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 18 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &196273866 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 196273863} + m_CullTransparentMesh: 1 --- !u!1 &197334153 GameObject: m_ObjectHideFlags: 0 @@ -6340,7 +6552,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -0.039999, y: 0.000017166138} + m_AnchoredPosition: {x: -0.03999901, y: 0.000017166138} m_SizeDelta: {x: 36.813, y: 44.84} m_Pivot: {x: 1, y: 0.5} --- !u!114 &258006093 @@ -6636,81 +6848,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 270434623} m_CullTransparentMesh: 1 ---- !u!1 &279065747 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 279065748} - - component: {fileID: 279065750} - - component: {fileID: 279065749} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &279065748 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279065747} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2099454902} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 50, y: 50} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &279065749 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279065747} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 0.5803922, b: 0.5882353, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 6809f7224eccf2142985b642abf0e0e1, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &279065750 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 279065747} - m_CullTransparentMesh: 1 --- !u!1 &279538357 GameObject: m_ObjectHideFlags: 0 @@ -9902,6 +10039,141 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 446434228} m_CullTransparentMesh: 1 +--- !u!1 &449176920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 449176921} + - component: {fileID: 449176924} + - component: {fileID: 449176923} + - component: {fileID: 449176922} + m_Layer: 5 + m_Name: Confirm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &449176921 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 449176920} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1161509769} + m_Father: {fileID: 811580415} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 220.14, y: -60.01} + m_SizeDelta: {x: 58.76, y: 58.76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &449176922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 449176920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e0cac45de7228a4c8f7bc6adb0751a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 449176923} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1962376965} + m_TargetAssemblyTypeName: NewRemixDialog, Assembly-CSharp + m_MethodName: Confirm + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + SnapDialog: {fileID: 0} + isDown: 0 +--- !u!114 &449176923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 449176920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &449176924 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 449176920} + m_CullTransparentMesh: 1 --- !u!1 &454315224 GameObject: m_ObjectHideFlags: 0 @@ -14981,6 +15253,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 678553524} m_CullTransparentMesh: 1 +--- !u!1 &680919858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680919859} + - component: {fileID: 680919861} + - component: {fileID: 680919860} + m_Layer: 5 + m_Name: Image (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &680919859 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680919858} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 195260751} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0.000015258789} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &680919860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680919858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f9232c079e126cd48a7344b23eaf42a5, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 0.5 +--- !u!222 &680919861 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680919858} + m_CullTransparentMesh: 1 --- !u!1 &683816221 GameObject: m_ObjectHideFlags: 0 @@ -15012,7 +15359,7 @@ RectTransform: - {fileID: 1669671032} - {fileID: 58525996} m_Father: {fileID: 1791483803} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} m_AnchorMax: {x: 0.5, y: 1} @@ -17658,26 +18005,6 @@ MonoBehaviour: beat: 0 track: 0 length: 0 - valA: 0 - valB: 0 - valC: 0 - toggle: 0 - type: 0 - type2: 0 - type3: 0 - type4: 0 - type5: 0 - type6: 0 - ease: 0 - colorA: {r: 0, g: 0, b: 0, a: 0} - colorB: {r: 0, g: 0, b: 0, a: 0} - colorC: {r: 0, g: 0, b: 0, a: 0} - colorD: {r: 0, g: 0, b: 0, a: 0} - colorE: {r: 0, g: 0, b: 0, a: 0} - colorF: {r: 0, g: 0, b: 0, a: 0} - text1: - text2: - text3: swing: 0 datamodel: eventObj: {fileID: 0} @@ -17759,6 +18086,109 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: 0, y: 0, z: 0, w: 0} m_Softness: {x: 0, y: 0} +--- !u!1 &811580414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 811580415} + - component: {fileID: 811580418} + - component: {fileID: 811580417} + - component: {fileID: 811580416} + m_Layer: 5 + m_Name: buttonHolder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &811580415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 811580414} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 449176921} + m_Father: {fileID: 195260751} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000015258789, y: -36.98999} + m_SizeDelta: {x: -7.66, y: -73.98} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &811580416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 811580414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &811580417 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 811580414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &811580418 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 811580414} + m_CullTransparentMesh: 1 --- !u!1 &814330441 GameObject: m_ObjectHideFlags: 0 @@ -18160,26 +18590,6 @@ MonoBehaviour: beat: 0 track: 0 length: 0 - valA: 0 - valB: 0 - valC: 0 - toggle: 0 - type: 0 - type2: 0 - type3: 0 - type4: 0 - type5: 0 - type6: 0 - ease: 0 - colorA: {r: 0, g: 0, b: 0, a: 0} - colorB: {r: 0, g: 0, b: 0, a: 0} - colorC: {r: 0, g: 0, b: 0, a: 0} - colorD: {r: 0, g: 0, b: 0, a: 0} - colorE: {r: 0, g: 0, b: 0, a: 0} - colorF: {r: 0, g: 0, b: 0, a: 0} - text1: - text2: - text3: swing: 0 datamodel: eventObj: {fileID: 0} @@ -23013,7 +23423,7 @@ RectTransform: - {fileID: 1466780685} - {fileID: 1497456600} m_Father: {fileID: 1791483803} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -23506,7 +23916,7 @@ RectTransform: - {fileID: 1585542810} - {fileID: 151438064} m_Father: {fileID: 1791483803} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -24820,7 +25230,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91107} + m_AnchoredPosition: {x: 0, y: 129.9111} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -24920,6 +25330,81 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &1161509768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1161509769} + - component: {fileID: 1161509771} + - component: {fileID: 1161509770} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1161509769 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161509768} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 449176921} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1161509770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161509768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.87859285, g: 1, b: 0.8726415, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 39656548c069d5541a9d9d1a808a76e4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1161509771 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1161509768} + m_CullTransparentMesh: 1 --- !u!1 &1162156585 GameObject: m_ObjectHideFlags: 0 @@ -26961,7 +27446,7 @@ RectTransform: - {fileID: 889256061} - {fileID: 584527987} m_Father: {fileID: 1791483803} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0} m_AnchorMax: {x: 0.5, y: 0} @@ -27057,6 +27542,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1267250656} m_CullTransparentMesh: 1 +--- !u!1 &1271068198 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1271068199} + - component: {fileID: 1271068201} + - component: {fileID: 1271068200} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1271068199 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271068198} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 195260751} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -27} + m_SizeDelta: {x: 440.28, y: 46.58} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1271068200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271068198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Create new Remix? + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1271068201 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271068198} + m_CullTransparentMesh: 1 --- !u!1 &1271528576 GameObject: m_ObjectHideFlags: 0 @@ -30474,6 +31093,81 @@ MonoBehaviour: layer: {fileID: 1906769994} tempoLayer: {fileID: 1511927534} musicLayer: {fileID: 954835807} +--- !u!1 &1426168092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1426168093} + - component: {fileID: 1426168095} + - component: {fileID: 1426168094} + m_Layer: 5 + m_Name: BlackBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1426168093 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1426168092} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1962376964} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -414.05, y: 172.88} + m_SizeDelta: {x: 347.94, y: 194} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1426168094 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1426168092} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.3529412} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1426168095 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1426168092} + m_CullTransparentMesh: 1 --- !u!1 &1427744634 GameObject: m_ObjectHideFlags: 0 @@ -35579,9 +36273,9 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1423699437} - m_TargetAssemblyTypeName: HeavenStudio.Editor.Editor, Assembly-CSharp - m_MethodName: NewRemix + - m_Target: {fileID: 1962376965} + m_TargetAssemblyTypeName: NewRemixDialog, Assembly-CSharp + m_MethodName: SwitchNewDialog m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -37729,6 +38423,7 @@ RectTransform: - {fileID: 1110073995} - {fileID: 1050802356} - {fileID: 703340359} + - {fileID: 1962376964} - {fileID: 683816222} - {fileID: 1265865541} - {fileID: 1946344931} @@ -39990,7 +40685,7 @@ RectTransform: - {fileID: 2051557111} - {fileID: 1946352457} m_Father: {fileID: 1791483803} - m_RootOrder: 7 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -40390,6 +41085,57 @@ MonoBehaviour: heightInputField: {fileID: 1192611373} volSlider: {fileID: 390818399} volLabel: {fileID: 2031558985} +--- !u!1 &1962376963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962376964} + - component: {fileID: 1962376965} + m_Layer: 5 + m_Name: NewDialog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1962376964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962376963} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1426168093} + - {fileID: 195260751} + m_Father: {fileID: 1791483803} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -360} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962376965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962376963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5e1b2b36751952147bb6126f9ffd6086, type: 3} + m_Name: + m_EditorClassIdentifier: + diag: {fileID: 1962376963} --- !u!1 &1964271230 GameObject: m_ObjectHideFlags: 0 @@ -43324,129 +44070,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2094592543} m_CullTransparentMesh: 1 ---- !u!1 &2099454901 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2099454902} - - component: {fileID: 2099454905} - - component: {fileID: 2099454904} - - component: {fileID: 2099454903} - m_Layer: 5 - m_Name: Button - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2099454902 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2099454901} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.00032, y: 1.00032, z: 1.00032} - m_Children: - - {fileID: 279065748} - m_Father: {fileID: 58525996} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 154.74002, y: -711.80005} - m_SizeDelta: {x: 58.76, y: 58.76} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2099454903 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2099454901} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7e0cac45de7228a4c8f7bc6adb0751a2, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 2099454904} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - SnapDialog: {fileID: 0} - isDown: 0 ---- !u!114 &2099454904 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2099454901} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!222 &2099454905 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2099454901} - m_CullTransparentMesh: 1 --- !u!1 &2101185331 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/LevelEditor/NewRemixDialog.meta b/Assets/Scripts/LevelEditor/NewRemixDialog.meta new file mode 100644 index 00000000..a1fcb03b --- /dev/null +++ b/Assets/Scripts/LevelEditor/NewRemixDialog.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fb311ef0878d3e342bdfb042366b90e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs new file mode 100644 index 00000000..6090c4cc --- /dev/null +++ b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +using HeavenStudio.Editor; + +public class NewRemixDialog : MonoBehaviour +{ + [SerializeField] private GameObject diag; + + public void SwitchNewDialog() + { + if(diag.activeSelf) { + diag.SetActive(false); + } else { + diag.SetActive(true); + } + } + + public void Confirm() + { + Editor.instance.NewRemix(); + if(diag.activeSelf) { + diag.SetActive(false); + } + } +} diff --git a/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs.meta b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs.meta new file mode 100644 index 00000000..f6848089 --- /dev/null +++ b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5e1b2b36751952147bb6126f9ffd6086 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From a0f25ad4a4f2a006f261f4fafcdb89abcff6e033 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 10:27:30 -0400 Subject: [PATCH 15/27] split event properties into own scripts --- Assets/Scenes/Editor.unity | 93 ++------- .../EventSelector/EventParameterManager.cs | 34 +++- .../EventSelector/EventPropertyPrefab.cs | 183 +----------------- .../EventSelector/PropertyPrefabs.meta | 8 + .../PropertyPrefabs/BoolPropertyPrefab.cs | 37 ++++ .../BoolPropertyPrefab.cs.meta | 11 ++ .../PropertyPrefabs/ColorPropertyPrefab.cs | 61 ++++++ .../ColorPropertyPrefab.cs.meta | 11 ++ .../PropertyPrefabs/EnumPropertyPrefab.cs | 49 +++++ .../EnumPropertyPrefab.cs.meta | 11 ++ .../PropertyPrefabs/NumberPropertyPrefab.cs | 101 ++++++++++ .../NumberPropertyPrefab.cs.meta | 11 ++ .../PropertyPrefabs/StringPropertyPrefab.cs | 44 +++++ .../StringPropertyPrefab.cs.meta | 11 ++ 14 files changed, 409 insertions(+), 256 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 113be460..2e012a52 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -4799,20 +4799,13 @@ MonoBehaviour: m_GameObject: {fileID: 184838087} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: 8ada001011e54c74b87c04d7186d5f3c, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 44496736} - parameterManager: {fileID: 830452354} - slider: {fileID: 0} - inputField: {fileID: 0} - toggle: {fileID: 0} + parameterManager: {fileID: 0} + propertyName: dropdown: {fileID: 9172948791891367920} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} --- !u!1 &189878587 GameObject: m_ObjectHideFlags: 0 @@ -7942,20 +7935,14 @@ MonoBehaviour: m_GameObject: {fileID: 345301789} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: 6e9ad350a96f5644dbb1e4686a6bcaed, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 1882704219} - parameterManager: {fileID: 830452354} + parameterManager: {fileID: 0} + propertyName: slider: {fileID: 749529046} inputField: {fileID: 735918245} - toggle: {fileID: 0} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} --- !u!224 &345301791 RectTransform: m_ObjectHideFlags: 0 @@ -8251,15 +8238,7 @@ MonoBehaviour: m_EditorClassIdentifier: caption: {fileID: 419538178} parameterManager: {fileID: 830452354} - slider: {fileID: 0} - inputField: {fileID: 606981307} - toggle: {fileID: 0} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} + propertyName: --- !u!1 &365690205 GameObject: m_ObjectHideFlags: 0 @@ -8604,20 +8583,14 @@ MonoBehaviour: m_GameObject: {fileID: 396879232} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: 6e9ad350a96f5644dbb1e4686a6bcaed, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 5490985} - parameterManager: {fileID: 830452354} + parameterManager: {fileID: 0} + propertyName: slider: {fileID: 2067224779} inputField: {fileID: 1182082595} - toggle: {fileID: 0} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} --- !u!1 &407289014 GameObject: m_ObjectHideFlags: 0 @@ -9586,15 +9559,7 @@ MonoBehaviour: m_EditorClassIdentifier: caption: {fileID: 0} parameterManager: {fileID: 830452354} - slider: {fileID: 390818399} - inputField: {fileID: 2031558985} - toggle: {fileID: 0} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} + propertyName: --- !u!1 &435201908 GameObject: m_ObjectHideFlags: 0 @@ -17147,20 +17112,13 @@ MonoBehaviour: m_GameObject: {fileID: 755586977} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: 9aa690f14ccbf9e4bb6bd339d500c3e7, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 774969486} - parameterManager: {fileID: 830452354} - slider: {fileID: 0} - inputField: {fileID: 0} + parameterManager: {fileID: 0} + propertyName: toggle: {fileID: 279538359} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} - inputFieldString: {fileID: 0} --- !u!1 &767779042 GameObject: m_ObjectHideFlags: 0 @@ -31745,20 +31703,16 @@ MonoBehaviour: m_GameObject: {fileID: 1443721746} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: c1c576a0586b70d4395de537078023d5, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 537615369} - parameterManager: {fileID: 830452354} - slider: {fileID: 0} - inputField: {fileID: 0} - toggle: {fileID: 0} - dropdown: {fileID: 0} + parameterManager: {fileID: 0} + propertyName: ColorBTN: {fileID: 1535224918} ColorTable: {fileID: 723094753} colorTableActive: 0 colorPreview: {fileID: 1535224921} - inputFieldString: {fileID: 0} --- !u!1 &1453521077 GameObject: m_ObjectHideFlags: 0 @@ -36133,19 +36087,12 @@ MonoBehaviour: m_GameObject: {fileID: 1671827686} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b7c76a246115c1459c963e93f7db056, type: 3} + m_Script: {fileID: 11500000, guid: c01fcc0bb14adee46a4869c1c009850e, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 1478022678} - parameterManager: {fileID: 830452354} - slider: {fileID: 0} - inputField: {fileID: 0} - toggle: {fileID: 0} - dropdown: {fileID: 0} - ColorBTN: {fileID: 0} - ColorTable: {fileID: 0} - colorTableActive: 0 - colorPreview: {fileID: 0} + parameterManager: {fileID: 0} + propertyName: inputFieldString: {fileID: 1776034728} --- !u!1 &1682022763 GameObject: diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs index 3ebd306b..091f70ee 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventParameterManager.cs @@ -99,46 +99,70 @@ namespace HeavenStudio.Editor private void AddParam(string propertyName, object type, string caption, string tooltip = "") { GameObject prefab = IntegerP; + GameObject input; var objType = type.GetType(); if (objType == typeof(EntityTypes.Integer)) { prefab = IntegerP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } else if (objType == typeof(EntityTypes.Float)) { prefab = FloatP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } else if(type is bool) { prefab = BooleanP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } else if (objType.IsEnum) { prefab = DropdownP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } else if (objType == typeof(Color)) { prefab = ColorP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } else if(objType == typeof(string)) { prefab = StringP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); } + else + { + Debug.LogError("Can't make property interface of type: " + type.GetType()); + return; + } + } + private GameObject InitPrefab(GameObject prefab, string tooltip = "") + { GameObject input = Instantiate(prefab); input.transform.SetParent(this.gameObject.transform); input.SetActive(true); input.transform.localScale = Vector2.one; - if(tooltip != "") - { + if(tooltip != string.Empty) Tooltip.AddTooltip(input, "", tooltip); - } - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + return input; } private void DestroyParams() diff --git a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs index 5bfdf155..91af6a2f 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/EventPropertyPrefab.cs @@ -14,189 +14,16 @@ namespace HeavenStudio.Editor public class EventPropertyPrefab : MonoBehaviour { public TMP_Text caption; - [SerializeField] private EventParameterManager parameterManager; + public EventParameterManager parameterManager; + public string propertyName; - [Header("Integer and Float")] - [Space(10)] - public Slider slider; - public TMP_InputField inputField; + public void SetProperties(string propertyName, object type, string caption) {} - [Header("Boolean")] - [Space(10)] - public Toggle toggle; - - [Header("Dropdown")] - [Space(10)] - public TMP_Dropdown dropdown; - - [Header("Color")] - [Space(10)] - public Button ColorBTN; - public RectTransform ColorTable; - public bool colorTableActive; - public ColorPreview colorPreview; - - [Header("String")] //why wasn't this a thing before - [Space(10)] - public TMP_InputField inputFieldString; - - private string propertyName; - - public void SetProperties(string propertyName, object type, string caption) + public void InitProperties(string propertyName, string caption) { + this.parameterManager = EventParameterManager.instance; this.propertyName = propertyName; this.caption.text = caption; - - switch (type) - { - case EntityTypes.Integer integer: - slider.minValue = integer.min; - slider.maxValue = integer.max; - - slider.wholeNumbers = true; - slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); - inputField.text = slider.value.ToString(); - - slider.onValueChanged.AddListener( - _ => - { - inputField.text = slider.value.ToString(); - parameterManager.entity[propertyName] = (int) slider.value; - } - ); - - inputField.onSelect.AddListener( - _ => - Editor.instance.editingInputField = true - ); - - inputField.onEndEdit.AddListener( - _ => - { - slider.value = Convert.ToSingle(inputField.text); - parameterManager.entity[propertyName] = (int) slider.value; - Editor.instance.editingInputField = false; - } - ); - break; - - case EntityTypes.Float fl: - slider.minValue = fl.min; - slider.maxValue = fl.max; - - slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); - inputField.text = slider.value.ToString("G"); - - slider.onValueChanged.AddListener( - _ => - { - var newValue = (float) Math.Round(slider.value, 4); - inputField.text = newValue.ToString("G"); - parameterManager.entity[propertyName] = newValue; - } - ); - - inputField.onSelect.AddListener( - _ => - Editor.instance.editingInputField = true - ); - - inputField.onEndEdit.AddListener( - _ => - { - slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4); - parameterManager.entity[propertyName] = slider.value; - Editor.instance.editingInputField = false; - } - ); - break; - - case bool _: - // ' (bool)type ' always results in false - toggle.isOn = Convert.ToBoolean(parameterManager.entity[propertyName]); - - toggle.onValueChanged.AddListener( - _ => parameterManager.entity[propertyName] = toggle.isOn - ); - break; - - // case EntityTypes.SerializableColor _: - case Color _: - colorPreview.colorPicker.onColorChanged += _ => - parameterManager.entity[propertyName] = colorPreview.colorPicker.color; - - Color paramCol = parameterManager.entity[propertyName]; - - ColorBTN.onClick.AddListener( - () => - { - ColorTable.gameObject.SetActive(true); - colorTableActive = true; - colorPreview.ChangeColor(paramCol); - } - ); - - colorPreview.ChangeColor(paramCol); - ColorTable.gameObject.SetActive(false); - break; - - case string _: - inputFieldString.text = (string) parameterManager.entity[propertyName]; - - inputFieldString.onSelect.AddListener( - _ => - Editor.instance.editingInputField = true - ); - inputFieldString.onEndEdit.AddListener( - _ => - {; - parameterManager.entity[propertyName] = inputFieldString.text; - Editor.instance.editingInputField = false; - } - ); - break; - - case Enum enumKind: - var enumType = enumKind.GetType(); - var enumVals = Enum.GetValues(enumType); - var enumNames = Enum.GetNames(enumType).ToList(); - - // Can we assume non-holey enum? - // If we can we can simplify to dropdown.value = (int) parameterManager.entity[propertyName] - var currentlySelected = (int) parameterManager.entity[propertyName]; - var selected = enumVals - .Cast() - .ToList() - .FindIndex(val => (int) val == currentlySelected); - - dropdown.AddOptions(enumNames); - dropdown.value = selected; - - dropdown.onValueChanged.AddListener(_ => - parameterManager.entity[propertyName] = (int) enumVals.GetValue(dropdown.value) - ); - break; - - default: - throw new ArgumentOutOfRangeException( - nameof(type), type, "I don't know how to make a property of this type!" - ); - } - } - - private void Update() - { - if (colorTableActive) - { - if (!Editor.MouseInRectTransform(ColorTable)) - { - if (Input.GetMouseButtonDown(0)) - { - ColorTable.gameObject.SetActive(false); - colorTableActive = false; - } - } - } } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs.meta new file mode 100644 index 00000000..001ae135 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b86ddd3d47bb04e48a61db47242e02ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs new file mode 100644 index 00000000..5aae8e62 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class BoolPropertyPrefab : EventPropertyPrefab + { + [Header("Boolean")] + [Space(10)] + public Toggle toggle; + + new public void SetProperties(string propertyName, object type, string caption) + { + InitProperties(propertyName, caption); + + // ' (bool)type ' always results in false + toggle.isOn = Convert.ToBoolean(parameterManager.entity[propertyName]); + + toggle.onValueChanged.AddListener( + _ => parameterManager.entity[propertyName] = toggle.isOn + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs.meta new file mode 100644 index 00000000..7c9775b8 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/BoolPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9aa690f14ccbf9e4bb6bd339d500c3e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs new file mode 100644 index 00000000..1de8499b --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class ColorPropertyPrefab : EventPropertyPrefab + { + [Header("Color")] + [Space(10)] + public Button ColorBTN; + public RectTransform ColorTable; + public bool colorTableActive; + public ColorPreview colorPreview; + + new public void SetProperties(string propertyName, object type, string caption) + { + InitProperties(propertyName, caption); + + colorPreview.colorPicker.onColorChanged += _ => + parameterManager.entity[propertyName] = colorPreview.colorPicker.color; + + Color paramCol = parameterManager.entity[propertyName]; + + ColorBTN.onClick.AddListener( + () => + { + ColorTable.gameObject.SetActive(true); + colorTableActive = true; + colorPreview.ChangeColor(paramCol); + } + ); + + colorPreview.ChangeColor(paramCol); + ColorTable.gameObject.SetActive(false); + } + + private void Update() + { + if (colorTableActive) + { + if (!Editor.MouseInRectTransform(ColorTable)) + { + if (Input.GetMouseButtonDown(0)) + { + ColorTable.gameObject.SetActive(false); + colorTableActive = false; + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs.meta new file mode 100644 index 00000000..9d361838 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/ColorPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c1c576a0586b70d4395de537078023d5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs new file mode 100644 index 00000000..f0edf4af --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs @@ -0,0 +1,49 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class EnumPropertyPrefab : EventPropertyPrefab + { + [Header("Dropdown")] + [Space(10)] + public TMP_Dropdown dropdown; + + new public void SetProperties(string propertyName, object type, string caption) + { + InitProperties(propertyName, caption); + + var enumType = type.GetType(); + var enumVals = Enum.GetValues(enumType); + var enumNames = Enum.GetNames(enumType).ToList(); + + // Can we assume non-holey enum? + // If we can we can simplify to dropdown.value = (int) parameterManager.entity[propertyName] + var currentlySelected = (int) parameterManager.entity[propertyName]; + var selected = enumVals + .Cast() + .ToList() + .FindIndex(val => (int) val == currentlySelected); + + dropdown.AddOptions(enumNames); + dropdown.value = selected; + + dropdown.onValueChanged.AddListener(_ => + parameterManager.entity[propertyName] = (int) enumVals.GetValue(dropdown.value) + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs.meta new file mode 100644 index 00000000..20cada82 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/EnumPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ada001011e54c74b87c04d7186d5f3c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs new file mode 100644 index 00000000..1ce2d4da --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs @@ -0,0 +1,101 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class NumberPropertyPrefab : EventPropertyPrefab + { + [Header("Integer and Float")] + [Space(10)] + public Slider slider; + public TMP_InputField inputField; + + new public void SetProperties(string propertyName, object type, string caption) + { + InitProperties(propertyName, caption); + + switch (type) + { + case EntityTypes.Integer integer: + slider.minValue = integer.min; + slider.maxValue = integer.max; + + slider.wholeNumbers = true; + slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); + inputField.text = slider.value.ToString(); + + slider.onValueChanged.AddListener( + _ => + { + inputField.text = slider.value.ToString(); + parameterManager.entity[propertyName] = (int) slider.value; + } + ); + + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + + inputField.onEndEdit.AddListener( + _ => + { + slider.value = Convert.ToSingle(inputField.text); + parameterManager.entity[propertyName] = (int) slider.value; + Editor.instance.editingInputField = false; + } + ); + break; + + case EntityTypes.Float fl: + slider.minValue = fl.min; + slider.maxValue = fl.max; + + slider.value = Convert.ToSingle(parameterManager.entity[propertyName]); + inputField.text = slider.value.ToString("G"); + + slider.onValueChanged.AddListener( + _ => + { + var newValue = (float) Math.Round(slider.value, 4); + inputField.text = newValue.ToString("G"); + parameterManager.entity[propertyName] = newValue; + } + ); + + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + + inputField.onEndEdit.AddListener( + _ => + { + slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4); + parameterManager.entity[propertyName] = slider.value; + Editor.instance.editingInputField = false; + } + ); + break; + + default: + throw new ArgumentOutOfRangeException( + nameof(type), type, "I don't know how to make a property of this type!" + ); + } + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs.meta new file mode 100644 index 00000000..ec9e23c6 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/NumberPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e9ad350a96f5644dbb1e4686a6bcaed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs new file mode 100644 index 00000000..58da4e8f --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs @@ -0,0 +1,44 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class StringPropertyPrefab : EventPropertyPrefab + { + [Header("String")] //why wasn't this a thing before + [Space(10)] + public TMP_InputField inputFieldString; + + new public void SetProperties(string propertyName, object type, string caption) + { + InitProperties(propertyName, caption); + + inputFieldString.text = (string) parameterManager.entity[propertyName]; + + inputFieldString.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + inputFieldString.onEndEdit.AddListener( + _ => + {; + parameterManager.entity[propertyName] = inputFieldString.text; + Editor.instance.editingInputField = false; + } + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs.meta new file mode 100644 index 00000000..f373b691 --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs/StringPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c01fcc0bb14adee46a4869c1c009850e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 6c80073b12c4006c236f1ecabc4bae553bc6fcfc Mon Sep 17 00:00:00 2001 From: minenice55 Date: Tue, 23 Aug 2022 10:56:39 -0400 Subject: [PATCH 16/27] prepare work for remix properties UI --- Assets/Scenes/Editor.unity | 3059 ++++++++++++++++- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 19 +- Assets/Scripts/LevelEditor/DialogHelpers.meta | 8 + .../TabButton.cs | 0 .../TabButton.cs.meta | 0 .../TabsManager.cs | 0 .../TabsManager.cs.meta | 0 .../LevelEditor/RemixPropertiesDialog.meta | 8 + .../RemixPropertiesDialog.cs | 27 + .../RemixPropertiesDialog.cs.meta | 11 + .../RemixPropertiesDialog/Tabs.meta | 8 + 11 files changed, 3134 insertions(+), 6 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/DialogHelpers.meta rename Assets/Scripts/LevelEditor/{SettingsDialog => DialogHelpers}/TabButton.cs (100%) rename Assets/Scripts/LevelEditor/{SettingsDialog => DialogHelpers}/TabButton.cs.meta (100%) rename Assets/Scripts/LevelEditor/{SettingsDialog => DialogHelpers}/TabsManager.cs (100%) rename Assets/Scripts/LevelEditor/{SettingsDialog => DialogHelpers}/TabsManager.cs.meta (100%) create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 2e012a52..fdc614b1 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -1064,6 +1064,81 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} +--- !u!1 &41457208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 41457209} + - component: {fileID: 41457211} + - component: {fileID: 41457210} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &41457209 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41457208} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1506447352} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &41457210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41457208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &41457211 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 41457208} + m_CullTransparentMesh: 1 --- !u!1 &44197994 GameObject: m_ObjectHideFlags: 0 @@ -5817,6 +5892,83 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 225003583} m_CullTransparentMesh: 1 +--- !u!1 &231450549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 231450550} + - component: {fileID: 231450552} + - component: {fileID: 231450551} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &231450550 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 231450549} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 929282062} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 15} + m_Pivot: {x: 0, y: 1} +--- !u!114 &231450551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 231450549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 10 + m_Bottom: 5 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &231450552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 231450549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &232337124 GameObject: m_ObjectHideFlags: 0 @@ -10368,6 +10520,132 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 456434809} m_CullTransparentMesh: 1 +--- !u!1 &460204128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 460204129} + - component: {fileID: 460204132} + - component: {fileID: 460204131} + - component: {fileID: 460204130} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &460204129 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460204128} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2068945731} + m_Father: {fileID: 673880751} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0.000061035} + m_Pivot: {x: 1, y: 1} +--- !u!114 &460204130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460204128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1247650912} + m_HandleRect: {fileID: 1247650911} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &460204131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460204128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &460204132 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 460204128} + m_CullTransparentMesh: 1 --- !u!1 &469226882 GameObject: m_ObjectHideFlags: 0 @@ -10574,6 +10852,153 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 481396919} m_CullTransparentMesh: 1 +--- !u!1 &483251985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 483251986} + - component: {fileID: 483251990} + - component: {fileID: 483251989} + - component: {fileID: 483251988} + - component: {fileID: 483251987} + m_Layer: 5 + m_Name: RemixFlavour + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &483251986 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 483251985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999721, y: 0.999721, z: 0.999721} + m_Children: + - {fileID: 1956939036} + m_Father: {fileID: 1523610371} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 198, y: -25} + m_SizeDelta: {x: 132, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &483251987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 483251985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72c5153eb89ce5d4eb324d72a9627670, type: 3} + m_Name: + m_EditorClassIdentifier: + Content: {fileID: 621827468} +--- !u!114 &483251988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 483251985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 483251989} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 483251987} + m_TargetAssemblyTypeName: HeavenStudio.Editor.TabButton, Assembly-CSharp + m_MethodName: OnClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &483251989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 483251985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &483251990 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 483251985} + m_CullTransparentMesh: 1 --- !u!1 &499528697 GameObject: m_ObjectHideFlags: 0 @@ -11439,6 +11864,46 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 529053005} m_CullTransparentMesh: 1 +--- !u!1 &529992455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 529992456} + m_Layer: 5 + m_Name: Main + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &529992456 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 529992455} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1336281383} + - {fileID: 1926864317} + - {fileID: 641594208} + - {fileID: 1523610371} + - {fileID: 572765322} + m_Father: {fileID: 1336470762} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -30, y: -30} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &530463410 GameObject: m_ObjectHideFlags: 0 @@ -12043,6 +12508,132 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 551314711} m_CullTransparentMesh: 1 +--- !u!1 &551901363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 551901364} + - component: {fileID: 551901367} + - component: {fileID: 551901366} + - component: {fileID: 551901365} + m_Layer: 5 + m_Name: Scrollbar Vertical + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &551901364 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551901363} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1506447352} + m_Father: {fileID: 2122610458} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0.000061035} + m_Pivot: {x: 1, y: 1} +--- !u!114 &551901365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551901363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 41457210} + m_HandleRect: {fileID: 41457209} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &551901366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551901363} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &551901367 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551901363} + m_CullTransparentMesh: 1 --- !u!1 &552375320 GameObject: m_ObjectHideFlags: 0 @@ -12229,6 +12820,82 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 555373788} m_CullTransparentMesh: 1 +--- !u!1 &555389603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 555389604} + - component: {fileID: 555389606} + - component: {fileID: 555389605} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &555389604 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 555389603} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2059420124} + m_Father: {fileID: 1177777398} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 78} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &555389605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 555389603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &555389606 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 555389603} + m_CullTransparentMesh: 1 --- !u!1 &558010759 GameObject: m_ObjectHideFlags: 0 @@ -12678,6 +13345,99 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 566999362} m_CullTransparentMesh: 1 +--- !u!1 &572765321 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 572765322} + - component: {fileID: 572765325} + - component: {fileID: 572765324} + - component: {fileID: 572765323} + m_Layer: 5 + m_Name: CurrentContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &572765322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 572765321} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000167, y: 1.0000167, z: 1.0000167} + m_Children: + - {fileID: 1177777398} + - {fileID: 621827469} + m_Father: {fileID: 529992456} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -49.99991} + m_SizeDelta: {x: -48, y: -148} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &572765323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 572765321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: db125c7de00668f4e98849d0aaf366d7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 1, g: 1, b: 1, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 0 +--- !u!114 &572765324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 572765321} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.9019608} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &572765325 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 572765321} + m_CullTransparentMesh: 1 --- !u!1 &573383256 GameObject: m_ObjectHideFlags: 0 @@ -13442,6 +14202,215 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: 0, y: 0, z: 0, w: 41.38} m_Softness: {x: 0, y: 0} +--- !u!1 &597773738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 597773739} + - component: {fileID: 597773741} + - component: {fileID: 597773740} + m_Layer: 5 + m_Name: Image (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &597773739 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597773738} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1336470762} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &597773740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597773738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.3529412} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &597773741 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 597773738} + m_CullTransparentMesh: 1 +--- !u!1 &600660492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 600660493} + - component: {fileID: 600660495} + - component: {fileID: 600660494} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &600660493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600660492} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1156519095} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.000061035156} + m_SizeDelta: {x: 1202, y: 69} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &600660494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600660492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Rating Screen + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 42 + m_fontSizeBase: 42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &600660495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600660492} + m_CullTransparentMesh: 1 --- !u!1 &606981305 GameObject: m_ObjectHideFlags: 0 @@ -13960,6 +14929,97 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 619942672} m_CullTransparentMesh: 1 +--- !u!1 &621827468 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 621827469} + - component: {fileID: 621827472} + - component: {fileID: 621827471} + - component: {fileID: 621827470} + m_Layer: 5 + m_Name: RemixFlavour + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &621827469 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621827468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1156519095} + - {fileID: 2122610458} + m_Father: {fileID: 572765322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &621827470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621827468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4dcd15958462e4e488a04ef094e7ffcb, type: 3} + m_Name: + m_EditorClassIdentifier: + cursorCheckbox: {fileID: 0} +--- !u!114 &621827471 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621827468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &621827472 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 621827468} + m_CullTransparentMesh: 1 --- !u!1 &626268481 GameObject: m_ObjectHideFlags: 0 @@ -14318,6 +15378,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 635134899} m_CullTransparentMesh: 1 +--- !u!1 &641594207 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 641594208} + - component: {fileID: 641594210} + - component: {fileID: 641594209} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &641594208 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 641594207} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 529992456} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 30, y: -25} + m_SizeDelta: {x: 730.58, y: 82.37} + m_Pivot: {x: 0, y: 1} +--- !u!114 &641594209 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 641594207} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Remix Properties + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 54.4 + m_fontSizeBase: 54.4 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &641594210 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 641594207} + m_CullTransparentMesh: 1 --- !u!1 &643814082 GameObject: m_ObjectHideFlags: 0 @@ -14770,6 +15964,114 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &673880750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 673880751} + - component: {fileID: 673880754} + - component: {fileID: 673880753} + - component: {fileID: 673880752} + m_Layer: 5 + m_Name: Options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &673880751 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673880750} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1063895374} + - {fileID: 460204129} + m_Father: {fileID: 1177777398} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -39.001007} + m_SizeDelta: {x: 0, y: -78.32001} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &673880752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673880750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1496522767} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 0 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 35 + m_Viewport: {fileID: 1063895374} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 460204130} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &673880753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673880750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &673880754 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 673880750} + m_CullTransparentMesh: 1 --- !u!1 &674573515 GameObject: m_ObjectHideFlags: 0 @@ -19607,7 +20909,7 @@ MonoBehaviour: m_HandleRect: {fileID: 1589389271} m_Direction: 2 m_Value: 1 - m_Size: 1 + m_Size: 0.99982846 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -20042,6 +21344,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 926134723} m_CullTransparentMesh: 1 +--- !u!1 &929282061 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 929282062} + - component: {fileID: 929282065} + - component: {fileID: 929282064} + - component: {fileID: 929282063} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &929282062 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929282061} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 231450550} + m_Father: {fileID: 2122610458} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &929282063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929282061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &929282064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929282061} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &929282065 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929282061} + m_CullTransparentMesh: 1 --- !u!1 &932211466 GameObject: m_ObjectHideFlags: 0 @@ -21069,6 +22461,127 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 967717798} m_CullTransparentMesh: 1 +--- !u!1 &971914989 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 971914990} + - component: {fileID: 971914993} + - component: {fileID: 971914992} + - component: {fileID: 971914991} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &971914990 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971914989} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1089381435} + m_Father: {fileID: 1336470762} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -38, y: -38} + m_SizeDelta: {x: 52, y: 52} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &971914991 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971914989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 971914992} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &971914992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971914989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &971914993 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971914989} + m_CullTransparentMesh: 1 --- !u!1 &975391004 GameObject: m_ObjectHideFlags: 0 @@ -23381,13 +24894,103 @@ RectTransform: - {fileID: 1466780685} - {fileID: 1497456600} m_Father: {fileID: 1791483803} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1063895373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1063895374} + - component: {fileID: 1063895377} + - component: {fileID: 1063895376} + - component: {fileID: 1063895375} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1063895374 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1063895373} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1496522767} + m_Father: {fileID: 673880751} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1063895375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1063895373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!114 &1063895376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1063895373} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1063895377 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1063895373} + m_CullTransparentMesh: 1 --- !u!1 &1071942424 GameObject: m_ObjectHideFlags: 0 @@ -23842,6 +25445,81 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &1089381434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1089381435} + - component: {fileID: 1089381437} + - component: {fileID: 1089381436} + m_Layer: 5 + m_Name: Graphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1089381435 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089381434} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0002741, y: 1.0002741, z: 1.0002741} + m_Children: [] + m_Father: {fileID: 971914990} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1089381436 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089381434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5019608, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 348825b5c77b9d143961119fc008e631, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1089381437 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089381434} + m_CullTransparentMesh: 1 --- !u!1 &1090036109 GameObject: m_ObjectHideFlags: 0 @@ -23874,7 +25552,7 @@ RectTransform: - {fileID: 1585542810} - {fileID: 151438064} m_Father: {fileID: 1791483803} - m_RootOrder: 10 + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -25188,7 +26866,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.9111} + m_AnchoredPosition: {x: 0, y: 129.91096} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -25288,6 +26966,82 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!1 &1156519094 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1156519095} + - component: {fileID: 1156519097} + - component: {fileID: 1156519096} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1156519095 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156519094} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 600660493} + m_Father: {fileID: 621827469} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 78} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1156519096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156519094} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1156519097 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1156519094} + m_CullTransparentMesh: 1 --- !u!1 &1161509768 GameObject: m_ObjectHideFlags: 0 @@ -25503,6 +27257,97 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1162156585} m_CullTransparentMesh: 1 +--- !u!1 &1177777397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1177777398} + - component: {fileID: 1177777401} + - component: {fileID: 1177777400} + - component: {fileID: 1177777399} + m_Layer: 5 + m_Name: RemixInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1177777398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1177777397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 555389604} + - {fileID: 673880751} + m_Father: {fileID: 572765322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1177777399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1177777397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4dcd15958462e4e488a04ef094e7ffcb, type: 3} + m_Name: + m_EditorClassIdentifier: + cursorCheckbox: {fileID: 0} +--- !u!114 &1177777400 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1177777397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1177777401 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1177777397} + m_CullTransparentMesh: 1 --- !u!1 &1182082593 GameObject: m_ObjectHideFlags: 0 @@ -27207,6 +29052,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1237900826} m_CullTransparentMesh: 1 +--- !u!1 &1247650910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1247650911} + - component: {fileID: 1247650913} + - component: {fileID: 1247650912} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1247650911 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247650910} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2068945731} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1247650912 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247650910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1247650913 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1247650910} + m_CullTransparentMesh: 1 --- !u!1 &1254178913 GameObject: m_ObjectHideFlags: 0 @@ -28977,6 +30897,153 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1308249139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1308249140} + - component: {fileID: 1308249144} + - component: {fileID: 1308249143} + - component: {fileID: 1308249142} + - component: {fileID: 1308249141} + m_Layer: 5 + m_Name: RemixInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1308249140 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308249139} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.999721, y: 0.999721, z: 0.999721} + m_Children: + - {fileID: 1759200430} + m_Father: {fileID: 1523610371} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 66, y: -25} + m_SizeDelta: {x: 132, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1308249141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308249139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72c5153eb89ce5d4eb324d72a9627670, type: 3} + m_Name: + m_EditorClassIdentifier: + Content: {fileID: 1177777397} +--- !u!114 &1308249142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308249139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1308249143} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1308249141} + m_TargetAssemblyTypeName: HeavenStudio.Editor.TabButton, Assembly-CSharp + m_MethodName: OnClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1308249143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308249139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1308249144 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1308249139} + m_CullTransparentMesh: 1 --- !u!1 &1310571273 GameObject: m_ObjectHideFlags: 0 @@ -29991,6 +32058,133 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1336281382 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1336281383} + - component: {fileID: 1336281385} + - component: {fileID: 1336281384} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1336281383 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336281382} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 529992456} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1336281384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336281382} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.6156863} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1336281385 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336281382} + m_CullTransparentMesh: 1 +--- !u!1 &1336470761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1336470762} + - component: {fileID: 1336470763} + m_Layer: 5 + m_Name: PropertiesDialog + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1336470762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336470761} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 597773739} + - {fileID: 529992456} + - {fileID: 971914990} + m_Father: {fileID: 1791483803} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1336470763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1336470761} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eedc1c2d03f4b22478ebb914e36371d8, type: 3} + m_Name: + m_EditorClassIdentifier: + propertiesMenu: {fileID: 1336470761} --- !u!1 &1337141464 GameObject: m_ObjectHideFlags: 0 @@ -32603,6 +34797,83 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1489888670} m_CullTransparentMesh: 0 +--- !u!1 &1496522766 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1496522767} + - component: {fileID: 1496522769} + - component: {fileID: 1496522768} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1496522767 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496522766} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1063895374} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 15} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1496522768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496522766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 10 + m_Bottom: 5 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1496522769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496522766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 --- !u!1 &1497456599 GameObject: m_ObjectHideFlags: 0 @@ -32724,6 +34995,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1497456599} m_CullTransparentMesh: 1 +--- !u!1 &1506447351 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1506447352} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1506447352 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506447351} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 41457209} + m_Father: {fileID: 551901364} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1507800755 GameObject: m_ObjectHideFlags: 0 @@ -33125,6 +35432,124 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1522319055} m_CullTransparentMesh: 1 +--- !u!1 &1523610370 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1523610371} + - component: {fileID: 1523610375} + - component: {fileID: 1523610374} + - component: {fileID: 1523610373} + - component: {fileID: 1523610372} + m_Layer: 5 + m_Name: Tabs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1523610371 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523610370} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000167, y: 1.0000167, z: 1.0000167} + m_Children: + - {fileID: 1308249140} + - {fileID: 483251986} + m_Father: {fileID: 529992456} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -124.099976} + m_SizeDelta: {x: 1202, y: 27.28003} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &1523610372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523610370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 113bf5aff4fe7ee408630b5e487451af, type: 3} + m_Name: + m_EditorClassIdentifier: + activeContent: {fileID: 1177777397} +--- !u!114 &1523610373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523610370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1523610374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523610370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1523610375 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1523610370} + m_CullTransparentMesh: 1 --- !u!1 &1527251879 GameObject: m_ObjectHideFlags: 0 @@ -37367,6 +39792,142 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cursorCheckbox: {fileID: 1150538408} +--- !u!1 &1759200429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1759200430} + - component: {fileID: 1759200432} + - component: {fileID: 1759200431} + m_Layer: 5 + m_Name: TabLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1759200430 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759200429} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1308249140} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.0000066757, y: 12.5} + m_SizeDelta: {x: 132, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1759200431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759200429} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Remix Info + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 418f45feed48b954e82f035d2262bdf6, type: 2} + m_sharedMaterial: {fileID: -9079830051944308670, guid: 418f45feed48b954e82f035d2262bdf6, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 8 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 8 + m_fontSizeMax: 18 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 2, y: 0, z: 2, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1759200432 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1759200429} + m_CullTransparentMesh: 1 --- !u!1 &1766883148 GameObject: m_ObjectHideFlags: 0 @@ -38373,6 +40934,7 @@ RectTransform: - {fileID: 1962376964} - {fileID: 683816222} - {fileID: 1265865541} + - {fileID: 1336470762} - {fileID: 1946344931} - {fileID: 1063174879} - {fileID: 1090036110} @@ -40414,6 +42976,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1926088904} m_CullTransparentMesh: 1 +--- !u!1 &1926864316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1926864317} + - component: {fileID: 1926864319} + - component: {fileID: 1926864318} + m_Layer: 5 + m_Name: Image (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1926864317 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926864316} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 529992456} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1926864318 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926864316} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f9232c079e126cd48a7344b23eaf42a5, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 0.5 +--- !u!222 &1926864319 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1926864316} + m_CullTransparentMesh: 1 --- !u!1 &1928361018 GameObject: m_ObjectHideFlags: 0 @@ -40632,7 +43269,7 @@ RectTransform: - {fileID: 2051557111} - {fileID: 1946352457} m_Father: {fileID: 1791483803} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -41032,6 +43669,140 @@ MonoBehaviour: heightInputField: {fileID: 1192611373} volSlider: {fileID: 390818399} volLabel: {fileID: 2031558985} +--- !u!1 &1956939035 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1956939036} + - component: {fileID: 1956939038} + - component: {fileID: 1956939037} + m_Layer: 5 + m_Name: TabLabel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1956939036 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956939035} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 483251986} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.0000066757, y: 12.5} + m_SizeDelta: {x: 132, y: 25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1956939037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956939035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Ratings + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 418f45feed48b954e82f035d2262bdf6, type: 2} + m_sharedMaterial: {fileID: -9079830051944308670, guid: 418f45feed48b954e82f035d2262bdf6, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 8 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 8 + m_fontSizeMax: 18 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 2, y: 0, z: 2, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1956939038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956939035} + m_CullTransparentMesh: 1 --- !u!1 &1962376963 GameObject: m_ObjectHideFlags: 0 @@ -43374,6 +46145,140 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -30, y: -30} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2059420123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2059420124} + - component: {fileID: 2059420126} + - component: {fileID: 2059420125} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2059420124 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059420123} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 555389604} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -0.000061035156} + m_SizeDelta: {x: 1202, y: 69} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2059420125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059420123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Remix Info + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 42 + m_fontSizeBase: 42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &2059420126 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059420123} + m_CullTransparentMesh: 1 --- !u!1 &2060027523 GameObject: m_ObjectHideFlags: 0 @@ -43866,6 +46771,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2067805742} m_CullTransparentMesh: 1 +--- !u!1 &2068945730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2068945731} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2068945731 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068945730} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1247650911} + m_Father: {fileID: 460204129} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &2079255987 GameObject: m_ObjectHideFlags: 0 @@ -44187,6 +47128,114 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -20, y: -20} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2122610457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2122610458} + - component: {fileID: 2122610461} + - component: {fileID: 2122610460} + - component: {fileID: 2122610459} + m_Layer: 5 + m_Name: Options + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2122610458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122610457} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 929282062} + - {fileID: 551901364} + m_Father: {fileID: 621827469} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -39.001007} + m_SizeDelta: {x: 0, y: -78.32001} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2122610459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122610457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 231450550} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 0 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 35 + m_Viewport: {fileID: 929282062} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 551901365} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2122610460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122610457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2122610461 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2122610457} + m_CullTransparentMesh: 1 --- !u!1 &2127582756 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 727ab4c1..699a94ca 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -29,10 +29,11 @@ namespace HeavenStudio // mapper set properties? (use this to flash the button) {"propertiesmodified", false}, + ////// CATEGORY 1: SONG INFO // general chart info {"remixtitle", "New Remix"}, // chart name {"remixauthor", "Your Name"}, // charter's name - {"remixlevel", 1}, // chart difficulty + {"remixlevel", 1}, // chart difficulty (maybe offer a suggestion but still have the mapper determine it) {"remixtempo", 120f}, // avg. chart tempo {"remixtags", ""}, // chart tags {"icontype", 0}, // chart icon (presets, custom - future) @@ -43,6 +44,7 @@ namespace HeavenStudio {"idolsong", "Song Name"}, // song name {"idolcredit", "Artist"}, // song artist + ////// CATEGORY 2: PROLOGUE AND EPILOGUE // chart prologue {"prologuetype", 0}, // prologue card animation (future) {"prologuecaption", "Remix"}, // prologue card sub-title (future) @@ -70,6 +72,7 @@ namespace HeavenStudio public List entities = new List(); public List tempoChanges = new List(); public List volumeChanges = new List(); + public List beatmapSections = new List(); public float firstBeatOffset; [Serializable] @@ -178,6 +181,20 @@ namespace HeavenStudio } } + [Serializable] + public class ChartSection : ICloneable + { + public float beat; + public bool startPerfect; + public string sectionName; + public bool isCheckpoint; // really don't think we need this but who knows + + public object Clone() + { + return this.MemberwiseClone(); + } + } + public dynamic this[string propertyName] { get diff --git a/Assets/Scripts/LevelEditor/DialogHelpers.meta b/Assets/Scripts/LevelEditor/DialogHelpers.meta new file mode 100644 index 00000000..3f0e1cc2 --- /dev/null +++ b/Assets/Scripts/LevelEditor/DialogHelpers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37f86271d7b215d48a41243e6b22ae5b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/TabButton.cs b/Assets/Scripts/LevelEditor/DialogHelpers/TabButton.cs similarity index 100% rename from Assets/Scripts/LevelEditor/SettingsDialog/TabButton.cs rename to Assets/Scripts/LevelEditor/DialogHelpers/TabButton.cs diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/TabButton.cs.meta b/Assets/Scripts/LevelEditor/DialogHelpers/TabButton.cs.meta similarity index 100% rename from Assets/Scripts/LevelEditor/SettingsDialog/TabButton.cs.meta rename to Assets/Scripts/LevelEditor/DialogHelpers/TabButton.cs.meta diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/TabsManager.cs b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs similarity index 100% rename from Assets/Scripts/LevelEditor/SettingsDialog/TabsManager.cs rename to Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/TabsManager.cs.meta b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs.meta similarity index 100% rename from Assets/Scripts/LevelEditor/SettingsDialog/TabsManager.cs.meta rename to Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs.meta diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog.meta new file mode 100644 index 00000000..aaf07173 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad016dbf1f5b3ef4cad714464aaec76a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs new file mode 100644 index 00000000..0c0c7edb --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using HeavenStudio.Editor.Track; + +using TMPro; + +namespace HeavenStudio.Editor +{ + public class RemixPropertiesDialog : MonoBehaviour + { + [SerializeField] private GameObject propertiesMenu; + + private void Start() {} + + public void SwitchSettingsDialog() + { + if(propertiesMenu.activeSelf) { + propertiesMenu.SetActive(false); + } else { + propertiesMenu.SetActive(true); + } + } + + private void Update() {} + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs.meta new file mode 100644 index 00000000..075b8395 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eedc1c2d03f4b22478ebb914e36371d8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs.meta new file mode 100644 index 00000000..5cafbd77 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 814063e92ed9584478db2112bd34ca75 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 2b4b7f0a735989115cc435a930525a0055736669 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 26 Aug 2022 23:43:01 -0400 Subject: [PATCH 17/27] make all dialogs inherit one base class - opening a new dialog closes the previous one --- Assets/Scenes/Editor.unity | 275 +++++++++++++++++- .../LevelEditor/DialogHelpers/Dialog.cs | 28 ++ .../LevelEditor/DialogHelpers/Dialog.cs.meta | 11 + Assets/Scripts/LevelEditor/Editor.cs | 12 +- .../NewRemixDialog/NewRemixDialog.cs | 15 +- .../RemixPropertiesDialog.cs | 17 +- .../SettingsDialog/SettingsDialog.cs | 16 +- .../LevelEditor/SnapDialog/SnapDialog.cs | 10 +- .../LevelEditor/TempoFinder/TempoFinder.cs | 10 +- .../Scripts/LevelEditor/Timeline/Timeline.cs | 2 +- 10 files changed, 345 insertions(+), 51 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs create mode 100644 Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index fdc614b1..88602962 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -289,7 +289,7 @@ RectTransform: m_Children: - {fileID: 1090919178} m_Father: {fileID: 202724642} - m_RootOrder: 10 + m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -4058,7 +4058,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -289.15002, y: 2} + m_AnchoredPosition: {x: -289.15, y: 2} m_SizeDelta: {x: -578.29, y: 49.92} m_Pivot: {x: 0.5, y: 0} --- !u!114 &156962255 @@ -5372,6 +5372,7 @@ RectTransform: - {fileID: 1271528577} - {fileID: 1478799965} - {fileID: 1201441976} + - {fileID: 285739499} - {fileID: 1055877578} - {fileID: 3236231} - {fileID: 528192060} @@ -7078,6 +7079,139 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_IsOn: 1 +--- !u!1 &285739498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 285739499} + - component: {fileID: 285739502} + - component: {fileID: 285739501} + - component: {fileID: 285739500} + m_Layer: 5 + m_Name: ChartParameters + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &285739499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285739498} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} + m_Children: + - {fileID: 646945866} + m_Father: {fileID: 202724642} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 295.7, y: 0} + m_SizeDelta: {x: 35, y: 35} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &285739500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285739498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.7490196, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 285739501} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1336470763} + m_TargetAssemblyTypeName: HeavenStudio.Editor.RemixPropertiesDialog, Assembly-CSharp + m_MethodName: SwitchPropertiesDialog + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &285739501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285739498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 10 +--- !u!222 &285739502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285739498} + m_CullTransparentMesh: 1 --- !u!1 &285804966 GameObject: m_ObjectHideFlags: 0 @@ -11700,7 +11834,7 @@ RectTransform: m_Children: - {fileID: 551314712} m_Father: {fileID: 202724642} - m_RootOrder: 11 + m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -15587,6 +15721,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 643814082} m_CullTransparentMesh: 1 +--- !u!1 &646945865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 646945866} + - component: {fileID: 646945868} + - component: {fileID: 646945867} + m_Layer: 5 + m_Name: Graphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &646945866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646945865} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 285739499} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 30, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &646945867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646945865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 05e0181d5d7f7144f9263d1ccca41112, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &646945868 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646945865} + m_CullTransparentMesh: 1 --- !u!1 &657727711 GameObject: m_ObjectHideFlags: 0 @@ -16645,7 +16854,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f32d53b1d58c64e41b71bd7520435169, type: 3} m_Name: m_EditorClassIdentifier: - snapSetter: {fileID: 683816221} + dialog: {fileID: 683816221} snapText: {fileID: 344865319} --- !u!1 &683953387 GameObject: @@ -20908,8 +21117,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 1 - m_Size: 0.99982846 + m_Value: 0 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -22543,7 +22752,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 971914992} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 1336470763} + m_TargetAssemblyTypeName: HeavenStudio.Editor.RemixPropertiesDialog, Assembly-CSharp + m_MethodName: SwitchPropertiesDialog + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &971914992 MonoBehaviour: m_ObjectHideFlags: 0 @@ -24491,11 +24712,11 @@ RectTransform: - {fileID: 837036037} - {fileID: 215482486} m_Father: {fileID: 202724642} - m_RootOrder: 9 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 295.7, y: 0} + m_AnchoredPosition: {x: 335.7, y: 0} m_SizeDelta: {x: 35, y: 35} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1055877579 @@ -24872,6 +25093,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1063174879} + - component: {fileID: 1063174880} m_Layer: 5 m_Name: DialogTemplate m_TagString: Untagged @@ -24901,6 +25123,19 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1063174880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1063174878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e317d304732b562489c993ae93ce2265, type: 3} + m_Name: + m_EditorClassIdentifier: + dialog: {fileID: 1063174878} --- !u!1 &1063895373 GameObject: m_ObjectHideFlags: 0 @@ -25697,7 +25932,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -408.98004, y: -17} + m_AnchoredPosition: {x: -408.97998, y: -17} m_SizeDelta: {x: -817.96, y: -46.29} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1118147045 @@ -26866,7 +27101,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91096} + m_AnchoredPosition: {x: 0, y: 129.89534} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -29343,7 +29578,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b489f3aef16a65499f9596abda39c35, type: 3} m_Name: m_EditorClassIdentifier: - tempoFinder: {fileID: 1265865540} + dialog: {fileID: 1265865540} bpmText: {fileID: 565525426} --- !u!1 &1267250656 GameObject: @@ -32184,7 +32419,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: eedc1c2d03f4b22478ebb914e36371d8, type: 3} m_Name: m_EditorClassIdentifier: - propertiesMenu: {fileID: 1336470761} + dialog: {fileID: 1336470761} --- !u!1 &1337141464 GameObject: m_ObjectHideFlags: 0 @@ -33164,13 +33399,21 @@ MonoBehaviour: FullScreenBTN: {fileID: 151246938} TempoFinderBTN: {fileID: 1478799966} SnapDiagBTN: {fileID: 1201441977} + ChartParamBTN: {fileID: 285739500} EditorThemeBTN: {fileID: 528192061} EditorSettingsBTN: {fileID: 3236232} + Dialogs: + - {fileID: 1962376965} + - {fileID: 683816223} + - {fileID: 1265865542} + - {fileID: 1336470763} + - {fileID: 1946344932} tooltipText: {fileID: 1196204504} fullscreen: 0 discordDuringTesting: 0 canSelect: 1 editingInputField: 0 + inAuthorativeMenu: 0 isCursorEnabled: 1 --- !u!114 &1423699438 MonoBehaviour: @@ -41448,7 +41691,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -84.99005} + m_AnchoredPosition: {x: 0, y: -84.99002} m_SizeDelta: {x: 320, y: -113.92} m_Pivot: {x: 0, y: 1} --- !u!1 &1852819572 @@ -43288,7 +43531,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d82cc04699de2e54483ca0e0468d9ed2, type: 3} m_Name: m_EditorClassIdentifier: - settingsMenu: {fileID: 1946344930} + dialog: {fileID: 1946344930} --- !u!1 &1946352456 GameObject: m_ObjectHideFlags: 0 @@ -43853,7 +44096,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5e1b2b36751952147bb6126f9ffd6086, type: 3} m_Name: m_EditorClassIdentifier: - diag: {fileID: 1962376963} + dialog: {fileID: 1962376963} --- !u!1 &1964271230 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs b/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs new file mode 100644 index 00000000..ad446629 --- /dev/null +++ b/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using HeavenStudio.Editor.Track; + +using TMPro; + +namespace HeavenStudio.Editor +{ + public class Dialog : MonoBehaviour + { + [SerializeField] protected GameObject dialog; + public void ForceState(bool onoff = false) + { + Editor.instance.canSelect = onoff; + Editor.instance.inAuthorativeMenu = !onoff; + dialog.SetActive(onoff); + } + + public static void ResetAllDialogs() + { + foreach(var dialog in FindObjectsOfType()) + { + dialog.ForceState(false); + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs.meta b/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs.meta new file mode 100644 index 00000000..5d6f17e5 --- /dev/null +++ b/Assets/Scripts/LevelEditor/DialogHelpers/Dialog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e317d304732b562489c993ae93ce2265 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index d2fc6e23..9cbd1bfd 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -52,10 +52,14 @@ namespace HeavenStudio.Editor [SerializeField] private Button FullScreenBTN; [SerializeField] private Button TempoFinderBTN; [SerializeField] private Button SnapDiagBTN; + [SerializeField] private Button ChartParamBTN; [SerializeField] private Button EditorThemeBTN; [SerializeField] private Button EditorSettingsBTN; + [Header("Dialogs")] + [SerializeField] private Dialog[] Dialogs; + [Header("Tooltip")] public TMP_Text tooltipText; @@ -68,8 +72,11 @@ namespace HeavenStudio.Editor public bool discordDuringTesting = false; public bool canSelect = true; public bool editingInputField = false; + public bool inAuthorativeMenu = false; public bool isCursorEnabled = true; + public bool isShortcutsEnabled { get { return (!inAuthorativeMenu) && (!editingInputField); } } + private byte[] MusicBytes; public static Editor instance { get; private set; } @@ -111,6 +118,7 @@ namespace HeavenStudio.Editor Tooltip.AddTooltip(FullScreenBTN.gameObject, "Preview [Tab]"); Tooltip.AddTooltip(TempoFinderBTN.gameObject, "Tempo Finder"); Tooltip.AddTooltip(SnapDiagBTN.gameObject, "Snap Settings"); + Tooltip.AddTooltip(ChartParamBTN.gameObject, "Remix Properties"); Tooltip.AddTooltip(EditorSettingsBTN.gameObject, "Editor Settings [Ctrl+Shift+O]"); UpdateEditorStatus(true); @@ -119,7 +127,7 @@ namespace HeavenStudio.Editor public void LateUpdate() { #region Keyboard Shortcuts - if (!editingInputField) + if (isShortcutsEnabled) { if (Input.GetKeyDown(KeyCode.Tab)) { @@ -160,7 +168,7 @@ namespace HeavenStudio.Editor { if (Input.GetKeyDown(KeyCode.N)) { - NewRemix(); + NewBTN.onClick.Invoke(); } else if (Input.GetKeyDown(KeyCode.O)) { diff --git a/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs index 6090c4cc..d3cf895e 100644 --- a/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs +++ b/Assets/Scripts/LevelEditor/NewRemixDialog/NewRemixDialog.cs @@ -4,24 +4,23 @@ using UnityEngine; using HeavenStudio.Editor; -public class NewRemixDialog : MonoBehaviour +public class NewRemixDialog : Dialog { - [SerializeField] private GameObject diag; - public void SwitchNewDialog() { - if(diag.activeSelf) { - diag.SetActive(false); + if(dialog.activeSelf) { + dialog.SetActive(false); } else { - diag.SetActive(true); + ResetAllDialogs(); + dialog.SetActive(true); } } public void Confirm() { Editor.instance.NewRemix(); - if(diag.activeSelf) { - diag.SetActive(false); + if(dialog.activeSelf) { + dialog.SetActive(false); } } } diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index 0c0c7edb..fb094fe1 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -7,18 +7,21 @@ using TMPro; namespace HeavenStudio.Editor { - public class RemixPropertiesDialog : MonoBehaviour + public class RemixPropertiesDialog : Dialog { - [SerializeField] private GameObject propertiesMenu; - private void Start() {} - public void SwitchSettingsDialog() + public void SwitchPropertiesDialog() { - if(propertiesMenu.activeSelf) { - propertiesMenu.SetActive(false); + if(dialog.activeSelf) { + Editor.instance.canSelect = true; + Editor.instance.inAuthorativeMenu = false; + dialog.SetActive(false); } else { - propertiesMenu.SetActive(true); + ResetAllDialogs(); + Editor.instance.canSelect = false; + Editor.instance.inAuthorativeMenu = true; + dialog.SetActive(true); } } diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs b/Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs index 236a1433..a9c5e2f0 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/SettingsDialog.cs @@ -7,19 +7,21 @@ using TMPro; namespace HeavenStudio.Editor { - public class SettingsDialog : MonoBehaviour + public class SettingsDialog : Dialog { - [SerializeField] private GameObject settingsMenu; - //this may all be moved to a different script in the future - private void Start() {} public void SwitchSettingsDialog() { - if(settingsMenu.activeSelf) { - settingsMenu.SetActive(false); + if(dialog.activeSelf) { + Editor.instance.canSelect = true; + Editor.instance.inAuthorativeMenu = false; + dialog.SetActive(false); } else { - settingsMenu.SetActive(true); + ResetAllDialogs(); + Editor.instance.canSelect = false; + Editor.instance.inAuthorativeMenu = true; + dialog.SetActive(true); } } diff --git a/Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs b/Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs index a51b852a..98001e1a 100644 --- a/Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs +++ b/Assets/Scripts/LevelEditor/SnapDialog/SnapDialog.cs @@ -7,9 +7,8 @@ using TMPro; namespace HeavenStudio.Editor { - public class SnapDialog : MonoBehaviour + public class SnapDialog : Dialog { - [SerializeField] private GameObject snapSetter; [SerializeField] private TMP_Text snapText; private Timeline timeline; @@ -22,10 +21,11 @@ namespace HeavenStudio.Editor public void SwitchSnapDialog() { - if(snapSetter.activeSelf) { - snapSetter.SetActive(false); + if(dialog.activeSelf) { + dialog.SetActive(false); } else { - snapSetter.SetActive(true); + ResetAllDialogs(); + dialog.SetActive(true); } } diff --git a/Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs b/Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs index 459c6c5c..efefdbfe 100644 --- a/Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs +++ b/Assets/Scripts/LevelEditor/TempoFinder/TempoFinder.cs @@ -4,9 +4,8 @@ using UnityEngine; namespace HeavenStudio.Editor { - public class TempoFinder : MonoBehaviour + public class TempoFinder : Dialog { - [SerializeField] private GameObject tempoFinder; private bool pressed; private float timePressed; [SerializeField] private BPMText bpmText; @@ -17,12 +16,13 @@ namespace HeavenStudio.Editor } public void SwitchTempoDialog() { - if(tempoFinder.activeSelf) { - tempoFinder.SetActive(false); + if(dialog.activeSelf) { + dialog.SetActive(false); timePressed = 0; bpmText.ResetText(); } else { - tempoFinder.SetActive(true); + ResetAllDialogs(); + dialog.SetActive(true); } } public void TapBPM() diff --git a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs index fd04b965..de7dc326 100644 --- a/Assets/Scripts/LevelEditor/Timeline/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline/Timeline.cs @@ -273,7 +273,7 @@ namespace HeavenStudio.Editor.Track SliderControl(); #region Keyboard Shortcuts - if (!userIsEditingInputField) + if ((!userIsEditingInputField) && Editor.instance.isShortcutsEnabled) { if (Input.GetKeyDown(KeyCode.Space)) From b19afcd2e252aab114d014bb6fb7afefa990613b Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 27 Aug 2022 00:20:56 -0400 Subject: [PATCH 18/27] prepare automated property interface creation --- Assets/Scenes/Editor.unity | 4662 ++++++++++++++++- .../Tabs/ChartInfoProperties.cs | 92 + .../Tabs/ChartInfoProperties.cs.meta | 11 + 3 files changed, 4761 insertions(+), 4 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 88602962..a7774f00 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -123,6 +123,81 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &327024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 327025} + - component: {fileID: 327027} + - component: {fileID: 327026} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &327025 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327024} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1616729097} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &327026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327024} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &327027 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327024} + m_CullTransparentMesh: 1 --- !u!1 &2873786 GameObject: m_ObjectHideFlags: 0 @@ -1013,6 +1088,81 @@ SortingGroup: m_SortingLayerID: 610346305 m_SortingLayer: 1 m_SortingOrder: 0 +--- !u!1 &29958226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 29958227} + - component: {fileID: 29958229} + - component: {fileID: 29958228} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &29958227 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29958226} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1695786879} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &29958228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29958226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &29958229 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29958226} + m_CullTransparentMesh: 1 --- !u!1 &35054571 GameObject: m_ObjectHideFlags: 0 @@ -1470,6 +1620,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 51579091} m_CullTransparentMesh: 1 +--- !u!1 &54667930 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 54667931} + - component: {fileID: 54667933} + - component: {fileID: 54667932} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &54667931 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54667930} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1616729097} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &54667932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54667930} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &54667933 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 54667930} + m_CullTransparentMesh: 1 --- !u!1 &55605601 GameObject: m_ObjectHideFlags: 0 @@ -1852,6 +2077,57 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 58525995} m_CullTransparentMesh: 1 +--- !u!1 &73172994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 73172995} + - component: {fileID: 73172996} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &73172995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73172994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1352111392} + m_Father: {fileID: 1242247479} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73172996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73172994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} --- !u!1 &78496949 GameObject: m_ObjectHideFlags: 0 @@ -3365,6 +3641,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 118020393} m_CullTransparentMesh: 1 +--- !u!1 &120210502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 120210503} + - component: {fileID: 120210505} + - component: {fileID: 120210504} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &120210503 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 120210502} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1945789958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &120210504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 120210502} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &120210505 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 120210502} + m_CullTransparentMesh: 1 --- !u!1 &121871279 GameObject: m_ObjectHideFlags: 0 @@ -5422,6 +5773,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 202724641} m_CullTransparentMesh: 1 +--- !u!1 &203975963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 203975964} + - component: {fileID: 203975966} + - component: {fileID: 203975965} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &203975964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203975963} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 330515827} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &203975965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203975963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &203975966 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203975963} + m_CullTransparentMesh: 1 --- !u!1 &205810614 GameObject: m_ObjectHideFlags: 0 @@ -5893,6 +6378,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 225003583} m_CullTransparentMesh: 1 +--- !u!1 &229046290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 229046291} + - component: {fileID: 229046293} + - component: {fileID: 229046292} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &229046291 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229046290} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 651594805} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.8} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &229046292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229046290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "0\n\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_sharedMaterial: {fileID: -5829441969153149921, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &229046293 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 229046290} + m_CullTransparentMesh: 1 --- !u!1 &231450549 GameObject: m_ObjectHideFlags: 0 @@ -7348,6 +7967,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 298463366} m_CullTransparentMesh: 0 +--- !u!1 &304231938 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 304231939} + - component: {fileID: 304231942} + - component: {fileID: 304231941} + - component: {fileID: 304231940} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &304231939 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304231938} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 821957890} + m_Father: {fileID: 1902007871} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &304231940 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304231938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &304231941 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304231938} + m_CullTransparentMesh: 1 +--- !u!114 &304231942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 304231938} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 --- !u!1 &307892646 GameObject: m_ObjectHideFlags: 0 @@ -7866,6 +8575,139 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 321288859} m_CullTransparentMesh: 1 +--- !u!1 &330515826 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330515827} + - component: {fileID: 330515830} + - component: {fileID: 330515829} + - component: {fileID: 330515828} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &330515827 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330515826} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 203975964} + - {fileID: 2133056415} + - {fileID: 1902007871} + m_Father: {fileID: 728113666} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 139, y: -5} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0, y: 1} +--- !u!114 &330515828 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330515826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 330515829} + m_Template: {fileID: 1902007871} + m_CaptionText: {fileID: 203975965} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 664831331} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!114 &330515829 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330515826} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &330515830 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330515826} + m_CullTransparentMesh: 1 --- !u!1 &331046303 GameObject: m_ObjectHideFlags: 0 @@ -11133,6 +11975,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 483251985} m_CullTransparentMesh: 1 +--- !u!1 &494449605 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 494449606} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &494449606 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 494449605} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 584155193} + m_Father: {fileID: 1468840905} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -4.999939, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &499528697 GameObject: m_ObjectHideFlags: 0 @@ -11342,6 +12220,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 501830975} m_CullTransparentMesh: 1 +--- !u!1 &506932088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 506932089} + - component: {fileID: 506932091} + - component: {fileID: 506932090} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &506932089 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506932088} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 937032843} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -40} + m_SizeDelta: {x: 134, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &506932090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506932088} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'String + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.1 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &506932091 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506932088} + m_CullTransparentMesh: 1 --- !u!1 &508577582 GameObject: m_ObjectHideFlags: 0 @@ -13117,6 +14131,140 @@ MonoBehaviour: m_EditorClassIdentifier: m_AspectMode: 3 m_AspectRatio: 1.7769846 +--- !u!1 &564782387 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 564782388} + - component: {fileID: 564782390} + - component: {fileID: 564782389} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &564782388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564782387} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} + m_Children: [] + m_Father: {fileID: 1651196875} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 134, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &564782389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564782387} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Color + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.1 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &564782390 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 564782387} + m_CullTransparentMesh: 1 --- !u!1 &565215273 GameObject: m_ObjectHideFlags: 0 @@ -13511,6 +14659,7 @@ RectTransform: m_Children: - {fileID: 1177777398} - {fileID: 621827469} + - {fileID: 1776319213} m_Father: {fileID: 529992456} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -13774,6 +14923,57 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: -8, y: -5, z: -8, w: -5} m_Softness: {x: 0, y: 0} +--- !u!1 &576411626 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 576411627} + - component: {fileID: 576411628} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &576411627 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576411626} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1897965701} + m_Father: {fileID: 2094676609} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.4999771} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &576411628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 576411626} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} --- !u!1 &580861937 GameObject: m_ObjectHideFlags: 0 @@ -13849,6 +15049,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 580861937} m_CullTransparentMesh: 1 +--- !u!1 &584155192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 584155193} + - component: {fileID: 584155195} + - component: {fileID: 584155194} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &584155193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584155192} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 494449606} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &584155194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584155192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &584155195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 584155192} + m_CullTransparentMesh: 1 --- !u!1 &584527986 GameObject: m_ObjectHideFlags: 0 @@ -14151,6 +15426,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 587260877} m_CullTransparentMesh: 1 +--- !u!1 &588058733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 588058734} + - component: {fileID: 588058736} + - component: {fileID: 588058735} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &588058734 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 588058733} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1468840905} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &588058735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 588058733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &588058736 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 588058733} + m_CullTransparentMesh: 1 --- !u!1 &589585544 GameObject: m_ObjectHideFlags: 0 @@ -15796,6 +17146,57 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 646945865} m_CullTransparentMesh: 1 +--- !u!1 &651594804 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 651594805} + - component: {fileID: 651594806} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &651594805 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651594804} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 229046291} + m_Father: {fileID: 1107362315} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &651594806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 651594804} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} --- !u!1 &657727711 GameObject: m_ObjectHideFlags: 0 @@ -16077,6 +17478,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 663306161} m_CullTransparentMesh: 1 +--- !u!1 &664831330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 664831333} + - component: {fileID: 664831332} + - component: {fileID: 664831331} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &664831331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664831330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Option A + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_sharedMaterial: {fileID: -212896991529246517, guid: 35949c950a936b744936efd75ae436ea, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &664831332 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664831330} + m_CullTransparentMesh: 1 +--- !u!224 &664831333 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 664831330} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1616729097} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 5, y: -0.5} + m_SizeDelta: {x: -30, y: -3} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &666273483 GameObject: m_ObjectHideFlags: 0 @@ -17728,6 +19263,87 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 725123776} m_CullTransparentMesh: 1 +--- !u!1 &728113665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 728113666} + - component: {fileID: 728113668} + - component: {fileID: 728113667} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &728113666 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728113665} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_Children: + - {fileID: 1516873910} + - {fileID: 330515827} + m_Father: {fileID: 1776319213} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -31.000061, y: -25.215256} + m_SizeDelta: {x: 1000, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &728113667 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728113665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &728113668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 728113665} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8ada001011e54c74b87c04d7186d5f3c, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 1516873911} + parameterManager: {fileID: 0} + propertyName: + dropdown: {fileID: 330515828} --- !u!1 &731547638 GameObject: m_ObjectHideFlags: 0 @@ -19402,6 +21018,89 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 793382140} m_CullTransparentMesh: 1 +--- !u!1 &797336683 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 797336684} + - component: {fileID: 797336686} + - component: {fileID: 797336685} + m_Layer: 5 + m_Name: Number + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &797336684 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 797336683} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_Children: + - {fileID: 1972054042} + - {fileID: 1107362315} + - {fileID: 1468840905} + m_Father: {fileID: 1776319213} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 51.5, y: 112.784744} + m_SizeDelta: {x: 1165, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &797336685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 797336683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &797336686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 797336683} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e9ad350a96f5644dbb1e4686a6bcaed, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 1972054043} + parameterManager: {fileID: 0} + propertyName: + slider: {fileID: 1468840906} + inputField: {fileID: 1107362316} --- !u!1 &798021448 GameObject: m_ObjectHideFlags: 0 @@ -19555,6 +21254,140 @@ MonoBehaviour: m_EditorClassIdentifier: m_Padding: {x: 0, y: 0, z: 0, w: 0} m_Softness: {x: 0, y: 0} +--- !u!1 &798238753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 798238754} + - component: {fileID: 798238756} + - component: {fileID: 798238755} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &798238754 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798238753} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2083473858} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 134, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &798238755 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798238753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Boolean + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.1 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &798238756 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798238753} + m_CullTransparentMesh: 1 --- !u!1 &811580414 GameObject: m_ObjectHideFlags: 0 @@ -19809,6 +21642,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 820032004} m_CullTransparentMesh: 1 +--- !u!1 &821957889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 821957890} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &821957890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 821957889} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1616729097} + m_Father: {fileID: 304231939} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} --- !u!1 &829406322 GameObject: m_ObjectHideFlags: 0 @@ -20532,6 +22401,96 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 841081095} m_CullTransparentMesh: 1 +--- !u!1 &845154046 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 845154050} + - component: {fileID: 845154049} + - component: {fileID: 845154048} + - component: {fileID: 845154047} + m_Layer: 5 + m_Name: Color picker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &845154047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845154046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af3ff511a986a5c4e8dc1a7939e7b981, type: 3} + m_Name: + m_EditorClassIdentifier: + colorPickerShader: {fileID: 0} + image: {fileID: 845154048} +--- !u!114 &845154048 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845154046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 8a6d493ef83c61d45b80f5a22a814173, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &845154049 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845154046} + m_CullTransparentMesh: 0 +--- !u!224 &845154050 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845154046} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1530804670} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.0024414062, y: -14.7400055} + m_SizeDelta: {x: -0.01, y: -36.71} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &862087031 GameObject: m_ObjectHideFlags: 0 @@ -21928,6 +23887,87 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 935391419} m_CullTransparentMesh: 1 +--- !u!1 &937032842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 937032843} + - component: {fileID: 937032845} + - component: {fileID: 937032844} + m_Layer: 5 + m_Name: String + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &937032843 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937032842} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_Children: + - {fileID: 506932089} + - {fileID: 2094676609} + m_Father: {fileID: 1776319213} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -31.000061, y: -91.21527} + m_SizeDelta: {x: 1000, y: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &937032844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937032842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 3 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &937032845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937032842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01fcc0bb14adee46a4869c1c009850e, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 506932090} + parameterManager: {fileID: 0} + propertyName: + inputFieldString: {fileID: 2094676610} --- !u!1 &947065509 GameObject: m_ObjectHideFlags: 0 @@ -25822,6 +27862,81 @@ CanvasGroup: m_Interactable: 0 m_BlocksRaycasts: 0 m_IgnoreParentGroups: 0 +--- !u!1 &1090402347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1090402348} + - component: {fileID: 1090402350} + - component: {fileID: 1090402349} + m_Layer: 5 + m_Name: Pointer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1090402348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090402347} + m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1530804670} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -111.91, y: 85.701} + m_SizeDelta: {x: 27.82, y: 21.592} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1090402349 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090402347} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.18823531, g: 0.18823531, b: 0.18823531, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: e3b85a6fda50d2343a8dfb2fc70c2b32, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1090402350 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090402347} + m_CullTransparentMesh: 1 --- !u!1 &1090919177 GameObject: m_ObjectHideFlags: 0 @@ -25897,6 +28012,183 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1090919177} m_CullTransparentMesh: 1 +--- !u!1 &1107362314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1107362315} + - component: {fileID: 1107362318} + - component: {fileID: 1107362317} + - component: {fileID: 1107362316} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1107362315 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107362314} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 651594805} + m_Father: {fileID: 797336684} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 137.66667, y: -20} + m_SizeDelta: {x: 70, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1107362316 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107362314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1107362317} + m_TextViewport: {fileID: 651594805} + m_TextComponent: {fileID: 229046292} + m_Placeholder: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 2 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 4 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 2 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: '0 + +' + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &1107362317 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107362314} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1107362318 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1107362314} + m_CullTransparentMesh: 1 --- !u!1 &1110073994 GameObject: m_ObjectHideFlags: 0 @@ -26537,6 +28829,278 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1144123704} m_CullTransparentMesh: 1 +--- !u!1 &1144931392 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1144931393} + - component: {fileID: 1144931397} + - component: {fileID: 1144931395} + - component: {fileID: 1144931396} + - component: {fileID: 1144931394} + m_Layer: 5 + m_Name: ColorBTN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1144931393 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144931392} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1530804670} + m_Father: {fileID: 1651196875} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 139, y: -5} + m_SizeDelta: {x: 100, y: 30} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1144931394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144931392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c2c42ee235f17049ab3792499eccc59, type: 3} + m_Name: + m_EditorClassIdentifier: + previewGraphic: {fileID: 1144931395} + colorPicker: {fileID: 845154047} + hex: {fileID: 1242247480} +--- !u!114 &1144931395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144931392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1144931396 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144931392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1144931395} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!222 &1144931397 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144931392} + m_CullTransparentMesh: 1 +--- !u!1 &1148215913 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1148215914} + - component: {fileID: 1148215916} + - component: {fileID: 1148215915} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1148215914 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148215913} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1242247479} + m_Father: {fileID: 1530804670} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 10, y: -8} + m_SizeDelta: {x: -15, y: 23.2} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1148215915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148215913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '#' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 22.9 + m_fontSizeBase: 22.9 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1148215916 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1148215913} + m_CullTransparentMesh: 1 --- !u!1 &1148572829 GameObject: m_ObjectHideFlags: 0 @@ -26761,6 +29325,42 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1149103344} m_CullTransparentMesh: 1 +--- !u!1 &1150057310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1150057311} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1150057311 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1150057310} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1912411995} + m_Father: {fileID: 2139386298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1150148744 GameObject: m_ObjectHideFlags: 0 @@ -27101,7 +29701,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.89534} + m_AnchoredPosition: {x: 0, y: 129.89537} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -27541,10 +30141,17 @@ MonoBehaviour: m_GameObject: {fileID: 1177777397} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4dcd15958462e4e488a04ef094e7ffcb, type: 3} + m_Script: {fileID: 11500000, guid: 4567e0acf98a9ef48b747da3b836a1a2, type: 3} m_Name: m_EditorClassIdentifier: - cursorCheckbox: {fileID: 0} + propertyHolder: {fileID: 1496522766} + propertyNames: [] + IntegerP: {fileID: 797336683} + FloatP: {fileID: 797336683} + BooleanP: {fileID: 2083473857} + DropdownP: {fileID: 728113665} + ColorP: {fileID: 1651196874} + StringP: {fileID: 937032842} --- !u!114 &1177777400 MonoBehaviour: m_ObjectHideFlags: 0 @@ -29287,6 +31894,193 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1237900826} m_CullTransparentMesh: 1 +--- !u!1 &1242247478 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1242247479} + - component: {fileID: 1242247482} + - component: {fileID: 1242247481} + - component: {fileID: 1242247480} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1242247479 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242247478} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 73172995} + m_Father: {fileID: 1148215914} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 52.200005, y: 0.0000076293945} + m_SizeDelta: {x: 68.973, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1242247480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242247478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1242247481} + m_TextViewport: {fileID: 73172995} + m_TextComponent: {fileID: 1352111393} + m_Placeholder: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1144931394} + m_TargetAssemblyTypeName: ColorPreview, Assembly-CSharp-firstpass + m_MethodName: SetColorFromTMP + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: FFFFFF + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &1242247481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242247478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1242247482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1242247478} + m_CullTransparentMesh: 1 --- !u!1 &1247650910 GameObject: m_ObjectHideFlags: 0 @@ -32778,6 +35572,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1345846029} m_CullTransparentMesh: 1 +--- !u!1 &1352111391 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1352111392} + - component: {fileID: 1352111394} + - component: {fileID: 1352111393} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1352111392 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352111391} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 73172995} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1352111393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352111391} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "FFFFFF\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_sharedMaterial: {fileID: -5829441969153149921, guid: c2df694f599b22b42817910ff570a9df, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1352111394 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352111391} + m_CullTransparentMesh: 1 --- !u!1 &1359502640 GameObject: m_ObjectHideFlags: 0 @@ -34606,6 +37534,96 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -30, y: -30} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1468840904 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1468840905} + - component: {fileID: 1468840906} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1468840905 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468840904} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 588058734} + - {fileID: 494449606} + - {fileID: 1945789958} + m_Father: {fileID: 797336684} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 686.3334, y: -20} + m_SizeDelta: {x: 950, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1468840906 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468840904} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 120210504} + m_FillRect: {fileID: 584155193} + m_HandleRect: {fileID: 120210503} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 1 + m_Value: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1474986787 GameObject: m_ObjectHideFlags: 0 @@ -35095,7 +38113,7 @@ MonoBehaviour: m_Top: 10 m_Bottom: 5 m_ChildAlignment: 0 - m_Spacing: 0 + m_Spacing: 6 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 m_ChildControlWidth: 0 @@ -35540,6 +38558,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1511927530} m_CullTransparentMesh: 1 +--- !u!1 &1516873909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1516873910} + - component: {fileID: 1516873912} + - component: {fileID: 1516873911} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1516873910 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516873909} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798} + m_Children: [] + m_Father: {fileID: 728113666} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 134, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1516873911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516873909} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Dropdown + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 29.3 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1516873912 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516873909} + m_CullTransparentMesh: 1 --- !u!1 &1522319055 GameObject: m_ObjectHideFlags: 0 @@ -35941,6 +39093,138 @@ MonoBehaviour: m_EditorClassIdentifier: snap: 1 count: 0 +--- !u!1 &1530804669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1530804670} + - component: {fileID: 1530804675} + - component: {fileID: 1530804674} + - component: {fileID: 1530804673} + - component: {fileID: 1530804672} + - component: {fileID: 1530804671} + m_Layer: 5 + m_Name: Table + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1530804670 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1090402348} + - {fileID: 845154050} + - {fileID: 1148215914} + m_Father: {fileID: 1144931393} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 224, y: 8} + m_SizeDelta: {x: 216, y: 216} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1530804671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c29b4f68c2b2e3849af4ab850c275cea, type: 3} + m_Name: + m_EditorClassIdentifier: + eventParameterManager: {fileID: 830452354} +--- !u!114 &1530804672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &1530804673 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 1 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 610346305 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1530804674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.1981132, g: 0.1981132, b: 0.1981132, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1530804675 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530804669} + m_CullTransparentMesh: 1 --- !u!1 &1530957817 GameObject: m_ObjectHideFlags: 0 @@ -37860,6 +41144,93 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1613403251} m_CullTransparentMesh: 1 +--- !u!1 &1616729096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1616729097} + - component: {fileID: 1616729098} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1616729097 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616729096} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 54667931} + - {fileID: 327025} + - {fileID: 664831333} + m_Father: {fileID: 821957890} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1616729098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1616729096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 54667932} + toggleTransition: 1 + graphic: {fileID: 327026} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &1620609858 GameObject: m_ObjectHideFlags: 0 @@ -38172,6 +41543,90 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1649292125} m_CullTransparentMesh: 1 +--- !u!1 &1651196874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1651196875} + - component: {fileID: 1651196877} + - component: {fileID: 1651196876} + m_Layer: 5 + m_Name: Color + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1651196875 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651196874} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_Children: + - {fileID: 564782388} + - {fileID: 1144931393} + m_Father: {fileID: 1776319213} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -31.000061, y: 20.784744} + m_SizeDelta: {x: 1000, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1651196876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651196874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 5 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1651196877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1651196874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1c576a0586b70d4395de537078023d5, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 564782389} + parameterManager: {fileID: 0} + propertyName: + ColorBTN: {fileID: 1144931396} + ColorTable: {fileID: 1530804670} + colorTableActive: 0 + colorPreview: {fileID: 1144931394} --- !u!1 &1654793130 GameObject: m_ObjectHideFlags: 0 @@ -38974,6 +42429,82 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1695786878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1695786879} + - component: {fileID: 1695786881} + - component: {fileID: 1695786880} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1695786879 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1695786878} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 29958227} + m_Father: {fileID: 2086758091} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1695786880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1695786878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1695786881 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1695786878} + m_CullTransparentMesh: 1 --- !u!1 &1700641149 GameObject: m_ObjectHideFlags: 0 @@ -40689,6 +44220,46 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1776034726} m_CullTransparentMesh: 1 +--- !u!1 &1776319212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1776319213} + m_Layer: 5 + m_Name: Properties + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1776319213 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776319212} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 797336684} + - {fileID: 2083473858} + - {fileID: 1651196875} + - {fileID: 728113666} + - {fileID: 937032843} + m_Father: {fileID: 572765322} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1778801846 GameObject: m_ObjectHideFlags: 0 @@ -42436,6 +46007,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1897664152} m_CullTransparentMesh: 1 +--- !u!1 &1897965700 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1897965701} + - component: {fileID: 1897965703} + - component: {fileID: 1897965702} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1897965701 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1897965700} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 576411627} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1897965702 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1897965700} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "AWWWWWWW BWWWWWWW\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 0 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1897965703 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1897965700} + m_CullTransparentMesh: 1 --- !u!1 &1899782476 GameObject: m_ObjectHideFlags: 0 @@ -42569,6 +46274,168 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1899782476} m_CullTransparentMesh: 1 +--- !u!1 &1902007870 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1902007871} + - component: {fileID: 1902007877} + - component: {fileID: 1902007876} + - component: {fileID: 1902007875} + - component: {fileID: 1902007874} + - component: {fileID: 1902007873} + - component: {fileID: 1902007872} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1902007871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 304231939} + - {fileID: 2139386298} + m_Father: {fileID: 330515827} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1902007872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c29b4f68c2b2e3849af4ab850c275cea, type: 3} + m_Name: + m_EditorClassIdentifier: + eventParameterManager: {fileID: 830452354} +--- !u!114 &1902007873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &1902007874 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 1 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 610346305 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1902007875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 821957890} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 45 + m_Viewport: {fileID: 304231939} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 2139386297} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1902007876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1902007877 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1902007870} + m_CullTransparentMesh: 1 --- !u!1 &1905482487 GameObject: m_ObjectHideFlags: 0 @@ -42826,6 +46693,81 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 0 +--- !u!1 &1912411994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1912411995} + - component: {fileID: 1912411996} + - component: {fileID: 1912411997} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1912411995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912411994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1150057311} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1912411996 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912411994} + m_CullTransparentMesh: 1 +--- !u!114 &1912411997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912411994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &1918556255 GameObject: m_ObjectHideFlags: 0 @@ -43480,6 +47422,42 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 28} m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1945789957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1945789958} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1945789958 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1945789957} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 120210503} + m_Father: {fileID: 1468840905} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1946344930 GameObject: m_ObjectHideFlags: 0 @@ -44418,6 +48396,140 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1971243155} m_CullTransparentMesh: 1 +--- !u!1 &1972054041 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1972054042} + - component: {fileID: 1972054044} + - component: {fileID: 1972054043} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1972054042 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972054041} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 797336684} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 134, y: 40} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1972054043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972054041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Integer + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 34.1 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1972054044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1972054041} + m_CullTransparentMesh: 1 --- !u!1 &1973314440 GameObject: m_ObjectHideFlags: 0 @@ -47125,6 +51237,172 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2079255987} m_CullTransparentMesh: 1 +--- !u!1 &2083473857 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2083473858} + - component: {fileID: 2083473860} + - component: {fileID: 2083473859} + m_Layer: 5 + m_Name: Boolean + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2083473858 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083473857} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_Children: + - {fileID: 798238754} + - {fileID: 2086758091} + m_Father: {fileID: 1776319213} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -31.000061, y: 66.784744} + m_SizeDelta: {x: 1000, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2083473859 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083473857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 4 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2083473860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2083473857} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9aa690f14ccbf9e4bb6bd339d500c3e7, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 798238755} + parameterManager: {fileID: 0} + propertyName: + toggle: {fileID: 2086758092} +--- !u!1 &2086758090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2086758091} + - component: {fileID: 2086758092} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2086758091 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2086758090} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1695786879} + m_Father: {fileID: 2083473858} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 158, y: -20} + m_SizeDelta: {x: 40, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2086758092 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2086758090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1695786880} + toggleTransition: 1 + graphic: {fileID: 29958228} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &2094592543 GameObject: m_ObjectHideFlags: 0 @@ -47201,6 +51479,181 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2094592543} m_CullTransparentMesh: 1 +--- !u!1 &2094676608 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2094676609} + - component: {fileID: 2094676612} + - component: {fileID: 2094676611} + - component: {fileID: 2094676610} + m_Layer: 5 + m_Name: InputField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2094676609 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2094676608} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 576411627} + m_Father: {fileID: 937032843} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 137, y: -40} + m_SizeDelta: {x: 1000, y: 80} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &2094676610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2094676608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2094676611} + m_TextViewport: {fileID: 576411627} + m_TextComponent: {fileID: 1897965702} + m_Placeholder: {fileID: 0} + m_VerticalScrollbar: {fileID: 2139386297} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 2 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: AWWWWWWW BWWWWWWW + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 0 + m_GlobalFontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &2094676611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2094676608} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2094676612 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2094676608} + m_CullTransparentMesh: 1 --- !u!1 &2101185331 GameObject: m_ObjectHideFlags: 0 @@ -47762,6 +52215,207 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2131880460} m_CullTransparentMesh: 1 +--- !u!1 &2133056414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2133056415} + - component: {fileID: 2133056417} + - component: {fileID: 2133056416} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2133056415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133056414} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 330515827} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2133056416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133056414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2133056417 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133056414} + m_CullTransparentMesh: 1 +--- !u!1 &2139386296 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2139386298} + - component: {fileID: 2139386300} + - component: {fileID: 2139386299} + - component: {fileID: 2139386297} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2139386297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139386296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1912411997} + m_HandleRect: {fileID: 1912411995} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!224 &2139386298 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139386296} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1150057311} + m_Father: {fileID: 1902007871} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &2139386299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139386296} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2139386300 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139386296} + m_CullTransparentMesh: 1 --- !u!1 &2139897957 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs new file mode 100644 index 00000000..a7e1df5a --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -0,0 +1,92 @@ +using UnityEngine; +using UnityEngine.UI; +using TMPro; + +namespace HeavenStudio.Editor +{ + public class ChartInfoProperties : MonoBehaviour + { + [Header("General References")] + [SerializeField] private GameObject propertyHolder; + + [Header("Editable Properties")] + [SerializeField] private string[] propertyNames; + + [Header("Property Prefabs")] + [SerializeField] private GameObject IntegerP; + [SerializeField] private GameObject FloatP; + [SerializeField] private GameObject BooleanP; + [SerializeField] private GameObject DropdownP; + [SerializeField] private GameObject ColorP; + [SerializeField] private GameObject StringP; + + private void AddParam(string propertyName, object type, string caption, string tooltip = "") + { + GameObject prefab = IntegerP; + GameObject input; + + var objType = type.GetType(); + + if (objType == typeof(EntityTypes.Integer)) + { + prefab = IntegerP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else if (objType == typeof(EntityTypes.Float)) + { + prefab = FloatP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else if (type is bool) + { + prefab = BooleanP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else if (objType.IsEnum) + { + prefab = DropdownP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else if (objType == typeof(Color)) + { + prefab = ColorP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else if (objType == typeof(string)) + { + prefab = StringP; + input = InitPrefab(prefab, tooltip); + var property = input.GetComponent(); + property.SetProperties(propertyName, type, caption); + } + else + { + Debug.LogError("Can't make property interface of type: " + type.GetType()); + return; + } + } + + private GameObject InitPrefab(GameObject prefab, string tooltip = "") + { + GameObject input = Instantiate(prefab); + input.transform.SetParent(propertyHolder.transform); + input.SetActive(true); + input.transform.localScale = Vector2.one; + + if(tooltip != string.Empty) + Tooltip.AddTooltip(input, "", tooltip); + + return input; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs.meta new file mode 100644 index 00000000..d2c83316 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4567e0acf98a9ef48b747da3b836a1a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From b84dc9a2dee661563df10bbf6cd918397ba097fb Mon Sep 17 00:00:00 2001 From: minenice55 Date: Thu, 1 Sep 2022 20:57:47 -0400 Subject: [PATCH 19/27] prep auto-population of property menu --- Assets/Scenes/Editor.unity | 22 +++- .../LevelEditor/DialogHelpers/TabsContent.cs | 15 +++ .../DialogHelpers/TabsContent.cs.meta | 11 ++ .../EventSelector/PropertyPrefabs copy.meta | 8 ++ .../PropertyPrefabs.meta | 8 ++ .../BoolChartPropertyPrefab.cs | 37 +++++++ .../BoolChartPropertyPrefab.cs.meta | 11 ++ .../ColorChartPropertyPrefab.cs | 61 +++++++++++ .../ColorChartPropertyPrefab.cs.meta | 11 ++ .../EnumChartPropertyPrefab.cs | 49 +++++++++ .../EnumChartPropertyPrefab.cs.meta | 11 ++ .../NumberChartPropertyPrefab.cs | 101 ++++++++++++++++++ .../NumberChartPropertyPrefab.cs.meta | 11 ++ .../StringChartPropertyPrefab.cs | 44 ++++++++ .../StringChartPropertyPrefab.cs.meta | 11 ++ .../RemixPropertiesDialog.cs | 47 ++++++++ .../RemixPropertyPrefab.cs | 29 +++++ .../RemixPropertyPrefab.cs.meta | 11 ++ .../Tabs/ChartInfoProperties.cs | 39 ++++--- .../SettingsDialog/Tabs/ControllerSettings.cs | 10 +- .../Tabs/CreditsLegalSettings.cs | 10 +- .../SettingsDialog/Tabs/DispAudioSettings.cs | 10 +- .../SettingsDialog/Tabs/EditorSettings.cs | 10 +- 23 files changed, 552 insertions(+), 25 deletions(-) create mode 100644 Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs create mode 100644 Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta create mode 100644 Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs copy.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs.meta create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs create mode 100644 Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs.meta diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index a7774f00..543b0fa8 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -28048,7 +28048,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 137.66667, y: -20} + m_AnchoredPosition: {x: 137.66669, y: -20} m_SizeDelta: {x: 70, y: 40} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1107362316 @@ -29701,7 +29701,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.89537} + m_AnchoredPosition: {x: 0, y: 189.92252} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -30145,7 +30145,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: propertyHolder: {fileID: 1496522766} - propertyNames: [] IntegerP: {fileID: 797336683} FloatP: {fileID: 797336683} BooleanP: {fileID: 2083473857} @@ -35214,6 +35213,21 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: dialog: {fileID: 1336470761} + infoTags: + - remixtitle + infoLabels: + - Remix Title + flavourTags: [] + flavourLabels: [] + infoContainer: {fileID: 1177777399} + chart: + bpm: 0 + musicVolume: 0 + entities: [] + tempoChanges: [] + volumeChanges: [] + beatmapSections: [] + firstBeatOffset: 0 --- !u!1 &1337141464 GameObject: m_ObjectHideFlags: 0 @@ -45262,7 +45276,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -84.99002} + m_AnchoredPosition: {x: 0, y: -84.990036} m_SizeDelta: {x: 320, y: -113.92} m_Pivot: {x: 0, y: 1} --- !u!1 &1852819572 diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs b/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs new file mode 100644 index 00000000..ae11c500 --- /dev/null +++ b/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using HeavenStudio.Editor.Track; + +using TMPro; + +namespace HeavenStudio.Editor +{ + public abstract class TabsContent : MonoBehaviour + { + public abstract void OnOpenTab(); + public abstract void OnCloseTab(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta b/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta new file mode 100644 index 00000000..bcfa1c3a --- /dev/null +++ b/Assets/Scripts/LevelEditor/DialogHelpers/TabsContent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c95e3e333c0372d498ab6cdad5a6ac1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs copy.meta b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs copy.meta new file mode 100644 index 00000000..bbab429e --- /dev/null +++ b/Assets/Scripts/LevelEditor/EventSelector/PropertyPrefabs copy.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28745dfd251ff86468a98978665f553b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs.meta new file mode 100644 index 00000000..b4530c7d --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eccea73a04818a844bc25e6308bc1d05 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs new file mode 100644 index 00000000..ad034dae --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class BoolChartPropertyPrefab : RemixPropertyPrefab + { + [Header("Boolean")] + [Space(10)] + public Toggle toggle; + + new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) + { + InitProperties(diag, propertyName, caption); + + // ' (bool)type ' always results in false + toggle.isOn = Convert.ToBoolean(parameterManager.chart[propertyName]); + + toggle.onValueChanged.AddListener( + _ => parameterManager.chart[propertyName] = toggle.isOn + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs.meta new file mode 100644 index 00000000..e077a855 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5765785c18f751f4196e09d11dd30ff3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs new file mode 100644 index 00000000..c1c08257 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class ColorChartPropertyPrefab : RemixPropertyPrefab + { + [Header("Color")] + [Space(10)] + public Button ColorBTN; + public RectTransform ColorTable; + public bool colorTableActive; + public ColorPreview colorPreview; + + new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) + { + InitProperties(diag, propertyName, caption); + + colorPreview.colorPicker.onColorChanged += _ => + parameterManager.chart[propertyName] = colorPreview.colorPicker.color; + + Color paramCol = parameterManager.chart[propertyName]; + + ColorBTN.onClick.AddListener( + () => + { + ColorTable.gameObject.SetActive(true); + colorTableActive = true; + colorPreview.ChangeColor(paramCol); + } + ); + + colorPreview.ChangeColor(paramCol); + ColorTable.gameObject.SetActive(false); + } + + private void Update() + { + if (colorTableActive) + { + if (!Editor.MouseInRectTransform(ColorTable)) + { + if (Input.GetMouseButtonDown(0)) + { + ColorTable.gameObject.SetActive(false); + colorTableActive = false; + } + } + } + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs.meta new file mode 100644 index 00000000..aa82341d --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/ColorChartPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 83f718678c662f9448813df185f1283f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs new file mode 100644 index 00000000..9a66e55c --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs @@ -0,0 +1,49 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class EnumChartPropertyPrefab : RemixPropertyPrefab + { + [Header("Dropdown")] + [Space(10)] + public TMP_Dropdown dropdown; + + new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) + { + InitProperties(diag, propertyName, caption); + + var enumType = type.GetType(); + var enumVals = Enum.GetValues(enumType); + var enumNames = Enum.GetNames(enumType).ToList(); + + // Can we assume non-holey enum? + // If we can we can simplify to dropdown.value = (int) parameterManager.chart[propertyName] + var currentlySelected = (int) parameterManager.chart[propertyName]; + var selected = enumVals + .Cast() + .ToList() + .FindIndex(val => (int) val == currentlySelected); + + dropdown.AddOptions(enumNames); + dropdown.value = selected; + + dropdown.onValueChanged.AddListener(_ => + parameterManager.chart[propertyName] = (int) enumVals.GetValue(dropdown.value) + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs.meta new file mode 100644 index 00000000..40e71924 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/EnumChartPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bddf1f894c08d91429a4a36f21a3c10e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs new file mode 100644 index 00000000..54f164de --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs @@ -0,0 +1,101 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class NumberChartPropertyPrefab : RemixPropertyPrefab + { + [Header("Integer and Float")] + [Space(10)] + public Slider slider; + public TMP_InputField inputField; + + new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) + { + InitProperties(diag, propertyName, caption); + + switch (type) + { + case EntityTypes.Integer integer: + slider.minValue = integer.min; + slider.maxValue = integer.max; + + slider.wholeNumbers = true; + slider.value = Convert.ToSingle(parameterManager.chart[propertyName]); + inputField.text = slider.value.ToString(); + + slider.onValueChanged.AddListener( + _ => + { + inputField.text = slider.value.ToString(); + parameterManager.chart[propertyName] = (int) slider.value; + } + ); + + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + + inputField.onEndEdit.AddListener( + _ => + { + slider.value = Convert.ToSingle(inputField.text); + parameterManager.chart[propertyName] = (int) slider.value; + Editor.instance.editingInputField = false; + } + ); + break; + + case EntityTypes.Float fl: + slider.minValue = fl.min; + slider.maxValue = fl.max; + + slider.value = Convert.ToSingle(parameterManager.chart[propertyName]); + inputField.text = slider.value.ToString("G"); + + slider.onValueChanged.AddListener( + _ => + { + var newValue = (float) Math.Round(slider.value, 4); + inputField.text = newValue.ToString("G"); + parameterManager.chart[propertyName] = newValue; + } + ); + + inputField.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + + inputField.onEndEdit.AddListener( + _ => + { + slider.value = (float) Math.Round(Convert.ToSingle(inputField.text), 4); + parameterManager.chart[propertyName] = slider.value; + Editor.instance.editingInputField = false; + } + ); + break; + + default: + throw new ArgumentOutOfRangeException( + nameof(type), type, "I don't know how to make a property of this type!" + ); + } + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs.meta new file mode 100644 index 00000000..ac331387 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/NumberChartPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3541b2824368eef4b94655619c05c3bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs new file mode 100644 index 00000000..8a142ab0 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs @@ -0,0 +1,44 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; +using HeavenStudio.Editor; + +namespace HeavenStudio.Editor +{ + public class StringChartPropertyPrefab : RemixPropertyPrefab + { + [Header("String")] //why wasn't this a thing before + [Space(10)] + public TMP_InputField inputFieldString; + + new public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) + { + InitProperties(diag, propertyName, caption); + + inputFieldString.text = (string) parameterManager.chart[propertyName]; + + inputFieldString.onSelect.AddListener( + _ => + Editor.instance.editingInputField = true + ); + inputFieldString.onEndEdit.AddListener( + _ => + {; + parameterManager.chart[propertyName] = inputFieldString.text; + Editor.instance.editingInputField = false; + } + ); + } + + private void Update() + { + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs.meta new file mode 100644 index 00000000..286c6585 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/StringChartPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d094b0b57b4a1945a8ca587d9478b75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index fb094fe1..ff6fc1bd 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -9,6 +9,18 @@ namespace HeavenStudio.Editor { public class RemixPropertiesDialog : Dialog { + [Header("Editable Properties")] + [SerializeField] string[] infoTags; + [SerializeField] string[] infoLabels; + [SerializeField] string[] flavourTags; + [SerializeField] string[] flavourLabels; + + [Header("Containers")] + [SerializeField] ChartInfoProperties infoContainer; + // [SerializeField] ChartFlavourProperties flavourContainer; + + public DynamicBeatmap chart; + private void Start() {} public void SwitchPropertiesDialog() @@ -17,11 +29,46 @@ namespace HeavenStudio.Editor Editor.instance.canSelect = true; Editor.instance.inAuthorativeMenu = false; dialog.SetActive(false); + + CleanDialog(); } else { ResetAllDialogs(); Editor.instance.canSelect = false; Editor.instance.inAuthorativeMenu = true; dialog.SetActive(true); + + SetupDialog(); + } + } + + private void SetupDialog() { + chart = GameManager.instance.Beatmap; + string[] tags = infoTags; + string[] labels = infoLabels; + int i = 0; + + foreach (string property in tags) { + if (chart.properties.ContainsKey(property)) { + infoContainer.AddParam(this, property, chart.properties[property], labels[i]); + } + else + { + if (property == "divider") + { + //TODO: prefab that's just a dividing line + } + else + { + Debug.LogWarning("Property Menu generation Warning: Property " + property + " not found"); + } + } + i++; + } + } + + private void CleanDialog() { + foreach (Transform child in dialog.transform) { + Destroy(child.gameObject); } } diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs new file mode 100644 index 00000000..e3a3d78a --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System; +using System.Linq; +using TMPro; +using Starpelly; + +using HeavenStudio.Util; + +namespace HeavenStudio.Editor +{ + public class RemixPropertyPrefab : MonoBehaviour + { + public TMP_Text caption; + public RemixPropertiesDialog parameterManager; + public string propertyName; + + public void SetProperties(RemixPropertiesDialog diag, string propertyName, object type, string caption) {} + + public void InitProperties(RemixPropertiesDialog diag, string propertyName, string caption) + { + this.parameterManager = diag; + this.propertyName = propertyName; + this.caption.text = caption; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs.meta b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs.meta new file mode 100644 index 00000000..8f855936 --- /dev/null +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertyPrefab.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2483aa618d773c143857f608a2d2d32a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs index a7e1df5a..9cba7704 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -4,14 +4,11 @@ using TMPro; namespace HeavenStudio.Editor { - public class ChartInfoProperties : MonoBehaviour + public class ChartInfoProperties : TabsContent { [Header("General References")] [SerializeField] private GameObject propertyHolder; - [Header("Editable Properties")] - [SerializeField] private string[] propertyNames; - [Header("Property Prefabs")] [SerializeField] private GameObject IntegerP; [SerializeField] private GameObject FloatP; @@ -20,7 +17,7 @@ namespace HeavenStudio.Editor [SerializeField] private GameObject ColorP; [SerializeField] private GameObject StringP; - private void AddParam(string propertyName, object type, string caption, string tooltip = "") + public void AddParam(RemixPropertiesDialog diag, string propertyName, object type, string caption, string tooltip = "") { GameObject prefab = IntegerP; GameObject input; @@ -31,43 +28,43 @@ namespace HeavenStudio.Editor { prefab = IntegerP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else if (objType == typeof(EntityTypes.Float)) { prefab = FloatP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else if (type is bool) { prefab = BooleanP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else if (objType.IsEnum) { prefab = DropdownP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else if (objType == typeof(Color)) { prefab = ColorP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else if (objType == typeof(string)) { prefab = StringP; input = InitPrefab(prefab, tooltip); - var property = input.GetComponent(); - property.SetProperties(propertyName, type, caption); + var property = input.GetComponent(); + property.SetProperties(diag, propertyName, type, caption); } else { @@ -88,5 +85,13 @@ namespace HeavenStudio.Editor return input; } + + public override void OnOpenTab() + { + } + + public override void OnCloseTab() + { + } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs index 2fc2adfb..e883751b 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/ControllerSettings.cs @@ -12,7 +12,7 @@ using static JSL; namespace HeavenStudio.Editor { - public class ControllerSettings : MonoBehaviour + public class ControllerSettings : TabsContent { [SerializeField] private TMP_Text numConnectedLabel; [SerializeField] private TMP_Text currentControllerLabel; @@ -245,5 +245,13 @@ namespace HeavenStudio.Editor yield return new WaitForSeconds(0.25f); JslSetRumbleFrequency(controller.GetHandle(), 0f, 0f, 0f, 0f); } + + public override void OnOpenTab() + { + } + + public override void OnCloseTab() + { + } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/CreditsLegalSettings.cs b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/CreditsLegalSettings.cs index 21b9a731..3c34ed4e 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/CreditsLegalSettings.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/CreditsLegalSettings.cs @@ -9,7 +9,7 @@ using TMPro; namespace HeavenStudio.Editor { - public class CreditsLegalSettings : MonoBehaviour + public class CreditsLegalSettings : TabsContent { private int SecretCounter = 0; private bool SecretActive = false; @@ -50,5 +50,13 @@ namespace HeavenStudio.Editor SecretActive = false; secretContent.CloseDanceWindow(); } + + public override void OnOpenTab() + { + } + + public override void OnCloseTab() + { + } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/DispAudioSettings.cs b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/DispAudioSettings.cs index 4de43ffa..af5460c6 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/DispAudioSettings.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/DispAudioSettings.cs @@ -6,7 +6,7 @@ using TMPro; namespace HeavenStudio.Editor { - public class DispAudioSettings : MonoBehaviour + public class DispAudioSettings : TabsContent { public TMP_Dropdown resolutionsDropdown; public GameObject customSetter; @@ -71,5 +71,13 @@ namespace HeavenStudio.Editor volSlider.value = (float)System.Math.Round(System.Convert.ToSingle(volLabel.text) / 100f, 2); GlobalGameManager.ChangeMasterVolume(volSlider.value); } + + public override void OnOpenTab() + { + } + + public override void OnCloseTab() + { + } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/EditorSettings.cs b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/EditorSettings.cs index 1d05e73e..26b084e7 100644 --- a/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/EditorSettings.cs +++ b/Assets/Scripts/LevelEditor/SettingsDialog/Tabs/EditorSettings.cs @@ -4,7 +4,7 @@ using TMPro; namespace HeavenStudio.Editor { - public class EditorSettings : MonoBehaviour + public class EditorSettings : TabsContent { public Toggle cursorCheckbox; @@ -16,5 +16,13 @@ namespace HeavenStudio.Editor GameManager.instance.CursorCam.enabled = Editor.instance.isCursorEnabled; } } + + public override void OnOpenTab() + { + } + + public override void OnCloseTab() + { + } } } \ No newline at end of file From 87a51dd302642cf4733a1961527777babf0420fa Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 19:10:27 -0400 Subject: [PATCH 20/27] property menu population functional --- Assets/Scenes/Editor.unity | 213 +++++++++++++++--- .../LevelEditor/DialogHelpers/TabsManager.cs | 10 + .../RemixPropertiesDialog.cs | 49 ++-- .../Tabs/ChartInfoProperties.cs | 5 +- 4 files changed, 226 insertions(+), 51 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 543b0fa8..439a9c5a 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -4409,7 +4409,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -289.15, y: 2} + m_AnchoredPosition: {x: -289.15002, y: 2} m_SizeDelta: {x: -578.29, y: 49.92} m_Pivot: {x: 0.5, y: 0} --- !u!114 &156962255 @@ -11863,9 +11863,9 @@ RectTransform: m_Father: {fileID: 1523610371} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 198, y: -25} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 132, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &483251987 @@ -16154,7 +16154,7 @@ MonoBehaviour: m_HandleRect: {fileID: 704039020} m_Direction: 0 m_Value: 0 - m_Size: 0.03287128 + m_Size: 0.032871284 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -19272,8 +19272,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 728113666} - - component: {fileID: 728113668} - component: {fileID: 728113667} + - component: {fileID: 728113668} m_Layer: 5 m_Name: Dropdown m_TagString: Untagged @@ -19337,7 +19337,7 @@ MonoBehaviour: m_GameObject: {fileID: 728113665} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8ada001011e54c74b87c04d7186d5f3c, type: 3} + m_Script: {fileID: 11500000, guid: bddf1f894c08d91429a4a36f21a3c10e, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 1516873911} @@ -21027,8 +21027,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 797336684} - - component: {fileID: 797336686} - component: {fileID: 797336685} + - component: {fileID: 797336686} m_Layer: 5 m_Name: Number m_TagString: Untagged @@ -21093,7 +21093,7 @@ MonoBehaviour: m_GameObject: {fileID: 797336683} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6e9ad350a96f5644dbb1e4686a6bcaed, type: 3} + m_Script: {fileID: 11500000, guid: 3541b2824368eef4b94655619c05c3bc, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 1972054043} @@ -23076,7 +23076,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 0 + m_Value: 1 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -23896,8 +23896,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 937032843} - - component: {fileID: 937032845} - component: {fileID: 937032844} + - component: {fileID: 937032845} m_Layer: 5 m_Name: String m_TagString: Untagged @@ -23961,7 +23961,7 @@ MonoBehaviour: m_GameObject: {fileID: 937032842} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c01fcc0bb14adee46a4869c1c009850e, type: 3} + m_Script: {fileID: 11500000, guid: 1d094b0b57b4a1945a8ca587d9478b75, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 506932090} @@ -24805,6 +24805,18 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 + - m_Target: {fileID: 1523610372} + m_TargetAssemblyTypeName: HeavenStudio.Editor.TabsManager, Assembly-CSharp + m_MethodName: CloseContent + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &971914992 MonoBehaviour: m_ObjectHideFlags: 0 @@ -27211,9 +27223,9 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: -17, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} --- !u!114 &1063895375 MonoBehaviour: @@ -29701,7 +29713,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 189.92252} + m_AnchoredPosition: {x: 0, y: 129.93517} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -32113,7 +32125,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 20, y: 20} m_Pivot: {x: 0.5, y: 0.5} @@ -33960,9 +33972,9 @@ RectTransform: m_Father: {fileID: 1523610371} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 66, y: -25} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 132, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1308249141 @@ -35177,7 +35189,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &1336470762 RectTransform: m_ObjectHideFlags: 0 @@ -35214,11 +35226,13 @@ MonoBehaviour: m_EditorClassIdentifier: dialog: {fileID: 1336470761} infoTags: - - remixtitle - infoLabels: - - Remix Title + - tag: remixtitle + label: Remix Title + isReadOnly: 0 + - tag: remixauthor + label: Remix Author + isReadOnly: 0 flavourTags: [] - flavourLabels: [] infoContainer: {fileID: 1177777399} chart: bpm: 0 @@ -38107,7 +38121,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 15} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 1} --- !u!114 &1496522768 MonoBehaviour: @@ -38270,6 +38284,69 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1497456599} m_CullTransparentMesh: 1 +--- !u!1 &1503364107 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1503364108} + - component: {fileID: 1503364109} + m_Layer: 5 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1503364108 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503364107} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.0001339, y: 1.0001339, z: 1.0001339} + m_Children: + - {fileID: 1694560418} + m_Father: {fileID: 1776319213} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 51.5, y: 112.86438} + m_SizeDelta: {x: 1165, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1503364109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1503364107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &1506447351 GameObject: m_ObjectHideFlags: 0 @@ -41566,8 +41643,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1651196875} - - component: {fileID: 1651196877} - component: {fileID: 1651196876} + - component: {fileID: 1651196877} m_Layer: 5 m_Name: Color m_TagString: Untagged @@ -41631,7 +41708,7 @@ MonoBehaviour: m_GameObject: {fileID: 1651196874} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c1c576a0586b70d4395de537078023d5, type: 3} + m_Script: {fileID: 11500000, guid: 83f718678c662f9448813df185f1283f, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 564782389} @@ -42443,6 +42520,81 @@ RectTransform: m_AnchoredPosition: {x: -5, y: 0} m_SizeDelta: {x: -20, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1694560417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1694560418} + - component: {fileID: 1694560420} + - component: {fileID: 1694560419} + m_Layer: 5 + m_Name: line + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1694560418 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694560417} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1503364108} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -5} + m_SizeDelta: {x: 1165, y: 10} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1694560419 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694560417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.627451} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1694560420 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694560417} + m_CullTransparentMesh: 1 --- !u!1 &1695786878 GameObject: m_ObjectHideFlags: 0 @@ -44266,6 +44418,7 @@ RectTransform: - {fileID: 1651196875} - {fileID: 728113666} - {fileID: 937032843} + - {fileID: 1503364108} m_Father: {fileID: 572765322} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -45276,7 +45429,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -84.990036} + m_AnchoredPosition: {x: 0, y: -84.99002} m_SizeDelta: {x: 320, y: -113.92} m_Pivot: {x: 0, y: 1} --- !u!1 &1852819572 @@ -51260,8 +51413,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2083473858} - - component: {fileID: 2083473860} - component: {fileID: 2083473859} + - component: {fileID: 2083473860} m_Layer: 5 m_Name: Boolean m_TagString: Untagged @@ -51325,7 +51478,7 @@ MonoBehaviour: m_GameObject: {fileID: 2083473857} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9aa690f14ccbf9e4bb6bd339d500c3e7, type: 3} + m_Script: {fileID: 11500000, guid: 5765785c18f751f4196e09d11dd30ff3, type: 3} m_Name: m_EditorClassIdentifier: caption: {fileID: 798238755} diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs index 6b4e9bd4..17e6f334 100644 --- a/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs +++ b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs @@ -15,10 +15,20 @@ namespace HeavenStudio.Editor { if (activeContent != null) { + activeContent.GetComponent().OnCloseTab(); activeContent.SetActive(false); } activeContent = content; activeContent.SetActive(true); + activeContent.GetComponent().OnOpenTab(); + } + + public void CloseContent() + { + if (activeContent != null) + { + activeContent.GetComponent().OnCloseTab(); + } } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index ff6fc1bd..71ec2dd1 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -10,10 +11,8 @@ namespace HeavenStudio.Editor public class RemixPropertiesDialog : Dialog { [Header("Editable Properties")] - [SerializeField] string[] infoTags; - [SerializeField] string[] infoLabels; - [SerializeField] string[] flavourTags; - [SerializeField] string[] flavourLabels; + [SerializeField] PropertyTag[] infoTags; + [SerializeField] PropertyTag[] flavourTags; [Header("Containers")] [SerializeField] ChartInfoProperties infoContainer; @@ -21,17 +20,20 @@ namespace HeavenStudio.Editor public DynamicBeatmap chart; - private void Start() {} + private void Start() { } public void SwitchPropertiesDialog() { - if(dialog.activeSelf) { + if (dialog.activeSelf) + { Editor.instance.canSelect = true; Editor.instance.inAuthorativeMenu = false; dialog.SetActive(false); CleanDialog(); - } else { + } + else + { ResetAllDialogs(); Editor.instance.canSelect = false; Editor.instance.inAuthorativeMenu = true; @@ -41,37 +43,44 @@ namespace HeavenStudio.Editor } } - private void SetupDialog() { + private void SetupDialog() + { chart = GameManager.instance.Beatmap; - string[] tags = infoTags; - string[] labels = infoLabels; + PropertyTag[] tags = infoTags; int i = 0; - foreach (string property in tags) { - if (chart.properties.ContainsKey(property)) { - infoContainer.AddParam(this, property, chart.properties[property], labels[i]); + foreach (PropertyTag property in tags) + { + if (chart.properties.ContainsKey(property.tag)) + { + Debug.Log($"Found property: {property.tag} with label {property.label}"); + infoContainer.AddParam(this, property.tag, chart.properties[property.tag], property.label, property.isReadOnly); } else { - if (property == "divider") + if (property.tag == "divider") { //TODO: prefab that's just a dividing line } else { - Debug.LogWarning("Property Menu generation Warning: Property " + property + " not found"); + Debug.LogWarning("Property Menu generation Warning: Property " + property.tag + " not found, skipping..."); } } i++; } } - private void CleanDialog() { - foreach (Transform child in dialog.transform) { - Destroy(child.gameObject); - } - } + private void CleanDialog() {} private void Update() {} + + [Serializable] + public class PropertyTag + { + public string tag; + public string label; + public bool isReadOnly; + } } } \ No newline at end of file diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs index 9cba7704..42cac261 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -17,7 +17,7 @@ namespace HeavenStudio.Editor [SerializeField] private GameObject ColorP; [SerializeField] private GameObject StringP; - public void AddParam(RemixPropertiesDialog diag, string propertyName, object type, string caption, string tooltip = "") + public void AddParam(RemixPropertiesDialog diag, string propertyName, object type, string caption, bool isReadOnly = false, string tooltip = "") { GameObject prefab = IntegerP; GameObject input; @@ -92,6 +92,9 @@ namespace HeavenStudio.Editor public override void OnCloseTab() { + foreach (Transform child in propertyHolder.transform) { + Destroy(child.gameObject); + } } } } \ No newline at end of file From 68c1802e87314cedb0f86626de6d797f171c2432 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 19:46:54 -0400 Subject: [PATCH 21/27] use tab manager to control flow --- Assets/Scenes/Editor.unity | 44 ++++++++++++------- .../LevelEditor/DialogHelpers/TabsManager.cs | 8 ++++ .../RemixPropertiesDialog.cs | 17 ++++--- .../Tabs/ChartInfoProperties.cs | 16 +++++++ 4 files changed, 64 insertions(+), 21 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 439a9c5a..6fa4c5a1 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -11863,9 +11863,9 @@ RectTransform: m_Father: {fileID: 1523610371} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 198, y: -25} m_SizeDelta: {x: 132, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &483251987 @@ -16154,7 +16154,7 @@ MonoBehaviour: m_HandleRect: {fileID: 704039020} m_Direction: 0 m_Value: 0 - m_Size: 0.032871284 + m_Size: 0.03287128 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -27223,9 +27223,9 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: -17, y: 0} m_Pivot: {x: 0, y: 1} --- !u!114 &1063895375 MonoBehaviour: @@ -28236,7 +28236,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -408.97998, y: -17} + m_AnchoredPosition: {x: -408.98004, y: -17} m_SizeDelta: {x: -817.96, y: -46.29} m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &1118147045 @@ -29713,7 +29713,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.93517} + m_AnchoredPosition: {x: 0, y: 129.9111} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -30163,6 +30163,7 @@ MonoBehaviour: DropdownP: {fileID: 728113665} ColorP: {fileID: 1651196874} StringP: {fileID: 937032842} + DividerP: {fileID: 1503364107} --- !u!114 &1177777400 MonoBehaviour: m_ObjectHideFlags: 0 @@ -32125,7 +32126,7 @@ RectTransform: m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 20, y: 20} m_Pivot: {x: 0.5, y: 0.5} @@ -33972,9 +33973,9 @@ RectTransform: m_Father: {fileID: 1523610371} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 66, y: -25} m_SizeDelta: {x: 132, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1308249141 @@ -35189,7 +35190,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1336470762 RectTransform: m_ObjectHideFlags: 0 @@ -35225,6 +35226,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: dialog: {fileID: 1336470761} + tabsManager: {fileID: 1523610372} infoTags: - tag: remixtitle label: Remix Title @@ -35232,6 +35234,18 @@ MonoBehaviour: - tag: remixauthor label: Remix Author isReadOnly: 0 + - tag: divider + label: Divider Idol + isReadOnly: 0 + - tag: idolgenre + label: Song Genre + isReadOnly: 0 + - tag: idolsong + label: Song Name + isReadOnly: 0 + - tag: idolcredit + label: Song Artist + isReadOnly: 0 flavourTags: [] infoContainer: {fileID: 1177777399} chart: @@ -38121,7 +38135,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 15} m_Pivot: {x: 0, y: 1} --- !u!114 &1496522768 MonoBehaviour: @@ -45429,7 +45443,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -84.99002} + m_AnchoredPosition: {x: 0, y: -84.99005} m_SizeDelta: {x: 320, y: -113.92} m_Pivot: {x: 0, y: 1} --- !u!1 &1852819572 diff --git a/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs index 17e6f334..8592cba5 100644 --- a/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs +++ b/Assets/Scripts/LevelEditor/DialogHelpers/TabsManager.cs @@ -23,6 +23,14 @@ namespace HeavenStudio.Editor activeContent.GetComponent().OnOpenTab(); } + public void OpenContent() + { + if (activeContent != null) + { + activeContent.GetComponent().OnOpenTab(); + } + } + public void CloseContent() { if (activeContent != null) diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index 71ec2dd1..4e2047b3 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -10,6 +10,9 @@ namespace HeavenStudio.Editor { public class RemixPropertiesDialog : Dialog { + [Header("General References")] + [SerializeField] TabsManager tabsManager; + [Header("Editable Properties")] [SerializeField] PropertyTag[] infoTags; [SerializeField] PropertyTag[] flavourTags; @@ -26,24 +29,26 @@ namespace HeavenStudio.Editor { if (dialog.activeSelf) { + tabsManager.CloseContent(); Editor.instance.canSelect = true; Editor.instance.inAuthorativeMenu = false; dialog.SetActive(false); - - CleanDialog(); } else { ResetAllDialogs(); + + infoContainer.Init(this); + //flavourContainer.Init(this); + + tabsManager.OpenContent(); Editor.instance.canSelect = false; Editor.instance.inAuthorativeMenu = true; dialog.SetActive(true); - - SetupDialog(); } } - private void SetupDialog() + public void SetupDialog() { chart = GameManager.instance.Beatmap; PropertyTag[] tags = infoTags; @@ -60,7 +65,7 @@ namespace HeavenStudio.Editor { if (property.tag == "divider") { - //TODO: prefab that's just a dividing line + infoContainer.AddDivider(this); } else { diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs index 42cac261..11451865 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -8,6 +8,7 @@ namespace HeavenStudio.Editor { [Header("General References")] [SerializeField] private GameObject propertyHolder; + RemixPropertiesDialog dialog; [Header("Property Prefabs")] [SerializeField] private GameObject IntegerP; @@ -17,6 +18,14 @@ namespace HeavenStudio.Editor [SerializeField] private GameObject ColorP; [SerializeField] private GameObject StringP; + [Header("Layout Prefabs")] + [SerializeField] private GameObject DividerP; + + public void Init(RemixPropertiesDialog diag) + { + dialog = diag; + } + public void AddParam(RemixPropertiesDialog diag, string propertyName, object type, string caption, bool isReadOnly = false, string tooltip = "") { GameObject prefab = IntegerP; @@ -73,6 +82,12 @@ namespace HeavenStudio.Editor } } + public void AddDivider(RemixPropertiesDialog diag) + { + GameObject prefab = DividerP; + InitPrefab(prefab); + } + private GameObject InitPrefab(GameObject prefab, string tooltip = "") { GameObject input = Instantiate(prefab); @@ -88,6 +103,7 @@ namespace HeavenStudio.Editor public override void OnOpenTab() { + dialog.SetupDialog(); } public override void OnCloseTab() From 7084d96cc1ae9862bcc2c67f2011a17a988984ce Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 21:51:37 -0400 Subject: [PATCH 22/27] fix nasty bugs with saving / loading - duplicate property names no longer soft crash loading (thanks, tap trial) - fix remix saving nothing music --- Assets/Scenes/Editor.unity | 16 ++-- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 74 ++++++++++++------- Assets/Scripts/LevelEditor/Editor.cs | 17 ++++- .../RemixPropertiesDialog.cs | 9 ++- 4 files changed, 77 insertions(+), 39 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 6fa4c5a1..0036ba7e 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -12254,7 +12254,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -40} + m_AnchoredPosition: {x: 0, y: -25} m_SizeDelta: {x: 134, y: 40} m_Pivot: {x: 0, y: 0.5} --- !u!114 &506932090 @@ -23924,7 +23924,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: -31.000061, y: -91.21527} - m_SizeDelta: {x: 1000, y: 80} + m_SizeDelta: {x: 1000, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &937032844 MonoBehaviour: @@ -29713,7 +29713,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.9111} + m_AnchoredPosition: {x: 0, y: 129.91107} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -46272,8 +46272,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 14 - m_fontSizeBase: 14 + m_fontSize: 16 + m_fontSizeBase: 16 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -51696,8 +51696,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 137, y: -40} - m_SizeDelta: {x: 1000, y: 80} + m_AnchoredPosition: {x: 137, y: -25} + m_SizeDelta: {x: 1000, y: 50} m_Pivot: {x: 0, y: 0.5} --- !u!114 &2094676610 MonoBehaviour: @@ -51756,7 +51756,7 @@ MonoBehaviour: m_HideSoftKeyboard: 0 m_CharacterValidation: 0 m_RegexValue: - m_GlobalPointSize: 14 + m_GlobalPointSize: 16 m_CharacterLimit: 0 m_OnEndEdit: m_PersistentCalls: diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index 699a94ca..d8dda044 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -234,6 +234,8 @@ namespace HeavenStudio game = EventCaller.instance.GetMinigame(e.datamodel.Split(0)); action = EventCaller.instance.GetGameAction(game, e.datamodel.Split(1)); + // Debug.Log($"{game.name} {action.displayName} @ beat {e.beat}"); + Dictionary dynamicData = new Dictionary(); //check each param of the action if (action.parameters != null) @@ -242,25 +244,34 @@ namespace HeavenStudio { type = param.parameter.GetType(); pType = e[param.propertyName].GetType(); - if (pType == type) + // Debug.Log($"adding parameter {param.propertyName} of type {type}"); + if (!dynamicData.ContainsKey(param.propertyName)) { - dynamicData.Add(param.propertyName, e[param.propertyName]); + if (pType == type) + { + dynamicData.Add(param.propertyName, e[param.propertyName]); + } + else + { + if (type == typeof(EntityTypes.Integer)) + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (type == typeof(EntityTypes.Float)) + dynamicData.Add(param.propertyName, (float) e[param.propertyName]); + else if (type.IsEnum && param.propertyName != "ease") + dynamicData.Add(param.propertyName, (int) e[param.propertyName]); + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); + else + dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + } } else { - if (type == typeof(EntityTypes.Integer)) - dynamicData.Add(param.propertyName, (int) e[param.propertyName]); - else if (type == typeof(EntityTypes.Float)) - dynamicData.Add(param.propertyName, (float) e[param.propertyName]); - else if (type.IsEnum && param.propertyName != "ease") - dynamicData.Add(param.propertyName, (int) e[param.propertyName]); - else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) - dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); - else - dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + Debug.LogWarning($"Property {param.propertyName} already exists in the entity's dynamic data! Skipping..."); } } } + dynamicBeatmap.entities.Add(new DynamicEntity() { beat = e.beat, @@ -333,26 +344,33 @@ namespace HeavenStudio { foreach (var param in action.parameters) { - type = param.parameter.GetType(); - pType = e[param.propertyName].GetType(); - if (pType == type) + if (!dynamicData.ContainsKey(param.propertyName)) { - dynamicData.Add(param.propertyName, e[param.propertyName]); + type = param.parameter.GetType(); + pType = e[param.propertyName].GetType(); + if (pType == type) + { + dynamicData.Add(param.propertyName, e[param.propertyName]); + } + else + { + if (type == typeof(EntityTypes.Integer)) + dynamicData.Add(param.propertyName, (int)e[param.propertyName]); + else if (type == typeof(EntityTypes.Float)) + dynamicData.Add(param.propertyName, (float)e[param.propertyName]); + else if (type == typeof(EasingFunction.Ease) && pType == typeof(string)) + dynamicData.Add(param.propertyName, Enum.Parse(typeof(EasingFunction.Ease), (string)e[param.propertyName])); + else if (type.IsEnum) + dynamicData.Add(param.propertyName, (int)e[param.propertyName]); + else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) + dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); + else + dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + } } else { - if (type == typeof(EntityTypes.Integer)) - dynamicData.Add(param.propertyName, (int) e[param.propertyName]); - else if (type == typeof(EntityTypes.Float)) - dynamicData.Add(param.propertyName, (float) e[param.propertyName]); - else if (type == typeof(EasingFunction.Ease) && pType == typeof(string)) - dynamicData.Add(param.propertyName, Enum.Parse(typeof(EasingFunction.Ease), (string) e[param.propertyName])); - else if (type.IsEnum) - dynamicData.Add(param.propertyName, (int) e[param.propertyName]); - else if (pType == typeof(Newtonsoft.Json.Linq.JObject)) - dynamicData.Add(param.propertyName, e[param.propertyName].ToObject(type)); - else - dynamicData.Add(param.propertyName, Convert.ChangeType(e[param.propertyName], type)); + Debug.LogWarning($"Property {param.propertyName} already exists in the entity's dynamic data! Skipping..."); } } } diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 9cbd1bfd..46ae9194 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -307,18 +307,31 @@ namespace HeavenStudio.Editor try { if (clip != null) - MusicBytes = OggVorbis.VorbisPlugin.GetOggVorbis(Conductor.instance.musicSource.clip, 1); + MusicBytes = OggVorbis.VorbisPlugin.GetOggVorbis(clip, 1); else { MusicBytes = null; Debug.LogWarning("Failed to load music file! The stream is currently empty."); } } - catch (System.Exception) + catch (System.ArgumentNullException) { + clip = null; MusicBytes = null; Debug.LogWarning("Failed to load music file! The stream is currently empty."); } + catch (System.ArgumentOutOfRangeException) + { + clip = null; + MusicBytes = null; + Debug.LogWarning("Failed to load music file! The stream is malformed."); + } + catch (System.ArgumentException) + { + clip = null; + MusicBytes = null; + Debug.LogWarning("Failed to load music file! Only 1 or 2 channels are supported!."); + } return clip; } diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index 4e2047b3..975aae6e 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -58,7 +58,6 @@ namespace HeavenStudio.Editor { if (chart.properties.ContainsKey(property.tag)) { - Debug.Log($"Found property: {property.tag} with label {property.label}"); infoContainer.AddParam(this, property.tag, chart.properties[property.tag], property.label, property.isReadOnly); } else @@ -67,6 +66,14 @@ namespace HeavenStudio.Editor { infoContainer.AddDivider(this); } + else if (property.tag == "heading") + { + infoContainer.AddDivider(this); + } + else if (property.tag == "subheading") + { + infoContainer.AddDivider(this); + } else { Debug.LogWarning("Property Menu generation Warning: Property " + property.tag + " not found, skipping..."); From cb2b5707e93faa479d97cee9e83c4095e1d6a38f Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 22:29:50 -0400 Subject: [PATCH 23/27] headers and subheaders --- Assets/Scenes/Editor.unity | 433 +++++++++++++++++- .../RemixPropertiesDialog.cs | 8 +- .../Tabs/ChartInfoProperties.cs | 17 +- 3 files changed, 432 insertions(+), 26 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 0036ba7e..61b46aae 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -2349,6 +2349,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 78689442} m_CullTransparentMesh: 1 +--- !u!1 &81650874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 81650875} + - component: {fileID: 81650877} + - component: {fileID: 81650876} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &81650875 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81650874} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1172723235} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -0.000061035156, y: 0} + m_SizeDelta: {x: 582.5, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &81650876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81650874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Heading Small - ABCDEFGHIJKLMNOPQRSTUVWXYZ + + AWWWWWWW BWWWWWWW' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 22 + m_fontSizeBase: 22 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &81650877 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81650874} + m_CullTransparentMesh: 1 --- !u!1 &86022610 GameObject: m_ObjectHideFlags: 0 @@ -19295,7 +19431,7 @@ RectTransform: - {fileID: 1516873910} - {fileID: 330515827} m_Father: {fileID: 1776319213} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -21045,17 +21181,17 @@ RectTransform: m_GameObject: {fileID: 797336683} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_LocalScale: {x: 0.9999127, y: 0.9999127, z: 0.9999127} m_Children: - {fileID: 1972054042} - {fileID: 1107362315} - {fileID: 1468840905} m_Father: {fileID: 1776319213} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 51.5, y: 112.784744} + m_AnchoredPosition: {x: 41.5, y: 112.81616} m_SizeDelta: {x: 1165, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &797336685 @@ -23077,7 +23213,7 @@ MonoBehaviour: m_HandleRect: {fileID: 1589389271} m_Direction: 2 m_Value: 1 - m_Size: 1 + m_Size: 0.9996455 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -23135,6 +23271,140 @@ MonoBehaviour: m_EffectColor: {r: 1, g: 1, b: 1, a: 1} m_EffectDistance: {x: 2, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &918768360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 918768361} + - component: {fileID: 918768363} + - component: {fileID: 918768362} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &918768361 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 918768360} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 934666995} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -0.000061035156, y: 0} + m_SizeDelta: {x: 1165, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &918768362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 918768360} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Heading Big + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_sharedMaterial: {fileID: 5250768452915780979, guid: 78e7291cdeccdfc4fa61249845605144, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 42 + m_fontSizeBase: 42 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 3 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &918768363 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 918768360} + m_CullTransparentMesh: 1 --- !u!1 &921242772 GameObject: m_ObjectHideFlags: 0 @@ -23811,6 +24081,58 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 933578816} m_CullTransparentMesh: 1 +--- !u!1 &934666994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 934666995} + - component: {fileID: 934666996} + m_Layer: 5 + m_Name: Heading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &934666995 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 934666994} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 918768361} + m_Father: {fileID: 1776319213} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 51.5, y: 107.81618} + m_SizeDelta: {x: 1165, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &934666996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 934666994} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2483aa618d773c143857f608a2d2d32a, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 918768362} + parameterManager: {fileID: 0} + propertyName: --- !u!1 &935391419 GameObject: m_ObjectHideFlags: 0 @@ -23914,17 +24236,17 @@ RectTransform: m_GameObject: {fileID: 937032842} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.99991256, y: 0.99991256, z: 0.99991256} + m_LocalScale: {x: 0.9999127, y: 0.9999127, z: 0.9999127} m_Children: - {fileID: 506932089} - {fileID: 2094676609} m_Father: {fileID: 1776319213} - m_RootOrder: 4 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: -31.000061, y: -91.21527} - m_SizeDelta: {x: 1000, y: 50} + m_AnchoredPosition: {x: 41.5, y: 107.81618} + m_SizeDelta: {x: 1165, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &937032844 MonoBehaviour: @@ -30104,6 +30426,58 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1162156585} m_CullTransparentMesh: 1 +--- !u!1 &1172723234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1172723235} + - component: {fileID: 1172723236} + m_Layer: 5 + m_Name: SubHeading + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1172723235 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172723234} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 81650875} + m_Father: {fileID: 1776319213} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: -249.75006, y: 132.81616} + m_SizeDelta: {x: 582.5, y: 50} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1172723236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172723234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2483aa618d773c143857f608a2d2d32a, type: 3} + m_Name: + m_EditorClassIdentifier: + caption: {fileID: 81650876} + parameterManager: {fileID: 0} + propertyName: --- !u!1 &1177777397 GameObject: m_ObjectHideFlags: 0 @@ -30164,6 +30538,8 @@ MonoBehaviour: ColorP: {fileID: 1651196874} StringP: {fileID: 937032842} DividerP: {fileID: 1503364107} + HeaderP: {fileID: 934666994} + SubHeaderP: {fileID: 1172723234} --- !u!114 &1177777400 MonoBehaviour: m_ObjectHideFlags: 0 @@ -35228,14 +35604,26 @@ MonoBehaviour: dialog: {fileID: 1336470761} tabsManager: {fileID: 1523610372} infoTags: + - tag: header + label: Remix Information + isReadOnly: 0 + - tag: subheader + label: Enter information about your remix here. + isReadOnly: 0 - tag: remixtitle label: Remix Title isReadOnly: 0 - tag: remixauthor - label: Remix Author + label: Remix Author isReadOnly: 0 - tag: divider - label: Divider Idol + label: Divider Chart + isReadOnly: 0 + - tag: header + label: Song Information + isReadOnly: 0 + - tag: subheader + label: Enter information about your remix's song here. isReadOnly: 0 - tag: idolgenre label: Song Genre @@ -35246,6 +35634,9 @@ MonoBehaviour: - tag: idolcredit label: Song Artist isReadOnly: 0 + - tag: divider + label: Divider Idol + isReadOnly: 0 flavourTags: [] infoContainer: {fileID: 1177777399} chart: @@ -38154,7 +38545,7 @@ MonoBehaviour: m_Right: 20 m_Top: 10 m_Bottom: 5 - m_ChildAlignment: 0 + m_ChildAlignment: 1 m_Spacing: 6 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 @@ -38332,9 +38723,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 51.5, y: 112.86438} - m_SizeDelta: {x: 1165, y: 40} - m_Pivot: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 41.5, y: 132.81616} + m_SizeDelta: {x: 1165, y: 25} + m_Pivot: {x: 0.5, y: 1} --- !u!114 &1503364109 MonoBehaviour: m_ObjectHideFlags: 0 @@ -38352,7 +38743,7 @@ MonoBehaviour: m_Right: 0 m_Top: 0 m_Bottom: 0 - m_ChildAlignment: 0 + m_ChildAlignment: 4 m_Spacing: 0 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 @@ -41680,7 +42071,7 @@ RectTransform: - {fileID: 564782388} - {fileID: 1144931393} m_Father: {fileID: 1776319213} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -42568,7 +42959,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 0, y: -5} + m_AnchoredPosition: {x: 0, y: -12.5} m_SizeDelta: {x: 1165, y: 10} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1694560419 @@ -44427,12 +44818,14 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: + - {fileID: 937032843} - {fileID: 797336684} - {fileID: 2083473858} - {fileID: 1651196875} - {fileID: 728113666} - - {fileID: 937032843} - {fileID: 1503364108} + - {fileID: 934666995} + - {fileID: 1172723235} m_Father: {fileID: 572765322} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -51450,7 +51843,7 @@ RectTransform: - {fileID: 798238754} - {fileID: 2086758091} m_Father: {fileID: 1776319213} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index 975aae6e..abf9b408 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -66,13 +66,13 @@ namespace HeavenStudio.Editor { infoContainer.AddDivider(this); } - else if (property.tag == "heading") + else if (property.tag == "header") { - infoContainer.AddDivider(this); + infoContainer.AddHeader(this, property.label); } - else if (property.tag == "subheading") + else if (property.tag == "subheader") { - infoContainer.AddDivider(this); + infoContainer.AddSubHeader(this, property.label); } else { diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs index 11451865..c6d826be 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -20,6 +20,8 @@ namespace HeavenStudio.Editor [Header("Layout Prefabs")] [SerializeField] private GameObject DividerP; + [SerializeField] private GameObject HeaderP; + [SerializeField] private GameObject SubHeaderP; public void Init(RemixPropertiesDialog diag) { @@ -84,10 +86,21 @@ namespace HeavenStudio.Editor public void AddDivider(RemixPropertiesDialog diag) { - GameObject prefab = DividerP; - InitPrefab(prefab); + InitPrefab(DividerP); } + public void AddHeader(RemixPropertiesDialog diag, string text) + { + var input = InitPrefab(HeaderP); + input.GetComponent().InitProperties(diag, "", text); + } + + public void AddSubHeader(RemixPropertiesDialog diag, string text) + { + var input = InitPrefab(SubHeaderP); + input.GetComponent().InitProperties(diag, "", text); + } + private GameObject InitPrefab(GameObject prefab, string tooltip = "") { GameObject input = Instantiate(prefab); From e0c782d4a1874f6b7c847143825501e25977e132 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 23:17:17 -0400 Subject: [PATCH 24/27] finish essential property work - fix minor bug related to karate man flow bar sounds --- Assets/Scenes/Editor.unity | 108 +++++++++++------- .../Scripts/BeatmapFormats/DynamicBeatmap.cs | 36 +++--- .../KarateMan/KarateManNoriController.cs | 11 +- .../RemixPropertiesDialog.cs | 30 +++-- .../Tabs/ChartInfoProperties.cs | 5 +- 5 files changed, 118 insertions(+), 72 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 61b46aae..b6b5a51c 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -6702,7 +6702,7 @@ MonoBehaviour: m_Right: 20 m_Top: 10 m_Bottom: 5 - m_ChildAlignment: 0 + m_ChildAlignment: 1 m_Spacing: 0 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 @@ -16598,10 +16598,26 @@ MonoBehaviour: m_GameObject: {fileID: 621827468} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4dcd15958462e4e488a04ef094e7ffcb, type: 3} + m_Script: {fileID: 11500000, guid: 4567e0acf98a9ef48b747da3b836a1a2, type: 3} m_Name: m_EditorClassIdentifier: - cursorCheckbox: {fileID: 0} + propertyHolder: {fileID: 231450549} + IntegerP: {fileID: 797336683} + FloatP: {fileID: 797336683} + BooleanP: {fileID: 2083473857} + DropdownP: {fileID: 728113665} + ColorP: {fileID: 1651196874} + StringP: {fileID: 937032842} + DividerP: {fileID: 1503364107} + HeaderP: {fileID: 934666994} + SubHeaderP: {fileID: 1172723234} + tags: + - tag: header + label: Rating Screen Text + isReadOnly: 0 + - tag: subheader + label: Coming Soon! + isReadOnly: 0 --- !u!114 &621827471 MonoBehaviour: m_ObjectHideFlags: 0 @@ -23213,7 +23229,7 @@ MonoBehaviour: m_HandleRect: {fileID: 1589389271} m_Direction: 2 m_Value: 1 - m_Size: 0.9996455 + m_Size: 0.9999803 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -30035,7 +30051,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91107} + m_AnchoredPosition: {x: 0, y: 129.91109} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 @@ -30540,6 +30556,49 @@ MonoBehaviour: DividerP: {fileID: 1503364107} HeaderP: {fileID: 934666994} SubHeaderP: {fileID: 1172723234} + tags: + - tag: header + label: Remix Information + isReadOnly: 0 + - tag: subheader + label: Enter information about your remix here. + isReadOnly: 0 + - tag: remixtitle + label: Remix Title + isReadOnly: 0 + - tag: remixauthor + label: Remix Author + isReadOnly: 0 + - tag: remixdesc + label: Description + isReadOnly: 0 + - tag: remixtags + label: Tags + isReadOnly: 0 + - tag: subheader + label: (split tags using commas ",") + isReadOnly: 0 + - tag: divider + label: Divider Chart + isReadOnly: 0 + - tag: header + label: Song Information + isReadOnly: 0 + - tag: subheader + label: Enter information about your remix's song here. + isReadOnly: 0 + - tag: idolsong + label: Song Name + isReadOnly: 0 + - tag: idolcredit + label: Song Artist + isReadOnly: 0 + - tag: idolgenre + label: Song Genre + isReadOnly: 0 + - tag: divider + label: Divider Idol + isReadOnly: 0 --- !u!114 &1177777400 MonoBehaviour: m_ObjectHideFlags: 0 @@ -35603,42 +35662,9 @@ MonoBehaviour: m_EditorClassIdentifier: dialog: {fileID: 1336470761} tabsManager: {fileID: 1523610372} - infoTags: - - tag: header - label: Remix Information - isReadOnly: 0 - - tag: subheader - label: Enter information about your remix here. - isReadOnly: 0 - - tag: remixtitle - label: Remix Title - isReadOnly: 0 - - tag: remixauthor - label: Remix Author - isReadOnly: 0 - - tag: divider - label: Divider Chart - isReadOnly: 0 - - tag: header - label: Song Information - isReadOnly: 0 - - tag: subheader - label: Enter information about your remix's song here. - isReadOnly: 0 - - tag: idolgenre - label: Song Genre - isReadOnly: 0 - - tag: idolsong - label: Song Name - isReadOnly: 0 - - tag: idolcredit - label: Song Artist - isReadOnly: 0 - - tag: divider - label: Divider Idol - isReadOnly: 0 - flavourTags: [] - infoContainer: {fileID: 1177777399} + containers: + - {fileID: 1177777399} + - {fileID: 621827470} chart: bpm: 0 musicVolume: 0 diff --git a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs index d8dda044..dd4b557b 100644 --- a/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs +++ b/Assets/Scripts/BeatmapFormats/DynamicBeatmap.cs @@ -26,28 +26,29 @@ namespace HeavenStudio {"productsubversion", 0}, // file format version {"riqversion", CurrentRiqVersion}, - // mapper set properties? (use this to flash the button) + // mapper set properties? (future: use this to flash the button) {"propertiesmodified", false}, ////// CATEGORY 1: SONG INFO // general chart info - {"remixtitle", "New Remix"}, // chart name - {"remixauthor", "Your Name"}, // charter's name - {"remixlevel", 1}, // chart difficulty (maybe offer a suggestion but still have the mapper determine it) - {"remixtempo", 120f}, // avg. chart tempo - {"remixtags", ""}, // chart tags - {"icontype", 0}, // chart icon (presets, custom - future) - {"iconurl", ""}, // custom icon location (future) + {"remixtitle", "New Remix"}, // chart name + {"remixauthor", "Your Name"}, // charter's name + {"remixdesc", "Remix Description"}, // chart description + {"remixlevel", 1}, // chart difficulty (maybe offer a suggestion but still have the mapper determine it) + {"remixtempo", 120f}, // avg. chart tempo + {"remixtags", ""}, // chart tags + {"icontype", 0}, // chart icon (presets, custom - future) + {"iconurl", ""}, // custom icon location (future) // chart song info - {"idolgenre", "Song Genre"}, // song genre - {"idolsong", "Song Name"}, // song name - {"idolcredit", "Artist"}, // song artist + {"idolgenre", "Song Genre"}, // song genre + {"idolsong", "Song Name"}, // song name + {"idolcredit", "Artist"}, // song artist ////// CATEGORY 2: PROLOGUE AND EPILOGUE // chart prologue - {"prologuetype", 0}, // prologue card animation (future) - {"prologuecaption", "Remix"}, // prologue card sub-title (future) + {"prologuetype", 0}, // prologue card animation (future) + {"prologuecaption", "Remix"}, // prologue card sub-title (future) // chart results screen messages {"resultcaption", "Rhythm League Notes"}, // result screen header @@ -331,6 +332,7 @@ namespace HeavenStudio /// public void PostProcess() { + DynamicBeatmap beatmapModel = new DynamicBeatmap(); Minigames.Minigame game; Minigames.GameAction action; System.Type type, pType; @@ -376,6 +378,14 @@ namespace HeavenStudio } e.DynamicData = dynamicData; } + //go thru each property of the model beatmap and add any missing keyvalue pair + foreach (var prop in beatmapModel.properties) + { + if (!properties.ContainsKey(prop.Key)) + { + properties.Add(prop.Key, prop.Value); + } + } } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs b/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs index 49c208d2..04e1cfa1 100644 --- a/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs +++ b/Assets/Scripts/Games/KarateMan/KarateManNoriController.cs @@ -37,6 +37,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan static float PeriodHigh = 15 / 60f; int noriMode = (int)KarateMan.NoriMode.None; + bool playedJust = false; int inputsToSwitch = 0; //takes 12% of inputs to fill the nori bar @@ -69,6 +70,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan NoriHolder = NoriHolderTengoku; NoriManiaInk00.SetActive(false); NoriManiaInk01.SetActive(false); + playedJust = false; break; case (int) KarateMan.NoriMode.Mania: MaxNori = 10; @@ -77,6 +79,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan NoriHolder = NoriHolderMania00; NoriManiaInk00.SetActive(true); NoriManiaInk01.SetActive(false); + playedJust = false; inputsToSwitch = KarateMan.CountHitsToEnd(fromBeat); break; @@ -85,6 +88,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan Nori = 0; NoriManiaInk00.SetActive(false); NoriManiaInk01.SetActive(false); + playedJust = false; return; } @@ -136,8 +140,9 @@ namespace HeavenStudio.Games.Scripts_KarateMan NoriHeartAnimators[i].Play("NoriFull", -1, (Time.time * PeriodHigh) % 1f); } } - if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f) + if (KarateMan.instance.NoriPerformance >= 0.6f && oldNori / MaxNori < 0.6f && !playedJust) { + playedJust = true; Jukebox.PlayOneShotGame("karateman/nori_just"); } UpdateHeartColours(); @@ -176,6 +181,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan } if (KarateMan.instance.NoriPerformance < 0.6f && oldNori / MaxNori >= 0.6f) { + playedJust = false; Jukebox.PlayOneShotGame("karateman/nori_ng"); } UpdateHeartColours(); @@ -189,6 +195,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan { if (Nori >= MaxNori) Jukebox.PlayOneShotGame("karateman/nori_through"); + playedJust = false; Nori = 0; foreach (Animator anim in NoriHeartAnimators) { @@ -215,6 +222,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan } } } + if (KarateMan.instance.NoriPerformance < 0.6f) + playedJust = false; UpdateHeartColours(); } diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs index abf9b408..07c53e7f 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/RemixPropertiesDialog.cs @@ -13,13 +13,8 @@ namespace HeavenStudio.Editor [Header("General References")] [SerializeField] TabsManager tabsManager; - [Header("Editable Properties")] - [SerializeField] PropertyTag[] infoTags; - [SerializeField] PropertyTag[] flavourTags; - [Header("Containers")] - [SerializeField] ChartInfoProperties infoContainer; - // [SerializeField] ChartFlavourProperties flavourContainer; + [SerializeField] ChartInfoProperties[] containers; public DynamicBeatmap chart; @@ -38,48 +33,51 @@ namespace HeavenStudio.Editor { ResetAllDialogs(); - infoContainer.Init(this); - //flavourContainer.Init(this); + foreach (var container in containers) + { + container.Init(this); + } tabsManager.OpenContent(); Editor.instance.canSelect = false; Editor.instance.inAuthorativeMenu = true; dialog.SetActive(true); + + chart = GameManager.instance.Beatmap; + chart["propertiesmodified"] = true; } } - public void SetupDialog() + public void SetupDialog(PropertyTag[] tags, ChartInfoProperties container) { chart = GameManager.instance.Beatmap; - PropertyTag[] tags = infoTags; - int i = 0; + chart["propertiesmodified"] = true; foreach (PropertyTag property in tags) { if (chart.properties.ContainsKey(property.tag)) { - infoContainer.AddParam(this, property.tag, chart.properties[property.tag], property.label, property.isReadOnly); + container.AddParam(this, property.tag, chart.properties[property.tag], property.label, property.isReadOnly); } else { if (property.tag == "divider") { - infoContainer.AddDivider(this); + container.AddDivider(this); } else if (property.tag == "header") { - infoContainer.AddHeader(this, property.label); + container.AddHeader(this, property.label); } else if (property.tag == "subheader") { - infoContainer.AddSubHeader(this, property.label); + container.AddSubHeader(this, property.label); } else { Debug.LogWarning("Property Menu generation Warning: Property " + property.tag + " not found, skipping..."); } } - i++; } } diff --git a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs index c6d826be..08bdb86c 100644 --- a/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs +++ b/Assets/Scripts/LevelEditor/RemixPropertiesDialog/Tabs/ChartInfoProperties.cs @@ -23,6 +23,9 @@ namespace HeavenStudio.Editor [SerializeField] private GameObject HeaderP; [SerializeField] private GameObject SubHeaderP; + [Header("Editable Properties")] + [SerializeField] RemixPropertiesDialog.PropertyTag[] tags; + public void Init(RemixPropertiesDialog diag) { dialog = diag; @@ -116,7 +119,7 @@ namespace HeavenStudio.Editor public override void OnOpenTab() { - dialog.SetupDialog(); + dialog.SetupDialog(tags, this); } public override void OnCloseTab() From 5dd7cdec2be827054140a69d774c4358b1ccb37e Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 23:26:19 -0400 Subject: [PATCH 25/27] loading: add extension filter for all supported formats --- Assets/Scripts/LevelEditor/Editor.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 46ae9194..5c379163 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -417,8 +417,9 @@ namespace HeavenStudio.Editor { var extensions = new[] { - new ExtensionFilter("Heaven Studio Remix File", new string[] { "riq" }), - new ExtensionFilter("Legacy Heaven Studio Remix", new string[] { "tengoku", "rhmania" }) + new ExtensionFilter("All Supported Files ", new string[] { "riq", "tengoku", "rhmania" }), + new ExtensionFilter("Heaven Studio Remix File ", new string[] { "riq" }), + new ExtensionFilter("Legacy Heaven Studio Remix ", new string[] { "tengoku", "rhmania" }) }; StandaloneFileBrowser.OpenFilePanelAsync("Open Remix", "", extensions, false, (string[] paths) => From e5c9d2687bd6f5962235f43f4b4c36581f83262a Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 23:30:35 -0400 Subject: [PATCH 26/27] fix new remix confirm button using wrong script --- Assets/Scenes/Editor.unity | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index b6b5a51c..24bd3147 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -11316,7 +11316,7 @@ MonoBehaviour: m_GameObject: {fileID: 449176920} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7e0cac45de7228a4c8f7bc6adb0751a2, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: m_Navigation: @@ -11363,8 +11363,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - SnapDialog: {fileID: 0} - isDown: 0 --- !u!114 &449176923 MonoBehaviour: m_ObjectHideFlags: 0 @@ -23228,8 +23226,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 1 - m_Size: 0.9999803 + m_Value: 0 + m_Size: 0.99854255 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -30051,7 +30049,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 129.91109} + m_AnchoredPosition: {x: 0, y: 129.9111} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1154875944 From fd0f5799f7e77f8bdd96cc030da24ff930079833 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 3 Sep 2022 23:36:08 -0400 Subject: [PATCH 27/27] new remix stops playback properly --- Assets/Scripts/LevelEditor/Editor.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 5c379163..3645aca8 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -397,6 +397,10 @@ namespace HeavenStudio.Editor public void NewRemix() { + if (Timeline.instance != null) + Timeline.instance?.Stop(0); + else + GameManager.instance.Stop(0); MusicBytes = null; LoadRemix(""); }