feat: implement persistent settings manager, add character movement controller, and create FPS map blockout scene
This commit is contained in:
@@ -22,6 +22,7 @@ var default_bindings = {
|
|||||||
"weapon_2": {"type": "key", "code": KEY_2},
|
"weapon_2": {"type": "key", "code": KEY_2},
|
||||||
"weapon_3": {"type": "key", "code": KEY_3},
|
"weapon_3": {"type": "key", "code": KEY_3},
|
||||||
"weapon_4": {"type": "key", "code": KEY_4},
|
"weapon_4": {"type": "key", "code": KEY_4},
|
||||||
|
"toggle_flashlight": {"type": "key", "code": KEY_T},
|
||||||
}
|
}
|
||||||
|
|
||||||
var current_bindings = {}
|
var current_bindings = {}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ signal chain_updated(count: int, bonus: float)
|
|||||||
var _machine: MovementStateMachine = null
|
var _machine: MovementStateMachine = null
|
||||||
var head_pivot: Node3D = null # FPSCameraRig node
|
var head_pivot: Node3D = null # FPSCameraRig node
|
||||||
var camera: Camera3D = null
|
var camera: Camera3D = null
|
||||||
|
var flashlight: SpotLight3D = null
|
||||||
var _damage_layer: CanvasLayer = null
|
var _damage_layer: CanvasLayer = null
|
||||||
|
|
||||||
# Health and Shield
|
# Health and Shield
|
||||||
@@ -81,6 +82,17 @@ func _ready() -> void:
|
|||||||
head_pivot = get_node_or_null("HeadPivot")
|
head_pivot = get_node_or_null("HeadPivot")
|
||||||
if head_pivot:
|
if head_pivot:
|
||||||
camera = head_pivot.get_node_or_null("Camera3D")
|
camera = head_pivot.get_node_or_null("Camera3D")
|
||||||
|
|
||||||
|
if camera:
|
||||||
|
flashlight = SpotLight3D.new()
|
||||||
|
flashlight.spot_range = 100.0
|
||||||
|
flashlight.spot_angle = 35.0
|
||||||
|
flashlight.light_energy = 5.0
|
||||||
|
flashlight.light_volumetric_fog_energy = 0.0 # Prevents the blinding fog glare and laggy trails
|
||||||
|
flashlight.shadow_enabled = false
|
||||||
|
flashlight.position = Vector3(0, 0, 0)
|
||||||
|
flashlight.visible = false
|
||||||
|
camera.add_child(flashlight)
|
||||||
|
|
||||||
_setup_audio()
|
_setup_audio()
|
||||||
_setup_grapple()
|
_setup_grapple()
|
||||||
@@ -652,6 +664,9 @@ func _physics_process(_delta: float) -> void:
|
|||||||
var input_grapple = Input.is_action_pressed("grapple")
|
var input_grapple = Input.is_action_pressed("grapple")
|
||||||
var input_grapple_just = Input.is_action_just_pressed("grapple")
|
var input_grapple_just = Input.is_action_just_pressed("grapple")
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("toggle_flashlight") and is_instance_valid(flashlight):
|
||||||
|
flashlight.visible = !flashlight.visible
|
||||||
|
|
||||||
server_receive_inputs.rpc_id(1, raw_input, world_dir, input_jump, input_jump_just, input_crouch, input_dash, input_grapple, input_grapple_just)
|
server_receive_inputs.rpc_id(1, raw_input, world_dir, input_jump, input_jump_just, input_crouch, input_dash, input_grapple, input_grapple_just)
|
||||||
|
|
||||||
var speed = velocity.length()
|
var speed = velocity.length()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://c0ab260fc1da"]
|
[gd_scene load_steps=12 format=3 uid="uid://1feccd321600"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scenes/maps/level_runtime.gd" id="1_rt"]
|
[ext_resource type="Script" path="res://scenes/maps/level_runtime.gd" id="1_rt"]
|
||||||
|
|
||||||
@@ -292,6 +292,24 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 3.5, -45)
|
|||||||
size = Vector3(4, 4, 10)
|
size = Vector3(4, 4, 10)
|
||||||
material = SubResource("StandardMaterial3D_blue")
|
material = SubResource("StandardMaterial3D_blue")
|
||||||
|
|
||||||
|
[node name="TunnelExitW" type="CSGBox3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35, 2.5, -35)
|
||||||
|
size = Vector3(10, 5, 20)
|
||||||
|
material = SubResource("StandardMaterial3D_grey")
|
||||||
|
operation = 2
|
||||||
|
|
||||||
|
[node name="TunnelExitE" type="CSGBox3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35, 2.5, -35)
|
||||||
|
size = Vector3(10, 5, 20)
|
||||||
|
material = SubResource("StandardMaterial3D_grey")
|
||||||
|
operation = 2
|
||||||
|
|
||||||
|
[node name="TunnelExitCenter" type="CSGBox3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, -35)
|
||||||
|
size = Vector3(10, 5, 20)
|
||||||
|
material = SubResource("StandardMaterial3D_grey")
|
||||||
|
operation = 2
|
||||||
|
|
||||||
[node name="RampNW" type="CSGBox3D" parent="."]
|
[node name="RampNW" type="CSGBox3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, -30, 3, -20)
|
transform = Transform3D(1, 0, 0, 0, 0.9366721892483976, 0.35020738125946743, 0, -0.35020738125946743, 0.9366721892483976, -30, 3, -20)
|
||||||
size = Vector3(10, 16, 1)
|
size = Vector3(10, 16, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user