Add shield effects

This commit is contained in:
Sofia 2026-07-29 21:55:43 +03:00
parent c19c32ccd1
commit bfddd3129f
5 changed files with 271 additions and 17 deletions

View File

@ -2,12 +2,19 @@
[ext_resource type="PackedScene" uid="uid://bod6b3befmyt5" path="res://scenes/player/soldier_m.tscn" id="1_jd651"]
[ext_resource type="PackedScene" uid="uid://cl66unms2gim0" path="res://scenes/player/effects.tscn" id="2_ywmwa"]
[ext_resource type="Shader" uid="uid://datt1r440base" path="res://shaders/vignette.tres" id="3_7awel"]
[ext_resource type="PackedScene" uid="uid://c1gs6cqek1qlq" path="res://scenes/ui/hud.tscn" id="5_cv68x"]
[ext_resource type="Texture2D" uid="uid://bdfqu6p74pfwe" path="res://raw_assets/crosshair/Crosshair 1.png" id="6_7awel"]
[ext_resource type="AudioStream" uid="uid://bfg31e3s4jv8c" path="res://raw_assets/sfx/Hit.mp3" id="7_dguuj"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_oh8vq"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dguuj"]
shader = ExtResource("3_7awel")
shader_parameter/Color = Color(1, 0, 0, 1)
shader_parameter/RimDistance = 0.7
shader_parameter/FloatParameter = 3.0
[node name="player" type="LocalPlayer" unique_id=863055906 node_paths=PackedStringArray("camera", "soldier_mesh", "collider", "effects", "dead_cam_target", "respawn_label", "camera_origin", "weapon_node", "hud", "hit_sound")]
look_sensitivity = 1.5
camera = NodePath("camera_3d")
@ -49,6 +56,14 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.16157162, 1.4223524, 0)
[node name="dead_camera_target" type="Node3D" parent="." unique_id=559969559]
transform = Transform3D(1, 0, 0, 0, 0.9069022, 0.4213412, 0, -0.4213412, 0.9069022, 0, 2.3258846, 1.5254744)
[node name="vignette" type="ColorRect" parent="." unique_id=1797767615]
material = SubResource("ShaderMaterial_dguuj")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="crosshair" type="TextureRect" parent="." unique_id=1329977849]
modulate = Color(1, 1, 1, 0.5058824)
anchors_preset = 8

View File

