diff --git a/Assets/Editor/Editor.SHConfig b/Assets/Editor/Editor.SHConfig new file mode 100644 index 00000000..37edf50c --- /dev/null +++ b/Assets/Editor/Editor.SHConfig @@ -0,0 +1,4 @@ +Start Maximized: true +Working Scene ID: 97158628 +Window Size: {x: 1920, y: 1013} +Style: 0 \ No newline at end of file diff --git a/Assets/Fonts/Dangrek-Regular.shfont b/Assets/Fonts/Dangrek-Regular.shfont new file mode 100644 index 00000000..cb992fb0 Binary files /dev/null and b/Assets/Fonts/Dangrek-Regular.shfont differ diff --git a/Assets/Fonts/Dangrek-Regular.shfont.shmeta b/Assets/Fonts/Dangrek-Regular.shfont.shmeta new file mode 100644 index 00000000..65f95905 --- /dev/null +++ b/Assets/Fonts/Dangrek-Regular.shfont.shmeta @@ -0,0 +1,3 @@ +Name: Dangrek-Regular +ID: 174412429 +Type: 10 diff --git a/Assets/Fonts/Dangrek-Regular.ttf b/Assets/Fonts/Dangrek-Regular.ttf new file mode 100644 index 00000000..d9f127c7 Binary files /dev/null and b/Assets/Fonts/Dangrek-Regular.ttf differ diff --git a/Assets/Materials/UI/UIMat_WinScene.shmat b/Assets/Materials/UI/UIMat_WinScene.shmat index e9c36f65..786b9b70 100644 --- a/Assets/Materials/UI/UIMat_WinScene.shmat +++ b/Assets/Materials/UI/UIMat_WinScene.shmat @@ -4,5 +4,5 @@ Properties: data.color: {x: 1, y: 1, z: 1, w: 1} data.textureIndex: 57302694 - data.alpha: 0 + data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Scenes/MainGame.shade b/Assets/Scenes/MainGame.shade index dfe74af9..cba78bdb 100644 --- a/Assets/Scenes/MainGame.shade +++ b/Assets/Scenes/MainGame.shade @@ -9591,27 +9591,14 @@ gamePauseText: 11 canvas: 10 - EID: 199 - Name: =====Text==== + Name: Gameplay UI Canvas IsActive: true NumberOfChildren: 4 - Components: ~ - Scripts: ~ -- EID: 237 - Name: Score - IsActive: true - NumberOfChildren: 0 Components: - Transform Component: - Translate: {x: -800, y: 400, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} - IsActive: true - Text Renderer Component: - Text: My name is Brandon. - Font: 176667660 - IsActive: true - UI Component: - Canvas ID: 199 + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false IsActive: true Scripts: ~ - EID: 206 @@ -9630,24 +9617,8 @@ IsActive: true UI Component: Canvas ID: 199 - IsActive: true - Scripts: ~ -- EID: 139 - Name: Multiplier - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -800, y: 300, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} - IsActive: true - Text Renderer Component: - Text: TEST - Font: 176667660 - IsActive: true - UI Component: - Canvas ID: 199 + Hovered: false + Clicked: false IsActive: true Scripts: ~ - EID: 11 @@ -9664,6 +9635,91 @@ Text: Game Pause Font: 176667660 IsActive: false + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 139 + Name: Multiplier Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -800, y: 300, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 60, y: 60.0000038, z: 60} + IsActive: true + Text Renderer Component: + Text: TEST + Font: 176667660 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 463 + Name: Multiplier BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.833334029, y: 0.416666061, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 5, y: 1.66666651, z: 0.0166666675} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 237 + Name: Score Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -770.099915, y: 419.999969, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 60.0000038, y: 60.0000038, z: 60} + IsActive: true + Text Renderer Component: + Text: My name is Brandon. + Font: 176667660 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 462 + Name: Score BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.334998131, y: 0.500000477, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 6.66666603, y: 1.66666651, z: 0.0166666675} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true Scripts: ~ - EID: 198 Name: ====Raccoon==== @@ -9765,7 +9821,6 @@ Yaw: 360 Roll: 1.28065994e-06 Width: 1055 - Height: 604 Near: 0.00999999978 Far: 10000 Perspective: true @@ -10664,6 +10719,7 @@ Canvas Component: Canvas Width: 1920 Canvas Height: 1080 + Scale by canvas width: false IsActive: true Scripts: ~ - EID: 8 @@ -10687,6 +10743,8 @@ IsActive: true UI Component: Canvas ID: 10 + Hovered: false + Clicked: false IsActive: true Scripts: ~ - EID: 0 @@ -10710,6 +10768,8 @@ IsActive: true UI Component: Canvas ID: 10 + Hovered: false + Clicked: false IsActive: true Scripts: ~ - EID: 461 @@ -10733,5 +10793,7 @@ IsActive: true UI Component: Canvas ID: 10 + Hovered: false + Clicked: false IsActive: true Scripts: ~ \ No newline at end of file diff --git a/Assets/Scenes/MainMenu.shade b/Assets/Scenes/MainMenu.shade index e667c8e8..67416722 100644 --- a/Assets/Scenes/MainMenu.shade +++ b/Assets/Scenes/MainMenu.shade @@ -21,7 +21,7 @@ IsActive: true Renderable Component: Mesh: 141771688 - Material: 121834459 + Material: 129138332 IsActive: true UI Component: Canvas ID: 0 @@ -538,7 +538,7 @@ IsActive: true Text Renderer Component: Text: Options - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -558,7 +558,7 @@ IsActive: true Text Renderer Component: Text: Audio - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -594,7 +594,7 @@ IsActive: true Text Renderer Component: Text: Master - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -614,7 +614,7 @@ IsActive: true Text Renderer Component: Text: SFX - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -634,7 +634,7 @@ IsActive: true Text Renderer Component: Text: BGM - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -673,7 +673,7 @@ Material: 128676209 IsActive: true Slider Component: - Slider Value: 0 + Slider Value: 1 IsActive: true UI Component: Canvas ID: 19 @@ -696,7 +696,7 @@ Material: 128676209 IsActive: true Slider Component: - Slider Value: 0 + Slider Value: 1 IsActive: true UI Component: Canvas ID: 19 @@ -719,7 +719,7 @@ Material: 128676209 IsActive: true Slider Component: - Slider Value: 0 + Slider Value: 1 IsActive: true UI Component: Canvas ID: 19 @@ -739,7 +739,7 @@ IsActive: true Text Renderer Component: Text: Camera - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -775,7 +775,7 @@ IsActive: true Text Renderer Component: Text: FOV - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -795,7 +795,7 @@ IsActive: true Text Renderer Component: Text: Sensitivity - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -834,7 +834,7 @@ Material: 128676209 IsActive: true Slider Component: - Slider Value: 0 + Slider Value: 1 IsActive: true UI Component: Canvas ID: 19 @@ -857,7 +857,7 @@ Material: 128676209 IsActive: true Slider Component: - Slider Value: 0 + Slider Value: 1 IsActive: true UI Component: Canvas ID: 19 @@ -893,7 +893,7 @@ IsActive: true Text Renderer Component: Text: 100 - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -918,7 +918,7 @@ IsActive: true Text Renderer Component: Text: 100 - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -943,7 +943,7 @@ IsActive: true Text Renderer Component: Text: 100 - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -984,7 +984,7 @@ IsActive: true Text Renderer Component: Text: 100 - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -1009,7 +1009,7 @@ IsActive: true Text Renderer Component: Text: 100 - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 19 @@ -1024,14 +1024,14 @@ maxValue: 100 - EID: 46 Name: Credits Canvas - IsActive: true + IsActive: false NumberOfChildren: 3 Components: Canvas Component: Canvas Width: 1920 Canvas Height: 1080 Scale by canvas width: false - IsActive: true + IsActive: false Scripts: ~ - EID: 47 Name: BackGround @@ -1093,7 +1093,7 @@ IsActive: true Text Renderer Component: Text: Credits - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 46 @@ -1103,14 +1103,14 @@ Scripts: ~ - EID: 50 Name: Level Select Canvas - IsActive: true + IsActive: false NumberOfChildren: 3 Components: Canvas Component: Canvas Width: 1920 Canvas Height: 1080 Scale by canvas width: false - IsActive: true + IsActive: false Scripts: ~ - EID: 51 Name: BackGround @@ -1172,7 +1172,7 @@ IsActive: true Text Renderer Component: Text: Level Select - Font: 176667660 + Font: 174412429 IsActive: true UI Component: Canvas ID: 50 diff --git a/Assets/Scripts/Gameplay/SC_GameManager.cs b/Assets/Scripts/Gameplay/SC_GameManager.cs index 3657904b..651ba7ec 100644 --- a/Assets/Scripts/Gameplay/SC_GameManager.cs +++ b/Assets/Scripts/Gameplay/SC_GameManager.cs @@ -100,7 +100,7 @@ public class GameManager : Script if (itemScored) { multiplierText.GetComponent().Text = $"X {currMultiplierCombo}"; - multiplierText.GetComponent().LocalScale -= fontScalar * Time.DeltaTimeF; + //multiplierText.GetComponent().LocalScale -= fontScalar * Time.DeltaTimeF; currMultiplierDuration += Time.DeltaTimeF; if (currMultiplierDuration >= maxMultiplierDuration) @@ -113,7 +113,7 @@ public class GameManager : Script } else { - multiplierText.GetComponent().LocalScale = Vector3.Zero; + //multiplierText.GetComponent().LocalScale = Vector3.Zero; } if ((timer > 0 && totalItemCount <= 0) || Input.GetKeyDown(Input.KeyCode.F1)) diff --git a/Assets/Scripts/UI/EasingHelper.cs b/Assets/Scripts/UI/EasingHelper.cs index b1301d4e..5f8ce4fe 100644 --- a/Assets/Scripts/UI/EasingHelper.cs +++ b/Assets/Scripts/UI/EasingHelper.cs @@ -11,6 +11,9 @@ namespace SHADE_Scripting.UI { EASE_IN_SINE, EASE_OUT_SINE, + EASE_OUT_BOUNCE, + EASE_IN_BOUNCE, + EASE_INOUT_BOUNCE } public static class EasingHelper @@ -28,7 +31,20 @@ namespace SHADE_Scripting.UI { return EaseOutSine(value); }break; - + case EASING_METHOD.EASE_OUT_BOUNCE: + { + return EaseOutBounce(value); + }break; + case EASING_METHOD.EASE_IN_BOUNCE: + { + return EaseInBounce(value); + } + break; + case EASING_METHOD.EASE_INOUT_BOUNCE: + { + return EaseInOutBounce(value); + } + break; default: return 0.0f; } @@ -44,5 +60,37 @@ namespace SHADE_Scripting.UI return (float)(1.0f - Math.Sin(value * Math.PI) / 2.0f); } + + private static float EaseOutBounce(float value) + { + const float n1 = 7.5625f; + const float d1 = 2.75f; + if (value < 1.0f / d1) + { + return n1 * value * value; + } else if (value < 2.0f / d1) + { + return n1 * (value -= 2.25f / d1) * value + 0.9375f; + } + else + { + return n1 * (value -= 2.625f / d1) * value + 0.984375f; + + } + } + + private static float EaseInBounce(float value) + { + return 1 - EaseOutBounce(1 - value); + } + + + private static float EaseInOutBounce(float value) + { + return (value < 0.5f) + ?(1.0f - EaseOutBounce(1.0f - 2.0f * value)) / 2.0f + : (1.0f + EaseOutBounce(2.0f * value - 1.0f)) / 2.0f; + } + } } diff --git a/Assets/Scripts/UI/SC_ButtonFX.cs b/Assets/Scripts/UI/SC_ButtonFX.cs index bf248724..0e490a35 100644 --- a/Assets/Scripts/UI/SC_ButtonFX.cs +++ b/Assets/Scripts/UI/SC_ButtonFX.cs @@ -30,16 +30,30 @@ namespace SHADE_Scripting.UI public float clickScale = 0.9f; + [NonSerialized] + private TweenThread thread; + + [NonSerialized] + private bool tweening = false; + [NonSerialized] + private float currentScale = 1.0f; + protected override void awake() { onHoverEnterACHandler = SHADE.Audio.CreateAudioClip(onHoverEnterSound); onHoverExitACHandler = SHADE.Audio.CreateAudioClip(onHoverExitSound); onClickACHandler = SHADE.Audio.CreateAudioClip(onClickSound); onReleaseACHandler = SHADE.Audio.CreateAudioClip(onReleaseSound); + + + } protected override void start() { + thread = TweenManager.CreateTweenThread(0.1f, 0.9f, 1.0f, EASING_METHOD.EASE_IN_SINE); + + Transform transform = GetComponent(); if (transform == null) return; @@ -55,35 +69,53 @@ namespace SHADE_Scripting.UI { if (onClickSound != "") onClickACHandler.Play(); - transform.LocalScale = defaultScale * clickScale; + tweening = true; + if(thread != null) + thread.Reset(currentScale,clickScale); }); ui.OnRelease.RegisterAction(() => { if (onReleaseSound != "") onReleaseACHandler.Play(); - transform.LocalScale = defaultScale; + tweening = true; + if (thread != null) + thread.Reset(currentScale, 1.0f); }); ui.OnHoverEnter.RegisterAction(() => { - if(onHoverEnterSound != "") + if (onHoverEnterSound != "") onHoverEnterACHandler.Play(); - transform.LocalScale = defaultScale * hoverScale; + tweening = true; + if (thread != null) + thread.Reset(currentScale, hoverScale); }); ui.OnHoverExit.RegisterAction(() => { if (onHoverExitSound != "") onHoverExitACHandler.Play(); - transform.LocalScale = defaultScale; + tweening = true; + if (thread != null) + thread.Reset(currentScale, 1.0f); }); } protected override void update() { - + Transform transform = GetComponent(); + if (transform == null) + return; + if (tweening == true && thread != null) + { + Debug.Log("Tweening value " + thread.GetValue()); + transform.LocalScale = defaultScale * thread.GetValue(); + currentScale = thread.GetValue(); + if (thread.IsCompleted()) + tweening = false; + } } diff --git a/Assets/Scripts/UI/SC_SliderText.cs b/Assets/Scripts/UI/SC_SliderText.cs index 54d59f28..e3f5a8b3 100644 --- a/Assets/Scripts/UI/SC_SliderText.cs +++ b/Assets/Scripts/UI/SC_SliderText.cs @@ -14,7 +14,17 @@ namespace SHADE_Scripting.UI public int minValue = 0; public int maxValue = 0; + protected override void start() + { + Slider slider = sliderObj.GetComponent(); + TextRenderable text = GetComponent(); + + if (slider != null && text != null) + { + text.Text = ((int)(slider.GetValue() * (maxValue - minValue) + minValue)).ToString(); + } + } protected override void update() { Slider slider = sliderObj.GetComponent(); diff --git a/SHADE_Engine/src/Editor/EditorWindow/ViewportWindow/SHEditorViewport.cpp b/SHADE_Engine/src/Editor/EditorWindow/ViewportWindow/SHEditorViewport.cpp index fde2a5f3..9b055535 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/ViewportWindow/SHEditorViewport.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/ViewportWindow/SHEditorViewport.cpp @@ -70,7 +70,8 @@ namespace SHADE beginCursorPos = ImGui::GetCursorScreenPos(); viewportMousePos = { mousePos.x - beginCursorPos.x, mousePos.y - beginCursorPos.y }; gfxSystem->GetMousePickSystem()->SetViewportMousePos(viewportMousePos); - ImGui::Image((ImTextureID)descriptorSet, { beginContentRegionAvailable.x, beginContentRegionAvailable.y }); + SHVec2 viewportSize = CalculateWindowSize(beginContentRegionAvailable); + ImGui::Image((ImTextureID)descriptorSet, { viewportSize.x, viewportSize.y }); if (ImGui::IsWindowHovered() && ImGui::IsMouseDown(ImGuiMouseButton_Right)) { diff --git a/SHADE_Engine/src/UI/SHUISystem.cpp b/SHADE_Engine/src/UI/SHUISystem.cpp index 05bd9ab5..87a6552d 100644 --- a/SHADE_Engine/src/UI/SHUISystem.cpp +++ b/SHADE_Engine/src/UI/SHUISystem.cpp @@ -432,16 +432,25 @@ namespace SHADE if (comp.GetValue() < 0.0f) comp.value = 0.0f; } - - if (comp.GetValue() != tempValue) + try { - //Set shader value. - auto renderable = SHComponentManager::GetComponent_s(comp.GetEID()); //auto texture = SHResourceManager::Get(comp.GetDefaultTexture()); auto material = renderable->GetModifiableMaterial(); - - material->SetProperty("data.sliderThreshold", comp.GetValue()); + if (renderable) + { + if (comp.GetValue() != material->GetProperty("data.sliderThreshold")) + { + //Set shader value. + + material->SetProperty("data.sliderThreshold", comp.GetValue()); + + } + } + + } + catch (...) + { } diff --git a/SHADE_Managed/src/Scripts/ScriptStore.cxx b/SHADE_Managed/src/Scripts/ScriptStore.cxx index aba63eb2..5d3a3bac 100644 --- a/SHADE_Managed/src/Scripts/ScriptStore.cxx +++ b/SHADE_Managed/src/Scripts/ScriptStore.cxx @@ -903,6 +903,12 @@ namespace SHADE { return pair->type; } + + /* Sort */ + System::String^ sortKeyAccessor(System::Type^ type) + { + return type->Name; + } } void ScriptStore::refreshScriptTypeList() @@ -926,6 +932,10 @@ namespace SHADE Func^ selector = gcnew Func(selectorFunc); scriptTypeList = Enumerable::Select(whereResult, selector); + /* Sort: By Alphabetical Order */ + Func^ sorter = gcnew Func(sortKeyAccessor); + scriptTypeList = Enumerable::OrderBy(scriptTypeList, sorter); + // Log std::ostringstream oss; oss << "[ScriptStore] Successfully retrieved references to " << Enumerable::Count(scriptTypeList)