Merge branch 'main' into SP3-10-input-management

This commit is contained in:
mushgunAX 2023-03-02 22:55:29 +08:00
commit 7763a969b2
30 changed files with 3493 additions and 474 deletions

View File

@ -521,47 +521,11 @@
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Half Extents: {x: 1.10000002, y: 2, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.0299999993, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.985000014, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.47500002, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.97000003, z: 0}
Position Offset: {x: 0, y: 1, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
@ -584,47 +548,11 @@
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Half Extents: {x: 1.10000002, y: 2, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.0299999993, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.985000014, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.47500002, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.97000003, z: 0}
Position Offset: {x: 0, y: 1, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
@ -647,47 +575,11 @@
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Half Extents: {x: 1.10000002, y: 2, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.0299999993, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.985000014, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.47500002, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.97000003, z: 0}
Position Offset: {x: 0, y: 1, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
@ -836,47 +728,11 @@
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Half Extents: {x: 1.10000002, y: 2, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.0299999993, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.985000014, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.47500002, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.97000003, z: 0}
Position Offset: {x: 0, y: 1, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
@ -962,47 +818,11 @@
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Half Extents: {x: 1.10000002, y: 2, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.0299999993, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0.985000014, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.47500002, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 1.04999995, y: 0.0500000007, z: 0.550000012}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 1.97000003, z: 0}
Position Offset: {x: 0, y: 1, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
@ -2583,7 +2403,7 @@
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0}
Rotate: {x: -1.48352981, y: 0, z: 0}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4293,12 +4113,12 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -800, y: 400, z: 0}
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: My name is Brandon.
Text: "Score: 0"
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
@ -4309,12 +4129,12 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 500, y: 400, z: 0}
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: My name is Brandon.
Text: "Time Left: 200"
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
@ -4325,12 +4145,12 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -800, y: 300, z: 0}
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: TEST
Text: ""
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
@ -4346,7 +4166,7 @@
winScene: 86098106
loseScene: 91685359
currGameState: 0
totalItemCount: 0
totalItemCount: 4
Score: 0
timer: 200
scoreText: 237
@ -4355,14 +4175,20 @@
maxMultiplierDuration: 5
maxMultiplierCombo: 10
multiplierFont: 60
- Type: PauseMenu
Enabled: true
resumeBtn: 457
retryBtn: 455
quitBtn: 456
canvas: 458
- EID: 235
Name: ====AI=====
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0.406909943, y: 0.100000001, z: -2}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: 2.13981342, y: 0.0490087792, z: -1.96055627}
Rotate: {x: 0, y: -1.53675354, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4388,7 +4214,7 @@
- Is Trigger: false
Collision Tag: 5
Type: Box
Half Extents: {x: 1, y: 1.79999995, z: 0.400000006}
Half Extents: {x: 0.600000024, y: 1.79999995, z: 0.400000006}
Friction: 0.400000006
Bounciness: 0
Density: 1
@ -4469,8 +4295,8 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 3.71994686, y: 1.14058578, z: -9.35119247}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: 3.71994758, y: 1.0997268, z: -9.35119152}
Rotate: {x: 4.18975469e-06, y: -1.08915871e-11, z: -5.03928231e-06}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4512,7 +4338,7 @@
dontReturn: false
soundDistance: 10
highlightSpeed: 200
highlightThickness: 600
highlightThickness: 120
highlightLowerClamp: 0.25
- EID: 227
Name: Mesh_Cheese
@ -4520,8 +4346,8 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 3.22328258, y: 1.08429813, z: -0.57395637}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: 3.22328258, y: 1.02709854, z: -0.57395637}
Rotate: {x: 5.62993963e-09, y: -7.03049191e-17, z: -1.92319405e-08}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4533,7 +4359,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
@ -4563,7 +4389,7 @@
dontReturn: false
soundDistance: 10
highlightSpeed: 200
highlightThickness: 600
highlightThickness: 50
highlightLowerClamp: 0.25
- EID: 65778
Name: Mesh_Apple
@ -4571,8 +4397,8 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -2.5, y: 0.778462529, z: -5}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: -2.50000072, y: 0.799999774, z: -5.00000095}
Rotate: {x: -4.09249949e-08, y: 1.40052995e-13, z: 2.95086267e-08}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4584,7 +4410,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
@ -4614,7 +4440,7 @@
dontReturn: false
soundDistance: 10
highlightSpeed: 200
highlightThickness: 600
highlightThickness: 60
highlightLowerClamp: 0.25
- EID: 216
Name: Mesh_Apple
@ -4622,8 +4448,8 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -2.5, y: 0.778462529, z: -4.28408813}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: -2.50000072, y: 0.799999893, z: -4.28408909}
Rotate: {x: -5.83341553e-08, y: 7.48974247e-14, z: 1.10461471e-08}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Renderable Component:
@ -4635,7 +4461,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
@ -4665,7 +4491,7 @@
dontReturn: false
soundDistance: 10
highlightSpeed: 200
highlightThickness: 600
highlightThickness: 60
highlightLowerClamp: 0.25
- EID: 229
Name: ====ScoreZonePool====
@ -4680,7 +4506,7 @@
Components:
Transform Component:
Translate: {x: -7.47360849, y: 1.4327563, z: -2.44241929}
Rotate: {x: -0, y: 0, z: -0}
Rotate: {x: -0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
@ -4742,7 +4568,7 @@
Components:
Transform Component:
Translate: {x: 1.97487497, y: 1.3500793, z: -10.195508}
Rotate: {x: -0, y: 0, z: -0}
Rotate: {x: -0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
@ -4803,8 +4629,8 @@
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: -5.47656059, y: 1.4327563, z: -2.44241929}
Rotate: {x: -0, y: 0, z: -0}
Translate: {x: -5.47656107, y: 1.4327563, z: -2.44241929}
Rotate: {x: -0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
@ -4866,7 +4692,7 @@
Components:
Transform Component:
Translate: {x: 6.09239721, y: 1.4327563, z: -6.03106117}
Rotate: {x: -0, y: 0, z: -0}
Rotate: {x: -0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
@ -4928,7 +4754,7 @@
Components:
Transform Component:
Translate: {x: 6.09239721, y: 1.4327563, z: -3.94262314}
Rotate: {x: -0, y: 0, z: -0}
Rotate: {x: -0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
@ -5078,7 +4904,7 @@
Components:
Transform Component:
Translate: {x: -8, y: 1.142977, z: -4}
Rotate: {x: -0, y: 0, z: -0}
Rotate: {x: -0, y: 1.57079649, z: 0}
Scale: {x: 0.999999881, y: 1, z: 0.999999881}
IsActive: true
Renderable Component:
@ -5093,7 +4919,7 @@
Interpolate: false
Sleeping Enabled: true
Freeze Position X: false
Freeze Position Y: true
Freeze Position Y: false
Freeze Position Z: false
Freeze Rotation X: true
Freeze Rotation Y: true
@ -5123,23 +4949,27 @@
maxJumpHeight: 2
maxJumpTime: 0.75
fallMultipler: 3
jumpPadMultiplayer: 2
lightMultiper: 0.75
mediumMultiper: 0.5
heavyMultiper: 0.25
jumpPadMultiplayer: 1.20000005
lightMultiper: 0.899999976
mediumMultiper: 0.699999988
heavyMultiper: 0.5
silhouettePlayer: 462
silhouetteBag: 465
- Type: PickAndThrow
Enabled: true
throwForce: [8, 10, 8]
cameraArmOffSet: [0, 0.25, 0]
cameraArmOffSet: [0.25, 0.600000024, 0.200000003]
delayTimer: 1
aimingLength: 0.899999976
aimingLength: 1
throwItem: false
silhouettePlayer: 462
silhouetteBag: 465
rayDistance: 0.5
rayDistance: 0.75
rayHeight: 0.100000001
aimingFOV: 50
defaultFOV: 45
- Type: StateMachine
Enabled: true
currentStateName: Idle State
currentAnimName: ""
- EID: 65733
Name: HoldingPoint
IsActive: true
@ -5158,36 +4988,36 @@
Components:
Transform Component:
Translate: {x: 0, y: -2.98023224e-08, z: 4.76837158e-07}
Rotate: {x: 0, y: 6.28318548, z: 2.23517329e-08}
Rotate: {x: -0.173316926, 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: 360
Position: {x: -8.9091711, y: 2.05214882, z: -4}
Pitch: -9.93032837
Yaw: 270
Roll: 1.28065994e-06
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
FOV: 45
IsActive: true
Camera Arm Component:
Arm Pitch: 0
Arm Yaw: 0
Arm Length: 1
Arm Pitch: 45
Arm Yaw: -90
Arm Length: 3
Look At Camera Origin: true
Target Offset: {x: 0, y: 0, z: 0}
Target Offset: {x: 0, y: 0.75, z: 0}
Camera Collision: true
IsActive: true
Scripts:
- Type: SHADE_Scripting.ThirdPersonCamera
Enabled: true
armLength: 2
turnSpeedPitch: 0.300000012
turnSpeedYaw: 0.5
inverseXControls: true
inverseYControls: true
armLength: 3
turnSpeedPitch: 0.200000003
turnSpeedYaw: 0.400000006
inverseXControls: false
inverseYControls: false
pitchUpperClamp: 45
pitchLowerClamp: 5
- EID: 65731
@ -5247,7 +5077,7 @@
IsActive: true
Scripts: ~
- EID: 464
Name: Canvas
Name: StealFoodCanvas
IsActive: true
NumberOfChildren: 1
Components:
@ -5280,7 +5110,7 @@
- Type: SHADE_Scripting.UI.StealFoodPopUp
Enabled: true
popInDuration: 0.5
popOutDuration: 0.5
popOutDuration: 0.075000003
stayDuration: 1
rotationAmt: 1800
scaleAmtX: 538
@ -5294,6 +5124,192 @@
- Type: SHADE_Scripting.UI.TweenManager
Enabled: true
- EID: 461
Name: CameraPoints
IsActive: true
NumberOfChildren: 3
Components: ~
Scripts:
- Type: SHADE_Scripting.UI.PreviewLevel
Enabled: true
endPoint1: [-5.5, 1.5, -2]
endPoint2: [1, 1.5, -7.5]
endPoint3: [2.5, 1.5, -3]
playerCamera: 65730
duration: 3
- EID: 453
Name: PreviewLevel1
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -7.5, y: 1.5, z: -2}
Rotate: {x: 0, y: 0, 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: 0
Roll: 0
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
IsActive: true
Scripts: ~
- EID: 452
Name: PreviewLevel2
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -1.5, y: 1.5, z: -7.5}
Rotate: {x: 0, y: -3.14159274, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Camera Component:
Position: {x: -0.24528563, y: 1.5, z: -7.5}
Pitch: 0
Yaw: -180
Roll: 0
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
IsActive: true
Scripts: ~
- EID: 451
Name: PreviewLevel3
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 2.5, y: 1.5, z: -7.5}
Rotate: {x: 0, y: 4.71238899, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Camera Component:
Position: {x: 2.5, y: 1.5, z: -7.5}
Pitch: 0
Yaw: 270
Roll: 0
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
IsActive: true
Scripts: ~
- EID: 458
Name: PauseCanvas
IsActive: false
NumberOfChildren: 4
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: false
Scripts: ~
- EID: 457
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: 300, y: 200, 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: 458
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 456
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: 300, y: 200, 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: 458
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 455
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: 300, y: 200, 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: 458
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 454
Name: GamePauseText
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: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: false
UI Component:
Canvas ID: 458
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 450
Name: TransitionCanvas
IsActive: true
NumberOfChildren: 1
@ -5304,22 +5320,22 @@
Scale by canvas width: false
IsActive: true
Scripts: ~
- EID: 459
- EID: 65982
Name: Transition
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.0500000007}
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1920, y: 1080, z: 1}
Scale: {x: 2500, y: 1080, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 120016136
IsActive: true
UI Component:
Canvas ID: 461
Canvas ID: 450
Hovered: false
Clicked: false
IsActive: true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -28,11 +28,6 @@ public class PickAndThrow : Script
public bool throwItem = false;
private Vector3 prevTargetOffSet;
public GameObject silhouettePlayer;
public Renderable silhouettePlayerRend;
public GameObject silhouetteBag;
public Renderable silhouetteBagRend;
[Tooltip("Lenght of ray")]
public float rayDistance = 1;
@ -58,41 +53,17 @@ public class PickAndThrow : Script
if(!tpc)
Debug.LogError("TPC EMPTY");
if(!silhouettePlayer)
Debug.LogError("silhouettePlayer EMPTY");
else
silhouettePlayerRend = silhouettePlayer.GetComponent<Renderable>();
if (!silhouetteBag)
Debug.LogError("silhouetteBag EMPTY");
else
silhouetteBagRend = silhouetteBag.GetComponent<Renderable>();
AudioHandler.audioClipHandlers["SFXThrow"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_throw");
timer = delayTimer;
}
protected override void update()
{
if (GameManager.Instance.GamePause)
if (GameManager.Instance.GamePause || !GameManager.Instance.stealFoodPopUpDone)
{
return;
}
if (silhouettePlayerRend && silhouetteBagRend)
{
//wait for daniel
//0.00075f;
Vector3 dis = Camera.GetMainCamera().Position - GameObject.GetComponent<Transform>().LocalPosition;
float disSqr = dis.GetSqrMagnitude();
float ratio = System.Math.Clamp(1 - (disSqr / (1 + disSqr)), 0, 1.0f);
float temp = (1 - ratio) * 0.00075f;
if (temp <= 0.0006f)
temp = 0.1f;
silhouettePlayerRend.Material.SetProperty<float>("data.offset", temp);
silhouetteBagRend.Material.SetProperty<float>("data.offset", temp);
}
if (timer <= delayTimer)
timer += Time.DeltaTimeF;
@ -171,7 +142,7 @@ public class PickAndThrow : Script
protected override void fixedUpdate()
{
if (GameManager.Instance.GamePause)
if (GameManager.Instance.GamePause || !GameManager.Instance.stealFoodPopUpDone)
{
return;
}

View File

@ -17,15 +17,6 @@ public class PlayerController : Script
TOTAL
}
/* public enum WalkingState
{
CARRY,
AIMING,
THROW,
WALK,
TOTAL
}*/
public RigidBody rb { get; set; }
public Transform tranform { get; set; }
public Camera cam { get; set; }
@ -85,6 +76,12 @@ public class PlayerController : Script
[Tooltip("How heavy item will affect player jump")]
public float heavyMultiper = 0.25f;
//silhouette=====================================================================
public GameObject silhouettePlayer;
public Renderable silhouettePlayerRend;
public GameObject silhouetteBag;
public Renderable silhouetteBagRend;
protected override void awake()
{
//default setup
@ -119,6 +116,21 @@ public class PlayerController : Script
dictionary.Add(typeof(PlayerCaughtState), new PlayerCaughtState(stateMachine));
stateMachine.InitStateMachine(dictionary);
if (!silhouettePlayer)
Debug.LogError("silhouettePlayer EMPTY");
else
{
silhouettePlayerRend = silhouettePlayer.GetComponent<Renderable>();
silhouettePlayerRend.Material.SetProperty<float>("data.offset", 0.1f);
}
if (!silhouetteBag)
Debug.LogError("silhouetteBag EMPTY");
else
{
silhouetteBagRend = silhouetteBag.GetComponent<Renderable>();
silhouetteBagRend.Material.SetProperty<float>("data.offset", 0.1f);
}
}
protected override void lateUpdate()
@ -127,26 +139,23 @@ public class PlayerController : Script
protected override void update()
{
if (GameManager.Instance.GamePause)
if (GameManager.Instance.GamePause || !GameManager.Instance.stealFoodPopUpDone)
{
return;
}
if (delayTimer <= 1)
delayTimer += Time.DeltaTimeF;
if (silhouettePlayerRend && silhouetteBagRend)
{
Vector3 dis = Camera.GetMainCamera().Position - GameObject.GetComponent<Transform>().LocalPosition;
float disSqr = dis.GetSqrMagnitude();
float ratio = System.Math.Clamp(1 - (disSqr / (1 + disSqr)), 0, 1.0f);
float temp = (1 - ratio) * 0.00075f;
if (temp <= 0.0006f)
temp = 0.1f;
silhouettePlayerRend.Material.SetProperty<float>("data.offset", temp);
silhouetteBagRend.Material.SetProperty<float>("data.offset", temp);
}
if (delayTimer < 1)
{
if (tranform && respawnPoint && rb)
{
rb.LinearVelocity = Vector3.Zero;
tranform.LocalPosition = respawnPoint.GetComponent<Transform>().LocalPosition;
}
}
else
{
rb.FreezePositionY = false;
}
//PickAndThrow check
if (!pat)
{
@ -156,13 +165,15 @@ public class PlayerController : Script
}
if (!cam)
{
cam = GetComponentInChildren<Camera>();
if(pat)
cam.FOV = pat.defaultFOV;
}
if(!camArm)
camArm = GetComponentInChildren<CameraArm>();
//tempFix
if (tranform)
tranform.LocalEulerAngles = new Vector3(0.0f, tranform.LocalEulerAngles.y, 0.0f);
GotCaught();
Rotation();
@ -178,7 +189,7 @@ public class PlayerController : Script
protected override void fixedUpdate()
{
if (GameManager.Instance.GamePause)
if (GameManager.Instance.GamePause || !GameManager.Instance.stealFoodPopUpDone)
{
return;
}
@ -333,10 +344,11 @@ public class PlayerController : Script
private void Rotation()
{
tranform.LocalEulerAngles = new Vector3(0.0f, tranform.LocalEulerAngles.y, 0.0f);
if (isMoveKeyPress && tranform && !isAiming)
{
Quaternion currentRotation = tranform.LocalRotation;
Quaternion targetRotation = Quaternion.LookRotation(new Vector3(axisMove.x, 0.0f, axisMove.y), new Vector3(0.0f, 1.0f, 0.0f));
Quaternion targetRotation = Quaternion.LookRotation(new Vector3(axisMove.x, 0.0f, axisMove.y), Vector3.Up);
tranform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationFactorPerFrame * (float)Time.FixedDeltaTime);
}
else if (camArm && tranform && isAiming)
@ -345,6 +357,7 @@ public class PlayerController : Script
Quaternion targetRotation = Quaternion.Euler(0.0f, SHADE.Math.DegreesToRadians(camArm.Yaw + 180.0f), 0.0f);
tranform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationFactorPerFrame * (float)Time.FixedDeltaTime);
}
}
private void Gravity()

View File

@ -41,7 +41,7 @@ namespace SHADE_Scripting
protected override void update()
{
if (GameManager.Instance.GamePause)
if (GameManager.Instance.GamePause || !GameManager.Instance.stealFoodPopUpDone)
{
return;
}

View File

@ -41,6 +41,8 @@ public class GameManager : Script
public static GameManager Instance { get; private set; }
public bool GamePause { get; set; }
public bool stealFoodPopUpDone { get; set; }
public bool PreviewLevelDone { get; set; }
public bool itemShatter { get; set; }
@ -63,12 +65,20 @@ public class GameManager : Script
currMultiplierDuration = 0;
fontScalar = new Vector3(multiplierFont / maxMultiplierDuration, multiplierFont / maxMultiplierDuration , multiplierFont / maxMultiplierDuration);
itemShatter = false;
GamePause = false;
stealFoodPopUpDone = false;
PreviewLevelDone = false;
AudioHandler.audioClipHandlers["BGMWin"] = Audio.CreateAudioClip("event:/Music/stingers/game_win");
AudioHandler.audioClipHandlers["BGMLose"] = Audio.CreateAudioClip("event:/Music/stingers/game_lose");
goingToWin = false;
goingToLose = false;
if (scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"Score: {Score}";
if (timeText)
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0")}";
}
protected override void start()
@ -91,7 +101,7 @@ public class GameManager : Script
protected override void update()
{
if (GamePause)
if (GamePause || !stealFoodPopUpDone)
{
Input.SetMouseCentering(false);
//Application.IsCursorVisible = true;
@ -106,7 +116,7 @@ public class GameManager : Script
if(scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"{Score}";
if(timeText)
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0.00")}";
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0")}";
if (itemScored)
{

View File

@ -0,0 +1,158 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
namespace SHADE_Scripting.UI
{
public class PreviewLevel : Script
{
private List<Camera> listOfCamera;
public Vector3 endPoint1;
public Vector3 endPoint2;
public Vector3 endPoint3;
public GameObject playerCamera;
public float duration = 3.0f;
private bool point1Done = false;
private bool point2Done = false;
private bool point3Done = false;
private bool reset2 = true;
private bool reset3 = true;
private bool skip = false;
[NonSerialized]
private TweenThreadVec3 moveToEndPoint1;
[NonSerialized]
private TweenThreadVec3 moveToEndPoint2;
[NonSerialized]
private TweenThreadVec3 moveToEndPoint3;
protected override void awake()
{
listOfCamera = GameObject.GetComponentsInChildren<Camera>().ToList();
if (listOfCamera.Count == 0)
Debug.LogError("EMPTY PREVIEW POINTS");
listOfCamera[0].SetMainCamera();
moveToEndPoint1 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[0].GetComponent<Transform>().LocalPosition, endPoint1, EASING_METHOD.EASE_IN_SINE);
moveToEndPoint2 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[1].GetComponent<Transform>().LocalPosition, endPoint2, EASING_METHOD.EASE_IN_SINE);
moveToEndPoint3 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[2].GetComponent<Transform>().LocalPosition, endPoint3, EASING_METHOD.EASE_IN_SINE);
}
protected override void update()
{
if (!SceneFadeInOut.Instance.FadeOutFinished() && !point1Done)
{
moveToEndPoint1.Reset();
return;
}
if (Input.GetKeyUp(Input.KeyCode.Space))
{
skip = true;
point1Done = true;
SceneFadeInOut.Instance.CallFadeIn();
SceneFadeInOut.Instance.alphaValue = 0.01f;
}
if (skip && SceneFadeInOut.Instance.FadeInFinished())
{
playerCamera.GetComponent<Camera>().SetMainCamera();
SceneFadeInOut.Instance.CallFadeOut();
}
if (skip && SceneFadeInOut.Instance.FadeOutFinished())
{
GameManager.Instance.PreviewLevelDone = true;
}
if (!skip)
{
if (!point1Done)
{
listOfCamera[0].GetComponent<Transform>().LocalPosition = moveToEndPoint1.GetValue();
if (moveToEndPoint1.IsCompleted())
{
point1Done = true;
SceneFadeInOut.Instance.CallFadeIn();
SceneFadeInOut.Instance.alphaValue = 0.01f;
}
}
if (SceneFadeInOut.Instance.FadeInFinished() && point1Done)
{
listOfCamera[1].SetMainCamera();
SceneFadeInOut.Instance.CallFadeOut();
}
if (SceneFadeInOut.Instance.FadeOutFinished() && point1Done)
{
if (!point2Done)
{
if (reset2)
{
moveToEndPoint2.Reset();
reset2 = false;
}
listOfCamera[1].GetComponent<Transform>().LocalPosition = moveToEndPoint2.GetValue();
if (moveToEndPoint2.IsCompleted())
{
point2Done = true;
SceneFadeInOut.Instance.CallFadeIn();
SceneFadeInOut.Instance.alphaValue = 0.01f;
}
}
}
if (SceneFadeInOut.Instance.FadeInFinished() && point2Done)
{
listOfCamera[2].SetMainCamera();
SceneFadeInOut.Instance.CallFadeOut();
}
if (SceneFadeInOut.Instance.FadeOutFinished() && point2Done)
{
if (!point3Done)
{
if (reset3)
{
moveToEndPoint3 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[2].GetComponent<Transform>().LocalPosition, endPoint3, EASING_METHOD.EASE_IN_SINE);
reset3 = false;
}
listOfCamera[2].GetComponent<Transform>().LocalPosition = moveToEndPoint3.GetValue();
if (moveToEndPoint3.IsCompleted())
{
point3Done = true;
SceneFadeInOut.Instance.CallFadeIn();
SceneFadeInOut.Instance.alphaValue = 0.01f;
}
}
}
if (SceneFadeInOut.Instance.FadeInFinished() && point3Done)
{
playerCamera.GetComponent<Camera>().SetMainCamera();
SceneFadeInOut.Instance.CallFadeOut();
}
if (SceneFadeInOut.Instance.FadeOutFinished() && point3Done)
{
GameManager.Instance.PreviewLevelDone = true;
}
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_PreviewLevel
ID: 155897609
Type: 9

View File

@ -52,12 +52,12 @@ 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));
}

View File

@ -409,7 +409,11 @@ public class Cutscene : Script
private void initCutscene1()
{
listOfCutscene1Points = cutscene1Points.GetComponentsInChildren<Transform>().ToList();
if(cutscene1Points)
listOfCutscene1Points = cutscene1Points.GetComponentsInChildren<Transform>().ToList();
else
Debug.LogError("Cutscene1Points Missing");
if (listOfCutscene1Points.Count == 0)
Debug.LogError("Cutscene1Points Empty");
@ -455,7 +459,11 @@ public class Cutscene : Script
private void initCutscene2()
{
listOfCutscene2Points = cutscene2Points.GetComponentsInChildren<Transform>().ToList();
if(cutscene2Points)
listOfCutscene2Points = cutscene2Points.GetComponentsInChildren<Transform>().ToList();
else
Debug.LogError("cutscene2Points Missing");
if (listOfCutscene2Points.Count == 0)
Debug.LogError("Cutscene2Points Empty");
@ -503,7 +511,11 @@ public class Cutscene : Script
private void initCutscene3()
{
listOfCutscene3Points = cutscene3Points.GetComponentsInChildren<Transform>().ToList();
if(cutscene3Points)
listOfCutscene3Points = cutscene3Points.GetComponentsInChildren<Transform>().ToList();
else
Debug.LogError("cutscene3Points Missing");
if (listOfCutscene3Points.Count == 0)
Debug.LogError("Cutscene3Points Empty");

View File

@ -8,16 +8,18 @@ public class PauseMenu : Script
public GameObject retryBtn;
public GameObject quitBtn;
public GameObject gamePauseText;
private TextRenderable gamePauseText;
public GameObject canvas;
protected override void awake()
{
GameManager.Instance.GamePause = false;
if (gamePauseText)
gamePauseText.GetComponent<TextRenderable>().Enabled = false;
if (canvas)
{
gamePauseText = canvas.GetComponentInChildren<TextRenderable>();
canvas.SetActive(false);
}
if (!resumeBtn)
Debug.LogError("Resume Btn missing");
@ -43,7 +45,7 @@ public class PauseMenu : Script
Application.IsCursorVisible = false;
AudioHandler.PauseAllSounds(false);
if (gamePauseText)
gamePauseText.GetComponent<TextRenderable>().Enabled = false;
gamePauseText.Enabled = false;
if (canvas)
canvas.SetActive(false);
}
@ -88,14 +90,14 @@ public class PauseMenu : Script
protected override void update()
{
if (Input.GetKeyUp(Input.KeyCode.Escape) && !GameManager.Instance.GamePause)
if (Input.GetKeyDown(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.GetComponent<TextRenderable>().Enabled = true;
gamePauseText.Enabled = true;
if (canvas)
canvas.SetActive(true);
}

View File

@ -51,6 +51,13 @@ namespace SHADE_Scripting.UI
//538x377
protected override void update()
{
if (!GameManager.Instance.PreviewLevelDone)
{
rot.Reset();
scaleX.Reset();
scaleY.Reset();
return;
}
if (!popInDone)
{
@ -79,11 +86,11 @@ namespace SHADE_Scripting.UI
if (scaleOutX.IsCompleted() && scaleOutY.IsCompleted())
{
GameObject.SetActive(false);
GameManager.Instance.stealFoodPopUpDone = true;
}
}
}
}
}

View File

@ -32,5 +32,5 @@ void main()
Out.uv = aUV;
Out.color = aColor;
gl_Position = cameraData.projMat * aTransform * vec4(aPos, 1.0f);
gl_Position = cameraData.vpMat * aTransform * vec4(aPos, 1.0f);
}

View File

@ -37,7 +37,7 @@ layout(location = 1) out uint outEntityID;
void main()
{
fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv);
if (fragColor.a < 0.01f)
if (fragColor.a < 0.1f)
{
discard;
}

Binary file not shown.

View File

@ -14,3 +14,4 @@
#include "Physics/Interface/SHColliderComponent.h"
#include "Graphics/MiddleEnd/TextRendering/SHTextRenderableComponent.h"
#include "AudioSystem/SHAudioListenerComponent.h"
#include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h"

View File

@ -27,6 +27,8 @@
#include "Physics/Collision/Shapes/SHSphere.h"
#include "../SHEditorWindowManager.h"
#include "../AssetBrowser/SHAssetBrowser.h"
#include "Graphics/MiddleEnd/TrajectoryRendering/SHTrajectoryRenderableComponent.h"
namespace SHADE
{
template<typename T>
@ -599,7 +601,7 @@ namespace SHADE
component->SetText(val);
}
);
SHEditorWidgets::DragVec3("Text Size", { "X", "Y", "Z" }, [&textComp = component]() {return textComp->GetTextSize();}, [&textComp = component](SHVec3 const& size) {textComp->SetTextSize(size); });
SHEditorWidgets::ColorPicker("Color", [&textComp = component]() {return textComp->GetColor(); }, [&textComp = component](SHVec4 const& newColor) {textComp->SetColor(newColor); });
}
else
@ -679,4 +681,95 @@ namespace SHADE
ImGui::PopID();
}
template<>
static void DrawComponent(SHTrajectoryRenderableComponent* component)
{
if (!component)
return;
ImGui::PushID(SHFamilyID<SHComponent>::GetID<SHTrajectoryRenderableComponent>());
const auto componentType = rttr::type::get(*component);
SHEditorWidgets::CheckBox("##IsActive", [component]() {return component->isActive; }, [component](bool const& active) {component->isActive = active; }, "Is Component Active");
ImGui::SameLine();
if (ImGui::CollapsingHeader(componentType.get_name().data(), ImGuiTreeNodeFlags_DefaultOpen))
{
DrawContextMenu(component);
Handle<SHMesh> const& mesh = component->GetMesh();
const auto MESH_NAME = SHResourceManager::GetAssetName<SHMesh>(mesh).value_or("");
SHEditorWidgets::DragDropReadOnlyField<AssetID>("Mesh", MESH_NAME, [component]()
{
Handle<SHMesh> const& mesh = component->GetMesh();
return SHResourceManager::GetAssetID<SHMesh>(mesh).value_or(0);
},
[component](AssetID const& id)
{
if (SHAssetManager::GetType(id) != AssetType::MESH)
{
SHLOG_WARNING("Attempted to assign non mesh asset to Renderable Mesh property!")
return;
}
component->SetMesh(SHResourceManager::LoadOrGet<SHMesh>(id));
SHResourceManager::FinaliseChanges();
}, SHDragDrop::DRAG_RESOURCE);
if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left))
{
if (Handle<SHMesh> const& mesh = component->GetMesh())
{
AssetID assetID = SHResourceManager::GetAssetID<SHMesh>(mesh).value_or(0);
SHEditorWindowManager::GetEditorWindow<SHAssetBrowser>()->SetScrollTo(assetID);
}
}
SHEditorWidgets::ColorPicker("Start Color",
[comp = component]()
{
SHVec4 newColor(comp->GetStartColor());
newColor.w = comp->GetStartAlpha();
return newColor;
},
[comp = component](SHVec4 vec)
{
SHVec3 temp{vec.x, vec.y, vec.z};
float a = vec.w;
comp->SetStartColor(temp);
comp->SetStartAlpha(a);
});
SHEditorWidgets::ColorPicker("End Color",
[comp = component]()
{
SHVec4 newColor(comp->GetEndColor());
newColor.w = comp->GetEndAlpha();
return newColor;
},
[comp = component](SHVec4 vec)
{
SHVec3 temp{ vec.x, vec.y, vec.z };
float a = vec.w;
comp->SetEndColor(temp);
comp->SetEndAlpha(a);
});
SHEditorWidgets::DragFloat("Color Evolve Rate",
[comp = component]()
{
return comp->GetColorEvolveRate();
},
[comp = component](float rate)
{
return comp->SetColorEvolveRate(rate);
});
}
else
{
DrawContextMenu(component);
}
ImGui::PopID();
}
}

View File

@ -262,7 +262,7 @@ namespace SHADE
copyRegions[i].imageSubresource.baseArrayLayer = 0; // TODO: Array textures not supported yet
copyRegions[i].imageSubresource.layerCount = layerCount;
copyRegions[i].imageOffset = vk::Offset3D{ 0,0,0 };
copyRegions[i].imageExtent = vk::Extent3D{ width >> i, height >> i, 1 };
copyRegions[i].imageExtent = vk::Extent3D{ std::max (1u, width >> i), std::max (1u, height >> i), 1 };
}
cmdBufferHdl->CopyBufferToImage(stagingBuffer, vkImage, copyRegions);

View File

@ -130,7 +130,7 @@ namespace SHADE
static constexpr std::string_view GBUFFER_WRITE_VFX_SUBPASS = "G-Buffer Write With VFX";
static constexpr std::string_view UI_SUBPASS = "UI";
static constexpr std::string_view UI_TRANSLUCENT_SUBPASS = "UI Translucent";
static constexpr std::string_view VFX_SUBPASS = "VFX";
static constexpr std::string_view VFX_SUBPASS = "VFX Subpass";
static constexpr std::string_view OBJ_VFX_SUBPASS = "Object VFX Subpass No Depth";
static constexpr std::array USABLE_SUBPASSES =
@ -362,6 +362,7 @@ namespace SHADE
*/
/***************************************************************************/
static constexpr uint32_t TRAJECTORY_COLOR = 2;
static constexpr uint32_t TRAJECTORY_TRANSFORM = 3;
static constexpr uint32_t CALCULATED_GLYPH_POSITION = 0;
static constexpr uint32_t GLYPH_INDEX = 1;

View File

@ -337,7 +337,7 @@ namespace SHADE
/* VFX PASS */
/*-----------------------------------------------------------------------*/
auto vfxPass = renderGraph->AddNode(SHGraphicsConstants::RenderGraphEntityNames::VFX_PASS.data(), { "Scene", "Depth Buffer" }, { SHGraphicsConstants::RenderGraphEntityNames::GBUFFER_PASS.data(), SHGraphicsConstants::RenderGraphEntityNames::DEFERRED_COMPOSITE_PASS.data() });
auto vfxSubpass = vfxPass->AddSubpass("Vfx Subpass", worldViewport, worldRenderer);
auto vfxSubpass = vfxPass->AddSubpass(SHGraphicsConstants::RenderGraphEntityNames::VFX_SUBPASS.data(), worldViewport, worldRenderer);
vfxSubpass->AddColorOutput("Scene");
vfxSubpass->AddDepthOutput("Depth Buffer");
vfxSubpass->AddExteriorDrawCalls([=](Handle<SHVkCommandBuffer> cmdBuffer, Handle<SHRenderer> renderer, uint32_t frameIndex)
@ -485,8 +485,8 @@ namespace SHADE
trajectoryRenderingSubSystem = resourceManager.Create<SHTrajectoryRenderingSubSystem>();
auto vfxNode = renderGraph->GetNode(SHGraphicsConstants::RenderGraphEntityNames::SCREEN_SPACE_PASS.data());
trajectoryRenderingSubSystem->Init(device, vfxNode->GetRenderpass(), vfxNode->GetSubpass(SHGraphicsConstants::RenderGraphEntityNames::UI_SUBPASS), trajectoryVS, trajectoryFS);
auto vfxNode = renderGraph->GetNode(SHGraphicsConstants::RenderGraphEntityNames::VFX_PASS.data());
trajectoryRenderingSubSystem->Init(device, vfxNode->GetRenderpass(), vfxNode->GetSubpass(SHGraphicsConstants::RenderGraphEntityNames::VFX_SUBPASS), trajectoryVS, trajectoryFS);
SHGlobalDescriptorSets::SetLightingSubSystem(lightingSubSystem);

View File

@ -29,6 +29,8 @@ namespace SHADE
// Default white color.
color = SHColour::WHITE;
textSize = SHVec3::One;
}
void SHTextRenderableComponent::OnDestroy(void)
@ -66,6 +68,11 @@ namespace SHADE
color = newColor;
}
void SHTextRenderableComponent::SetTextSize(SHVec3 const& size) noexcept
{
textSize = size;
}
/***************************************************************************/
/*!
@ -92,6 +99,11 @@ namespace SHADE
return color;
}
SHVec3 const& SHTextRenderableComponent::GetTextSize(void) const noexcept
{
return textSize;
}
}
namespace rttr

View File

@ -40,6 +40,9 @@ namespace SHADE
//! character position data for each letter in the text
Handle<SHVkBuffer> charPositionDataBuffer;
//! Text size. Multiplied to TRS.
SHVec3 textSize;
void MakeDirty (void) noexcept;
void Clean (void) noexcept;
@ -53,10 +56,12 @@ namespace SHADE
void SetText (std::string_view newText) noexcept;
void SetFont(Handle<SHFont> font) noexcept;
void SetColor(SHColour const& newColor) noexcept;
void SetTextSize (SHVec3 const& size) noexcept;
std::string const& GetText (void) const noexcept;
Handle<SHFont> GetFont (void) const noexcept;
SHColour const& GetColor (void) const noexcept;
SHVec3 const& GetTextSize (void) const noexcept;
friend class SHTextRenderingSubSystem;

View File

@ -210,10 +210,13 @@ namespace SHADE
cmdBuffer->BindVertexBuffer(SHGraphicsConstants::VertexBufferBindings::CALCULATED_GLYPH_POSITION, comp.charPositionDataBuffer, 0);
cmdBuffer->BindVertexBuffer(SHGraphicsConstants::VertexBufferBindings::GLYPH_INDEX, comp.indexingDataBuffer, 0);
auto const& textSize = comp.textSize;
SHMatrix textSizeScale{textSize.x, 0.0f, 0.0f, 0.0f, 0.0f, textSize.y, 0.0f, 0.0f, 0.0f, 0.0f, textSize.z, 0.0f};
if (auto* uiComp = SHComponentManager::GetComponent_s<SHUIComponent>(comp.GetEID()))
cmdBuffer->SetPushConstantVariable("TestPushConstant.worldTransform", uiComp->GetMatrix(), SH_PIPELINE_TYPE::GRAPHICS);
cmdBuffer->SetPushConstantVariable("TestPushConstant.worldTransform", textSizeScale * uiComp->GetMatrix(), SH_PIPELINE_TYPE::GRAPHICS);
else
cmdBuffer->SetPushConstantVariable("TestPushConstant.worldTransform", transform->GetTRS(), SH_PIPELINE_TYPE::GRAPHICS);
cmdBuffer->SetPushConstantVariable("TestPushConstant.worldTransform", textSizeScale * transform->GetTRS(), SH_PIPELINE_TYPE::GRAPHICS);
cmdBuffer->SetPushConstantVariable("TestPushConstant.eid", comp.GetEID(), SH_PIPELINE_TYPE::GRAPHICS);

View File

@ -71,7 +71,7 @@ namespace SHADE
//! of the texture library would mean the recreation of the desc set that also
//! involves the generic data, which is bad bad bad. Solution is to separate the
//! 2 desc sets.
static constexpr uint32_t DEFAULT_MAX_TEXTURES = 2000;
static constexpr uint32_t DEFAULT_MAX_TEXTURES = 1000;
/*-----------------------------------------------------------------------------*/
/* Usage Functions */