@ -5,8 +5,9 @@
[ext_resource type="PackedScene" uid="uid://ci8r4lgijtalh" path="res://scenes/player/ball_weapon.tscn" id="2_jbny0"]
[ext_resource type="PackedScene" uid="uid://deyfeiqyi0wmj" path="res://scenes/player/shotgun.tscn" id="2_kknoo"]
[ext_resource type="Texture2D" uid="uid://cbvxh8xp8ilac" path="res://assets/Soldier.png" id="5_hjbn3"]
[ext_resource type="Shader" uid="uid://canvckfs02odw" path="res://shaders/bubble_shader.tres" id="6_3lfhi"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3lfhi"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hjbn3"]
resource_local_to_scene = true
albedo_texture = ExtResource("5_hjbn3")
texture_filter = 0
@ -51,6 +52,16 @@ nodes/Movement/node = SubResource("AnimationNodeBlendSpace2D_tt88r")
nodes/Movement/position = Vector2(350, 90)
node_connections = [&"output", 0, &"Movement"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tt88r"]
render_priority = 0
shader = ExtResource("6_3lfhi")
shader_parameter/BubbleColor = Color(1, 1, 1, 1)
[sub_resource type="CapsuleMesh" id="CapsuleMesh_1cgct"]
material = SubResource("ShaderMaterial_tt88r")
radius = 1.3764648
height = 4.480774
[node name="soldier_m" type="SoldierMesh" unique_id=281995630 node_paths=PackedStringArray("hand_attachment", "animation_tree", "skeleton", "mesh", "look_at", "hand_remover")]
hand_attachment = NodePath("bone_attachment_3d/hand")
animation_tree = NodePath("animation_tree")
@ -67,10 +78,10 @@ hand_remover = NodePath("SoldierM/Soldier/Skeleton3D/player_hand_remover")
[node name="Skeleton3D" parent="SoldierM/Soldier" parent_id_path=PackedInt32Array(1868587353, 1101404322) index="0" unique_id=1074852808]
bones/0/position = Vector3(0, 0, 0.00071418716)
bones/1/position = Vector3(0, 0, -0.007)
bones/1/rotation = Quaternion(0.707061, 0, 0, 0.70715255)
bones/1/rotation = Quaternion(0.6956638, 0, 0, 0.71836746)
bones/1/scale = Vector3(1, 1, 1)
bones/2/position = Vector3(0.002, 3.469447e-18, -1.4901118e-10)
bones/2/rotation = Quaternion(0.9515771, 2.0946482e-08, 2.3652152e-08, -0.30741027)
bones/2/rotation = Quaternion(0.94657123, 2.131974e-08, 2.3316254e-08, -0.3224949)
bones/2/scale = Vector3(1, 1, 1)
bones/3/position = Vector3(0, 0.0069999984, 5.169879e-25)
bones/3/scale = Vector3(1, 0.99999994, 1)
@ -78,7 +89,7 @@ bones/4/position = Vector3(-2.39752e-11, 0.010049875, -1.4156722e-10)
bones/4/rotation = Quaternion(0.73982674, -2.6881349e-08, 7.0005948e-09, 0.67279744)
bones/4/scale = Vector3(1, 0.99999994, 0.99999994)
bones/6/position = Vector3(-0.002, 3.469447e-18, -1.4901205e-10)
bones/6/rotation = Quaternion(0.99906224, 1.784155e-08, 1.8973411e-08, 0.043298792)
bones/6/rotation = Quaternion(0.99957573, 1.8108768e-08, 1.8718543e-08, 0.029129328)
bones/6/scale = Vector3(1, 1, 1)
bones/7/position = Vector3(0, 0.0069999984, -5.169879e-25)
bones/7/rotation = Quaternion(-0.21973656, 4.264305e-08, 9.604991e-09, 0.9755593)
@ -87,33 +98,33 @@ bones/8/position = Vector3(-2.3975525e-11, 0.010049875, -4.6138777e-11)
bones/8/rotation = Quaternion(0.86758894, -7.867721e-09, 3.036851e-08, 0.4972821)
bones/8/scale = Vector3(1, 0.99999994, 0.99999994)
bones/10/position = Vector3(0, 0.009, 0)
bones/10/rotation = Quaternion(-0.17217702, -0.13130672, 0.022171758, 0.9760237)
bones/10/rotation = Quaternion(-0.15655811, -0.13162379, 0.020073986, 0.9786531)
bones/10/scale = Vector3(1, 1, 1)
bones/11/position = Vector3(6.8186457e-17, 0.008, 0.001)
bones/11/rotation = Quaternion(5.6336947e-05, 1.1336415e-07, -1.5418686e-05, 1)
bones/11/rotation = Quaternion(0.050897807, 0.0001023451, -0.013928697, 0.9986068)
bones/11/scale = Vector3(1, 1, 1)
bones/12/position = Vector3(-2.2285185e-16, 0.0035, 0.0015000002)
bones/12/rotation = Quaternion(-0.70710677, 0, 0, 0.70710677)
bones/12/scale = Vector3(1, 1, 1)
bones/14/position = Vector3(0.005, 0.005, -1.7336413e-21)
bones/14/rotation = Quaternion(0.8812731, 0.032443736, 0.4378821, -0.17482696)
bones/14/rotation = Quaternion(0.8931964, 0.033241358, 0.4331066, -0.11624925)
bones/14/scale = Vector3(1, 0.99999994, 1)
bones/15/position = Vector3(-1.3005262e-15, 0.0050000004, -6.938894e-18)
bones/15/rotation = Quaternion(1.0136929e-08, -7.095393e-09, 0.9187736, 0.3947851)
bones/15/rotation = Quaternion(1.0327169e-08, -6.815531e-09, 0.9292259, 0.36951232)
bones/15/scale = Vector3(1, 1, 1)
bones/16/position = Vector3(7.632945e-11, 0.007071071, 6.938894e-18)
bones/16/rotation = Quaternion(0.029925434, -0.03646163, -0.18585494, 0.98144436)
bones/16/rotation = Quaternion(0.009291643, -0.08686193, -0.18488745, 0.9788695)
bones/16/scale = Vector3(0.99999994, 0.9999999, 1)
bones/18/position = Vector3(-0.005, 0.005, -1.7303326e-21)
bones/18/rotation = Quaternion(0.64453954, 0.21452981, -0.0943058, -0.72777206)
bones/18/rotation = Quaternion(0.65577567, 0.17340483, -0.12684758, -0.72373945)
bones/18/scale = Vector3(1, 0.99999994, 1)
bones/19/position = Vector3(-1.3005262e-15, 0.0050000004, -6.938894e-18)
bones/19/rotation = Quaternion(-1.7099223e-08, -3.7721332e-08, -0.15766992, 0.98749197)
bones/19/rotation = Quaternion(-2.0834433e-08, -3.5793978e-08, -0.25694573, 0.96642584)
bones/19/scale = Vector3(1, 1, 1)
bones/20/position = Vector3(-2.2286711e-10, 0.007071072, 0)
bones/20/rotation = Quaternion(-0.14211333, -0.45638156, -0.17767368, 0.8602045)
bones/20/rotation = Quaternion(-0.1155467, -0.46956262, -0.13840127, 0.8642945)
bones/20/scale = Vector3(1, 0.9999999, 1)
bones/22/position = Vector3(0.012581623, -0.0085772155, 0.0021672463)
bones/22/position = Vector3(0.011440838, -0.0085772155, 0.002479433)
bones/22/rotation = Quaternion(3.090862e-08, 0.70710677, 0.70710677, 3.090862e-08)
bones/22/scale = Vector3(1, 1, 1)
bones/24/position = Vector3(-0.011000002, 0.0050000013, 0.0070000007)
@ -133,7 +144,7 @@ bones/36/position = Vector3(-0.002, -0.00568604, -0.02264523)
bones/36/rotation = Quaternion(0, 0, 0, 1)
[node name="Soldier_Male_Mesh" parent="SoldierM/Soldier/Skeleton3D" index="0" unique_id=1117347105]
surface_material_override/0 = SubResource("StandardMaterial3D_3lfhi")
surface_material_override/0 = SubResource("StandardMaterial3D_hjbn3")
[node name="look_at_modifier_3d" type="LookAtModifier3D" parent="SoldierM/Soldier/Skeleton3D" index="1" unique_id=1054155740]
target_node = NodePath("../../../../look_at_root/look_at")
@ -168,7 +179,7 @@ origin_external_node = NodePath("../../../../look_at_root")
transform = Transform3D(1, -2.2737368e-13, 0, 2.2737368e-13, 1, 0, -1.3552527e-20, 0, 1, 0, 0, 0)
[node name="bone_attachment_3d" type="BoneAttachment3D" parent="." unique_id=1964353847]
transform = Transform3D(-31.442406, 3.474139, -94.86467, -87.30682, 38.17428, 30.335432, 37.26781, 92.36152, -8.969748, -0.47997, 3.3490868, 0.74448436)
transform = Transform3D(-34.56755, 3.8521445, -93.756294, -84.08145, 43.085724, 32.77075, 41.657993, 90.15971, -11.654766, -0.4726672, 3.3849456, 0.7415116)
bone_name = "HAND.R_end"
bone_idx = 17
use_external_skeleton = true
@ -189,4 +200,8 @@ transform = Transform3D(1, 0, 0, 0, 1.0000001, 0, 0, 0, 1.0000001, 0, 3.7622375,
[node name="look_at" type="Node3D" parent="look_at_root" unique_id=1308525699]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.698)
[node name="bubble" type="MeshInstance3D" parent="." unique_id=2033209152]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0816538, 0)
mesh = SubResource("CapsuleMesh_1cgct")
[editable path="SoldierM"]

