diff --git a/Assets/Materials/UI/Instruction_01.shmat b/Assets/Materials/UI/Instruction_01.shmat index bbcb6352..4dc449f7 100644 --- a/Assets/Materials/UI/Instruction_01.shmat +++ b/Assets/Materials/UI/Instruction_01.shmat @@ -3,6 +3,6 @@ SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} - data.textureIndex: 62200943 + data.textureIndex: 52834559 data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UI/Instruction_02.shmat b/Assets/Materials/UI/Instruction_02.shmat index 3084049a..d5947130 100644 --- a/Assets/Materials/UI/Instruction_02.shmat +++ b/Assets/Materials/UI/Instruction_02.shmat @@ -3,6 +3,6 @@ SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} - data.textureIndex: 53303669 + data.textureIndex: 60762613 data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UI/Instruction_03.shmat b/Assets/Materials/UI/Instruction_03.shmat index b548319f..9dd722c0 100644 --- a/Assets/Materials/UI/Instruction_03.shmat +++ b/Assets/Materials/UI/Instruction_03.shmat @@ -3,6 +3,6 @@ SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} - data.textureIndex: 61780097 + data.textureIndex: 53309226 data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UI/Instruction_04.shmat b/Assets/Materials/UI/Instruction_04.shmat index dba0a45d..430ee860 100644 --- a/Assets/Materials/UI/Instruction_04.shmat +++ b/Assets/Materials/UI/Instruction_04.shmat @@ -3,6 +3,6 @@ SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} - data.textureIndex: 59178524 + data.textureIndex: 63002526 data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UIMat_Credits.shmat b/Assets/Materials/UIMat_Credits.shmat new file mode 100644 index 00000000..4c5f5a74 --- /dev/null +++ b/Assets/Materials/UIMat_Credits.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 59379300 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UIMat_Credits.shmat.shmeta b/Assets/Materials/UIMat_Credits.shmat.shmeta new file mode 100644 index 00000000..9ee55eef --- /dev/null +++ b/Assets/Materials/UIMat_Credits.shmat.shmeta @@ -0,0 +1,3 @@ +Name: UIMat_Credits +ID: 120332672 +Type: 7 diff --git a/Assets/Materials/UIMat_Multiplier.shmat b/Assets/Materials/UIMat_Multiplier.shmat new file mode 100644 index 00000000..f8ac5bf9 --- /dev/null +++ b/Assets/Materials/UIMat_Multiplier.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 52018575 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UIMat_Multiplier.shmat.shmeta b/Assets/Materials/UIMat_Multiplier.shmat.shmeta new file mode 100644 index 00000000..76e66de1 --- /dev/null +++ b/Assets/Materials/UIMat_Multiplier.shmat.shmeta @@ -0,0 +1,3 @@ +Name: UIMat_Multiplier +ID: 133784677 +Type: 7 diff --git a/Assets/Materials/UIMat_Score.shmat b/Assets/Materials/UIMat_Score.shmat new file mode 100644 index 00000000..b6ef4e94 --- /dev/null +++ b/Assets/Materials/UIMat_Score.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 54238246 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UIMat_Score.shmat.shmeta b/Assets/Materials/UIMat_Score.shmat.shmeta new file mode 100644 index 00000000..72f21348 --- /dev/null +++ b/Assets/Materials/UIMat_Score.shmat.shmeta @@ -0,0 +1,3 @@ +Name: UIMat_Score +ID: 127527215 +Type: 7 diff --git a/Assets/Materials/UIMat_Timer.shmat b/Assets/Materials/UIMat_Timer.shmat new file mode 100644 index 00000000..b96493d8 --- /dev/null +++ b/Assets/Materials/UIMat_Timer.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 60494030 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/UIMat_Timer.shmat.shmeta b/Assets/Materials/UIMat_Timer.shmat.shmeta new file mode 100644 index 00000000..9419bd1a --- /dev/null +++ b/Assets/Materials/UIMat_Timer.shmat.shmeta @@ -0,0 +1,3 @@ +Name: UIMat_Timer +ID: 126220632 +Type: 7 diff --git a/Assets/Scenes/Level2.shade b/Assets/Scenes/Level2.shade index f0c33b5b..e3de1671 100644 --- a/Assets/Scenes/Level2.shade +++ b/Assets/Scenes/Level2.shade @@ -2228,24 +2228,54 @@ gamePauseText: 11 canvas: 10 - EID: 199 - Name: =====Text==== + Name: Gameplay Canvas IsActive: true - NumberOfChildren: 4 - Components: ~ + NumberOfChildren: 3 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true Scripts: ~ - EID: 237 - Name: Score + Name: Score Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -800, y: 365, z: 0.600000024} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 100, y: 100, z: 60} + IsActive: true + Text Renderer Component: + Text: My name is Brandon. + Font: 174412429 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 522 + Name: Score BG IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -800, y: 400, z: 0} + Translate: {x: 0.300000012, y: 0.600000024, z: 0.98999995} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} + Scale: {x: 3.45600009, y: 2, z: 1} IsActive: true - Text Renderer Component: - Text: My name is Brandon. - Font: 176667660 + Renderable Component: + Mesh: 141771688 + Material: 127527215 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false IsActive: true Scripts: ~ - EID: 206 @@ -2262,36 +2292,56 @@ Text: My name is Brandon. Font: 176667660 IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true Scripts: ~ - EID: 139 - Name: Multiplier + Name: Multiplier Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -800, y: 250, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 50, y: 50, z: 60} + IsActive: true + Text Renderer Component: + Text: X2 + Font: 174412429 + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.MultiplierTextFx + Enabled: true + maxSize: 1 + minSize: 0.300000012 + minAlpha: 0.300000012 +- EID: 523 + Name: Multiplier BG IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -800, y: 300, z: 0} + Translate: {x: 0.400000006, y: 0.400000006, z: 0.98999995} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} + Scale: {x: 4.26499987, y: 2, z: 1} IsActive: true - Text Renderer Component: - Text: TEST - Font: 176667660 + Renderable Component: + Mesh: 141771688 + Material: 133784677 IsActive: true - Scripts: ~ -- EID: 11 - Name: GamePause - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -250, y: 300, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 100, y: 100, z: 100} + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false IsActive: true - Text Renderer Component: - Text: Game Pause - Font: 176667660 - IsActive: false Scripts: ~ - EID: 198 Name: ====Raccoon==== @@ -2414,7 +2464,7 @@ armLength: 3 turnSpeedPitch: 0.200000003 turnSpeedYaw: 0.400000006 - inverseXControls: false + inverseXControls: true inverseYControls: false pitchUpperClamp: 45 pitchLowerClamp: 5 @@ -4782,9 +4832,9 @@ - Type: JumpPad Enabled: true - EID: 10 - Name: Canvas + Name: Pause Canvas IsActive: true - NumberOfChildren: 3 + NumberOfChildren: 4 Components: Canvas Component: Canvas Width: 1920 @@ -4800,23 +4850,31 @@ Transform Component: Translate: {x: 0, y: 100, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 300, y: 200, z: 500} + Scale: {x: 400, y: 100, z: 500} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 52901020 - Hovered Texture: 62235279 - Clicked Texture: 64722619 + Default Texture: 63979907 + Hovered Texture: 51379325 + Clicked Texture: 66788278 IsActive: true UI Component: Canvas ID: 10 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 0 Name: QuitButton IsActive: true @@ -4825,23 +4883,31 @@ Transform Component: Translate: {x: 0, y: -300, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 300, y: 200, z: 500} + Scale: {x: 400, y: 100, z: 500} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 66477839 - Hovered Texture: 65045286 - Clicked Texture: 58607560 + Default Texture: 61602036 + Hovered Texture: 58910810 + Clicked Texture: 57786063 IsActive: true UI Component: Canvas ID: 10 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 461 Name: RetryButton IsActive: true @@ -4850,22 +4916,50 @@ Transform Component: Translate: {x: 0, y: -100, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 300, y: 200, z: 500} + Scale: {x: 400, y: 100, z: 500} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 55782622 - Hovered Texture: 58972174 - Clicked Texture: 55224464 + Default Texture: 64806384 + Hovered Texture: 58347825 + Clicked Texture: 63234380 IsActive: true UI Component: Canvas ID: 10 Hovered: false Clicked: false IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 +- EID: 11 + Name: GamePause + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -250, y: 300, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 100, y: 100, z: 100} + IsActive: true + Text Renderer Component: + Text: Game Pause + Font: 176667660 + IsActive: false + UI Component: + Canvas ID: 10 + Hovered: false + Clicked: false + IsActive: true Scripts: ~ - EID: 19 Name: ====EnvironmentMaster==== @@ -13333,4 +13427,12 @@ Enabled: true alphaValue: 1 fadeInTime: 0.5 - fadeOutTime: 0.5 \ No newline at end of file + fadeOutTime: 0.5 +- EID: 172 + Name: TweenManager + IsActive: true + NumberOfChildren: 0 + Components: ~ + Scripts: + - Type: SHADE_Scripting.UI.TweenManager + Enabled: true \ No newline at end of file diff --git a/Assets/Scenes/LoseScene.shade b/Assets/Scenes/LoseScene.shade index bd9d45c3..f7c01b1d 100644 --- a/Assets/Scenes/LoseScene.shade +++ b/Assets/Scenes/LoseScene.shade @@ -29,7 +29,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0.5} + Translate: {x: 0, y: 0, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} IsActive: true @@ -49,18 +49,18 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 75, z: 0.400000006} + Translate: {x: 0, y: 75, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 400, y: 200, z: 1} + Scale: {x: 400, y: 100, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 65788519 - Hovered Texture: 55999018 - Clicked Texture: 66382894 + Default Texture: 58945566 + Hovered Texture: 58758882 + Clicked Texture: 50335070 IsActive: true UI Component: Canvas ID: 1 @@ -71,24 +71,32 @@ - Type: ChangeSceneButton Enabled: true sceneID: 97158628 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 6 Name: Quit Button IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: 0.400000006} + Translate: {x: 0, y: -200, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 400, y: 200, z: 1} + Scale: {x: 400, y: 100, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 66477839 - Hovered Texture: 65045286 - Clicked Texture: 58607560 + Default Texture: 61602036 + Hovered Texture: 58910810 + Clicked Texture: 57786063 IsActive: true UI Component: Canvas ID: 1 @@ -98,6 +106,14 @@ Scripts: - Type: QuitButton Enabled: true + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 3 Name: Camera IsActive: true @@ -131,38 +147,10 @@ mainGameScene: 86098106 mainMainScene: 97158628 - EID: 7 - Name: TransitionCanvas - IsActive: true - NumberOfChildren: 1 - Components: - Canvas Component: - Canvas Width: 1920 - Canvas Height: 1080 - Scale by canvas width: false - IsActive: true - Scripts: ~ -- EID: 8 - Name: Transition + Name: TweenManager IsActive: true NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0, y: 0, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1920, y: 1080, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 120016136 - IsActive: true - UI Component: - Canvas ID: 7 - Hovered: false - Clicked: false - IsActive: true + Components: ~ Scripts: - - Type: SHADE_Scripting.UI.SceneFadeInOut - Enabled: true - alphaValue: 1 - fadeInTime: 0.5 - fadeOutTime: 0.5 \ No newline at end of file + - Type: SHADE_Scripting.UI.TweenManager + Enabled: true \ No newline at end of file diff --git a/Assets/Scenes/MainMenu.shade b/Assets/Scenes/MainMenu.shade index 946e7a8d..1edd67b5 100644 --- a/Assets/Scenes/MainMenu.shade +++ b/Assets/Scenes/MainMenu.shade @@ -1,7 +1,7 @@ - EID: 0 Name: Main Menu Canvas IsActive: true - NumberOfChildren: 9 + NumberOfChildren: 3 Components: Canvas Component: Canvas Width: 1920 @@ -29,161 +29,6 @@ Clicked: false IsActive: true Scripts: ~ -- EID: 5 - Name: Start Game Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: 100, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 52901020 - Hovered Texture: 62235279 - Clicked Texture: 64722619 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: - - Type: ChangeSceneButton - Enabled: true - sceneID: 96668835 -- EID: 6 - Name: Quit Game Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: -400, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 66477839 - Hovered Texture: 65045286 - Clicked Texture: 58607560 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: - - Type: QuitButton - Enabled: true -- EID: 7 - Name: Level Select Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: 0, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 52901020 - Hovered Texture: 62235279 - Clicked Texture: 64722619 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: ~ -- EID: 9 - Name: How To Play Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: -100, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 65084899 - Hovered Texture: 58647112 - Clicked Texture: 55758383 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: ~ -- EID: 10 - Name: Credits Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: -200, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 52901020 - Hovered Texture: 62235279 - Clicked Texture: 64722619 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: ~ -- EID: 11 - Name: Options Button - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -700, y: -300, z: 0.400000006} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 450, y: 100, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 129340704 - IsActive: true - Button Component: - Default Texture: 52901020 - Hovered Texture: 62235279 - Clicked Texture: 64722619 - IsActive: true - UI Component: - Canvas ID: 0 - Hovered: false - Clicked: false - IsActive: true - Scripts: ~ - EID: 12 Name: Game Icon IsActive: true @@ -210,25 +55,236 @@ maxScale: 1.20000005 duration: 1.5 - EID: 54 - Name: test - IsActive: false - NumberOfChildren: 0 + Name: Main Menu Button Group + IsActive: true + NumberOfChildren: 6 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0} + Translate: {x: -60, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 0 - Material: 0 - IsActive: false + Scale: {x: 0.899999976, y: 0.899999976, z: 1} + IsActive: true UI Component: Canvas ID: 0 Hovered: false Clicked: false - IsActive: false + IsActive: true Scripts: ~ +- EID: 5 + Name: Start Game Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: 100, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 63979907 + Hovered Texture: 51379325 + Clicked Texture: 66788278 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: ChangeSceneButton + Enabled: true + sceneID: 96668835 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: "event:/Music/player_undetected\x00���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������" + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 +- EID: 6 + Name: Quit Game Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: -525, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 61602036 + Hovered Texture: 58910810 + Clicked Texture: 57786063 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: QuitButton + Enabled: true + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 +- EID: 7 + Name: Level Select Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: -25, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 66852025 + Hovered Texture: 65992947 + Clicked Texture: 57197441 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 50 +- EID: 9 + Name: How To Play Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: -150, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 66240282 + Hovered Texture: 61984910 + Clicked Texture: 58181792 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 13 +- EID: 10 + Name: Credits Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: -275, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 64474447 + Hovered Texture: 55990309 + Clicked Texture: 51792742 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 46 +- EID: 11 + Name: Options Button + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -700, y: -400, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 450, y: 100, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 58867111 + Hovered Texture: 54697998 + Clicked Texture: 62936121 + IsActive: true + UI Component: + Canvas ID: 0 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 19 - EID: 2 Name: Light IsActive: true @@ -296,23 +352,23 @@ Scripts: ~ - EID: 14 Name: BackGround - IsActive: true + IsActive: false NumberOfChildren: 0 Components: Transform Component: Translate: {x: 0, y: 0, z: 0.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} - IsActive: true + IsActive: false Renderable Component: Mesh: 141771688 Material: 121834459 - IsActive: true + IsActive: false UI Component: Canvas ID: 13 Hovered: false Clicked: false - IsActive: true + IsActive: false Scripts: ~ - EID: 15 Name: Instruction Image @@ -333,7 +389,14 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.MultiImageList + Enabled: true + imageAssetList: + - 124926341 + - 128721520 + - 124482180 + - 129768803 - EID: 16 Name: NextButton IsActive: true @@ -342,23 +405,35 @@ Transform Component: Translate: {x: 800, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 100, y: 100, z: 1} + Scale: {x: 100, y: 382, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 13 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.MultiImageListControlButton + Enabled: true + isNext: true + multiImageList: 15 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 17 Name: PrevButton IsActive: true @@ -366,24 +441,36 @@ Components: Transform Component: Translate: {x: -800, y: 0, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 100, y: 100, z: 1} + Rotate: {x: 0, y: 0, z: 3.14159274} + Scale: {x: 100, y: 382, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 13 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.MultiImageListControlButton + Enabled: true + isNext: false + multiImageList: 15 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 18 Name: BackButton IsActive: true @@ -391,7 +478,7 @@ Components: Transform Component: Translate: {x: -800, y: 450, z: 0} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 3.14159274} Scale: {x: 100, y: 100, z: 1} IsActive: true Renderable Component: @@ -399,16 +486,35 @@ Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 13 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 0 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 19 Name: Options Canvas IsActive: false @@ -447,7 +553,7 @@ Components: Transform Component: Translate: {x: -800, y: 450, z: 0} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 3.14159274} Scale: {x: 100, y: 100, z: 1} IsActive: true Renderable Component: @@ -455,23 +561,26 @@ Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 19 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 0 - EID: 22 Name: Options Title Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -150, y: 400, z: -0.5} + Translate: {x: -150, y: 400, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} IsActive: true @@ -491,7 +600,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -900, y: 300, z: -0.5} + Translate: {x: -900, y: 300, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} IsActive: true @@ -527,7 +636,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: -0.5} + Translate: {x: 0, y: 0, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -547,7 +656,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -100, z: -0.5} + Translate: {x: 0, y: -100, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -567,7 +676,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: -0.5} + Translate: {x: 0, y: -200, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -672,7 +781,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -900, y: -120, z: -0.5} + Translate: {x: -900, y: -120, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} IsActive: true @@ -708,7 +817,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: -0.5} + Translate: {x: 0, y: 0, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -728,7 +837,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -100, z: -0.5} + Translate: {x: 0, y: -100, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -826,7 +935,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0} + Translate: {x: 0, y: 0, z: 1} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -839,14 +948,19 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.SliderText + Enabled: true + sliderObj: 29 + minValue: 0 + maxValue: 100 - EID: 41 Name: SFX Volume Slider Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -100, z: 0.5} + Translate: {x: 0, y: -100, z: 1} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -859,14 +973,19 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.SliderText + Enabled: true + sliderObj: 30 + minValue: 0 + maxValue: 100 - EID: 42 Name: BGM Volume Slider Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: 0.5} + Translate: {x: 0, y: -200, z: 1} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -879,7 +998,12 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.SliderText + Enabled: true + sliderObj: 31 + minValue: 0 + maxValue: 100 - EID: 43 Name: Camera Slider Text Group IsActive: true @@ -902,7 +1026,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0} + Translate: {x: 0, y: 0, z: 1} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -915,14 +1039,19 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.SliderText + Enabled: true + sliderObj: 37 + minValue: 0 + maxValue: 100 - EID: 45 Name: Sensitivity Slider Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -100, z: 0.5} + Translate: {x: 0, y: -100, z: 1} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 75, y: 75, z: 1} IsActive: true @@ -935,7 +1064,12 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.SliderText + Enabled: true + sliderObj: 38 + minValue: 0 + maxValue: 100 - EID: 46 Name: Credits Canvas IsActive: false @@ -949,23 +1083,23 @@ Scripts: ~ - EID: 47 Name: BackGround - IsActive: false + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 1} + Translate: {x: 0, y: -3800, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1920, y: 1080, z: 1} - IsActive: false + Scale: {x: 1920, y: 8026, z: 1} + IsActive: true Renderable Component: Mesh: 141771688 - Material: 121834459 - IsActive: false + Material: 120332672 + IsActive: true UI Component: Canvas ID: 46 Hovered: false Clicked: false - IsActive: false + IsActive: true Scripts: ~ - EID: 48 Name: BackButton @@ -974,7 +1108,7 @@ Components: Transform Component: Translate: {x: -800, y: 450, z: 0} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 3.14159274} Scale: {x: 100, y: 100, z: 1} IsActive: true Renderable Component: @@ -982,23 +1116,26 @@ Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 46 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 0 - EID: 49 Name: Credits Title Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -150, y: 400, z: -0.5} + Translate: {x: -150, y: 400, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} IsActive: true @@ -1050,7 +1187,7 @@ Components: Transform Component: Translate: {x: -800, y: 450, z: 0} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 3.14159274} Scale: {x: 100, y: 100, z: 1} IsActive: true Renderable Component: @@ -1058,23 +1195,26 @@ Material: 129340704 IsActive: true Button Component: - Default Texture: 0 - Hovered Texture: 0 - Clicked Texture: 0 + Default Texture: 55358401 + Hovered Texture: 59400474 + Clicked Texture: 52333376 IsActive: true UI Component: Canvas ID: 50 Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ChangeCanvasButton + Enabled: true + canvasToActivate: 0 - EID: 53 Name: Level Select Title Text IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -150, y: 400, z: -0.5} + Translate: {x: -150, y: 400, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} IsActive: true @@ -1087,40 +1227,4 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ -- EID: 55 - Name: Transition Canvas - IsActive: true - NumberOfChildren: 1 - Components: - Canvas Component: - Canvas Width: 1920 - Canvas Height: 1080 - Scale by canvas width: false - IsActive: true - Scripts: ~ -- EID: 56 - Name: Transition - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0, y: 0, z: 0.100000001} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1920, y: 1080, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 120016136 - IsActive: true - UI Component: - Canvas ID: 55 - Hovered: false - Clicked: false - IsActive: true - Scripts: - - Type: SHADE_Scripting.UI.SceneFadeInOut - Enabled: true - alphaValue: 1 - fadeInTime: 0.5 - fadeOutTime: 0.5 \ No newline at end of file + Scripts: ~ \ No newline at end of file diff --git a/Assets/Scenes/WinScene.shade b/Assets/Scenes/WinScene.shade index 57096086..c6e676c3 100644 --- a/Assets/Scenes/WinScene.shade +++ b/Assets/Scenes/WinScene.shade @@ -29,7 +29,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0.5} + Translate: {x: 0, y: 0, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} IsActive: true @@ -49,18 +49,18 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 75, z: 0.400000006} + Translate: {x: 0, y: 75, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 400, y: 200, z: 1} + Scale: {x: 400, y: 100, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 65788519 - Hovered Texture: 55999018 - Clicked Texture: 66382894 + Default Texture: 58945566 + Hovered Texture: 58758882 + Clicked Texture: 50335070 IsActive: true UI Component: Canvas ID: 1 @@ -71,24 +71,32 @@ - Type: ChangeSceneButton Enabled: true sceneID: 97158628 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 6 Name: Quit Button IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: 0.400000006} + Translate: {x: 0, y: -200, z: 0} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 400, y: 200, z: 1} + Scale: {x: 400, y: 100, z: 1} IsActive: true Renderable Component: Mesh: 141771688 Material: 129340704 IsActive: true Button Component: - Default Texture: 66477839 - Hovered Texture: 65045286 - Clicked Texture: 58607560 + Default Texture: 61602036 + Hovered Texture: 58910810 + Clicked Texture: 57786063 IsActive: true UI Component: Canvas ID: 1 @@ -98,6 +106,14 @@ Scripts: - Type: QuitButton Enabled: true + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: event:/Music/player_undetected + onHoverExitSound: event:/Music/player_undetected + onClickSound: event:/Music/player_undetected + onReleaseSound: event:/Music/player_undetected + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 3 Name: Camera IsActive: true @@ -131,38 +147,10 @@ mainGameScene: 86098106 mainMainScene: 97158628 - EID: 7 - Name: TransitionCanvas - IsActive: true - NumberOfChildren: 1 - Components: - Canvas Component: - Canvas Width: 1920 - Canvas Height: 1080 - Scale by canvas width: false - IsActive: true - Scripts: ~ -- EID: 8 - Name: Transition + Name: TweenManager IsActive: true NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0, y: 0, z: 0.100000001} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1920, y: 1080, z: 1} - IsActive: true - Renderable Component: - Mesh: 141771688 - Material: 120016136 - IsActive: true - UI Component: - Canvas ID: 7 - Hovered: false - Clicked: false - IsActive: true + Components: ~ Scripts: - - Type: SHADE_Scripting.UI.SceneFadeInOut - Enabled: true - alphaValue: 1 - fadeInTime: 0.5 - fadeOutTime: 0.5 \ No newline at end of file + - Type: SHADE_Scripting.UI.TweenManager + Enabled: true \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/SC_GameManager.cs b/Assets/Scripts/Gameplay/SC_GameManager.cs index b873dae9..ae71aced 100644 --- a/Assets/Scripts/Gameplay/SC_GameManager.cs +++ b/Assets/Scripts/Gameplay/SC_GameManager.cs @@ -84,6 +84,8 @@ public class GameManager : Script AudioHandler.audioClipHandlers["SFXHumming"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_humming"); AudioHandler.audioClipHandlers["SFXHumming"].SetVolume(0.15f); AudioHandler.audioClipHandlers["SFXHumming"].Play(); + + SceneFadeInOut.Instance.CallFadeOut(); Application.IsCursorVisible = false; } @@ -102,13 +104,13 @@ public class GameManager : Script timer -= Time.DeltaTimeF; if(scoreText) - scoreText.GetComponent().Text = $"Score: {Score}"; + scoreText.GetComponent().Text = $"{Score}"; if(timeText) timeText.GetComponent().Text = $"Time Left: {timer.ToString("0.00")}"; if (itemScored) { - multiplierText.GetComponent().Text = $"X {currMultiplierCombo}"; + //multiplierText.GetComponent().Text = $"X {currMultiplierCombo}"; //multiplierText.GetComponent().LocalScale -= fontScalar * Time.DeltaTimeF; currMultiplierDuration += Time.DeltaTimeF; @@ -168,9 +170,17 @@ public class GameManager : Script totalItemCount -= 1; itemScored = true; currMultiplierDuration = 0; - multiplierText.GetComponent().LocalScale = new Vector3(multiplierFont, multiplierFont, multiplierFont); + //multiplierText.GetComponent().LocalScale = new Vector3(multiplierFont, multiplierFont, multiplierFont); + if (currMultiplierCombo < maxMultiplierCombo) currMultiplierCombo += 1; - } + + MultiplierTextFx fx = multiplierText.GetScript(); + if (fx) + { + fx.ShowMultiplier(currMultiplierCombo, maxMultiplierDuration); + } + + } } diff --git a/Assets/Scripts/UI/EasingHelper.cs b/Assets/Scripts/UI/EasingHelper.cs index 5f8ce4fe..d0480f7a 100644 --- a/Assets/Scripts/UI/EasingHelper.cs +++ b/Assets/Scripts/UI/EasingHelper.cs @@ -57,7 +57,7 @@ namespace SHADE_Scripting.UI private static float EaseOutSine(float value) { - return (float)(1.0f - Math.Sin(value * Math.PI) / 2.0f); + return (float)(Math.Sin(value * Math.PI) / 2.0f); } diff --git a/Assets/Scripts/UI/SC_MultiplierTextFx.cs b/Assets/Scripts/UI/SC_MultiplierTextFx.cs new file mode 100644 index 00000000..1b3129ec --- /dev/null +++ b/Assets/Scripts/UI/SC_MultiplierTextFx.cs @@ -0,0 +1,76 @@ +using SHADE; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SHADE_Scripting.UI +{ + public class MultiplierTextFx : Script + { + [NonSerialized] + private TweenThread sizeThread; + private TweenThread alphaThread; + + + public float maxSize = 1.0f; + public float minSize = 0.3f; + public float minAlpha = 0.3f; + + + private bool showMultiplier = false; + + [NonSerialized] + private Vector3 defaultScale; + + protected override void start() + { + sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE); + alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE); + Transform transform = GetComponent(); + if (transform != null) + { + defaultScale = transform.LocalScale; + transform.LocalScale = Vector3.Zero; + } + + + showMultiplier = false; + + } + + protected override void update() + { + Transform transform = GetComponent(); + if (transform != null && showMultiplier == true) + { + if(sizeThread.IsCompleted()) + { + transform.LocalScale = Vector3.Zero; + showMultiplier = false; + } + else + { + transform.LocalScale = defaultScale * sizeThread.GetValue(); + GetComponentInChildren().Material.SetProperty("data.alpha",alphaThread.GetValue()); + } + } + } + + + public void ShowMultiplier(int multiplier, float duration) + { + GetComponent().Text = $"X {multiplier}"; + sizeThread.duration = duration; + alphaThread.duration = duration; + + sizeThread.Reset(); + alphaThread.Reset(); + showMultiplier = true; + + } + + + } +} diff --git a/Assets/Scripts/UI/SC_MultiplierTextFx.cs.shmeta b/Assets/Scripts/UI/SC_MultiplierTextFx.cs.shmeta new file mode 100644 index 00000000..1cb235f8 --- /dev/null +++ b/Assets/Scripts/UI/SC_MultiplierTextFx.cs.shmeta @@ -0,0 +1,3 @@ +Name: SC_MultiplierTextFx +ID: 158917210 +Type: 9 diff --git a/Assets/Scripts/UI/SC_SceneFadeInOut.cs b/Assets/Scripts/UI/SC_SceneFadeInOut.cs index 5c6ebb77..4224474b 100644 --- a/Assets/Scripts/UI/SC_SceneFadeInOut.cs +++ b/Assets/Scripts/UI/SC_SceneFadeInOut.cs @@ -37,12 +37,13 @@ namespace SHADE_Scripting.UI fadeR = GameObject.GetComponent(); fadeR.Material.SetProperty("data.alpha", alphaValue); + GameObject.Parent.SetActive(false); //alphaValue = fadeR.Material.GetProperty("data.alpha"); } protected override void start() { - CallFadeOut(); + } protected override void update() @@ -55,12 +56,17 @@ namespace SHADE_Scripting.UI if (fadeInTime == 0.0f) { alphaValue = 1.0f; + } else { alphaValue += (1.0f / fadeInTime) * Time.DeltaTimeF; } - if (alphaValue >= 1.0f) alphaValue = 1.0f; + if (alphaValue >= 1.0f) + { + alphaValue = 1.0f; + GameObject.Parent.SetActive(false); + } } if (fadeOut) //fading out @@ -69,12 +75,17 @@ namespace SHADE_Scripting.UI if (fadeOutTime == 0.0f) { alphaValue = 0.0f; + } else { alphaValue -= (1.0f / fadeOutTime) * Time.DeltaTimeF; } - if (alphaValue <= 0.0f) alphaValue = 0.0f; + if (alphaValue <= 0.0f) + { + alphaValue = 0.0f; + GameObject.Parent.SetActive(false); + } } fadeR.Material.SetProperty("data.alpha", alphaValue); @@ -91,18 +102,21 @@ namespace SHADE_Scripting.UI { fadeIn = true; fadeOut = false; + GameObject.Parent.SetActive(true); } public void CallFadeOut() { fadeOut = true; fadeIn = false; + GameObject.Parent.SetActive(true); } public void CallFadeStop() { fadeOut = false; fadeIn = false; + GameObject.Parent.SetActive(false); } public bool FadeOutFinished() diff --git a/Assets/Scripts/UI/SC_TweenManager.cs b/Assets/Scripts/UI/SC_TweenManager.cs index b940c9fc..0bdfd779 100644 --- a/Assets/Scripts/UI/SC_TweenManager.cs +++ b/Assets/Scripts/UI/SC_TweenManager.cs @@ -16,8 +16,6 @@ namespace SHADE_Scripting.UI private float value = 0.0f; public float startValue = 0.0f; public float endValue = 1.0f; - - public TweenThread(float duration, float startValue, float endValue, EASING_METHOD method) { this.duration = duration; @@ -25,7 +23,6 @@ namespace SHADE_Scripting.UI this.startValue = startValue; this.endValue = endValue; } - public void Update(float deltaTime) { if (timer >= duration) @@ -37,12 +34,10 @@ namespace SHADE_Scripting.UI value = EasingHelper.EaseHelp(timer/duration, method) * (endValue - startValue) + startValue ; } - public bool IsCompleted() { return timer >= duration; } - public void Reset() { timer = 0.0f; @@ -61,15 +56,69 @@ namespace SHADE_Scripting.UI startValue = endValue; endValue = temp; } - - public float GetValue() { return value; } - } + + public class TweenThreadVec3 + { + private float timer = 0.0f; + public float duration = 1.0f; + public EASING_METHOD method; + private Vector3 value = Vector3.Zero; + public Vector3 startValue = Vector3.Zero; + public Vector3 endValue = Vector3.Zero; + public TweenThreadVec3(float duration, Vector3 startValue, Vector3 endValue, EASING_METHOD method) + { + this.duration = duration; + this.method = method; + this.startValue = startValue; + this.endValue = endValue; + } + public void Update(float deltaTime) + { + if (timer >= duration) + return; + + timer += deltaTime; + if (timer >= duration) + timer = duration; + + value = (endValue - startValue) * EasingHelper.EaseHelp(timer / duration, method) + startValue; + } + public bool IsCompleted() + { + return timer >= duration; + } + public void Reset() + { + timer = 0.0f; + value = startValue; + } + public void Reset(Vector3 startValue, Vector3 endValue) + { + Reset(); + this.startValue = startValue; + this.endValue = endValue; + } + public void ResetInvert() + { + Reset(); + Vector3 temp = startValue; + startValue = endValue; + endValue = temp; + } + public Vector3 GetValue() + { + return value; + } + } + + + public class TweenManager : Script { public static TweenManager Instance { get; private set; } @@ -77,6 +126,9 @@ namespace SHADE_Scripting.UI [NonSerialized] private List threadList; + [NonSerialized] + private List threadVec3List; + protected override void awake() { if (Instance != null && Instance != this) @@ -85,6 +137,7 @@ namespace SHADE_Scripting.UI Instance = this; threadList = new List(); + threadVec3List = new List(); } @@ -101,6 +154,11 @@ namespace SHADE_Scripting.UI { thread.Update(Time.DeltaTimeF); } + + foreach (TweenThreadVec3 thread in threadVec3List) + { + thread.Update(Time.DeltaTimeF); + } } @@ -116,5 +174,20 @@ namespace SHADE_Scripting.UI return thread; } + public static TweenThreadVec3 CreateTweenThreadVec3(float duration, Vector3 startValue, Vector3 endValue, EASING_METHOD method) + { + if (Instance == null) + return null; + + + TweenThreadVec3 thread = new TweenThreadVec3(duration, startValue, endValue, method); + Instance.threadVec3List.Add(thread); + thread.Reset(); + return thread; + } + + + + } } diff --git a/Assets/Shaders/ParticleEmit_CS.glsl b/Assets/Shaders/ParticleEmit_CS.glsl new file mode 100644 index 00000000..421e2ce1 --- /dev/null +++ b/Assets/Shaders/ParticleEmit_CS.glsl @@ -0,0 +1,117 @@ +#version 450 + +layout(local_size_x = 128) in; + +struct EmitterParameters +{ + vec4 angularMin; + vec4 angularMax; + vec4 lifeAndSizeRange; // min life, max life, min size, max size +} + +struct ParticleData +{ + vec4 position; + vec4 rotation; + vec4 velocity; + vec4 acceleration; + vec4 scaleAndDecay; + float life; + uint textureIndex; +} + +struct GenericData +{ + //! Delta time + float dt; + + //! Elapsed time of the application + float elapsedTime; + + //! Viewport width of the scene (excluding imgui, that means smaller than window) + uint viewportWidth; + + //! Ditto but for height + uint viewportHeight; +}; + +layout (set = 0, binding = 0) uniform GenericDataBuffer +{ + GenericData data; +} genericDataBuffer; + +layout (std430, set = 2, binding = 0) readonly buffer EmitterBuffer +{ + EmitterParameters data; +} emitterParams; + +layout (std430, set = 2, binding = 1) coherent restrict buffer ParticlesInputBuffer +{ + ParticleData data[]; +} inputParticles; + +// output buffer not needed +// layout (std430, set = 2, binding = 2) coherent restrict buffer ParticlesOutputBuffer +// { +// ParticleData data[]; +// } outputParticles; + +layout (std430, set = 2, binding = 3) coherent restrict buffer ParticlesFreelistBuffer +{ + int freeCount; + int freeIndices[]; + +} freelist; + + +// push constants +layout(std140, push_constant) uniform EmitterPushConstant +{ + vec4 emitterPosition; + uint emissionCount; + +} emitterPushConstant; + +uint pcg_hash(uint seed) +{ + uint state = seed * 747796405u + 2891336453u; + uint word = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (word >> 22u) ^ word; +} + +// Used to advance the PCG state. +uint rand_pcg(inout uint rng_state) +{ + uint state = rng_state; + rng_state = rng_state * 747796405u + 2891336453u; + uint word = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (word >> 22u) ^ word; +} + +// Advances the prng state and returns the corresponding random float. +float rand(inout uint state) +{ + uint x = rand_pcg(state); + state = x; + return float(x)*uintBitsToFloat(0x2f800004u); +} + +void main() +{ + uint emitterInvocationIndex = gl_GlobalInvocationID.x; + + if (emitterInvocationIndex >= emitterPushConstant.emissionCount) + return; + + int freelistIndex = atomicAdd (freelist.freeCount, -1) - 1; + if (freelistIndex < 0) + atomicAdd (freelist.freeCount, 1); + + ParticleData particle; + + int index = freelist.freeIndices[freelistIndex]; + particle.position = emitterPosition; + particle.life = emitterParams.10.0f; + + particles[index] = particle; +} \ No newline at end of file diff --git a/Assets/Shaders/ParticleUpdate_CS.glsl b/Assets/Shaders/ParticleUpdate_CS.glsl new file mode 100644 index 00000000..7649ee63 --- /dev/null +++ b/Assets/Shaders/ParticleUpdate_CS.glsl @@ -0,0 +1,141 @@ +#version 450 + +layout(local_size_x = 128) in; + +struct DrawArraysIndirectArgs +{ + uint count; + uint instanceCount; + uint first; + uint baseInstance; +}; + +struct ParticleData +{ + vec4 position; + vec4 rotation; + vec4 velocity; + vec4 acceleration; + vec4 scaleAndDecay; + float life; + uint textureIndex; +} + +struct GenericData +{ + //! Delta time + float dt; + + //! Elapsed time of the application + float elapsedTime; + + //! Viewport width of the scene (excluding imgui, that means smaller than window) + uint viewportWidth; + + //! Ditto but for height + uint viewportHeight; +}; + +layout(set = 1, binding = 0) uniform CameraData +{ + vec4 position; + mat4 vpMat; + mat4 viewMat; + mat4 projMat; +} cameraData; + + +layout (set = 0, binding = 0) uniform GenericDataBuffer +{ + GenericData data; +} genericDataBuffer; + +layout (std430, set = 2, binding = 1) coherent restrict readonly buffer ParticlesInputBuffer +{ + ParticleData data[]; +} inputParticles; + +// output buffer not needed +layout (std430, set = 2, binding = 2) coherent restrict buffer ParticlesOutputBuffer +{ + ParticleData data[]; +} outputParticles; + +layout (std430, set = 2, binding = 3) coherent restrict buffer ParticlesFreelistBuffer +{ + int freeCount; + int freeIndices[]; + +} freelist; + +layout (std430, set = 2, binding = 4) coherent restrict buffer IndicesData +{ + uint indices[]; +}; + +layout (std140, set = 2, binding = 5) coherent restrict uniform IndirectDrawArgs +{ + DrawArraysIndirectArgs indirectArgs; +}; + +// push constants +layout(std140, push_constant) uniform EmitterPushConstant +{ + vec4 emitterPosition; + uint emissionCount; + +} emitterPushConstant; + +uint pcg_hash(uint seed) +{ + uint state = seed * 747796405u + 2891336453u; + uint word = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (word >> 22u) ^ word; +} + +// Used to advance the PCG state. +uint rand_pcg(inout uint rng_state) +{ + uint state = rng_state; + rng_state = rng_state * 747796405u + 2891336453u; + uint word = ((state >> ((state >> 28u) + 4u)) ^ state) * 277803737u; + return (word >> 22u) ^ word; +} + +// Advances the prng state and returns the corresponding random float. +float rand(inout uint state) +{ + uint x = rand_pcg(state); + state = x; + return float(x)*uintBitsToFloat(0x2f800004u); +} + +void main() +{ + uint index = gl_GlobalInvocationID.x; + + ParticleData particle = inputParticles.data[index]; + + if (particle.lifetime > 0.0f) + { + // particle.position += particle.velocity * dt; + + // particle.lifetime -= dt; + // particle.size -= 1.2f * dt; + // particle.color += 1.0f * dt; + + if (particle.lifetime < 0.0f || particle.size < 0.0f) + { + particle.lifetime = 0.0f; + particle.position.x = 99999.0f; + + outputParticles.data[index] = particle; + freelist.freeIndices[atomicAdd(freelist.freeCount, 1)] = int (index); + return; + } + + outputParticles.data[index] = particle; + uint drawIndex = atomicAdd (indirectArgs.instanceCount, 1); + indices[drawIndex] = index; + } +} \ No newline at end of file diff --git a/Assets/Texture/Buttons/Button_Credits_Hover.dds b/Assets/Texture/Buttons/Button_Credits_Hover.dds new file mode 100644 index 00000000..e19b01e0 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_Credits_Hover.shtex b/Assets/Texture/Buttons/Button_Credits_Hover.shtex new file mode 100644 index 00000000..6d3becbf Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_Credits_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_Credits_Hover.shtex.shmeta new file mode 100644 index 00000000..eb1dd35c --- /dev/null +++ b/Assets/Texture/Buttons/Button_Credits_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Credits_Hover +ID: 55990309 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Credits_Idle.dds b/Assets/Texture/Buttons/Button_Credits_Idle.dds new file mode 100644 index 00000000..4441e21f Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_Credits_Idle.shtex b/Assets/Texture/Buttons/Button_Credits_Idle.shtex new file mode 100644 index 00000000..2fe6495d Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_Credits_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_Credits_Idle.shtex.shmeta new file mode 100644 index 00000000..fba8bb0b --- /dev/null +++ b/Assets/Texture/Buttons/Button_Credits_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Credits_Idle +ID: 64474447 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Credits_Pressed.dds b/Assets/Texture/Buttons/Button_Credits_Pressed.dds new file mode 100644 index 00000000..e8c7f159 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_Credits_Pressed.shtex b/Assets/Texture/Buttons/Button_Credits_Pressed.shtex new file mode 100644 index 00000000..d9a31373 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Credits_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_Credits_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_Credits_Pressed.shtex.shmeta new file mode 100644 index 00000000..0b887971 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Credits_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Credits_Pressed +ID: 51792742 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Hover.dds b/Assets/Texture/Buttons/Button_HowToPlay_Hover.dds new file mode 100644 index 00000000..731b6a84 Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex b/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex new file mode 100644 index 00000000..3d197fcb Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex.shmeta new file mode 100644 index 00000000..99664eb4 --- /dev/null +++ b/Assets/Texture/Buttons/Button_HowToPlay_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_HowToPlay_Hover +ID: 61984910 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Idle.dds b/Assets/Texture/Buttons/Button_HowToPlay_Idle.dds new file mode 100644 index 00000000..27a5c5de Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex b/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex new file mode 100644 index 00000000..6768b883 Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex.shmeta new file mode 100644 index 00000000..7864247b --- /dev/null +++ b/Assets/Texture/Buttons/Button_HowToPlay_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_HowToPlay_Idle +ID: 66240282 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Pressed.dds b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.dds new file mode 100644 index 00000000..57436b81 Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex new file mode 100644 index 00000000..46489ae3 Binary files /dev/null and b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex.shmeta new file mode 100644 index 00000000..93ad299d --- /dev/null +++ b/Assets/Texture/Buttons/Button_HowToPlay_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_HowToPlay_Pressed +ID: 58181792 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Hover.dds b/Assets/Texture/Buttons/Button_LevelSelect_Hover.dds new file mode 100644 index 00000000..8901b9e2 Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex b/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex new file mode 100644 index 00000000..6552652b Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex.shmeta new file mode 100644 index 00000000..580c9aa3 --- /dev/null +++ b/Assets/Texture/Buttons/Button_LevelSelect_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_LevelSelect_Hover +ID: 65992947 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Idle.dds b/Assets/Texture/Buttons/Button_LevelSelect_Idle.dds new file mode 100644 index 00000000..2fde3e67 Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex b/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex new file mode 100644 index 00000000..c6dcfd8f Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex.shmeta new file mode 100644 index 00000000..b06912cc --- /dev/null +++ b/Assets/Texture/Buttons/Button_LevelSelect_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_LevelSelect_Idle +ID: 66852025 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Pressed.dds b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.dds new file mode 100644 index 00000000..28c78e7b Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex new file mode 100644 index 00000000..1f0e3913 Binary files /dev/null and b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex.shmeta new file mode 100644 index 00000000..b8c39cbb --- /dev/null +++ b/Assets/Texture/Buttons/Button_LevelSelect_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_LevelSelect_Pressed +ID: 57197441 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_MainMenu_Hover.dds b/Assets/Texture/Buttons/Button_MainMenu_Hover.dds new file mode 100644 index 00000000..6beefe43 Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex b/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex new file mode 100644 index 00000000..51eeccf7 Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex.shmeta new file mode 100644 index 00000000..73dcc914 --- /dev/null +++ b/Assets/Texture/Buttons/Button_MainMenu_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_MainMenu_Hover +ID: 58758882 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_MainMenu_Idle.dds b/Assets/Texture/Buttons/Button_MainMenu_Idle.dds new file mode 100644 index 00000000..bf6f26dc Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex b/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex new file mode 100644 index 00000000..6af46820 Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex.shmeta new file mode 100644 index 00000000..cd437a71 --- /dev/null +++ b/Assets/Texture/Buttons/Button_MainMenu_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_MainMenu_Idle +ID: 58945566 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_MainMenu_Pressed.dds b/Assets/Texture/Buttons/Button_MainMenu_Pressed.dds new file mode 100644 index 00000000..93696875 Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex b/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex new file mode 100644 index 00000000..6e2904f2 Binary files /dev/null and b/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex.shmeta new file mode 100644 index 00000000..3ad56690 --- /dev/null +++ b/Assets/Texture/Buttons/Button_MainMenu_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_MainMenu_Pressed +ID: 50335070 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Options_Hover.dds b/Assets/Texture/Buttons/Button_Options_Hover.dds new file mode 100644 index 00000000..b21b99e5 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_Options_Hover.shtex b/Assets/Texture/Buttons/Button_Options_Hover.shtex new file mode 100644 index 00000000..fd877b5a Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_Options_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_Options_Hover.shtex.shmeta new file mode 100644 index 00000000..d9982cbd --- /dev/null +++ b/Assets/Texture/Buttons/Button_Options_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Options_Hover +ID: 54697998 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Options_Idle.dds b/Assets/Texture/Buttons/Button_Options_Idle.dds new file mode 100644 index 00000000..d9b18cb8 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_Options_Idle.shtex b/Assets/Texture/Buttons/Button_Options_Idle.shtex new file mode 100644 index 00000000..7fdf9e59 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_Options_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_Options_Idle.shtex.shmeta new file mode 100644 index 00000000..7ed2b446 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Options_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Options_Idle +ID: 58867111 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Options_Pressed.dds b/Assets/Texture/Buttons/Button_Options_Pressed.dds new file mode 100644 index 00000000..a0d6f14a Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_Options_Pressed.shtex b/Assets/Texture/Buttons/Button_Options_Pressed.shtex new file mode 100644 index 00000000..b3f2bbb0 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Options_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_Options_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_Options_Pressed.shtex.shmeta new file mode 100644 index 00000000..8c6d98cb --- /dev/null +++ b/Assets/Texture/Buttons/Button_Options_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Options_Pressed +ID: 62936121 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Quit_Hover.dds b/Assets/Texture/Buttons/Button_Quit_Hover.dds new file mode 100644 index 00000000..181a4ab6 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_Quit_Hover.shtex b/Assets/Texture/Buttons/Button_Quit_Hover.shtex new file mode 100644 index 00000000..92d30c1b Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_Quit_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_Quit_Hover.shtex.shmeta new file mode 100644 index 00000000..9d9b3471 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Quit_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Quit_Hover +ID: 58910810 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Quit_Idle.dds b/Assets/Texture/Buttons/Button_Quit_Idle.dds new file mode 100644 index 00000000..1e6a35bd Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_Quit_Idle.shtex b/Assets/Texture/Buttons/Button_Quit_Idle.shtex new file mode 100644 index 00000000..37cbbdd5 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_Quit_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_Quit_Idle.shtex.shmeta new file mode 100644 index 00000000..83764772 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Quit_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Quit_Idle +ID: 61602036 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Quit_Pressed.dds b/Assets/Texture/Buttons/Button_Quit_Pressed.dds new file mode 100644 index 00000000..1f7d7331 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_Quit_Pressed.shtex b/Assets/Texture/Buttons/Button_Quit_Pressed.shtex new file mode 100644 index 00000000..4e0391df Binary files /dev/null and b/Assets/Texture/Buttons/Button_Quit_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_Quit_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_Quit_Pressed.shtex.shmeta new file mode 100644 index 00000000..829a97e0 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Quit_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Quit_Pressed +ID: 57786063 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Retry_Hover.dds b/Assets/Texture/Buttons/Button_Retry_Hover.dds new file mode 100644 index 00000000..5eb05b41 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_Retry_Hover.shtex b/Assets/Texture/Buttons/Button_Retry_Hover.shtex new file mode 100644 index 00000000..a6cee8ed Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_Retry_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_Retry_Hover.shtex.shmeta new file mode 100644 index 00000000..28928eda --- /dev/null +++ b/Assets/Texture/Buttons/Button_Retry_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Retry_Hover +ID: 58347825 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Retry_Idle.dds b/Assets/Texture/Buttons/Button_Retry_Idle.dds new file mode 100644 index 00000000..09ad55f3 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_Retry_Idle.shtex b/Assets/Texture/Buttons/Button_Retry_Idle.shtex new file mode 100644 index 00000000..00592238 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_Retry_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_Retry_Idle.shtex.shmeta new file mode 100644 index 00000000..7f2cf050 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Retry_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Retry_Idle +ID: 64806384 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Retry_Pressed.dds b/Assets/Texture/Buttons/Button_Retry_Pressed.dds new file mode 100644 index 00000000..a7a5c125 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_Retry_Pressed.shtex b/Assets/Texture/Buttons/Button_Retry_Pressed.shtex new file mode 100644 index 00000000..a3b7dce9 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Retry_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_Retry_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_Retry_Pressed.shtex.shmeta new file mode 100644 index 00000000..d4064d14 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Retry_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Retry_Pressed +ID: 63234380 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Start_Hover.dds b/Assets/Texture/Buttons/Button_Start_Hover.dds new file mode 100644 index 00000000..6ce4756e Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Hover.dds differ diff --git a/Assets/Texture/Buttons/Button_Start_Hover.shtex b/Assets/Texture/Buttons/Button_Start_Hover.shtex new file mode 100644 index 00000000..ad298931 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Hover.shtex differ diff --git a/Assets/Texture/Buttons/Button_Start_Hover.shtex.shmeta b/Assets/Texture/Buttons/Button_Start_Hover.shtex.shmeta new file mode 100644 index 00000000..08f16bb9 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Start_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Start_Hover +ID: 51379325 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Start_Idle.dds b/Assets/Texture/Buttons/Button_Start_Idle.dds new file mode 100644 index 00000000..aefc7976 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Idle.dds differ diff --git a/Assets/Texture/Buttons/Button_Start_Idle.shtex b/Assets/Texture/Buttons/Button_Start_Idle.shtex new file mode 100644 index 00000000..6f363805 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Idle.shtex differ diff --git a/Assets/Texture/Buttons/Button_Start_Idle.shtex.shmeta b/Assets/Texture/Buttons/Button_Start_Idle.shtex.shmeta new file mode 100644 index 00000000..8cd43f09 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Start_Idle.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Start_Idle +ID: 63979907 +Type: 3 diff --git a/Assets/Texture/Buttons/Button_Start_Pressed.dds b/Assets/Texture/Buttons/Button_Start_Pressed.dds new file mode 100644 index 00000000..47ce28af Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Pressed.dds differ diff --git a/Assets/Texture/Buttons/Button_Start_Pressed.shtex b/Assets/Texture/Buttons/Button_Start_Pressed.shtex new file mode 100644 index 00000000..0025bfe7 Binary files /dev/null and b/Assets/Texture/Buttons/Button_Start_Pressed.shtex differ diff --git a/Assets/Texture/Buttons/Button_Start_Pressed.shtex.shmeta b/Assets/Texture/Buttons/Button_Start_Pressed.shtex.shmeta new file mode 100644 index 00000000..c0d6f217 --- /dev/null +++ b/Assets/Texture/Buttons/Button_Start_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Button_Start_Pressed +ID: 66788278 +Type: 3 diff --git a/Assets/Texture/Buttons/howToPlay_default.dds b/Assets/Texture/Buttons/howToPlay_default.dds deleted file mode 100644 index b29bb336..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_default.shtex b/Assets/Texture/Buttons/howToPlay_default.shtex deleted file mode 100644 index 44fd4ab9..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_default.shtex.shmeta b/Assets/Texture/Buttons/howToPlay_default.shtex.shmeta deleted file mode 100644 index da1023a1..00000000 --- a/Assets/Texture/Buttons/howToPlay_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: howToPlay_default -ID: 65084899 -Type: 3 diff --git a/Assets/Texture/Buttons/howToPlay_hover.dds b/Assets/Texture/Buttons/howToPlay_hover.dds deleted file mode 100644 index 1d59d29b..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_hover.shtex b/Assets/Texture/Buttons/howToPlay_hover.shtex deleted file mode 100644 index daafd0ac..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_hover.shtex.shmeta b/Assets/Texture/Buttons/howToPlay_hover.shtex.shmeta deleted file mode 100644 index 044046c3..00000000 --- a/Assets/Texture/Buttons/howToPlay_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: howToPlay_hover -ID: 58647112 -Type: 3 diff --git a/Assets/Texture/Buttons/howToPlay_pressed.dds b/Assets/Texture/Buttons/howToPlay_pressed.dds deleted file mode 100644 index 08f50be5..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_pressed.shtex b/Assets/Texture/Buttons/howToPlay_pressed.shtex deleted file mode 100644 index 15396e92..00000000 Binary files a/Assets/Texture/Buttons/howToPlay_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/howToPlay_pressed.shtex.shmeta b/Assets/Texture/Buttons/howToPlay_pressed.shtex.shmeta deleted file mode 100644 index 96ea8621..00000000 --- a/Assets/Texture/Buttons/howToPlay_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: howToPlay_pressed -ID: 55758383 -Type: 3 diff --git a/Assets/Texture/Buttons/mainMenu_default.dds b/Assets/Texture/Buttons/mainMenu_default.dds deleted file mode 100644 index d06e997a..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_default.shtex b/Assets/Texture/Buttons/mainMenu_default.shtex deleted file mode 100644 index 552473a2..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_default.shtex.shmeta b/Assets/Texture/Buttons/mainMenu_default.shtex.shmeta deleted file mode 100644 index 04b06d0d..00000000 --- a/Assets/Texture/Buttons/mainMenu_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: mainMenu_default -ID: 65788519 -Type: 3 diff --git a/Assets/Texture/Buttons/mainMenu_hover.dds b/Assets/Texture/Buttons/mainMenu_hover.dds deleted file mode 100644 index 3c30985a..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_hover.shtex b/Assets/Texture/Buttons/mainMenu_hover.shtex deleted file mode 100644 index 1b54850b..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_hover.shtex.shmeta b/Assets/Texture/Buttons/mainMenu_hover.shtex.shmeta deleted file mode 100644 index f0a7cc7f..00000000 --- a/Assets/Texture/Buttons/mainMenu_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: mainMenu_hover -ID: 55999018 -Type: 3 diff --git a/Assets/Texture/Buttons/mainMenu_pressed.dds b/Assets/Texture/Buttons/mainMenu_pressed.dds deleted file mode 100644 index b384e5c2..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_pressed.shtex b/Assets/Texture/Buttons/mainMenu_pressed.shtex deleted file mode 100644 index 1f39d443..00000000 Binary files a/Assets/Texture/Buttons/mainMenu_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/mainMenu_pressed.shtex.shmeta b/Assets/Texture/Buttons/mainMenu_pressed.shtex.shmeta deleted file mode 100644 index 75dd4050..00000000 --- a/Assets/Texture/Buttons/mainMenu_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: mainMenu_pressed -ID: 66382894 -Type: 3 diff --git a/Assets/Texture/Buttons/quit_default.dds b/Assets/Texture/Buttons/quit_default.dds deleted file mode 100644 index 52b3e518..00000000 Binary files a/Assets/Texture/Buttons/quit_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_default.shtex b/Assets/Texture/Buttons/quit_default.shtex deleted file mode 100644 index 96bbc662..00000000 Binary files a/Assets/Texture/Buttons/quit_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_default.shtex.shmeta b/Assets/Texture/Buttons/quit_default.shtex.shmeta deleted file mode 100644 index 38aab052..00000000 --- a/Assets/Texture/Buttons/quit_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: quit_default -ID: 66477839 -Type: 3 diff --git a/Assets/Texture/Buttons/quit_hover.dds b/Assets/Texture/Buttons/quit_hover.dds deleted file mode 100644 index fb2c84c8..00000000 Binary files a/Assets/Texture/Buttons/quit_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_hover.shtex b/Assets/Texture/Buttons/quit_hover.shtex deleted file mode 100644 index 766a41bd..00000000 Binary files a/Assets/Texture/Buttons/quit_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_hover.shtex.shmeta b/Assets/Texture/Buttons/quit_hover.shtex.shmeta deleted file mode 100644 index 1023cd6d..00000000 --- a/Assets/Texture/Buttons/quit_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: quit_hover -ID: 65045286 -Type: 3 diff --git a/Assets/Texture/Buttons/quit_pressed.dds b/Assets/Texture/Buttons/quit_pressed.dds deleted file mode 100644 index ab9754d2..00000000 Binary files a/Assets/Texture/Buttons/quit_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_pressed.shtex b/Assets/Texture/Buttons/quit_pressed.shtex deleted file mode 100644 index afc2662f..00000000 Binary files a/Assets/Texture/Buttons/quit_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/quit_pressed.shtex.shmeta b/Assets/Texture/Buttons/quit_pressed.shtex.shmeta deleted file mode 100644 index 75d38cdc..00000000 --- a/Assets/Texture/Buttons/quit_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: quit_pressed -ID: 58607560 -Type: 3 diff --git a/Assets/Texture/Buttons/retry_default.dds b/Assets/Texture/Buttons/retry_default.dds deleted file mode 100644 index 373d9792..00000000 Binary files a/Assets/Texture/Buttons/retry_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_default.shtex b/Assets/Texture/Buttons/retry_default.shtex deleted file mode 100644 index f64dcbd3..00000000 Binary files a/Assets/Texture/Buttons/retry_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_default.shtex.shmeta b/Assets/Texture/Buttons/retry_default.shtex.shmeta deleted file mode 100644 index e8e00bea..00000000 --- a/Assets/Texture/Buttons/retry_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: retry_default -ID: 55782622 -Type: 3 diff --git a/Assets/Texture/Buttons/retry_hover.dds b/Assets/Texture/Buttons/retry_hover.dds deleted file mode 100644 index e8d25717..00000000 Binary files a/Assets/Texture/Buttons/retry_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_hover.shtex b/Assets/Texture/Buttons/retry_hover.shtex deleted file mode 100644 index f5e30205..00000000 Binary files a/Assets/Texture/Buttons/retry_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_hover.shtex.shmeta b/Assets/Texture/Buttons/retry_hover.shtex.shmeta deleted file mode 100644 index 8c26fe21..00000000 --- a/Assets/Texture/Buttons/retry_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: retry_hover -ID: 58972174 -Type: 3 diff --git a/Assets/Texture/Buttons/retry_pressed.dds b/Assets/Texture/Buttons/retry_pressed.dds deleted file mode 100644 index d0f90c99..00000000 Binary files a/Assets/Texture/Buttons/retry_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_pressed.shtex b/Assets/Texture/Buttons/retry_pressed.shtex deleted file mode 100644 index fb134ec9..00000000 Binary files a/Assets/Texture/Buttons/retry_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/retry_pressed.shtex.shmeta b/Assets/Texture/Buttons/retry_pressed.shtex.shmeta deleted file mode 100644 index 2f9fd295..00000000 --- a/Assets/Texture/Buttons/retry_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: retry_pressed -ID: 55224464 -Type: 3 diff --git a/Assets/Texture/Buttons/settings_default.dds b/Assets/Texture/Buttons/settings_default.dds deleted file mode 100644 index 7c37be34..00000000 Binary files a/Assets/Texture/Buttons/settings_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_default.shtex b/Assets/Texture/Buttons/settings_default.shtex deleted file mode 100644 index 126499fd..00000000 Binary files a/Assets/Texture/Buttons/settings_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_default.shtex.shmeta b/Assets/Texture/Buttons/settings_default.shtex.shmeta deleted file mode 100644 index 2c3121ce..00000000 --- a/Assets/Texture/Buttons/settings_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: settings_default -ID: 58593104 -Type: 3 diff --git a/Assets/Texture/Buttons/settings_hover.dds b/Assets/Texture/Buttons/settings_hover.dds deleted file mode 100644 index 88269cac..00000000 Binary files a/Assets/Texture/Buttons/settings_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_hover.shtex b/Assets/Texture/Buttons/settings_hover.shtex deleted file mode 100644 index 32955a83..00000000 Binary files a/Assets/Texture/Buttons/settings_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_hover.shtex.shmeta b/Assets/Texture/Buttons/settings_hover.shtex.shmeta deleted file mode 100644 index 061eb51d..00000000 --- a/Assets/Texture/Buttons/settings_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: settings_hover -ID: 64495732 -Type: 3 diff --git a/Assets/Texture/Buttons/settings_pressed.dds b/Assets/Texture/Buttons/settings_pressed.dds deleted file mode 100644 index c038bcdc..00000000 Binary files a/Assets/Texture/Buttons/settings_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_pressed.shtex b/Assets/Texture/Buttons/settings_pressed.shtex deleted file mode 100644 index 0342170a..00000000 Binary files a/Assets/Texture/Buttons/settings_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/settings_pressed.shtex.shmeta b/Assets/Texture/Buttons/settings_pressed.shtex.shmeta deleted file mode 100644 index e2007e10..00000000 --- a/Assets/Texture/Buttons/settings_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: settings_pressed -ID: 63138015 -Type: 3 diff --git a/Assets/Texture/Buttons/startGame_default.dds b/Assets/Texture/Buttons/startGame_default.dds deleted file mode 100644 index f8ece9bb..00000000 Binary files a/Assets/Texture/Buttons/startGame_default.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_default.shtex b/Assets/Texture/Buttons/startGame_default.shtex deleted file mode 100644 index 174eca7d..00000000 Binary files a/Assets/Texture/Buttons/startGame_default.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_default.shtex.shmeta b/Assets/Texture/Buttons/startGame_default.shtex.shmeta deleted file mode 100644 index 6dd0376f..00000000 --- a/Assets/Texture/Buttons/startGame_default.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: startGame_default -ID: 52901020 -Type: 3 diff --git a/Assets/Texture/Buttons/startGame_hover.dds b/Assets/Texture/Buttons/startGame_hover.dds deleted file mode 100644 index aedcab05..00000000 Binary files a/Assets/Texture/Buttons/startGame_hover.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_hover.shtex b/Assets/Texture/Buttons/startGame_hover.shtex deleted file mode 100644 index 61abe918..00000000 Binary files a/Assets/Texture/Buttons/startGame_hover.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_hover.shtex.shmeta b/Assets/Texture/Buttons/startGame_hover.shtex.shmeta deleted file mode 100644 index 881b34f9..00000000 --- a/Assets/Texture/Buttons/startGame_hover.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: startGame_hover -ID: 62235279 -Type: 3 diff --git a/Assets/Texture/Buttons/startGame_pressed.dds b/Assets/Texture/Buttons/startGame_pressed.dds deleted file mode 100644 index a915be85..00000000 Binary files a/Assets/Texture/Buttons/startGame_pressed.dds and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_pressed.shtex b/Assets/Texture/Buttons/startGame_pressed.shtex deleted file mode 100644 index 1dcc8ba3..00000000 Binary files a/Assets/Texture/Buttons/startGame_pressed.shtex and /dev/null differ diff --git a/Assets/Texture/Buttons/startGame_pressed.shtex.shmeta b/Assets/Texture/Buttons/startGame_pressed.shtex.shmeta deleted file mode 100644 index 05314b21..00000000 --- a/Assets/Texture/Buttons/startGame_pressed.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: startGame_pressed -ID: 64722619 -Type: 3 diff --git a/Assets/Texture/UI/Credits/Credits_Placeholder.dds b/Assets/Texture/UI/Credits/Credits_Placeholder.dds new file mode 100644 index 00000000..65b7c0b6 Binary files /dev/null and b/Assets/Texture/UI/Credits/Credits_Placeholder.dds differ diff --git a/Assets/Texture/UI/Credits/Credits_Placeholder.shtex b/Assets/Texture/UI/Credits/Credits_Placeholder.shtex new file mode 100644 index 00000000..39fbc4ee Binary files /dev/null and b/Assets/Texture/UI/Credits/Credits_Placeholder.shtex differ diff --git a/Assets/Texture/UI/Credits/Credits_Placeholder.shtex.shmeta b/Assets/Texture/UI/Credits/Credits_Placeholder.shtex.shmeta new file mode 100644 index 00000000..80b9d641 --- /dev/null +++ b/Assets/Texture/UI/Credits/Credits_Placeholder.shtex.shmeta @@ -0,0 +1,3 @@ +Name: Credits_Placeholder +ID: 59379300 +Type: 3 diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.dds b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.dds new file mode 100644 index 00000000..661ad4ef Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.dds differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex new file mode 100644 index 00000000..1b779fab Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex.shmeta b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex.shmeta new file mode 100644 index 00000000..996cf342 --- /dev/null +++ b/Assets/Texture/UI/Gameplay/GameplayUI_Multiplier.shtex.shmeta @@ -0,0 +1,3 @@ +Name: GameplayUI_Multiplier +ID: 52018575 +Type: 3 diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Score.dds b/Assets/Texture/UI/Gameplay/GameplayUI_Score.dds new file mode 100644 index 00000000..d0fe1168 Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Score.dds differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex b/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex new file mode 100644 index 00000000..83210034 Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex.shmeta b/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex.shmeta new file mode 100644 index 00000000..88ffb714 --- /dev/null +++ b/Assets/Texture/UI/Gameplay/GameplayUI_Score.shtex.shmeta @@ -0,0 +1,3 @@ +Name: GameplayUI_Score +ID: 54238246 +Type: 3 diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Timer.dds b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.dds new file mode 100644 index 00000000..77c9dd8a Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.dds differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex new file mode 100644 index 00000000..2daeacb3 Binary files /dev/null and b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex differ diff --git a/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex.shmeta b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex.shmeta new file mode 100644 index 00000000..b265db97 --- /dev/null +++ b/Assets/Texture/UI/Gameplay/GameplayUI_Timer.shtex.shmeta @@ -0,0 +1,3 @@ +Name: GameplayUI_Timer +ID: 60494030 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.dds b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.dds new file mode 100644 index 00000000..32d7f52a Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex new file mode 100644 index 00000000..0739128b Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex.shmeta new file mode 100644 index 00000000..03c44b88 --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Button_Default.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Button_Default +ID: 55358401 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.dds b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.dds new file mode 100644 index 00000000..506960e6 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex new file mode 100644 index 00000000..39458cef Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex.shmeta new file mode 100644 index 00000000..d460ea30 --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Button_Hover.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Button_Hover +ID: 59400474 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.dds b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.dds new file mode 100644 index 00000000..5dc6ae51 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex new file mode 100644 index 00000000..f9aca00a Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex.shmeta new file mode 100644 index 00000000..85a3b84e --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Button_Pressed.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Button_Pressed +ID: 52333376 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.dds b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.dds new file mode 100644 index 00000000..2b6108ee Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex new file mode 100644 index 00000000..80d1b498 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex.shmeta new file mode 100644 index 00000000..2c8ad4fa --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Screen_1.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Screen_1 +ID: 52834559 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.dds b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.dds new file mode 100644 index 00000000..6b4af404 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex new file mode 100644 index 00000000..a1354654 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex.shmeta new file mode 100644 index 00000000..8bacb413 --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Screen_2.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Screen_2 +ID: 60762613 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.dds b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.dds new file mode 100644 index 00000000..d7b333bd Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex new file mode 100644 index 00000000..943f41e5 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex.shmeta new file mode 100644 index 00000000..320cbba1 --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Screen_3.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Screen_3 +ID: 53309226 +Type: 3 diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.dds b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.dds new file mode 100644 index 00000000..b2c3f5d7 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.dds differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex new file mode 100644 index 00000000..0e334b25 Binary files /dev/null and b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex differ diff --git a/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex.shmeta b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex.shmeta new file mode 100644 index 00000000..cde9bacb --- /dev/null +++ b/Assets/Texture/UI/How To Play/HowToPlay_Screen_4.shtex.shmeta @@ -0,0 +1,3 @@ +Name: HowToPlay_Screen_4 +ID: 63002526 +Type: 3 diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_01.dds b/Assets/Texture/UI/TX_WK10_HowToPlay_01.dds deleted file mode 100644 index cc1d68b6..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_01.dds and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex b/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex deleted file mode 100644 index 061d84c8..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex.shmeta b/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex.shmeta deleted file mode 100644 index fcd72302..00000000 --- a/Assets/Texture/UI/TX_WK10_HowToPlay_01.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: TX_WK10_HowToPlay_01 -ID: 62200943 -Type: 3 diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_02.dds b/Assets/Texture/UI/TX_WK10_HowToPlay_02.dds deleted file mode 100644 index 38ea5b30..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_02.dds and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex b/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex deleted file mode 100644 index 3fa62e86..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex.shmeta b/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex.shmeta deleted file mode 100644 index 56e9b58a..00000000 --- a/Assets/Texture/UI/TX_WK10_HowToPlay_02.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: TX_WK10_HowToPlay_02 -ID: 53303669 -Type: 3 diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_03.dds b/Assets/Texture/UI/TX_WK10_HowToPlay_03.dds deleted file mode 100644 index ac8adee9..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_03.dds and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex b/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex deleted file mode 100644 index 826d87b2..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex.shmeta b/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex.shmeta deleted file mode 100644 index c190e6d8..00000000 --- a/Assets/Texture/UI/TX_WK10_HowToPlay_03.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: TX_WK10_HowToPlay_03 -ID: 61780097 -Type: 3 diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_04.dds b/Assets/Texture/UI/TX_WK10_HowToPlay_04.dds deleted file mode 100644 index 66298f3a..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_04.dds and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex b/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex deleted file mode 100644 index 3d6504b1..00000000 Binary files a/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex and /dev/null differ diff --git a/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex.shmeta b/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex.shmeta deleted file mode 100644 index df21f174..00000000 --- a/Assets/Texture/UI/TX_WK10_HowToPlay_04.shtex.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: TX_WK10_HowToPlay_04 -ID: 59178524 -Type: 3 diff --git a/SHADE_Engine/src/Camera/SHCameraArmComponent.cpp b/SHADE_Engine/src/Camera/SHCameraArmComponent.cpp index ed24e6a7..c560a1b0 100644 --- a/SHADE_Engine/src/Camera/SHCameraArmComponent.cpp +++ b/SHADE_Engine/src/Camera/SHCameraArmComponent.cpp @@ -1,6 +1,6 @@ #include "SHpch.h" #include "SHCameraArmComponent.h" - +#include "Math/SHMathHelpers.h" namespace SHADE @@ -16,6 +16,11 @@ namespace SHADE SHVec3 const& SHCameraArmComponent::GetOffset() const noexcept { + SHVec3 result = offset; + + result = SHVec3::RotateX(offset, -(SHMath::DegreesToRadians(GetPitch()))); + result = SHVec3::RotateY(offset, (SHMath::DegreesToRadians(GetYaw()))); + return offset; } diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.cpp b/SHADE_Engine/src/Camera/SHCameraSystem.cpp index 95a461f8..85f3b1b1 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.cpp +++ b/SHADE_Engine/src/Camera/SHCameraSystem.cpp @@ -172,11 +172,6 @@ namespace SHADE void SHCameraSystem::UpdateCameraArmComponent(SHCameraArmComponent& pivot) noexcept { - - - - - SHVec3 offset{ 0.0f,0.0f, 1.0f }; offset = SHVec3::RotateX(offset, -(SHMath::DegreesToRadians(pivot.GetPitch()))); offset = SHVec3::RotateY(offset, (SHMath::DegreesToRadians(pivot.GetYaw()))); @@ -212,12 +207,18 @@ namespace SHADE } + + + + + //Camera Collision stuff + SHVec3 cameraPos = camera->position + pivot.offset; SHVec3 cameraTarget = camera->position; - //SHLOG_INFO("Ray position: {},{},{} direction:{},{},{}",pivot.ray.position.x, pivot.ray.position.y, pivot.ray.position.z,pivot.ray.direction.x, pivot.ray.direction.y, pivot.ray.direction.z) + SHRaycaster::RaycastInfo info; - //info.layers = (SHCollisionTagMatrix::GetTag("7")->GetMask()); + info.layers = (uint16_t)(SHCollisionTagMatrix::GetTag("Camera")->GetMask()); info.distance = pivot.armLength; info.continuous = false; @@ -235,38 +236,10 @@ namespace SHADE newOffset = SHVec3::RotateY(newOffset, (SHMath::DegreesToRadians(pivot.GetYaw()))); newOffset = SHVec3::Normalise(newOffset) * (hitResult.distance * 0.95f); pivot.offset = newOffset; - //cameraPos = camera->position + pivot.offset; - //SHLOG_INFO("CAMERA COLLISION HIT, {} armlength: {}, true armlength: {}", hitResult.distance, hitResult.distance, (cameraPos - camera->position).Length()); - //SHLOG_INFO("Racoon Position {}, {}, {}, Camera Position: {}, {}, {}, Distance {}", cameraTarget.x, cameraTarget.y, cameraTarget.z, cameraPos.x, cameraPos.y, cameraPos.z, SHVec3::Distance(cameraTarget, cameraPos)); - //SHLOG_INFO("Camera Position: {}, {}, {}", cameraPos.x, cameraPos.y, cameraPos.z); - //auto otherTransform = SHComponentManager::GetComponent_s(hitResult.entityHit); - //SHVec3 otherPos = hitResult.position; - - - //SHLOG_INFO("hit distance{} other pos: {},{},{}, distance between: {}", hitResult.distance, otherPos.x, otherPos.y, otherPos.z, SHVec3::Distance(cameraTarget,otherPos)); break; } } - - ////auto result = physicsSystem->Raycast(pivot.ray); - //if (result && result.distance < pivot.GetArmLength()) - //{ - // - // SHVec3 newOffset = SHVec3{ 0.0f,0.0f, result.distance * 0.8f }; - // newOffset = SHVec3::RotateX(newOffset, -(SHMath::DegreesToRadians(pivot.GetPitch()))); - // newOffset = SHVec3::RotateY(newOffset, (SHMath::DegreesToRadians(pivot.GetYaw()))); - // pivot.offset = newOffset; - // //SHLOG_INFO("CAMERA COLLISION HIT, {}", result.distance); - //} - //else - //{ - // //SHLOG_INFO("CAMERA COLLISION CANT HIT CAMERA"); - //} - - - // pivot.rtMatrix = SHMatrix::Inverse(pivot.rtMatrix); - } diff --git a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp index 9e86f7bf..af03ffa6 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp +++ b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp @@ -600,7 +600,7 @@ namespace SHADE } ); - SHEditorWidgets::ColorPicker("Color", [&textComp = component]() {return textComp->GetColour(); }, [&textComp = component](SHVec4 const& newColor) {textComp->SetColour(newColor); }); + SHEditorWidgets::ColorPicker("Color", [&textComp = component]() {return textComp->GetColor(); }, [&textComp = component](SHVec4 const& newColor) {textComp->SetColor(newColor); }); } else { diff --git a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorInspector.cpp b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorInspector.cpp index c95221ec..faede2bd 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorInspector.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorInspector.cpp @@ -180,6 +180,10 @@ namespace SHADE { DrawComponent(listenerComponent); } + if (auto trajectoryComponent = SHComponentManager::GetComponent_s(eid)) + { + DrawComponent(trajectoryComponent); + } ImGui::Separator(); // Render Scripts SHScriptEngine* scriptEngine = static_cast(SHSystemManager::GetSystem()); @@ -195,6 +199,7 @@ namespace SHADE DrawAddComponentButton(eid); DrawAddComponentButton(eid); DrawAddComponentButton(eid); + DrawAddComponentButton(eid); // Components that require Transforms diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.cpp index 85559bc7..a15687cb 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.cpp @@ -59,6 +59,13 @@ namespace SHADE {SHPredefinedDescriptorTypes::STATIC_DATA, 0}, {SHPredefinedDescriptorTypes::CAMERA, 1}, }); + + perSystemData[SHUtilities::ConvertEnum(SystemType::PARTICLE_RENEDERING)].descMappings.AddMappings + ({ + {SHPredefinedDescriptorTypes::STATIC_DATA, 0}, + {SHPredefinedDescriptorTypes::CAMERA, 1}, + {SHPredefinedDescriptorTypes::PARTICLES, 2}, + }); } void SHGraphicsPredefinedData::InitDummyPipelineLayouts(Handle logicalDevice) noexcept @@ -194,6 +201,73 @@ namespace SHADE Handle materialBoneDataPerInstanceLayout = logicalDevice->CreateDescriptorSetLayout({ materialDataBinding, boneDataBinding }); SET_VK_OBJ_NAME(logicalDevice, vk::ObjectType::eDescriptorSetLayout, materialBoneDataPerInstanceLayout->GetVkHandle(), "[Descriptor Set Layout] Material and Bone Globals"); + // particle emitter binding + SHVkDescriptorSetLayout::Binding emitterDataBinding + { + .Type = vk::DescriptorType::eStorageBufferDynamic, + .Stage = vk::ShaderStageFlagBits::eCompute, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_EMITTER_DATA, + .DescriptorCount = 1, + }; + + // particle input binding + SHVkDescriptorSetLayout::Binding particleInputDataBinding + { + .Type = vk::DescriptorType::eStorageBufferDynamic, + .Stage = vk::ShaderStageFlagBits::eCompute, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_INPUT_DATA, + .DescriptorCount = 1, + }; + + // particle output binding + SHVkDescriptorSetLayout::Binding particleOutputDataBinding + { + .Type = vk::DescriptorType::eStorageBufferDynamic, + .Stage = vk::ShaderStageFlagBits::eCompute | vk::ShaderStageFlagBits::eVertex, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_OUTPUT_DATA, + .DescriptorCount = 1, + }; + + // particle freelist binding + SHVkDescriptorSetLayout::Binding particleFreelistBinding + { + .Type = vk::DescriptorType::eStorageBuffer, // non dynamic because we only need 1 copy for all frames + .Stage = vk::ShaderStageFlagBits::eCompute, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_FREELIST_DATA, + .DescriptorCount = 1, + }; + + // particle indices binding + SHVkDescriptorSetLayout::Binding particleIndicesBinding + { + .Type = vk::DescriptorType::eStorageBufferDynamic, // dynamic because we have multiple copies. + .Stage = vk::ShaderStageFlagBits::eCompute | vk::ShaderStageFlagBits::eVertex, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_INDICES_DATA, + .DescriptorCount = 1, + }; + + // particle draw call binding + SHVkDescriptorSetLayout::Binding particleDrawDataBinding + { + .Type = vk::DescriptorType::eUniformBufferDynamic, // UBO (Because lesser data), dynamic (1 set for each frame) + .Stage = vk::ShaderStageFlagBits::eCompute, + .BindPoint = SHGraphicsConstants::DescriptorSetBindings::PARTICLE_DRAW_DATA, + .DescriptorCount = 1, + }; + + Handle particleDescSetLayout = logicalDevice->CreateDescriptorSetLayout( + { + emitterDataBinding, + particleInputDataBinding, + particleOutputDataBinding, + particleFreelistBinding, + particleIndicesBinding, + particleDrawDataBinding + }); + SET_VK_OBJ_NAME(logicalDevice, vk::ObjectType::eDescriptorSetLayout, particleDescSetLayout->GetVkHandle(), "[Descriptor Set Layout] Particle System Data"); + + + predefinedLayouts.push_back(staticGlobalLayout); predefinedLayouts.push_back(lightDataDescSetLayout); predefinedLayouts.push_back(cameraDataGlobalLayout); @@ -201,6 +275,7 @@ namespace SHADE predefinedLayouts.push_back(fontDataDescSetLayout); predefinedLayouts.push_back(shadowMapDescLayout); predefinedLayouts.push_back(materialBoneDataPerInstanceLayout); + predefinedLayouts.push_back(particleDescSetLayout); perSystemData[SHUtilities::ConvertEnum(SystemType::BATCHING)].descSetLayouts = GetPredefinedDescSetLayouts ( @@ -235,6 +310,13 @@ namespace SHADE SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::STATIC_DATA | SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::CAMERA ); + + perSystemData[SHUtilities::ConvertEnum(SystemType::PARTICLE_RENEDERING)].descSetLayouts = GetPredefinedDescSetLayouts + ( + SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::STATIC_DATA | + SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::CAMERA | + SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::PARTICLES + ); } void SHGraphicsPredefinedData::InitPredefinedVertexInputState(void) noexcept diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.h b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.h index 77307f57..4fbf06c1 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.h @@ -29,7 +29,8 @@ namespace SHADE MATERIALS = 0b00001000, FONT = 0b00010000, SHADOW = 0b00100000, - MATERIAL_AND_BONES = 0b01000000 + MATERIAL_AND_BONES = 0b01000000, + PARTICLES = 0b10000000 }; enum class SystemType @@ -39,6 +40,7 @@ namespace SHADE TEXT_RENDERING, RENDER_GRAPH_NODE_COMPUTE, TRAJECTORY_RENDERING, + PARTICLE_RENEDERING, NUM_TYPES }; static constexpr int SYSTEM_TYPE_COUNT = static_cast(SystemType::NUM_TYPES); diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHPredefinedDescriptorTypes.h b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHPredefinedDescriptorTypes.h index 723a3c5a..0b6f0c2f 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHPredefinedDescriptorTypes.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/GlobalData/SHPredefinedDescriptorTypes.h @@ -16,5 +16,6 @@ namespace SHADE FONT, RENDER_GRAPH_NODE_COMPUTE_RESOURCE, RENDER_GRAPH_RESOURCE, + PARTICLES, }; } diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsConstants.h b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsConstants.h index 71d77e2d..468cc0c7 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsConstants.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsConstants.h @@ -233,6 +233,61 @@ namespace SHADE */ /***************************************************************************/ static constexpr uint32_t BONE_MATRIX_DATA = 1; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for particle emitter data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_EMITTER_DATA = 0; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for input particle data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_INPUT_DATA = 1; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for output particle data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_OUTPUT_DATA = 2; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for particle freelist data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_FREELIST_DATA = 3; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for particle indices data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_INDICES_DATA = 4; + + /***************************************************************************/ + /*! + \brief + Descriptor set binding for bone matrix data. + + */ + /***************************************************************************/ + static constexpr uint32_t PARTICLE_DRAW_DATA = 5; + }; struct VertexBufferBindings diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.cpp new file mode 100644 index 00000000..12690ece --- /dev/null +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.cpp @@ -0,0 +1,23 @@ +#include "SHpch.h" +#include "SHParticleEmitterComponent.h" + +namespace SHADE +{ + + void SHParticleEmitterComponent::OnCreate(void) + { + timeBeforeEmission = emissionInterval; + + } + + void SHParticleEmitterComponent::OnDestroy(void) + { + + } + + void SHParticleEmitterComponent::Emit(void) noexcept + { + toEmit = true; + } + +} \ No newline at end of file diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.h b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.h new file mode 100644 index 00000000..30f7f107 --- /dev/null +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.h @@ -0,0 +1,111 @@ +#pragma once + +#include "Resource/SHHandle.h" +#include "Math/Vector/SHVec4.h" +#include "ECS_Base/Components/SHComponent.h" +#include "Graphics/MiddleEnd/Interface/SHGraphicsConstants.h" + +namespace SHADE +{ + class SHVkBuffer; + class SHVkDescriptorSetGroup; + class SHVkDescriptorSetLayout; + + class SHParticleEmitterComponent : public SHComponent + { + private: + struct GPUEmitterStruct + { + //! Minimum emitting angular range + SHVec4 angularMin; + + //! Maximum emitting angular range + SHVec4 angularMax; + + //! Spawn lifetime and size range (min and max) + SHVec4 lifeAndSizeRange; + }; + + struct GPUParticleStruct + { + //! Position of the particle + SHVec4 position; + + //! Rotation of the particle + SHVec4 rotation; + + //! Velocity of the particle + SHVec4 velocity; + + //! Acceleration of the particle + SHVec4 acceleration; + + //! x scale, x scale decay, y scale and y scale decay + SHVec4 scaleAndDecay; + + //! Life of the particle + float life; + + //! Texture into the desc array that the particle is using + uint32_t textureIndex; + }; + + //! Max number of particles of this emitter + uint32_t maxParticles; + + //! num bytes of all particles in 1 chunk (1 frame) + uint32_t chunkSize; + + //! emission count per emit + uint32_t emissionCount; + + //! emission interval of the emitter + float emissionInterval; + + //! Counter that decreases to 0 from emissionInterval. When 0, emit particles. + float timeBeforeEmission; + + //! Data for the emitter + Handle emitterData; + + //! GPU Particle data + Handle particleData; + + //! Freelist data + Handle freelistData; + + //! Indices data + Handle indicesData; + + //! draw call data + Handle drawCallData; + + //! We need more descriptor sets because the operations on a frame's particle data needs to rely on the previous frame's. Each set + //! will contain 2 bindings that point to 2 buffers (input and output). + Handle particleDescriptorSet; + + //! Emitter's data on the CPU side. To be copied to GPU. + GPUEmitterStruct cpuEmitterData; + + //! If passive, emitter emits particles based on timer above. + bool isPassive; + + //! Have the particle system initialize variables in this component when this is false + bool initialized; + + //! If true, particle system will emit particles in Run function. Sets to false every frame. + bool toEmit; + + //! For all the dynamic SSBOs in the descriptor set + std::array, SHGraphicsConstants::NUM_FRAME_BUFFERS> dynamicOffsets{}; + + public: + void OnCreate(void) override final; + void OnDestroy(void) override final; + + void Emit (void) noexcept; + + friend class SHParticleSubSystem; + + }; +} diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSustem.h b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSustem.h deleted file mode 100644 index da806480..00000000 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSustem.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include "Resource/SHHandle.h" -#include "Graphics/Pipeline/SHPipelineState.h" -#include "Math/SHMatrix.h" - -namespace SHADE -{ - class SHVkLogicalDevice; - class SHVkDescriptorPool; - class SHVkDescriptorSetGroup; - class SHVkDescriptorSetLayout; - class SHVkBuffer; - class SHLightComponent; - class SHVkCommandBuffer; - class SHVkPipeline; - class SHVkPipelineLayout; - class SHVkRenderpass; - class SHSubpass; - class SHVkShaderModule; - class SHRenderer; - - - - class SHParticleSubSystem - { - private: - - Handle logicalDevice; - - - public: - void Init(Handle device, Handle compatibleRenderpass, Handle subpass) noexcept; - - void Run(uint32_t frameIndex) noexcept; - - void Render(Handle cmdBuffer, Handle renderer, uint32_t frameIndex) noexcept; - void Exit(void) noexcept; - - }; -} diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.cpp index eb3c4f1a..7c3d9c74 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.cpp @@ -1,7 +1,309 @@ #include "SHpch.h" -#include "SHParticleSubSustem.h" +#include "SHParticleSubSystem.h" +#include "Graphics/Pipeline/SHPipelineLayoutParams.h" +#include "Graphics/MiddleEnd/GlobalData/SHGraphicsPredefinedData.h" +#include "Graphics/Devices/SHVkLogicalDevice.h" +#include "Graphics/MiddleEnd/Particles/SHParticleEmitterComponent.h" +#include "ECS_Base/Managers/SHComponentManager.h" +#include "Graphics/Descriptors/SHVkDescriptorSetGroup.h" +#include "Graphics/Descriptors/SHVkDescriptorSetLayout.h" +#include "Graphics/MiddleEnd/GlobalData/SHGlobalDescriptorSets.h" +#include "Math/Transform/SHTransformComponent.h" +#include "Graphics/Buffers/SHVkBuffer.h" namespace SHADE { - + + void SHParticleSubSystem::InitializeComponent(SHParticleEmitterComponent& comp) noexcept + { + uint32_t emitterStructAligned = logicalDevice->PadSSBOSize(sizeof (SHParticleEmitterComponent::GPUEmitterStruct)); + uint32_t particleStructAligned = logicalDevice->PadUBOSize(sizeof (SHParticleEmitterComponent::GPUParticleStruct)); + uint32_t sizeofIndirectCmd = static_cast(sizeof(vk::DrawIndirectCommand)); + uint32_t sizeofUint = static_cast(sizeof(uint32_t)); + + // TODO: temporary only. + static constexpr uint32_t NUM_PARTICLES = 500; + comp.maxParticles = NUM_PARTICLES; + + // offset into the buffer for input and output + uint32_t const PARTICLE_FRAME_CHUNK_SIZE = (particleStructAligned * comp.maxParticles); + + // Buffer Initialization + { + // count, value + std::vector freelistInit(comp.maxParticles + 1, 0); + freelistInit[0] = comp.maxParticles; + + // Particle emitter buffer. Multiple copies, Host-visible mapped. We want multiple copies because we'll be writing to it from the CPU. We don't want to do that while the GPU + // is using it during compute operations so we write to another portion. + comp.emitterData = logicalDevice->CreateBuffer(SHGraphicsConstants::NUM_FRAME_BUFFERS * emitterStructAligned, nullptr, 0, vk::BufferUsageFlagBits::eStorageBuffer, VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_MAPPED_BIT); + + // buffer for particle data: pure GPU memory, no transfers, no flags. We want to triple buffer this so that we can submit work to the GPU + // without having to wait for rendering to finish reading the data + comp.particleData = logicalDevice->CreateBuffer(SHGraphicsConstants::NUM_FRAME_BUFFERS * particleStructAligned * NUM_PARTICLES, nullptr, 0, vk::BufferUsageFlagBits::eStorageBuffer, VMA_MEMORY_USAGE_AUTO, {}); + + // Buffer for freelist data. 1 copy only, host-visible mapped. We only need 1 copy because it is only required in compute. If it was used or read in another + // stage we would need more copies. + comp.freelistData = logicalDevice->CreateBuffer(sizeofUint * (comp.maxParticles + 1), freelistInit.data(), sizeofUint * (comp.maxParticles + 1), vk::BufferUsageFlagBits::eStorageBuffer, VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_MAPPED_BIT); + + // Buffer for indices. NUM_FRAME_BUFFERS copies since it's used in rendering. host-visible mapped. + comp.indicesData = logicalDevice->CreateBuffer(sizeofUint * comp.maxParticles, nullptr, 0, vk::BufferUsageFlagBits::eStorageBuffer, VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_MAPPED_BIT); + + // Draw call data will not be tampered with after this initialization except for one variable: instanceCount, which will be modified from compute shader + std::array indirectCommands{}; + for (auto& cmd : indirectCommands) + { + cmd.vertexCount = 4; + cmd.firstVertex = 0; + cmd.firstInstance = 0; + cmd.instanceCount = 0; + } + + // buffer to store draw call data. Non-indexed, host-visible mapped, triple buffered. + comp.drawCallData = logicalDevice->CreateBuffer(SHGraphicsConstants::NUM_FRAME_BUFFERS * sizeofIndirectCmd, indirectCommands.data(), SHGraphicsConstants::NUM_FRAME_BUFFERS * sizeofIndirectCmd, vk::BufferUsageFlagBits::eUniformBuffer | vk::BufferUsageFlagBits::eIndirectBuffer, VMA_MEMORY_USAGE_AUTO, VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT | VmaAllocationCreateFlagBits::VMA_ALLOCATION_CREATE_MAPPED_BIT); + + } + + // Descriptor set initialization + { + // Get particle desc set layout + auto descSetLayout = SHGraphicsPredefinedData::GetPredefinedDescSetLayouts(SHGraphicsPredefinedData::PredefinedDescSetLayoutTypes::PARTICLES); + + // Since we are populating the set as is, the set index will be 0 + static constexpr uint32_t PARTICLE_DATA_SET_INDEX = 0; + + // Variable desc counts, all ignored anyway (This is required but its a dumb interface. You can only blame yourself, Brandon. ) + std::vector const VARIABLE_COUNTS = {0u,0u,0u,0u,0u}; + + // allocate new desc set + comp.particleDescriptorSet = descPool->Allocate(descSetLayout, VARIABLE_COUNTS); + + // convenience handle + auto set = comp.particleDescriptorSet; + + // After buffers are created, we want to populate all bindings(6) with the buffers + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_EMITTER_DATA, { &comp.emitterData, 1 }, 0, emitterStructAligned); + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_INPUT_DATA, { &comp.particleData, 1 }, 0, PARTICLE_FRAME_CHUNK_SIZE); // input and output will be th same until we bind using dynamic offsets + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_OUTPUT_DATA, { &comp.particleData, 1 }, 0, PARTICLE_FRAME_CHUNK_SIZE); + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_FREELIST_DATA, { &comp.freelistData, 1 }, 0, sizeofUint * (comp.maxParticles + 1)); + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_INDICES_DATA, { &comp.indicesData, 1 }, 0, sizeofUint * (comp.maxParticles)); + set->ModifyWriteDescBuffer(PARTICLE_DATA_SET_INDEX, SHGraphicsConstants::DescriptorSetBindings::PARTICLE_DRAW_DATA, { &comp.drawCallData, 1 }, 0, sizeofIndirectCmd); + } + + comp.initialized = true; + comp.timeBeforeEmission = comp.emissionInterval; + comp.toEmit = false; + comp.chunkSize = PARTICLE_FRAME_CHUNK_SIZE; + + for (uint32_t i = 0; i < SHGraphicsConstants::NUM_FRAME_BUFFERS; ++i) + { + auto& offsets = comp.dynamicOffsets[i]; + + uint32_t inputOffset = PARTICLE_FRAME_CHUNK_SIZE * ((i + SHGraphicsConstants::NUM_FRAME_BUFFERS - 1) % SHGraphicsConstants::NUM_FRAME_BUFFERS); // take previous frame's data + uint32_t outputOffset = PARTICLE_FRAME_CHUNK_SIZE * i; + + // In the order of: + // 1. Emitter data + // 2. Particle input + // 3. Particle output + // 4. Particle draw data + offsets[DYOFF_INDEX_EMITTER] = i * emitterStructAligned; + offsets[DYOFF_INDEX_PARTICLE_INPUT] = inputOffset; + offsets[DYOFF_INDEX_PARTICLE_OUTPUT] = outputOffset; + offsets[DYOFF_INDEX_INDICES_DATA] = i * sizeofUint * comp.maxParticles; + offsets[DYOFF_INDEX_DRAW_DATA] = i * sizeofIndirectCmd; + } + } + + void SHParticleSubSystem::EmitComponent(Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept + { + auto const& mappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING); + auto* transform = SHComponentManager::GetComponent(comp.GetEID()); + + // bind the descriptor sets required for emitting particles + cmdBuffer->BindDescriptorSet(comp.particleDescriptorSet, SH_PIPELINE_TYPE::COMPUTE, mappings.at(SHPredefinedDescriptorTypes::PARTICLES), comp.dynamicOffsets[frameIndex]); + + cmdBuffer->SetPushConstantVariable("EmitterPushConstant.emitterPosition", transform->GetWorldPosition(), SH_PIPELINE_TYPE::COMPUTE); + cmdBuffer->SetPushConstantVariable("EmitterPushConstant.emissionCount", comp.emissionCount, SH_PIPELINE_TYPE::COMPUTE); + + // emit particles + cmdBuffer->ComputeDispatch((comp.emissionCount / EMITTER_WORKGROUP_SIZE) + 1, 1, 1); + } + + void SHParticleSubSystem::UpdateCompoennt(Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept + { + auto const& mappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING); + + uint32_t instanceCountOffset = sizeof (vk::DrawIndirectCommand) * frameIndex + offsetof(vk::DrawIndirectCommand, instanceCount); + uint32_t ZERO = 0; + + // reset instance count to 0 + comp.drawCallData->WriteToMemory (&ZERO, sizeof(uint32_t), 0, instanceCountOffset); + + + // bind the descriptor sets required for emitting particles + cmdBuffer->BindDescriptorSet(comp.particleDescriptorSet, SH_PIPELINE_TYPE::COMPUTE, mappings.at(SHPredefinedDescriptorTypes::PARTICLES), comp.dynamicOffsets[frameIndex]); + + // dispatch the compute shaders to update particles + cmdBuffer->ComputeDispatch((comp.maxParticles / EMITTER_WORKGROUP_SIZE) + 1, 1, 1); + } + + void SHParticleSubSystem::RenderComponent(Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept + { + + } + + void SHParticleSubSystem::Init(Handle device, Handle inDescPool, Handle compatibleRenderpass, Handle subpass, Handle VS, Handle FS, Handle emitCS, Handle defaultUpdateCS) noexcept + { + descPool = inDescPool; + logicalDevice = device; + + /*-----------------------------------------------------------------------*/ + /* INITIALIZE ALL PIPELINES */ + /*-----------------------------------------------------------------------*/ + SHPipelineLayoutParams plParams + { + .shaderModules = {VS, FS}, + .predefinedDescSetLayouts = SHGraphicsPredefinedData::GetSystemData(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING).descSetLayouts + }; + + renderingPipelineData.pipelineLayout = logicalDevice->CreatePipelineLayout(plParams); + renderingPipelineData.pipeline = logicalDevice->CreateGraphicsPipeline(renderingPipelineData.pipelineLayout, nullptr, compatibleRenderpass, subpass); + + SHPipelineLayoutParams emitPlParams + { + .shaderModules = {emitCS}, + .predefinedDescSetLayouts = SHGraphicsPredefinedData::GetSystemData(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING).descSetLayouts + }; + + emittingPipelineData.pipelineLayout = logicalDevice->CreatePipelineLayout(emitPlParams); + emittingPipelineData.pipeline = logicalDevice->CreateComputePipeline(emittingPipelineData.pipelineLayout); + + SHPipelineLayoutParams defaultUpdatePlParams + { + .shaderModules = {defaultUpdateCS}, + .predefinedDescSetLayouts = SHGraphicsPredefinedData::GetSystemData(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING).descSetLayouts + }; + + defaultUpdatePipelineData.pipelineLayout = logicalDevice->CreatePipelineLayout(defaultUpdatePlParams); + defaultUpdatePipelineData.pipeline = logicalDevice->CreateComputePipeline(defaultUpdatePipelineData.pipelineLayout); + + + /*-----------------------------------------------------------------------*/ + /* OTHER INITIALIZATION */ + /*-----------------------------------------------------------------------*/ + SHComponentManager::CreateComponentSparseSet(); + } + + void SHParticleSubSystem::Run(Handle cmdBuffer, uint32_t frameIndex, float dt) noexcept + { + auto& emitters = SHComponentManager::GetDense(); + auto const& mappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::PARTICLE_RENEDERING); + + // Get offset into GPU emitter data (for updating) + uint32_t emitterDataOffset = frameIndex * sizeof (SHParticleEmitterComponent::GPUEmitterStruct); + + // Barriers to make sure emitting shader is done completely before update is run. + // Every emitter will have its own barrier. + std::vector preUpdateBarriers{}; + preUpdateBarriers.resize(emitters.size()); + + // If we wanted to be VERY safe, a barrier would be good here to make sure output particles have finish reading input particles in + // the update compute. HOWEVER since a NUM_FRAME_BUFFERS frames would have passed by then, we will not insert 1 here. + + /*-----------------------------------------------------------------------*/ + /* BEGIN EMITTING PARTICES */ + /*-----------------------------------------------------------------------*/ + + // TODO: Might need to issue a barrier here for input particle data + + // bind the pipeline for emitting particles + cmdBuffer->BindPipeline(emittingPipelineData.pipeline); + + // Generic data + SHGlobalDescriptorSets::BindGenericAndTextureData(logicalDevice, cmdBuffer, SH_PIPELINE_TYPE::COMPUTE, mappings.at(SHPredefinedDescriptorTypes::STATIC_DATA), frameIndex); + + uint32_t i = 0; + for (auto& emitter : emitters) + { + if (!emitter.initialized) + InitializeComponent(emitter); + + // Set emitter emit flag to true here if there are ready to be emitted + if (emitter.isPassive) + { + // decrement emission timer + emitter.timeBeforeEmission -= dt; + + // Check if time to emit + if (emitter.timeBeforeEmission <= 0.0f) + { + // reset timer + emitter.timeBeforeEmission = emitter.emissionInterval; + + // Emit later + emitter.toEmit = true; + } + } + + if (emitter.toEmit) // take note that if emitter is not passive, this can also be set to true outside of this function + { + // Copy data to host visible buffer of emitter + emitter.emitterData->WriteToMemory (&emitter.cpuEmitterData, sizeof (SHParticleEmitterComponent::GPUEmitterStruct), 0, emitterDataOffset); + + // Call emit function here + EmitComponent(cmdBuffer, emitter, frameIndex); + } + + // make new barrier on stack... + vk::BufferMemoryBarrier barrier + { + .srcAccessMask = vk::AccessFlagBits::eShaderWrite, + .dstAccessMask = vk::AccessFlagBits::eShaderRead, + .buffer = emitter.particleData->GetVkBuffer(), + .offset = emitter.dynamicOffsets[frameIndex][DYOFF_INDEX_PARTICLE_INPUT], + .size = emitter.chunkSize + }; + + // ...copy assign barrier on heap + preUpdateBarriers[i] = barrier; + + emitter.toEmit = false; + ++i; + } + + // issue the barrier to wait + cmdBuffer->PipelineBarrier(vk::PipelineStageFlagBits::eComputeShader, vk::PipelineStageFlagBits::eComputeShader, {}, {}, preUpdateBarriers, {}); + + /*-----------------------------------------------------------------------*/ + /* EMITTING PARTICLES DONE, BEGIN UPDATES.... */ + /*-----------------------------------------------------------------------*/ + + // bind the pipeline for updating + cmdBuffer->BindPipeline(defaultUpdatePipelineData.pipeline); + + for (auto& emitter : emitters) + { + UpdateCompoennt(cmdBuffer, emitter, frameIndex); + } + + + } + + void SHParticleSubSystem::Render(Handle cmdBuffer, Handle renderer, uint32_t frameIndex) noexcept + { + auto& emitters = SHComponentManager::GetDense(); + + // TODO: Issue barrier for output particle data. Semaphore should also be issued outside in SHGraphicsSystem + for (auto& emitter : emitters) + { + + } + } + + void SHParticleSubSystem::Exit(void) noexcept + { + + } + } \ No newline at end of file diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.h b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.h new file mode 100644 index 00000000..ed697a59 --- /dev/null +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Particles/SHParticleSubSystem.h @@ -0,0 +1,93 @@ +#pragma once + +#include "Resource/SHHandle.h" +#include "Graphics/Pipeline/SHPipelineState.h" +#include "Math/SHMatrix.h" + +namespace SHADE +{ + class SHVkLogicalDevice; + class SHVkDescriptorPool; + class SHVkDescriptorSetGroup; + class SHVkDescriptorSetLayout; + class SHVkBuffer; + class SHLightComponent; + class SHVkCommandBuffer; + class SHVkPipeline; + class SHVkPipelineLayout; + class SHVkRenderpass; + class SHSubpass; + class SHVkShaderModule; + class SHRenderer; + class SHParticleEmitterComponent; + + + + class SHParticleSubSystem + { + private: + static constexpr uint32_t EMITTER_WORKGROUP_SIZE = 128; + static constexpr uint32_t DYOFF_INDEX_EMITTER = 0; + static constexpr uint32_t DYOFF_INDEX_PARTICLE_INPUT = 1; + static constexpr uint32_t DYOFF_INDEX_PARTICLE_OUTPUT = 2; + static constexpr uint32_t DYOFF_INDEX_INDICES_DATA = 3; + static constexpr uint32_t DYOFF_INDEX_DRAW_DATA = 4; + + + // To hold data for a pipeline and pipeline layout. + // We want this here because particles require 3 pipeline sets: + // - Rendering + // - Emit Compute + // - Update Compute + struct PipelineData + { + //! Pipeline + Handle pipeline; + + //! Pipeline layout for pipeline creation + Handle pipelineLayout; + }; + +#if 0 // not used, mainly for convenience to show what shaders use + // Push constant data for emitters + struct EmitterShaderPC + { + //! Emitter position + SHVec4 emitterPosition; + + //! emission count for 1 single emission + uint32_t emissionCount; + }; +#endif + + //! Logical device for creation and destruction + Handle logicalDevice; + + //! Pipeline data for rendering particles + PipelineData renderingPipelineData; + + //! Pipeline data for emitting particles + PipelineData emittingPipelineData; + + //! Pipeline data for updating particles + PipelineData defaultUpdatePipelineData; + + //! Desc pool for particle component desc set allocation + Handle descPool; + + + void InitializeComponent (SHParticleEmitterComponent& comp) noexcept; + void EmitComponent (Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept; + void UpdateCompoennt(Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept; + void RenderComponent(Handle cmdBuffer, SHParticleEmitterComponent& comp, uint32_t frameIndex) noexcept; + + public: + void Init(Handle device, Handle inDescPool, Handle compatibleRenderpass, Handle subpass, Handle VS, Handle FS, Handle emitCS, Handle defaultUpdateCS) noexcept; + + void Run(Handle cmdBuffer, uint32_t frameIndex, float dt) noexcept; + + void Render(Handle cmdBuffer, Handle renderer, uint32_t frameIndex) noexcept; + void Exit(void) noexcept; + + }; +} diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.cpp index a7a3d2ed..3edf0983 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.cpp @@ -61,7 +61,7 @@ namespace SHADE MakeDirty(); } - void SHTextRenderableComponent::SetColour(SHColour const& newColor) noexcept + void SHTextRenderableComponent::SetColor(SHColour const& newColor) noexcept { color = newColor; } @@ -87,7 +87,7 @@ namespace SHADE return fontHandle; } - SHADE::SHColour const& SHTextRenderableComponent::GetColour(void) const noexcept + SHADE::SHColour const& SHTextRenderableComponent::GetColor(void) const noexcept { return color; } diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.h b/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.h index d34e7c38..9d31cdd8 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.h @@ -52,11 +52,11 @@ namespace SHADE /*-----------------------------------------------------------------------*/ void SetText (std::string_view newText) noexcept; void SetFont(Handle font) noexcept; - void SetColour(SHColour const& newColor) noexcept; + void SetColor(SHColour const& newColor) noexcept; std::string const& GetText (void) const noexcept; Handle GetFont (void) const noexcept; - SHColour const& GetColour (void) const noexcept; + SHColour const& GetColor (void) const noexcept; friend class SHTextRenderingSubSystem; diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.cpp index 77dd66c8..91c11e60 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.cpp @@ -42,16 +42,26 @@ namespace SHADE return mesh; } - SHVec4 const& SHTrajectoryRenderableComponent::GetStartColor(void) const noexcept + SHVec3 const& SHTrajectoryRenderableComponent::GetStartColor(void) const noexcept { return startColor; } - SHVec4 const& SHTrajectoryRenderableComponent::GetEndColor(void) const noexcept + SHVec3 const& SHTrajectoryRenderableComponent::GetEndColor(void) const noexcept { return endColor; } + float SHTrajectoryRenderableComponent::GetStartAlpha(void) const noexcept + { + return startAlpha; + } + + float SHTrajectoryRenderableComponent::GetEndAlpha(void) const noexcept + { + return endAlpha; + } + float SHTrajectoryRenderableComponent::GetColorEvolveRate(void) const noexcept { return colorEvolveRate; @@ -67,17 +77,27 @@ namespace SHADE positions = inPositions; } - void SHTrajectoryRenderableComponent::SetStartColor(SHVec4 color) noexcept + void SHTrajectoryRenderableComponent::SetStartColor(SHVec3 color) noexcept { startColor = color; } - void SHTrajectoryRenderableComponent::SetEndColor(SHVec4 color) noexcept + void SHTrajectoryRenderableComponent::SetEndColor(SHVec3 color) noexcept { endColor = color; } + void SHTrajectoryRenderableComponent::SetStartAlpha(float a) noexcept + { + startAlpha = a; + } + + void SHTrajectoryRenderableComponent::SetEndAlpha(float a) noexcept + { + endAlpha = a; + } + void SHTrajectoryRenderableComponent::SetColorEvolveRate(float rate) noexcept { colorEvolveRate = rate; diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h index d6f7be12..f3744d83 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h @@ -10,7 +10,7 @@ namespace SHADE { class SHMesh; - class SHTrajectoryRenderableComponent : public SHComponent + class SH_API SHTrajectoryRenderableComponent : public SHComponent { private: @@ -21,10 +21,16 @@ namespace SHADE std::vector positions; //! Starting color of the trajectory - SHVec4 startColor; + SHVec3 startColor; //! Color the trajectory should evolve to the longer it is - SHVec4 endColor; + SHVec3 endColor; + + //! Starting alpha of the trajectory + float startAlpha; + + //! end alpha of the trajectory + float endAlpha; //! evolving rate of the color float colorEvolveRate; @@ -35,14 +41,18 @@ namespace SHADE /*-----------------------------------------------------------------------*/ void SetMesh(Handle newMesh) noexcept; void SetPositions (std::vector const& inPositions) noexcept; - void SetStartColor(SHVec4 startColor) noexcept; - void SetEndColor (SHVec4 endColor) noexcept; - void SetColorEvolveRate (float rate) noexcept; + void SetStartColor(SHVec3 startColor) noexcept; + void SetEndColor (SHVec3 endColor) noexcept; + void SetStartAlpha(float a) noexcept; + void SetEndAlpha (float a) noexcept; + void SetColorEvolveRate(float rate) noexcept; std::vector GetPositions (void) const noexcept; Handle GetMesh (void) const noexcept; - SHVec4 const& GetStartColor (void) const noexcept; - SHVec4 const& GetEndColor (void) const noexcept; + SHVec3 const& GetStartColor (void) const noexcept; + SHVec3 const& GetEndColor (void) const noexcept; + float GetStartAlpha (void) const noexcept; + float GetEndAlpha (void) const noexcept; float GetColorEvolveRate (void) const noexcept; void OnCreate(void) override final; diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderingSubSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderingSubSystem.cpp index 802d085d..61631925 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderingSubSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderingSubSystem.cpp @@ -59,8 +59,8 @@ namespace SHADE .srcColorBlendFactor = vk::BlendFactor::eSrcAlpha, .dstColorBlendFactor = vk::BlendFactor::eOneMinusSrcAlpha, .colorBlendOp = vk::BlendOp::eAdd, - .srcAlphaBlendFactor = vk::BlendFactor::eOne, - .dstAlphaBlendFactor = vk::BlendFactor::eZero, + .srcAlphaBlendFactor = vk::BlendFactor::eSrcAlpha, + .dstAlphaBlendFactor = vk::BlendFactor::eOneMinusSrcAlpha, .alphaBlendOp = vk::BlendOp::eAdd, .colorWriteMask = vk::ColorComponentFlagBits::eR | vk::ColorComponentFlagBits::eG | vk::ColorComponentFlagBits::eB | vk::ColorComponentFlagBits::eA, } @@ -84,12 +84,18 @@ namespace SHADE // If has positions, feed data to buffer. if (comp.HasPositions()) { + auto meshHandle = comp.GetMesh(); + + // dont do anything if no mesh + if (!meshHandle) + continue; + SHTransformComponent* transform = SHComponentManager::GetComponent_s(comp.GetEID()); if (transform) { // convenient variable - SHVec4 const& startColor = comp.GetStartColor(); - SHVec4 const& endColor = comp.GetEndColor(); + SHVec3 const& startColor = comp.GetStartColor(); + SHVec3 const& endColor = comp.GetEndColor(); float colorEvolveRate = comp.GetColorEvolveRate(); // trs to be reused @@ -104,7 +110,6 @@ namespace SHADE // Will be used for baseInstance later uint32_t oldTransformDataSize = transformData.size(); - auto meshHandle = comp.GetMesh(); auto const& positions = comp.GetPositions(); for (auto& pos : positions) @@ -118,7 +123,8 @@ namespace SHADE colorData.push_back(currentColor); // evolve color - currentColor = SHVec4::Lerp(startColor, endColor, lerpValue); + currentColor = SHVec3::Lerp(startColor, endColor, lerpValue); + currentColor.w = SHMath::Lerp (comp.GetStartAlpha(), comp.GetEndAlpha(), lerpValue); // evolve lerp value and clamp to 1 lerpValue = std::max (1.0f, lerpValue + colorEvolveRate); diff --git a/SHADE_Engine/src/Serialization/SHYAMLConverters.h b/SHADE_Engine/src/Serialization/SHYAMLConverters.h index 9fceb10d..2c212e5f 100644 --- a/SHADE_Engine/src/Serialization/SHYAMLConverters.h +++ b/SHADE_Engine/src/Serialization/SHYAMLConverters.h @@ -15,6 +15,7 @@ #include "Graphics/MiddleEnd/TextRendering/SHFont.h" #include "Animation/SHAnimatorComponent.h" #include "Physics/Collision/CollisionTags/SHCollisionTagMatrix.h" +#include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h" namespace YAML { @@ -353,12 +354,14 @@ namespace YAML { static constexpr std::string_view TEXT_YAML_TAG = "Text"; static constexpr std::string_view FONT_YAML_TAG = "Font"; + static constexpr std::string_view COLOR_YAML_TAG = "Color"; static YAML::Node encode(SHTextRenderableComponent const& rhs) { YAML::Node node; node[TEXT_YAML_TAG.data()] = rhs.GetText(); auto font = rhs.GetFont(); + SHColour const& textColor = rhs.GetColor(); if (font) { node[FONT_YAML_TAG.data()] = SHResourceManager::GetAssetID(rhs.GetFont()).value_or(0); @@ -367,6 +370,7 @@ namespace YAML { node[FONT_YAML_TAG.data()] = 0; } + node[COLOR_YAML_TAG.data()] = SHVec4 (textColor); return node; } static bool decode(YAML::Node const& node, SHTextRenderableComponent& rhs) @@ -385,11 +389,15 @@ namespace YAML rhs.SetFont(SHResourceManager::LoadOrGet(node[FONT_YAML_TAG.data()].as())); } + if (node[COLOR_YAML_TAG.data()].IsDefined()) + { + rhs.SetColor(node[COLOR_YAML_TAG.data()].as()); + } return true; } }; - + template<> struct convert { @@ -417,4 +425,37 @@ namespace YAML } }; + template<> + struct convert + { + static constexpr std::string_view MESH_YAML_TAG = "Mesh"; + static constexpr std::string_view START_COLOR_YAML_TAG = "Start Color"; + static constexpr std::string_view END_COLOR_YAML_TAG = "End Color"; + static constexpr std::string_view COLOR_EVAL_RATE_YAML_TAG = "Color Eval Rate "; + + static YAML::Node encode(SHTrajectoryRenderableComponent const& rhs) + { + YAML::Node node; + node[MESH_YAML_TAG.data()] = SHResourceManager::GetAssetID(rhs.GetMesh()).value_or(0); + node[START_COLOR_YAML_TAG.data()] = SHVec3(rhs.GetStartColor()); + node[END_COLOR_YAML_TAG.data()] = SHVec3(rhs.GetEndColor()); + node[COLOR_EVAL_RATE_YAML_TAG.data()] = rhs.GetColorEvolveRate(); + + return node; + } + static bool decode(YAML::Node const& node, SHTrajectoryRenderableComponent& rhs) + { + if (node[MESH_YAML_TAG.data()].IsDefined()) + rhs.SetMesh(SHResourceManager::LoadOrGet(node[MESH_YAML_TAG.data()].as())); + if (node[START_COLOR_YAML_TAG.data()].IsDefined()) + rhs.SetStartColor(node[START_COLOR_YAML_TAG.data()].as()); + if (node[END_COLOR_YAML_TAG.data()].IsDefined()) + rhs.SetEndColor(node[END_COLOR_YAML_TAG.data()].as()); + if (node[COLOR_EVAL_RATE_YAML_TAG.data()].IsDefined()) + rhs.SetColorEvolveRate(node[COLOR_EVAL_RATE_YAML_TAG.data()].as()); + + return true; + } + }; + } diff --git a/SHADE_Engine/src/UI/SHUISystem.cpp b/SHADE_Engine/src/UI/SHUISystem.cpp index 87a6552d..16cf88aa 100644 --- a/SHADE_Engine/src/UI/SHUISystem.cpp +++ b/SHADE_Engine/src/UI/SHUISystem.cpp @@ -190,6 +190,15 @@ namespace SHADE SHVec2 camSize{ cameraSystem->GetCameraWidthHeight(0) }; //SHLOG_INFO("TopExtent: {}, {}", topExtent.x, topExtent.y) + if (topExtent.y < btmExtent.y) + { + SHVec2 temp = topExtent; + topExtent = btmExtent; + btmExtent = temp; + + } + + topExtent = CanvasToScreenPoint(topExtent, true); btmExtent = CanvasToScreenPoint(btmExtent, true); //SHLOG_INFO("TopExtent: {}, {} Btm Extent: {}, {}", topExtent.x, topExtent.y, btmExtent.x, btmExtent.y) diff --git a/SHADE_Managed/src/Components/TrajectoryRenderable.cxx b/SHADE_Managed/src/Components/TrajectoryRenderable.cxx new file mode 100644 index 00000000..4b762338 --- /dev/null +++ b/SHADE_Managed/src/Components/TrajectoryRenderable.cxx @@ -0,0 +1,83 @@ +#include "SHpch.h" + +#include "TrajectoryRenderable.hxx" +#include "Assets/NativeAsset.hxx" +#include "Utility/Convert.hxx" + + +namespace SHADE +{ + TrajectoryRenderable::TrajectoryRenderable(Entity entity) + :Component(entity) + { + + } + + MeshAsset TrajectoryRenderable::Mesh::get() + { + auto mesh = GetNativeComponent()->GetMesh(); + return mesh ? MeshAsset(mesh) : MeshAsset(); + } + void TrajectoryRenderable::Mesh::set(MeshAsset value) + { + if (value) + { + GetNativeComponent()->SetMesh(Handle()); + } + else + { + GetNativeComponent()->SetMesh(value.NativeObject); + } + } + + + void TrajectoryRenderable::StartColor::set(Vector3 val) + { + GetNativeComponent()->SetStartColor(Convert::ToNative(val)); + } + + Vector3 TrajectoryRenderable::StartColor::get() + { + return Convert::ToCLI(GetNativeComponent()->GetStartColor()); + } + + void TrajectoryRenderable::EndColor::set(Vector3 val) + { + GetNativeComponent()->SetEndColor(Convert::ToNative(val)); + } + + Vector3 TrajectoryRenderable::EndColor::get() + { + return Convert::ToCLI(GetNativeComponent()->GetEndColor()); + } + + void TrajectoryRenderable::StartAlpha::set(float val) + { + GetNativeComponent()->SetStartAlpha(val); + } + + float TrajectoryRenderable::StartAlpha::get() + { + return GetNativeComponent()->GetStartAlpha(); + } + + void TrajectoryRenderable::EndAlpha::set(float val) + { + GetNativeComponent()->SetEndAlpha(val); + } + + float TrajectoryRenderable::EndAlpha::get() + { + return GetNativeComponent()->GetEndAlpha(); + } + + void TrajectoryRenderable::ColorEvolveRate::set(float val) + { + GetNativeComponent()->SetColorEvolveRate(val); + } + + float TrajectoryRenderable::ColorEvolveRate::get() + { + return GetNativeComponent()->GetColorEvolveRate(); + } +} \ No newline at end of file diff --git a/SHADE_Managed/src/Components/TrajectoryRenderable.hxx b/SHADE_Managed/src/Components/TrajectoryRenderable.hxx new file mode 100644 index 00000000..37a350ad --- /dev/null +++ b/SHADE_Managed/src/Components/TrajectoryRenderable.hxx @@ -0,0 +1,87 @@ +/************************************************************************************//*! +\file TrajectoryRenderable.hxx +\author Brandon Mak, brandon.hao, +\par email: brandon.hao\@digipen.edu +\date 1st March, 2023 +\brief Contains the definition of the managed Renderable class with the + declaration of functions for working with it. + + Note: This file is written in C++17/CLI. + +Copyright (C) 2022 DigiPen Institute of Technology. +Reproduction or disclosure of this file or its contents without the prior written consent +of DigiPen Institute of Technology is prohibited. +*//*************************************************************************************/ +#pragma once + +// Project Includes +#include "Components/Component.hxx" +#include "Math/Quaternion.hxx" +// External Dependencies +#include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h" +#include "Graphics/Color.hxx" +#include "Assets/MeshAsset.hxx" + +namespace SHADE +{ + /// + /// CLR version of the SHADE Engine's SHRenderableComponent. + /// + public ref class TrajectoryRenderable : public Component + { + internal: + /*-----------------------------------------------------------------------------*/ + /* Constructors */ + /*-----------------------------------------------------------------------------*/ + /// + /// Constructs a Trajectory Renderable Component that represents a native Trajectory Renderable + /// component tied to the specified Entity. + /// + /// Entity that this Component will be tied to. + TrajectoryRenderable(Entity entity); + + public: + /*-----------------------------------------------------------------------------*/ + /* Properties */ + /*-----------------------------------------------------------------------------*/ + /// + /// Mesh used to render this Renderable. + /// + property MeshAsset Mesh + { + MeshAsset get(); + void set(MeshAsset value); + } + + property Vector3 StartColor + { + Vector3 get(); + void set (Vector3 val); + } + + property Vector3 EndColor + { + Vector3 get(); + void set(Vector3 val); + } + + property float StartAlpha + { + float get(); + void set (float val); + } + + property float EndAlpha + { + float get(); + void set(float val); + } + + property float ColorEvolveRate + { + float get(); + void set(float val); + } + }; +} + diff --git a/SHADE_Managed/src/Engine/ECS.cxx b/SHADE_Managed/src/Engine/ECS.cxx index 38596010..5b73b64e 100644 --- a/SHADE_Managed/src/Engine/ECS.cxx +++ b/SHADE_Managed/src/Engine/ECS.cxx @@ -46,6 +46,8 @@ of DigiPen Institute of Technology is prohibited. #include "Components\UIElement.hxx" #include "Components\Canvas.hxx" #include "Components\Slider.hxx" +#include "Components\TrajectoryRenderable.hxx" +#include "Graphics\MiddleEnd\TrajectoryRendering\SHTrajectoryRenderableComponent.h" @@ -335,6 +337,7 @@ namespace SHADE componentMap.Add(createComponentSet()); componentMap.Add(createComponentSet()); componentMap.Add(createComponentSet()); + componentMap.Add(createComponentSet()); } /*---------------------------------------------------------------------------------*/