|
class_name World
|
|
extends Node3D
|
|
|
|
|
|
func _ready() -> void:
|
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
|
EntityManager.create_block.connect(create_block.bind())
|
|
EntityManager.drop_block.connect(create_dropped_block.bind())
|
|
|
|
_initialize_ground()
|
|
|
|
create_block("001", Vector3(0, 1, -3))
|
|
create_block("002", Vector3(1, 1, -3))
|
|
create_block("003", Vector3(2, 1, -3))
|
|
create_block("004", Vector3(3, 1, -3))
|
|
|
|
create_dropped_block("001", Vector3(0, 1, -2))
|
|
create_dropped_block("002", Vector3(1, 1, -2))
|
|
create_dropped_block("003", Vector3(2, 1, -2))
|
|
create_dropped_block("004", Vector3(3, 1, -2))
|
|
|
|
|
|
func create_block(id: String, block_position: Vector3) -> void:
|
|
var block: Block = Globals.BLOCK_PREFAB.instantiate()
|
|
block.position = block_position
|
|
block.set_id(id)
|
|
|
|
add_child(block)
|
|
|
|
func create_dropped_block(id: String, block_position: Vector3) -> void:
|
|
var block: DroppedBlock = Globals.DROPPED_BLOCK_PREFAB.instantiate()
|
|
add_child(block)
|
|
block.initialize(id, block_position)
|
|
|
|
func _initialize_ground() -> void:
|
|
for x: int in range(-10, 11):
|
|
for z: int in range(-10, 11):
|
|
var ground_position: Vector3 = Vector3(x, 0, z)
|
|
|
|
var random: int = randi_range(0, 1)
|
|
if random:
|
|
# Just for testing.. Would probably make mmore sense to just call create_block() directly if still in World
|
|
EntityManager.create_block.emit("001", ground_position)
|
|
else:
|
|
EntityManager.create_block.emit("002", ground_position)
|