diff --git a/Assets/Audio/Master.bank b/Assets/Audio/Master.bank index 21c524fe..49135fbc 100644 Binary files a/Assets/Audio/Master.bank and b/Assets/Audio/Master.bank differ diff --git a/Assets/Audio/Master.strings.bank b/Assets/Audio/Master.strings.bank index 3992afa1..b769c07f 100644 Binary files a/Assets/Audio/Master.strings.bank and b/Assets/Audio/Master.strings.bank differ diff --git a/Assets/Audio/Music.bank b/Assets/Audio/Music.bank index a7a856e5..41112f65 100644 Binary files a/Assets/Audio/Music.bank and b/Assets/Audio/Music.bank differ diff --git a/Assets/Audio/SFX.bank b/Assets/Audio/SFX.bank index d1c9cf58..acf5260a 100644 Binary files a/Assets/Audio/SFX.bank and b/Assets/Audio/SFX.bank differ diff --git a/Assets/Materials/CutScene/CutScene_04a.shmat b/Assets/Materials/CutScene/CutScene_04a.shmat new file mode 100644 index 00000000..799b5eb9 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04a.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 51238312 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/CutScene/CutScene_04a.shmat.shmeta b/Assets/Materials/CutScene/CutScene_04a.shmat.shmeta new file mode 100644 index 00000000..19ff9435 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04a.shmat.shmeta @@ -0,0 +1,3 @@ +Name: CutScene_04a +ID: 130935405 +Type: 7 diff --git a/Assets/Materials/CutScene/CutScene_04b.shmat b/Assets/Materials/CutScene/CutScene_04b.shmat new file mode 100644 index 00000000..c01d8434 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04b.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 61471971 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/CutScene/CutScene_04b.shmat.shmeta b/Assets/Materials/CutScene/CutScene_04b.shmat.shmeta new file mode 100644 index 00000000..e80fb355 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04b.shmat.shmeta @@ -0,0 +1,3 @@ +Name: CutScene_04b +ID: 122461516 +Type: 7 diff --git a/Assets/Materials/CutScene/CutScene_04c.shmat b/Assets/Materials/CutScene/CutScene_04c.shmat new file mode 100644 index 00000000..ffe9aab1 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04c.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 58217538 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/CutScene/CutScene_04c.shmat.shmeta b/Assets/Materials/CutScene/CutScene_04c.shmat.shmeta new file mode 100644 index 00000000..ac7452ab --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_04c.shmat.shmeta @@ -0,0 +1,3 @@ +Name: CutScene_04c +ID: 124507864 +Type: 7 diff --git a/Assets/Materials/CutScene/CutScene_05a.shmat b/Assets/Materials/CutScene/CutScene_05a.shmat new file mode 100644 index 00000000..c1436c21 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_05a.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 61980534 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/CutScene/CutScene_05a.shmat.shmeta b/Assets/Materials/CutScene/CutScene_05a.shmat.shmeta new file mode 100644 index 00000000..8f93d07b --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_05a.shmat.shmeta @@ -0,0 +1,3 @@ +Name: CutScene_05a +ID: 118069989 +Type: 7 diff --git a/Assets/Materials/CutScene/CutScene_05b.shmat b/Assets/Materials/CutScene/CutScene_05b.shmat new file mode 100644 index 00000000..82a612d8 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_05b.shmat @@ -0,0 +1,8 @@ +- VertexShader: 46580970 + FragmentShader: 35983630 + SubPass: UI + Properties: + data.color: {x: 1, y: 1, z: 1, w: 1} + data.textureIndex: 51561286 + data.alpha: 1 + data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Materials/CutScene/CutScene_05b.shmat.shmeta b/Assets/Materials/CutScene/CutScene_05b.shmat.shmeta new file mode 100644 index 00000000..73c9b778 --- /dev/null +++ b/Assets/Materials/CutScene/CutScene_05b.shmat.shmeta @@ -0,0 +1,3 @@ +Name: CutScene_05b +ID: 132945336 +Type: 7 diff --git a/Assets/Materials/UI/UIMat_Black.shmat b/Assets/Materials/UI/UIMat_Black.shmat index 183b5f26..8451828f 100644 --- a/Assets/Materials/UI/UIMat_Black.shmat +++ b/Assets/Materials/UI/UIMat_Black.shmat @@ -1,6 +1,6 @@ - VertexShader: 46580970 FragmentShader: 50110174 - SubPass: UI + SubPass: UI Translucent Properties: data.color: {x: 0, y: 0, z: 0, w: 1} data.textureIndex: 0 diff --git a/Assets/Materials/UI/UIMat_MainMenu.shmat b/Assets/Materials/UI/UIMat_MainMenu.shmat index ba2069e9..8aefe36e 100644 --- a/Assets/Materials/UI/UIMat_MainMenu.shmat +++ b/Assets/Materials/UI/UIMat_MainMenu.shmat @@ -3,6 +3,6 @@ SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} - data.textureIndex: 54429632 + data.textureIndex: 58181851 data.alpha: 1 data.beta: {x: 1, y: 1, z: 1} \ No newline at end of file diff --git a/Assets/Scenes/CutSceneEnd.shade b/Assets/Scenes/CutSceneEnd.shade new file mode 100644 index 00000000..62c7389f --- /dev/null +++ b/Assets/Scenes/CutSceneEnd.shade @@ -0,0 +1,334 @@ +- EID: 1 + Name: Canvas4 + IsActive: true + NumberOfChildren: 3 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 10 + Name: CutScene4 + IsActive: true + NumberOfChildren: 3 + Components: + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 2 + Name: pic1 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -1275, y: 255, z: 0.5} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1313, y: 544, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 130935405 + IsActive: true + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 65542 + Name: pic2 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 1600, y: 150, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 640, y: 661, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 122461516 + IsActive: true + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 5 + Name: pic3 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -2000, y: -275, z: 0.300000012} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1848, y: 575, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 124507864 + IsActive: true + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 11 + Name: Background + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0.699999988} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1920, y: 1080, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 117531460 + IsActive: true + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 12 + Name: Text + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 250, y: -500, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 50, y: 50, z: 50} + IsActive: true + Text Renderer Component: + Text: Press Space to contiune + Font: 176667660 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 1 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 3 + Name: Camera + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Camera Component: + Position: {x: 0, y: 0, z: 0} + Pitch: 0 + Yaw: 0 + Roll: 0 + Width: 1920 + Near: 0.00999999978 + Far: 10000 + Perspective: true + FOV: 90 + IsActive: true + Scripts: ~ +- EID: 7 + Name: CutsceneManager + IsActive: true + NumberOfChildren: 0 + Components: ~ + Scripts: + - Type: CutsceneEnd + Enabled: true + nextScene: 92009475 + duration: 1 + skipDuration: 0.100000001 + cutscene4Points: 4 + cutscene4Pics: 10 + cutscene5Points: 21 + cutscene5Pics: 15 + canvas4: 1 + canvas5: 14 +- EID: 4 + Name: CutScene4Points + IsActive: true + NumberOfChildren: 3 + Components: ~ + Scripts: ~ +- EID: 9 + Name: Pic1Point + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -275, y: 255, z: 0.5} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 8 + Name: Pic2Point + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 600, y: 150, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 65549 + Name: Pic3Point + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -275, z: 0.300000012} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 14 + Name: Canvas5 + IsActive: false + NumberOfChildren: 3 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: false + Scripts: ~ +- EID: 15 + Name: CutScene5 + IsActive: true + NumberOfChildren: 2 + Components: + UI Component: + Canvas ID: 14 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 16 + Name: pic1 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -600, y: 1000, z: 0.5} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 634, y: 1027, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 118069989 + IsActive: true + UI Component: + Canvas ID: 14 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 17 + Name: pic2 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 250, y: -1000, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1337, y: 1028, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 132945336 + IsActive: true + UI Component: + Canvas ID: 14 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 19 + Name: Background + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0.699999988} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1920, y: 1080, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 117531460 + IsActive: true + UI Component: + Canvas ID: 14 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 20 + Name: Text + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 250, y: -500, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 50, y: 50, z: 50} + IsActive: true + Text Renderer Component: + Text: Press Space to contiune + Font: 176667660 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: false + UI Component: + Canvas ID: 14 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 21 + Name: CutScene5Points + IsActive: true + NumberOfChildren: 2 + Components: ~ + Scripts: ~ +- EID: 22 + Name: Pic1Point + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -600, y: 0, z: 0.5} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 23 + Name: Pic2Point + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 250, y: 0, z: 0.400000006} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ \ No newline at end of file diff --git a/Assets/Scenes/CutSceneEnd.shade.shmeta b/Assets/Scenes/CutSceneEnd.shade.shmeta new file mode 100644 index 00000000..eb1fe3b8 --- /dev/null +++ b/Assets/Scenes/CutSceneEnd.shade.shmeta @@ -0,0 +1,3 @@ +Name: CutSceneEnd +ID: 84606951 +Type: 5 diff --git a/Assets/Scenes/CutSceneIntro.shade b/Assets/Scenes/CutSceneIntro.shade index a61e92cb..abb83046 100644 --- a/Assets/Scenes/CutSceneIntro.shade +++ b/Assets/Scenes/CutSceneIntro.shade @@ -113,6 +113,8 @@ Text Renderer Component: Text: Press Space to contiune Font: 176667660 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 1 @@ -148,9 +150,11 @@ NumberOfChildren: 0 Components: ~ Scripts: - - Type: Cutscene + - Type: CutsceneIntro Enabled: true - duration: 2 + nextScene: 96668835 + duration: 1 + skipDuration: 0.100000001 cutscene1Points: 4 cutscene1Pics: 10 cutscene2Points: 20 @@ -314,6 +318,8 @@ Text Renderer Component: Text: Press Space to contiune Font: 176667660 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 13 @@ -448,7 +454,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -1425, y: -200, z: 0.5} + Translate: {x: -1600, y: -200, z: 0.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1299, y: 575, z: 1} IsActive: true @@ -515,6 +521,8 @@ Text Renderer Component: Text: Press Space to contiune Font: 176667660 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: false UI Component: Canvas ID: 24 diff --git a/Assets/Scenes/Level1.shade b/Assets/Scenes/Level1.shade index cd5ba82e..e565b531 100644 --- a/Assets/Scenes/Level1.shade +++ b/Assets/Scenes/Level1.shade @@ -277,7 +277,12 @@ Position Offset: {x: 0, y: 0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.Audio.SoundLoopEmitter + Enabled: true + clipHandlerName: SFXWash65 + clipPath: event:/Props/washing_machine_loop + volume: 0.300000012 - EID: 66 Name: washingMachineDoor IsActive: true @@ -418,7 +423,12 @@ Position Offset: {x: 0, y: 0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.Audio.SoundLoopEmitter + Enabled: true + clipHandlerName: SFXWash43 + clipPath: event:/Props/washing_machine_loop + volume: 0.300000012 - EID: 44 Name: washingMachineDoor IsActive: true @@ -460,7 +470,12 @@ Position Offset: {x: 0, y: 0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.Audio.SoundLoopEmitter + Enabled: true + clipHandlerName: SFXWash42 + clipPath: event:/Props/washing_machine_loop + volume: 0.300000012 - EID: 131081 Name: washingMachineDoor IsActive: true @@ -2529,7 +2544,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 1.79999995, y: 1, z: 4} Friction: 0.400000006 @@ -2538,7 +2553,7 @@ Position Offset: {x: 0, y: 0.550000012, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 1.79999995, y: 1, z: 2.70000005} Friction: 0.400000006 @@ -4101,60 +4116,6 @@ Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ -- EID: 199 - Name: =====Text==== - IsActive: true - NumberOfChildren: 3 - Components: ~ - Scripts: ~ -- EID: 237 - Name: Score - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -800, y: 400, z: 0.100000001} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} - IsActive: true - Text Renderer Component: - Text: "Score: 0" - Font: 176667660 - Color: {x: 1, y: 1, z: 1, w: 1} - IsActive: true - Scripts: ~ -- EID: 206 - Name: Timer - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 500, y: 400, z: 0.100000001} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} - IsActive: true - Text Renderer Component: - Text: "Time Left: 200" - Font: 176667660 - Color: {x: 1, y: 1, z: 1, w: 1} - IsActive: true - Scripts: ~ -- EID: 238 - Name: Multiplier - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -800, y: 300, z: 0.100000001} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 60, y: 60, z: 60} - IsActive: true - Text Renderer Component: - Text: "" - Font: 176667660 - Color: {x: 1, y: 1, z: 1, w: 1} - IsActive: true - Scripts: ~ - EID: 236 Name: ====GameManager==== IsActive: true @@ -4169,9 +4130,9 @@ totalItemCount: 4 Score: 0 timer: 200 - scoreText: 237 - timeText: 206 - multiplierText: 238 + scoreText: 449 + timeText: 520 + multiplierText: 139 maxMultiplierDuration: 5 maxMultiplierCombo: 10 multiplierFont: 60 @@ -4225,6 +4186,7 @@ - Type: Homeowner1 Enabled: true waypointsPool: 234 + startWaypoint: 233 patrolSpeed: 3 chaseSpeed: 6 turningSpeed: 5 @@ -4903,9 +4865,9 @@ NumberOfChildren: 5 Components: Transform Component: - Translate: {x: -8, y: 1.142977, z: -4} + Translate: {x: -8, y: 0.899999976, z: -4} Rotate: {x: -0, y: 1.57079649, z: 0} - Scale: {x: 0.999999881, y: 1, z: 0.999999881} + Scale: {x: 0.999965608, y: 1, z: 0.999965608} IsActive: true Renderable Component: Mesh: 149697411 @@ -5016,7 +4978,7 @@ armLength: 3 turnSpeedPitch: 0.200000003 turnSpeedYaw: 0.400000006 - inverseXControls: false + inverseXControls: true inverseYControls: false pitchUpperClamp: 45 pitchLowerClamp: 5 @@ -5135,6 +5097,7 @@ endPoint2: [1, 1.5, -7.5] endPoint3: [2.5, 1.5, -3] playerCamera: 65730 + gameplayCanvas: 459 duration: 3 - EID: 453 Name: PreviewLevel1 @@ -5221,7 +5184,7 @@ 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 @@ -5237,7 +5200,15 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 456 Name: QuitButton IsActive: true @@ -5246,7 +5217,7 @@ 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 @@ -5262,7 +5233,15 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 455 Name: RetryButton IsActive: true @@ -5271,7 +5250,7 @@ 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 @@ -5287,7 +5266,15 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 454 Name: GamePauseText IsActive: true @@ -5300,8 +5287,9 @@ IsActive: true Text Renderer Component: Text: Game Pause - Font: 176667660 + Font: 174412429 Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: false UI Component: Canvas ID: 458 @@ -5344,4 +5332,146 @@ Enabled: true alphaValue: 1 fadeInTime: 0.5 - fadeOutTime: 0.5 \ No newline at end of file + fadeOutTime: 0.5 +- EID: 459 + Name: Gameplay Canvas + IsActive: true + NumberOfChildren: 3 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 449 + 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 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 521 + Name: Score BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.300000012, y: 0.600000024, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 3.45600009, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 127527215 + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 520 + Name: Timer Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: 700, y: 400, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 60, y: 60, z: 60} + IsActive: true + Text Renderer Component: + Text: My name is Brandon. + Font: 174412429 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 519 + Name: Timer BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.5, y: 0.300000012, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 5, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 126220632 + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 139 + 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 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.MultiplierTextFx + Enabled: true + maxSize: 1 + minSize: 0.300000012 + minAlpha: 0.300000012 +- EID: 518 + Name: Multiplier BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.400000006, y: 0.400000006, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 4.26499987, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 133784677 + IsActive: true + UI Component: + Canvas ID: 459 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ \ No newline at end of file diff --git a/Assets/Scenes/Level2.shade b/Assets/Scenes/Level2.shade index 3989fa4a..d068f3ca 100644 --- a/Assets/Scenes/Level2.shade +++ b/Assets/Scenes/Level2.shade @@ -17,7 +17,7 @@ Light Component: Position: {x: 0, y: 0, z: 0} Type: Directional - Direction: {x: 15, y: 90, z: 15} + Direction: {x: 15, y: -90, z: 15} Color: {x: 1, y: 1, z: 1, w: 1} Layer: 4294967295 Strength: 1 @@ -59,7 +59,7 @@ - EID: 240 Name: ====ItemPool==== IsActive: true - NumberOfChildren: 35 + NumberOfChildren: 31 Components: ~ Scripts: ~ - EID: 241 @@ -213,7 +213,7 @@ dontReturn: false soundDistance: 10 highlightSpeed: 300 - highlightThickness: 250 + highlightThickness: 100 highlightLowerClamp: 0.25 - EID: 154 Name: Mesh_Cheese @@ -264,7 +264,7 @@ dontReturn: false soundDistance: 10 highlightSpeed: 300 - highlightThickness: 250 + highlightThickness: 100 highlightLowerClamp: 0.25 - EID: 65778 Name: Mesh_Apple @@ -464,6 +464,8 @@ Enabled: true threshHold: 0.5 ignoreRaccoon: true + breakClipHandlerName: SFXEggBreak144 + breakClipPath: event:/Props/impact_egg - Type: Item Enabled: true Score: 10 @@ -891,7 +893,7 @@ dontReturn: false soundDistance: 10 highlightSpeed: 300 - highlightThickness: 250 + highlightThickness: 100 highlightLowerClamp: 0.25 - EID: 475 Name: Mesh_Meat @@ -1452,7 +1454,7 @@ dontReturn: false soundDistance: 10 highlightSpeed: 300 - highlightThickness: 250 + highlightThickness: 100 highlightLowerClamp: 0.25 - EID: 485 Name: Mesh_Apple @@ -1652,6 +1654,8 @@ Enabled: true threshHold: 4 ignoreRaccoon: true + breakClipHandlerName: SFXWatermelonBreak464 + breakClipPath: event:/Props/impact_watermelon_break - Type: Item Enabled: true Score: 500 @@ -1695,7 +1699,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} + Half Extents: {x: 0.449999988, y: 0.349999994, z: 0.349999994} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -1746,7 +1750,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} + Half Extents: {x: 0.349999994, y: 0.25, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -1797,7 +1801,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.200000003, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -1848,7 +1852,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -1899,7 +1903,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -1917,418 +1921,6 @@ highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 176 - Name: Mesh_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 1.33684826, y: 0.0771836638, z: 6.68176699} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: true - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: true - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 175 - Name: Mesh_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 3.2909081, y: 0.179948017, z: 6.6051631} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: true - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: true - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 522 - Name: Watermelon - IsActive: true - NumberOfChildren: 5 - Components: - Transform Component: - Translate: {x: 1.62003577, y: 0.241820931, z: 5.90758133} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 134305891 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: false - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: true - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Sphere - Radius: 0.5 - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: true - Scripts: - - Type: Breakable - Enabled: true - threshHold: 4 - ignoreRaccoon: true - - Type: Item - Enabled: true - Score: 500 - currCategory: 2 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 523 - Name: Piece1 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0, 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 - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: true - Sleeping Enabled: false - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0.164060935, y: 0, z: 0} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 525 - Name: Piece3 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.0350502729, y: -0.210244894, z: -0.0336794853} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 138231239 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.261799395} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 526 - Name: Piece4 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 135293480 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -1.04719758} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 527 - Name: Piece5 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.129600644, y: 0.219047099, z: 0.0484838486} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 146157335 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0.436332315} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 524 - Name: Piece2 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -1.62003577, y: -0.241820931, z: -5.90758133} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 142132679 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.34906584} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 - EID: 131228 Name: Watermelon IsActive: true @@ -2374,6 +1966,8 @@ Enabled: true threshHold: 4 ignoreRaccoon: true + breakClipHandlerName: SFXWatermelonBreak156 + breakClipPath: event:/Props/impact_watermelon_break - Type: Item Enabled: true Score: 500 @@ -2417,7 +2011,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} + Half Extents: {x: 0.449999988, y: 0.349999994, z: 0.349999994} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2468,7 +2062,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} + Half Extents: {x: 0.349999994, y: 0.25, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2519,7 +2113,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.200000003, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2570,7 +2164,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2621,7 +2215,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2639,225 +2233,6 @@ highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 533 - Name: Egg - IsActive: true - NumberOfChildren: 4 - Components: - Transform Component: - Translate: {x: 3.11708331, y: 0.333341181, z: 6.14019775} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 0.999979734, y: 1, z: 0.999979734} - IsActive: true - Renderable Component: - Mesh: 147457317 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: true - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Sphere - Radius: 0.200000003 - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: true - Scripts: - - Type: Breakable - Enabled: true - threshHold: 0.5 - ignoreRaccoon: true - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 2 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 534 - Name: Piece1 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0224030018, y: 0.0607728958, z: -0.00627422333} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 134900190 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0.164060935, y: 0, z: 0} - IsActive: false - Scripts: ~ -- EID: 535 - Name: Piece2 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.00627422333, y: 0.0337567925, z: -0.00243234634} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 146271645 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.34906584} - IsActive: false - Scripts: ~ -- EID: 536 - Name: Piece3 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.0166685581, y: -0.0367090404, z: 0.0114421844} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 135945648 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.261799395} - IsActive: false - Scripts: ~ -- EID: 537 - Name: Piece4 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.020128727, y: -0.0155199468, z: -0.0045747757} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 141722646 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -1.04719758} - IsActive: false - Scripts: ~ - EID: 538 Name: Egg IsActive: true @@ -2903,6 +2278,8 @@ Enabled: true threshHold: 0.5 ignoreRaccoon: true + breakClipHandlerName: SFXEggBreak538 + breakClipPath: event:/Props/impact_egg - Type: Item Enabled: true Score: 10 @@ -3122,6 +2499,8 @@ Enabled: true threshHold: 0.5 ignoreRaccoon: true + breakClipHandlerName: SFXEggBreak543 + breakClipPath: event:/Props/impact_egg - Type: Item Enabled: true Score: 10 @@ -3354,7 +2733,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 4 Type: Box Half Extents: {x: 1.79999995, y: 1, z: 0.200000003} Friction: 0.400000006 @@ -3416,7 +2795,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 4 Type: Box Half Extents: {x: 1, y: 1.5, z: 0.200000003} Friction: 0.400000006 @@ -3434,7 +2813,7 @@ Scripts: - Type: GameManager Enabled: true - winScene: 92009475 + winScene: 88928066 loseScene: 91685359 currGameState: 0 totalItemCount: 0 @@ -3449,7 +2828,7 @@ - Type: PauseMenu Enabled: true resumeBtn: 8 - retryBtn: 459 + retryBtn: 458 quitBtn: 0 canvas: 10 - EID: 199 @@ -3477,6 +2856,7 @@ Text: My name is Brandon. Font: 174412429 Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 199 @@ -3505,19 +2885,40 @@ IsActive: true Scripts: ~ - EID: 206 - Name: Timer + Name: Timer Text IsActive: true - NumberOfChildren: 0 + NumberOfChildren: 1 Components: Transform Component: - Translate: {x: 500, y: 400, z: 0.100000001} + Translate: {x: 700, y: 400, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 60, y: 60, z: 60} IsActive: true Text Renderer Component: Text: My name is Brandon. - Font: 176667660 + Font: 174412429 Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 199 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 520 + Name: Timer BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.5, y: 0.300000012, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 5, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 126220632 IsActive: true UI Component: Canvas ID: 199 @@ -3539,6 +2940,7 @@ Text: X2 Font: 174412429 Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 199 @@ -3551,7 +2953,7 @@ maxSize: 1 minSize: 0.300000012 minAlpha: 0.300000012 -- EID: 520 +- EID: 519 Name: Multiplier BG IsActive: true NumberOfChildren: 0 @@ -3570,7 +2972,9 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: FixRotation + Enabled: true - EID: 198 Name: ====Raccoon==== IsActive: true @@ -3803,6 +3207,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak1 + breakClipPath: event:/Props/impact_break - EID: 196 Name: Piece1 IsActive: false @@ -4012,6 +3418,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak171 + breakClipPath: event:/Props/impact_break - EID: 65703 Name: Piece1 IsActive: false @@ -4221,6 +3629,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak150 + breakClipPath: event:/Props/impact_break - EID: 149 Name: Piece1 IsActive: false @@ -4430,6 +3840,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak145 + breakClipPath: event:/Props/impact_break - EID: 488 Name: Piece1 IsActive: false @@ -4639,6 +4051,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak492 + breakClipPath: event:/Props/impact_break - EID: 493 Name: Piece1 IsActive: false @@ -4848,6 +4262,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak497 + breakClipPath: event:/Props/impact_break - EID: 498 Name: Piece1 IsActive: false @@ -5057,6 +4473,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak502 + breakClipPath: event:/Props/impact_break - EID: 503 Name: Piece1 IsActive: false @@ -5266,6 +4684,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak507 + breakClipPath: event:/Props/impact_break - EID: 508 Name: Piece1 IsActive: false @@ -5475,6 +4895,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak512 + breakClipPath: event:/Props/impact_break - EID: 513 Name: Piece1 IsActive: false @@ -5684,6 +5106,8 @@ Enabled: true threshHold: 0.100000001 ignoreRaccoon: false + breakClipHandlerName: SFXBreak517 + breakClipPath: event:/Props/impact_break - EID: 518 Name: Piece1 IsActive: false @@ -5725,7 +5149,7 @@ Rotation Offset: {x: 0, y: 0, z: 0} IsActive: false Scripts: ~ -- EID: 519 +- EID: 461 Name: Piece2 IsActive: false NumberOfChildren: 0 @@ -5766,7 +5190,7 @@ Rotation Offset: {x: 0, y: 0, z: 0} IsActive: false Scripts: ~ -- EID: 461 +- EID: 460 Name: Piece3 IsActive: false NumberOfChildren: 0 @@ -5807,7 +5231,7 @@ Rotation Offset: {x: 0, y: 0, z: 0} IsActive: false Scripts: ~ -- EID: 460 +- EID: 459 Name: Piece4 IsActive: false NumberOfChildren: 0 @@ -5855,7 +5279,7 @@ Components: ~ Scripts: ~ - EID: 165 - Name: 1 + Name: 0 IsActive: true NumberOfChildren: 0 Components: @@ -5866,7 +5290,7 @@ IsActive: true Scripts: ~ - EID: 164 - Name: 2 + Name: 1 IsActive: true NumberOfChildren: 0 Components: @@ -5877,7 +5301,7 @@ IsActive: true Scripts: ~ - EID: 163 - Name: 3 + Name: 2 IsActive: true NumberOfChildren: 0 Components: @@ -5888,7 +5312,7 @@ IsActive: true Scripts: ~ - EID: 162 - Name: 4 + Name: 3 IsActive: true NumberOfChildren: 0 Components: @@ -5899,7 +5323,7 @@ IsActive: true Scripts: ~ - EID: 161 - Name: 5 + Name: 4 IsActive: true NumberOfChildren: 0 Components: @@ -5910,7 +5334,7 @@ IsActive: true Scripts: ~ - EID: 160 - Name: 6 + Name: 5 IsActive: true NumberOfChildren: 0 Components: @@ -5921,7 +5345,7 @@ IsActive: true Scripts: ~ - EID: 159 - Name: 7 + Name: 6 IsActive: true NumberOfChildren: 0 Components: @@ -5937,7 +5361,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0.0576689839, y: 0, z: -2.61272359} + Translate: {x: -3.45969725, y: 0, z: -2.61272359} Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} IsActive: true @@ -5950,7 +5374,7 @@ Drag: 0.00999999978 Angular Drag: 0.100000001 Use Gravity: true - Interpolate: true + Interpolate: false Sleeping Enabled: true Freeze Position X: false Freeze Position Y: false @@ -5975,101 +5399,32 @@ - Type: Homeowner1 Enabled: true waypointsPool: 166 - patrolSpeed: 3 - chaseSpeed: 6 + startWaypoint: 162 + patrolSpeed: 0.75 + chaseSpeed: 2 turningSpeed: 5 sightDistance: 8 eyeOffset: [0, 1.64999998, 0] - distanceToCapture: 0.5 + distanceToCapture: 0.800000012 captureTime: 0.5 footstepSFXIntervalMultiplier: 0.5 -- EID: 12 - Name: Mesh_Meat - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.964969039, y: 0.103873327, z: 6.05876541} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 136892700 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 16 - Name: JumpPad - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 3.52692485, y: 0, z: 6.85981083} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 1 - Type: Box - Half Extents: {x: 1, y: 0.25, z: 1} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - IsActive: true - Scripts: - - Type: JumpPad - Enabled: true - EID: 10 Name: Pause Canvas - IsActive: true + IsActive: false NumberOfChildren: 4 Components: Canvas Component: Canvas Width: 1920 Canvas Height: 1080 Scale by canvas width: false - IsActive: true - Scripts: ~ + IsActive: false + Scripts: + - Type: PauseMenu + Enabled: true + resumeBtn: 8 + retryBtn: 458 + quitBtn: 0 + canvas: 10 - EID: 8 Name: ResumeButton IsActive: true @@ -6097,10 +5452,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 0 @@ -6110,7 +5465,7 @@ Components: Transform Component: Translate: {x: 0, y: -300, z: 0} - Rotate: {x: -4.5, y: 2, z: -2.5} + Rotate: {x: -3.74789906, y: 1.43110418, z: 2.63486958} Scale: {x: 400, y: 100, z: 500} IsActive: true Renderable Component: @@ -6130,13 +5485,15 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 -- EID: 459 + - Type: FixRotation + Enabled: true +- EID: 458 Name: RetryButton IsActive: true NumberOfChildren: 0 @@ -6163,10 +5520,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 11 @@ -6175,14 +5532,15 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -250, y: 300, z: 0} + Translate: {x: -250, y: 300, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 100} IsActive: true Text Renderer Component: Text: Game Pause - Font: 176667660 + Font: 174412429 Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: false UI Component: Canvas ID: 10 @@ -6668,11 +6026,11 @@ - Is Trigger: false Collision Tag: 0 Type: Box - Half Extents: {x: 10, y: 0.0500000007, z: 18} + Half Extents: {x: 10, y: 1, z: 18} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: -0.00999999978, z: 0} + Position Offset: {x: 0, y: -0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ @@ -8790,7 +8148,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -8799,7 +8157,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -9556,7 +8914,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 1.29999995, z: 1} Friction: 0.400000006 @@ -9639,7 +8997,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.699999988, y: 0.0500000007, z: 1.20000005} Friction: 0.400000006 @@ -9648,7 +9006,7 @@ Position Offset: {x: 0, y: 0.77700001, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -9657,7 +9015,7 @@ Position Offset: {x: -0.449999988, y: 0.400000006, z: -0.850000024} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -9666,7 +9024,7 @@ Position Offset: {x: -0.449999988, y: 0.400000006, z: 0.850000024} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -9675,7 +9033,7 @@ Position Offset: {x: 0.449999988, y: 0.400000006, z: 0.850000024} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -9702,7 +9060,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -9711,7 +9069,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -9738,7 +9096,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -9747,7 +9105,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -9774,7 +9132,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -9783,7 +9141,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -9810,7 +9168,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -9819,7 +9177,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -11185,7 +10543,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.899999976, y: 0.100000001, z: 1.89999998} Friction: 0.400000006 @@ -11284,7 +10642,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -11293,7 +10651,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -11412,7 +10770,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.899999976, y: 0.100000001, z: 1.89999998} Friction: 0.400000006 @@ -11603,7 +10961,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.899999976, y: 0.100000001, z: 1.89999998} Friction: 0.400000006 @@ -11702,7 +11060,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.699999988, y: 0.0500000007, z: 1.20000005} Friction: 0.400000006 @@ -11711,7 +11069,7 @@ Position Offset: {x: 0, y: 0.77700001, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -11720,7 +11078,7 @@ Position Offset: {x: -0.25, y: 0.400000006, z: -0.550000012} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -11729,7 +11087,7 @@ Position Offset: {x: -0.25, y: 0.400000006, z: 0.550000012} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -11738,7 +11096,7 @@ Position Offset: {x: 0.25, y: 0.400000006, z: 0.550000012} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0500000007, y: 0.800000012, z: 0.0500000007} Friction: 0.400000006 @@ -11765,7 +11123,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.400000006, y: 0.439999998, z: 0.400000006} Friction: 0.400000006 @@ -11774,7 +11132,7 @@ Position Offset: {x: 0, y: 0.219999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 0 + Collision Tag: 1 Type: Box Half Extents: {x: 0.0399999991, y: 1, z: 0.400000006} Friction: 0.400000006 @@ -11912,7 +11270,7 @@ Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ -- EID: 458 +- EID: 457 Name: Exterior IsActive: true NumberOfChildren: 5 @@ -14576,7 +13934,7 @@ Material: 131956078 IsActive: true Scripts: ~ -- EID: 457 +- EID: 174 Name: Exterior_Bush02 IsActive: true NumberOfChildren: 0 @@ -14591,7 +13949,7 @@ Material: 131956078 IsActive: true Scripts: ~ -- EID: 174 +- EID: 173 Name: Exterior_Bush01 IsActive: true NumberOfChildren: 0 @@ -14606,7 +13964,7 @@ Material: 131956078 IsActive: true Scripts: ~ -- EID: 173 +- EID: 172 Name: Exterior_Bush02 IsActive: true NumberOfChildren: 0 @@ -14621,7 +13979,7 @@ Material: 131956078 IsActive: true Scripts: ~ -- EID: 172 +- EID: 548 Name: TweenManager IsActive: true NumberOfChildren: 0 @@ -14629,7 +13987,7 @@ Scripts: - Type: SHADE_Scripting.UI.TweenManager Enabled: true -- EID: 548 +- EID: 549 Name: StealFoodCanvas IsActive: true NumberOfChildren: 1 @@ -14640,7 +13998,7 @@ Scale by canvas width: false IsActive: true Scripts: ~ -- EID: 549 +- EID: 550 Name: StealFoodLogo IsActive: true NumberOfChildren: 0 @@ -14655,7 +14013,7 @@ Material: 127459277 IsActive: true UI Component: - Canvas ID: 548 + Canvas ID: 549 Hovered: false Clicked: false IsActive: true @@ -14668,7 +14026,7 @@ rotationAmt: 1800 scaleAmtX: 538 scaleAmtY: 377 -- EID: 550 +- EID: 551 Name: TransitionCanvas IsActive: true NumberOfChildren: 1 @@ -14679,7 +14037,7 @@ Scale by canvas width: false IsActive: true Scripts: ~ -- EID: 551 +- EID: 552 Name: Transition IsActive: true NumberOfChildren: 0 @@ -14694,7 +14052,7 @@ Material: 120016136 IsActive: true UI Component: - Canvas ID: 550 + Canvas ID: 551 Hovered: false Clicked: false IsActive: true @@ -14704,7 +14062,7 @@ alphaValue: 1 fadeInTime: 0.5 fadeOutTime: 0.5 -- EID: 552 +- EID: 553 Name: TweenManager IsActive: true NumberOfChildren: 0 @@ -14712,7 +14070,7 @@ Scripts: - Type: SHADE_Scripting.UI.TweenManager Enabled: true -- EID: 553 +- EID: 554 Name: CameraPoints IsActive: true NumberOfChildren: 3 @@ -14724,8 +14082,9 @@ endPoint2: [0, 2, 4.5] endPoint3: [1.14999998, 2.20000005, 2] playerCamera: 4 + gameplayCanvas: 199 duration: 3 -- EID: 554 +- EID: 555 Name: PreviewLevel1 IsActive: true NumberOfChildren: 0 @@ -14747,7 +14106,7 @@ FOV: 90 IsActive: true Scripts: ~ -- EID: 555 +- EID: 556 Name: PreviewLevel2 IsActive: true NumberOfChildren: 0 @@ -14769,7 +14128,7 @@ FOV: 90 IsActive: true Scripts: ~ -- EID: 556 +- EID: 557 Name: PreviewLevel3 IsActive: true NumberOfChildren: 0 diff --git a/Assets/Scenes/Level3.shade b/Assets/Scenes/Level3.shade index a13eccb7..e7ece081 100644 --- a/Assets/Scenes/Level3.shade +++ b/Assets/Scenes/Level3.shade @@ -1,7 +1,7 @@ - EID: 0 Name: Light_Direction IsActive: true - NumberOfChildren: 2 + NumberOfChildren: 1 Components: Light Component: Position: {x: 0, y: 0, z: 0} @@ -26,20 +26,11 @@ Strength: 0.5 IsActive: true Scripts: ~ -- EID: 165 - Name: Skybox +- EID: 449 + Name: Enviroment IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0, y: 0, z: 0} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 18.7835312, y: 18.7835312, z: 18.7835312} - IsActive: true - Renderable Component: - Mesh: 144340823 - Material: 131956078 - IsActive: true + NumberOfChildren: 13 + Components: ~ Scripts: ~ - EID: 78 Name: GroundFloorStructure @@ -80,7 +71,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -89,7 +80,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -116,7 +107,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -125,7 +116,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -152,13 +143,13 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box - Half Extents: {x: 2, y: 2.20000005, z: 0.25} + Half Extents: {x: 3.22600007, y: 2.20000005, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 1.10000002, z: 0} + Position Offset: {x: -0.421999991, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ @@ -179,7 +170,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -188,7 +179,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -215,7 +206,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -224,7 +215,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -251,7 +242,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -267,9 +258,9 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 6, y: 2.20000005, z: 0.993445754} + Translate: {x: 6, y: 2.20000005, z: 0.992999971} Rotate: {x: -0, y: -1.57079601, z: 0} - Scale: {x: 0.999854147, y: 1, z: 0.999854147} + Scale: {x: 0.99981916, y: 1, z: 0.99981916} IsActive: true Renderable Component: Mesh: 150659431 @@ -278,16 +269,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 - Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0.300000012, y: -0.119999997, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0} - - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -296,7 +278,7 @@ Position Offset: {x: 0.660000026, y: -0.400000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -305,7 +287,7 @@ Position Offset: {x: 1, y: -0.600000024, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -314,7 +296,7 @@ Position Offset: {x: 1.36000001, y: -0.899999976, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -323,7 +305,7 @@ Position Offset: {x: 1.70000005, y: -1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -332,7 +314,7 @@ Position Offset: {x: 2.04999995, y: -1.39999998, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -341,7 +323,7 @@ Position Offset: {x: 2.4000001, y: -1.64999998, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -350,7 +332,7 @@ Position Offset: {x: 2.75, y: -1.86000001, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.400000006, y: 0.300000012, z: 1.70000005} Friction: 0.400000006 @@ -377,7 +359,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -404,7 +386,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -421,8 +403,8 @@ Components: Transform Component: Translate: {x: -1, y: 0, z: 4} - Rotate: {x: 0, y: -1.57079637, z: 0} - Scale: {x: 0.999951899, y: 1, z: 0.999951899} + Rotate: {x: -0, y: -1.57079613, z: 0} + Scale: {x: 0.99995178, y: 1, z: 0.99995178} IsActive: true Renderable Component: Mesh: 144033065 @@ -431,7 +413,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -440,7 +422,7 @@ Position Offset: {x: 0.0500000007, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -467,7 +449,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -494,7 +476,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -521,7 +503,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -538,8 +520,8 @@ Components: Transform Component: Translate: {x: 7, y: 0, z: -1} - Rotate: {x: 0, y: 3.14159274, z: 0} - Scale: {x: 0.999952376, y: 1, z: 0.999952376} + Rotate: {x: -0, y: -3.1415925, z: 0} + Scale: {x: 0.999951899, y: 1, z: 0.999951899} IsActive: true Renderable Component: Mesh: 144033065 @@ -548,7 +530,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -557,13 +539,13 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box - Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} + Half Extents: {x: 0.25, y: 2.20000005, z: 1.93700004} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 1.10000002, z: -0.449999988} + Position Offset: {x: 0.0179999992, y: 1.10000002, z: -1.04700005} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ @@ -584,7 +566,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -593,7 +575,7 @@ Position Offset: {x: 0.0500000007, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -620,7 +602,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -629,7 +611,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -656,7 +638,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -683,7 +665,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -710,9 +692,9 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box - Half Extents: {x: 2, y: 2.20000005, z: 0.25} + Half Extents: {x: 4.05200005, y: 2.20000005, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -752,7 +734,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -763,7 +745,7 @@ IsActive: true Scripts: ~ - EID: 52 - Name: GroundWindow_LargeClosed + Name: Default IsActive: true NumberOfChildren: 0 Components: @@ -806,6 +788,18 @@ Mesh: 142546138 Material: 126223465 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.883000016, y: 1.08800006, z: 0.232999995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 1.47099996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 55 Name: GroundWindow_LargeOpen @@ -821,6 +815,18 @@ Mesh: 141867906 Material: 126223465 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 2.13700008, y: 1.028, z: 0.324999988} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.405999988, z: 0.00899999961} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 56 Name: GroundWindow_SmallClosed @@ -836,6 +842,18 @@ Mesh: 142546138 Material: 126223465 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.883000016, y: 1.08800006, z: 0.232999995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 1.47099996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 57 Name: GroundWindow_LargeClosed @@ -854,7 +872,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -946,7 +964,7 @@ Components: Transform Component: Translate: {x: 1.5, y: 0, z: 4} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 0.999952376, y: 1, z: 0.999952376} IsActive: true Renderable Component: @@ -1256,7 +1274,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1283,7 +1301,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1292,7 +1310,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1650,7 +1668,7 @@ Components: Transform Component: Translate: {x: 0, y: 0, z: 4} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} IsActive: true Renderable Component: @@ -1665,7 +1683,7 @@ Components: Transform Component: Translate: {x: 2, y: 0, z: 4} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} IsActive: true Renderable Component: @@ -1740,7 +1758,7 @@ Components: Transform Component: Translate: {x: 0, y: 2.20000005, z: 0} - Rotate: {x: -0, y: 0, z: -0} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1, y: 1, z: 1} IsActive: true Scripts: ~ @@ -1772,7 +1790,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1781,7 +1799,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1808,7 +1826,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1817,7 +1835,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1844,7 +1862,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1853,7 +1871,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1880,7 +1898,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1889,7 +1907,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1916,7 +1934,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1925,13 +1943,13 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box - Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} + Half Extents: {x: 0.149000004, y: 2.20000005, z: 2.204} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 1.10000002, z: -0.449999988} + Position Offset: {x: 0.0240000002, y: 1.10000002, z: -0.944000006} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true Scripts: ~ @@ -1952,7 +1970,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1.10000002, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -1961,7 +1979,7 @@ Position Offset: {x: 0.449999988, y: 1.10000002, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.25, y: 2.20000005, z: 1.10000002} Friction: 0.400000006 @@ -1988,7 +2006,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2015,9 +2033,9 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box - Half Extents: {x: 2, y: 2.20000005, z: 0.25} + Half Extents: {x: 3.93700004, y: 2.20000005, z: 0.224999994} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -2042,7 +2060,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2069,7 +2087,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2096,7 +2114,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2123,7 +2141,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2150,7 +2168,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2177,7 +2195,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2219,7 +2237,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2246,7 +2264,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2273,7 +2291,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2297,6 +2315,18 @@ Mesh: 146405629 Material: 126223465 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 2.04500008, y: 0.896000028, z: 0.275000006} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.469999999, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 112 Name: UpperWindow_LargeClosedv2 @@ -2315,7 +2345,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2342,7 +2372,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2369,7 +2399,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2396,7 +2426,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2423,7 +2453,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2450,7 +2480,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2477,7 +2507,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2594,7 +2624,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1, y: 2.20000005, z: 0.25} Friction: 0.400000006 @@ -2621,7 +2651,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.200000003, y: 2.20000005, z: 0.200000003} Friction: 0.400000006 @@ -2707,8 +2737,8 @@ Components: Transform Component: Translate: {x: 5, y: 0, z: 1.69510055} - Rotate: {x: 0, y: -1.57079601, z: 0} - Scale: {x: 0.999794245, y: 0.720000029, z: 0.999794245} + Rotate: {x: -0, y: -1.57079601, z: 0} + Scale: {x: 0.999794185, y: 0.720000029, z: 0.999794185} IsActive: true Renderable Component: Mesh: 137150602 @@ -3024,7 +3054,7 @@ Components: Transform Component: Translate: {x: 0, y: 4.4000001, z: 0} - Rotate: {x: -0, y: 0, z: -0} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1, y: 1, z: 1} IsActive: true Scripts: ~ @@ -3436,7 +3466,7 @@ - EID: 386 Name: Furnitures IsActive: true - NumberOfChildren: 50 + NumberOfChildren: 52 Components: Transform Component: Translate: {x: 0, y: 0, z: 0} @@ -3451,7 +3481,7 @@ Components: Transform Component: Translate: {x: 1, y: 0, z: 8} - Rotate: {x: -0, y: 1.57079601, z: -0} + Rotate: {x: 0, y: 1.57079601, z: 0} Scale: {x: 0.749975622, y: 0.75, z: 0.749975622} IsActive: true Renderable Component: @@ -3472,11 +3502,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -3503,6 +3533,18 @@ Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 168 Name: CouchBack @@ -3510,8 +3552,8 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 3.25, y: 0, z: 6.25} - Rotate: {x: 0, y: 0, z: 0} + Translate: {x: 3.5, y: 0, z: 6.25} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 0.75, y: 0.75, z: 0.75} IsActive: true Renderable Component: @@ -3532,11 +3574,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -3555,7 +3597,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 2.5, y: 0, z: 6.25} + Translate: {x: 2.75, y: 0, z: 6.25} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 0.75, y: 0.75, z: 0.75} IsActive: true @@ -3577,11 +3619,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -3600,15 +3642,29 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 3.25, y: 0.25, z: 6.25} - Rotate: {x: 0, y: 0, z: 0} + Translate: {x: 3.5, y: 0.25, z: 6.25} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 0.749957442, y: 0.75, z: 0.749957442} IsActive: true Renderable Component: Mesh: 135719689 Material: 131956078 IsActive: true - Scripts: ~ + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.25, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.100000001, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: JumpPad + Enabled: true - EID: 172 Name: BouncyPlatform IsActive: true @@ -3623,7 +3679,21 @@ Mesh: 135719689 Material: 131956078 IsActive: true - Scripts: ~ + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.25, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.100000001, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: JumpPad + Enabled: true - EID: 173 Name: BouncyPlatform IsActive: true @@ -3631,29 +3701,57 @@ Components: Transform Component: Translate: {x: 1, y: 0.25, z: 7.25} - Rotate: {x: 0, y: 1.57079601, z: 0} - Scale: {x: 0.749957442, y: 0.75, z: 0.749957442} + Rotate: {x: -0, y: 1.57079601, z: -0} + Scale: {x: 0.749952435, y: 0.75, z: 0.749952435} IsActive: true Renderable Component: Mesh: 135719689 Material: 131956078 IsActive: true - Scripts: ~ + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.25, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.100000001, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: JumpPad + Enabled: true - EID: 174 Name: BouncyPlatform IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 2.5, y: 0.25, z: 6.25} - Rotate: {x: 0, y: 0, z: 0} + Translate: {x: 2.75, y: 0.25, z: 6.25} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 0.749957442, y: 0.75, z: 0.749957442} IsActive: true Renderable Component: Mesh: 135719689 Material: 131956078 IsActive: true - Scripts: ~ + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.25, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.100000001, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: JumpPad + Enabled: true - EID: 176 Name: KitchenetteCounter IsActive: true @@ -3731,7 +3829,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 2.5, y: 2, z: 1} Friction: 0.400000006 @@ -3758,7 +3856,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 1, y: 4.9000001, z: 1} Friction: 0.400000006 @@ -3865,13 +3963,88 @@ Components: Transform Component: Translate: {x: 1.5, y: 0, z: -0.479999989} - Rotate: {x: 0, y: 0, z: 0} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} IsActive: true Renderable Component: Mesh: 144544365 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.0500000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.70599997, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.718999982, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.00700000022, y: 0.600000024, z: 0.474999994} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.741999984, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.600000024, z: -0.474999994} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.745999992, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.444999993, y: 0.600000024, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.300000012, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.444999993, y: 0.819000006, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.818000019, z: 0.444999993} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.832000017, z: -0.444999993} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.00800000038, y: 1.10699999, z: -0.430999994} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 192 Name: Default @@ -3917,6 +4090,81 @@ Mesh: 144544365 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.0500000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.70599997, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.718999982, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.00700000022, y: 0.600000024, z: 0.474999994} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.741999984, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.600000024, z: -0.474999994} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.745999992, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.444999993, y: 0.600000024, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.300000012, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.444999993, y: 0.819000006, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.818000019, z: 0.444999993} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.832000017, z: -0.444999993} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.100000001, y: 0.300000012, z: 0.100000001} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.00800000038, y: 1.10699999, z: -0.430999994} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 65726 Name: Default @@ -3980,7 +4228,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.899999976, y: 0.340000004, z: 1} Friction: 0.400000006 @@ -4079,6 +4327,45 @@ Mesh: 137183283 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.39199999, y: 0.560000002, z: 0.0340000018} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.572000027, z: -0.173999995} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.365999997, y: 0.0700000003, z: 0.382999986} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.328999996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.158999994, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.158000007, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 203 Name: KitchenetteCounter @@ -4154,6 +4441,54 @@ Mesh: 140474147 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.68599999, y: 0.123999998, z: 1.19799995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.603999972, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0839999989, y: 0.717999995, z: 0.0869999975} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.291999996, y: 0.305999994, z: -0.550000012} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0839999989, y: 0.717999995, z: 0.0869999975} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.291999996, y: 0.305999994, z: 0.537999988} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0839999989, y: 0.717999995, z: 0.0869999975} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.282000005, y: 0.305999994, z: -0.550000012} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0839999989, y: 0.717999995, z: 0.0869999975} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.284000009, y: 0.305999994, z: 0.555999994} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 206 Name: Chair @@ -4161,14 +4496,53 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0.320410132, y: 0, z: 0.330800802} - Rotate: {x: 0, y: 1.57079601, z: 0} - Scale: {x: 0.999910951, y: 0.800000012, z: 0.999910951} + Translate: {x: 0.29156208, y: 0, z: 0.330800802} + Rotate: {x: -0, y: 1.57079601, z: -0} + Scale: {x: 0.999889016, y: 0.800000012, z: 0.999889016} IsActive: true Renderable Component: Mesh: 137183283 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.39199999, y: 0.560000002, z: 0.0340000018} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.572000027, z: -0.173999995} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.365999997, y: 0.0700000003, z: 0.382999986} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.328999996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.158999994, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.158000007, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 207 Name: Chair @@ -4184,6 +4558,45 @@ Mesh: 137183283 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.39199999, y: 0.560000002, z: 0.0340000018} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.572000027, z: -0.173999995} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.365999997, y: 0.0700000003, z: 0.382999986} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.328999996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.158999994, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.158000007, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 208 Name: Chair @@ -4199,6 +4612,45 @@ Mesh: 137183283 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.39199999, y: 0.560000002, z: 0.0340000018} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.572000027, z: -0.173999995} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.365999997, y: 0.0700000003, z: 0.382999986} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.328999996, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.158999994, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.0450000018, y: 0.389999986, z: 0.370999992} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.158000007, y: 0.163000003, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 65711 Name: KitchenetteCounter @@ -4262,7 +4714,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 3, y: 1.20000005, z: 1} Friction: 0.400000006 @@ -4289,7 +4741,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.899999976, y: 0.349999994, z: 1} Friction: 0.400000006 @@ -4316,7 +4768,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.899999976, y: 0.340000004, z: 1} Friction: 0.400000006 @@ -4343,7 +4795,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.899999976, y: 0.340000004, z: 1} Friction: 0.400000006 @@ -4445,7 +4897,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.5, y: 0.5, z: 0.5} Friction: 0.400000006 @@ -4472,7 +4924,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.5, y: 0.5, z: 0.5} Friction: 0.400000006 @@ -4496,6 +4948,18 @@ Mesh: 140639624 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.5, y: 0.5, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.151999995, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 402 Name: CouchBack @@ -4504,7 +4968,7 @@ Components: Transform Component: Translate: {x: 1, y: 0, z: 7.25} - Rotate: {x: -0, y: 1.57079601, z: -0} + Rotate: {x: 0, y: 1.57079601, z: 0} Scale: {x: 0.749981761, y: 0.75, z: 0.749981761} IsActive: true Renderable Component: @@ -4525,11 +4989,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4570,11 +5034,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4615,11 +5079,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.153999999, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4646,6 +5110,18 @@ Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 398 Name: CouchBack @@ -4654,8 +5130,8 @@ Components: Transform Component: Translate: {x: 0, y: 2.25, z: 1.75} - Rotate: {x: 0, y: 1.57079601, z: 0} - Scale: {x: 0.749921322, y: 0.75, z: 0.749921322} + Rotate: {x: -0, y: 1.57079601, z: -0} + Scale: {x: 0.749920785, y: 0.75, z: 0.749920785} IsActive: true Renderable Component: Mesh: 136550658 @@ -4675,11 +5151,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4720,11 +5196,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4751,6 +5227,18 @@ Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 395 Name: CouchBack @@ -4766,6 +5254,18 @@ Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 394 Name: LowTable @@ -4773,8 +5273,8 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 2.8479526, y: 0, z: 7.55967045} - Rotate: {x: 0, y: 0, z: 0} + Translate: {x: 3.25, y: 0, z: 7.55967045} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} IsActive: true Renderable Component: @@ -4822,11 +5322,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4867,11 +5367,11 @@ - Is Trigger: false Collision Tag: 1 Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Half Extents: {x: 1, y: 0.400000006, z: 1} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: 0.150000006, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} - Is Trigger: false Collision Tag: 1 @@ -4898,6 +5398,18 @@ Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 390 Name: CouchBack @@ -4906,13 +5418,25 @@ Components: Transform Component: Translate: {x: 1.75, y: 2.5, z: 3} - Rotate: {x: -0, y: -3.1415925, z: 0} + Rotate: {x: 0, y: -3.1415925, z: 0} Scale: {x: 0.749907374, y: 0.75, z: 0.749907374} IsActive: true Renderable Component: Mesh: 148097428 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 1, y: 0.474000007, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 389 Name: CardboardBox @@ -4931,7 +5455,7 @@ Collider Component: Colliders: - Is Trigger: false - Collision Tag: 1 + Collision Tag: 0 Type: Box Half Extents: {x: 0.5, y: 0.5, z: 0.5} Friction: 0.400000006 @@ -4955,6 +5479,18 @@ Mesh: 140639624 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.5, y: 0.5, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.150000006, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ - EID: 387 Name: CardboardBox @@ -4970,1018 +5506,1119 @@ Mesh: 140639624 Material: 131956078 IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.5, y: 0.5, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.25, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: ~ -- EID: 358 - Name: Food +- EID: 466 + Name: KitchenetteCounterCollider1 IsActive: true - NumberOfChildren: 20 + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 1, z: 4.0079999} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: -0.488000005, y: 0.463999987, z: 1.01199996} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 464 + Name: KitchenetteCounterCollider2 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 4.02400017, y: 0.930000007, z: 0.125} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 2.02200007, y: 0.497000009, z: 0.00800000038} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1.04299998, y: 0.192000002, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0.541000009, y: 0.869000018, z: -0.448000014} + Rotation Offset: {x: 0, y: 0, z: 0} + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 1.06200004, y: 0.192000002, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 3.47099996, y: 0.869000018, z: -0.448000014} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 165 + Name: Level1Floor + IsActive: true + NumberOfChildren: 0 Components: Transform Component: Translate: {x: 0, y: 0, z: 0} Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} + Scale: {x: 18.7835312, y: 18.7835312, z: 18.7835312} + IsActive: true + Renderable Component: + Mesh: 144340823 + Material: 131956078 IsActive: true Scripts: ~ -- EID: 384 - Name: Food_Apple +- EID: 514 + Name: Level1FloorCollider IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 2.67368722, y: 0.803615987, z: -0.309674412} + Translate: {x: 6, y: 0, z: 4.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1, y: 1, z: 1} IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 381 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.00008488, y: 1.02117109, z: -0.272745907} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 379 - Name: Food_Cheese - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.289246678, y: 1.08858216, z: -0.335788906} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 141841143 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 378 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.289246678, y: 1.08858216, z: 2.63276219} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 377 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.01955795, y: 2.79646635, z: -0.173300505} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 376 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 5.82834911, y: 2.22263741, z: 7.94544458} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 374 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.35145187, y: 0.803615987, z: -0.625590205} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 373 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.00815489888, y: 2.73697543, z: 1.68815851} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 372 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 1.7647357, y: 0.405964196, z: 2.47084498} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 371 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 4.23329258, y: 0.354744881, z: -0.136515647} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 370 - Name: Food_Cheese - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 4.26609802, y: 0.833776832, z: -0.677513659} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 141841143 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 369 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.10390115, y: 0.747627378, z: 1.75900662} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 368 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 7.59302235, y: 2.3393712, z: -0.187277719} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 366 - Name: Food_Cheese - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.71393967, y: 0.539582014, z: 7.06600809} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 141841143 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 365 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 6.54555845, y: 2.07684445, z: 7.65922546} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 364 - Name: Food_Cheese - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 1.86549664, y: 2.73507738, z: 1.2655673} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 141841143 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 363 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 2.68094921, y: 2.79646635, z: 1.2316364} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 362 - Name: Food_Meat - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.548751414, y: 2.07684445, z: 10.5268383} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 136892700 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 359 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.711149335, y: 2.21991086, z: 7.94430065} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 357 - Name: Food_Apple - IsActive: true - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 6.44702148, y: 1.01102316, z: 6.54053688} - Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1, y: 1, z: 1} - IsActive: true - Renderable Component: - Mesh: 144128170 - Material: 131956078 - IsActive: true - Scripts: ~ -- EID: 383 - Name: Egg - IsActive: true - NumberOfChildren: 4 - Components: - Transform Component: - Translate: {x: 4.23315954, y: 2.22085261, z: 10.7622595} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 0.999979734, y: 1, z: 0.999979734} - IsActive: true - Renderable Component: - Mesh: 147457317 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: true Collider Component: Colliders: - Is Trigger: false - Collision Tag: 2 - Type: Sphere - Radius: 0.200000003 + Collision Tag: 1 + Type: Box + Half Extents: {x: 15, y: 1, z: 15} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: -0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: - - Type: Breakable - Enabled: true - threshHold: 0.5 - ignoreRaccoon: true - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 2 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 380 - Name: Piece1 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0224030018, y: 0.0607728958, z: -0.00627422333} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 134900190 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0.164060935, y: 0, z: 0} - IsActive: false Scripts: ~ -- EID: 375 - Name: Piece2 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.00627422333, y: 0.0337567925, z: -0.00243234634} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 146271645 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.34906584} - IsActive: false - Scripts: ~ -- EID: 367 - Name: Piece3 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.0166685581, y: -0.0367090404, z: 0.0114421844} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 135945648 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.261799395} - IsActive: false - Scripts: ~ -- EID: 361 - Name: Piece4 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.020128727, y: -0.0155199468, z: -0.0045747757} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 141722646 - Material: 131956078 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 3 - Type: Box - Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -1.04719758} - IsActive: false - Scripts: ~ -- EID: 464 - Name: Watermelon +- EID: 66049 + Name: Level2FloorCollider1 IsActive: true - NumberOfChildren: 5 + NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 5.70615864, y: 0.288550973, z: 2.10129833} + Translate: {x: 2.11058426, y: 2.61999989, z: 1.62666535} Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 0.999979734, y: 1, z: 0.999979734} - IsActive: true - Renderable Component: - Mesh: 134305891 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false + Scale: {x: 1, y: 1, z: 1} IsActive: true Collider Component: Colliders: - Is Trigger: false - Collision Tag: 2 - Type: Sphere - Radius: 0.5 + Collision Tag: 1 + Type: Box + Half Extents: {x: 6, y: 0.200000003, z: 5} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: -0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: - - Type: Breakable - Enabled: true - threshHold: 4 - ignoreRaccoon: true - - Type: Item - Enabled: true - Score: 500 - currCategory: 2 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 463 - Name: Piece1 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0218036175, y: 5.38527966e-05, z: 0.202852726} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 144023586 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0.164060935, y: 0, z: 0} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 466 - Name: Piece2 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0812162161, y: 0.0825212598, z: -0.0991339684} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 142132679 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.34906584} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 467 - Name: Piece3 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.0350502729, y: -0.210244894, z: -0.0336794853} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 138231239 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.261799395} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 468 - Name: Piece4 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 135293480 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -1.04719758} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 469 - Name: Piece5 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: -0.129600644, y: 0.219047099, z: 0.0484838486} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 146157335 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0.436332315} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 10 - currCategory: 0 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 65892 - Name: Watermelon + Scripts: ~ +- EID: 512 + Name: Level2FloorCollider2 IsActive: true - NumberOfChildren: 5 + NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 4.2424674, y: 2.40468884, z: 7.96858072} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 0.999979734, y: 1, z: 0.999979734} - IsActive: true - Renderable Component: - Mesh: 134305891 - Material: 122370915 - IsActive: true - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false + Translate: {x: 10, y: 2.61999989, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} IsActive: true Collider Component: Colliders: - Is Trigger: false - Collision Tag: 2 - Type: Sphere - Radius: 0.5 + Collision Tag: 1 + Type: Box + Half Extents: {x: 10, y: 0.200000003, z: 3} Friction: 0.400000006 Bounciness: 0 Density: 1 - Position Offset: {x: 0, y: 0, z: 0} + Position Offset: {x: 0, y: -0.5, z: 0} Rotation Offset: {x: 0, y: 0, z: 0} IsActive: true - Scripts: - - Type: Breakable - Enabled: true - threshHold: 4 - ignoreRaccoon: true - - Type: Item - Enabled: true - Score: 500 - currCategory: 2 - density: 1 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 465 - Name: Piece1 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0218036175, y: 5.38527966e-05, z: 0.202852726} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 144023586 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0.164060935, y: 0, z: 0} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 -- EID: 462 - Name: Piece2 - IsActive: false - NumberOfChildren: 0 - Components: - Transform Component: - Translate: {x: 0.0812162161, y: 0.0825212598, z: -0.0991339684} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} - Scale: {x: 1, y: 1, z: 1} - IsActive: false - Renderable Component: - Mesh: 142132679 - Material: 122370915 - IsActive: false - RigidBody Component: - Type: Dynamic - Drag: 0.00999999978 - Angular Drag: 0.100000001 - Use Gravity: true - Interpolate: false - Sleeping Enabled: true - Freeze Position X: false - Freeze Position Y: false - Freeze Position Z: false - Freeze Rotation X: false - Freeze Rotation Y: false - Freeze Rotation Z: false - IsActive: false - Collider Component: - Colliders: - - Is Trigger: false - Collision Tag: 2 - Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} - Friction: 0.400000006 - Bounciness: 0 - Density: 1 - Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.34906584} - IsActive: false - Scripts: - - Type: Item - Enabled: true - Score: 50 - currCategory: 1 - density: 3 - dontReturn: false - soundDistance: 10 - highlightSpeed: 300 - highlightThickness: 250 - highlightLowerClamp: 0.25 + Scripts: ~ - EID: 461 - Name: Piece3 - IsActive: false + Name: CeilingCollider + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -0.0350502729, y: -0.210244894, z: -0.0336794853} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Translate: {x: 6, y: 4.71602583, z: 4.5} + Rotate: {x: -0, y: 0, z: -0} Scale: {x: 1, y: 1, z: 1} - IsActive: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 15, y: 1, z: 15} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 469 + Name: Level2FenceCollider + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 1.93802273, y: 2.39508605, z: 4.01721716} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 6, y: 0.5, z: 0.150000006} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 463 + Name: KitchenLargeClosedWindowCollider + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 0 + Type: Box + Half Extents: {x: 4.01900005, y: 1.10099995, z: 0.147} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 1.96599996, y: 1.49399996, z: -0.966000021} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 467 + Name: Level2Table + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.11160159, y: 2.4000001, z: 1.2985332} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 2.20000005, y: 0.5, z: 1.29999995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 468 + Name: Level2FenceCollider + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 4.9960146, y: 2.39508605, z: 2.69112468} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.200000003, y: 0.5, z: 2.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 553 + Name: TweenManager + IsActive: true + NumberOfChildren: 0 + Components: ~ + Scripts: + - Type: SHADE_Scripting.UI.TweenManager + Enabled: true +- EID: 551 + Name: TransitionCanvas + IsActive: true + NumberOfChildren: 1 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 552 + 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: 2500, y: 1080, z: 1} + IsActive: true Renderable Component: - Mesh: 138231239 - Material: 122370915 + Mesh: 141771688 + Material: 120016136 + IsActive: true + UI Component: + Canvas ID: 551 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.SceneFadeInOut + Enabled: true + alphaValue: 1 + fadeInTime: 0.5 + fadeOutTime: 0.5 +- EID: 549 + Name: StealFoodCanvas + IsActive: true + NumberOfChildren: 1 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 550 + Name: StealFoodLogo + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 0, y: 0, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 127459277 + IsActive: true + UI Component: + Canvas ID: 549 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.StealFoodPopUp + Enabled: true + popInDuration: 0.5 + popOutDuration: 0.075000003 + stayDuration: 1 + rotationAmt: 1800 + scaleAmtX: 538 + scaleAmtY: 377 +- EID: 547 + Name: Pause Canvas + IsActive: false + NumberOfChildren: 4 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false IsActive: false + Scripts: ~ +- EID: 546 + Name: ResumeButton + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 100, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 400, y: 100, z: 500} + 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: 547 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 +- EID: 545 + Name: QuitButton + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -300, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 400, y: 100, z: 500} + 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: 547 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 + - Type: FixRotation + Enabled: true +- EID: 544 + Name: RetryButton + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -100, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 400, y: 100, z: 500} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: true + Button Component: + Default Texture: 64806384 + Hovered Texture: 58347825 + Clicked Texture: 63234380 + IsActive: true + UI Component: + Canvas ID: 547 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 +- EID: 543 + Name: GamePause + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -250, y: 300, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 100, y: 100, z: 100} + IsActive: true + Text Renderer Component: + Text: Game Pause + Font: 174412429 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: false + UI Component: + Canvas ID: 547 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 542 + Name: ====AI===== + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.830674767, y: 0, z: 1.40718019} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 140697366 + Material: 129495479 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: true + Freeze Rotation Y: false + Freeze Rotation Z: true + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 5 + Type: Box + Half Extents: {x: 0.600000024, y: 1.79999995, z: 0.400000006} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.899999976, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Homeowner1 + Enabled: true + waypointsPool: 541 + startWaypoint: 540 + patrolSpeed: 0.75 + chaseSpeed: 2 + turningSpeed: 5 + sightDistance: 8 + eyeOffset: [0, 1.64999998, 0] + distanceToCapture: 0.800000012 + captureTime: 0.5 + footstepSFXIntervalMultiplier: 0.5 +- EID: 541 + Name: ====WaypointPool==== + IsActive: true + NumberOfChildren: 9 + Components: ~ + Scripts: ~ +- EID: 540 + Name: 0 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.806008875, y: 0, z: 1.30613756} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 539 + Name: 1 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.513795853, y: 0, z: 5.17213631} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 538 + Name: 2 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.497500449, y: 0, z: 7.26010561} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 537 + Name: 3 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.380023897, y: 0, z: 9.58513737} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 536 + Name: 4 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 4.76827145, y: 0, z: 9.12785816} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 535 + Name: 5 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 5.0583787, y: 0, z: 4.71819115} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 534 + Name: 6 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 3.53010821, y: 0, z: 4.63929033} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 531 + Name: 7 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 3.64600039, y: 0, z: 2.86434269} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 530 + Name: 8 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 3.50184393, y: 0, z: 0.390250444} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 526 + Name: Gameplay Canvas + IsActive: true + NumberOfChildren: 3 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 237 + 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 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 521 + Name: Score BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.300000012, y: 0.600000024, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 3.45600009, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 127527215 + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 525 + Name: Timer Text + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: 700, y: 400, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 60, y: 60, z: 60} + IsActive: true + Text Renderer Component: + Text: My name is Brandon. + Font: 174412429 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 520 + Name: Timer BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.5, y: 0.300000012, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 5, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 126220632 + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: ~ +- EID: 524 + 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 + Color: {x: 1, y: 1, z: 1, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: SHADE_Scripting.UI.MultiplierTextFx + Enabled: true + maxSize: 1 + minSize: 0.300000012 + minAlpha: 0.300000012 +- EID: 519 + Name: Multiplier BG + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.400000006, y: 0.400000006, z: 0.98999995} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 4.26499987, y: 2, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 133784677 + IsActive: true + UI Component: + Canvas ID: 526 + Hovered: false + Clicked: false + IsActive: true + Scripts: + - Type: FixRotation + Enabled: true +- EID: 238 + Name: ====GameManager==== + IsActive: true + NumberOfChildren: 0 + Components: ~ + Scripts: + - Type: GameManager + Enabled: true + winScene: 84606951 + loseScene: 91685359 + currGameState: 0 + totalItemCount: 0 + Score: 0 + timer: 200 + scoreText: 237 + timeText: 525 + multiplierText: 524 + maxMultiplierDuration: 5 + maxMultiplierCombo: 10 + multiplierFont: 60 + - Type: PauseMenu + Enabled: true + resumeBtn: 546 + retryBtn: 544 + quitBtn: 545 + canvas: 547 +- EID: 523 + Name: ====ScoreZonePool==== + IsActive: true + NumberOfChildren: 3 + Components: ~ + Scripts: ~ +- EID: 522 + Name: ScoreZone + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -1.54310393, y: 1.44638538, z: 7.98654604} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: true + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: true + Collision Tag: 0 + Type: Box + Half Extents: {x: 1, y: 1, z: 1.79999995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: ScoringZone + Enabled: true +- EID: 518 + Name: CollisionWall + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.50623107, y: -0.0548173189, z: 0.00632286072} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 4 + Type: Box + Half Extents: {x: 0.200000003, y: 1, z: 1.79999995} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 517 + Name: ScoreZone + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: -1.29031229, y: 1.42268324, z: 1.50382555} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: true + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: true + Collision Tag: 0 + Type: Box + Half Extents: {x: 0.5, y: 1, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: ScoringZone + Enabled: true +- EID: 516 + Name: CollisionWall + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -0.068323493, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 4 + Type: Box + Half Extents: {x: 0.200000003, y: 1.5, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 131620 + Name: ScoreZone + IsActive: true + NumberOfChildren: 1 + Components: + Transform Component: + Translate: {x: 10.9849348, y: 3.6516223, z: -1.48581266} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: true + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: true + Collision Tag: 0 + Type: Box + Half Extents: {x: 1.79999995, y: 1, z: 1} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: ScoringZone + Enabled: true +- EID: 66051 + Name: CollisionWall + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.0655269623, y: -0.0213704109, z: 0.33921051} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 4 + Type: Box + Half Extents: {x: 1.79999995, y: 1, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0.156000003} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: ~ +- EID: 554 + Name: CameraPoints + IsActive: true + NumberOfChildren: 3 + Components: ~ + Scripts: + - Type: SHADE_Scripting.UI.PreviewLevel + Enabled: true + endPoint1: [-1.79999995, 1.5, 0.5] + endPoint2: [5, 3.5, 0.5] + endPoint3: [-0.5, 1.5, 3.5] + playerCamera: 66063 + gameplayCanvas: 526 + duration: 3 +- EID: 555 + Name: PreviewLevel1 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -1.79999995, y: 1.5, z: 8} + Rotate: {x: 0, y: 4.71238899, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Camera Component: + Position: {x: -5.5, y: 1.5, z: -2} + Pitch: 0 + Yaw: 270 + Roll: 0 + Width: 1920 + Near: 0.00999999978 + Far: 10000 + Perspective: true + FOV: 90 + IsActive: true + Scripts: ~ +- EID: 556 + Name: PreviewLevel2 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 5, y: 3.5, z: 8.19999981} + Rotate: {x: -0.69813168, y: 1.57079637, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Camera Component: + Position: {x: -0.24528563, y: 1.5, z: -7.5} + Pitch: -40 + Yaw: 90 + Roll: 0 + Width: 1920 + Near: 0.00999999978 + Far: 10000 + Perspective: true + FOV: 90 + IsActive: true + Scripts: ~ +- EID: 557 + Name: PreviewLevel3 + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 3.5, y: 1.5, z: 0} + Rotate: {x: 0, y: 2.26892805, z: 0} + Scale: {x: 0.999999821, y: 1, z: 0.999999821} + IsActive: true + Camera Component: + Position: {x: 2.5, y: 1.5, z: -7.5} + Pitch: 0 + Yaw: 130 + Roll: 0 + Width: 1920 + Near: 0.00999999978 + Far: 10000 + Perspective: true + FOV: 90 + IsActive: true + Scripts: ~ +- EID: 65894 + Name: Food + IsActive: true + NumberOfChildren: 25 + Components: ~ + Scripts: ~ +- EID: 241 + Name: Mesh_Meat + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.545588374, y: 2.08121252, z: 10.5627556} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 136892700 + Material: 122370915 + IsActive: true RigidBody Component: Type: Dynamic Drag: 0.00999999978 @@ -5995,44 +6632,44 @@ Freeze Rotation X: false Freeze Rotation Y: false Freeze Rotation Z: false - IsActive: false + IsActive: true Collider Component: Colliders: - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} Friction: 0.400000006 Bounciness: 0 Density: 1 Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -0.261799395} - IsActive: false + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: - Type: Item Enabled: true - Score: 10 - currCategory: 0 - density: 3 + Score: 50 + currCategory: 1 + density: 1 dontReturn: false soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 460 - Name: Piece4 - IsActive: false +- EID: 511 + Name: Mesh_Meat + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Translate: {x: 6.56602001, y: 2.08121252, z: 7.68181515} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1, y: 1, z: 1} - IsActive: false + IsActive: true Renderable Component: - Mesh: 135293480 + Mesh: 136892700 Material: 122370915 - IsActive: false + IsActive: true RigidBody Component: Type: Dynamic Drag: 0.00999999978 @@ -6046,44 +6683,44 @@ Freeze Rotation X: false Freeze Rotation Y: false Freeze Rotation Z: false - IsActive: false + IsActive: true Collider Component: Colliders: - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} Friction: 0.400000006 Bounciness: 0 Density: 1 Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: -1.04719758} - IsActive: false + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: - Type: Item Enabled: true - Score: 10 - currCategory: 0 - density: 3 + Score: 50 + currCategory: 1 + density: 1 dontReturn: false soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 459 - Name: Piece5 - IsActive: false +- EID: 510 + Name: Mesh_Meat + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: -0.129600644, y: 0.219047099, z: 0.0484838486} - Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Translate: {x: -0.283426404, y: 1.09665966, z: 2.6444459} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1, y: 1, z: 1} - IsActive: false + IsActive: true Renderable Component: - Mesh: 146157335 + Mesh: 136892700 Material: 122370915 - IsActive: false + IsActive: true RigidBody Component: Type: Dynamic Drag: 0.00999999978 @@ -6097,38 +6734,905 @@ Freeze Rotation X: false Freeze Rotation Y: false Freeze Rotation Z: false - IsActive: false + IsActive: true Collider Component: Colliders: - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} Friction: 0.400000006 Bounciness: 0 Density: 1 Position Offset: {x: 0, y: 0, z: 0} - Rotation Offset: {x: 0, y: 0, z: 0.436332315} - IsActive: false + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true Scripts: - Type: Item Enabled: true - Score: 10 - currCategory: 0 - density: 3 + Score: 50 + currCategory: 1 + density: 1 dontReturn: false soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 65918 +- EID: 509 + Name: Mesh_Meat + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.02881098, y: 2.77076602, z: -0.182125747} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 136892700 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 508 + Name: Mesh_Meat + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.72471094, y: 2.77076602, z: 1.22943294} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 136892700 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 507 + Name: Mesh_Meat + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 7.58803272, y: 2.33588457, z: -0.189944804} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 136892700 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 506 + Name: Mesh_Meat + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.09635019, y: 0.735648811, z: 1.75533557} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 136892700 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.300000012, z: 0.300000012} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 65778 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 5.84368134, y: 2.20734143, z: 7.94632149} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 505 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.713125288, y: 2.20734143, z: 7.94632149} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 504 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 1.77404094, y: 0.41099143, z: 2.47208786} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 503 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.00114655, y: 1.02382326, z: -0.269943058} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 502 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.68187761, y: 0.795046389, z: -0.314166456} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 501 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.35782337, y: 0.795200706, z: -0.640376568} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 500 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.00753106922, y: 2.77078485, z: 1.69880748} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 499 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 4.23422098, y: 0.359118223, z: -0.141155809} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 498 + Name: Mesh_Apple + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 6.44451427, y: 1.02410448, z: 6.5130949} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144128170 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.200000003, y: 0.200000003, z: 0.200000003} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 497 + Name: Mesh_Cheese + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.91941047, y: 0.527999997, z: 7.41522264} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 141841143 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.5, y: 0.150000006, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 100 + highlightLowerClamp: 0.25 +- EID: 496 + Name: Mesh_Cheese + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 1.85350871, y: 2.7331593, z: 1.26117873} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 141841143 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.5, y: 0.150000006, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 100 + highlightLowerClamp: 0.25 +- EID: 495 + Name: Mesh_Cheese + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.285500437, y: 1.08642888, z: -0.338151664} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 141841143 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.5, y: 0.150000006, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 100 + highlightLowerClamp: 0.25 +- EID: 494 + Name: Mesh_Cheese + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 4.26940489, y: 0.829830706, z: -0.690382957} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 141841143 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.5, y: 0.150000006, z: 0.5} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 100 + highlightLowerClamp: 0.25 +- EID: 493 Name: Egg IsActive: true NumberOfChildren: 4 Components: Transform Component: - Translate: {x: -0.630749702, y: 1.00790954, z: 1.41826737} - Rotate: {x: -0, y: 0, z: -0} + Translate: {x: -0.636476278, y: 1.0065378, z: 1.4076668} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 0.999979734, y: 1, z: 0.999979734} IsActive: true Renderable Component: @@ -6166,6 +7670,8 @@ Enabled: true threshHold: 0.5 ignoreRaccoon: true + breakClipHandlerName: SFXEggBreak144 + breakClipPath: event:/Props/impact_egg - Type: Item Enabled: true Score: 10 @@ -6176,7 +7682,7 @@ highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 458 +- EID: 492 Name: Piece1 IsActive: false NumberOfChildren: 0 @@ -6217,7 +7723,7 @@ Rotation Offset: {x: 0.164060935, y: 0, z: 0} IsActive: false Scripts: ~ -- EID: 457 +- EID: 491 Name: Piece2 IsActive: false NumberOfChildren: 0 @@ -6258,7 +7764,7 @@ Rotation Offset: {x: 0, y: 0, z: -0.34906584} IsActive: false Scripts: ~ -- EID: 456 +- EID: 490 Name: Piece3 IsActive: false NumberOfChildren: 0 @@ -6299,7 +7805,7 @@ Rotation Offset: {x: 0, y: 0, z: -0.261799395} IsActive: false Scripts: ~ -- EID: 455 +- EID: 489 Name: Piece4 IsActive: false NumberOfChildren: 0 @@ -6340,14 +7846,235 @@ Rotation Offset: {x: 0, y: 0, z: -1.04719758} IsActive: false Scripts: ~ -- EID: 65896 +- EID: 488 + Name: Egg + IsActive: true + NumberOfChildren: 4 + Components: + Transform Component: + Translate: {x: 4.23294592, y: 2.20174122, z: 10.7922974} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 0.999979734, y: 1, z: 0.999979734} + IsActive: true + Renderable Component: + Mesh: 147457317 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Sphere + Radius: 0.200000003 + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Breakable + Enabled: true + threshHold: 0.5 + ignoreRaccoon: true + breakClipHandlerName: SFXEggBreak144 + breakClipPath: event:/Props/impact_egg + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 2 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 487 + Name: Piece1 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.0224030018, y: 0.0607728958, z: -0.00627422333} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 134900190 + Material: 131956078 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 3 + Type: Box + Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0.164060935, y: 0, z: 0} + IsActive: false + Scripts: ~ +- EID: 486 + Name: Piece2 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.00627422333, y: 0.0337567925, z: -0.00243234634} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 146271645 + Material: 131956078 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 3 + Type: Box + Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.34906584} + IsActive: false + Scripts: ~ +- EID: 485 + Name: Piece3 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.0166685581, y: -0.0367090404, z: 0.0114421844} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 135945648 + Material: 131956078 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 3 + Type: Box + Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.261799395} + IsActive: false + Scripts: ~ +- EID: 484 + Name: Piece4 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.020128727, y: -0.0155199468, z: -0.0045747757} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 141722646 + Material: 131956078 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 3 + Type: Box + Half Extents: {x: 0.0500000007, y: 0.0500000007, z: 0.0500000007} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -1.04719758} + IsActive: false + Scripts: ~ +- EID: 483 Name: Watermelon IsActive: true NumberOfChildren: 5 Components: Transform Component: - Translate: {x: 12.1925201, y: 2.40468884, z: 0.196343422} - Rotate: {x: -0, y: 0, z: -0} + Translate: {x: 4.24842501, y: 2.39795327, z: 7.96371555} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 0.999979734, y: 1, z: 0.999979734} IsActive: true Renderable Component: @@ -6385,6 +8112,8 @@ Enabled: true threshHold: 4 ignoreRaccoon: true + breakClipHandlerName: SFXWatermelonBreak464 + breakClipPath: event:/Props/impact_watermelon_break - Type: Item Enabled: true Score: 500 @@ -6395,7 +8124,7 @@ highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 454 +- EID: 482 Name: Piece1 IsActive: false NumberOfChildren: 0 @@ -6428,7 +8157,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.400000006, y: 0.300000012, z: 0.300000012} + Half Extents: {x: 0.449999988, y: 0.349999994, z: 0.349999994} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -6440,13 +8169,13 @@ Enabled: true Score: 50 currCategory: 1 - density: 3 - dontReturn: false + density: 1 + dontReturn: true soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 453 +- EID: 481 Name: Piece2 IsActive: false NumberOfChildren: 0 @@ -6479,7 +8208,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.300000012, y: 0.200000003, z: 0.200000003} + Half Extents: {x: 0.349999994, y: 0.25, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -6491,13 +8220,13 @@ Enabled: true Score: 50 currCategory: 1 - density: 3 - dontReturn: false + density: 1 + dontReturn: true soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 452 +- EID: 480 Name: Piece3 IsActive: false NumberOfChildren: 0 @@ -6530,7 +8259,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0799999982, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.200000003, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -6542,13 +8271,13 @@ Enabled: true Score: 10 currCategory: 0 - density: 3 - dontReturn: false + density: 1 + dontReturn: true soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 451 +- EID: 479 Name: Piece4 IsActive: false NumberOfChildren: 0 @@ -6581,7 +8310,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.200000003, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.25, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -6593,13 +8322,13 @@ Enabled: true Score: 10 currCategory: 0 - density: 3 - dontReturn: false + density: 1 + dontReturn: true soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 highlightLowerClamp: 0.25 -- EID: 450 +- EID: 478 Name: Piece5 IsActive: false NumberOfChildren: 0 @@ -6632,7 +8361,7 @@ - Is Trigger: false Collision Tag: 2 Type: Box - Half Extents: {x: 0.25, y: 0.0500000007, z: 0.200000003} + Half Extents: {x: 0.300000012, y: 0.100000001, z: 0.25} Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -6644,9 +8373,814 @@ Enabled: true Score: 10 currCategory: 0 - density: 3 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 477 + Name: Watermelon + IsActive: true + NumberOfChildren: 5 + Components: + Transform Component: + Translate: {x: 5.91687918, y: 0.227440596, z: 2.4012506} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 0.999979734, y: 1, z: 0.999979734} + IsActive: true + Renderable Component: + Mesh: 134305891 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Sphere + Radius: 0.5 + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Breakable + Enabled: true + threshHold: 4 + ignoreRaccoon: true + breakClipHandlerName: SFXWatermelonBreak464 + breakClipPath: event:/Props/impact_watermelon_break + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 dontReturn: false soundDistance: 10 highlightSpeed: 300 highlightThickness: 250 - highlightLowerClamp: 0.25 \ No newline at end of file + highlightLowerClamp: 0.25 +- EID: 476 + Name: Piece1 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.0218036175, y: 5.38527966e-05, z: 0.202852726} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 144023586 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.449999988, y: 0.349999994, z: 0.349999994} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0.164060935, y: 0, z: 0} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 475 + Name: Piece2 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.0812162161, y: 0.0825212598, z: -0.0991339684} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 142132679 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.349999994, y: 0.25, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.34906584} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 474 + Name: Piece3 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.0350502729, y: -0.210244894, z: -0.0336794853} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 138231239 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.25, y: 0.200000003, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.261799395} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 473 + Name: Piece4 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 135293480 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.25, y: 0.100000001, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -1.04719758} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 472 + Name: Piece5 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.129600644, y: 0.219047099, z: 0.0484838486} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 146157335 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.100000001, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0.436332315} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 471 + Name: Watermelon + IsActive: true + NumberOfChildren: 5 + Components: + Transform Component: + Translate: {x: 12.1088581, y: 2.41677403, z: -0.0448025912} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 0.999979734, y: 1, z: 0.999979734} + IsActive: true + Renderable Component: + Mesh: 134305891 + Material: 122370915 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Sphere + Radius: 0.5 + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: Breakable + Enabled: true + threshHold: 4 + ignoreRaccoon: true + breakClipHandlerName: SFXWatermelonBreak464 + breakClipPath: event:/Props/impact_watermelon_break + - Type: Item + Enabled: true + Score: 500 + currCategory: 2 + density: 1 + dontReturn: false + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 470 + Name: Piece1 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.0218036175, y: 5.38527966e-05, z: 0.202852726} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 144023586 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.449999988, y: 0.349999994, z: 0.349999994} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0.164060935, y: 0, z: 0} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 448 + Name: Piece2 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0.0812162161, y: 0.0825212598, z: -0.0991339684} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 142132679 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.349999994, y: 0.25, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.34906584} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 50 + currCategory: 1 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 447 + Name: Piece3 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.0350502729, y: -0.210244894, z: -0.0336794853} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 138231239 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.25, y: 0.200000003, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -0.261799395} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 446 + Name: Piece4 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 135293480 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.25, y: 0.100000001, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: -1.04719758} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 445 + Name: Piece5 + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -0.129600644, y: 0.219047099, z: 0.0484838486} + Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} + Scale: {x: 1, y: 1, z: 1} + IsActive: false + Renderable Component: + Mesh: 146157335 + Material: 122370915 + IsActive: false + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: true + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: false + Freeze Rotation Y: false + Freeze Rotation Z: false + IsActive: false + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 2 + Type: Box + Half Extents: {x: 0.300000012, y: 0.100000001, z: 0.25} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0.436332315} + IsActive: false + Scripts: + - Type: Item + Enabled: true + Score: 10 + currCategory: 0 + density: 1 + dontReturn: true + soundDistance: 10 + highlightSpeed: 300 + highlightThickness: 250 + highlightLowerClamp: 0.25 +- EID: 66069 + Name: ====Raccoon==== + IsActive: true + NumberOfChildren: 2 + Components: ~ + Scripts: ~ +- EID: 65775 + Name: Player + IsActive: true + NumberOfChildren: 5 + Components: + Transform Component: + Translate: {x: 5.5, y: 0.171148509, z: 10} + Rotate: {x: -0, y: -3.1415925, z: 0} + Scale: {x: 0.999999404, y: 1, z: 0.999999404} + IsActive: true + Renderable Component: + Mesh: 149697411 + Material: 126974645 + IsActive: true + RigidBody Component: + Type: Dynamic + Drag: 0.00999999978 + Angular Drag: 0.100000001 + Use Gravity: false + Interpolate: false + Sleeping Enabled: true + Freeze Position X: false + Freeze Position Y: false + Freeze Position Z: false + Freeze Rotation X: true + Freeze Rotation Y: true + Freeze Rotation Z: true + IsActive: true + Collider Component: + Colliders: + - Is Trigger: false + Collision Tag: 1 + Type: Box + Half Extents: {x: 0.400000006, y: 0.5, z: 0.300000012} + Friction: 0.400000006 + Bounciness: 0 + Density: 1 + Position Offset: {x: 0, y: 0.25, z: 0} + Rotation Offset: {x: 0, y: 0, z: 0} + IsActive: true + Scripts: + - Type: PlayerController + Enabled: true + respawnPoint: 66065 + currentState: 0 + maxMoveVel: 3 + moveForce: 50 + sprintMultiplier: 1.5 + rotationFactorPerFrame: 5 + maxJumpHeight: 2 + maxJumpTime: 0.75 + fallMultipler: 3 + jumpPadMultiplayer: 1.5 + lightMultiper: 0.899999976 + mediumMultiper: 0.699999988 + heavyMultiper: 0.5 + silhouettePlayer: 462 + silhouetteBag: 465 + - Type: PickAndThrow + Enabled: true + throwForce: [10, 8, 10] + cameraArmOffSet: [0.25, 0.600000024, 0.200000003] + delayTimer: 1 + aimingLength: 1 + throwItem: false + rayDistance: 0.75 + rayHeight: 0.100000001 + aimingFOV: 50 + defaultFOV: 45 +- EID: 66068 + Name: HoldingPoint + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0.899999976, z: 0.200000286} + Rotate: {x: 0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ +- EID: 66063 + Name: PlayerCamera + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -5.96046448e-08, z: 0} + Rotate: {x: 0, y: 3.1415925, z: 2.23517329e-08} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Camera Component: + Position: {x: 2.12735963, y: 0.362327784, z: 7.98933029} + Pitch: 0 + Yaw: 0 + Roll: 1.28065994e-06 + Width: 1920 + Near: 0.00999999978 + Far: 10000 + Perspective: true + FOV: 45 + IsActive: true + Camera Arm Component: + Arm Pitch: 40 + Arm Yaw: 0 + Arm Length: 3 + Look At Camera Origin: true + Target Offset: {x: 0, y: 0.75, z: 0} + Camera Collision: true + IsActive: true + Scripts: + - Type: SHADE_Scripting.ThirdPersonCamera + Enabled: true + armLength: 3 + turnSpeedPitch: 0.200000003 + turnSpeedYaw: 0.400000006 + inverseXControls: true + inverseYControls: false + pitchUpperClamp: 45 + pitchLowerClamp: 5 +- EID: 66064 + Name: PlayerBag + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -2.98023224e-08, z: 4.76837158e-07} + Rotate: {x: 0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144838771 + Material: 123745521 + IsActive: true + Scripts: ~ +- EID: 462 + Name: SilouettePlayer + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 2.38418579e-07, y: -2.98023224e-08, z: -2.98023224e-07} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 149697411 + Material: 126391182 + IsActive: true + Scripts: ~ +- EID: 465 + Name: SilouetteBag + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -2.98023224e-08, z: 4.76837158e-07} + Rotate: {x: 0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Renderable Component: + Mesh: 144838771 + Material: 126391182 + IsActive: true + Scripts: ~ +- EID: 66065 + Name: RespawnPoint + IsActive: true + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 5.5, y: 0.00999999978, z: 10} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true + Scripts: ~ \ No newline at end of file diff --git a/Assets/Scenes/LoseScene.shade b/Assets/Scenes/LoseScene.shade index f7c01b1d..f8baefc8 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.100000001} + Translate: {x: 0, y: 0, z: 0.300000012} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} IsActive: true @@ -49,7 +49,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 75, z: 0} + Translate: {x: 0, y: 75, z: 0.200000003} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 400, y: 100, z: 1} IsActive: true @@ -73,10 +73,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 6 @@ -85,7 +85,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: 0} + Translate: {x: 0, y: -200, z: 0.200000003} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 400, y: 100, z: 1} IsActive: true @@ -108,10 +108,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 3 @@ -153,4 +153,40 @@ Components: ~ Scripts: - Type: SHADE_Scripting.UI.TweenManager - Enabled: true \ No newline at end of file + Enabled: true +- EID: 450 + Name: TransitionCanvas + IsActive: true + NumberOfChildren: 1 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 65982 + 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: 2500, y: 1080, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 120016136 + IsActive: true + UI Component: + Canvas ID: 450 + 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 diff --git a/Assets/Scenes/MainMenu.shade b/Assets/Scenes/MainMenu.shade index 1edd67b5..197de206 100644 --- a/Assets/Scenes/MainMenu.shade +++ b/Assets/Scenes/MainMenu.shade @@ -21,7 +21,7 @@ IsActive: true Renderable Component: Mesh: 141771688 - Material: 129138332 + Material: 121834459 IsActive: true UI Component: Canvas ID: 0 @@ -97,13 +97,13 @@ Scripts: - Type: ChangeSceneButton Enabled: true - sceneID: 96668835 + sceneID: 91947920 - 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 6 @@ -135,10 +135,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 7 @@ -168,10 +168,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - Type: SHADE_Scripting.UI.ChangeCanvasButton @@ -204,10 +204,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - Type: SHADE_Scripting.UI.ChangeCanvasButton @@ -240,10 +240,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - Type: SHADE_Scripting.UI.ChangeCanvasButton @@ -276,10 +276,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - Type: SHADE_Scripting.UI.ChangeCanvasButton @@ -352,23 +352,23 @@ Scripts: ~ - EID: 14 Name: BackGround - IsActive: false + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 0.5} + Translate: {x: 0, y: 0, z: 2.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} - IsActive: false + IsActive: true Renderable Component: Mesh: 141771688 Material: 121834459 - IsActive: false + IsActive: true UI Component: Canvas ID: 13 Hovered: false Clicked: false - IsActive: false + IsActive: true Scripts: ~ - EID: 15 Name: Instruction Image @@ -378,7 +378,7 @@ Transform Component: Translate: {x: 0, y: 0, z: 0.400000006} Rotate: {x: 0, y: 0, z: 0} - Scale: {x: 1344, y: 756, z: 1} + Scale: {x: 1167.40002, y: 900, z: 1} IsActive: true Renderable Component: Mesh: 141771688 @@ -428,10 +428,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 17 @@ -465,10 +465,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 18 @@ -501,18 +501,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 19 @@ -525,26 +517,33 @@ Canvas Height: 1080 Scale by canvas width: false IsActive: false - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.Options + Enabled: true + masterVolSlider: 29 + sfxVolSlider: 30 + bgmVolSlider: 31 + fovSlider: 37 + sensitivitySlider: 38 - EID: 20 Name: BackGround - IsActive: false + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 1} + Translate: {x: 0, y: 0, z: 1.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} - IsActive: false + IsActive: true Renderable Component: Mesh: 141771688 Material: 121834459 - IsActive: false + IsActive: true UI Component: Canvas ID: 19 Hovered: false Clicked: false - IsActive: false + IsActive: true Scripts: ~ - EID: 21 Name: BackButton @@ -574,6 +573,14 @@ - Type: SHADE_Scripting.UI.ChangeCanvasButton Enabled: true canvasToActivate: 0 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 22 Name: Options Title Text IsActive: true @@ -587,6 +594,8 @@ Text Renderer Component: Text: Options Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -607,6 +616,8 @@ Text Renderer Component: Text: Audio Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -643,6 +654,8 @@ Text Renderer Component: Text: Master Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -663,6 +676,8 @@ Text Renderer Component: Text: SFX Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -683,6 +698,8 @@ Text Renderer Component: Text: BGM Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -722,6 +739,8 @@ IsActive: true Slider Component: Slider Value: 1 + Min Value: 0 + Max Value: 100 IsActive: true UI Component: Canvas ID: 19 @@ -745,6 +764,8 @@ IsActive: true Slider Component: Slider Value: 1 + Min Value: 0 + Max Value: 100 IsActive: true UI Component: Canvas ID: 19 @@ -768,6 +789,8 @@ IsActive: true Slider Component: Slider Value: 1 + Min Value: 0 + Max Value: 100 IsActive: true UI Component: Canvas ID: 19 @@ -788,6 +811,8 @@ Text Renderer Component: Text: Camera Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -798,7 +823,7 @@ - EID: 33 Name: Camera Text Group IsActive: true - NumberOfChildren: 2 + NumberOfChildren: 4 Components: Transform Component: Translate: {x: -900, y: -220, z: 0} @@ -824,6 +849,8 @@ Text Renderer Component: Text: FOV Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -844,6 +871,8 @@ Text Renderer Component: Text: Sensitivity Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -851,10 +880,54 @@ Clicked: false IsActive: true Scripts: ~ +- EID: 449 + Name: Camera Invert X Text + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: -200, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 75, y: 75, z: 1} + IsActive: false + Text Renderer Component: + Text: "Camera Invert X:" + Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: false + UI Component: + Canvas ID: 19 + Hovered: false + Clicked: false + IsActive: false + Scripts: ~ +- EID: 447 + Name: Camera Invert Y Text + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 800, y: -200, z: 0.100000001} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 75, y: 75, z: 1} + IsActive: false + Text Renderer Component: + Text: "Y:" + Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: false + UI Component: + Canvas ID: 19 + Hovered: false + Clicked: false + IsActive: false + Scripts: ~ - EID: 36 Name: Camera Slider Group IsActive: true - NumberOfChildren: 2 + NumberOfChildren: 4 Components: Transform Component: Translate: {x: 100, y: -200, z: 0} @@ -883,6 +956,8 @@ IsActive: true Slider Component: Slider Value: 1 + Min Value: 45 + Max Value: 120 IsActive: true UI Component: Canvas ID: 19 @@ -906,6 +981,8 @@ IsActive: true Slider Component: Slider Value: 1 + Min Value: 0 + Max Value: 100 IsActive: true UI Component: Canvas ID: 19 @@ -913,6 +990,56 @@ Clicked: false IsActive: true Scripts: ~ +- EID: 448 + Name: Invert X Toggle Button + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -300, y: -200, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 75, y: 75, z: 1} + IsActive: false + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: false + Toggle Button Component: + Non Toggled Texture: 55358401 + Toggled Texture: 52333376 + Value: false + IsActive: false + UI Component: + Canvas ID: 19 + Hovered: false + Clicked: false + IsActive: false + Scripts: ~ +- EID: 445 + Name: Invert Y Toggle Button + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: -50, y: -200, z: 0} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 75, y: 75, z: 1} + IsActive: false + Renderable Component: + Mesh: 141771688 + Material: 129340704 + IsActive: false + Toggle Button Component: + Non Toggled Texture: 55358401 + Toggled Texture: 52333376 + Value: false + IsActive: false + UI Component: + Canvas ID: 19 + Hovered: false + Clicked: false + IsActive: false + Scripts: ~ - EID: 39 Name: Audio Slider Text Group IsActive: true @@ -942,6 +1069,8 @@ Text Renderer Component: Text: 100 Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -952,8 +1081,6 @@ - Type: SHADE_Scripting.UI.SliderText Enabled: true sliderObj: 29 - minValue: 0 - maxValue: 100 - EID: 41 Name: SFX Volume Slider Text IsActive: true @@ -967,6 +1094,8 @@ Text Renderer Component: Text: 100 Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -977,8 +1106,6 @@ - Type: SHADE_Scripting.UI.SliderText Enabled: true sliderObj: 30 - minValue: 0 - maxValue: 100 - EID: 42 Name: BGM Volume Slider Text IsActive: true @@ -992,6 +1119,8 @@ Text Renderer Component: Text: 100 Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -1002,8 +1131,6 @@ - Type: SHADE_Scripting.UI.SliderText Enabled: true sliderObj: 31 - minValue: 0 - maxValue: 100 - EID: 43 Name: Camera Slider Text Group IsActive: true @@ -1033,6 +1160,8 @@ Text Renderer Component: Text: 100 Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -1043,8 +1172,6 @@ - Type: SHADE_Scripting.UI.SliderText Enabled: true sliderObj: 37 - minValue: 0 - maxValue: 100 - EID: 45 Name: Sensitivity Slider Text IsActive: true @@ -1058,6 +1185,8 @@ Text Renderer Component: Text: 100 Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 19 @@ -1068,12 +1197,10 @@ - Type: SHADE_Scripting.UI.SliderText Enabled: true sliderObj: 38 - minValue: 0 - maxValue: 100 - EID: 46 Name: Credits Canvas IsActive: false - NumberOfChildren: 3 + NumberOfChildren: 4 Components: Canvas Component: Canvas Width: 1920 @@ -1082,12 +1209,12 @@ IsActive: false Scripts: ~ - EID: 47 - Name: BackGround + Name: Scrolling Credits IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -3800, z: 0.100000001} + Translate: {x: 0, y: -3800, z: 1.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 8026, z: 1} IsActive: true @@ -1100,7 +1227,11 @@ Hovered: false Clicked: false IsActive: true - Scripts: ~ + Scripts: + - Type: SHADE_Scripting.UI.ScrollingCredits + Enabled: true + endY: 4000 + duration: 20 - EID: 48 Name: BackButton IsActive: true @@ -1129,25 +1260,55 @@ - Type: SHADE_Scripting.UI.ChangeCanvasButton Enabled: true canvasToActivate: 0 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 49 Name: Credits Title Text - IsActive: true + IsActive: false NumberOfChildren: 0 Components: Transform Component: Translate: {x: -150, y: 400, z: 0.100000001} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 100, y: 100, z: 1} - IsActive: true + IsActive: false Text Renderer Component: Text: Credits Font: 174412429 - IsActive: true + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} + IsActive: false UI Component: Canvas ID: 46 Hovered: false Clicked: false - IsActive: true + IsActive: false + Scripts: ~ +- EID: 55 + Name: BackGround + IsActive: false + NumberOfChildren: 0 + Components: + Transform Component: + Translate: {x: 0, y: 0, z: 1.5} + Rotate: {x: 0, y: 0, z: 0} + Scale: {x: 1920, y: 1080, z: 1} + IsActive: false + Renderable Component: + Mesh: 141771688 + Material: 121834459 + IsActive: false + UI Component: + Canvas ID: 46 + Hovered: false + Clicked: false + IsActive: false Scripts: ~ - EID: 50 Name: Level Select Canvas @@ -1162,23 +1323,23 @@ Scripts: ~ - EID: 51 Name: BackGround - IsActive: false + IsActive: true NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 0, z: 1} + Translate: {x: 0, y: 0, z: 1.5} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} - IsActive: false + IsActive: true Renderable Component: Mesh: 141771688 Material: 121834459 - IsActive: false + IsActive: true UI Component: Canvas ID: 50 Hovered: false Clicked: false - IsActive: false + IsActive: true Scripts: ~ - EID: 52 Name: BackButton @@ -1208,6 +1369,14 @@ - Type: SHADE_Scripting.UI.ChangeCanvasButton Enabled: true canvasToActivate: 0 + - Type: SHADE_Scripting.UI.ButtonFX + Enabled: true + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty + hoverScale: 1.10000002 + clickScale: 0.899999976 - EID: 53 Name: Level Select Title Text IsActive: true @@ -1221,10 +1390,48 @@ Text Renderer Component: Text: Level Select Font: 174412429 + Color: {x: 0, y: 0, z: 0, w: 1} + Text Size: {x: 1, y: 1, z: 1} IsActive: true UI Component: Canvas ID: 50 Hovered: false Clicked: false IsActive: true - Scripts: ~ \ No newline at end of file + Scripts: ~ +- EID: 450 + Name: TransitionCanvas + IsActive: true + NumberOfChildren: 1 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 65982 + 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: 2500, y: 1080, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 120016136 + IsActive: true + UI Component: + Canvas ID: 450 + 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 diff --git a/Assets/Scenes/PhysicsTest.shade b/Assets/Scenes/PhysicsTest.shade index 20903809..91afbfa3 100644 --- a/Assets/Scenes/PhysicsTest.shade +++ b/Assets/Scenes/PhysicsTest.shade @@ -5,13 +5,14 @@ Components: Transform Component: Translate: {x: 0, y: 7, z: 0} - Rotate: {x: 1.48352981, y: 0, z: 0} + Rotate: {x: 0, y: 0, z: 0} Scale: {x: 0.999999344, y: 0.999999821, z: 0.999999523} IsActive: true RigidBody Component: Type: Dynamic Drag: 0.00999999978 Angular Drag: 0.100000001 + Gravity Scale: 1 Use Gravity: true Interpolate: false Sleeping Enabled: true @@ -26,8 +27,9 @@ Colliders: - Is Trigger: false Collision Tag: 0 - Type: Box - Half Extents: {x: 1, y: 1, z: 1} + Type: Capsule + Radius: 1 + Height: 2 Friction: 0.400000006 Bounciness: 0 Density: 1 @@ -75,10 +77,10 @@ Yaw: 0 Roll: 0 Width: 1920 - Height: 1080 Near: 0.00999999978 Far: 10000 Perspective: true + FOV: 90 IsActive: true Scripts: ~ - EID: 65539 @@ -187,6 +189,7 @@ Type: Dynamic Drag: 0.00999999978 Angular Drag: 0.100000001 + Gravity Scale: 1 Use Gravity: true Interpolate: true Sleeping Enabled: true diff --git a/Assets/Scenes/Scene2.shade b/Assets/Scenes/Scene2.shade index de902c55..891c9664 100644 --- a/Assets/Scenes/Scene2.shade +++ b/Assets/Scenes/Scene2.shade @@ -14,10 +14,10 @@ Yaw: 0 Roll: 0 Width: 1200 - Height: 1080 Near: 0.00999999978 Far: 10000 Perspective: true + FOV: 90 IsActive: true Scripts: ~ - EID: 1 @@ -26,9 +26,9 @@ NumberOfChildren: 1 Components: Transform Component: - Translate: {x: -1.86388135, y: 0.0544953719, z: 0} - Rotate: {x: -0, y: 0, z: -0} - Scale: {x: 1, y: 1, z: 1} + Translate: {x: 0, y: 0.189419448, z: 0} + Rotate: {x: 0.00523597933, y: -2.96353412, z: -6.40293041e-10} + Scale: {x: 1.00000191, y: 1, z: 1.00000191} IsActive: true Renderable Component: Mesh: 149697411 @@ -55,10 +55,15 @@ IsActive: true NumberOfChildren: 0 Components: + Transform Component: + Translate: {x: 0, y: 1.82978272, z: -3.28967047} + Rotate: {x: -0, y: 0, z: -0} + Scale: {x: 1, y: 1, z: 1} + IsActive: true Light Component: Position: {x: 3, y: 4.5, z: 7} Type: Directional - Direction: {x: -0.298000008, y: 0.522498012, z: 0.798600018} + Direction: {x: 0, y: 0, z: 1} Color: {x: 1, y: 1, z: 1, w: 1} Layer: 4294967295 Strength: 0 @@ -85,8 +90,8 @@ Components: Transform Component: Translate: {x: 0, y: 0.0810000002, z: 0} - Rotate: {x: -1.57079637, y: 0, z: 0} - Scale: {x: 50, y: 50, z: 50} + Rotate: {x: -1.57079625, y: 0, z: -0} + Scale: {x: 50, y: 49.9999924, z: 49.9999924} IsActive: true Renderable Component: Mesh: 141771688 diff --git a/Assets/Scenes/WinScene.shade b/Assets/Scenes/WinScene.shade index c6e676c3..5aea6f35 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.100000001} + Translate: {x: 0, y: 0, z: 0.300000012} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 1920, y: 1080, z: 1} IsActive: true @@ -49,7 +49,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: 75, z: 0} + Translate: {x: 0, y: 75, z: 0.200000003} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 400, y: 100, z: 1} IsActive: true @@ -73,10 +73,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 6 @@ -85,7 +85,7 @@ NumberOfChildren: 0 Components: Transform Component: - Translate: {x: 0, y: -200, z: 0} + Translate: {x: 0, y: -200, z: 0.200000003} Rotate: {x: 0, y: 0, z: 0} Scale: {x: 400, y: 100, z: 1} IsActive: true @@ -108,10 +108,10 @@ 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 + onHoverEnterSound: Empty + onHoverExitSound: Empty + onClickSound: event:/UI/mouse_down_element + onReleaseSound: Empty hoverScale: 1.10000002 clickScale: 0.899999976 - EID: 3 @@ -153,4 +153,40 @@ Components: ~ Scripts: - Type: SHADE_Scripting.UI.TweenManager - Enabled: true \ No newline at end of file + Enabled: true +- EID: 450 + Name: TransitionCanvas + IsActive: true + NumberOfChildren: 1 + Components: + Canvas Component: + Canvas Width: 1920 + Canvas Height: 1080 + Scale by canvas width: false + IsActive: true + Scripts: ~ +- EID: 65982 + 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: 2500, y: 1080, z: 1} + IsActive: true + Renderable Component: + Mesh: 141771688 + Material: 120016136 + IsActive: true + UI Component: + Canvas ID: 450 + 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 diff --git a/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs b/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs new file mode 100644 index 00000000..7100a23f --- /dev/null +++ b/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs @@ -0,0 +1,32 @@ +using SHADE; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SHADE_Scripting.Audio +{ + public class SoundLoopEmitter : Script + { + [SerializeField] + private string clipHandlerName; + + [SerializeField] + private string clipPath; + + public float volume; + + protected override void awake() + { + AudioHandler.audioClipHandlers[clipHandlerName] = SHADE.Audio.CreateAudioClip(clipPath); + } + + protected override void start() + { + SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[clipHandlerName], GameObject.EntityId); + AudioHandler.audioClipHandlers[clipHandlerName].SetVolume(volume); + AudioHandler.audioClipHandlers[clipHandlerName].Play(); + } + } +} diff --git a/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs.shmeta b/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs.shmeta new file mode 100644 index 00000000..af1a932f --- /dev/null +++ b/Assets/Scripts/Audio/CS_SoundLoopEmitter.cs.shmeta @@ -0,0 +1,3 @@ +Name: CS_SoundLoopEmitter +ID: 154714630 +Type: 9 diff --git a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/Homeowner1.cs b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/Homeowner1.cs index e37aab36..b57e7fcd 100644 --- a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/Homeowner1.cs +++ b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/Homeowner1.cs @@ -37,6 +37,9 @@ public partial class Homeowner1 : BehaviourTree private List waypoints; + [SerializeField] + private GameObject startWaypoint; + [SerializeField] [Tooltip("The AI will patrol at this speed")] private float patrolSpeed; @@ -112,8 +115,14 @@ public partial class Homeowner1 : BehaviourTree AudioHandler.audioClipHandlers["BGMAdaptive"] = Audio.CreateAudioClip("event:/Music/bgm_adaptive"); AudioHandler.audioClipHandlers["SFXFootstep"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_footsteps"); + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXFootstep"], GameObject.EntityId); AudioHandler.audioClipHandlers["SFXDetectAh"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_detect_raccoon"); + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXDetectAh"], GameObject.EntityId); AudioHandler.audioClipHandlers["SFXDetectSting"] = Audio.CreateAudioClip("event:/Music/stingers/player_detected"); + AudioHandler.audioClipHandlers["SFXHumming"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_humming"); + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXHumming"], GameObject.EntityId); + AudioHandler.audioClipHandlers["SFXHumming"].SetVolume(0.15f); + AudioHandler.audioClipHandlers["SFXHumming"].Play(); if (aiInstance != null && aiInstance != this) RemoveScript(); @@ -151,6 +160,8 @@ public partial class Homeowner1 : BehaviourTree SetData("distanceToCapture", distanceToCapture); if (GetData("baseCaptureTime") == null || (float)GetData("baseCaptureTime") != captureTime) SetData("baseCaptureTime", captureTime); + if (GetData("startWaypoint") == null || (GameObject)GetData("startWaypoint") != startWaypoint) + SetData("startWaypoint", startWaypoint); events.Tick(); diff --git a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafAttack.cs b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafAttack.cs index 86ac07e0..59470e56 100644 --- a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafAttack.cs +++ b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafAttack.cs @@ -12,6 +12,7 @@ using SHADE; using SHADE_Scripting.AIBehaviour.BehaviourTree; +using SHADE_Scripting.Audio; using System; using System.Collections.Generic; using System.Linq; @@ -98,6 +99,35 @@ public partial class LeafAttack : BehaviourTreeNode if (player.GetScript().stateMachine && !player.GetScript().stateMachine.IsState(typeof(PlayerCaughtState))) player.GetScript().stateMachine.SetState(typeof(PlayerCaughtState)); + //Teleport AI back to home waypoint + int homeIndex = 0; + GameObject? startWaypoint = null; + List? waypoints = (List)GetNodeData("waypoints"); + if (GetNodeData("startWaypoint") != null) + startWaypoint = (GameObject)GetNodeData("startWaypoint"); + if (startWaypoint != null) + { + for (int i = 0; i < waypoints.Count; ++i) + { + if (startWaypoint == waypoints[i]) + { + homeIndex = i; + } + } + } + SetNodeData("currentWaypointIndex", homeIndex); + SetNodeData("playerLastSightedWaypointIndex", homeIndex); + SetNodeData("isAlert", false); + Audio.SetParameterWithLabel("PlayerDetection", "Undetected"); + AudioHandler.audioClipHandlers["SFXHumming"].Play(); + + Transform? transform = (Transform)GetNodeData("transform"); + if (waypoints != null && transform != null) + { + transform.GlobalPosition = waypoints[homeIndex].GetComponent().GlobalPosition; + } + ClearNodeData("target"); + status = BehaviourTreeNodeStatus.SUCCESS; onExit(BehaviourTreeNodeStatus.SUCCESS); return status; diff --git a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafChase.cs b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafChase.cs index 2a3647b3..982ee818 100644 --- a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafChase.cs +++ b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafChase.cs @@ -60,7 +60,7 @@ public partial class LeafChase : BehaviourTreeNode } } //Debug.Log("Player is nearest " + nearestWaypointIndex); - //Debug.Log("I'm at " + (int)GetNodeData("currentWaypointIndex")); + //Debug.Log("AI going to " + (int)GetNodeData("currentWaypointIndex")); SetNodeData("playerLastSightedWaypointIndex", nearestWaypointIndex); } @@ -78,6 +78,7 @@ public partial class LeafChase : BehaviourTreeNode GetNodeData("distanceToCapture") == null || GetNodeData("baseCaptureTime") == null) { + //Debug.Log("Chase Failure: null values"); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); return status; @@ -113,7 +114,8 @@ public partial class LeafChase : BehaviourTreeNode if (GetNodeData("isAlert") != null && (bool)GetNodeData("isAlert") == true) { //AudioHandler.audioClipHandlers["BGMAdpative"].SetParameter("Detected", 0.0f); - Audio.SetParameter("Detected", 0.0f); + //Audio.SetParameter("Detected", 0.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Undetected"); AudioHandler.audioClipHandlers["SFXHumming"].Play(); } SetNodeData("isAlert", false); diff --git a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafPatrol.cs b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafPatrol.cs index ba061972..68f649fa 100644 --- a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafPatrol.cs +++ b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafPatrol.cs @@ -29,7 +29,7 @@ public partial class LeafPatrol : BehaviourTreeNode private float chaseSpeed; private float turningSpeed; private float retreatTimer = 0.0f; - private int currentWaypointIndex = 0; + private int currentWaypointIndex = -1; private bool retreatState = false; private bool goingForwards = true; @@ -47,7 +47,7 @@ public partial class LeafPatrol : BehaviourTreeNode //node, and hence we do not need to inherit its constructors public LeafPatrol(string name) : base(name) { - currentWaypointIndex = 0; + currentWaypointIndex = -1; } //When it comes to evaluating, @@ -57,6 +57,42 @@ public partial class LeafPatrol : BehaviourTreeNode //Debug.LogWarning("LeafPatrol"); onEnter(BehaviourTreeNodeStatus.RUNNING); + //Initialise home waypoint + waypoints = (List)GetNodeData("waypoints"); + if (currentWaypointIndex == -1) + { + if (waypoints != null) + { + //Debug.Log("Waypoints not null"); + if (GetNodeData("startWaypoint") != null) + { + //Debug.Log("Getting start waypoint"); + GameObject startWaypoint = (GameObject)(GetNodeData("startWaypoint")); + for (int i = 0; i < waypoints.Count; ++i) + { + if (startWaypoint == waypoints[i]) + { + //Debug.Log("Leaf Patrol Constructor: Start Waypoint Index: " + i.ToString()); + currentWaypointIndex = i; + SetNodeData("currentWaypointIndex", i); + } + } + } + else + { + status = BehaviourTreeNodeStatus.FAILURE; + onExit(BehaviourTreeNodeStatus.FAILURE); + return status; + } + } + else + { + status = BehaviourTreeNodeStatus.FAILURE; + onExit(BehaviourTreeNodeStatus.FAILURE); + return status; + } + } + //Get data if (GetNodeData("transform") == null || GetNodeData("patrolSpeed") == null || @@ -104,12 +140,13 @@ public partial class LeafPatrol : BehaviourTreeNode ClearNodeData("isWaiting"); return; } - waypoints = (List)GetNodeData("waypoints"); - if (waypoints == null) + if (GetNodeData("currentWaypointIndex") != null) { - return; + //2023 Mar 4, 0400, this is needed when the AI teleports back to the first spot after catching + currentWaypointIndex = (int)GetNodeData("currentWaypointIndex"); } - Vector3 targetPosition = waypoints[currentWaypointIndex].GetComponent().GlobalPosition; + //Modulo operator to prevent out of range exceptions + Vector3 targetPosition = waypoints[(currentWaypointIndex % waypoints.Count)].GetComponent().GlobalPosition; //Reach waypoint by X and Z being near enough //Do not consider Y of waypoints yet Vector3 remainingDistance = targetPosition - transform.GlobalPosition; @@ -195,6 +232,8 @@ public partial class LeafPatrol : BehaviourTreeNode //Debug.Log("AI is at " + transform.GlobalPosition.x.ToString() + " " + transform.GlobalPosition.y.ToString() + " " + transform.GlobalPosition.z.ToString()); Vector3 normalisedDifference = targetPosition - transform.GlobalPosition; normalisedDifference.y = 0.0f; //Do not move vertically + //Debug.Log("Leaf Patrol Current Waypoint Index: " + currentWaypointIndex.ToString()); + //Debug.Log("True Difference x " + normalisedDifference.x.ToString() + " z " + normalisedDifference.z.ToString()); normalisedDifference /= normalisedDifference.GetMagnitude(); //Debug.Log("Normalised Difference x " + normalisedDifference.x.ToString() + " z " + normalisedDifference.z.ToString()); @@ -245,7 +284,8 @@ public partial class LeafPatrol : BehaviourTreeNode AudioHandler.audioClipHandlers["SFXHumming"].Play(); //AudioHandler.audioClipHandlers["BGMUnalert"].Play(); //AudioHandler.audioClipHandlers["BGMAdaptive"].SetParameter("Detected", 0.0f); - Audio.SetParameter("Detected", 0.0f); + //Audio.SetParameter("Detected", 0.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Undetected"); } SetNodeData("isAlert", false); } diff --git a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafSearch.cs b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafSearch.cs index b2760e4a..2aebc3b7 100644 --- a/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafSearch.cs +++ b/Assets/Scripts/Gameplay/AIBehaviour/Implemented/LeafNodes/LeafSearch.cs @@ -26,6 +26,7 @@ public partial class LeafSearch : BehaviourTreeNode private Vector3 eyeOffset; private float sightDistance; private GameObject? player; //To be searched for and marked + private bool screamOnce; } //FUNCTIONS HERE @@ -67,7 +68,8 @@ public partial class LeafSearch : BehaviourTreeNode if (GetNodeData("isAlert") != null && (bool)GetNodeData("isAlert") == true) { //AudioHandler.audioClipHandlers["BGMAdaptive"].SetParameter("Detected", 0.0f); - Audio.SetParameter("Detected", 0.0f); + //Audio.SetParameter("Detected", 0.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Undetected"); AudioHandler.audioClipHandlers["SFXHumming"].Play(); reevaluateWaypoint(); } @@ -97,6 +99,7 @@ public partial class LeafSearch : BehaviourTreeNode //Search for player player = GameObject.Find("Player"); + screamOnce = false; //Automatically fail if no player is found if (player == null) @@ -104,6 +107,7 @@ public partial class LeafSearch : BehaviourTreeNode SetNodeData("isAlert", false); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); + screamOnce = false; return status; } else @@ -125,6 +129,7 @@ public partial class LeafSearch : BehaviourTreeNode //handleChaseStop(); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); + screamOnce = false; return status; } @@ -140,6 +145,7 @@ public partial class LeafSearch : BehaviourTreeNode //handleChaseStop(); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); + screamOnce = false; return status; } @@ -156,6 +162,7 @@ public partial class LeafSearch : BehaviourTreeNode //Debug.Log("Failure: Player has no collider"); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); + screamOnce = false; return status; } //Ray destination to target the centre of the player's collider instead of transform position @@ -173,6 +180,7 @@ public partial class LeafSearch : BehaviourTreeNode //handleChaseStop(); status = BehaviourTreeNodeStatus.FAILURE; onExit(BehaviourTreeNodeStatus.FAILURE); + screamOnce = false; return status; } else if (sightRayHit.Hit && sightRayHit.Other == player) @@ -188,31 +196,40 @@ public partial class LeafSearch : BehaviourTreeNode if (GetNodeData("isAlert") == null) { SetNodeData("isAlert", true); + screamOnce = true; //Audio.StopAllSounds(); - AudioHandler.audioClipHandlers["SFXDetectAh"].Play(); + //AudioHandler.audioClipHandlers["SFXDetectAh"].Play(); AudioHandler.audioClipHandlers["SFXDetectSting"].Play(); //AudioHandler.audioClipHandlers["BGMAlert"].Play(); AudioHandler.audioClipHandlers["SFXHumming"].Stop(false); //AudioHandler.audioClipHandlers["BGMUnalert"].Stop(true); //AudioHandler.audioClipHandlers["BGMAdaptive"].SetParameter("Detected", 1.0f); - Audio.SetParameter("Detected", 1.0f); + //Audio.SetParameter("Detected", 1.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Detected"); } else { if (GetNodeData("isAlert") != null && (bool)GetNodeData("isAlert") == false) { //Audio.StopAllSounds(); - AudioHandler.audioClipHandlers["SFXDetectAh"].Play(); + screamOnce = true; + //AudioHandler.audioClipHandlers["SFXDetectAh"].Play(); AudioHandler.audioClipHandlers["SFXDetectSting"].Play(); //AudioHandler.audioClipHandlers["BGMAlert"].Play(); AudioHandler.audioClipHandlers["SFXHumming"].Stop(false); //AudioHandler.audioClipHandlers["BGMUnalert"].Stop(true); //AudioHandler.audioClipHandlers["BGMAdaptive"].SetParameter("Detected", 1.0f); - Audio.SetParameter("Detected", 1.0f); + //Audio.SetParameter("Detected", 1.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Detected"); } SetNodeData("isAlert", true); } + if (screamOnce) + { + AudioHandler.audioClipHandlers["SFXDetectAh"].Play(); + } + status = BehaviourTreeNodeStatus.SUCCESS; onExit(BehaviourTreeNodeStatus.SUCCESS); return status; diff --git a/Assets/Scripts/Gameplay/Item/SC_Breakable.cs b/Assets/Scripts/Gameplay/Item/SC_Breakable.cs index 4ff49791..a42df17d 100644 --- a/Assets/Scripts/Gameplay/Item/SC_Breakable.cs +++ b/Assets/Scripts/Gameplay/Item/SC_Breakable.cs @@ -14,6 +14,12 @@ public class Breakable : Script public bool isBreak { get; set; } private List itemPieces = new List(); + [SerializeField] + private string breakClipHandlerName; + + [SerializeField] + private string breakClipPath; + protected override void awake() { rb = GetComponent(); @@ -32,7 +38,7 @@ public class Breakable : Script isBreak = false; - AudioHandler.audioClipHandlers["SFXBreak"] = Audio.CreateAudioClip("event:/Props/impact_break"); + AudioHandler.audioClipHandlers[breakClipHandlerName] = Audio.CreateAudioClip(breakClipPath); } protected override void update() @@ -76,7 +82,9 @@ public class Breakable : Script GameManager.Instance.itemShatter = false; isBreak = false; - AudioHandler.audioClipHandlers["SFXBreak"].Play(); + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[breakClipHandlerName], GameObject.EntityId); + AudioHandler.audioClipHandlers[breakClipHandlerName].Play(); + //Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers[breakClipHandlerName]); GameObject.SetActive(false); } } \ No newline at end of file diff --git a/Assets/Scripts/Gameplay/Item/SC_Item.cs b/Assets/Scripts/Gameplay/Item/SC_Item.cs index c8fa1bcd..b315ab08 100644 --- a/Assets/Scripts/Gameplay/Item/SC_Item.cs +++ b/Assets/Scripts/Gameplay/Item/SC_Item.cs @@ -121,11 +121,15 @@ public class Item : Script if (playSound) { + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactElastic"], GameObject.EntityId); + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactHard"], GameObject.EntityId); if (currCategory == ItemCategory.LIGHT) AudioHandler.audioClipHandlers["SFXImpactElastic"].Play(); else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY) AudioHandler.audioClipHandlers["SFXImpactHard"].Play(); playSound = false; + Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactElastic"]); + Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactHard"]); } if (info.GameObject.GetScript() && !returnBack) diff --git a/Assets/Scripts/Gameplay/Player/SC_PickAndThrow.cs b/Assets/Scripts/Gameplay/Player/SC_PickAndThrow.cs index e23e9ff1..87ef2b85 100644 --- a/Assets/Scripts/Gameplay/Player/SC_PickAndThrow.cs +++ b/Assets/Scripts/Gameplay/Player/SC_PickAndThrow.cs @@ -21,12 +21,12 @@ public class PickAndThrow : Script private Collider itemCollider; private Item itemScript; private Transform raccoonHoldLocation; - private ThirdPersonCamera tpc; + public ThirdPersonCamera tpc { get; set; } private float lastXDir; private float lastZDir; private bool inRange = false; public bool throwItem = false; - private Vector3 prevTargetOffSet; + public Vector3 prevTargetOffSet { get; set; } [Tooltip("Lenght of ray")] public float rayDistance = 1; @@ -165,7 +165,7 @@ public class PickAndThrow : Script } } - private void ResetItemObject() + public void ResetItemObject() { itemRidigBody = null; itemTransform = null; diff --git a/Assets/Scripts/Gameplay/Player/SC_PlayerController.cs b/Assets/Scripts/Gameplay/Player/SC_PlayerController.cs index d3cc3f66..4e2f38ec 100644 --- a/Assets/Scripts/Gameplay/Player/SC_PlayerController.cs +++ b/Assets/Scripts/Gameplay/Player/SC_PlayerController.cs @@ -22,7 +22,7 @@ public class PlayerController : Script public Camera cam { get; set; } public CameraArm camArm { get; set; } private PickAndThrow pat; - public StateMachine stateMachine; + public StateMachine stateMachine { get; set; } public bool holdItem { get; set; } public bool isAiming { get; set; } @@ -78,9 +78,9 @@ public class PlayerController : Script //silhouette===================================================================== public GameObject silhouettePlayer; - public Renderable silhouettePlayerRend; + private Renderable silhouettePlayerRend; public GameObject silhouetteBag; - public Renderable silhouetteBagRend; + private Renderable silhouetteBagRend; protected override void awake() { @@ -348,7 +348,7 @@ public class PlayerController : Script if (isMoveKeyPress && tranform && !isAiming) { Quaternion currentRotation = tranform.LocalRotation; - Quaternion targetRotation = Quaternion.LookRotation(new Vector3(axisMove.x, 0.0f, axisMove.y), Vector3.Up); + Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(axisMove.x,axisMove.y), 0.0f); tranform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationFactorPerFrame * (float)Time.FixedDeltaTime); } else if (camArm && tranform && isAiming) @@ -409,9 +409,18 @@ public class PlayerController : Script if (pat && pat.item) { - holdItem = false; - isAiming = false; - pat.item.GetScript().returnBack = true; + if (holdItem) + { + holdItem = false; + pat.item.GetScript().returnBack = true; + } + if (isAiming) + { + isAiming = false; + cam.FOV = pat.defaultFOV; + camArm.TargetOffset = pat.prevTargetOffSet; + camArm.ArmLength = pat.tpc.armLength; + } } } } diff --git a/Assets/Scripts/Gameplay/Player/SC_ThirdPersonCamera.cs b/Assets/Scripts/Gameplay/Player/SC_ThirdPersonCamera.cs index 71cb31a4..6e4e1f7b 100644 --- a/Assets/Scripts/Gameplay/Player/SC_ThirdPersonCamera.cs +++ b/Assets/Scripts/Gameplay/Player/SC_ThirdPersonCamera.cs @@ -27,7 +27,7 @@ namespace SHADE_Scripting { AddComponent(); } - GetComponent().SetMainCamera(); + if (!GetComponent()) { AddComponent(); diff --git a/Assets/Scripts/Gameplay/SC_GameManager.cs b/Assets/Scripts/Gameplay/SC_GameManager.cs index f9f453f4..8398bb06 100644 --- a/Assets/Scripts/Gameplay/SC_GameManager.cs +++ b/Assets/Scripts/Gameplay/SC_GameManager.cs @@ -36,7 +36,6 @@ public class GameManager : Script public bool itemScored {get;set;} public int currMultiplierCombo { get; set;} public float multiplierFont = 60.0f; - private Vector3 fontScalar; public static GameManager Instance { get; private set; } @@ -63,7 +62,6 @@ public class GameManager : Script itemScored = false; currMultiplierCombo = 1; currMultiplierDuration = 0; - fontScalar = new Vector3(multiplierFont / maxMultiplierDuration, multiplierFont / maxMultiplierDuration , multiplierFont / maxMultiplierDuration); itemShatter = false; GamePause = false; stealFoodPopUpDone = false; @@ -76,26 +74,29 @@ public class GameManager : Script goingToLose = false; if (scoreText) - scoreText.GetComponent().Text = $"Score: {Score}"; + scoreText.GetComponent().Text = $"{Score}"; if (timeText) - timeText.GetComponent().Text = $"Time Left: {timer.ToString("0")}"; + timeText.GetComponent().Text = $"{timer.ToString("0")}"; + + Input.SetMouseCentering(true); + Application.IsCursorVisible = false; + Application.FixDeltaTime = Time.DefaultFixDeltaTime; } protected override void start() { - AudioHandler.audioClipHandlers["BGMAdaptive"] = Audio.CreateAudioClip("event:/Music/bgm_adaptive"); + AudioHandler.audioClipHandlers["BGMAdaptive"] = Audio.CreateAudioClip("event:/Music/bgm_adaptive_new"); AudioHandler.audioClipHandlers["BGMAdaptive"].Play(); - Audio.SetParameter("Detected", 0.0f); + Audio.SetParameterWithLabel("PlayerDetection", "Undetected"); AudioHandler.audioClipHandlers["KitchenAmbience"] = Audio.CreateAudioClip("event:/Ambience/roomtone_kitchen"); AudioHandler.audioClipHandlers["KitchenAmbience"].Play(); - AudioHandler.audioClipHandlers["SFXHumming"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_humming"); - AudioHandler.audioClipHandlers["SFXHumming"].SetVolume(0.15f); - AudioHandler.audioClipHandlers["SFXHumming"].Play(); + if (SceneFadeInOut.Instance != null) + SceneFadeInOut.Instance.CallFadeOut(); - SceneFadeInOut.Instance.CallFadeOut(); + GamePause = false; } protected override void update() @@ -105,18 +106,18 @@ public class GameManager : Script return; } + Cheat(); + if (currGameState == GameState.START) - { + { timer -= Time.DeltaTimeF; if(scoreText) scoreText.GetComponent().Text = $"{Score}"; if(timeText) - timeText.GetComponent().Text = $"Time Left: {timer.ToString("0")}"; + timeText.GetComponent().Text = $"{timer.ToString("0.00")}"; if (itemScored) { - //multiplierText.GetComponent().Text = $"X {currMultiplierCombo}"; - //multiplierText.GetComponent().LocalScale -= fontScalar * Time.DeltaTimeF; currMultiplierDuration += Time.DeltaTimeF; if (currMultiplierDuration >= maxMultiplierDuration) @@ -127,31 +128,43 @@ public class GameManager : Script } } - else - { - //multiplierText.GetComponent().LocalScale = Vector3.Zero; - } - if (!goingToLose && ((timer > 0 && totalItemCount <= 0 && !itemShatter) || Input.GetKeyDown(Input.KeyCode.F1))) + if (!goingToLose && ((timer > 0 && totalItemCount <= 0 && !itemShatter))) { currGameState = GameState.WIN; AudioHandler.StopAllSounds(false); AudioHandler.audioClipHandlers["BGMWin"].Play(); goingToWin = true; - SceneFadeInOut.Instance.CallFadeIn(); + if (SceneFadeInOut.Instance != null) + SceneFadeInOut.Instance.CallFadeIn(); } - else if(!goingToWin && (timer < 0 || Input.GetKeyDown(Input.KeyCode.F2))) + else if(!goingToWin && (timer < 0)) { currGameState = GameState.LOSE; AudioHandler.StopAllSounds(false); AudioHandler.audioClipHandlers["BGMLose"].Play(); goingToLose = true; - SceneFadeInOut.Instance.CallFadeIn(); + if (SceneFadeInOut.Instance != null) + SceneFadeInOut.Instance.CallFadeIn(); } } //Handling transitions - if (SceneFadeInOut.Instance.FadeInFinished()) + if (SceneFadeInOut.Instance != null) + { + if (SceneFadeInOut.Instance.FadeInFinished()) + { + if (goingToWin) + { + SceneManager.ChangeScene(winScene); + } + if (goingToLose) + { + SceneManager.ChangeScene(loseScene); + } + } + } + else { if (goingToWin) { @@ -164,6 +177,27 @@ public class GameManager : Script } } + private void Cheat() + { + if (Input.GetKeyUp(Input.KeyCode.F1)) + { + currGameState = GameState.WIN; + AudioHandler.StopAllSounds(false); + goingToWin = true; + if (SceneFadeInOut.Instance != null) + SceneFadeInOut.Instance.CallFadeIn(); + } + else if (Input.GetKeyUp(Input.KeyCode.F2)) + { + currGameState = GameState.LOSE; + AudioHandler.StopAllSounds(false); + goingToLose = true; + if (SceneFadeInOut.Instance != null) + SceneFadeInOut.Instance.CallFadeIn(); + } + } + + protected override void onDestroy() { if (Instance == this) @@ -175,7 +209,6 @@ public class GameManager : Script totalItemCount -= 1; itemScored = true; currMultiplierDuration = 0; - //multiplierText.GetComponent().LocalScale = new Vector3(multiplierFont, multiplierFont, multiplierFont); if (currMultiplierCombo < maxMultiplierCombo) currMultiplierCombo += 1; @@ -183,9 +216,9 @@ public class GameManager : Script MultiplierTextFx fx = multiplierText.GetScript(); if (fx) { - fx.ShowMultiplier(currMultiplierCombo, maxMultiplierDuration); + fx.ShowMultiplier(currMultiplierCombo, maxMultiplierDuration); } - } + } } diff --git a/Assets/Scripts/Gameplay/SC_JumpPad.cs b/Assets/Scripts/Gameplay/SC_JumpPad.cs index 0e331f8c..7aa573df 100644 --- a/Assets/Scripts/Gameplay/SC_JumpPad.cs +++ b/Assets/Scripts/Gameplay/SC_JumpPad.cs @@ -1,10 +1,12 @@ using SHADE; +using SHADE_Scripting.Audio; using System; public class JumpPad : Script { protected override void awake() { + AudioHandler.audioClipHandlers["SFXJumpPad"] = Audio.CreateAudioClip("event:/Props/jumppad_boing"); } protected override void update() @@ -15,6 +17,8 @@ public class JumpPad : Script { if (info.GameObject.GetScript() && info.GameObject.GetScript().currentState == PlayerController.RaccoonStates.FALLING) { + Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXJumpPad"], GameObject.EntityId); + AudioHandler.audioClipHandlers["SFXJumpPad"].Play(); info.GameObject.GetScript().landedOnJumpPad = true; } } diff --git a/Assets/Scripts/Gameplay/SC_PreviewLevel.cs b/Assets/Scripts/Gameplay/SC_PreviewLevel.cs index 7efee8c9..32a03074 100644 --- a/Assets/Scripts/Gameplay/SC_PreviewLevel.cs +++ b/Assets/Scripts/Gameplay/SC_PreviewLevel.cs @@ -15,6 +15,7 @@ namespace SHADE_Scripting.UI public Vector3 endPoint3; public GameObject playerCamera; + public GameObject gameplayCanvas; public float duration = 3.0f; private bool point1Done = false; @@ -39,8 +40,6 @@ namespace SHADE_Scripting.UI if (listOfCamera.Count == 0) Debug.LogError("EMPTY PREVIEW POINTS"); - listOfCamera[0].SetMainCamera(); - moveToEndPoint1 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[0].GetComponent().LocalPosition, endPoint1, EASING_METHOD.EASE_IN_SINE); moveToEndPoint2 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[1].GetComponent().LocalPosition, endPoint2, EASING_METHOD.EASE_IN_SINE); moveToEndPoint3 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[2].GetComponent().LocalPosition, endPoint3, EASING_METHOD.EASE_IN_SINE); @@ -48,31 +47,41 @@ namespace SHADE_Scripting.UI } + protected override void start() + { + if (gameplayCanvas) + gameplayCanvas.SetActive(false); + listOfCamera[0].SetMainCamera(); + } + protected override void update() { - if (!SceneFadeInOut.Instance.FadeOutFinished() && !point1Done) + if (SceneFadeInOut.Instance && !SceneFadeInOut.Instance.FadeOutFinished() && !point1Done) { moveToEndPoint1.Reset(); return; } - if (Input.GetKeyUp(Input.KeyCode.Space)) + if (Input.GetKeyUp(Input.KeyCode.Space) && !point3Done) { skip = true; point1Done = true; + point3Done = true; SceneFadeInOut.Instance.CallFadeIn(); SceneFadeInOut.Instance.alphaValue = 0.01f; } - if (skip && SceneFadeInOut.Instance.FadeInFinished()) + if (skip && SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished()) { playerCamera.GetComponent().SetMainCamera(); SceneFadeInOut.Instance.CallFadeOut(); } - if (skip && SceneFadeInOut.Instance.FadeOutFinished()) + if (skip && SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished()) { GameManager.Instance.PreviewLevelDone = true; + if (gameplayCanvas) + gameplayCanvas.SetActive(true); } @@ -81,7 +90,7 @@ namespace SHADE_Scripting.UI if (!point1Done) { listOfCamera[0].GetComponent().LocalPosition = moveToEndPoint1.GetValue(); - if (moveToEndPoint1.IsCompleted()) + if (SceneFadeInOut.Instance && moveToEndPoint1.IsCompleted()) { point1Done = true; SceneFadeInOut.Instance.CallFadeIn(); @@ -89,13 +98,13 @@ namespace SHADE_Scripting.UI } } - if (SceneFadeInOut.Instance.FadeInFinished() && point1Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point1Done) { listOfCamera[1].SetMainCamera(); SceneFadeInOut.Instance.CallFadeOut(); } - if (SceneFadeInOut.Instance.FadeOutFinished() && point1Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point1Done) { if (!point2Done) { @@ -114,13 +123,13 @@ namespace SHADE_Scripting.UI } } - if (SceneFadeInOut.Instance.FadeInFinished() && point2Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point2Done) { listOfCamera[2].SetMainCamera(); SceneFadeInOut.Instance.CallFadeOut(); } - if (SceneFadeInOut.Instance.FadeOutFinished() && point2Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point2Done) { if (!point3Done) { @@ -139,15 +148,17 @@ namespace SHADE_Scripting.UI } } - if (SceneFadeInOut.Instance.FadeInFinished() && point3Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point3Done) { playerCamera.GetComponent().SetMainCamera(); SceneFadeInOut.Instance.CallFadeOut(); } - if (SceneFadeInOut.Instance.FadeOutFinished() && point3Done) + if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point3Done) { GameManager.Instance.PreviewLevelDone = true; + if (gameplayCanvas) + gameplayCanvas.SetActive(true); } } diff --git a/Assets/Scripts/Settings.cs b/Assets/Scripts/Settings.cs new file mode 100644 index 00000000..e769237d --- /dev/null +++ b/Assets/Scripts/Settings.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SHADE_Scripting +{ + static public class Settings + { + static public float cameraSensitivity = 100.0f; + + static public float cameraFOV = 90.0f; + + static public float masterVolume = 100.0f; + static public float sfxVolume = 100.0f; + static public float bgmVolume = 100.0f; + + + } +} diff --git a/Assets/Scripts/Settings.cs.shmeta b/Assets/Scripts/Settings.cs.shmeta new file mode 100644 index 00000000..4e63126d --- /dev/null +++ b/Assets/Scripts/Settings.cs.shmeta @@ -0,0 +1,3 @@ +Name: Settings +ID: 163325256 +Type: 9 diff --git a/Assets/Scripts/UI/EasingHelper.cs b/Assets/Scripts/UI/EasingHelper.cs index 0b434833..dadae5bb 100644 --- a/Assets/Scripts/UI/EasingHelper.cs +++ b/Assets/Scripts/UI/EasingHelper.cs @@ -52,12 +52,15 @@ namespace SHADE_Scripting.UI private static float EaseInSine(float value) { - return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f))); + + return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f) )); + } private static float EaseOutSine(float value) { - return (float)(Math.Sin(value * Math.PI / 2.0f)); + return (float)(Math.Sin(value * Math.PI / 2.0f) ); + } diff --git a/Assets/Scripts/UI/SC_ButtonFX.cs b/Assets/Scripts/UI/SC_ButtonFX.cs index 0e490a35..7ecad2f2 100644 --- a/Assets/Scripts/UI/SC_ButtonFX.cs +++ b/Assets/Scripts/UI/SC_ButtonFX.cs @@ -1,4 +1,4 @@ -using SHADE; +using SHADE; using System; using System.Collections.Generic; using System.Linq; @@ -9,10 +9,10 @@ namespace SHADE_Scripting.UI { public class ButtonFX:Script { - public string onHoverEnterSound = "event:/Music/player_undetected"; - public string onHoverExitSound = "event:/Music/player_undetected"; - public string onClickSound = "event:/Music/player_undetected"; - public string onReleaseSound = "event:/Music/player_undetected"; + public string onHoverEnterSound = "Empty"; + public string onHoverExitSound = "Empty"; + public string onClickSound = "event:/UI/mouse_down_element"; + public string onReleaseSound = "Empty"; [NonSerialized] private AudioClipHandler onHoverEnterACHandler; @@ -40,13 +40,16 @@ namespace SHADE_Scripting.UI protected override void awake() { - onHoverEnterACHandler = SHADE.Audio.CreateAudioClip(onHoverEnterSound); - onHoverExitACHandler = SHADE.Audio.CreateAudioClip(onHoverExitSound); - onClickACHandler = SHADE.Audio.CreateAudioClip(onClickSound); - onReleaseACHandler = SHADE.Audio.CreateAudioClip(onReleaseSound); - - + if(onHoverEnterSound != "Empty") + onHoverEnterACHandler = SHADE.Audio.CreateAudioClip(onHoverEnterSound); + + if(onHoverExitSound != "Empty") + onHoverExitACHandler = SHADE.Audio.CreateAudioClip(onHoverExitSound); + if (onClickSound != "Empty") + onClickACHandler = SHADE.Audio.CreateAudioClip(onClickSound); + if (onReleaseSound != "Empty") + onReleaseACHandler = SHADE.Audio.CreateAudioClip(onReleaseSound); } protected override void start() @@ -67,7 +70,7 @@ namespace SHADE_Scripting.UI ui.OnClick.RegisterAction(() => { - if (onClickSound != "") + if (onClickSound != "Empty") onClickACHandler.Play(); tweening = true; if(thread != null) @@ -76,8 +79,10 @@ namespace SHADE_Scripting.UI ui.OnRelease.RegisterAction(() => { - if (onReleaseSound != "") + if (onReleaseSound != "Empty") onReleaseACHandler.Play(); + + tweening = true; if (thread != null) thread.Reset(currentScale, 1.0f); @@ -85,8 +90,12 @@ namespace SHADE_Scripting.UI ui.OnHoverEnter.RegisterAction(() => { - if (onHoverEnterSound != "") + if (onHoverEnterSound!="Empty") + { + onHoverEnterACHandler.Play(); + } + tweening = true; if (thread != null) thread.Reset(currentScale, hoverScale); @@ -94,7 +103,7 @@ namespace SHADE_Scripting.UI ui.OnHoverExit.RegisterAction(() => { - if (onHoverExitSound != "") + if (onHoverExitSound != "Empty") onHoverExitACHandler.Play(); tweening = true; if (thread != null) @@ -110,7 +119,7 @@ namespace SHADE_Scripting.UI return; if (tweening == true && thread != null) { - Debug.Log("Tweening value " + thread.GetValue()); + transform.LocalScale = defaultScale * thread.GetValue(); currentScale = thread.GetValue(); if (thread.IsCompleted()) diff --git a/Assets/Scripts/UI/SC_ChangeSceneButton.cs b/Assets/Scripts/UI/SC_ChangeSceneButton.cs index 6a51716b..09e4cf5b 100644 --- a/Assets/Scripts/UI/SC_ChangeSceneButton.cs +++ b/Assets/Scripts/UI/SC_ChangeSceneButton.cs @@ -22,22 +22,19 @@ public class ChangeSceneButton : Script { ui.OnRelease.RegisterAction(() => { - if (sceneID != 0) { - Audio.PlaySFXOnce2D("event:/UI/success"); - - Audio.StopAllSounds(); - + Audio.PlaySFXOnce2D("event:/UI/success"); + Audio.StopAllSounds(); + if (SceneFadeInOut.Instance != null) SceneFadeInOut.Instance.CallFadeIn(); - clickedFlag = true; + clickedFlag = true; } }); } else { Debug.LogError("Failed to register button action for ChangeSceneButton."); - } } protected override void update() diff --git a/Assets/Scripts/UI/SC_CutSceneEnd.cs b/Assets/Scripts/UI/SC_CutSceneEnd.cs new file mode 100644 index 00000000..f5007443 --- /dev/null +++ b/Assets/Scripts/UI/SC_CutSceneEnd.cs @@ -0,0 +1,317 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SHADE; + + +public class CutsceneEnd : Script +{ + public uint nextScene; + public float duration = 3.0f; + public float skipDuration = 0.1f; + private float oldDuration = 0.0f; + + private Renderable pic4aRenderable; + private Renderable pic4bRenderable; + private Renderable pic4cRenderable; + private Renderable pic5aRenderable; + private Renderable pic5bRenderable; + + private Transform pic4aTran; + private Transform pic4bTran; + private Transform pic4cTran; + private Transform pic5aTran; + private Transform pic5bTran; + + private float alphaIn = 0.0f; + private float time = 0.0f; + private bool showPic4a = true; + private bool showPic4b = false; + private bool showPic4c = false; + private bool showPic5a = true; + private bool showPic5b = false; + + private bool skip = false; + + public GameObject cutscene4Points; + private List listOfCutscene4Points; + + public GameObject cutscene4Pics; + private List listOfCutscene4Pics; + + public GameObject cutscene5Points; + private List listOfCutscene5Points; + + public GameObject cutscene5Pics; + private List listOfCutscene5Pics; + + private TextRenderable text4; + private TextRenderable text5; + + public GameObject canvas4; + public GameObject canvas5; + + private bool cutscene4Done = false; + private bool cutscene5Done = false; + + protected override void awake() + { + initCutscene4(); + initCutscene5(); + } + + protected override void update() + { + Canvas4(); + Canvas5(); + + if (Input.GetKeyUp(Input.KeyCode.Space) && !skip && (!cutscene4Done || !cutscene5Done)) + { + skip = true; + oldDuration = duration; + duration = skipDuration; + } + + if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene4Done && canvas4.IsActiveSelf) + { + canvas4.SetActive(false); + canvas5.SetActive(true); + duration = oldDuration; + skip = false; + } + + if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene5Done && canvas5.IsActiveSelf) + { + SceneManager.ChangeScene(nextScene); + } + } + + private void Canvas4() + { + if (canvas4.IsActiveSelf) + { + if (showPic4a) + { + if (time < duration) + { + pic4aTran.LocalPosition = Vector3.Lerp(pic4aTran.LocalPosition, listOfCutscene4Points[0].LocalPosition, time / duration); + alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); + time += Time.DeltaTimeF; + } + else + { + pic4aTran.LocalPosition = listOfCutscene4Points[0].LocalPosition; + alphaIn = 1.0f; + } + + pic4aRenderable.Material.SetProperty("data.alpha", alphaIn); + if (alphaIn >= 1.0f) + { + showPic4a = false; + showPic4b = true; + time = 0; + alphaIn = 0; + } + } + + if (showPic4b) + { + if (time < duration) + { + pic4bTran.LocalPosition = Vector3.Lerp(pic4bTran.LocalPosition, listOfCutscene4Points[1].LocalPosition, time / duration); + alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); + time += Time.DeltaTimeF; + } + else + { + pic4bTran.LocalPosition = listOfCutscene4Points[1].LocalPosition; + alphaIn = 1.0f; + } + + pic4bRenderable.Material.SetProperty("data.alpha", alphaIn); + if (alphaIn >= 1.0f) + { + showPic4b = false; + showPic4c = true; + time = 0; + alphaIn = 0; + } + } + + if (showPic4c) + { + if (time < duration) + { + pic4cTran.LocalPosition = Vector3.Lerp(pic4cTran.LocalPosition, listOfCutscene4Points[2].LocalPosition, time / duration); + alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); + time += Time.DeltaTimeF; + } + else + { + pic4cTran.LocalPosition = listOfCutscene4Points[2].LocalPosition; + alphaIn = 1.0f; + } + + pic4cRenderable.Material.SetProperty("data.alpha", alphaIn); + if (alphaIn >= 1.0f) + { + showPic4c = false; + cutscene4Done = true; + text4.Enabled = true; + time = 0; + alphaIn = 0; + } + } + } + } + + private void Canvas5() + { + if (canvas5.IsActiveSelf) + { + if (showPic5a) + { + if (time < duration) + { + pic5aTran.LocalPosition = Vector3.Lerp(pic5aTran.LocalPosition, listOfCutscene5Points[0].LocalPosition, time / duration); + alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); + time += Time.DeltaTimeF; + } + else + { + pic5aTran.LocalPosition = listOfCutscene5Points[0].LocalPosition; + alphaIn = 1.0f; + } + + pic5aRenderable.Material.SetProperty("data.alpha", alphaIn); + if (alphaIn >= 1.0f) + { + showPic5a = false; + showPic5b = true; + time = 0; + alphaIn = 0; + } + } + + if (showPic5b) + { + if (time < duration) + { + pic5bTran.LocalPosition = Vector3.Lerp(pic5bTran.LocalPosition, listOfCutscene5Points[1].LocalPosition, time / duration); + alphaIn = SHADE.Math.Lerp(0.0f, 1.0f, time / duration); + time += Time.DeltaTimeF; + } + else + { + pic5bTran.LocalPosition = listOfCutscene5Points[1].LocalPosition; + alphaIn = 1.0f; + } + + pic5bRenderable.Material.SetProperty("data.alpha", alphaIn); + if (alphaIn >= 1.0f) + { + showPic5b = false; + text5.Enabled = true; + cutscene5Done = true; + time = 0; + alphaIn = 0; + } + } + } + } + + + private void initCutscene4() + { + if (cutscene4Points) + listOfCutscene4Points = cutscene4Points.GetComponentsInChildren().ToList(); + else + Debug.LogError("Cutscene4Points Missing"); + + if (listOfCutscene4Points.Count == 0) + Debug.LogError("Cutscene4Points Empty"); + + listOfCutscene4Pics = cutscene4Pics.GetComponentsInChildren().ToList(); + if (listOfCutscene4Pics.Count == 0) + Debug.LogError("Cutscene4Pics Empty"); + + if (listOfCutscene4Pics[0]) + { + pic4aRenderable = listOfCutscene4Pics[0].GetComponent(); + pic4aTran = listOfCutscene4Pics[0].GetComponent(); + pic4aRenderable.Material.SetProperty("data.alpha", 0.0f); + } + else + Debug.LogError("SCENE 4 PIC1 MISSING"); + + if (listOfCutscene4Pics[1]) + { + pic4bRenderable = listOfCutscene4Pics[1].GetComponent(); + pic4bTran = listOfCutscene4Pics[1].GetComponent(); + pic4bRenderable.Material.SetProperty("data.alpha", 0.0f); + } + else + Debug.LogError("SCENE 4 PIC2 MISSING"); + + if (listOfCutscene4Pics[2]) + { + pic4cRenderable = listOfCutscene4Pics[2].GetComponent(); + pic4cTran = listOfCutscene4Pics[2].GetComponent(); + pic4cRenderable.Material.SetProperty("data.alpha", 0.0f); + } + else + Debug.LogError("SCENE 1 PIC3 MISSING"); + + if (canvas4) + { + text4 = canvas4.GetComponentInChildren(); + text4.Enabled = false; + } + else + Debug.LogError("Canvas 4 missing"); + } + + private void initCutscene5() + { + if (cutscene5Points) + listOfCutscene5Points = cutscene5Points.GetComponentsInChildren().ToList(); + else + Debug.LogError("cutscene5Points Missing"); + + if (listOfCutscene5Points.Count == 0) + Debug.LogError("Cutscene5Points Empty"); + + listOfCutscene5Pics = cutscene5Pics.GetComponentsInChildren().ToList(); + if (listOfCutscene5Pics.Count == 0) + Debug.LogError("Cutscene5Pics Empty"); + + if (listOfCutscene5Pics[0]) + { + pic5aRenderable = listOfCutscene5Pics[0].GetComponent(); + pic5aTran = listOfCutscene5Pics[0].GetComponent(); + pic5aRenderable.Material.SetProperty("data.alpha", 0.0f); + } + else + Debug.LogError("SCENE 5 PIC1 MISSING"); + + if (listOfCutscene5Pics[1]) + { + pic5bRenderable = listOfCutscene5Pics[1].GetComponent(); + pic5bTran = listOfCutscene5Pics[1].GetComponent(); + pic5bRenderable.Material.SetProperty("data.alpha", 0.0f); + } + else + Debug.LogError("SCENE 5 PIC2 MISSING"); + + if (canvas5) + { + text5 = canvas5.GetComponentInChildren(); + text5.Enabled = false; + canvas5.SetActive(false); + } + else + Debug.LogError("Canvas 5 missing"); + + } +} + diff --git a/Assets/Scripts/UI/SC_CutSceneEnd.cs.shmeta b/Assets/Scripts/UI/SC_CutSceneEnd.cs.shmeta new file mode 100644 index 00000000..1ea30e12 --- /dev/null +++ b/Assets/Scripts/UI/SC_CutSceneEnd.cs.shmeta @@ -0,0 +1,3 @@ +Name: SC_CutSceneEnd +ID: 153706859 +Type: 9 diff --git a/Assets/Scripts/UI/SC_Cutscene.cs.shmeta b/Assets/Scripts/UI/SC_Cutscene.cs.shmeta deleted file mode 100644 index 8130c77f..00000000 --- a/Assets/Scripts/UI/SC_Cutscene.cs.shmeta +++ /dev/null @@ -1,3 +0,0 @@ -Name: SC_Cutscene -ID: 157565851 -Type: 9 diff --git a/Assets/Scripts/UI/SC_Cutscene.cs b/Assets/Scripts/UI/SC_CutsceneIntro.cs similarity index 96% rename from Assets/Scripts/UI/SC_Cutscene.cs rename to Assets/Scripts/UI/SC_CutsceneIntro.cs index e5c6ca88..db393ff9 100644 --- a/Assets/Scripts/UI/SC_Cutscene.cs +++ b/Assets/Scripts/UI/SC_CutsceneIntro.cs @@ -4,10 +4,12 @@ using System.Linq; using SHADE; -public class Cutscene : Script +public class CutsceneIntro : Script { + public uint nextScene; public float duration = 3.0f; + public float skipDuration = 0.1f; private float oldDuration = 0.0f; private Renderable pic1aRenderable; @@ -93,14 +95,14 @@ public class Cutscene : Script Canvas2(); Canvas3(); - if (Input.GetKeyDown(Input.KeyCode.Space) && !skip && (!cutscene1Done || !cutscene2Done || !cutscene3Done)) + if (Input.GetKeyUp(Input.KeyCode.Space) && !skip && (!cutscene1Done || !cutscene2Done || !cutscene3Done)) { skip = true; oldDuration = duration; - duration = 0.1f; + duration = skipDuration; } - if (Input.GetKeyDown(Input.KeyCode.Space) && cutscene1Done && canvas1.IsActiveSelf) + if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene1Done && canvas1.IsActiveSelf) { canvas1.SetActive(false); canvas2.SetActive(true); @@ -108,7 +110,7 @@ public class Cutscene : Script skip = false; } - if (Input.GetKeyDown(Input.KeyCode.Space) && cutscene2Done && canvas2.IsActiveSelf) + if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene2Done && canvas2.IsActiveSelf) { canvas2.SetActive(false); canvas3.SetActive(true); @@ -116,9 +118,9 @@ public class Cutscene : Script skip = false; } - if (Input.GetKeyDown(Input.KeyCode.Space) && cutscene3Done && canvas3.IsActiveSelf) + if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene3Done && canvas3.IsActiveSelf) { - //change scene + SceneManager.ChangeScene(nextScene); } } diff --git a/Assets/Scripts/UI/SC_CutsceneIntro.cs.shmeta b/Assets/Scripts/UI/SC_CutsceneIntro.cs.shmeta new file mode 100644 index 00000000..4df561bb --- /dev/null +++ b/Assets/Scripts/UI/SC_CutsceneIntro.cs.shmeta @@ -0,0 +1,3 @@ +Name: SC_CutsceneIntro +ID: 154967292 +Type: 9 diff --git a/Assets/Scripts/UI/SC_EndScene.cs b/Assets/Scripts/UI/SC_EndScene.cs index 2117b24a..3812db2a 100644 --- a/Assets/Scripts/UI/SC_EndScene.cs +++ b/Assets/Scripts/UI/SC_EndScene.cs @@ -1,6 +1,7 @@ using System; using SHADE; using SHADE_Scripting.Audio; +using SHADE_Scripting.UI; public class EndScene : Script { @@ -12,6 +13,15 @@ public class EndScene : Script AudioHandler.audioClipHandlers["SFXMouseDownElement"] = Audio.CreateAudioClip("event:/UI/mouse_down_element"); AudioHandler.audioClipHandlers["SFXUISuccess"] = Audio.CreateAudioClip("event:/UI/success"); } + + protected override void start() + { + Debug.Log("EndScene::Start():"); + Input.SetMouseCentering(false); + Application.IsCursorVisible = true; + SceneFadeInOut.Instance.CallFadeOut(); + } + protected override void update() { if (Input.GetKeyDown(Input.KeyCode.R)) diff --git a/Assets/Scripts/UI/SC_MainMenu.cs b/Assets/Scripts/UI/SC_MainMenu.cs index 59b6594e..8252344d 100644 --- a/Assets/Scripts/UI/SC_MainMenu.cs +++ b/Assets/Scripts/UI/SC_MainMenu.cs @@ -1,6 +1,7 @@ using System; using SHADE; using SHADE_Scripting.Audio; +using SHADE_Scripting.UI; public class MainMenu : Script { @@ -23,40 +24,12 @@ public class MainMenu : Script protected override void start() { + Input.SetMouseCentering(false); + Application.IsCursorVisible = true; + SceneFadeInOut.Instance.CallFadeOut(); } protected override void update() { -/* if (Input.GetKeyDown(Input.KeyCode.K) && obj) - { - if (testRenderable.Material.GetProperty("data.alpha") == 1) - { - testRenderable.Material.SetProperty("data.alpha", 0); - } - else if (testRenderable.Material.GetProperty("data.alpha") == 0) - { - testRenderable.Material.SetProperty("data.alpha", 1); - } - }*/ - - if (Input.GetKeyDown(Input.KeyCode.Space)) - { - //Audio.PlaySFXOnce2D("event:/UI/mouse_down_element"); - AudioHandler.audioClipHandlers["SFXMouseDownElement"].Play(); - } - - if (Input.GetKeyUp(Input.KeyCode.Space)) - { - //Audio.PlaySFXOnce2D("event:/UI/success"); - AudioHandler.audioClipHandlers["SFXUISuccess"].Play(); - SceneManager.ChangeScene(sceneID); - Audio.StopAllSounds(); - } - - if (Input.GetKeyDown(Input.KeyCode.Escape)) - { - Audio.StopAllSounds(); - Application.Quit(); - } } } diff --git a/Assets/Scripts/UI/SC_MultiplierTextFx.cs b/Assets/Scripts/UI/SC_MultiplierTextFx.cs index 1b3129ec..ccd2a4a8 100644 --- a/Assets/Scripts/UI/SC_MultiplierTextFx.cs +++ b/Assets/Scripts/UI/SC_MultiplierTextFx.cs @@ -11,6 +11,7 @@ namespace SHADE_Scripting.UI { [NonSerialized] private TweenThread sizeThread; + private TweenThread sizeInvertThread; private TweenThread alphaThread; @@ -20,6 +21,7 @@ namespace SHADE_Scripting.UI private bool showMultiplier = false; + const float sizeUpDuration = 0.1f; [NonSerialized] private Vector3 defaultScale; @@ -27,6 +29,7 @@ namespace SHADE_Scripting.UI protected override void start() { sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE); + sizeInvertThread = TweenManager.CreateTweenThread(sizeUpDuration, minSize, maxSize, EASING_METHOD.EASE_IN_SINE); alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE); Transform transform = GetComponent(); if (transform != null) @@ -43,8 +46,29 @@ namespace SHADE_Scripting.UI protected override void update() { Transform transform = GetComponent(); + + if (transform != null && showMultiplier == true) { + if(!sizeInvertThread.IsCompleted()) + { + transform.LocalScale = defaultScale * sizeInvertThread.GetValue(); + + Renderable rend = GetComponentInChildren(); + if(rend) + { + rend.Material.SetProperty("data.alpha", 1.0f); + } + + TextRenderable text = GetComponent(); + if (text) + { + Color clr = text.TextColor; + text.TextColor = new Color(clr.r, clr.g, clr.b, 1.0f); + } + return; + } + if(sizeThread.IsCompleted()) { transform.LocalScale = Vector3.Zero; @@ -53,7 +77,18 @@ namespace SHADE_Scripting.UI else { transform.LocalScale = defaultScale * sizeThread.GetValue(); - GetComponentInChildren().Material.SetProperty("data.alpha",alphaThread.GetValue()); + + Renderable rend = GetComponentInChildren(); + if (rend) + { + rend.Material.SetProperty("data.alpha", alphaThread.GetValue()); + } + TextRenderable text = GetComponent(); + if(text) + { + Color clr = text.TextColor; + text.TextColor = new Color(clr.r,clr.g,clr.b,alphaThread.GetValue() * 1.3f); + } } } } @@ -62,9 +97,10 @@ namespace SHADE_Scripting.UI public void ShowMultiplier(int multiplier, float duration) { GetComponent().Text = $"X {multiplier}"; - sizeThread.duration = duration; - alphaThread.duration = duration; + sizeThread.duration = duration + sizeUpDuration; + alphaThread.duration = duration + sizeUpDuration; + sizeInvertThread.Reset(); sizeThread.Reset(); alphaThread.Reset(); showMultiplier = true; diff --git a/Assets/Scripts/UI/SC_Options.cs b/Assets/Scripts/UI/SC_Options.cs new file mode 100644 index 00000000..bc2fa69c --- /dev/null +++ b/Assets/Scripts/UI/SC_Options.cs @@ -0,0 +1,95 @@ +using SHADE; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SHADE_Scripting.UI +{ + public class Options:Script + { + public GameObject masterVolSlider; + public GameObject sfxVolSlider; + public GameObject bgmVolSlider; + public GameObject fovSlider; + public GameObject sensitivitySlider; + + + + + protected override void awake() + { + Slider mv = masterVolSlider.GetComponent(); + Slider sfx = sfxVolSlider.GetComponent(); + Slider bgm = bgmVolSlider.GetComponent(); + Slider fov = fovSlider.GetComponent(); + Slider sens = sensitivitySlider.GetComponent(); + + + + if (mv != null) + { + mv.ScaledValue = Settings.masterVolume; + + } + if (sfx != null) + { + sfx.ScaledValue = Settings.sfxVolume; + + } + if (bgm != null) + { + bgm.ScaledValue = Settings.bgmVolume; + + } + if (fov != null) + { + fov.ScaledValue = Settings.cameraFOV; + + } + if (sens != null) + { + sens.ScaledValue = Settings.cameraSensitivity; + + } + + + } + + + protected override void update() + { + Slider mv = masterVolSlider.GetComponent(); + Slider sfx = sfxVolSlider.GetComponent(); + Slider bgm = bgmVolSlider.GetComponent(); + Slider fov = fovSlider.GetComponent(); + Slider sens = sensitivitySlider.GetComponent(); + + if(mv != null) + { + Settings.masterVolume = mv.ScaledValue; + } + if (sfx != null) + { + Settings.sfxVolume = sfx.ScaledValue; + } + if (bgm != null) + { + Settings.bgmVolume = bgm.ScaledValue; + } + if (fov != null) + { + Settings.cameraFOV = fov.ScaledValue; + } + if (sens != null) + { + Settings.cameraSensitivity = sens.ScaledValue; + } + + + } + + + } +} diff --git a/Assets/Scripts/UI/SC_Options.cs.shmeta b/Assets/Scripts/UI/SC_Options.cs.shmeta new file mode 100644 index 00000000..36789fa3 --- /dev/null +++ b/Assets/Scripts/UI/SC_Options.cs.shmeta @@ -0,0 +1,3 @@ +Name: SC_Options +ID: 162565004 +Type: 9 diff --git a/Assets/Scripts/UI/SC_PauseMenu.cs b/Assets/Scripts/UI/SC_PauseMenu.cs index c92965d8..32b59a85 100644 --- a/Assets/Scripts/UI/SC_PauseMenu.cs +++ b/Assets/Scripts/UI/SC_PauseMenu.cs @@ -13,7 +13,8 @@ public class PauseMenu : Script protected override void awake() { - GameManager.Instance.GamePause = false; + if (GameManager.Instance != null) + GameManager.Instance.GamePause = false; if (canvas) { @@ -36,16 +37,19 @@ public class PauseMenu : Script UIElement resume = resumeBtn.GetComponent(); if (resume != null) { - resume.OnClick.RegisterAction(() => + resume.OnRelease.RegisterAction(() => { if (GameManager.Instance.GamePause) { GameManager.Instance.GamePause = false; + Input.SetMouseCentering(true); + Application.IsCursorVisible = false; AudioHandler.PauseAllSounds(false); if (gamePauseText) gamePauseText.Enabled = false; if (canvas) canvas.SetActive(false); + Application.FixDeltaTime = Time.DefaultFixDeltaTime; } }); } @@ -58,10 +62,13 @@ public class PauseMenu : Script UIElement retry = retryBtn.GetComponent(); if (retry != null) { - retry.OnClick.RegisterAction(() => + retry.OnRelease.RegisterAction(() => { Audio.StopAllSounds(); SceneManager.RestartScene(); + GameManager.Instance.GamePause = false; + GameManager.Instance.stealFoodPopUpDone = false; + GameManager.Instance.PreviewLevelDone = false; }); } else @@ -72,7 +79,7 @@ public class PauseMenu : Script UIElement quit = quitBtn.GetComponent(); if (quit != null) { - quit.OnClick.RegisterAction(() => + quit.OnRelease.RegisterAction(() => { Audio.StopAllSounds(); //go to main menu @@ -88,14 +95,17 @@ public class PauseMenu : Script protected override void update() { - if (Input.GetKeyDown(Input.KeyCode.Escape) && !GameManager.Instance.GamePause && GameManager.Instance.stealFoodPopUpDone) + if (Input.GetKeyUp(Input.KeyCode.Escape) && !GameManager.Instance.GamePause && GameManager.Instance.stealFoodPopUpDone) { GameManager.Instance.GamePause = true; + Input.SetMouseCentering(false); + Application.IsCursorVisible = true; AudioHandler.PauseAllSounds(true); if (gamePauseText) gamePauseText.Enabled = true; if (canvas) canvas.SetActive(true); + Application.FixDeltaTime = 0; } } diff --git a/Assets/Scripts/UI/SC_SceneFadeInOut.cs b/Assets/Scripts/UI/SC_SceneFadeInOut.cs index 15047e49..c426f8a6 100644 --- a/Assets/Scripts/UI/SC_SceneFadeInOut.cs +++ b/Assets/Scripts/UI/SC_SceneFadeInOut.cs @@ -43,7 +43,6 @@ namespace SHADE_Scripting.UI protected override void start() { - } protected override void update() @@ -56,7 +55,6 @@ namespace SHADE_Scripting.UI if (fadeInTime == 0.0f) { alphaValue = 1.0f; - } else { @@ -64,7 +62,8 @@ namespace SHADE_Scripting.UI } if (alphaValue >= 1.0f) { - alphaValue = 1.0f; + alphaValue = 1.0f; + //GameObject.Parent.SetActive(false); } } @@ -82,8 +81,10 @@ namespace SHADE_Scripting.UI } if (alphaValue <= 0.0f) { - alphaValue = 0.0f; - GameObject.Parent.SetActive(false); + alphaValue = 0.0f; + //This line is to be added so that (because the fade in and out item is usually the front-most UI element) + //the fade in and out UI element does not block functionality of other UI elements + GameObject.Parent.SetActive(false); } } diff --git a/Assets/Scripts/UI/SC_ScrollingCredits.cs b/Assets/Scripts/UI/SC_ScrollingCredits.cs new file mode 100644 index 00000000..d4b362d8 --- /dev/null +++ b/Assets/Scripts/UI/SC_ScrollingCredits.cs @@ -0,0 +1,49 @@ +using System; +using SHADE; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SHADE_Scripting.UI +{ + public class ScrollingCredits: Script + { + + public float endY = 4000.0f; + public float duration = 30.0f; + + + [NonSerialized] + TweenThread thread; + + protected override void awake() + { + base.awake(); + + } + + protected override void start() + { + base.start(); + + Transform transform = GetComponent(); + if(transform != null) + { + thread = TweenManager.CreateTweenThread(duration, transform.LocalPosition.y, endY, EASING_METHOD.EASE_IN_SINE); + } + } + + protected override void update() + { + base.update(); + + Transform transform = GetComponent(); + + if(thread != null && transform != null) + { + transform.LocalPosition = new Vector3( transform.LocalPosition.x ,thread.GetValue() , transform.LocalPosition.z); + } + } + } +} diff --git a/Assets/Scripts/UI/SC_ScrollingCredits.cs.shmeta b/Assets/Scripts/UI/SC_ScrollingCredits.cs.shmeta new file mode 100644 index 00000000..df5d7056 --- /dev/null +++ b/Assets/Scripts/UI/SC_ScrollingCredits.cs.shmeta @@ -0,0 +1,3 @@ +Name: SC_ScrollingCredits +ID: 159139676 +Type: 9 diff --git a/Assets/Scripts/UI/SC_SliderText.cs b/Assets/Scripts/UI/SC_SliderText.cs index e3f5a8b3..c2f8eb12 100644 --- a/Assets/Scripts/UI/SC_SliderText.cs +++ b/Assets/Scripts/UI/SC_SliderText.cs @@ -11,8 +11,6 @@ namespace SHADE_Scripting.UI { public GameObject sliderObj; - public int minValue = 0; - public int maxValue = 0; protected override void start() { @@ -22,7 +20,7 @@ namespace SHADE_Scripting.UI if (slider != null && text != null) { - text.Text = ((int)(slider.GetValue() * (maxValue - minValue) + minValue)).ToString(); + text.Text = ((int)(slider.ScaledValue)).ToString(); } } protected override void update() @@ -32,7 +30,7 @@ namespace SHADE_Scripting.UI if(slider != null && text != null) { - text.Text = ((int)(slider.GetValue() * (maxValue - minValue) + minValue)).ToString(); + text.Text = ((int)(slider.ScaledValue)).ToString(); } } diff --git a/Assets/Shaders/DeferredComposite_CS.glsl b/Assets/Shaders/DeferredComposite_CS.glsl index f17c9d84..12352d4d 100644 --- a/Assets/Shaders/DeferredComposite_CS.glsl +++ b/Assets/Shaders/DeferredComposite_CS.glsl @@ -78,8 +78,12 @@ float CalcShadowValue (sampler2D shadowMap, vec4 worldSpaceFragPos, mat4 lightPV float pMax = LinStep (variance / (variance + (d * d)), 0.9f, 1.0f); return min (max (p, pMax), 1.0f); } + else if (fragPosLightPOV.z > 1.0f) + { + return 0.0f; + } else - return 1.0f; + return 0.3f; // return step (fragPosLightPOV.z, ); } @@ -125,7 +129,7 @@ void main() vec3 dLightNormalized = normalize (DirLightData.dLightData[i].direction); // Get diffuse strength - float diffuseStrength = max (0, dot (dLightNormalized, normalView)); + float diffuseStrength = max (0, dot (-dLightNormalized, normalView)); // Calculate the fragment color fragColor += DirLightData.dLightData[i].diffuseColor.rgb * diffuseStrength.rrr * pixelDiffuse; diff --git a/Assets/Shaders/DeferredComposite_CS.shshaderb b/Assets/Shaders/DeferredComposite_CS.shshaderb index e5a0a730..a5197b3b 100644 Binary files a/Assets/Shaders/DeferredComposite_CS.shshaderb and b/Assets/Shaders/DeferredComposite_CS.shshaderb differ diff --git a/Assets/Shaders/ShinyHighlight_FS.glsl b/Assets/Shaders/ShinyHighlight_FS.glsl index 8d7f4a90..bb41a0fb 100644 --- a/Assets/Shaders/ShinyHighlight_FS.glsl +++ b/Assets/Shaders/ShinyHighlight_FS.glsl @@ -78,8 +78,14 @@ void main() outEntityID = In2.eid; lightLayerIndices = In2.lightLayerIndex; - float vpHeight = float (In2.screenSpacePos.y) - MatProp.data[In2.materialIndex].highlightPosition; - vpHeight = float (int (vpHeight) % genericDataBuffer.data.viewportHeight); + // float vpHeight = float (In2.screenSpacePos.y) - MatProp.data[In2.materialIndex].highlightPosition; + // bring the frame of reference to the object's screen space pos + int scale = 470; + float vpHeight = float (In2.screenSpacePos.y); + float relativePos = float(int (-MatProp.data[In2.materialIndex].highlightPosition) % scale) - float (scale / 2); + vpHeight += relativePos; + + // vpHeight = float (int (vpHeight) % genericDataBuffer.data.viewportHeight); float scanlineScale = MatProp.data[In2.materialIndex].thickness * (1.0f - In2.screenSpacePos.z) * 100.0f; float lowerLimit = vpHeight - scanlineScale; diff --git a/Assets/Shaders/ShinyHighlight_FS.shshaderb b/Assets/Shaders/ShinyHighlight_FS.shshaderb index 408bba83..b1ac22bb 100644 Binary files a/Assets/Shaders/ShinyHighlight_FS.shshaderb and b/Assets/Shaders/ShinyHighlight_FS.shshaderb differ diff --git a/Assets/Shaders/ToSwapchain_FS.glsl b/Assets/Shaders/ToSwapchain_FS.glsl index d353c15f..3cf1752f 100644 --- a/Assets/Shaders/ToSwapchain_FS.glsl +++ b/Assets/Shaders/ToSwapchain_FS.glsl @@ -3,7 +3,7 @@ #extension GL_ARB_shading_language_420pack : enable #extension GL_EXT_nonuniform_qualifier : require -layout (input_attachment_index = 0, set = 3, binding = 0) uniform subpassInput sceneTexture; +layout (input_attachment_index = 0, set = 0, binding = 0) uniform subpassInput sceneTexture; layout(location = 0) out vec4 fragColor; diff --git a/Assets/Shaders/ToSwapchain_FS.shshaderb b/Assets/Shaders/ToSwapchain_FS.shshaderb index 24cb54fe..0bee0ac6 100644 Binary files a/Assets/Shaders/ToSwapchain_FS.shshaderb and b/Assets/Shaders/ToSwapchain_FS.shshaderb differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04a.dds b/Assets/Texture/Cutscene/TX_cutscene_04a.dds new file mode 100644 index 00000000..68162863 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04a.dds differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04a.shtex b/Assets/Texture/Cutscene/TX_cutscene_04a.shtex new file mode 100644 index 00000000..ac8bef3a Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04a.shtex differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04a.shtex.shmeta b/Assets/Texture/Cutscene/TX_cutscene_04a.shtex.shmeta new file mode 100644 index 00000000..fab6ad23 --- /dev/null +++ b/Assets/Texture/Cutscene/TX_cutscene_04a.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TX_cutscene_04a +ID: 51238312 +Type: 3 diff --git a/Assets/Texture/Cutscene/TX_cutscene_04b.dds b/Assets/Texture/Cutscene/TX_cutscene_04b.dds new file mode 100644 index 00000000..d7103725 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04b.dds differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04b.shtex b/Assets/Texture/Cutscene/TX_cutscene_04b.shtex new file mode 100644 index 00000000..785cef62 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04b.shtex differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04b.shtex.shmeta b/Assets/Texture/Cutscene/TX_cutscene_04b.shtex.shmeta new file mode 100644 index 00000000..5fd13580 --- /dev/null +++ b/Assets/Texture/Cutscene/TX_cutscene_04b.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TX_cutscene_04b +ID: 61471971 +Type: 3 diff --git a/Assets/Texture/Cutscene/TX_cutscene_04c.dds b/Assets/Texture/Cutscene/TX_cutscene_04c.dds new file mode 100644 index 00000000..547e4068 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04c.dds differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04c.shtex b/Assets/Texture/Cutscene/TX_cutscene_04c.shtex new file mode 100644 index 00000000..29bd5c3f Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_04c.shtex differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_04c.shtex.shmeta b/Assets/Texture/Cutscene/TX_cutscene_04c.shtex.shmeta new file mode 100644 index 00000000..3d8601d7 --- /dev/null +++ b/Assets/Texture/Cutscene/TX_cutscene_04c.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TX_cutscene_04c +ID: 58217538 +Type: 3 diff --git a/Assets/Texture/Cutscene/TX_cutscene_05a.dds b/Assets/Texture/Cutscene/TX_cutscene_05a.dds new file mode 100644 index 00000000..ed5a2401 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_05a.dds differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_05a.shtex b/Assets/Texture/Cutscene/TX_cutscene_05a.shtex new file mode 100644 index 00000000..f456f871 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_05a.shtex differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_05a.shtex.shmeta b/Assets/Texture/Cutscene/TX_cutscene_05a.shtex.shmeta new file mode 100644 index 00000000..0e4aa2b0 --- /dev/null +++ b/Assets/Texture/Cutscene/TX_cutscene_05a.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TX_cutscene_05a +ID: 61980534 +Type: 3 diff --git a/Assets/Texture/Cutscene/TX_cutscene_05b.dds b/Assets/Texture/Cutscene/TX_cutscene_05b.dds new file mode 100644 index 00000000..0cee98cc Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_05b.dds differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_05b.shtex b/Assets/Texture/Cutscene/TX_cutscene_05b.shtex new file mode 100644 index 00000000..5aa8c2a5 Binary files /dev/null and b/Assets/Texture/Cutscene/TX_cutscene_05b.shtex differ diff --git a/Assets/Texture/Cutscene/TX_cutscene_05b.shtex.shmeta b/Assets/Texture/Cutscene/TX_cutscene_05b.shtex.shmeta new file mode 100644 index 00000000..6bb021a7 --- /dev/null +++ b/Assets/Texture/Cutscene/TX_cutscene_05b.shtex.shmeta @@ -0,0 +1,3 @@ +Name: TX_cutscene_05b +ID: 51561286 +Type: 3 diff --git a/Assets/Texture/UI/MainMenuBG.dds b/Assets/Texture/UI/MainMenuBG.dds new file mode 100644 index 00000000..fa40488f Binary files /dev/null and b/Assets/Texture/UI/MainMenuBG.dds differ diff --git a/Assets/Texture/UI/MainMenuBG.shtex b/Assets/Texture/UI/MainMenuBG.shtex new file mode 100644 index 00000000..f0fc221e Binary files /dev/null and b/Assets/Texture/UI/MainMenuBG.shtex differ diff --git a/Assets/Texture/UI/MainMenuBG.shtex.shmeta b/Assets/Texture/UI/MainMenuBG.shtex.shmeta new file mode 100644 index 00000000..d3a8fa9c --- /dev/null +++ b/Assets/Texture/UI/MainMenuBG.shtex.shmeta @@ -0,0 +1,3 @@ +Name: MainMenuBG +ID: 58181851 +Type: 3 diff --git a/SHADE_Application/src/Application/SBApplication.cpp b/SHADE_Application/src/Application/SBApplication.cpp index 29b1640c..3943b34d 100644 --- a/SHADE_Application/src/Application/SBApplication.cpp +++ b/SHADE_Application/src/Application/SBApplication.cpp @@ -201,8 +201,6 @@ namespace Sandbox #ifdef SHEDITOR if(editor->editorState == SHEditor::State::PLAY) -#else - window.ClipMouseCursor(); #endif SHSceneManager::SceneUpdate(0.016f); #ifdef SHEDITOR diff --git a/SHADE_Engine/src/AudioSystem/SHAudioSystem.cpp b/SHADE_Engine/src/AudioSystem/SHAudioSystem.cpp index e02eac50..eac465ff 100644 --- a/SHADE_Engine/src/AudioSystem/SHAudioSystem.cpp +++ b/SHADE_Engine/src/AudioSystem/SHAudioSystem.cpp @@ -54,12 +54,41 @@ namespace SHADE denseListener = &SHComponentManager::GetDense(); fmodStudioSystem->getCoreSystem(&fmodSystem); - fmodSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0); - result = fmodStudioSystem->initialize(AUDIO_SYS_MAX_CHANNELS, AUDIO_SYS_MAX_CHANNELS, FMOD_STUDIO_INIT_NORMAL | FMOD_INIT_NORMAL, extraDriverData); - - ErrorCheck(); - fmodSystem->setSoftwareFormat(0, speakerMode, 0); + result = fmodSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_5POINT1, 0); + ErrorCheck(); + result = fmodSystem->setOutput(FMOD_OUTPUTTYPE_AUDIO3D); + if(result != FMOD_OK) + { + result = fmodSystem->setOutput(FMOD_OUTPUTTYPE_WINSONIC); + if (result == FMOD_OK) + { + result = fmodSystem->setSoftwareFormat(0, FMOD_SPEAKERMODE_7POINT1POINT4, 0); + ErrorCheck(); + } + } + + int numDrivers{}; + result = fmodSystem->getNumDrivers(&numDrivers); + if(numDrivers == 0) + { + fmodSystem->setDSPBufferSize(512, 4); + fmodSystem->setOutput(FMOD_OUTPUTTYPE_AUTODETECT); + } + FMOD_OUTPUTTYPE outputType{}; + fmodSystem->getSoftwareFormat(0, &speakerMode, 0); + fmodSystem->getOutput(&outputType); + + FMOD_STUDIO_INITFLAGS studioInitFlags = FMOD_STUDIO_INIT_NORMAL; + FMOD_INITFLAGS coreInitFlags = FMOD_INIT_NORMAL | FMOD_INIT_3D_RIGHTHANDED; +#ifdef _DEBUG + studioInitFlags |= FMOD_STUDIO_INIT_LIVEUPDATE; + coreInitFlags |= FMOD_INIT_PROFILE_ENABLE; +#endif + + result = fmodStudioSystem->initialize(AUDIO_SYS_MAX_CHANNELS, studioInitFlags, coreInitFlags, extraDriverData); + + ErrorCheck(); result = fmodSystem->createChannelGroup("SFX", &sfxChannelGroup); ErrorCheck(); @@ -104,6 +133,10 @@ namespace SHADE const ReceiverPtr ON_PAUSE_RECEIVER_PTR = std::dynamic_pointer_cast(ON_PAUSE_RECEIVER); SHEventManager::SubscribeTo(SH_EDITOR_ON_PAUSE_EVENT, ON_PAUSE_RECEIVER_PTR); + const std::shared_ptr ON_SCENE_EXIT_RECEIVER{ std::make_shared>(this, &SHAudioSystem::onSceneExit) }; + const ReceiverPtr ON_SCENE_EXIT_RECEIVER_PTR = std::dynamic_pointer_cast(ON_SCENE_EXIT_RECEIVER); + SHEventManager::SubscribeTo(SH_SCENE_EXIT_POST, ON_SCENE_EXIT_RECEIVER_PTR); + #endif } @@ -145,7 +178,9 @@ namespace SHADE FMOD_3D_ATTRIBUTES attribs{ { 0 } }; SHVec3 pos = camComponent->GetPosition(); SHVec3 forward, up, right; + camSystem->GetCameraAxis(*camComponent, forward, right, up); + up *= -1.0f; attribs.position = { pos.x, pos.y, pos.z }; attribs.forward = { forward.x, forward.y, forward.z }; attribs.up = { up.x, up.y, up.z }; @@ -156,7 +191,7 @@ namespace SHADE auto [begin, end] = audioClipLibrary.GetDenseAccess(); for (auto& it = begin; it != end; ++it) { - if(it->instance && (it->transformRef != MAX_EID)) + if(it->instance && it->instance->isValid() && (it->transformRef != MAX_EID)) { if(SHTransformComponent* transformComponent = SHComponentManager::GetComponent_s(it->transformRef)) { @@ -165,11 +200,13 @@ namespace SHADE SHQuaternion worldOrientation = transformComponent->GetWorldOrientation(); SHVec3 orientatedFoward = (worldOrientation * SHQuaternion::FromEuler(SHVec3::Forward) * SHQuaternion::Conjugate(worldOrientation)).ToEuler(); SHVec3 orientatedUp = (worldOrientation * SHQuaternion::FromEuler(SHVec3::Up) * SHQuaternion::Conjugate(worldOrientation)).ToEuler(); - + orientatedFoward = SHVec3::Normalise(orientatedFoward); + orientatedUp = SHVec3::Normalise(orientatedUp); attribs.position = {pos.x, pos.y, pos.z}; attribs.forward = {orientatedFoward.x, orientatedFoward.y, orientatedFoward.z}; attribs.up = {orientatedUp.x, orientatedUp.y, orientatedUp.z}; - it->instance->set3DAttributes(&attribs); + result = it->instance->set3DAttributes(&attribs); + ErrorCheck(); } } } @@ -656,6 +693,15 @@ namespace SHADE } } + void SHAudioSystem::SetParameterWithLabel(const char* path, const char* label) + { + result = fmodStudioSystem->setParameterByNameWithLabel(path, label); + if (result != FMOD_OK) + { + ErrorCheck(); + } + } + void AudioClip::Play() { if(!instance) @@ -734,12 +780,16 @@ namespace SHADE } } - //void AudioClip::SetParameterLabel(const char* paramName, const char* label) - //{ - // if (!instance) - // return; - // instance->setParameterByNameWithLabel(paramName, label); - //} + void AudioClip::SetParameterWithLabel(const char* paramName, const char* label) + { + if (!instance) + return; + FMOD_RESULT result = instance->setParameterByNameWithLabel(paramName, label); + if (result != FMOD_OK) + { + SHLOG_ERROR("Audio system error: {}", FMOD_ErrorString(result)) + } + } float AudioClip::GetParameterValue(const char* paramName) { @@ -783,6 +833,18 @@ namespace SHADE return onStopEvent->handle; } + + SHEventHandle SHAudioSystem::onSceneExit(SHEventPtr onSceneExitEvent) + { + auto [begin, end] = audioClipLibrary.GetDenseAccess(); + for (auto& it = begin; it != end; ++it) + { + it->instance->release(); + } + + return onSceneExitEvent->handle; + } + SHEventHandle SHAudioSystem::onPlay(SHEventPtr onStopEvent) { if(GetPaused()) diff --git a/SHADE_Engine/src/AudioSystem/SHAudioSystem.h b/SHADE_Engine/src/AudioSystem/SHAudioSystem.h index 68942a8e..7e2fac11 100644 --- a/SHADE_Engine/src/AudioSystem/SHAudioSystem.h +++ b/SHADE_Engine/src/AudioSystem/SHAudioSystem.h @@ -33,7 +33,7 @@ namespace SHADE void SetPause(bool pause); bool IsPaused(); void SetParameter(const char* paramName, float value); - //void SetParameterLabel(const char* paramName, const char* label); + void SetParameterWithLabel(const char* paramName, const char* label); float GetParameterValue(const char* paramName); float GetVolume(); void SetVolume(float volume); @@ -94,6 +94,7 @@ namespace SHADE float GetParameterValue(const char* path); void SetParameter(const char* path, float value); + void SetParameterWithLabel(const char* path, const char* label); private: FMOD::Studio::System* fmodStudioSystem; @@ -122,6 +123,7 @@ namespace SHADE SHEventHandle onPlay(SHEventPtr onStopEvent); SHEventHandle onStop(SHEventPtr onStopEvent); SHEventHandle onPause(SHEventPtr onStopEvent); + SHEventHandle onSceneExit(SHEventPtr onSceneExitEvent); }; } diff --git a/SHADE_Engine/src/Camera/SHCameraArmComponent.h b/SHADE_Engine/src/Camera/SHCameraArmComponent.h index 9d8ec853..76f27360 100644 --- a/SHADE_Engine/src/Camera/SHCameraArmComponent.h +++ b/SHADE_Engine/src/Camera/SHCameraArmComponent.h @@ -9,9 +9,7 @@ namespace SHADE { - - class SHBox; - class SHRay; + struct SHRay; class SH_API SHCameraArmComponent final: public SHComponent { diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.cpp b/SHADE_Engine/src/Camera/SHCameraSystem.cpp index 85f3b1b1..bd35af76 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.cpp +++ b/SHADE_Engine/src/Camera/SHCameraSystem.cpp @@ -272,6 +272,13 @@ namespace SHADE if (arm->isActive == true) { camera.offset = arm->GetOffset(); + + SHVec3 tOffset = arm->GetTargetOffset(); + + + tOffset = SHVec3::RotateY(tOffset, SHMath::DegreesToRadians(arm->GetYaw())); + + if (arm->lookAtCameraOrigin) CameraLookAt(camera, camera.position + arm->GetTargetOffset()); @@ -559,7 +566,7 @@ namespace SHADE } #else - return SHVec2{ GetDirector(index)->GetWidth(),GetDirector(index)->GetHeight() }; + return SHVec2{ GetDirector(index)->GetWidth(),GetDirector(index)->GetWidth() / screenAspectRatio }; #endif } diff --git a/SHADE_Engine/src/Editor/EditorWindow/AssetBrowser/SHAssetBrowser.cpp b/SHADE_Engine/src/Editor/EditorWindow/AssetBrowser/SHAssetBrowser.cpp index c1796501..c5652c5f 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/AssetBrowser/SHAssetBrowser.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/AssetBrowser/SHAssetBrowser.cpp @@ -380,10 +380,14 @@ namespace SHADE break; case AssetType::MESH: break; case AssetType::SCENE: - if (editor->LoadScene(asset->id)) - { - editor->editorConfig->workingSceneID = asset->id; - } + { + if(editor->LoadScene(asset->id)) + { +#ifdef SHEDITOR + editor->editorConfig->workingSceneID = asset->id; +#endif + } + } break; case AssetType::PREFAB: break; case AssetType::MATERIAL: diff --git a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp index 67c44434..73718a24 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp +++ b/SHADE_Engine/src/Editor/EditorWindow/Inspector/SHEditorComponentView.hpp @@ -15,6 +15,7 @@ #include "Editor/SHEditorWidgets.hpp" #include "Graphics/MiddleEnd/Interface/SHRenderable.h" #include "Graphics/MiddleEnd/Lights/SHLightComponent.h" +#include "Physics/Interface/SHRigidBodyComponent.h" #include "Physics/Interface/SHColliderComponent.h" #include "Reflection/SHReflectionMetadata.h" #include "Resource/SHResourceManager.h" @@ -25,6 +26,7 @@ #include "Animation/SHAnimatorComponent.h" #include "Physics/Collision/Shapes/SHBox.h" #include "Physics/Collision/Shapes/SHSphere.h" +#include "Physics/Collision/Shapes/SHCapsule.h" #include "../SHEditorWindowManager.h" #include "../AssetBrowser/SHAssetBrowser.h" #include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h" @@ -264,6 +266,10 @@ namespace SHADE if(rbType == SHRigidBodyComponent::Type::DYNAMIC) //Dynamic only fields { SHEditorWidgets::CheckBox("Use Gravity", [component]{return component->IsGravityEnabled();}, [component](bool const& value){component->SetGravityEnabled(value);}, "Gravity"); + + if (component->IsGravityEnabled()) + SHEditorWidgets::DragFloat("Gravity Scale", [component] {return component->GetGravityScale(); }, [component](float const& value) {component->SetGravityScale(value); }, "Gravity Scale"); + //SHEditorWidgets::DragFloat("Mass", [component] {return component->GetMass(); }, [component](float const& value) {component->SetMass(value); }, "Mass"); } if (rbType == SHRigidBodyComponent::Type::DYNAMIC || rbType == SHRigidBodyComponent::Type::KINEMATIC) //Dynamic or Kinematic only fields @@ -372,12 +378,26 @@ namespace SHADE ( "Radius", [sphereShape] { return sphereShape->GetRelativeRadius(); }, - [sphereShape](float const& value) { sphereShape->SetRelativeRadius(value); }); + [sphereShape](float const& value) { sphereShape->SetRelativeRadius(value); } + ); + } + else if (collisionShape->GetType() == SHCollisionShape::Type::CAPSULE) + { + SHEditorWidgets::BeginPanel(std::format("{} Capsule #{}", ICON_MD_CIRCLE, i).data(), { ImGui::GetContentRegionAvail().x, ImGui::GetContentRegionAvail().y }); + auto* capsuleShape = dynamic_cast(collisionShape); + SHEditorWidgets::DragFloat + ( + "Radius", + [capsuleShape] { return capsuleShape->GetRelativeRadius(); }, + [capsuleShape](float const& value) { capsuleShape->SetRelativeRadius(value); } + ); + SHEditorWidgets::DragFloat + ( + "Height", + [capsuleShape] { return capsuleShape->GetRelativeHeight(); }, + [capsuleShape](float const& value) { capsuleShape->SetRelativeHeight(value); } + ); } - //else if (collisionShape->GetType() == SHCollisionShape::Type::CAPSULE) - //{ - - //} { SHEditorWidgets::CheckBox("Is Trigger", [collisionShape] { return collisionShape->IsTrigger(); }, [collisionShape](bool value) { collisionShape->SetIsTrigger(value); }); @@ -420,25 +440,20 @@ namespace SHADE if (ImGui::BeginMenu("Add Collider")) { - int newColl = -1; + int newCollider = -1; if (ImGui::Selectable("Box Collider")) { - newColl = component->AddBoxCollisionShape(SHVec3::One); + newCollider = component->AddBoxCollisionShape(SHVec3::One); } if (ImGui::Selectable("Sphere Collider")) { - newColl = component->AddSphereCollisionShape(1.0f); + newCollider = component->AddSphereCollisionShape(1.0f); + } + if (ImGui::Selectable("Capsule Collider")) + { + newCollider = component->AddCapsuleCollisionShape(1.0f, 2.0f); } - - //No idea why this doesn't work - //if (newColl > 0) - //{ - // auto newCollisionShape = component->GetCollisionShape(newColl); - // auto prevCollisionShapeInSeq = component->GetCollisionShape(newColl - 1); - // newCollisionShape.SetCollisionTag(SHCollisionTagMatrix::GetTag(prevCollisionShapeInSeq.GetCollisionTag().GetName())); - - //} ImGui::EndMenu(); } diff --git a/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp b/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp index 6072c6a8..21cc85f4 100644 --- a/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp +++ b/SHADE_Engine/src/Editor/EditorWindow/MenuBar/SHEditorMenuBar.cpp @@ -25,6 +25,7 @@ #include "Serialization/SHSerialization.h" #include "Serialization/Configurations/SHConfigurationManager.h" #include "Editor/EditorWindow/SHEditorWindowManager.h" +#include "Physics/System/SHPhysicsSystem.h" #include "Physics/System/SHPhysicsDebugDrawSystem.h" #include "Camera/SHCameraSystem.h" #include "Tools/Utilities/SHClipboardUtilities.h" @@ -359,21 +360,63 @@ namespace SHADE { if (ImGui::BeginMenu("Physics Settings")) { + if (auto* physicsSystem = SHSystemManager::GetSystem()) + { + SHEditorWidgets::DragVec3 + ( + "Gravity", { "X", "Y", "Z" }, + [physicsSystem] {return physicsSystem->GetGravity(); }, + [physicsSystem](SHVec3 const& value) { physicsSystem->SetGravity(value); } + , false, "Global Gravity", 0.1f, "%.3f", 0.0f, 0.0f + ); + + SHEditorWidgets::SliderScalar + ( + "Velocity Iterations", ImGuiDataType_U16, (uint16_t)1, (uint16_t)32, + [physicsSystem] { return physicsSystem->GetNumVelocityIterations(); }, + [physicsSystem](uint16_t value) { physicsSystem->SetNumVelocityIterations(value); }, + "Number of times velocity is solved per collision. Higher values increase precision at the cost of performance.", + "%zu" + ); + + SHEditorWidgets::SliderScalar + ( + "Position Iterations", ImGuiDataType_U16, (uint16_t)1, (uint16_t)32, + [physicsSystem] { return physicsSystem->GetNumPositionIterations(); }, + [physicsSystem](uint16_t value) { physicsSystem->SetNumPositionIterations(value); }, + "Number of times position is solved per collision. Higher values increase precision at the cost of performance.", + "%zu" + ); + + SHEditorWidgets::CheckBox + ( + "Sleeping Enabled", + [physicsSystem] { return physicsSystem->IsSleepingEnabled(); }, + [physicsSystem](bool value) { physicsSystem->EnableSleeping(value); }, + "If bodies are allowed to sleep. Sleeping increases performance of the simulation and should be left enabled." + ); + } + if (auto* physicsDebugDraw = SHSystemManager::GetSystem()) { - bool drawColliders = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::COLLIDERS); - if (ImGui::Checkbox("Draw Colliders", &drawColliders)) - physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::COLLIDERS, drawColliders); + if(ImGui::CollapsingHeader("Debug Draw", ImGuiTreeNodeFlags_DefaultOpen)) + { + bool drawColliders = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::COLLIDERS); + if (ImGui::Checkbox("Draw Colliders", &drawColliders)) + physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::COLLIDERS, drawColliders); - bool drawContactPoints = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::CONTACTS); - if (ImGui::Checkbox("Draw Contact Points", &drawContactPoints)) - physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::CONTACTS, drawContactPoints); + bool drawContactPoints = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::CONTACTS); + if (ImGui::Checkbox("Draw Contact Points", &drawContactPoints)) + physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::CONTACTS, drawContactPoints); - bool drawRays = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::RAYCASTS); - if (ImGui::Checkbox("Draw Rays", &drawRays)) - physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::RAYCASTS, drawRays); + bool drawRays = physicsDebugDraw->GetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::RAYCASTS); + if (ImGui::Checkbox("Draw Rays", &drawRays)) + physicsDebugDraw->SetFlagState(SHPhysicsDebugDrawSystem::DebugDrawFlags::RAYCASTS, drawRays); + } } + + ImGui::EndMenu(); } } diff --git a/SHADE_Engine/src/Editor/SHEditor.cpp b/SHADE_Engine/src/Editor/SHEditor.cpp index 1b45073c..1f77b0cd 100644 --- a/SHADE_Engine/src/Editor/SHEditor.cpp +++ b/SHADE_Engine/src/Editor/SHEditor.cpp @@ -56,6 +56,7 @@ #include "Scene/SHSceneManager.h" #include "Serialization/SHSerialization.h" #include "Tools/SHDebugDraw.h" +#include "Input/SHInputManager.h" RTTR_REGISTRATION { @@ -600,8 +601,10 @@ namespace SHADE { //Load the scene sceneToLoad = 0; +#ifdef SHEDITOR editorConfig->workingSceneID = assetID; SHConfigurationManager::SaveEditorConfig(); +#endif SHSceneManager::RestartScene(assetID); return true; } @@ -624,6 +627,7 @@ namespace SHADE } else if (editorState == State::PAUSE) { + SHWindow::SetMouseVisible(prevCursorVisibleState); editorState = State::PLAY; } } @@ -637,6 +641,9 @@ namespace SHADE .previousState = editorState }; editorState = State::PAUSE; + SHInputManager::SetMouseCentering(false); + prevCursorVisibleState = SHWindow::GetMouseVisible(); + SHWindow::SetMouseVisible(true); SHEventManager::BroadcastEvent(STATE_CHANGE_EVENT, SH_EDITOR_ON_PAUSE_EVENT); } @@ -648,6 +655,9 @@ namespace SHADE { .previousState = editorState }; + SHWindow::SetMouseVisible(true); + prevCursorVisibleState = true; + SHInputManager::SetMouseCentering(false); editorState = SHEditor::State::STOP; SHCommandManager::SwapStacks(); SHEventManager::BroadcastEvent(STATE_CHANGE_EVENT, SH_EDITOR_ON_STOP_EVENT); diff --git a/SHADE_Engine/src/Editor/SHEditor.h b/SHADE_Engine/src/Editor/SHEditor.h index 1cbc4f9d..a85a9c33 100644 --- a/SHADE_Engine/src/Editor/SHEditor.h +++ b/SHADE_Engine/src/Editor/SHEditor.h @@ -154,7 +154,7 @@ namespace SHADE SHEventHandle onEditorStateChanged(SHEventPtr eventPtr); bool isUnsavedChangesPromptOpen = false; - + bool prevCursorVisibleState = true; static constexpr std::string_view sceneNamePromptName = "Save scene as..."; static constexpr std::string_view unsavedChangesPromptName = "Unsaved Changes"; diff --git a/SHADE_Engine/src/Editor/SHEditorUI.cpp b/SHADE_Engine/src/Editor/SHEditorUI.cpp index 3096759f..3f5fdaaa 100644 --- a/SHADE_Engine/src/Editor/SHEditorUI.cpp +++ b/SHADE_Engine/src/Editor/SHEditorUI.cpp @@ -317,7 +317,7 @@ namespace SHADE const bool CHANGED = ImGui::InputText("##", &buffer[0], TEXT_FIELD_MAX_LENGTH); if (CHANGED) { - value = std::string(buffer.data(), buffer.data() + TEXT_FIELD_MAX_LENGTH); + value = std::string(buffer.data(), buffer.data() + std::strlen(buffer.data())); } return CHANGED; } diff --git a/SHADE_Engine/src/FRC/SHFramerateController.cpp b/SHADE_Engine/src/FRC/SHFramerateController.cpp index e504698f..40ae0182 100644 --- a/SHADE_Engine/src/FRC/SHFramerateController.cpp +++ b/SHADE_Engine/src/FRC/SHFramerateController.cpp @@ -37,6 +37,8 @@ namespace SHADE { prevFrameTime = std::chrono::high_resolution_clock::now(); } + + } //TODO Legacy code. Delete soon diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHDebugDrawSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHDebugDrawSystem.cpp index 83ff2d5c..d9a740ac 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHDebugDrawSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHDebugDrawSystem.cpp @@ -375,15 +375,15 @@ namespace SHADE const SHVec3 LOCAL_FORWARD = SHVec3::Rotate(SHVec3::Forward, rotation); // Rotate the circle - SHQuaternion circleOrientation = SHQuaternion::FromEuler(SHVec3(SHMath::DegreesToRadians(90.0), 0.0f, 0.0f)) * rotation; + SHQuaternion circleOrientation = SHQuaternion::FromEuler(SHVec3(SHMath::DegreesToRadians(90.0f), 0.0f, 0.0f)) * rotation; // Compute top and bottom of the cylinder - const SHVec3 HALF_UP = LOCAL_UP * (height * 0.5f - radius); + const SHVec3 HALF_UP = LOCAL_UP * (height * 0.5f); const SHVec3 TOP_POS = position + HALF_UP; const SHVec3 BOT_POS = position - HALF_UP; // Render circles - const SHVec3 CIRCLE_SCALE = SHVec3(radius * 2.0f, radius * 2.0, radius * 2.0); + const SHVec3 CIRCLE_SCALE = SHVec3(radius * 2.0f, radius * 2.0f, radius * 2.0f); drawCircle(meshBatch, SHMatrix::Transform(TOP_POS, circleOrientation, CIRCLE_SCALE), color); drawCircle(meshBatch, SHMatrix::Transform(BOT_POS, circleOrientation, CIRCLE_SCALE), color); @@ -394,7 +394,7 @@ namespace SHADE drawLine(lineBatch, TOP_POS - LOCAL_FORWARD * radius, BOT_POS - LOCAL_FORWARD * radius, color); // Render caps - const SHVec3 RADIUS_SCALE = SHVec3(radius * 2.0, radius * 2.0f, radius * 2.0); + const SHVec3 RADIUS_SCALE = SHVec3(radius * 2.0f, radius * 2.0f, radius * 2.0f); const SHMatrix TOP_CAP_MAT = SHMatrix::Transform(TOP_POS, rotation, RADIUS_SCALE); drawMesh ( @@ -404,7 +404,7 @@ namespace SHADE const SHMatrix BOT_CAP_MAT = SHMatrix::Transform ( BOT_POS, - SHQuaternion::FromEuler(SHVec3(SHMath::DegreesToRadians(180.0), 0.0f, 0.0f)) * rotation, + SHQuaternion::FromEuler(SHVec3(SHMath::DegreesToRadians(180.0f), 0.0f, 0.0f)) * rotation, RADIUS_SCALE ); drawMesh diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp index e7f1ae68..a3573c15 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp @@ -555,6 +555,11 @@ namespace SHADE // Create buffer for generic data and attach to descriptor set graphicsGenericData.Init(device, genericAndTextureDescSet); + auto windowDims = window->GetWindowSize(); + + graphicsGenericData.SetViewportWidth(windowDims.first); + graphicsGenericData.SetViewportHeight(windowDims.second); + } /*---------------------------------------------------------------------------------*/ @@ -669,7 +674,7 @@ namespace SHADE #endif } - static bool shadowAdded = false; + //static bool shadowAdded = false; //if (shadowAdded == false && SHInputManager::GetKey(SHInputManager::SH_KEYCODE::B)) //{ diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp index 6f8a9030..cace495c 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.cpp @@ -398,7 +398,10 @@ namespace SHADE { SHTransformComponent* transform = SHComponentManager::GetComponent(lightComp->GetEID()); - return SHMatrix::Transpose(SHMatrix::LookAtLH(transform->GetWorldPosition(), SHVec3::Normalise(lightComp->GetLightData().direction), SHVec3(0.0f, -1.0f, 0.0f))); + if (transform) + return SHMatrix::Transpose(SHMatrix::LookAtLH(transform->GetWorldPosition(), SHVec3::Normalise(lightComp->GetLightData().direction), SHVec3(0.0f, -1.0f, 0.0f))); + else + return{}; } //return SHMatrix::Transpose(SHMatrix::LookAtLH(/*lightComp->GetLightData().position*/SHVec3(1.27862f, 4.78952f, 4.12811f), SHVec3(-0.280564f, -0.66262f, -0.69422f), SHVec3(0.0f, -1.0f, 0.0f))); case SH_LIGHT_TYPE::POINT: diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.h b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.h index 7794a2fb..69b00f2c 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.h +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Lights/SHLightingSubSystem.h @@ -73,8 +73,8 @@ namespace SHADE public: using DynamicOffsetArray = std::array, static_cast(SHGraphicsConstants::NUM_FRAME_BUFFERS)>; static constexpr uint32_t MAX_SHADOWS = 200; - static constexpr uint32_t SHADOW_MAP_WIDTH = 1024; - static constexpr uint32_t SHADOW_MAP_HEIGHT = 1024; + static constexpr uint32_t SHADOW_MAP_WIDTH = 2048; + static constexpr uint32_t SHADOW_MAP_HEIGHT = 2048; private: class PerTypeData diff --git a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp index ea650274..e4e6889c 100644 --- a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp +++ b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp @@ -512,9 +512,9 @@ namespace SHADE uint32_t h = static_cast(resource->GetHeight()); cmdBuffer->SetViewportScissor(static_cast(w), static_cast(h), w, h); - //static constexpr uint32_t INPUT_IMAGE_SET_INDEX = 0; - auto const& mappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::BATCHING); - newSubpass->BindInputDescriptorSets (cmdBuffer, mappings.at(SHPredefinedDescriptorTypes::RENDER_GRAPH_RESOURCE), frameIndex); + static constexpr uint32_t INPUT_IMAGE_SET_INDEX = 0; + //auto const& mappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::BATCHING); + newSubpass->BindInputDescriptorSets (cmdBuffer, INPUT_IMAGE_SET_INDEX, frameIndex); // draw a quad. cmdBuffer->DrawArrays(4, 1, 0, 0); diff --git a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderToSwapchainImageSystem.cpp b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderToSwapchainImageSystem.cpp index 80260b7b..cffc3aa8 100644 --- a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderToSwapchainImageSystem.cpp +++ b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderToSwapchainImageSystem.cpp @@ -21,7 +21,7 @@ namespace SHADE void SHRenderToSwapchainImageSystem::ConstructPipelines(Handle logicalDevice) noexcept { - auto pipelineLayout = logicalDevice->CreatePipelineLayout(SHPipelineLayoutParams + pipelineLayout = logicalDevice->CreatePipelineLayout(SHPipelineLayoutParams { .shaderModules = {shaderModules.first, shaderModules.second}, .predefinedDescSetLayouts = {} diff --git a/SHADE_Engine/src/Graphics/RenderGraph/SHSubpass.cpp b/SHADE_Engine/src/Graphics/RenderGraph/SHSubpass.cpp index d45789ce..14a5d864 100644 --- a/SHADE_Engine/src/Graphics/RenderGraph/SHSubpass.cpp +++ b/SHADE_Engine/src/Graphics/RenderGraph/SHSubpass.cpp @@ -78,6 +78,7 @@ namespace SHADE , viewport {rhs.viewport} , renderer {rhs.renderer} , companionSubpass {rhs.companionSubpass} + , dummyPipelineLayout{rhs.dummyPipelineLayout} { } @@ -115,6 +116,7 @@ namespace SHADE renderer = rhs.renderer; viewport = rhs.viewport; companionSubpass = rhs.companionSubpass; + dummyPipelineLayout = rhs.dummyPipelineLayout; return *this; @@ -457,17 +459,20 @@ namespace SHADE /***************************************************************************/ void SHSubpass::GenerateDummyPipielineLayout(void) noexcept { - auto const& batchingSystemData = SHGraphicsPredefinedData::GetSystemData(SHGraphicsPredefinedData::SystemType::BATCHING); - std::vector newLayouts = batchingSystemData.descSetLayouts; - if (inputDescriptorLayout) + if (!dummyPipelineLayout) { - newLayouts.push_back(inputDescriptorLayout); - } + auto const& batchingSystemData = SHGraphicsPredefinedData::GetSystemData(SHGraphicsPredefinedData::SystemType::BATCHING); + std::vector newLayouts = batchingSystemData.descSetLayouts; + if (inputDescriptorLayout) + { + newLayouts.push_back(inputDescriptorLayout); + } - dummyPipelineLayout = graphStorage->logicalDevice->CreatePipelineLayoutDummy - ( - SHPipelineLayoutParamsDummy{ newLayouts } - ); + dummyPipelineLayout = graphStorage->logicalDevice->CreatePipelineLayoutDummy + ( + SHPipelineLayoutParamsDummy{ newLayouts } + ); + } } /***************************************************************************/ diff --git a/SHADE_Engine/src/Graphics/Windowing/SHWindow.cpp b/SHADE_Engine/src/Graphics/Windowing/SHWindow.cpp index 078d9fc8..84df5f88 100644 --- a/SHADE_Engine/src/Graphics/Windowing/SHWindow.cpp +++ b/SHADE_Engine/src/Graphics/Windowing/SHWindow.cpp @@ -198,7 +198,8 @@ namespace SHADE void SHWindow::SetMouseVisible(bool show) { - ShowCursor(show); + while(GetMouseVisible() != show) + ShowCursor(show); } void SHWindow::SetMousePosition(int x, int y) diff --git a/SHADE_Engine/src/Math/Geometry/SHAABB.cpp b/SHADE_Engine/src/Math/Geometry/SHAABB.cpp new file mode 100644 index 00000000..9ec57073 --- /dev/null +++ b/SHADE_Engine/src/Math/Geometry/SHAABB.cpp @@ -0,0 +1,215 @@ +/**************************************************************************************** + * \file SHAABB.cpp + * \author Diren D Bharwani, diren.dbharwani, 390002520 + * \brief Implementation for a 3-Dimensional Axis Aligned Bounding Box + * + * \copyright 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. +****************************************************************************************/ + +#include + +// Primary Header +#include "SHAABB.h" +// Project Headers +#include "Math/SHMathHelpers.h" +#include "Math/SHRay.h" + +using namespace DirectX; + +namespace SHADE +{ + /*-----------------------------------------------------------------------------------*/ + /* Constructors & Destructor Definitions */ + /*-----------------------------------------------------------------------------------*/ + + SHAABB::SHAABB() noexcept + { + Center = SHVec3::Zero; + Extents = SHVec3::One * 0.5f; + } + + SHAABB::SHAABB(const SHVec3& c, const SHVec3& hE) noexcept + { + Center = c; + Extents = hE; + } + + + SHAABB::SHAABB(const SHAABB& rhs) noexcept + { + if (this == &rhs) + return; + + Center = rhs.Center; + Extents = rhs.Extents; + } + + SHAABB::SHAABB(SHAABB&& rhs) noexcept + { + Center = rhs.Center; + Extents = rhs.Extents; + } + + /*-----------------------------------------------------------------------------------*/ + /* Operator Overload Definitions */ + /*-----------------------------------------------------------------------------------*/ + + SHAABB& SHAABB::operator=(const SHAABB& rhs) noexcept + { + Center = rhs.Center; + Extents = rhs.Extents; + + return *this; + } + + SHAABB& SHAABB::operator=(SHAABB&& rhs) noexcept + { + Center = rhs.Center; + Extents = rhs.Extents; + + return *this; + } + + /*-----------------------------------------------------------------------------------*/ + /* Getter Function Definitions */ + /*-----------------------------------------------------------------------------------*/ + + SHVec3 SHAABB::GetCenter() const noexcept + { + return Center; + } + + SHVec3 SHAABB::GetExtents() const noexcept + { + return Extents; + } + + SHVec3 SHAABB::GetMin() const noexcept + { + return SHVec3{ Center.x - Extents.x, Center.y - Extents.y, Center.z - Extents.z }; + } + + SHVec3 SHAABB::GetMax() const noexcept + { + return SHVec3{ Center.x + Extents.x, Center.y + Extents.y, Center.z + Extents.z }; + } + + /*-----------------------------------------------------------------------------------*/ + /* Setter Function Definitions */ + /*-----------------------------------------------------------------------------------*/ + + void SHAABB::SetCenter(const SHVec3& newCenter) noexcept + { + Center = newCenter; + } + + void SHAABB::SetExtents(const SHVec3& newExtents) noexcept + { + Extents = newExtents; + } + + void SHAABB::SetMin(const SHVec3& min) noexcept + { + const SHVec3 MAX = GetMax(); + + Center = SHVec3::Lerp(min, MAX, 0.5f); + Extents = SHVec3::Abs((MAX - min) * 0.5f); + } + + void SHAABB::SetMax(const SHVec3& max) noexcept + { + const SHVec3 MIN = GetMin(); + + Center = SHVec3::Lerp(MIN, max, 0.5f); + Extents = SHVec3::Abs((max - MIN) * 0.5f); + } + + void SHAABB::SetMinMax(const SHVec3& min, const SHVec3& max) noexcept + { + Center = SHVec3::Lerp(min, max, 0.5f); + Extents = SHVec3::Abs((max - min) * 0.5f); + } + + std::vector SHAABB::GetVertices() const noexcept + { + std::vector vertices{ 8 }; + GetCorners(vertices.data()); + return vertices; + } + + /*-----------------------------------------------------------------------------------*/ + /* Public Function Member Definitions */ + /*-----------------------------------------------------------------------------------*/ + + bool SHAABB::TestPoint(const SHVec3& point) const noexcept + { + return BoundingBox::Contains(point); + } + + SHRaycastResult SHAABB::Raycast(const SHRay& ray) const noexcept + { + SHRaycastResult result; + + result.hit = Intersects(ray.position, ray.direction, result.distance); + if (result.hit) + { + result.position = ray.position + ray.direction * result.distance; + result.angle = SHVec3::Angle(ray.position, result.position); + } + + return result; + } + + bool SHAABB::Contains(const SHAABB& rhs) const noexcept + { + return BoundingBox::Contains(rhs) == CONTAINS; + } + + float SHAABB::Volume() const noexcept + { + return 8.0f * (Extents.x * Extents.y * Extents.z); + } + + float SHAABB::SurfaceArea() const noexcept + { + return 8.0f * ((Extents.x * Extents.y) + + (Extents.x * Extents.z) + + (Extents.y * Extents.z)); + } + + /*-----------------------------------------------------------------------------------*/ + /* Static Function Member Definitions */ + /*-----------------------------------------------------------------------------------*/ + + SHAABB SHAABB::Combine(const SHAABB& lhs, const SHAABB& rhs) noexcept + { + SHAABB result; + CreateMerged(result, lhs, rhs); + return result; + } + + bool SHAABB::Intersect(const SHAABB& lhs, const SHAABB& rhs) noexcept + { + return lhs.Intersects(rhs); + } + + SHAABB SHAABB::BuildFromBoxes(const SHAABB* boxes, size_t numBoxes) noexcept + { + SHAABB result; + + for (size_t i = 1; i < numBoxes; ++i) + CreateMerged(result, boxes[i - 1], boxes[i]); + + return result; + } + + SHAABB SHAABB::BuildFromVertices(const SHVec3* vertices, size_t numVertices, size_t stride) noexcept + { + SHAABB result; + CreateFromPoints(result, numVertices, vertices, stride); + return result; + } + +} // namespace SHADE \ No newline at end of file diff --git a/SHADE_Engine/src/Math/Geometry/SHAABB.h b/SHADE_Engine/src/Math/Geometry/SHAABB.h new file mode 100644 index 00000000..36ae9aed --- /dev/null +++ b/SHADE_Engine/src/Math/Geometry/SHAABB.h @@ -0,0 +1,172 @@ +/**************************************************************************************** + * \file SHAABB.h + * \author Diren D Bharwani, diren.dbharwani, 390002520 + * \brief Interface for a 3-Dimensional Axis Aligned Bounding Box + * + * \copyright 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 + +#include + +// Project Headers +#include "Math/SHRay.h" + +namespace SHADE +{ + /*-----------------------------------------------------------------------------------*/ + /* Type Definitions */ + /*-----------------------------------------------------------------------------------*/ + + /** + * @brief + * Encapsulates a 3D Axis-Aligned Bounding Box. + */ + class SH_API SHAABB : private DirectX::BoundingBox + { + public: + /*---------------------------------------------------------------------------------*/ + /* Static Data Members */ + /*---------------------------------------------------------------------------------*/ + + static constexpr size_t NUM_VERTICES = 8; + + /*---------------------------------------------------------------------------------*/ + /* Constructors & Destructor */ + /*---------------------------------------------------------------------------------*/ + + ~SHAABB () noexcept = default; + + SHAABB () noexcept; + SHAABB (const SHVec3& center, const SHVec3& halfExtents) noexcept; + SHAABB (const SHAABB& rhs) noexcept; + SHAABB (SHAABB&& rhs) noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Operator Overloads */ + /*---------------------------------------------------------------------------------*/ + + SHAABB& operator= (const SHAABB& rhs) noexcept; + SHAABB& operator= (SHAABB&& rhs) noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Getter Functions */ + /*---------------------------------------------------------------------------------*/ + + [[nodiscard]] SHVec3 GetCenter () const noexcept; + [[nodiscard]] SHVec3 GetExtents () const noexcept; + [[nodiscard]] SHVec3 GetMin () const noexcept; + [[nodiscard]] SHVec3 GetMax () const noexcept; + [[nodiscard]] std::vector GetVertices () const noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Setter Functions */ + /*---------------------------------------------------------------------------------*/ + + void SetCenter (const SHVec3& newCenter) noexcept; + void SetExtents (const SHVec3& newExtents) noexcept; + void SetMin (const SHVec3& min) noexcept; + void SetMax (const SHVec3& max) noexcept; + void SetMinMax (const SHVec3& min, const SHVec3& max) noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Member Functions */ + /*---------------------------------------------------------------------------------*/ + + /** + * @brief + * Checks if a point is inside the aabb. + * @param point + * The point to check. + * @return + * True if the point is inside the aabb. + */ + [[nodiscard]] bool TestPoint (const SHVec3& point) const noexcept; + + /** + * @brief + * Casts a ray against the aabb. + * @param ray + * The ray to cast. + * @return + * The result of the raycast.
+ * See the corresponding header for the contents of the raycast result object. + */ + [[nodiscard]] SHRaycastResult Raycast (const SHRay& ray) const noexcept; + + /** + * @brief + * Checks if an entire other aabb is contained by this aabb. + * @param rhs + * The aabb to check. + * @return + * True if the other sphere is completely contained by this aabb. + */ + [[nodiscard]] bool Contains (const SHAABB& rhs) const noexcept; + + /** + * @brief + * Calculates the volume of the aabb. + */ + [[nodiscard]] float Volume () const noexcept; + + /** + * @brief + * Calculates the surface area of the aabb. + */ + [[nodiscard]] float SurfaceArea () const noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Static Member Functions */ + /*---------------------------------------------------------------------------------*/ + + /** + * @brief + * Combines two aabbs to form a larger aabb. + * If one aabb is completely contained by the other, the result is the larger aabb. + * @return + * The combined aabb. + */ + [[nodiscard]] static SHAABB Combine (const SHAABB& lhs, const SHAABB& rhs) noexcept; + + /** + * @brief + * Checks if two aabbs are intersecting. + * @return + * True if they are intersecting. + */ + [[nodiscard]] static bool Intersect (const SHAABB& lhs, const SHAABB& rhs) noexcept; + + /** + * @brief + * Builds a single aabb from multiple aabbs. + * @param spheres + * The set of aabbs to build from. + * @param numSpheres + * The number of aabbs in the set to build from. + * @return + * An aabb that contains all the spheres in the set. + */ + [[nodiscard]] static SHAABB BuildFromBoxes (const SHAABB* boxes, size_t numBoxes) noexcept; + + /** + * @brief + * Builds a aabb from a set of vertices. + * @param vertices + * The vertices to build a aabb from. + * @param numVertices + * The number of vertices in the set to build from. + * @param stride + * The stride between each vertex, in the instance there is data in between each + * vertex that does not define the geometry of the object. + * @return + * An aabb that contains all the vertices in the set. + */ + [[nodiscard]] static SHAABB BuildFromVertices (const SHVec3* vertices, size_t numVertices, size_t stride = 0) noexcept; + }; + + +} // namespace SHADE \ No newline at end of file diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.cpp b/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.cpp index e45d6ef3..6b6921f8 100644 --- a/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.cpp +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.cpp @@ -1,5 +1,5 @@ /**************************************************************************************** - * \file SHBoxCollisionShape.cpp + * \file SHBox.cpp * \author Diren D Bharwani, diren.dbharwani, 390002520 * \brief Implementation for a Box Collision Shape. * @@ -34,10 +34,6 @@ namespace SHADE dynamic_cast(rp3dCollider->getCollisionShape())->setHalfExtents(SHVec3::One * 0.5f); } - /*-----------------------------------------------------------------------------------*/ - /* Operator Overload Definitions */ - /*-----------------------------------------------------------------------------------*/ - /*-----------------------------------------------------------------------------------*/ /* Getter Function Definitions */ /*-----------------------------------------------------------------------------------*/ diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.h b/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.h index 7cb425d5..fe7cd40d 100644 --- a/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.h +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHBox.h @@ -40,10 +40,6 @@ namespace SHADE SHBox () noexcept; ~SHBox () override = default; - /*---------------------------------------------------------------------------------*/ - /* Operator Overloads */ - /*---------------------------------------------------------------------------------*/ - /*---------------------------------------------------------------------------------*/ /* Getter Functions */ /*---------------------------------------------------------------------------------*/ diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.cpp b/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.cpp new file mode 100644 index 00000000..767b8507 --- /dev/null +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.cpp @@ -0,0 +1,166 @@ +/**************************************************************************************** + * \file SHCapsule.cpp + * \author Diren D Bharwani, diren.dbharwani, 390002520 + * \brief Implementation for a Capsule Collision Shape. + * + * \copyright 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. +****************************************************************************************/ + +#include + +#include + +// Primary Header +#include "SHCapsule.h" + +// Project Headers +#include "Math/SHMathHelpers.h" +#include "Math/SHMatrix.h" +#include "Physics/Interface/SHColliderComponent.h" + +namespace SHADE +{ + /*-----------------------------------------------------------------------------------*/ + /* Constructors & Destructor Definitions */ + /*-----------------------------------------------------------------------------------*/ + + SHCapsule::SHCapsule() noexcept + : SHCollisionShape ( Type::CAPSULE) + , relativeRadius { 1.0f } + , relativeHeight { 2.0f } + , scale { SHVec3::One } + { + if (rp3dCollider) + { + auto* rp3dCapsule = dynamic_cast(rp3dCollider->getCollisionShape()); + rp3dCapsule->setRadius(0.5f); + rp3dCapsule->setHeight(2.0f); + } + } + + /*-----------------------------------------------------------------------------------*/ + /* Getter Function Definitions */ + /*-----------------------------------------------------------------------------------*/ + + float SHCapsule::GetWorldRadius() const noexcept + { + if (rp3dCollider) + return dynamic_cast(rp3dCollider->getCollisionShape())->getRadius(); + + const float MAX_SCALE = SHMath::Max(scale.x, scale.z); + return relativeRadius * MAX_SCALE * 0.5f; + } + + float SHCapsule::GetRelativeRadius() const noexcept + { + return relativeRadius; + } + + float SHCapsule::GetWorldHeight() const noexcept + { + if (rp3dCollider) + return dynamic_cast(rp3dCollider->getCollisionShape())->getHeight(); + + return relativeHeight * scale.y; + } + + float SHCapsule::GetRelativeHeight() const noexcept + { + return relativeHeight; + } + + SHVec3 SHCapsule::GetWorldCentroid() const noexcept + { + const SHQuaternion ROTATION = collider->GetTransform().orientation * SHQuaternion::FromEuler(rotationOffset); + const SHMatrix TRS = SHMatrix::Rotate(ROTATION) * SHMatrix::Translate(collider->GetTransform().position); + return SHVec3::Transform(positionOffset, TRS); + } + + /*-----------------------------------------------------------------------------------*/ + /* Setter Function Definitions */ + /*-----------------------------------------------------------------------------------*/ + + void SHCapsule::SetWorldRadius(float newWorldRadius) noexcept + { + if (rp3dCollider) + dynamic_cast(rp3dCollider->getCollisionShape())->setRadius(newWorldRadius); + + // Recompute Relative radius + const float MAX_SCALE = SHMath::Max(scale.x, scale.z); + relativeRadius = 2.0f * newWorldRadius / MAX_SCALE; + } + + void SHCapsule::SetRelativeRadius(float newRelativeRadius) noexcept + { + relativeRadius = newRelativeRadius; + + // Recompute world radius + if (rp3dCollider) + { + auto* rp3dCapsule = dynamic_cast(rp3dCollider->getCollisionShape()); + + const float MAX_SCALE = SHMath::Max(scale.x, scale.z); + rp3dCapsule->setRadius(relativeRadius * MAX_SCALE * 0.5f); + } + } + + void SHCapsule::SetWorldHeight(float newWorldHeight) noexcept + { + if (rp3dCollider) + dynamic_cast(rp3dCollider->getCollisionShape())->setHeight(newWorldHeight); + + relativeHeight = newWorldHeight / scale.y; + } + + void SHCapsule::SetRelativeHeight(float newRelativeHeight) noexcept + { + relativeHeight = newRelativeHeight; + + if (rp3dCollider) + dynamic_cast(rp3dCollider->getCollisionShape())->setHeight(relativeHeight * scale.y); + } + + void SHCapsule::SetScale(const SHVec3& newScale) noexcept + { + scale = SHVec3::Abs(newScale); + + // Recompute world radius & Height + if (rp3dCollider) + { + // Get max scale component + const float MAX_SCALE = SHMath::Max(scale.x, scale.z); + + auto* rp3dCapsule = dynamic_cast(rp3dCollider->getCollisionShape()); + rp3dCapsule->setRadius(relativeRadius * MAX_SCALE * 0.5f); + rp3dCapsule->setHeight(relativeHeight * scale.y); + } + } + + /*-----------------------------------------------------------------------------------*/ + /* Public Member Function Definitions */ + /*-----------------------------------------------------------------------------------*/ + + void SHCapsule::Update() noexcept + { + const SHTransform& PARENT_TRANSFORM = collider->GetTransform(); + SetScale(PARENT_TRANSFORM.scale); + + SHCollisionShape::Update(); + } + + SHMatrix SHCapsule::GetTRS() const noexcept + { + // The scale of a Capsule would probably be the radius set in the x and z axis, with the height set in the y axis. + // Arbitrary for debug drawing as we specify the position, rotation, height and radius instead. + + const SHQuaternion ROTATION = collider->GetTransform().orientation * SHQuaternion::FromEuler(rotationOffset); + const SHVec3 SCALE = SHVec3{ GetWorldRadius(), GetWorldHeight(), GetWorldRadius() }; + + const SHMatrix TRS = SHMatrix::Rotate(ROTATION) * SHMatrix::Translate(collider->GetTransform().position); + const SHVec3 POSITION = SHVec3::Transform(positionOffset, TRS); + + return SHMatrix::Transform(POSITION, ROTATION, SCALE); + } +} // namespace SHADE \ No newline at end of file diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.h b/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.h new file mode 100644 index 00000000..06d5fffb --- /dev/null +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHCapsule.h @@ -0,0 +1,82 @@ +/**************************************************************************************** + * \file SHCapsule.h + * \author Diren D Bharwani, diren.dbharwani, 390002520 + * \brief Interface for a Capsule Collision Shape. + * + * \copyright 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 Headers +#include "SHCollisionShape.h" + +namespace SHADE +{ + /*-----------------------------------------------------------------------------------*/ + /* Type Definitions */ + /*-----------------------------------------------------------------------------------*/ + + /** + * @brief + * Encapsulate a Capsule Shape used for Physics Simulations. + */ + class SH_API SHCapsule final : public SHCollisionShape + { + private: + /*---------------------------------------------------------------------------------*/ + /* Friends */ + /*---------------------------------------------------------------------------------*/ + + friend class SHColliderComponent; + + public: + /*---------------------------------------------------------------------------------*/ + /* Constructors & Destructor */ + /*---------------------------------------------------------------------------------*/ + + SHCapsule () noexcept; + ~SHCapsule () override = default; + + /*---------------------------------------------------------------------------------*/ + /* Getter Functions */ + /*---------------------------------------------------------------------------------*/ + + [[nodiscard]] float GetWorldRadius () const noexcept; + [[nodiscard]] float GetRelativeRadius () const noexcept; + [[nodiscard]] float GetWorldHeight () const noexcept; + [[nodiscard]] float GetRelativeHeight () const noexcept; + + [[nodiscard]] SHVec3 GetWorldCentroid () const noexcept override; + + /*---------------------------------------------------------------------------------*/ + /* Setter Functions */ + /*---------------------------------------------------------------------------------*/ + + void SetWorldRadius (float newWorldRadius) noexcept; + void SetRelativeRadius (float newRelativeRadius) noexcept; + void SetWorldHeight (float newWorldHeight) noexcept; + void SetRelativeHeight (float newRelativeHeight) noexcept; + void SetScale (const SHVec3& newScale) noexcept; + + /*---------------------------------------------------------------------------------*/ + /* Function Members */ + /*---------------------------------------------------------------------------------*/ + + void Update () noexcept override; + [[nodiscard]] SHMatrix GetTRS () const noexcept override; + + private: + /*---------------------------------------------------------------------------------*/ + /* Data Members */ + /*---------------------------------------------------------------------------------*/ + + float relativeRadius; + float relativeHeight; + SHVec3 scale; + }; + + +} // namespace SHADE \ No newline at end of file diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.cpp b/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.cpp index bd67d42f..7cd8bd4d 100644 --- a/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.cpp +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.cpp @@ -237,9 +237,9 @@ RTTR_REGISTRATION registration::enumeration("Collider Type") ( + value("Sphere", SHCollisionShape::Type::SPHERE), value("Box", SHCollisionShape::Type::BOX), - value("Sphere", SHCollisionShape::Type::SPHERE) - // TODO(Diren): Add More Shapes + value("Capsule", SHCollisionShape::Type::CAPSULE) ); registration::class_("Collider") diff --git a/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.h b/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.h index 8c5fdc22..c7fb7156 100644 --- a/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.h +++ b/SHADE_Engine/src/Physics/Collision/Shapes/SHCollisionShape.h @@ -53,6 +53,7 @@ namespace SHADE { SPHERE , BOX + , CAPSULE , COUNT , INVALID = -1 diff --git a/SHADE_Engine/src/Physics/Interface/PhysicsObject/SHPhysicsObjectManager.cpp b/SHADE_Engine/src/Physics/Interface/PhysicsObject/SHPhysicsObjectManager.cpp index b22741e9..4043d88d 100644 --- a/SHADE_Engine/src/Physics/Interface/PhysicsObject/SHPhysicsObjectManager.cpp +++ b/SHADE_Engine/src/Physics/Interface/PhysicsObject/SHPhysicsObjectManager.cpp @@ -18,6 +18,7 @@ #include "Physics/Collision/CollisionTags/SHCollisionTagMatrix.h" #include "Physics/Collision/Shapes/SHSphere.h" #include "Physics/Collision/Shapes/SHBox.h" +#include "Physics/Collision/Shapes/SHCapsule.h" #include "Physics/Interface/SHColliderComponent.h" #include "Physics/Interface/SHRigidBodyComponent.h" #include "Tools/Utilities/SHUtilities.h" @@ -228,7 +229,7 @@ namespace SHADE { SHColliderDef::ShapeDef shapeDef { - .type = shape->GetType() + .type = shape->GetType() }; colliderDef.shapes.emplace_back(shapeDef); @@ -297,6 +298,7 @@ namespace SHADE rigidBodyComponent->SetInterpolate (rigidBodyComponent->IsInterpolating()); rigidBodyComponent->SetDrag (rigidBodyComponent->GetDrag()); rigidBodyComponent->SetAngularDrag (rigidBodyComponent->GetAngularDrag()); + rigidBodyComponent->SetGravityScale (rigidBodyComponent->GetGravityScale()); rigidBodyQueue.pop(); } @@ -367,6 +369,22 @@ namespace SHADE break; } + case SHCollisionShape::Type::CAPSULE: + { + auto* capsuleShape = dynamic_cast(collisionShape); + + const float MAX_SCALE = SHMath::Max({ colliderComponent->transform.scale.x, colliderComponent->transform.scale.y, colliderComponent->transform.scale.z }); + const float WORLD_RADIUS = capsuleShape->GetRelativeRadius() * MAX_SCALE * 0.5f; + const float WORLD_HEIGHT = capsuleShape->GetRelativeHeight() * colliderComponent->transform.scale.y; + + rp3d::CapsuleShape* rp3dCapsule = factory->createCapsuleShape(WORLD_RADIUS, WORLD_HEIGHT); + + const rp3d::Transform OFFSETS{ capsuleShape->GetPositionOffset(), SHQuaternion::FromEuler(capsuleShape->GetRotationOffset()) }; + capsuleShape->rp3dCollider = physicsObject->body->addCollider(rp3dCapsule, OFFSETS); + capsuleShape->rp3dCollider->setIsTrigger(capsuleShape->IsTrigger()); + + break; + } default: break; } diff --git a/SHADE_Engine/src/Physics/Interface/SHColliderComponent.cpp b/SHADE_Engine/src/Physics/Interface/SHColliderComponent.cpp index 895f57d0..9cefe40e 100644 --- a/SHADE_Engine/src/Physics/Interface/SHColliderComponent.cpp +++ b/SHADE_Engine/src/Physics/Interface/SHColliderComponent.cpp @@ -20,6 +20,7 @@ #include "Physics/SHPhysicsEvents.h" #include "Physics/Collision/Shapes/SHSphere.h" #include "Physics/Collision/Shapes/SHBox.h" +#include "Physics/Collision/Shapes/SHCapsule.h" namespace SHADE { @@ -232,6 +233,49 @@ namespace SHADE return static_cast(NEW_INDEX); } + int SHColliderComponent::AddCapsuleCollisionShape(float relativeRadius, float relativeHeight, const SHVec3& posOffset, const SHVec3& rotOffset) + { + const uint32_t NEW_INDEX = static_cast(shapes.size()); + + // Create collision shape + shapes.emplace_back(new SHCapsule{}); + auto* newCapsule = dynamic_cast(shapes.back()); + + newCapsule->collider = this; + newCapsule->positionOffset = posOffset; + newCapsule->rotationOffset = rotOffset; + newCapsule->relativeRadius = relativeRadius; + newCapsule->relativeHeight = relativeHeight; + newCapsule->scale = SHVec3::Abs(transform.scale); + + // Broadcast Event for adding a shape + const SHPhysicsColliderAddedEvent EVENT_DATA + { + .entityID = GetEID() + , .colliderType = SHCollisionShape::Type::CAPSULE + , .colliderIndex = static_cast(NEW_INDEX) + }; + + SHEventManager::BroadcastEvent(EVENT_DATA, SH_PHYSICS_COLLIDER_ADDED_EVENT); + + if (factory) + { + const float MAX_SCALE = SHMath::Max(newCapsule->scale.x, newCapsule->scale.z); + const float WORLD_RADIUS = relativeRadius * MAX_SCALE * 0.5f; + const float WORLD_HEIGHT = relativeHeight * newCapsule->scale.y; + + rp3d::CapsuleShape* rp3dCapsule = factory->createCapsuleShape(WORLD_RADIUS, WORLD_HEIGHT); + + const rp3d::Transform OFFSETS{ posOffset, SHQuaternion::FromEuler(rotOffset) }; + newCapsule->rp3dCollider = collisionBody->addCollider(rp3dCapsule, OFFSETS); + + dynamic_cast(collisionBody)->updateMassPropertiesFromColliders(); + } + + return static_cast(NEW_INDEX); + } + + void SHColliderComponent::RemoveCollisionShape(int index) { const int NUM_SHAPES = static_cast(shapes.size()); diff --git a/SHADE_Engine/src/Physics/Interface/SHColliderComponent.h b/SHADE_Engine/src/Physics/Interface/SHColliderComponent.h index 9a141964..1ec534cb 100644 --- a/SHADE_Engine/src/Physics/Interface/SHColliderComponent.h +++ b/SHADE_Engine/src/Physics/Interface/SHColliderComponent.h @@ -142,6 +142,24 @@ namespace SHADE */ int AddBoxCollisionShape (const SHVec3& relativeExtents, const SHVec3& posOffset = SHVec3::Zero, const SHVec3& rotOffset = SHVec3::Zero); + /** + * @brief + * Adds a capsule collision shape. + * @param relativeRadius + * The relative radius is constructed with respect to the world scale.
+ * Radius = max(scale.x, scale.y, scale.z) * 0.5 * relativeRadius + * @param relativeHeight + * The relative height is constructed with respect to the scale in the y-axis
+ * Height = relativeHeight * scale.y + * @param posOffset + * The position offset of the box from the center of the collider. Defaults to a Zero Vector. + * @param rotOffset + * The rotation offset of the box from the rotation of the collider. Defaults to a Zero Vector. + * @return + * The index of the newly added shape. + */ + int AddCapsuleCollisionShape (float relativeRadius, float relativeHeight, const SHVec3& posOffset = SHVec3::Zero, const SHVec3& rotOffset = SHVec3::Zero); + /** * @brief * Removes a shape from the container. Removal reduces the size of the container. diff --git a/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.cpp b/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.cpp index ee4db90d..85c798db 100644 --- a/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.cpp +++ b/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.cpp @@ -114,6 +114,11 @@ namespace SHADE return angularDrag; } + float SHRigidBodyComponent::GetGravityScale() const noexcept + { + return gravityScale; + } + SHVec3 SHRigidBodyComponent::GetForce() const noexcept { return rigidBody ? SHVec3{ rigidBody->getForce() } : SHVec3::Zero; @@ -297,6 +302,15 @@ namespace SHADE rigidBody->setAngularDamping(newAngularDrag); } + void SHRigidBodyComponent::SetGravityScale(float newGravityScale) noexcept + { + gravityScale = newGravityScale; + + if (rigidBody) + rigidBody->setGravityScale(newGravityScale); + } + + void SHRigidBodyComponent::SetLinearVelocity(const SHVec3& newLinearVelocity) noexcept { if (type == Type::STATIC) @@ -408,6 +422,7 @@ RTTR_REGISTRATION .property("Type" , &SHRigidBodyComponent::GetType , &SHRigidBodyComponent::SetType ) .property("Drag" , &SHRigidBodyComponent::GetDrag , &SHRigidBodyComponent::SetDrag ) .property("Angular Drag" , &SHRigidBodyComponent::GetAngularDrag , &SHRigidBodyComponent::SetAngularDrag ) + .property("Gravity Scale" , &SHRigidBodyComponent::GetGravityScale , &SHRigidBodyComponent::SetGravityScale ) .property("Use Gravity" , &SHRigidBodyComponent::IsGravityEnabled , &SHRigidBodyComponent::SetGravityEnabled ) .property("Interpolate" , &SHRigidBodyComponent::IsInterpolating , &SHRigidBodyComponent::SetInterpolate ) .property("Sleeping Enabled" , &SHRigidBodyComponent::IsAllowedToSleep , &SHRigidBodyComponent::SetIsAllowedToSleep) diff --git a/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.h b/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.h index 6332d1e6..a1cbe786 100644 --- a/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.h +++ b/SHADE_Engine/src/Physics/Interface/SHRigidBodyComponent.h @@ -93,6 +93,7 @@ namespace SHADE [[nodiscard]] float GetMass () const noexcept; [[nodiscard]] float GetDrag () const noexcept; [[nodiscard]] float GetAngularDrag () const noexcept; + [[nodiscard]] float GetGravityScale () const noexcept; [[nodiscard]] SHVec3 GetForce () const noexcept; [[nodiscard]] SHVec3 GetTorque () const noexcept; @@ -123,6 +124,7 @@ namespace SHADE void SetDrag (float newDrag) noexcept; void SetAngularDrag (float newAngularDrag) noexcept; + void SetGravityScale (float newGravityScale) noexcept; void SetLinearVelocity (const SHVec3& newLinearVelocity) noexcept; void SetAngularVelocity (const SHVec3& newAngularVelocity) noexcept; @@ -173,6 +175,7 @@ namespace SHADE // Used for storing serialised data uint8_t flags; // aZ aY aX lZ lY lX sleepEnabled gravity + float gravityScale; float drag; float angularDrag; diff --git a/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.cpp b/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.cpp similarity index 98% rename from SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.cpp rename to SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.cpp index 85e76702..82a9aa26 100644 --- a/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.cpp +++ b/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.cpp @@ -11,7 +11,7 @@ #include // Primary Header -#include "SHPhysicsWorld.h" +#include "SHPhysicsWorldState.h" namespace SHADE { diff --git a/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.h b/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.h similarity index 89% rename from SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.h rename to SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.h index 09a2b260..40483a8c 100644 --- a/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorld.h +++ b/SHADE_Engine/src/Physics/RP3DWrapper/SHPhysicsWorldState.h @@ -1,7 +1,7 @@ /**************************************************************************************** - * \file SHPhysicsWorld.h + * \file SHPhysicsWorldState.h * \author Diren D Bharwani, diren.dbharwani, 390002520 - * \brief Interface for a Physics World. + * \brief Interface for a Physics World State. * * \copyright Copyright (C) 2022 DigiPen Institute of Technology. Reproduction or * disclosure of this file or its contents without the prior written consent @@ -14,6 +14,7 @@ // Project Headers #include "Math/Vector/SHVec3.h" +#include "Physics/SHPhysicsConstants.h" namespace SHADE { @@ -37,8 +38,8 @@ namespace SHADE /*-------------------------------------------------------------------------------*/ SHVec3 gravity = SHVec3{ 0.0f, -9.81f, 0.0f }; - uint16_t numVelocitySolverIterations = 10; - uint16_t numPositionSolverIterations = 5; + uint16_t numVelocitySolverIterations = SHPhysicsConstants::DEFAULT_VELOCITY_ITERATIONS; + uint16_t numPositionSolverIterations = SHPhysicsConstants::DEFAULT_POSITION_ITERATIONS; bool sleepingEnabled = true; }; diff --git a/SHADE_Engine/src/Physics/SHPhysicsConstants.h b/SHADE_Engine/src/Physics/SHPhysicsConstants.h new file mode 100644 index 00000000..072c7755 --- /dev/null +++ b/SHADE_Engine/src/Physics/SHPhysicsConstants.h @@ -0,0 +1,23 @@ +/**************************************************************************************** + * \file SHPhysicsConstants.h + * \author Diren D Bharwani, diren.dbharwani, 390002520 + * \brief Declaration of Constants used for physics simulations + * + * \copyright 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 + +namespace SHADE +{ + struct SHPhysicsConstants + { + static constexpr double DEFAULT_FIXED_DT = 1.0 / 60.0; + static constexpr double DEFAULT_FIXED_UPDATE_RATE = 60.0; + + static constexpr int DEFAULT_VELOCITY_ITERATIONS = 10; + static constexpr int DEFAULT_POSITION_ITERATIONS = 5; + }; +} diff --git a/SHADE_Engine/src/Physics/System/Routines/SHPhysicsPostUpdateRoutine.cpp b/SHADE_Engine/src/Physics/System/Routines/SHPhysicsPostUpdateRoutine.cpp index 740df811..3dfe169a 100644 --- a/SHADE_Engine/src/Physics/System/Routines/SHPhysicsPostUpdateRoutine.cpp +++ b/SHADE_Engine/src/Physics/System/Routines/SHPhysicsPostUpdateRoutine.cpp @@ -105,14 +105,14 @@ namespace SHADE * TODO: Test if the scene graph transforms abides by setting world position. Collisions will ignore the scene graph hierarchy. */ } + + // Collision & Trigger messages + if (scriptingSystem != nullptr) + scriptingSystem->ExecuteCollisionFunctions(); + + // Since this function never runs when editor in not in play, execute the function anyway + physicsSystem->collisionListener.CleanContainers(); } - - // Collision & Trigger messages - if (scriptingSystem != nullptr) - scriptingSystem->ExecuteCollisionFunctions(); - - // Since this function never runs when editor in not in play, execute the function anyway - physicsSystem->collisionListener.CleanContainers(); } } // namespace SHADE \ No newline at end of file diff --git a/SHADE_Engine/src/Physics/System/Routines/SHPhysicsUpdateRoutine.cpp b/SHADE_Engine/src/Physics/System/Routines/SHPhysicsUpdateRoutine.cpp index d4f6d623..828f1eea 100644 --- a/SHADE_Engine/src/Physics/System/Routines/SHPhysicsUpdateRoutine.cpp +++ b/SHADE_Engine/src/Physics/System/Routines/SHPhysicsUpdateRoutine.cpp @@ -16,6 +16,7 @@ // Project Headers #include "ECS_Base/Managers/SHSystemManager.h" #include "Scripting/SHScriptEngine.h" +#include "Math/SHMath.h" namespace SHADE { @@ -42,6 +43,10 @@ namespace SHADE } const double FIXED_DT = physicsSystem->fixedDT; + + if (SHMath::CompareFloat(FIXED_DT, 0.0)) + return; + accumulatedTime += dt; int count = 0; diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.cpp b/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.cpp index cff3933e..8fde0249 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.cpp +++ b/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.cpp @@ -17,6 +17,7 @@ #include "ECS_Base/Managers/SHSystemManager.h" #include "Math/Transform/SHTransformComponent.h" #include "Physics/SHPhysicsEvents.h" +#include "Physics/Collision/Shapes/SHCapsule.h" #include "Tools/Utilities/SHUtilities.h" namespace SHADE @@ -88,11 +89,6 @@ namespace SHADE } - void SHPhysicsDebugDrawSystem::AddRaycast(const SHRay& ray, const SHPhysicsRaycastResult& result) noexcept - { - - } - /*-----------------------------------------------------------------------------------*/ /* Private Function Member Definitions */ /*-----------------------------------------------------------------------------------*/ @@ -139,10 +135,19 @@ namespace SHADE debugDrawSystem->DrawWireCube(SHAPE->GetTRS(), DRAW_COLOUR, true); break; } - //case SHCollisionShape::Type::CAPSULE: - //{ - // break; - //} + case SHCollisionShape::Type::CAPSULE: + { + + const auto* CAPSULE_SHAPE = dynamic_cast(SHAPE); + + SHVec3 position, scale; + SHQuaternion rotation; + SHAPE->GetTRS().Decompose(position, rotation, scale); + + debugDrawSystem->DrawWireCapsule(position, rotation, CAPSULE_SHAPE->GetWorldHeight(), CAPSULE_SHAPE->GetWorldRadius(), DRAW_COLOUR, true); + + break; + } default: break; } } diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.h b/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.h index 8c2c9b78..252ff682 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.h +++ b/SHADE_Engine/src/Physics/System/SHPhysicsDebugDrawSystem.h @@ -64,8 +64,6 @@ namespace SHADE void Init () override; void Exit () override; - void AddRaycast (const SHRay& ray, const SHPhysicsRaycastResult& result) noexcept; - /*---------------------------------------------------------------------------------*/ /* System Routines */ /*---------------------------------------------------------------------------------*/ @@ -119,13 +117,11 @@ namespace SHADE /* Data Members */ /*---------------------------------------------------------------------------------*/ - static constexpr uint8_t ACTIVE_FLAG = 0x01; + static constexpr uint8_t ACTIVE_FLAG = 0x01; + static const SHColour DEBUG_DRAW_COLOURS[static_cast(Colours::COUNT)]; - static const SHColour DEBUG_DRAW_COLOURS[static_cast(Colours::COUNT)]; - - // 0 0 0 drawBroadphase drawRaycasts drawContacts drawAllColliders debugDrawActive + // 0 0 0 0 drawRaycasts drawContacts drawAllColliders debugDrawActive uint8_t flags; - Colliders collidersToDraw; /*---------------------------------------------------------------------------------*/ @@ -133,9 +129,7 @@ namespace SHADE /*---------------------------------------------------------------------------------*/ SHEventHandle onColliderDraw(SHEventPtr onColliderDrawEvent); - - static void drawCollider (SHDebugDrawSystem* debugDrawSystem, const SHColliderComponent& collider) noexcept; - static void drawRaycast (SHDebugDrawSystem* debugDrawSystem, const DebugDrawInfo::Raycast& raycastInfo) noexcept; + static void drawCollider (SHDebugDrawSystem* debugDrawSystem, const SHColliderComponent& collider) noexcept; }; diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsSystem.cpp b/SHADE_Engine/src/Physics/System/SHPhysicsSystem.cpp index 5468147a..787a9f78 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsSystem.cpp +++ b/SHADE_Engine/src/Physics/System/SHPhysicsSystem.cpp @@ -34,7 +34,7 @@ namespace SHADE SHPhysicsSystem::SHPhysicsSystem() noexcept : worldUpdated { false } , interpolationFactor { 0.0 } - , fixedDT { DEFAULT_FIXED_STEP } + , fixedDT { SHPhysicsConstants::DEFAULT_FIXED_DT } { // Add more events here to register them @@ -73,6 +73,26 @@ namespace SHADE return collisionListener.GetTriggerInfoContainer(); } + const SHVec3& SHPhysicsSystem::GetGravity() const noexcept + { + return worldState.settings.gravity; + } + + uint16_t SHPhysicsSystem::GetNumVelocityIterations() const noexcept + { + return worldState.settings.numVelocitySolverIterations; + } + + uint16_t SHPhysicsSystem::GetNumPositionIterations() const noexcept + { + return worldState.settings.numPositionSolverIterations; + } + + bool SHPhysicsSystem::IsSleepingEnabled() const noexcept + { + return worldState.settings.sleepingEnabled; + } + /*-----------------------------------------------------------------------------------*/ /* Setter Function Definitions */ /*-----------------------------------------------------------------------------------*/ @@ -97,7 +117,7 @@ namespace SHADE void SHPhysicsSystem::SetFixedDT(double fixedDt) noexcept { - if (fixedDt <= 0.0) + if (fixedDt < 0.0) { SHLOGV_WARNING("Invalid value for setting fixed delta time! Fixed delta time unchanged.") return; @@ -112,6 +132,30 @@ namespace SHADE } } + void SHPhysicsSystem::SetGravity(const SHVec3& gravity) noexcept + { + worldState.settings.gravity = gravity; + worldState.UpdateSettings(); + } + + void SHPhysicsSystem::SetNumVelocityIterations(uint16_t value) noexcept + { + worldState.settings.numVelocitySolverIterations = value; + worldState.UpdateSettings(); + } + + void SHPhysicsSystem::SetNumPositionIterations(uint16_t value) noexcept + { + worldState.settings.numPositionSolverIterations = value; + worldState.UpdateSettings(); + } + + void SHPhysicsSystem::EnableSleeping(bool sleepingAllowed) noexcept + { + worldState.settings.sleepingEnabled = sleepingAllowed; + worldState.UpdateSettings(); + } + /*-----------------------------------------------------------------------------------*/ /* Public Function Member Definitions */ /*-----------------------------------------------------------------------------------*/ @@ -167,6 +211,159 @@ namespace SHADE return results; } + bool SHPhysicsSystem::TestAABBOverlap(const SHAABB& aabb, uint16_t layers) + { + if (!worldState.world) + { + SHLOG_ERROR("Cannot test AABB overlap without a physics world!") + return false; + } + + // Create a temporary collider to test against the world + auto* tempRP3DBody = worldState.world->createCollisionBody(rp3d::Transform { aabb.GetCenter(), SHQuaternion::Identity }); + auto* tempRP3DBox = factory.createBoxShape(aabb.GetExtents()); + auto* tempRP3DCollider = tempRP3DBody->addCollider(tempRP3DBox, rp3d::Transform{}); + tempRP3DCollider->setCollisionCategoryBits(layers); + tempRP3DCollider->setCollideWithMaskBits(layers); + + // Test the temp collider against the world + const bool IS_COLLIDING = worldState.world->testOverlap(tempRP3DBody); + + tempRP3DBody->removeCollider(tempRP3DCollider); + factory.destroyBoxShape(tempRP3DBox); + worldState.world->destroyCollisionBody(tempRP3DBody); + + return IS_COLLIDING; + } + + void SHPhysicsSystem::SimulateBody(std::vector& positions, std::vector& orientations, const SimulateBodyInfo& simInfo) + { + // Check for a valid rigidbody + const auto* rigidBody = SHComponentManager::GetComponent_s(simInfo.bodyEID); + if (!rigidBody) + { + SHLOG_WARNING("Entity {} does not have a rigid body to simulate!", simInfo.bodyEID) + return; + } + + // Ignore non-dynamic bodies + if (rigidBody->type != SHRigidBodyComponent::Type::DYNAMIC) + { + SHLOG_WARNING("Entity {} is not a dynamic body. We cannot simulate non-dynamic bodies!", simInfo.bodyEID) + return; + } + + // Prepare simulation info (I'm basically declaring an entire body here) + SHVec3 bodyPosition = rigidBody->GetPosition(); + SHQuaternion bodyOrientation = SHQuaternion::FromEuler(rigidBody->GetRotation()); + SHVec3 linearVelocity = rigidBody->GetLinearVelocity(); + SHVec3 angularVelocity = rigidBody->GetAngularVelocity(); + float invMass = 1.0f / rigidBody->GetMass(); + SHVec3 localInvInertia = rigidBody->rigidBody->getLocalInertiaTensor(); + SHVec3 worldInvInertia = SHVec3::One; + SHVec3 localCentroid = rigidBody->rigidBody->getLocalCenterOfMass(); + SHVec3 worldCentroid = SHVec3::One; + SHVec3 appliedForce = simInfo.force; + SHVec3 appliedTorque = simInfo.torque; + SHVec3 accumulatedForce = SHVec3::Zero; + SHVec3 accumulatedTorque = SHVec3::Zero; + + const SHVec3& LINEAR_LOCK = rigidBody->rigidBody->getLinearLockAxisFactor(); + const SHVec3& ANGULAR_LOCK = rigidBody->rigidBody->getAngularLockAxisFactor(); + + // Invert the inertia + for (size_t i = 0; i < SHVec3::SIZE; ++i) + localInvInertia[i] = 1.0f / localInvInertia[i]; + + + // Build raycast layer from colliders. If none exist....then this never stops simulating technically. + // I'm too lazy to handle that case, so I'll just throw an error. + uint16_t raycastLayers = 0; + if (const auto* colliders = SHComponentManager::GetComponent_s(simInfo.bodyEID); colliders) + { + const auto& shapes = colliders->GetCollisionShapes(); + for (auto& shape : shapes) + raycastLayers |= shape->GetCollisionTag().GetMask(); + } + else + { + SHLOG_WARNING("Unable to simulate body {} without a collider (it will simulate forever!)", simInfo.bodyEID) + return; + } + + // Raycast direction is always in the direction of the linear velocity + // Raycast distance is the length of the velocity + SHRaycaster::RaycastInfo raycastInfo; + raycastInfo.continuous = false; + raycastInfo.layers = raycastLayers; + + bool terminate = true; + do + { + raycastInfo.distance = linearVelocity.Length(); + raycastInfo.ray.position = bodyPosition; + raycastInfo.ray.direction = SHVec3::Normalise(linearVelocity); + + terminate = !Raycast(raycastInfo).empty(); + if (terminate) + break; + + // Compute world space data + const SHMatrix R = SHMatrix::Rotate(bodyOrientation); + const SHMatrix RT = SHMatrix::Transpose(R); + + SHMatrix localInertiaTensor = SHMatrix::Identity; + + // Set the diagonals + localInertiaTensor.m[0][0] = localInvInertia.x; + localInertiaTensor.m[1][1] = localInvInertia.y; + localInertiaTensor.m[2][2] = localInvInertia.z; + + localInertiaTensor *= RT; + const SHVec3 DIAGONALS { localInertiaTensor.m[0][0], localInertiaTensor.m[1][1], localInertiaTensor.m[2][2] }; + + worldInvInertia = R * DIAGONALS; + + // Compute world centroid + worldCentroid = (R * localCentroid) + bodyPosition; + + // Apply forces + accumulatedForce += appliedForce; + angularVelocity += worldInvInertia * SHVec3::Cross(bodyPosition + simInfo.forceOffset, simInfo.force); + accumulatedTorque += appliedTorque; + + // Integrate Velocities + // Integrate forces and gravity into linear velocity + const SHVec3 LINEAR_ACCELERATION = accumulatedForce * invMass; + const SHVec3 GRAVITATIONAL_ACCELERATION = rigidBody->IsGravityEnabled() ? worldState.settings.gravity * rigidBody->GetGravityScale() : SHVec3::Zero; + + linearVelocity += (LINEAR_ACCELERATION + GRAVITATIONAL_ACCELERATION) * simInfo.timeStep * LINEAR_LOCK; + angularVelocity += worldInvInertia * (accumulatedTorque * simInfo.timeStep); + + // Apply drag (exponentially applied) + linearVelocity *= 1.0f / (1.0f + simInfo.timeStep * rigidBody->drag); + angularVelocity *= 1.0f / (1.0f + simInfo.timeStep * rigidBody->angularDrag); + + // Integrate Positions & Orientations + const SHQuaternion QV = SHQuaternion{ angularVelocity.x * simInfo.timeStep, angularVelocity.y * simInfo.timeStep, angularVelocity.z * simInfo.timeStep, 0.0f } * 0.5f; + + bodyPosition += linearVelocity * simInfo.timeStep; + bodyOrientation += bodyOrientation * QV; + bodyOrientation = SHQuaternion::Normalise(bodyOrientation); + + // Clear forces after the first frame + if (!simInfo.continuousForce) + { + accumulatedForce = SHVec3::Zero; + accumulatedTorque = SHVec3::Zero; + appliedForce = SHVec3::Zero; + appliedTorque = SHVec3::Zero; + } + + positions.emplace_back(bodyPosition); + + } while (true); + } /*-----------------------------------------------------------------------------------*/ /* Private Function Member Definitions */ diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsSystem.h b/SHADE_Engine/src/Physics/System/SHPhysicsSystem.h index c80e5d5c..d95203b9 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsSystem.h +++ b/SHADE_Engine/src/Physics/System/SHPhysicsSystem.h @@ -18,9 +18,10 @@ // Project Headers #include "ECS_Base/System/SHSystemRoutine.h" #include "ECS_Base/System/SHFixedSystemRoutine.h" +#include "Math/Geometry/SHAABB.h" #include "Physics/Collision/SHCollisionInfo.h" #include "Physics/Interface/PhysicsObject/SHPhysicsObjectManager.h" -#include "Physics/RP3DWrapper/SHPhysicsWorld.h" +#include "Physics/RP3DWrapper/SHPhysicsWorldState.h" #include "Physics/RP3DWrapper/SHCollisionListener.h" #include "Physics/RP3DWrapper/SHRaycaster.h" #include "Scene/SHSceneGraph.h" @@ -43,31 +44,63 @@ namespace SHADE friend class SHRaycaster; public: - + /*---------------------------------------------------------------------------------*/ + /* Type Definitions */ + /*---------------------------------------------------------------------------------*/ + + /** + * @brief + * Used to simulate the motion of a rigid body until it hits something. + */ + struct SimulateBodyInfo + { + EntityID bodyEID = MAX_EID; + + SHVec3 force = SHVec3::Zero; + SHVec3 forceOffset = SHVec3::Zero; + SHVec3 torque = SHVec3::Zero; + + // Whether or not to clear the force after the first iteration + bool continuousForce = false; + float timeStep = static_cast(SHPhysicsConstants::DEFAULT_FIXED_DT); + }; + /*---------------------------------------------------------------------------------*/ /* Constructors & Destructor */ /*---------------------------------------------------------------------------------*/ SHPhysicsSystem () noexcept; - ~SHPhysicsSystem() noexcept; + ~SHPhysicsSystem() noexcept override; /*---------------------------------------------------------------------------------*/ /* Getter Functions */ /*---------------------------------------------------------------------------------*/ - [[nodiscard]] double GetFixedUpdateRate () const noexcept; - [[nodiscard]] double GetFixedDT () const noexcept; + [[nodiscard]] double GetFixedUpdateRate () const noexcept; + [[nodiscard]] double GetFixedDT () const noexcept; - [[nodiscard]] const std::vector& GetAllTriggerInfo () const noexcept; - [[nodiscard]] const std::vector& GetAllCollisionInfo () const noexcept; + [[nodiscard]] const std::vector& GetAllTriggerInfo () const noexcept; + [[nodiscard]] const std::vector& GetAllCollisionInfo () const noexcept; + + // World Settings + [[nodiscard]] const SHVec3& GetGravity () const noexcept; + [[nodiscard]] uint16_t GetNumVelocityIterations () const noexcept; + [[nodiscard]] uint16_t GetNumPositionIterations () const noexcept; + [[nodiscard]] bool IsSleepingEnabled () const noexcept; /*---------------------------------------------------------------------------------*/ /* Setter Functions */ /*---------------------------------------------------------------------------------*/ - void SetFixedUpdateRate (double fixedUpdateRate) noexcept; - void SetFixedDT (double fixedDt) noexcept; + void SetFixedUpdateRate (double fixedUpdateRate) noexcept; + void SetFixedDT (double fixedDt) noexcept; + + void SetGravity (const SHVec3& gravity) noexcept; + void SetNumVelocityIterations (uint16_t value) noexcept; + void SetNumPositionIterations (uint16_t value) noexcept; + void EnableSleeping (bool sleepingAllowed) noexcept; + /*---------------------------------------------------------------------------------*/ /* Function Members */ /*---------------------------------------------------------------------------------*/ @@ -91,6 +124,30 @@ namespace SHADE */ [[nodiscard]] const std::vector& Raycast(const SHRaycaster::RaycastInfo& info) noexcept; + /** + * \brief + * Tests if an AABB overlaps with anything in the scene. + * \param aabb + * The AABB to test. + * \param layers + * The layer(s) to test the overlap on. Defaults to all layers. + * \return + * True if there is any overlap. + */ + [[nodiscard]] bool TestAABBOverlap(const SHAABB& aabb, uint16_t layers = static_cast(SHCollisionTag::Layer::ALL)); + + /** + * @brief + * Simulates the motion of a body until it collides with something. + * @param positions + * The output vector for the position of the body in each timestep. + * @param orientations + * The output vector for the orientations of the body in each timestep. + * @param simInfo + * The information for simulating the body. + */ + void SimulateBody(std::vector& positions, std::vector& orientations, const SimulateBodyInfo& simInfo); + /*---------------------------------------------------------------------------------*/ /* System Routines */ /*---------------------------------------------------------------------------------*/ diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.cpp b/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.cpp index f1326bed..db8cad4e 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.cpp +++ b/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.cpp @@ -60,6 +60,8 @@ namespace SHADE return 0.0; } + + int SHPhysicsSystemInterface::GetFixedUpdateRate() noexcept { auto* physicsSystem = SHSystemManager::GetSystem(); @@ -70,6 +72,100 @@ namespace SHADE return 0.0; } + SHVec3 SHPhysicsSystemInterface::GetGravity() noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->GetGravity(); + + SHLOGV_WARNING("Failed to get gravity. Zero Vec3 returned instead."); + return SHVec3::Zero; + } + + uint16_t SHPhysicsSystemInterface::GetNumVelocityIterations() noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->GetNumVelocityIterations(); + + SHLOGV_WARNING("Failed to get number of velocity iterations. 0 returned instead."); + return 0; + } + + uint16_t SHPhysicsSystemInterface::GetNumPositionIterations() noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->GetNumPositionIterations(); + + SHLOGV_WARNING("Failed to get number of position iterations. 0 returned instead."); + return 0; + } + + bool SHPhysicsSystemInterface::IsSleepingEnabled() noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->IsSleepingEnabled(); + + SHLOGV_WARNING("Failed to check if sleeping is enabled. False returned instead."); + return false; + } + + void SHPhysicsSystemInterface::SetFixedDT(double fixedDT) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + physicsSystem->SetFixedDT(fixedDT); + + SHLOGV_WARNING("Failed to set fixed delta time."); + } + + void SHPhysicsSystemInterface::SetFixedUpdateRate(double fixedUpdateRate) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->SetFixedUpdateRate(fixedUpdateRate); + + SHLOGV_WARNING("Failed to set fixed update rate."); + } + + void SHPhysicsSystemInterface::SetGravity(const SHVec3& gravity) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->SetGravity(gravity); + + SHLOGV_WARNING("Failed to set gravity."); + } + + void SHPhysicsSystemInterface::SetNumVelocityIterations(uint16_t value) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->SetNumVelocityIterations(value); + + SHLOGV_WARNING("Failed to set number of velocity iterations."); + } + + void SHPhysicsSystemInterface::SetNumPositionIterations(uint16_t value) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->SetNumPositionIterations(value); + + SHLOGV_WARNING("Failed to set number of position iterations."); + } + + void SHPhysicsSystemInterface::EnableSleeping(bool sleepingAllowed) noexcept + { + auto* physicsSystem = SHSystemManager::GetSystem(); + if (physicsSystem) + return physicsSystem->EnableSleeping(sleepingAllowed); + + SHLOGV_WARNING("Failed to set global sleeping state."); + } + const std::vector& SHPhysicsSystemInterface::Raycast(const RaycastInfo& info) noexcept { static std::vector emptyVec; diff --git a/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.h b/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.h index 8815e674..5867f0c2 100644 --- a/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.h +++ b/SHADE_Engine/src/Physics/System/SHPhysicsSystemInterface.h @@ -90,11 +90,23 @@ namespace SHADE /* Static Usage Functions */ /*---------------------------------------------------------------------------------*/ - [[nodiscard]] static const std::vector& GetCollisionInfo () noexcept; - [[nodiscard]] static const std::vector& GetTriggerInfo () noexcept; - [[nodiscard]] static double GetFixedDT () noexcept; - [[nodiscard]] static int GetFixedUpdateRate () noexcept; - [[nodiscard]] static const std::vector& Raycast (const RaycastInfo& info) noexcept; + [[nodiscard]] static const std::vector& GetCollisionInfo () noexcept; + [[nodiscard]] static const std::vector& GetTriggerInfo () noexcept; + [[nodiscard]] static double GetFixedDT () noexcept; + [[nodiscard]] static int GetFixedUpdateRate () noexcept; + [[nodiscard]] static SHVec3 GetGravity () noexcept; + [[nodiscard]] static uint16_t GetNumVelocityIterations () noexcept; + [[nodiscard]] static uint16_t GetNumPositionIterations () noexcept; + [[nodiscard]] static bool IsSleepingEnabled () noexcept; + + static void SetFixedDT (double fixedDT) noexcept; + static void SetFixedUpdateRate (double fixedUpdateRate) noexcept; + static void SetGravity (const SHVec3& gravity) noexcept; + static void SetNumVelocityIterations (uint16_t value) noexcept; + static void SetNumPositionIterations (uint16_t value) noexcept; + static void EnableSleeping (bool sleepingAllowed) noexcept; + + [[nodiscard]] static const std::vector& Raycast (const RaycastInfo& info) noexcept; }; } diff --git a/SHADE_Engine/src/Serialization/SHYAMLConverters.h b/SHADE_Engine/src/Serialization/SHYAMLConverters.h index 69b4f409..0bf66a16 100644 --- a/SHADE_Engine/src/Serialization/SHYAMLConverters.h +++ b/SHADE_Engine/src/Serialization/SHYAMLConverters.h @@ -16,6 +16,7 @@ #include "Animation/SHAnimatorComponent.h" #include "Physics/Collision/CollisionTags/SHCollisionTagMatrix.h" #include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h" +#include "Physics/Collision/Shapes/SHCapsule.h" namespace YAML { @@ -127,6 +128,7 @@ namespace YAML static constexpr const char* Type = "Type"; static constexpr const char* HalfExtents = "Half Extents"; static constexpr const char* Radius = "Radius"; + static constexpr const char* Height = "Height"; static constexpr const char* Friction = "Friction"; static constexpr const char* Bounciness = "Bounciness"; @@ -161,7 +163,13 @@ namespace YAML node[Radius] = SPHERE_SHAPE.GetRelativeRadius(); } break; - //case SHCollisionShape::Type::CAPSULE: break; + case SHCollisionShape::Type::CAPSULE: + { + const auto& CAPSULE_SHAPE = dynamic_cast(rhs); + node[Radius] = CAPSULE_SHAPE.GetRelativeRadius(); + node[Height] = CAPSULE_SHAPE.GetRelativeHeight(); + } + break; default:; } @@ -203,7 +211,17 @@ namespace YAML dynamic_cast(rhs).SetRelativeRadius(node[Radius].as()); } break; - //case SHCollisionShape::Type::CAPSULE: break; + case SHCollisionShape::Type::CAPSULE: + { + auto& capsule = dynamic_cast(rhs); + + if (node[Radius].IsDefined()) + capsule.SetRelativeRadius(node[Radius].as()); + + if (node[Height].IsDefined()) + capsule.SetRelativeHeight(node[Height].as()); + } + break; default:; } if (node[Friction].IsDefined()) @@ -258,7 +276,7 @@ namespace YAML { case SHCollisionShape::Type::BOX: rhs.AddBoxCollisionShape(SHVec3::One); break; case SHCollisionShape::Type::SPHERE: rhs.AddSphereCollisionShape(1.0f); break; - //case SHCollisionShape::Type::CAPSULE: break; + case SHCollisionShape::Type::CAPSULE: rhs.AddCapsuleCollisionShape(1.0f, 2.0f); break; default:; } YAML::convert::decode(colliderNode, rhs.GetCollisionShape(numColliders++)); diff --git a/SHADE_Engine/src/UI/SHButtonComponent.h b/SHADE_Engine/src/UI/SHButtonComponent.h index a89a4b9e..cb00300c 100644 --- a/SHADE_Engine/src/UI/SHButtonComponent.h +++ b/SHADE_Engine/src/UI/SHButtonComponent.h @@ -26,7 +26,7 @@ namespace SHADE void SetHoveredTexture(AssetID texture) noexcept; void SetClickedTexture(AssetID texture) noexcept; - + AssetID currentTexture; friend class SHUISystem; private: @@ -35,7 +35,7 @@ namespace SHADE AssetID hoveredTexture; AssetID clickedTexture; - AssetID currentTexture; + RTTR_ENABLE() diff --git a/SHADE_Engine/src/UI/SHSliderComponent.cpp b/SHADE_Engine/src/UI/SHSliderComponent.cpp index d25fbb6f..d841ca4b 100644 --- a/SHADE_Engine/src/UI/SHSliderComponent.cpp +++ b/SHADE_Engine/src/UI/SHSliderComponent.cpp @@ -4,7 +4,7 @@ namespace SHADE { SHSliderComponent::SHSliderComponent() - :value(0.0f) + :value(0.0f),minValue(0.0f), maxValue(100.0f) { } @@ -21,6 +21,17 @@ namespace SHADE } + float SHSliderComponent::GetScaledValue() const noexcept + { + return value * (maxValue - minValue) + minValue; + } + + void SHSliderComponent::SetScaledValue(float value) noexcept + { + this->value = (value - minValue) / (maxValue - minValue); + } + + } @@ -32,7 +43,8 @@ RTTR_REGISTRATION registration::class_("Slider Component") .property("Slider Value", &SHSliderComponent::GetValue, &SHSliderComponent::SetValue) - + .property("Min Value", &SHSliderComponent::minValue) + .property("Max Value", &SHSliderComponent::maxValue) ; diff --git a/SHADE_Engine/src/UI/SHSliderComponent.h b/SHADE_Engine/src/UI/SHSliderComponent.h index 1eb64205..15997b73 100644 --- a/SHADE_Engine/src/UI/SHSliderComponent.h +++ b/SHADE_Engine/src/UI/SHSliderComponent.h @@ -18,11 +18,16 @@ namespace SHADE virtual ~SHSliderComponent() = default; + float minValue; + float maxValue; + + float GetValue() const noexcept; - - void SetValue(float value) noexcept; + float GetScaledValue() const noexcept; + void SetScaledValue(float value)noexcept; + friend class SHUISystem; private: diff --git a/SHADE_Engine/src/UI/SHUISystem.cpp b/SHADE_Engine/src/UI/SHUISystem.cpp index 16cf88aa..63731e18 100644 --- a/SHADE_Engine/src/UI/SHUISystem.cpp +++ b/SHADE_Engine/src/UI/SHUISystem.cpp @@ -263,6 +263,11 @@ namespace SHADE return true; } + //In case the UI was clicked but the mouse is not held down and the key up frame was missed because of active state. + if (comp.isClicked && !SHInputManager::GetKey(SHInputManager::SH_KEYCODE::LMB)) + { + comp.isClicked = false; + } return false; @@ -318,7 +323,7 @@ namespace SHADE //SHLOG_INFO("SETTING HOVERED TEXTURE") } } - if (textureID != 0 && textureID != comp.currentTexture) + if (textureID != 0 && comp.currentTexture != textureID) { auto material = renderable->GetModifiableMaterial(); comp.currentTexture = textureID; @@ -398,7 +403,7 @@ namespace SHADE auto uiComp = SHComponentManager::GetComponent(comp.GetEID()); //auto canvasComp = SHComponentManager::GetComponent_s(uiComp->canvasID); - float tempValue = comp.GetValue(); + float tempValue = comp.value; CheckButtonHoveredOrClicked(*uiComp); @@ -436,9 +441,9 @@ namespace SHADE comp.value = (mousePos.x - topExtent.x) / (btmExtent.x - topExtent.x); - if (comp.GetValue() > 1.0f) + if (comp.value > 1.0f) comp.value = 1.0f; - if (comp.GetValue() < 0.0f) + if (comp.value < 0.0f) comp.value = 0.0f; } try @@ -448,11 +453,11 @@ namespace SHADE auto material = renderable->GetModifiableMaterial(); if (renderable) { - if (comp.GetValue() != material->GetProperty("data.sliderThreshold")) + if (comp.value != material->GetProperty("data.sliderThreshold")) { //Set shader value. - material->SetProperty("data.sliderThreshold", comp.GetValue()); + material->SetProperty("data.sliderThreshold", comp.value); } } diff --git a/SHADE_Managed/src/Audio/Audio.cxx b/SHADE_Managed/src/Audio/Audio.cxx index c3994cd4..33cfdd83 100644 --- a/SHADE_Managed/src/Audio/Audio.cxx +++ b/SHADE_Managed/src/Audio/Audio.cxx @@ -124,6 +124,12 @@ namespace SHADE audioSys->SetParameter(Convert::ToNative(path).data(), value); } + void Audio::SetParameterWithLabel(System::String^ path, System::String^ label) + { + auto audioSys = SHSystemManager::GetSystem(); + audioSys->SetParameterWithLabel(Convert::ToNative(path).data(), Convert::ToNative(label).data()); + } + AudioClipHandler Audio::CreateAudioClip(System::String^ path) { auto audioSys = SHSystemManager::GetSystem(); diff --git a/SHADE_Managed/src/Audio/Audio.hxx b/SHADE_Managed/src/Audio/Audio.hxx index 179a3eb7..fa1e97de 100644 --- a/SHADE_Managed/src/Audio/Audio.hxx +++ b/SHADE_Managed/src/Audio/Audio.hxx @@ -105,6 +105,7 @@ namespace SHADE static void SetVCAVolume(System::String^ path, float volume); static float GetParameterValue(System::String^ path); static void SetParameter(System::String^ path, float value); + static void SetParameterWithLabel(System::String^ path, System::String^ label); //to comment ltr static AudioClipHandler CreateAudioClip(System::String^ path); diff --git a/SHADE_Managed/src/Audio/AudioClip.cxx b/SHADE_Managed/src/Audio/AudioClip.cxx index 7ed58714..062b543e 100644 --- a/SHADE_Managed/src/Audio/AudioClip.cxx +++ b/SHADE_Managed/src/Audio/AudioClip.cxx @@ -79,6 +79,11 @@ namespace SHADE NativeObject->SetParameter(Convert::ToNative(paramName).data(), value); } + void AudioClipHandler::SetParameterWithLabel(System::String^ paramName, System::String^ label) + { + NativeObject->SetParameterWithLabel(Convert::ToNative(paramName).data(), Convert::ToNative(label).data()); + } + float AudioClipHandler::GetParameterValue(System::String^ paramName) { return NativeObject->GetParameterValue(Convert::ToNative(paramName).data()); diff --git a/SHADE_Managed/src/Audio/AudioClip.hxx b/SHADE_Managed/src/Audio/AudioClip.hxx index 34e9b4a5..317c5bad 100644 --- a/SHADE_Managed/src/Audio/AudioClip.hxx +++ b/SHADE_Managed/src/Audio/AudioClip.hxx @@ -71,6 +71,7 @@ namespace SHADE void SetPause(bool pause); bool IsPaused(); void SetParameter(System::String^ paramName, float value); + void SetParameterWithLabel(System::String^ paramName, System::String^ label); float GetParameterValue(System::String^ paramName); float GetVolume(); void SetVolume(float volume); diff --git a/SHADE_Managed/src/Components/Slider.cxx b/SHADE_Managed/src/Components/Slider.cxx index 163a33a3..898f979a 100644 --- a/SHADE_Managed/src/Components/Slider.cxx +++ b/SHADE_Managed/src/Components/Slider.cxx @@ -23,4 +23,22 @@ namespace SHADE } + void Slider::SetValue(float value) + { + return GetNativeComponent()->SetValue(value); + } + + + float Slider::ScaledValue::get() + { + return GetNativeComponent()->GetScaledValue(); + } + + void Slider::ScaledValue::set(float value) + { + return GetNativeComponent()->SetScaledValue(value); + } + + + } diff --git a/SHADE_Managed/src/Components/Slider.hxx b/SHADE_Managed/src/Components/Slider.hxx index 7f0efa1e..0a100faa 100644 --- a/SHADE_Managed/src/Components/Slider.hxx +++ b/SHADE_Managed/src/Components/Slider.hxx @@ -42,6 +42,15 @@ namespace SHADE public: float GetValue(); + void SetValue(float value); + + + property float ScaledValue + { + float get(); + void set(float value); + } + }; diff --git a/SHADE_Managed/src/Components/TextRenderable.cxx b/SHADE_Managed/src/Components/TextRenderable.cxx index 3eb1f3b9..c75d4556 100644 --- a/SHADE_Managed/src/Components/TextRenderable.cxx +++ b/SHADE_Managed/src/Components/TextRenderable.cxx @@ -19,6 +19,7 @@ of DigiPen Institute of Technology is prohibited. #include "Assets/NativeAsset.hxx" #include "Utility/Convert.hxx" + namespace SHADE { /*---------------------------------------------------------------------------------*/ @@ -55,4 +56,16 @@ namespace SHADE GetNativeComponent()->SetFont(value.NativeObject); } } + + Color TextRenderable::TextColor::get() + { + return Convert::ToCLI(GetNativeComponent()->GetColor()); + } + + void TextRenderable::TextColor::set(Color value) + { + GetNativeComponent()->SetColor(Convert::ToNative(value)); + } + + } diff --git a/SHADE_Managed/src/Components/TextRenderable.hxx b/SHADE_Managed/src/Components/TextRenderable.hxx index b17a919c..b65f9c59 100644 --- a/SHADE_Managed/src/Components/TextRenderable.hxx +++ b/SHADE_Managed/src/Components/TextRenderable.hxx @@ -60,6 +60,13 @@ namespace SHADE FontAsset get(); void set(FontAsset value); } + + property Color TextColor + { + Color get(); + void set(Color value); + } + }; } diff --git a/SHADE_Managed/src/Components/Transform.cxx b/SHADE_Managed/src/Components/Transform.cxx index d5b38967..3216d0f0 100644 --- a/SHADE_Managed/src/Components/Transform.cxx +++ b/SHADE_Managed/src/Components/Transform.cxx @@ -22,6 +22,7 @@ namespace SHADE : Component(entity) {} + /*-----------------------------------------------------------------------------------*/ /* Properties */ /*-----------------------------------------------------------------------------------*/ diff --git a/SHADE_Managed/src/Engine/Application.cxx b/SHADE_Managed/src/Engine/Application.cxx index ba0cb592..b176f67e 100644 --- a/SHADE_Managed/src/Engine/Application.cxx +++ b/SHADE_Managed/src/Engine/Application.cxx @@ -20,6 +20,7 @@ of DigiPen Institute of Technology is prohibited. #include "ECS_Base/Managers/SHSystemManager.h" #include "Editor/SHEditor.h" #include "Graphics/MiddleEnd/Interface/SHGraphicsSystemInterface.h" +#include "Physics/System/SHPhysicsSystemInterface.h" namespace SHADE { @@ -79,6 +80,14 @@ namespace SHADE { SHWindow::SetMouseVisible(value); } + double Application::FixDeltaTime::get() + { + return SHPhysicsSystemInterface::GetFixedDT(); + } + void Application::FixDeltaTime::set(double value) + { + SHPhysicsSystemInterface::SetFixedDT(value); + } /*---------------------------------------------------------------------------------*/ /* Usage Functions */ /*---------------------------------------------------------------------------------*/ diff --git a/SHADE_Managed/src/Engine/Application.hxx b/SHADE_Managed/src/Engine/Application.hxx index 6e04b725..2e7b1f23 100644 --- a/SHADE_Managed/src/Engine/Application.hxx +++ b/SHADE_Managed/src/Engine/Application.hxx @@ -79,6 +79,12 @@ namespace SHADE void set(bool value); } + static property double FixDeltaTime + { + double get(); + void set(double value); + } + /*-----------------------------------------------------------------------------*/ /* Usage Functions */ /*-----------------------------------------------------------------------------*/ diff --git a/SHADE_Managed/src/Engine/Time.cxx b/SHADE_Managed/src/Engine/Time.cxx index 12c90453..27cf1e22 100644 --- a/SHADE_Managed/src/Engine/Time.cxx +++ b/SHADE_Managed/src/Engine/Time.cxx @@ -17,6 +17,7 @@ of DigiPen Institute of Technology is prohibited. // External Dependencies #include "FRC/SHFramerateController.h" #include "Physics/System/SHPhysicsSystemInterface.h" +#include "Physics/SHPhysicsConstants.h" // Primary Header #include "Time.hxx" @@ -37,10 +38,16 @@ namespace SHADE float Time::DeltaTimeF::get() { - return static_cast(SHFrameRateController::GetRawDeltaTime()); + return static_cast(SHFrameRateController::GetRawDeltaTime()); } + double Time::FixedDeltaTime::get() { return SHPhysicsSystemInterface::GetFixedDT(); } + + double Time::DefaultFixDeltaTime::get() + { + return SHPhysicsConstants::DEFAULT_FIXED_DT; + } } \ No newline at end of file diff --git a/SHADE_Managed/src/Engine/Time.hxx b/SHADE_Managed/src/Engine/Time.hxx index 11c82241..306193a4 100644 --- a/SHADE_Managed/src/Engine/Time.hxx +++ b/SHADE_Managed/src/Engine/Time.hxx @@ -57,5 +57,11 @@ namespace SHADE { double get(); } + + static property double DefaultFixDeltaTime + { + double get(); + } + }; } \ No newline at end of file diff --git a/SHADE_Managed/src/Physics/Physics.cxx b/SHADE_Managed/src/Physics/Physics.cxx index 7b2349a6..66e8645b 100644 --- a/SHADE_Managed/src/Physics/Physics.cxx +++ b/SHADE_Managed/src/Physics/Physics.cxx @@ -31,14 +31,42 @@ namespace SHADE Vector3 Physics::Gravity::get() { - // TODO(Diren) - - return Vector3::Zero; + return Convert::ToCLI(SHPhysicsSystemInterface::GetGravity()); } void Physics::Gravity::set(Vector3 value) { - (void)value; + SHPhysicsSystemInterface::SetGravity(Convert::ToNative(value)); + } + + uint16_t Physics::VelocityIterations::get() + { + return SHPhysicsSystemInterface::GetNumVelocityIterations(); + } + + void Physics::VelocityIterations::set(uint16_t value) + { + SHPhysicsSystemInterface::SetNumVelocityIterations(value); + } + + uint16_t Physics::PositionIterations::get() + { + return SHPhysicsSystemInterface::GetNumPositionIterations(); + } + + void Physics::PositionIterations::set(uint16_t value) + { + SHPhysicsSystemInterface::SetNumPositionIterations(value); + } + + bool Physics::SleepingEnabled::get() + { + return SHPhysicsSystemInterface::IsSleepingEnabled(); + } + + void Physics::SleepingEnabled::set(bool value) + { + SHPhysicsSystemInterface::EnableSleeping(value); } /*-----------------------------------------------------------------------------------*/ diff --git a/SHADE_Managed/src/Physics/Physics.hxx b/SHADE_Managed/src/Physics/Physics.hxx index 7f5e1609..cc4cfc5c 100644 --- a/SHADE_Managed/src/Physics/Physics.hxx +++ b/SHADE_Managed/src/Physics/Physics.hxx @@ -33,7 +33,23 @@ namespace SHADE void set(Vector3 value); } - // TODO(Diren): Add more properties for physics system settings. + static property uint16_t VelocityIterations + { + uint16_t get(); + void set(uint16_t value); + } + + static property uint16_t PositionIterations + { + uint16_t get(); + void set(uint16_t value); + } + + static property bool SleepingEnabled + { + bool get(); + void set(bool value); + } /*---------------------------------------------------------------------------------*/ /* Raycast Function Members */ diff --git a/SHADE_Managed/src/Utility/Convert.cxx b/SHADE_Managed/src/Utility/Convert.cxx index 590a3cf0..4ff5dd43 100644 --- a/SHADE_Managed/src/Utility/Convert.cxx +++ b/SHADE_Managed/src/Utility/Convert.cxx @@ -91,12 +91,17 @@ namespace SHADE { if (str == nullptr) return ""; - return msclr::interop::marshal_as(str); + std::string s = msclr::interop::marshal_as(str); + s.substr(0, str->Length); + return s; } System::String^ Convert::ToCLI(const std::string& str) { - return msclr::interop::marshal_as(str); + if (str.empty()) + return ""; + + return msclr::interop::marshal_as(str)->Substring(0, str.length()); } /*---------------------------------------------------------------------------------*/