Feat/1 movement foundation #5
@@ -2,11 +2,12 @@ extends Node3D
|
|||||||
class_name TestLevelBuilder
|
class_name TestLevelBuilder
|
||||||
## Builds the test level ONLY from code — no .tscn SubResource references.
|
## Builds the test level ONLY from code — no .tscn SubResource references.
|
||||||
## One-click playtest: attach to TestLevel root, F5.
|
## One-click playtest: attach to TestLevel root, F5.
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
build()
|
build()
|
||||||
|
|
||||||
|
|
||||||
func build() -> void:
|
func build() -> void:
|
||||||
|
_build_input_map()
|
||||||
_build_floor()
|
_build_floor()
|
||||||
_build_walls()
|
_build_walls()
|
||||||
_build_lighting()
|
_build_lighting()
|
||||||
@@ -15,6 +16,41 @@ func build() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _box_static(pos: Vector3, size: Vector3, color: Color) -> StaticBody3D:
|
func _box_static(pos: Vector3, size: Vector3, color: Color) -> StaticBody3D:
|
||||||
|
|
||||||
|
|
||||||
|
func _build_input_map() -> void:
|
||||||
|
var bindings := {
|
||||||
|
jump = [KEY_SPACE],
|
||||||
|
sprint = [KEY_SHIFT],
|
||||||
|
crouch = [KEY_CTRL],
|
||||||
|
dash = [KEY_SHIFT],
|
||||||
|
fire = [MOUSE_BUTTON_RIGHT, KEY_F],
|
||||||
|
fire_alt = [MOUSE_BUTTON_LEFT],
|
||||||
|
reload = [KEY_R],
|
||||||
|
interact = [KEY_E],
|
||||||
|
move_forward = [KEY_W],
|
||||||
|
move_back = [KEY_S],
|
||||||
|
move_left = [KEY_A],
|
||||||
|
move_right = [KEY_D],
|
||||||
|
weapon_next = [MOUSE_BUTTON_WHEEL_UP],
|
||||||
|
weapon_prev = [MOUSE_BUTTON_WHEEL_DOWN],
|
||||||
|
}
|
||||||
|
for action in bindings:
|
||||||
|
if not InputMap.has_action(action):
|
||||||
|
InputMap.add_action(action)
|
||||||
|
InputMap.action_erase_events(action)
|
||||||
|
var events: Array[InputEvent] = []
|
||||||
|
for code in bindings[action]:
|
||||||
|
if code in [KEY_SPACE, KEY_SHIFT, KEY_CTRL, KEY_R, KEY_F, KEY_E, KEY_W, KEY_S, KEY_A, KEY_D]:
|
||||||
|
var ev := InputEventKey.new()
|
||||||
|
ev.keycode = code
|
||||||
|
events.append(ev)
|
||||||
|
else:
|
||||||
|
var ev := InputEventMouseButton.new()
|
||||||
|
ev.button_index = code
|
||||||
|
events.append(ev)
|
||||||
|
for ev in events:
|
||||||
|
InputMap.action_add_event(action, ev)
|
||||||
var body := StaticBody3D.new()
|
var body := StaticBody3D.new()
|
||||||
body.name = "Static_" + str(pos)
|
body.name = "Static_" + str(pos)
|
||||||
body.position = pos
|
body.position = pos
|
||||||
|
|||||||
Reference in New Issue
Block a user