View File

@ -0,0 +1,62 @@
[gd_resource type="VisualShader" format=3 uid="uid://canvckfs02odw"]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_m0u34"]
default_input_values = [0, 0.0, 1, 0.5]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_aiwsy"]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_7h3f8"]
default_input_values = [0, 0.0, 1, 0.5]
[sub_resource type="VisualShaderNodeFresnel" id="VisualShaderNodeFresnel_m0u34"]
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_rsany"]
operator = 2
[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_aiwsy"]
parameter_name = "BubbleColor"
default_value_enabled = true
[sub_resource type="VisualShaderNodeVectorDecompose" id="VisualShaderNodeVectorDecompose_m0u34"]
default_input_values = [0, Quaternion(0, 0, 0, 0)]
op_type = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_rsany"]
operator = 2
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_5614y"]
input_name = "time"
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_om1j3"]
function = 0
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_6ouiq"]
default_input_values = [0, 0.0, 1, 1.0]
[resource]
nodes/fragment/0/position = Vector2(1150, 120)
nodes/fragment/2/node = SubResource("VisualShaderNodeFresnel_m0u34")
nodes/fragment/2/position = Vector2(-370, 170)
nodes/fragment/3/node = SubResource("VisualShaderNodeVectorOp_rsany")
nodes/fragment/3/position = Vector2(120, 200)
nodes/fragment/4/node = SubResource("VisualShaderNodeColorParameter_aiwsy")
nodes/fragment/4/position = Vector2(-480, 410)
nodes/fragment/5/node = SubResource("VisualShaderNodeVectorDecompose_m0u34")
nodes/fragment/5/position = Vector2(-40, 500)
nodes/fragment/6/node = SubResource("VisualShaderNodeFloatOp_rsany")
nodes/fragment/6/position = Vector2(210, 470)
nodes/fragment/7/node = SubResource("VisualShaderNodeInput_5614y")
nodes/fragment/7/position = Vector2(250, 1250)
nodes/fragment/8/node = SubResource("VisualShaderNodeFloatFunc_om1j3")
nodes/fragment/8/position = Vector2(270, 1130)
nodes/fragment/9/node = SubResource("VisualShaderNodeFloatOp_6ouiq")
nodes/fragment/9/position = Vector2(270, 960)
nodes/fragment/10/node = SubResource("VisualShaderNodeFloatOp_m0u34")
nodes/fragment/10/position = Vector2(270, 790)
nodes/fragment/11/node = SubResource("VisualShaderNodeFloatOp_aiwsy")
nodes/fragment/11/position = Vector2(650, 490)
nodes/fragment/12/node = SubResource("VisualShaderNodeFloatOp_7h3f8")
nodes/fragment/12/position = Vector2(510, 730)
nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 0, 0, 0, 4, 0, 5, 0, 4, 0, 3, 1, 2, 0, 6, 0, 5, 3, 6, 1, 7, 0, 8, 0, 8, 0, 9, 0, 9, 0, 10, 0, 6, 0, 11, 0, 11, 0, 0, 1, 10, 0, 12, 0, 12, 0, 11, 1)

