generated from krampus/template-godot4
Compare commits
6 Commits
5d8516398d
...
189e4c85cf
Author | SHA1 | Date | |
---|---|---|---|
189e4c85cf | |||
685565ed27 | |||
3aef4bc649 | |||
1b90a5eea8 | |||
cd9e13e870 | |||
7f83fa6244 |
@ -39,6 +39,8 @@ SETTINGS_SENSITIVITY_Y,"Sensitivity, Vertical"
|
|||||||
SETTINGS_MOUSE_ACCELERATION,"Mouse Acceleration"
|
SETTINGS_MOUSE_ACCELERATION,"Mouse Acceleration"
|
||||||
SETTINGS_INVERT_PITCH,"Invert Pitch"
|
SETTINGS_INVERT_PITCH,"Invert Pitch"
|
||||||
SETTINGS_HOLD_TO_SNEAK,"Hold to Sneak"
|
SETTINGS_HOLD_TO_SNEAK,"Hold to Sneak"
|
||||||
|
SETTINGS_ROTATION_SENSITIVITY_X,"Object Rotation Sensitivity, Horizontal"
|
||||||
|
SETTINGS_ROTATION_SENSITIVITY_Y,"Object Rotation Sensitivity, Vertical"
|
||||||
SETTINGS_GRAPHICS,Graphics
|
SETTINGS_GRAPHICS,Graphics
|
||||||
SETTINGS_GRAPHICS_HEADING,"Graphics & Display"
|
SETTINGS_GRAPHICS_HEADING,"Graphics & Display"
|
||||||
SETTINGS_GRAPHICS_DISPLAY_HEADING,Display
|
SETTINGS_GRAPHICS_DISPLAY_HEADING,Display
|
||||||
@ -60,6 +62,7 @@ ACTION_sneak,Sneak
|
|||||||
ACTION_sprint,Sprint
|
ACTION_sprint,Sprint
|
||||||
ACTION_fire,"Fire equipped tool"
|
ACTION_fire,"Fire equipped tool"
|
||||||
ACTION_interact,Interact
|
ACTION_interact,Interact
|
||||||
|
ACTION_rotate_object,"Rotate held object (hold)"
|
||||||
ACTION_switch_mode,"Tool mode switch"
|
ACTION_switch_mode,"Tool mode switch"
|
||||||
ACTION_select_next_tool,"Select next tool"
|
ACTION_select_next_tool,"Select next tool"
|
||||||
ACTION_select_prev_tool,"Select previous tool"
|
ACTION_select_prev_tool,"Select previous tool"
|
||||||
|
|
@ -177,6 +177,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
alpha_curve = SubResource("CurveTexture_ty63v")
|
alpha_curve = SubResource("CurveTexture_ty63v")
|
||||||
|
@ -68,6 +68,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
turbulence_enabled = true
|
turbulence_enabled = true
|
||||||
|
@ -53,6 +53,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_5ac7v")
|
scale_curve = SubResource("CurveTexture_5ac7v")
|
||||||
color_ramp = SubResource("GradientTexture1D_08px8")
|
color_ramp = SubResource("GradientTexture1D_08px8")
|
||||||
alpha_curve = SubResource("CurveTexture_mcskc")
|
alpha_curve = SubResource("CurveTexture_mcskc")
|
||||||
|
@ -59,6 +59,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_5ac7v")
|
scale_curve = SubResource("CurveTexture_5ac7v")
|
||||||
color_ramp = SubResource("GradientTexture1D_08px8")
|
color_ramp = SubResource("GradientTexture1D_08px8")
|
||||||
alpha_curve = SubResource("CurveTexture_mcskc")
|
alpha_curve = SubResource("CurveTexture_mcskc")
|
||||||
@ -168,6 +169,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_5ac7v")
|
scale_curve = SubResource("CurveTexture_5ac7v")
|
||||||
color_ramp = SubResource("GradientTexture1D_08px8")
|
color_ramp = SubResource("GradientTexture1D_08px8")
|
||||||
alpha_curve = SubResource("CurveTexture_mcskc")
|
alpha_curve = SubResource("CurveTexture_mcskc")
|
||||||
|
@ -53,6 +53,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_5ac7v")
|
scale_curve = SubResource("CurveTexture_5ac7v")
|
||||||
color_ramp = SubResource("GradientTexture1D_08px8")
|
color_ramp = SubResource("GradientTexture1D_08px8")
|
||||||
alpha_curve = SubResource("CurveTexture_mcskc")
|
alpha_curve = SubResource("CurveTexture_mcskc")
|
||||||
|
@ -77,6 +77,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
turbulence_enabled = true
|
turbulence_enabled = true
|
||||||
@ -168,6 +169,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_ii88q")
|
scale_curve = SubResource("CurveTexture_ii88q")
|
||||||
color_ramp = SubResource("GradientTexture1D_8r2kq")
|
color_ramp = SubResource("GradientTexture1D_8r2kq")
|
||||||
alpha_curve = SubResource("CurveTexture_ncghj")
|
alpha_curve = SubResource("CurveTexture_ncghj")
|
||||||
|
@ -446,6 +446,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
alpha_curve = SubResource("CurveTexture_ty63v")
|
alpha_curve = SubResource("CurveTexture_ty63v")
|
||||||
|
@ -88,6 +88,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
alpha_curve = SubResource("CurveTexture_ty63v")
|
alpha_curve = SubResource("CurveTexture_ty63v")
|
||||||
|
@ -135,6 +135,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
alpha_curve = SubResource("CurveTexture_ty63v")
|
alpha_curve = SubResource("CurveTexture_ty63v")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=63 format=4 uid="uid://tvirbm0kgvp8"]
|
[gd_scene load_steps=62 format=4 uid="uid://tvirbm0kgvp8"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_fgk6j"]
|
[ext_resource type="PackedScene" uid="uid://bwe2jdmvinhqd" path="res://src/player/player.tscn" id="1_fgk6j"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ehf5sg3ahvbf" path="res://src/world/grunk_beast/grunk_beast.tscn" id="2_1lom2"]
|
[ext_resource type="PackedScene" uid="uid://ehf5sg3ahvbf" path="res://src/world/grunk_beast/grunk_beast.tscn" id="2_1lom2"]
|
||||||
@ -6,7 +6,6 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="4_hv7qb"]
|
[ext_resource type="PackedScene" uid="uid://cdi5sl60mw1po" path="res://src/world/gunkable/gunkable.tscn" id="4_hv7qb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/static_crate_long.tscn" id="5_18csx"]
|
[ext_resource type="PackedScene" uid="uid://cppd3scvxf3eg" path="res://src/props/crate_long/static_crate_long.tscn" id="5_18csx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://clofvb76pv6g" path="res://assets/red.png" id="5_jj0u7"]
|
[ext_resource type="Texture2D" uid="uid://clofvb76pv6g" path="res://assets/red.png" id="5_jj0u7"]
|
||||||
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="5_wxmii"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="6_e2fuu"]
|
[ext_resource type="Texture2D" uid="uid://cd0w8eqpount3" path="res://assets/props/crate_long/crate_long_C.png" id="6_e2fuu"]
|
||||||
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="7_hv7qb"]
|
[ext_resource type="Texture2D" uid="uid://da5p04vbiy3xe" path="res://assets/props/crate_long/crate_long_M.png" id="7_hv7qb"]
|
||||||
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="7_nsdlh"]
|
[ext_resource type="Material" uid="uid://cqjr3cbxtfg2j" path="res://assets/materials/gunk.material" id="7_nsdlh"]
|
||||||
@ -60,7 +59,7 @@ data = PackedVector3Array(25, 0, 25, -25, 0, 25, 25, 0, -25, -25, 0, 25, -25, 0,
|
|||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_u8j4k"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_u8j4k"]
|
||||||
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
|
data = PackedVector3Array(-1.5, 0, -6, -1.5, 0, 6, -1.5, 3, -6, -1.5, 3, -6, -1.5, 0, 6, -1.5, 3, 6, 1.5, 0, 6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, 6, 1.5, 0, -6, 1.5, 3, -6, -1.5, 0, 6, -1.5, 0, -6, 1.5, 0, 6, 1.5, 0, 6, -1.5, 0, -6, 1.5, 0, -6, 1.5, 3, 6, 1.5, 3, -6, -1.5, 3, 6, -1.5, 3, 6, 1.5, 3, -6, -1.5, 3, -6)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_br5h1"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_e2fuu"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
albedo_texture = ExtResource("6_e2fuu")
|
albedo_texture = ExtResource("6_e2fuu")
|
||||||
metallic = 1.0
|
metallic = 1.0
|
||||||
@ -86,6 +85,66 @@ _surfaces = [{
|
|||||||
}]
|
}]
|
||||||
blend_shape_mode = 0
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_hv7qb"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
||||||
|
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 84,
|
||||||
|
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
||||||
|
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
||||||
|
"material": SubResource("StandardMaterial3D_e2fuu"),
|
||||||
|
"name": "Cube",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 48,
|
||||||
|
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_isly2")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wxmii"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
albedo_texture = ExtResource("6_e2fuu")
|
||||||
|
metallic = 1.0
|
||||||
|
metallic_texture = ExtResource("7_hv7qb")
|
||||||
|
roughness_texture = ExtResource("9_nsdlh")
|
||||||
|
normal_enabled = true
|
||||||
|
normal_texture = ExtResource("8_wxmii")
|
||||||
|
ao_enabled = true
|
||||||
|
texture_filter = 2
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_nsdlh"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
||||||
|
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 84,
|
||||||
|
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
||||||
|
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
||||||
|
"material": SubResource("StandardMaterial3D_wxmii"),
|
||||||
|
"name": "Cube",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 48,
|
||||||
|
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_isly2")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_br5h1"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
albedo_texture = ExtResource("6_e2fuu")
|
||||||
|
metallic = 1.0
|
||||||
|
metallic_texture = ExtResource("7_hv7qb")
|
||||||
|
roughness_texture = ExtResource("9_nsdlh")
|
||||||
|
normal_enabled = true
|
||||||
|
normal_texture = ExtResource("8_wxmii")
|
||||||
|
ao_enabled = true
|
||||||
|
texture_filter = 2
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_qluxd"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_qluxd"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
@ -105,66 +164,6 @@ _surfaces = [{
|
|||||||
blend_shape_mode = 0
|
blend_shape_mode = 0
|
||||||
shadow_mesh = SubResource("ArrayMesh_isly2")
|
shadow_mesh = SubResource("ArrayMesh_isly2")
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h6xp0"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
albedo_texture = ExtResource("6_e2fuu")
|
|
||||||
metallic = 1.0
|
|
||||||
metallic_texture = ExtResource("7_hv7qb")
|
|
||||||
roughness_texture = ExtResource("9_nsdlh")
|
|
||||||
normal_enabled = true
|
|
||||||
normal_texture = ExtResource("8_wxmii")
|
|
||||||
ao_enabled = true
|
|
||||||
texture_filter = 2
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_irt7r"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
|
||||||
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
|
|
||||||
"format": 34896613399,
|
|
||||||
"index_count": 84,
|
|
||||||
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
|
||||||
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
|
||||||
"material": SubResource("StandardMaterial3D_h6xp0"),
|
|
||||||
"name": "Cube",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 48,
|
|
||||||
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
|
|
||||||
}]
|
|
||||||
blend_shape_mode = 0
|
|
||||||
shadow_mesh = SubResource("ArrayMesh_isly2")
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_olej6"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
albedo_texture = ExtResource("6_e2fuu")
|
|
||||||
metallic = 1.0
|
|
||||||
metallic_texture = ExtResource("7_hv7qb")
|
|
||||||
roughness_texture = ExtResource("9_nsdlh")
|
|
||||||
normal_enabled = true
|
|
||||||
normal_texture = ExtResource("8_wxmii")
|
|
||||||
ao_enabled = true
|
|
||||||
texture_filter = 2
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_tmnt4"]
|
|
||||||
resource_local_to_scene = true
|
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
|
||||||
"attribute_data": PackedByteArray("/7//P/9v/7//X/8//7//vwAA/78AAP8//6f/v/9H/7//p/+//7//v/+f//f/v////6cAAP/H/wf/n/83/7//P/+X/7//l/8//zf/P/8P/7//x//H/5//x/+/AAD/n/8H/6f/P//H/zf/X/+//0f/P/9v/z//p/8//6f////H//f/D/8//5f/v/+X/z//p/+//6f/P/83/7//R/+//0f/P/9v/z//b/+//1//P/9f/7//N/+//w//v/83/z//D/8/"),
|
|
||||||
"format": 34896613399,
|
|
||||||
"index_count": 84,
|
|
||||||
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
|
||||||
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
|
||||||
"material": SubResource("StandardMaterial3D_olej6"),
|
|
||||||
"name": "Cube",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 48,
|
|
||||||
"vertex_data": PackedByteArray("AAAyM///VNXc3f//AAD/////zMz//1TVAAAyMwAAVNUAADIzAAD8xQAAMjP///zFAADMzAAAVNX//zIzAABU1QAAzMwAAP//AAAyMwAA///c3f//AAD/////MjMAAP/////MzP///7/c3QAA///svyEi/////0TBAAAyM///Fr8hIv//AAD//yEi////////3N0AAP///MUhIgAAAAD8xSEiAAAAAP//ISL//wAA/////zIz////v9zd//////+/AADMzP//DMEhIgAA//+cvP//zMwAAFTV//8yM///VNXc3f///////wAAzMz//1TV///MzAAA///c3QAAAAD//yEiAAD///zFISL//wAAqukhIv////+q6QAAzMwAAKrpAADMzP//qunc3QAAAAD8xf//MjMAAPzF//8yM////MXc3f////+q6dzd//8AAKrp///MzP//qun//8zMAACq6dzdAAAAAP+/ISIAAAAA/7/c3QAA////vyEiAAD///+/VFWqqv9//7+qKqoqVFWqqv45/pz+Of6cVFWqqqoqqir/P/+//z//v/7A/0C2QLbA/3//f/9//3//f/9//3//f/9//7//f/+//xwBRv45/pwOQA3A/z//v/9//3//f/9//3//f/9//3+qKqoqqiqqKv9//79UVaqq0sDSQKlCqML+Of6cCWoEtQlqBLUJagS1CWoEtf8cAUb/HAFG/xwBRgQ19hUENfYVBDX2FQQ19hUAAP9/AAD/fwAA/38AAP9/")
|
|
||||||
}]
|
|
||||||
blend_shape_mode = 0
|
|
||||||
shadow_mesh = SubResource("ArrayMesh_isly2")
|
|
||||||
|
|
||||||
[sub_resource type="Curve" id="Curve_2ldv4"]
|
[sub_resource type="Curve" id="Curve_2ldv4"]
|
||||||
_limits = [0.0, 0.4, 0.0, 1.0]
|
_limits = [0.0, 0.4, 0.0, 1.0]
|
||||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.3, 0.4), 0.0, 0.0, 0, 0, Vector2(0.7, 0.4), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.3, 0.4), 0.0, 0.0, 0, 0, Vector2(0.7, 0.4), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
@ -195,6 +194,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
alpha_curve = SubResource("CurveTexture_ty63v")
|
alpha_curve = SubResource("CurveTexture_ty63v")
|
||||||
@ -240,7 +240,7 @@ data = PackedVector3Array(-1, 0, 0.2, -1, -0.4, 0, -1, 0, -0.2, -1, 0, -0.2, -1,
|
|||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_o1heh"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_o1heh"]
|
||||||
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
|
data = PackedVector3Array(-1.5, 0, -1.5, -1.5, 0, 1.5, -1.5, 3, -1.5, -1.5, 3, -1.5, -1.5, 0, 1.5, -1.5, 3, 1.5, -1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, 1.5, 1.5, 0, 1.5, -1.5, 0, -1.5, 1.5, 0, -1.5, 1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, 1.5, -1.5, 3, 1.5, 1.5, 3, -1.5, -1.5, 3, -1.5)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x0tbd"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_h6xp0"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
albedo_texture = ExtResource("6_e2fuu")
|
albedo_texture = ExtResource("6_e2fuu")
|
||||||
metallic = 1.0
|
metallic = 1.0
|
||||||
@ -266,7 +266,7 @@ _surfaces = [{
|
|||||||
}]
|
}]
|
||||||
blend_shape_mode = 0
|
blend_shape_mode = 0
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_iwy8m"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_irt7r"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
"aabb": AABB(-0.375, -0.25, -0.75, 0.75, 0.5, 1.5),
|
||||||
@ -275,7 +275,7 @@ _surfaces = [{
|
|||||||
"index_count": 84,
|
"index_count": 84,
|
||||||
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
"index_data": PackedByteArray("FgANAAwADAANABcAFwANAA4ADgANABgAGAANAA8ADwANABkAGgAHAAIAAgAHABsAEAABABEAEQABABwAHQAAAAYABgAAAAMACQAUAAgACAAUABUAFQAUAAoACgAUAB4AHgAUAAsACwAUAB8AIAATAAUABQATAAQAIQAiACMAIwAiACQAJQASACYAJgASACcAKAApACoAKgApACsALAAtAC4ALgAtAC8A"),
|
||||||
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
"lods": [0.108952, PackedByteArray("DAANAA4ADgANAA8AEAABABEAEAARAAYAEQAAAAYABgAAAAMAEQABAAIAAgABAAcABwASAAIABwATABIAEgATAAUABQATAAQACQAUAAgACAAUABUAFQAUAAoACgAUAAsA"), 0.261829, PackedByteArray("AAABAAIAAQAAAAYABgAAAAMAAgABAAcABwAEAAIAAgAEAAUACAAJAAoACgAJAAsA"), 0.524037, PackedByteArray("AAABAAIAAQAAAAMAAgABAAQAAgAEAAUA")],
|
||||||
"material": SubResource("StandardMaterial3D_x0tbd"),
|
"material": SubResource("StandardMaterial3D_h6xp0"),
|
||||||
"name": "Cube",
|
"name": "Cube",
|
||||||
"primitive": 3,
|
"primitive": 3,
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
@ -367,27 +367,25 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("7_nsdlh")
|
source_gunk_material = ExtResource("7_nsdlh")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.25, -5.9)
|
||||||
mesh = SubResource("ArrayMesh_qluxd")
|
mesh = SubResource("ArrayMesh_hv7qb")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
[node name="CrateLong3" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
[node name="CrateLong3" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
||||||
transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9)
|
transform = Transform3D(0.258819, -0.965926, 0, 0.965926, 0.258819, 0, 0, 0, 1, 1.2, 0.426927, -3.9)
|
||||||
mesh = SubResource("ArrayMesh_irt7r")
|
mesh = SubResource("ArrayMesh_nsdlh")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
[node name="CrateLong2" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
[node name="CrateLong2" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("5_18csx")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0.75, -5.9)
|
||||||
mesh = SubResource("ArrayMesh_tmnt4")
|
mesh = SubResource("ArrayMesh_qluxd")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("10_br5h1")]
|
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway1" instance=ExtResource("10_br5h1")]
|
||||||
@ -413,14 +411,12 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_ejg8u")
|
shape = SubResource("ConcavePolygonShape3D_ejg8u")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway1/AirlockSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
mask_dim = 32
|
mask_dim = 32
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("14_olej6")
|
source_gunk_material = ExtResource("14_olej6")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="T-Junction1" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
[node name="T-Junction1" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
||||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5)
|
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, -7.5)
|
||||||
@ -434,14 +430,12 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_o1heh")
|
shape = SubResource("ConcavePolygonShape3D_o1heh")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/T-Junction1/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
mask_dim = 192
|
mask_dim = 192
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("16_x0tbd")
|
source_gunk_material = ExtResource("16_x0tbd")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="Hallway2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
[node name="Hallway2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -7.5, 0, -7.5)
|
||||||
@ -455,13 +449,11 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("7_nsdlh")
|
source_gunk_material = ExtResource("7_nsdlh")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="GrunkNodule" parent="NavigationRegion3D/Corridor1/Hallway2" instance=ExtResource("17_iwy8m")]
|
[node name="GrunkNodule" parent="NavigationRegion3D/Corridor1/Hallway2" instance=ExtResource("17_iwy8m")]
|
||||||
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.35, 0, -1.15)
|
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.35, 0, -1.15)
|
||||||
@ -513,13 +505,11 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway3/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("7_nsdlh")
|
source_gunk_material = ExtResource("7_nsdlh")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("10_br5h1")]
|
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("10_br5h1")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
||||||
@ -531,7 +521,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, -1.5)
|
|||||||
|
|
||||||
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("5_18csx")]
|
[node name="CrateLong" parent="NavigationRegion3D/Corridor1/Hallway3" instance=ExtResource("5_18csx")]
|
||||||
transform = Transform3D(-4.37114e-08, -0.965926, 0.258819, 1.77636e-15, 0.258819, 0.965926, -1, 4.2222e-08, -1.13133e-08, 1.06072, 0.789149, 6.6)
|
transform = Transform3D(-4.37114e-08, -0.965926, 0.258819, 1.77636e-15, 0.258819, 0.965926, -1, 4.2222e-08, -1.13133e-08, 1.06072, 0.789149, 6.6)
|
||||||
mesh = SubResource("ArrayMesh_iwy8m")
|
mesh = SubResource("ArrayMesh_irt7r")
|
||||||
skeleton = NodePath("../..")
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
[node name="T-Junction2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
[node name="T-Junction2" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
||||||
@ -546,14 +536,12 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_o1heh")
|
shape = SubResource("ConcavePolygonShape3D_o1heh")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/T-Junction2/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
mask_dim = 192
|
mask_dim = 192
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("16_x0tbd")
|
source_gunk_material = ExtResource("16_x0tbd")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="MessHallMeetSpookSpawner" type="Marker3D" parent="NavigationRegion3D/Corridor1/T-Junction2"]
|
[node name="MessHallMeetSpookSpawner" type="Marker3D" parent="NavigationRegion3D/Corridor1/T-Junction2"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
||||||
@ -574,14 +562,12 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_tx4qh")
|
shape = SubResource("ConcavePolygonShape3D_tx4qh")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/EndCap/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
mask_dim = 64
|
mask_dim = 64
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("16_x0tbd")
|
source_gunk_material = ExtResource("16_x0tbd")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="Hallway4" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
[node name="Hallway4" type="MeshInstance3D" parent="NavigationRegion3D/Corridor1"]
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -27, 0, -15)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -27, 0, -15)
|
||||||
@ -595,13 +581,11 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
shape = SubResource("ConcavePolygonShape3D_u8j4k")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway4/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("7_nsdlh")
|
source_gunk_material = ExtResource("7_nsdlh")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway4" instance=ExtResource("10_br5h1")]
|
[node name="FloatingDust" parent="NavigationRegion3D/Corridor1/Hallway4" instance=ExtResource("10_br5h1")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
||||||
@ -625,14 +609,12 @@ collision_mask = 0
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_spe8j")
|
shape = SubResource("ConcavePolygonShape3D_spe8j")
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") groups=["Persistent"] instance=ExtResource("4_hv7qb")]
|
[node name="Gunkable" parent="NavigationRegion3D/Corridor1/Hallway4/MessHallSign/StaticBody3D" node_paths=PackedStringArray("body", "mesh_instance") instance=ExtResource("4_hv7qb")]
|
||||||
script = ExtResource("5_wxmii")
|
|
||||||
mask_dim = 32
|
mask_dim = 32
|
||||||
body = NodePath("..")
|
body = NodePath("..")
|
||||||
mesh_instance = NodePath("../..")
|
mesh_instance = NodePath("../..")
|
||||||
initial_mask = ExtResource("5_jj0u7")
|
initial_mask = ExtResource("5_jj0u7")
|
||||||
source_gunk_material = ExtResource("14_olej6")
|
source_gunk_material = ExtResource("14_olej6")
|
||||||
metadata/_custom_type_script = "uid://co0g2klfmor48"
|
|
||||||
|
|
||||||
[node name="LurkPoint" type="Marker3D" parent="NavigationRegion3D/Corridor1" groups=["LurkPoint"]]
|
[node name="LurkPoint" type="Marker3D" parent="NavigationRegion3D/Corridor1" groups=["LurkPoint"]]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 4.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 4.5)
|
||||||
|
@ -81,6 +81,8 @@ debug/enable_navigation_agent_debug=false
|
|||||||
debug/enable_navigation_agent_debug.editor_runtime=true
|
debug/enable_navigation_agent_debug.editor_runtime=true
|
||||||
debug/enable_debug_menu=false
|
debug/enable_debug_menu=false
|
||||||
debug/enable_debug_menu.debug=true
|
debug/enable_debug_menu.debug=true
|
||||||
|
config/input/object_rotation_sensitivity_y=0.5
|
||||||
|
config/input/object_rotation_sensitivity_x=0.5
|
||||||
|
|
||||||
[global_group]
|
[global_group]
|
||||||
|
|
||||||
@ -148,7 +150,12 @@ interact={
|
|||||||
}
|
}
|
||||||
switch_mode={
|
switch_mode={
|
||||||
"deadzone": 0.2,
|
"deadzone": 0.2,
|
||||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
rotate_object={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
select_next_tool={
|
select_next_tool={
|
||||||
@ -205,6 +212,7 @@ locale/translations=PackedStringArray("res://assets/text/text.en.translation")
|
|||||||
|
|
||||||
3d_render/layer_1="World"
|
3d_render/layer_1="World"
|
||||||
3d_render/layer_2="HUD"
|
3d_render/layer_2="HUD"
|
||||||
|
3d_render/layer_3="Grunk Dust"
|
||||||
3d_physics/layer_1="Physics"
|
3d_physics/layer_1="Physics"
|
||||||
3d_physics/layer_2="Interactive"
|
3d_physics/layer_2="Interactive"
|
||||||
3d_physics/layer_3="Sprayable"
|
3d_physics/layer_3="Sprayable"
|
||||||
|
@ -19,6 +19,7 @@ initial_velocity_max = 4.5
|
|||||||
gravity = Vector3(0, 1.4, 0)
|
gravity = Vector3(0, 1.4, 0)
|
||||||
damping_min = 5.955
|
damping_min = 5.955
|
||||||
damping_max = 5.955
|
damping_max = 5.955
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_over_velocity_curve = SubResource("CurveTexture_hx0vd")
|
scale_over_velocity_curve = SubResource("CurveTexture_hx0vd")
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4jho1"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4jho1"]
|
||||||
|
@ -26,6 +26,7 @@ spread = 100.0
|
|||||||
initial_velocity_min = 0.05
|
initial_velocity_min = 0.05
|
||||||
initial_velocity_max = 0.15
|
initial_velocity_max = 0.15
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_w3xaq")
|
scale_curve = SubResource("CurveTexture_w3xaq")
|
||||||
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
color_ramp = SubResource("GradientTexture1D_w3xaq")
|
||||||
turbulence_enabled = true
|
turbulence_enabled = true
|
||||||
|
@ -10,6 +10,7 @@ const SCENE := preload("res://src/effects/grunk_splatter/grunk_splatter.tscn")
|
|||||||
|
|
||||||
@onready var splatter_sfx: AudioStreamPlayer3D = %SplatterSFX
|
@onready var splatter_sfx: AudioStreamPlayer3D = %SplatterSFX
|
||||||
@onready var sub_splatter: GPUParticles3D = %SubSplatter
|
@onready var sub_splatter: GPUParticles3D = %SubSplatter
|
||||||
|
@onready var gunk_dust: GPUParticles3D = %GunkDust
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
@ -21,6 +22,9 @@ func _ready() -> void:
|
|||||||
_scale_particles(self)
|
_scale_particles(self)
|
||||||
_scale_particles(sub_splatter)
|
_scale_particles(sub_splatter)
|
||||||
|
|
||||||
|
# Scale amount of dust
|
||||||
|
gunk_dust.amount_ratio = 0.5 * effect_scale
|
||||||
|
|
||||||
|
|
||||||
func _scale_particles(emitter: GPUParticles3D) -> void:
|
func _scale_particles(emitter: GPUParticles3D) -> void:
|
||||||
var mat := emitter.process_material as ParticleProcessMaterial
|
var mat := emitter.process_material as ParticleProcessMaterial
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=23 format=3 uid="uid://xlt78xc1tmkl"]
|
[gd_scene load_steps=33 format=3 uid="uid://xlt78xc1tmkl"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cgwgmxwjgwbwr" path="res://assets/particles/splatter_2.png" id="1_5xu2x"]
|
[ext_resource type="Texture2D" uid="uid://cgwgmxwjgwbwr" path="res://assets/particles/splatter_2.png" id="1_5xu2x"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bhoai6xv53tqm" path="res://assets/particles/splatter_1.png" id="2_bt63p"]
|
[ext_resource type="Texture2D" uid="uid://bhoai6xv53tqm" path="res://assets/particles/splatter_1.png" id="2_bt63p"]
|
||||||
@ -6,6 +6,7 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://di0j2xhgfc78s" path="res://assets/sfx/grunk/splat1.wav" id="3_t00bd"]
|
[ext_resource type="AudioStream" uid="uid://di0j2xhgfc78s" path="res://assets/sfx/grunk/splat1.wav" id="3_t00bd"]
|
||||||
[ext_resource type="AudioStream" uid="uid://d1w5gfmjj7tjk" path="res://assets/sfx/grunk/splat2.wav" id="4_2iem1"]
|
[ext_resource type="AudioStream" uid="uid://d1w5gfmjj7tjk" path="res://assets/sfx/grunk/splat2.wav" id="4_2iem1"]
|
||||||
[ext_resource type="Script" uid="uid://c5o1d2shq2qig" path="res://src/world/game_sound/game_sound_emitter.gd" id="5_2iem1"]
|
[ext_resource type="Script" uid="uid://c5o1d2shq2qig" path="res://src/world/game_sound/game_sound_emitter.gd" id="5_2iem1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c3iv00vmdqxp0" path="res://src/effects/gunk_dust.tscn" id="7_opa8j"]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_5xu2x"]
|
[sub_resource type="Gradient" id="Gradient_5xu2x"]
|
||||||
offsets = PackedFloat32Array(0, 0.291304, 0.526087, 1)
|
offsets = PackedFloat32Array(0, 0.291304, 0.526087, 1)
|
||||||
@ -33,6 +34,7 @@ direction = Vector3(0, 0, 0)
|
|||||||
spread = 180.0
|
spread = 180.0
|
||||||
initial_velocity_min = 8.0
|
initial_velocity_min = 8.0
|
||||||
initial_velocity_max = 8.0
|
initial_velocity_max = 8.0
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_t00bd")
|
scale_curve = SubResource("CurveTexture_t00bd")
|
||||||
color_ramp = SubResource("GradientTexture1D_bt63p")
|
color_ramp = SubResource("GradientTexture1D_bt63p")
|
||||||
|
|
||||||
@ -77,6 +79,7 @@ direction = Vector3(0, 1, 0)
|
|||||||
spread = 0.0
|
spread = 0.0
|
||||||
initial_velocity_max = 0.05
|
initial_velocity_max = 0.05
|
||||||
gravity = Vector3(0, -0.3, 0)
|
gravity = Vector3(0, -0.3, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_72g1e")
|
scale_curve = SubResource("CurveTexture_72g1e")
|
||||||
color = Color(0.9, 0.983333, 1, 1)
|
color = Color(0.9, 0.983333, 1, 1)
|
||||||
alpha_curve = SubResource("CurveTexture_2iem1")
|
alpha_curve = SubResource("CurveTexture_2iem1")
|
||||||
@ -106,8 +109,61 @@ stream_1/stream = ExtResource("4_2iem1")
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_6adkd"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_6adkd"]
|
||||||
radius = 2.0
|
radius = 2.0
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_o6g24"]
|
||||||
|
offsets = PackedFloat32Array(0, 0.376344)
|
||||||
|
colors = PackedColorArray(0, 0.101961, 0.301961, 1, 0, 0.015, 0.05, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_mlqhf"]
|
||||||
|
gradient = SubResource("Gradient_o6g24")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_pjcdo"]
|
||||||
|
_limits = [0.0, 12.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 12), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_opa8j"]
|
||||||
|
curve = SubResource("Curve_pjcdo")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_smx5b"]
|
||||||
|
_limits = [0.0, 6.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 6), 0.0, 0.0, 0, 0, Vector2(0.252459, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_rbbah"]
|
||||||
|
curve = SubResource("Curve_smx5b")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_opa8j"]
|
||||||
|
_limits = [0.0, 4.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 4), 0.0, 0.0, 0, 0, Vector2(0.333, 1), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_m7td0"]
|
||||||
|
curve = SubResource("Curve_opa8j")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_opa8j"]
|
||||||
|
angle_min = -184.7
|
||||||
|
angle_max = 239.3
|
||||||
|
direction = Vector3(0, 0, -1)
|
||||||
|
spread = 90.0
|
||||||
|
initial_velocity_min = 5.0
|
||||||
|
initial_velocity_max = 5.0
|
||||||
|
angular_velocity_min = -360.0
|
||||||
|
angular_velocity_max = 360.0
|
||||||
|
gravity = Vector3(0, -1, 0)
|
||||||
|
damping_min = 1.0
|
||||||
|
damping_max = 1.0
|
||||||
|
damping_curve = SubResource("CurveTexture_opa8j")
|
||||||
|
scale_min = 0.8
|
||||||
|
scale_curve = SubResource("CurveTexture_m7td0")
|
||||||
|
color_ramp = SubResource("GradientTexture1D_mlqhf")
|
||||||
|
emission_curve = SubResource("CurveTexture_rbbah")
|
||||||
|
hue_variation_min = -2.23517e-08
|
||||||
|
hue_variation_max = 0.00999998
|
||||||
|
collision_mode = 2
|
||||||
|
|
||||||
[node name="GrunkSplatter" type="GPUParticles3D"]
|
[node name="GrunkSplatter" type="GPUParticles3D"]
|
||||||
sorting_offset = 9.0
|
sorting_offset = 9.0
|
||||||
|
emitting = false
|
||||||
amount = 64
|
amount = 64
|
||||||
lifetime = 0.3
|
lifetime = 0.3
|
||||||
one_shot = true
|
one_shot = true
|
||||||
@ -119,6 +175,7 @@ script = ExtResource("2_grvat")
|
|||||||
[node name="SubSplatter" type="GPUParticles3D" parent="."]
|
[node name="SubSplatter" type="GPUParticles3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
sorting_offset = 9.0
|
sorting_offset = 9.0
|
||||||
|
emitting = false
|
||||||
amount = 4
|
amount = 4
|
||||||
lifetime = 0.3
|
lifetime = 0.3
|
||||||
one_shot = true
|
one_shot = true
|
||||||
@ -150,8 +207,19 @@ metadata/_custom_type_script = "uid://c5o1d2shq2qig"
|
|||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="SplatterSoundEmitter"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="SplatterSoundEmitter"]
|
||||||
shape = SubResource("SphereShape3D_6adkd")
|
shape = SubResource("SphereShape3D_6adkd")
|
||||||
|
|
||||||
|
[node name="GunkDust" parent="." instance=ExtResource("7_opa8j")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
|
||||||
|
emitting = false
|
||||||
|
amount = 64
|
||||||
|
lifetime = 1.2
|
||||||
|
one_shot = true
|
||||||
|
explosiveness = 0.9
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_opa8j")
|
||||||
|
|
||||||
[connection signal="ready" from="." to="SplatterSFX" method="play"]
|
[connection signal="ready" from="." to="SplatterSFX" method="play"]
|
||||||
[connection signal="ready" from="." to="SplatterSoundEmitter" method="emit_sound_here"]
|
[connection signal="ready" from="." to="SplatterSoundEmitter" method="emit_sound_here"]
|
||||||
[connection signal="ready" from="." to="." method="set_emitting" binds= [true]]
|
[connection signal="ready" from="." to="." method="set_emitting" binds= [true]]
|
||||||
[connection signal="ready" from="." to="SubSplatter" method="set_emitting" binds= [true]]
|
[connection signal="ready" from="." to="SubSplatter" method="set_emitting" binds= [true]]
|
||||||
|
[connection signal="ready" from="." to="GunkDust" method="set_emitting" binds= [true]]
|
||||||
[connection signal="timeout" from="FreeTimer" to="." method="queue_free"]
|
[connection signal="timeout" from="FreeTimer" to="." method="queue_free"]
|
||||||
|
@ -1,35 +1,63 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://c3iv00vmdqxp0"]
|
[gd_scene load_steps=10 format=3 uid="uid://c3iv00vmdqxp0"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bwpyjfo1j4wis" path="res://assets/particles/dust/dust_3.png" id="1_hqns8"]
|
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_o6g24"]
|
[sub_resource type="Gradient" id="Gradient_o6g24"]
|
||||||
colors = PackedColorArray(0, 0.101961, 0.301961, 1, 0, 0.0313726, 0.101961, 1)
|
offsets = PackedFloat32Array(0, 0.376344)
|
||||||
|
colors = PackedColorArray(0, 0.101961, 0.301961, 1, 0, 0.015, 0.05, 1)
|
||||||
|
|
||||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_mlqhf"]
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_mlqhf"]
|
||||||
gradient = SubResource("Gradient_o6g24")
|
gradient = SubResource("Gradient_o6g24")
|
||||||
|
|
||||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ykxlg"]
|
[sub_resource type="Curve" id="Curve_pjcdo"]
|
||||||
direction = Vector3(0, 1, 0)
|
_limits = [0.0, 12.0, 0.0, 1.0]
|
||||||
initial_velocity_min = 1.0
|
_data = [Vector2(0, 12), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
initial_velocity_max = 1.0
|
point_count = 2
|
||||||
gravity = Vector3(0, -4, 0)
|
|
||||||
color_ramp = SubResource("GradientTexture1D_mlqhf")
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v20ab"]
|
[sub_resource type="CurveTexture" id="CurveTexture_smx5b"]
|
||||||
transparency = 1
|
curve = SubResource("Curve_pjcdo")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_smx5b"]
|
||||||
|
_limits = [0.0, 6.0, 0.0, 1.0]
|
||||||
|
_data = [Vector2(0, 6), 0.0, 0.0, 0, 0, Vector2(0.252459, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_rbbah"]
|
||||||
|
curve = SubResource("Curve_smx5b")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ykxlg"]
|
||||||
|
angle_min = -184.7
|
||||||
|
angle_max = 239.3
|
||||||
|
direction = Vector3(0, 0, -1)
|
||||||
|
spread = 90.0
|
||||||
|
initial_velocity_min = 2.0
|
||||||
|
initial_velocity_max = 2.0
|
||||||
|
angular_velocity_min = -360.0
|
||||||
|
angular_velocity_max = 360.0
|
||||||
|
gravity = Vector3(0, -1, 0)
|
||||||
|
damping_min = 1.0
|
||||||
|
damping_max = 1.0
|
||||||
|
damping_curve = SubResource("CurveTexture_smx5b")
|
||||||
|
scale_min = 0.8
|
||||||
|
color_ramp = SubResource("GradientTexture1D_mlqhf")
|
||||||
|
emission_curve = SubResource("CurveTexture_rbbah")
|
||||||
|
hue_variation_min = -2.23517e-08
|
||||||
|
hue_variation_max = 0.00999998
|
||||||
|
collision_mode = 2
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pjcdo"]
|
||||||
vertex_color_use_as_albedo = true
|
vertex_color_use_as_albedo = true
|
||||||
albedo_texture = ExtResource("1_hqns8")
|
emission = Color(0.25098, 0.878431, 1, 1)
|
||||||
texture_filter = 2
|
|
||||||
billboard_mode = 3
|
billboard_mode = 3
|
||||||
|
billboard_keep_scale = true
|
||||||
particles_anim_h_frames = 1
|
particles_anim_h_frames = 1
|
||||||
particles_anim_v_frames = 1
|
particles_anim_v_frames = 1
|
||||||
particles_anim_loop = false
|
particles_anim_loop = false
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id="QuadMesh_1ijv1"]
|
[sub_resource type="BoxMesh" id="BoxMesh_smx5b"]
|
||||||
material = SubResource("StandardMaterial3D_v20ab")
|
material = SubResource("StandardMaterial3D_pjcdo")
|
||||||
size = Vector2(0.1, 0.1)
|
size = Vector3(0.03, 0.03, 0.03)
|
||||||
|
|
||||||
[node name="GunkDust" type="GPUParticles3D"]
|
[node name="GunkDust" type="GPUParticles3D"]
|
||||||
lifetime = 0.4
|
layers = 4
|
||||||
|
lifetime = 0.6
|
||||||
process_material = SubResource("ParticleProcessMaterial_ykxlg")
|
process_material = SubResource("ParticleProcessMaterial_ykxlg")
|
||||||
draw_pass_1 = SubResource("QuadMesh_1ijv1")
|
draw_pass_1 = SubResource("BoxMesh_smx5b")
|
||||||
|
@ -15,6 +15,7 @@ spread = 180.0
|
|||||||
initial_velocity_min = 2.0
|
initial_velocity_min = 2.0
|
||||||
initial_velocity_max = 2.0
|
initial_velocity_max = 2.0
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
scale_curve = SubResource("CurveTexture_7ktnl")
|
scale_curve = SubResource("CurveTexture_7ktnl")
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fhbna"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fhbna"]
|
||||||
|
@ -24,6 +24,7 @@ spread = 4.0
|
|||||||
initial_velocity_min = 3.5
|
initial_velocity_min = 3.5
|
||||||
initial_velocity_max = 3.5
|
initial_velocity_max = 3.5
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k4cg5"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_k4cg5"]
|
||||||
vertex_color_use_as_albedo = true
|
vertex_color_use_as_albedo = true
|
||||||
@ -49,6 +50,7 @@ spread = 4.0
|
|||||||
initial_velocity_min = 8.0
|
initial_velocity_min = 8.0
|
||||||
initial_velocity_max = 8.0
|
initial_velocity_max = 8.0
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
[sub_resource type="CapsuleMesh" id="CapsuleMesh_k4cg5"]
|
[sub_resource type="CapsuleMesh" id="CapsuleMesh_k4cg5"]
|
||||||
radius = 0.025
|
radius = 0.025
|
||||||
|
@ -27,6 +27,7 @@ flatness = 0.82
|
|||||||
initial_velocity_min = 3.5
|
initial_velocity_min = 3.5
|
||||||
initial_velocity_max = 3.5
|
initial_velocity_max = 3.5
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6k0bn"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6k0bn"]
|
||||||
vertex_color_use_as_albedo = true
|
vertex_color_use_as_albedo = true
|
||||||
@ -52,6 +53,7 @@ flatness = 0.82
|
|||||||
initial_velocity_min = 8.0
|
initial_velocity_min = 8.0
|
||||||
initial_velocity_max = 8.0
|
initial_velocity_max = 8.0
|
||||||
gravity = Vector3(0, 0, 0)
|
gravity = Vector3(0, 0, 0)
|
||||||
|
attractor_interaction_enabled = false
|
||||||
|
|
||||||
[sub_resource type="BoxMesh" id="BoxMesh_fmqw2"]
|
[sub_resource type="BoxMesh" id="BoxMesh_fmqw2"]
|
||||||
size = Vector3(0.05, 0.05, 0.3)
|
size = Vector3(0.05, 0.05, 0.3)
|
||||||
|
@ -11,6 +11,8 @@ var mouse_sensitivity_y: float
|
|||||||
var mouse_acceleration: float
|
var mouse_acceleration: float
|
||||||
var invert_pitch: bool
|
var invert_pitch: bool
|
||||||
var hold_to_sneak: bool
|
var hold_to_sneak: bool
|
||||||
|
var object_rotation_sensitivity_x: float
|
||||||
|
var object_rotation_sensitivity_y: float
|
||||||
|
|
||||||
var enable_screen_shake: bool
|
var enable_screen_shake: bool
|
||||||
var enable_head_bob: bool
|
var enable_head_bob: bool
|
||||||
@ -35,6 +37,12 @@ func _read_settings() -> void:
|
|||||||
mouse_acceleration = ProjectSettings.get_setting("game/config/input/mouse_acceleration")
|
mouse_acceleration = ProjectSettings.get_setting("game/config/input/mouse_acceleration")
|
||||||
invert_pitch = ProjectSettings.get_setting("game/config/input/invert_pitch")
|
invert_pitch = ProjectSettings.get_setting("game/config/input/invert_pitch")
|
||||||
hold_to_sneak = ProjectSettings.get_setting("game/config/input/hold_to_sneak")
|
hold_to_sneak = ProjectSettings.get_setting("game/config/input/hold_to_sneak")
|
||||||
|
object_rotation_sensitivity_x = ProjectSettings.get_setting(
|
||||||
|
"game/config/input/object_rotation_sensitivity_x"
|
||||||
|
)
|
||||||
|
object_rotation_sensitivity_y = ProjectSettings.get_setting(
|
||||||
|
"game/config/input/object_rotation_sensitivity_y"
|
||||||
|
)
|
||||||
|
|
||||||
enable_screen_shake = ProjectSettings.get_setting(
|
enable_screen_shake = ProjectSettings.get_setting(
|
||||||
"game/config/accessibility/enable_screen_shake"
|
"game/config/accessibility/enable_screen_shake"
|
||||||
|
@ -4,6 +4,8 @@ class_name HoldComponent extends Node3D
|
|||||||
signal held
|
signal held
|
||||||
signal dropped
|
signal dropped
|
||||||
|
|
||||||
|
const ROTATION_SCALE_FACTOR := 10.0 * TAU
|
||||||
|
|
||||||
## Held object position lerp acceleration.
|
## Held object position lerp acceleration.
|
||||||
@export var hold_accel := 20.0
|
@export var hold_accel := 20.0
|
||||||
|
|
||||||
@ -16,6 +18,9 @@ signal dropped
|
|||||||
## Temporary linear damping for held objects
|
## Temporary linear damping for held objects
|
||||||
@export var hold_damping := 8.0
|
@export var hold_damping := 8.0
|
||||||
|
|
||||||
|
## Impulse force when throwing an object
|
||||||
|
@export var throw_force := 100.0
|
||||||
|
|
||||||
## Temporary collision layer.
|
## Temporary collision layer.
|
||||||
@export_flags_3d_physics var hold_collision_layer := 0b01000000
|
@export_flags_3d_physics var hold_collision_layer := 0b01000000
|
||||||
|
|
||||||
@ -35,6 +40,7 @@ var _original_collision_mask: int
|
|||||||
|
|
||||||
func attach(prop: RigidBody3D, hold_distance: float) -> void:
|
func attach(prop: RigidBody3D, hold_distance: float) -> void:
|
||||||
hold_point.position = Vector3(0, 0, -hold_distance)
|
hold_point.position = Vector3(0, 0, -hold_distance)
|
||||||
|
hold_point.global_basis = global_basis
|
||||||
_held_object = prop
|
_held_object = prop
|
||||||
|
|
||||||
_original_damping = prop.linear_damp
|
_original_damping = prop.linear_damp
|
||||||
@ -58,14 +64,50 @@ func drop() -> void:
|
|||||||
dropped.emit()
|
dropped.emit()
|
||||||
|
|
||||||
|
|
||||||
|
func throw() -> void:
|
||||||
|
var impulse := -global_basis.z.normalized() * throw_force
|
||||||
|
_held_object.apply_central_impulse(impulse)
|
||||||
|
drop()
|
||||||
|
|
||||||
|
|
||||||
|
func rotate_object(relative_motion: Vector2) -> void:
|
||||||
|
hold_point.rotate(
|
||||||
|
Vector3.UP,
|
||||||
|
relative_motion.x * GameSettings.object_rotation_sensitivity_x / ROTATION_SCALE_FACTOR
|
||||||
|
)
|
||||||
|
hold_point.rotate(
|
||||||
|
Vector3.RIGHT,
|
||||||
|
relative_motion.y * GameSettings.object_rotation_sensitivity_y / ROTATION_SCALE_FACTOR
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
func holding_object() -> bool:
|
func holding_object() -> bool:
|
||||||
return !!_held_object
|
return !!_held_object
|
||||||
|
|
||||||
|
|
||||||
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
|
var mouse_motion := event as InputEventMouseMotion
|
||||||
|
if (
|
||||||
|
mouse_motion
|
||||||
|
and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED
|
||||||
|
and holding_object()
|
||||||
|
and Input.is_action_pressed("rotate_object")
|
||||||
|
):
|
||||||
|
rotate_object(mouse_motion.relative)
|
||||||
|
get_viewport().set_input_as_handled()
|
||||||
|
|
||||||
|
|
||||||
|
func _process_hold_controls() -> void:
|
||||||
|
if Input.is_action_just_pressed("interact"):
|
||||||
|
drop()
|
||||||
|
elif Input.is_action_just_pressed("fire"):
|
||||||
|
throw()
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
# Object hold action logic
|
# Object hold action logic
|
||||||
if holding_object() and Input.is_action_just_pressed("interact"):
|
if holding_object():
|
||||||
drop()
|
_process_hold_controls()
|
||||||
|
|
||||||
# Held object logic
|
# Held object logic
|
||||||
if not holding_object():
|
if not holding_object():
|
||||||
@ -78,4 +120,4 @@ func _physics_process(delta: float) -> void:
|
|||||||
|
|
||||||
var weight := 1 - exp(-hold_accel * delta)
|
var weight := 1 - exp(-hold_accel * delta)
|
||||||
_held_object.linear_velocity = _held_object.linear_velocity.lerp(diff * hold_speed, weight)
|
_held_object.linear_velocity = _held_object.linear_velocity.lerp(diff * hold_speed, weight)
|
||||||
_held_object.global_basis = _held_object.global_basis.slerp(global_basis, weight)
|
_held_object.global_basis = _held_object.global_basis.slerp(hold_point.global_basis, weight)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=68 format=3 uid="uid://bwe2jdmvinhqd"]
|
[gd_scene load_steps=67 format=3 uid="uid://bwe2jdmvinhqd"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://buwh0g1ga2aka" path="res://src/player/player.gd" id="1_npueo"]
|
[ext_resource type="Script" uid="uid://buwh0g1ga2aka" path="res://src/player/player.gd" id="1_npueo"]
|
||||||
[ext_resource type="Script" uid="uid://cx1yt0drthpw3" path="res://src/player/camera_controller.gd" id="2_veeqv"]
|
[ext_resource type="Script" uid="uid://cx1yt0drthpw3" path="res://src/player/camera_controller.gd" id="2_veeqv"]
|
||||||
@ -173,10 +173,6 @@ nodes/timescale/node = SubResource("AnimationNodeTimeScale_8ydov")
|
|||||||
nodes/timescale/position = Vector2(1240, 120)
|
nodes/timescale/position = Vector2(1240, 120)
|
||||||
node_connections = [&"blend", 0, &"still_anim", &"blend", 1, &"bob_anim", &"output", 0, &"timescale", &"sfx_add", 0, &"blend", &"sfx_add", 1, &"sfx_anim", &"timescale", 0, &"sfx_add"]
|
node_connections = [&"blend", 0, &"still_anim", &"blend", 1, &"bob_anim", &"output", 0, &"timescale", &"sfx_add", 0, &"blend", &"sfx_add", 1, &"sfx_anim", &"timescale", 0, &"sfx_add"]
|
||||||
|
|
||||||
[sub_resource type="SphereMesh" id="SphereMesh_h0enb"]
|
|
||||||
radius = 0.05
|
|
||||||
height = 0.1
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s7f0r"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_s7f0r"]
|
||||||
radius = 0.4
|
radius = 0.4
|
||||||
height = 1.9
|
height = 1.9
|
||||||
@ -689,15 +685,22 @@ unique_name_in_owner = true
|
|||||||
script = ExtResource("11_h0enb")
|
script = ExtResource("11_h0enb")
|
||||||
hold_accel = 40.0
|
hold_accel = 40.0
|
||||||
hold_speed = 20.0
|
hold_speed = 20.0
|
||||||
|
throw_force = 400.0
|
||||||
|
|
||||||
[node name="HoldPoint" type="Marker3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D/HoldComponent"]
|
[node name="HoldPoint" type="Marker3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D/HoldComponent"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1)
|
||||||
|
|
||||||
[node name="DebugHoldPoint" type="MeshInstance3D" parent="CameraPosition/CameraPivot/TransformedPosition/CamRumbler/Camera3D/HoldComponent/HoldPoint"]
|
[node name="GrunkDustAttractor" type="GPUParticlesAttractorSphere3D" parent="CameraPosition/CameraPivot"]
|
||||||
visible = false
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.23, -0.285, -0.1)
|
||||||
mesh = SubResource("SphereMesh_h0enb")
|
strength = 30.0
|
||||||
skeleton = NodePath("../..")
|
cull_mask = 4293918724
|
||||||
|
radius = 8.0
|
||||||
|
|
||||||
|
[node name="GrunkDustCullingPlane" type="GPUParticlesCollisionBox3D" parent="CameraPosition/CameraPivot"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.15)
|
||||||
|
cull_mask = 4293918724
|
||||||
|
size = Vector3(10, 10, 0.2)
|
||||||
|
|
||||||
[node name="StandingCollider" type="CollisionShape3D" parent="."]
|
[node name="StandingCollider" type="CollisionShape3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
||||||
|
@ -40,8 +40,9 @@ func set_active(tool: Tool, force: bool = false) -> void:
|
|||||||
return
|
return
|
||||||
|
|
||||||
for c: Node3D in get_children():
|
for c: Node3D in get_children():
|
||||||
c.visible = false
|
if c is Tool:
|
||||||
# TODO unequip animation?
|
c.visible = false
|
||||||
|
# TODO unequip animation?
|
||||||
_active = tool
|
_active = tool
|
||||||
_active.visible = true
|
_active.visible = true
|
||||||
_active.on_equip()
|
_active.on_equip()
|
||||||
@ -56,7 +57,7 @@ func set_active_relative(delta: int) -> void:
|
|||||||
while true:
|
while true:
|
||||||
var new_idx := wrapi(active_idx + delta, 0, get_child_count())
|
var new_idx := wrapi(active_idx + delta, 0, get_child_count())
|
||||||
var tool := get_child(new_idx) as Tool
|
var tool := get_child(new_idx) as Tool
|
||||||
if tool.unlocked():
|
if tool and tool.unlocked():
|
||||||
set_active(tool)
|
set_active(tool)
|
||||||
return
|
return
|
||||||
# If the next tool is not unlocked, try the one after
|
# If the next tool is not unlocked, try the one after
|
||||||
|
@ -26,7 +26,7 @@ points = PackedVector3Array(0.375, 0.149961, 0.75, 0.375, -0.15001, 0.75, 0.375,
|
|||||||
[node name="PhysCrateLong" type="RigidBody3D" groups=["Persistent", "PlasticMaterial"]]
|
[node name="PhysCrateLong" type="RigidBody3D" groups=["Persistent", "PlasticMaterial"]]
|
||||||
collision_layer = 71
|
collision_layer = 71
|
||||||
collision_mask = 73
|
collision_mask = 73
|
||||||
mass = 200.0
|
mass = 60.0
|
||||||
script = ExtResource("1_q4djj")
|
script = ExtResource("1_q4djj")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
|
@ -158,6 +158,30 @@ text = "SETTINGS_HOLD_TO_SNEAK"
|
|||||||
[node name="TextCheckbox" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HoldToSneak/PanelContainer/MarginContainer" index="0"]
|
[node name="TextCheckbox" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HoldToSneak/PanelContainer/MarginContainer" index="0"]
|
||||||
physics_interpolation_mode = 0
|
physics_interpolation_mode = 0
|
||||||
|
|
||||||
|
[node name="RotationSensitivityX" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("3_jox8e")]
|
||||||
|
layout_mode = 2
|
||||||
|
key = &"game/config/input/object_rotation_sensitivity_x"
|
||||||
|
|
||||||
|
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityX" index="1"]
|
||||||
|
text = "SETTINGS_ROTATION_SENSITIVITY_X"
|
||||||
|
|
||||||
|
[node name="NumericSlider" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityX/PanelContainer/MarginContainer" index="0"]
|
||||||
|
physics_interpolation_mode = 0
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.01
|
||||||
|
|
||||||
|
[node name="RotationSensitivityY" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList" groups=["Settings"] instance=ExtResource("3_jox8e")]
|
||||||
|
layout_mode = 2
|
||||||
|
key = &"game/config/input/object_rotation_sensitivity_y"
|
||||||
|
|
||||||
|
[node name="SettingLabel" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityY" index="1"]
|
||||||
|
text = "SETTINGS_ROTATION_SENSITIVITY_Y"
|
||||||
|
|
||||||
|
[node name="NumericSlider" parent="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityY/PanelContainer/MarginContainer" index="0"]
|
||||||
|
physics_interpolation_mode = 0
|
||||||
|
max_value = 1.0
|
||||||
|
step = 0.01
|
||||||
|
|
||||||
[node name="SETTINGS_GRAPHICS" type="MarginContainer" parent="TabContainer"]
|
[node name="SETTINGS_GRAPHICS" type="MarginContainer" parent="TabContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@ -343,5 +367,7 @@ text = "UI_ACCEPT"
|
|||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/MouseAcceleration"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/MouseAcceleration"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/InvertPitch"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/InvertPitch"]
|
||||||
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HoldToSneak"]
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/HoldToSneak"]
|
||||||
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityX"]
|
||||||
|
[editable path="TabContainer/SETTINGS_GAME/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/RotationSensitivityY"]
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Fullscreen"]
|
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/Fullscreen"]
|
||||||
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/VSync"]
|
[editable path="TabContainer/SETTINGS_GRAPHICS/VBoxContainer/ScrollContainer/MarginContainer/SettingsList/VSync"]
|
||||||
|
25
src/world/gunkable/gunk_dust.gd
Normal file
25
src/world/gunkable/gunk_dust.gd
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
extends GPUParticles3D
|
||||||
|
|
||||||
|
@export var emit_scale := 0.1
|
||||||
|
|
||||||
|
var _last_clear_total := 0.0
|
||||||
|
var _emitting_this_frame := false
|
||||||
|
|
||||||
|
|
||||||
|
func _on_gunkable_clear_total_updated(clear_total: float) -> void:
|
||||||
|
var delta := maxf(clear_total - _last_clear_total, 0)
|
||||||
|
|
||||||
|
amount_ratio = clampf(delta * emit_scale, 0, 1)
|
||||||
|
if delta > 0:
|
||||||
|
_emitting_this_frame = true
|
||||||
|
|
||||||
|
_last_clear_total = clear_total
|
||||||
|
|
||||||
|
|
||||||
|
func _on_gunkable_painted_at_point(point: Vector3, normal: Vector3) -> void:
|
||||||
|
look_at_from_position(point, point + normal, global_basis.y)
|
||||||
|
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
emitting = _emitting_this_frame
|
||||||
|
_emitting_this_frame = false
|
1
src/world/gunkable/gunk_dust.gd.uid
Normal file
1
src/world/gunkable/gunk_dust.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://b88k7m1mwrd0v
|
@ -4,6 +4,9 @@ class_name Gunkable extends Node
|
|||||||
## Emitted from the main thread after the clear total is asynchronously updated.
|
## Emitted from the main thread after the clear total is asynchronously updated.
|
||||||
signal clear_total_updated(clear_total: float)
|
signal clear_total_updated(clear_total: float)
|
||||||
|
|
||||||
|
## Emitted from the main thread any time a point is painted
|
||||||
|
signal painted_at_point(point: Vector3, normal: Vector3)
|
||||||
|
|
||||||
const CONTINUITY_LIMIT := 32
|
const CONTINUITY_LIMIT := 32
|
||||||
const BUFFER_LIMIT := 3
|
const BUFFER_LIMIT := 3
|
||||||
const FACE_EPSILON := 0.01
|
const FACE_EPSILON := 0.01
|
||||||
@ -212,6 +215,7 @@ func paint_dot(point: Vector3, normal: Vector3, radius: float, color: Color = MA
|
|||||||
mask_control.queue_draw(
|
mask_control.queue_draw(
|
||||||
func() -> void: mask_control.draw_circle(px, radius, color, true, -1, true)
|
func() -> void: mask_control.draw_circle(px, radius, color, true, -1, true)
|
||||||
)
|
)
|
||||||
|
painted_at_point.emit(point, normal)
|
||||||
|
|
||||||
|
|
||||||
## Paint a continuous line on the gunk mask if called on successive frames.
|
## Paint a continuous line on the gunk mask if called on successive frames.
|
||||||
@ -235,6 +239,7 @@ func paint_continuous(
|
|||||||
func() -> void: mask_control.draw_circle(px, width, color, true, -1, true)
|
func() -> void: mask_control.draw_circle(px, width, color, true, -1, true)
|
||||||
)
|
)
|
||||||
_continued_paint_this_frame = true
|
_continued_paint_this_frame = true
|
||||||
|
painted_at_point.emit(point, normal)
|
||||||
|
|
||||||
|
|
||||||
## Add a segment to the multiline to paint this frame.
|
## Add a segment to the multiline to paint this frame.
|
||||||
@ -248,6 +253,7 @@ func add_to_multiline(
|
|||||||
_multiline_buffer.append(px_a)
|
_multiline_buffer.append(px_a)
|
||||||
_multiline_buffer.append(px_b)
|
_multiline_buffer.append(px_b)
|
||||||
_multiline_width = width
|
_multiline_width = width
|
||||||
|
painted_at_point.emit(point_a, normal_a)
|
||||||
|
|
||||||
|
|
||||||
func _process(_delta: float) -> void:
|
func _process(_delta: float) -> void:
|
||||||
|
@ -1,7 +1,13 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://cdi5sl60mw1po"]
|
[gd_scene load_steps=6 format=3 uid="uid://cdi5sl60mw1po"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="1_47xoo"]
|
[ext_resource type="Script" uid="uid://co0g2klfmor48" path="res://src/world/gunkable/gunkable.gd" id="1_47xoo"]
|
||||||
[ext_resource type="Script" uid="uid://bom5qysgfvap1" path="res://src/world/gunkable/draw_controller.gd" id="2_srn13"]
|
[ext_resource type="Script" uid="uid://bom5qysgfvap1" path="res://src/world/gunkable/draw_controller.gd" id="2_srn13"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c3iv00vmdqxp0" path="res://src/effects/gunk_dust.tscn" id="3_vad3y"]
|
||||||
|
[ext_resource type="Script" uid="uid://b88k7m1mwrd0v" path="res://src/world/gunkable/gunk_dust.gd" id="4_3mpo3"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleMesh" id="CapsuleMesh_3mpo3"]
|
||||||
|
radius = 0.1
|
||||||
|
height = 1.0
|
||||||
|
|
||||||
[node name="Gunkable" type="Node" groups=["Persistent"]]
|
[node name="Gunkable" type="Node" groups=["Persistent"]]
|
||||||
script = ExtResource("1_47xoo")
|
script = ExtResource("1_47xoo")
|
||||||
@ -42,6 +48,21 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("2_srn13")
|
script = ExtResource("2_srn13")
|
||||||
|
|
||||||
|
[node name="GunkDust" parent="." instance=ExtResource("3_vad3y")]
|
||||||
|
top_level = true
|
||||||
|
emitting = false
|
||||||
|
amount = 64
|
||||||
|
lifetime = 1.2
|
||||||
|
script = ExtResource("4_3mpo3")
|
||||||
|
emit_scale = 0.08
|
||||||
|
|
||||||
|
[node name="DebugMesh" type="MeshInstance3D" parent="GunkDust"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
|
||||||
|
visible = false
|
||||||
|
mesh = SubResource("CapsuleMesh_3mpo3")
|
||||||
|
|
||||||
|
[connection signal="clear_total_updated" from="." to="GunkDust" method="_on_gunkable_clear_total_updated"]
|
||||||
|
[connection signal="painted_at_point" from="." to="GunkDust" method="_on_gunkable_painted_at_point"]
|
||||||
[connection signal="visibility_changed" from="MaskViewport/MaskClear" to="MaskViewport/MaskControl" method="_set_dirty"]
|
[connection signal="visibility_changed" from="MaskViewport/MaskClear" to="MaskViewport/MaskControl" method="_set_dirty"]
|
||||||
[connection signal="visibility_changed" from="MaskViewport/MaskTexture" to="MaskViewport/MaskControl" method="_set_dirty"]
|
[connection signal="visibility_changed" from="MaskViewport/MaskTexture" to="MaskViewport/MaskControl" method="_set_dirty"]
|
||||||
[connection signal="draw" from="MaskViewport/MaskControl" to="." method="_on_mask_painted"]
|
[connection signal="draw" from="MaskViewport/MaskControl" to="." method="_on_mask_painted"]
|
||||||
|
@ -76,7 +76,7 @@ metadata/_custom_type_script = "uid://ufxoxupdvyd5"
|
|||||||
script = ExtResource("2_c37ff")
|
script = ExtResource("2_c37ff")
|
||||||
name = "WELLNESS SEMINAR"
|
name = "WELLNESS SEMINAR"
|
||||||
message = "SEMINAR DECRYPTED.
|
message = "SEMINAR DECRYPTED.
|
||||||
The FUTURE of WELLNESS is TODAY!"
|
The FUTURE of WELLNESS is TODAY! [TODO]"
|
||||||
mp3_player = false
|
mp3_player = false
|
||||||
toothbrush = false
|
toothbrush = false
|
||||||
seminar = true
|
seminar = true
|
||||||
@ -196,7 +196,7 @@ metadata/_custom_type_script = "uid://ufxoxupdvyd5"
|
|||||||
[sub_resource type="Resource" id="Resource_2eyq5"]
|
[sub_resource type="Resource" id="Resource_2eyq5"]
|
||||||
script = ExtResource("2_c37ff")
|
script = ExtResource("2_c37ff")
|
||||||
name = "???"
|
name = "???"
|
||||||
message = "????? ?"
|
message = "????? ? [TODO]"
|
||||||
mp3_player = false
|
mp3_player = false
|
||||||
toothbrush = false
|
toothbrush = false
|
||||||
seminar = false
|
seminar = false
|
||||||
@ -225,7 +225,7 @@ metadata/_custom_type_script = "uid://ufxoxupdvyd5"
|
|||||||
[sub_resource type="Resource" id="Resource_2qxxw"]
|
[sub_resource type="Resource" id="Resource_2qxxw"]
|
||||||
script = ExtResource("2_c37ff")
|
script = ExtResource("2_c37ff")
|
||||||
name = "taco fiesta"
|
name = "taco fiesta"
|
||||||
message = "ENJOY THE FIESTA GRUNKER !"
|
message = "ENJOY THE FIESTA GRUNKER ! [TODO]"
|
||||||
mp3_player = false
|
mp3_player = false
|
||||||
toothbrush = false
|
toothbrush = false
|
||||||
seminar = false
|
seminar = false
|
||||||
|
@ -171,4 +171,5 @@
|
|||||||
- [x] holdable object HUD icon
|
- [x] holdable object HUD icon
|
||||||
- [ ] highlight holdable objects?
|
- [ ] highlight holdable objects?
|
||||||
- [x] hide tool UI when holding
|
- [x] hide tool UI when holding
|
||||||
- [ ] Keep bonus tracks, taco fiesta, maybe stickers in upgrade track. Everything else comes from the [[company store]], as well as upgrades.
|
- [ ] Keep bonus tracks, taco fiesta, maybe stickers in upgrade track. Everything else comes from the [[company store]], as well as upgrades.
|
||||||
|
- [ ] gunk dust should probably be emitted by the tool, yeah?
|
Loading…
x
Reference in New Issue
Block a user