View File

@ -68,6 +68,8 @@ namespace SHADE
}
pipeline->GetPipelineState().SetColorBlenState(colorBlendState);
pipeline->ConstructPipeline();
}
void SHTrajectoryRenderingSubSystem::Run(uint32_t frameIndex) noexcept
@ -75,12 +77,16 @@ namespace SHADE
auto& comps = SHComponentManager::GetDense<SHTrajectoryRenderableComponent>();
for (auto& comp : comps)
{
comp.SetPositions(std::vector
{
SHVec3 {},
SHVec3 {}
});
//std::vector<SHVec3> test{};
//test.resize(10);
//float x = 0.0f;
//for (auto& vec : test)
//{
// vec = SHVec3(x, 5.0f, 0.0f);
// x += 0.5f;
//}
//comp.SetPositions (test);
// If has positions, feed data to buffer.
if (comp.HasPositions())
{
@ -122,12 +128,13 @@ namespace SHADE
transformData.push_back(trs);
colorData.push_back(currentColor);
// evolve lerp value and clamp to 1
lerpValue = std::min (1.0f, lerpValue + colorEvolveRate);
// evolve color
currentColor = SHVec3::Lerp(startColor, endColor, lerpValue);
currentColor.w = SHMath::Lerp (comp.GetStartAlpha(), comp.GetEndAlpha(), lerpValue);
// evolve lerp value and clamp to 1
lerpValue = std::max (1.0f, lerpValue + colorEvolveRate);
}
// add draw data for this trajectory
@ -178,6 +185,9 @@ namespace SHADE
// Bind color vertex buffer
cmdBuffer->BindVertexBuffer(SHGraphicsConstants::VertexBufferBindings::TRAJECTORY_COLOR, colorBuffer, 0);
// Bind transform data
cmdBuffer->BindVertexBuffer(SHGraphicsConstants::VertexBufferBindings::TRAJECTORY_TRANSFORM, transformBuffer, 0);
// call draw call
cmdBuffer->DrawMultiIndirect(drawDataBuffer, drawData.size());

View File

@ -247,6 +247,7 @@ namespace SHADE
AddComponentToComponentNode<SHAnimatorComponent>(components, eid);
AddComponentToComponentNode<SHUIComponent>(components, eid);
AddComponentToComponentNode<SHAudioListenerComponent>(components, eid);
AddComponentToComponentNode<SHTrajectoryRenderableComponent>(components, eid);
node[ComponentsNode] = components;
@ -308,6 +309,7 @@ namespace SHADE
AddComponentID<SHAnimatorComponent>(componentIDList, componentsNode);
AddComponentID<SHUIComponent>(componentIDList, componentsNode);
AddComponentID<SHAudioListenerComponent>(componentIDList, componentsNode);
AddComponentID<SHTrajectoryRenderableComponent>(componentIDList, componentsNode);
return componentIDList;
}
@ -395,5 +397,6 @@ namespace SHADE
SHSerializationHelper::InitializeComponentFromNode<SHAnimatorComponent>(componentsNode, eid);
SHSerializationHelper::InitializeComponentFromNode<SHUIComponent>(componentsNode, eid);
SHSerializationHelper::InitializeComponentFromNode<SHAudioListenerComponent>(componentsNode, eid);
SHSerializationHelper::InitializeComponentFromNode<SHTrajectoryRenderableComponent>(componentsNode, eid);
}
}