152
godot/shaders/vignette.tres Normal file
View File

@ -0,0 +1,152 @@
[gd_resource type="VisualShader" format=3 uid="uid://datt1r440base"]
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_jyxcy"]
parameter_name = "FloatParameter"
hint = 2
min = 1.0
max = 10.0
step = 0.5
default_value_enabled = true
default_value = 3.0
[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_jyxcy"]
expanded_output_ports = [0]
parameter_name = "Color"
default_value_enabled = true
default_value = Color(1, 0, 0, 1)
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_de6xh"]
operator = 2
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_de6xh"]
input_name = "time"
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_c4357"]
function = 0
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_fcsw6"]
operator = 2
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_pksew"]
default_input_values = [0, 0.0, 1, 2.0]
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_k2y31"]
default_input_values = [0, 0.0, 1, 0.5]
operator = 2
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_jyxcy"]
input_name = "uv"
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_gbuoh"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(0.5, 0.5)]
op_type = 0
operator = 1
[sub_resource type="VisualShaderNodeVectorFunc" id="VisualShaderNodeVectorFunc_de6xh"]
output_port_for_preview = 0
default_input_values = [0, Vector2(0, 0)]
expanded_output_ports = [0]
op_type = 0
function = 4
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_jyxcy"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(2, 2)]
op_type = 0
operator = 2
[sub_resource type="VisualShaderNodeVectorDistance" id="VisualShaderNodeVectorDistance_jyxcy"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)]
op_type = 0
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_jyxcy"]
default_input_values = [0, 0.0, 1, 0.7]
operator = 1
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_gbuoh"]
default_input_values = [0, 0.0, 1, 3.0]
operator = 3
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_de6xh"]
parameter_name = "RimDistance"
hint = 2
default_value_enabled = true
default_value = 0.7
[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_jyxcy"]
constant = Color(1, 0, 0, 1)
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_gbuoh"]
input_name = "uv"
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_de6xh"]
default_input_values = [0, Vector2(0, 0), 1, Vector2(0.5, 0.5)]
op_type = 0
operator = 1
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_c4357"]
output_port_for_preview = 0
default_input_values = [0, Vector2(0, 0), 1, Vector2(2, 2)]
op_type = 0
operator = 2
[sub_resource type="VisualShaderNodeVectorFunc" id="VisualShaderNodeVectorFunc_fcsw6"]
output_port_for_preview = 1
default_input_values = [0, Vector2(0, 0)]
expanded_output_ports = [0]
op_type = 0
function = 4
[sub_resource type="VisualShaderNodeVec3Constant" id="VisualShaderNodeVec3Constant_pksew"]
constant = Vector3(1, 0, 0)
[resource]
mode = 1
flags/light_only = false
nodes/vertex/0/position = Vector2(710, 300)
nodes/vertex/2/node = SubResource("VisualShaderNodeColorConstant_jyxcy")
nodes/vertex/2/position = Vector2(-230, 100)
nodes/vertex/3/node = SubResource("VisualShaderNodeInput_gbuoh")
nodes/vertex/3/position = Vector2(-600, 300)
nodes/vertex/4/node = SubResource("VisualShaderNodeVectorOp_de6xh")
nodes/vertex/4/position = Vector2(-280, 440)
nodes/vertex/6/node = SubResource("VisualShaderNodeVectorOp_c4357")
nodes/vertex/6/position = Vector2(-40, 430)
nodes/vertex/7/node = SubResource("VisualShaderNodeVectorFunc_fcsw6")
nodes/vertex/7/position = Vector2(220, 380)
nodes/vertex/8/node = SubResource("VisualShaderNodeVec3Constant_pksew")
nodes/vertex/8/position = Vector2(180, 100)
nodes/vertex/connections = PackedInt32Array(4, 0, 6, 0, 6, 0, 7, 0, 3, 0, 4, 0, 8, 0, 0, 2, 7, 1, 0, 3)
nodes/fragment/0/position = Vector2(2820, 0)
nodes/fragment/2/node = SubResource("VisualShaderNodeInput_jyxcy")
nodes/fragment/2/position = Vector2(-520, 330)
nodes/fragment/3/node = SubResource("VisualShaderNodeVectorOp_gbuoh")
nodes/fragment/3/position = Vector2(-110, 390)
nodes/fragment/4/node = SubResource("VisualShaderNodeVectorFunc_de6xh")
nodes/fragment/4/position = Vector2(190, 380)
nodes/fragment/5/node = SubResource("VisualShaderNodeVectorOp_jyxcy")
nodes/fragment/5/position = Vector2(490, 320)
nodes/fragment/6/node = SubResource("VisualShaderNodeVectorDistance_jyxcy")
nodes/fragment/6/position = Vector2(840, 320)
nodes/fragment/7/node = SubResource("VisualShaderNodeFloatOp_jyxcy")
nodes/fragment/7/position = Vector2(1070, 270)
nodes/fragment/8/node = SubResource("VisualShaderNodeFloatOp_gbuoh")
nodes/fragment/8/position = Vector2(1300, 250)
nodes/fragment/9/node = SubResource("VisualShaderNodeFloatParameter_de6xh")
nodes/fragment/9/position = Vector2(730, 530)
nodes/fragment/10/node = SubResource("VisualShaderNodeFloatParameter_jyxcy")
nodes/fragment/10/position = Vector2(1080, 550)
nodes/fragment/11/node = SubResource("VisualShaderNodeColorParameter_jyxcy")
nodes/fragment/11/position = Vector2(1100, -180)
nodes/fragment/12/node = SubResource("VisualShaderNodeFloatOp_de6xh")
nodes/fragment/12/position = Vector2(2470, 160)
nodes/fragment/13/node = SubResource("VisualShaderNodeInput_de6xh")
nodes/fragment/13/position = Vector2(1480, 740)
nodes/fragment/14/node = SubResource("VisualShaderNodeFloatFunc_c4357")
nodes/fragment/14/position = Vector2(1560, 550)
nodes/fragment/15/node = SubResource("VisualShaderNodeFloatOp_fcsw6")
nodes/fragment/15/position = Vector2(2330, 290)
nodes/fragment/16/node = SubResource("VisualShaderNodeFloatOp_pksew")
nodes/fragment/16/position = Vector2(1870, 460)
nodes/fragment/17/node = SubResource("VisualShaderNodeFloatOp_k2y31")
nodes/fragment/17/position = Vector2(2080, 420)
nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 7, 0, 8, 0, 9, 0, 7, 1, 10, 0, 8, 1, 11, 0, 0, 0, 12, 0, 0, 1, 11, 4, 12, 0, 13, 0, 14, 0, 8, 0, 15, 0, 15, 0, 12, 1, 14, 0, 16, 0, 16, 0, 17, 0, 17, 0, 15, 1)

View File

@ -2,8 +2,8 @@ use std::{f32::consts::PI, ops::Neg};
use godot::{
classes::{
AudioStreamPlayer, Camera3D, CharacterBody3D, CollisionShape3D, ICharacterBody3D, Input,
InputEvent, InputEventMouseMotion, Label, input::MouseMode,
AudioStreamPlayer, Camera3D, CharacterBody3D, CollisionShape3D, ColorRect,
ICharacterBody3D, Input, InputEvent, InputEventMouseMotion, Label, input::MouseMode,
},
obj::WithBaseField,
prelude::*,
@ -43,6 +43,8 @@ pub struct LocalPlayer {
#[export]
camera: Option<Gd<Camera3D>>,
#[export]
vignette: Option<Gd<ColorRect>>,
#[export]
move_speed: f32,
#[export]
soldier_mesh: Option<Gd<SoldierMesh>>,
@ -782,6 +784,14 @@ impl LocalPlayer {
None
}
}
fn change_vignette_color(&mut self, color: Color) {
if let Some(rect) = &mut self.vignette
&& let Some(mut mat) = rect.get_material()
{
mat.set("shader_parameter/Color", &color.to_variant());
}
}
}
#[godot_dyn]