| class_name Block | |
| extends StaticBody3D | |
| 
 | |
| const PREFAB: PackedScene = preload("res://scenes/blocks/block.tscn") | |
| 
 | |
| @export var block_mesh: BlockMesh | |
| @export var collision_shape: CollisionShape3D | |
| @export var highlight_mesh: MeshInstance3D | |
| 
 | |
| var id: String | |
| 
 | |
| 
 | |
| func _exit_tree() -> void: | |
| 	if Waila.ref.get_target() == self: | |
| 		Waila.ref.release_target() | |
| 
 | |
| 
 | |
| func get_id() -> String: | |
| 	return id | |
| 
 | |
| func hook() -> void: | |
| 	if not GameSettingsManager.settings.game_options.enable_block_highlight: return | |
| 
 | |
| 	highlight_mesh.visible = true | |
| 
 | |
| # TODO: Rename to something else (maybe remove()) | |
| #       Move to signal? | |
| func destroy_block() -> void: | |
| 	queue_free() | |
| 
 | |
| func release() -> void: | |
| 	highlight_mesh.visible = false | |
| 
 | |
| func set_id(block_id: String) -> void: | |
| 	id = block_id | |
| 	if id in DBItems.data: | |
| 		block_mesh.apply_material(DBItems.data[id].material_texture) | |
| 	else: | |
| 		printerr("Unknown Block ID: ", id)
 |