View File

@ -207,10 +207,10 @@ namespace SHADE
if constexpr (YAML::HasYAMLConv<ComponentType>())
{
auto component = SHComponentManager::GetComponent_s<ComponentType>(eid);
if (componentsNode.IsNull() || !component)
if (!component)
return false;
auto componentNode = GetComponentNode<ComponentType>(componentsNode, eid);
if (componentNode.IsNull() || !componentNode.IsDefined())
if (!componentNode.IsDefined())
return false;
if (componentNode[IsActive.data()].IsDefined())
component->isActive = componentNode[IsActive.data()].as<bool>();
@ -220,7 +220,7 @@ namespace SHADE
else
{
ComponentType* component = SHComponentManager::GetComponent_s<ComponentType>(eid);
if (componentsNode.IsNull() && !component)
if (!component)
return false;
auto rttrType = rttr::type::get<ComponentType>();
auto componentNode = componentsNode[rttrType.get_name().data()];

View File

@ -32,6 +32,8 @@ namespace YAML
struct HasYAMLConv<SHTextRenderableComponent> : std::true_type {};
template<>
struct HasYAMLConv<SHAnimatorComponent> : std::true_type {};
template<>
struct HasYAMLConv<SHTrajectoryRenderableComponent> : std::true_type {};
template<>
struct convert<SHVec4>
@ -355,6 +357,7 @@ namespace YAML
static constexpr std::string_view TEXT_YAML_TAG = "Text";
static constexpr std::string_view FONT_YAML_TAG = "Font";
static constexpr std::string_view COLOR_YAML_TAG = "Color";
static constexpr std::string_view TEXT_SIZE_YAML_TAG = "Text Size";
static YAML::Node encode(SHTextRenderableComponent const& rhs)
{
@ -370,7 +373,8 @@ namespace YAML
{
node[FONT_YAML_TAG.data()] = 0;
}
node[COLOR_YAML_TAG.data()] = SHVec4 (textColor);
node[COLOR_YAML_TAG.data()] = SHVec4(textColor);
node[TEXT_SIZE_YAML_TAG.data()] = rhs.GetTextSize();
return node;
}
static bool decode(YAML::Node const& node, SHTextRenderableComponent& rhs)
@ -393,6 +397,10 @@ namespace YAML
{
rhs.SetColor(node[COLOR_YAML_TAG.data()].as<SHVec4>());
}
if (node[TEXT_SIZE_YAML_TAG.data()].IsDefined())
{
rhs.SetTextSize(node[TEXT_SIZE_YAML_TAG.data()].as<SHVec3>());
}
return true;
}
};
@ -431,6 +439,8 @@ namespace YAML
static constexpr std::string_view MESH_YAML_TAG = "Mesh";
static constexpr std::string_view START_COLOR_YAML_TAG = "Start Color";
static constexpr std::string_view END_COLOR_YAML_TAG = "End Color";
static constexpr std::string_view START_ALPHA_YAML_TAG = "Start Alpha";
static constexpr std::string_view END_ALPHA_YAML_TAG = "End Alpha";
static constexpr std::string_view COLOR_EVAL_RATE_YAML_TAG = "Color Eval Rate ";
static YAML::Node encode(SHTrajectoryRenderableComponent const& rhs)
@ -438,7 +448,9 @@ namespace YAML
YAML::Node node;
node[MESH_YAML_TAG.data()] = SHResourceManager::GetAssetID<SHMesh>(rhs.GetMesh()).value_or(0);
node[START_COLOR_YAML_TAG.data()] = SHVec3(rhs.GetStartColor());
node[START_ALPHA_YAML_TAG.data()] = rhs.GetStartAlpha();
node[END_COLOR_YAML_TAG.data()] = SHVec3(rhs.GetEndColor());
node[END_ALPHA_YAML_TAG.data()] = rhs.GetEndAlpha();
node[COLOR_EVAL_RATE_YAML_TAG.data()] = rhs.GetColorEvolveRate();
return node;
@ -447,10 +459,19 @@ namespace YAML
{
if (node[MESH_YAML_TAG.data()].IsDefined())
rhs.SetMesh(SHResourceManager::LoadOrGet<SHMesh>(node[MESH_YAML_TAG.data()].as<AssetID>()));
if (node[START_COLOR_YAML_TAG.data()].IsDefined())
rhs.SetStartColor(node[START_COLOR_YAML_TAG.data()].as<SHVec3>());
if (node[START_ALPHA_YAML_TAG.data()].IsDefined())
rhs.SetStartAlpha(node[START_ALPHA_YAML_TAG.data()].as<float>());
if (node[END_COLOR_YAML_TAG.data()].IsDefined())
rhs.SetEndColor(node[END_COLOR_YAML_TAG.data()].as<SHVec3>());
if (node[END_ALPHA_YAML_TAG.data()].IsDefined())
rhs.SetEndAlpha(node[END_ALPHA_YAML_TAG.data()].as<float>());
if (node[COLOR_EVAL_RATE_YAML_TAG.data()].IsDefined())
rhs.SetColorEvolveRate(node[COLOR_EVAL_RATE_YAML_TAG.data()].as<float>());