fix: rewrite TestLevelBuilder with parse-safe InputMap bootstrapping
This commit is contained in:
+17
-19
@@ -1,5 +1,6 @@
|
|||||||
extends Node3D
|
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:
|
||||||
@@ -16,6 +17,22 @@ func build() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _box_static(pos: Vector3, size: Vector3, color: Color) -> StaticBody3D:
|
func _box_static(pos: Vector3, size: Vector3, color: Color) -> StaticBody3D:
|
||||||
|
var body := StaticBody3D.new()
|
||||||
|
body.name = "Static_" + str(pos)
|
||||||
|
body.position = pos
|
||||||
|
add_child(body)
|
||||||
|
var shape := CollisionShape3D.new()
|
||||||
|
shape.shape = BoxShape3D.new()
|
||||||
|
shape.shape.size = size
|
||||||
|
body.add_child(shape)
|
||||||
|
var mesh := MeshInstance3D.new()
|
||||||
|
mesh.mesh = BoxMesh.new()
|
||||||
|
mesh.mesh.size = size
|
||||||
|
var mat := StandardMaterial3D.new()
|
||||||
|
mat.albedo_color = color
|
||||||
|
mesh.mesh.surface_set_material(0, mat)
|
||||||
|
body.add_child(mesh)
|
||||||
|
return body
|
||||||
|
|
||||||
|
|
||||||
func _build_input_map() -> void:
|
func _build_input_map() -> void:
|
||||||
@@ -51,22 +68,6 @@ func _build_input_map() -> void:
|
|||||||
events.append(ev)
|
events.append(ev)
|
||||||
for ev in events:
|
for ev in events:
|
||||||
InputMap.action_add_event(action, ev)
|
InputMap.action_add_event(action, ev)
|
||||||
var body := StaticBody3D.new()
|
|
||||||
body.name = "Static_" + str(pos)
|
|
||||||
body.position = pos
|
|
||||||
add_child(body)
|
|
||||||
var shape := CollisionShape3D.new()
|
|
||||||
shape.shape = BoxShape3D.new()
|
|
||||||
shape.shape.size = size
|
|
||||||
body.add_child(shape)
|
|
||||||
var mesh := MeshInstance3D.new()
|
|
||||||
mesh.mesh = BoxMesh.new()
|
|
||||||
mesh.mesh.size = size
|
|
||||||
var mat := StandardMaterial3D.new()
|
|
||||||
mat.albedo_color = color
|
|
||||||
mesh.mesh.surface_set_material(0, mat)
|
|
||||||
body.add_child(mesh)
|
|
||||||
return body
|
|
||||||
|
|
||||||
|
|
||||||
func _build_floor() -> void:
|
func _build_floor() -> void:
|
||||||
@@ -105,7 +106,6 @@ func _build_player() -> void:
|
|||||||
if mover_script:
|
if mover_script:
|
||||||
player.set_script(mover_script)
|
player.set_script(mover_script)
|
||||||
|
|
||||||
# State machine
|
|
||||||
var sm := Node.new()
|
var sm := Node.new()
|
||||||
sm.name = "MovementStateMachine"
|
sm.name = "MovementStateMachine"
|
||||||
player.add_child(sm)
|
player.add_child(sm)
|
||||||
@@ -114,7 +114,6 @@ func _build_player() -> void:
|
|||||||
if sm_script:
|
if sm_script:
|
||||||
sm.set_script(sm_script)
|
sm.set_script(sm_script)
|
||||||
|
|
||||||
# State children
|
|
||||||
var state_scripts := {
|
var state_scripts := {
|
||||||
"ground": "res://movement/states/state_ground.gd",
|
"ground": "res://movement/states/state_ground.gd",
|
||||||
"air": "res://movement/states/state_air.gd",
|
"air": "res://movement/states/state_air.gd",
|
||||||
@@ -131,7 +130,6 @@ func _build_player() -> void:
|
|||||||
if st_script:
|
if st_script:
|
||||||
st.set_script(st_script)
|
st.set_script(st_script)
|
||||||
|
|
||||||
# Camera
|
|
||||||
var camera := Camera3D.new()
|
var camera := Camera3D.new()
|
||||||
camera.name = "Camera3D"
|
camera.name = "Camera3D"
|
||||||
camera.position = Vector3(0, 1.7, -3)
|
camera.position = Vector3(0, 1.7, -3)
|
||||||
|
|||||||
Reference in New Issue
Block a user