class_name World extends Node3D const BLOCK_PREFAB: PackedScene = preload("res://scenes/blocks/block.tscn") const BLOCK_MATERIALS: Dictionary[Block.Types, StandardMaterial3D] = { Block.Types.DIRT: preload("res://assets/materials/dirt.tres"), Block.Types.STONE: preload("res://assets/materials/stone.tres"), } func _ready() -> void: create_block(Block.Types.DIRT, Vector3.ZERO) create_block(Block.Types.STONE, Vector3.ONE) func create_block(block_type: Block.Types, block_position: Vector3) -> void: var block: Block = BLOCK_PREFAB.instantiate() block.position = block_position block.name = "%s" % [block_position] block.set_material(BLOCK_MATERIALS[block_type]) add_child(block)