A Minecraft style clone in Godot
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

29 lines
614 B

class_name Block
extends StaticBody3D
const Materials: Dictionary[Types, StandardMaterial3D] = {
Block.Types.DIRT: preload("res://assets/materials/dirt.tres"),
Block.Types.STONE: preload("res://assets/materials/stone.tres"),
}
enum Types {
DIRT,
STONE,
}
@export var material: StandardMaterial3D
@export var type: Types
@onready var block_faces: Node3D = $BlockFaces
func _ready() -> void:
_apply_materials()
func apply_material():
material = Materials[type]
func _apply_materials() -> void:
for face: MeshInstance3D in block_faces.get_children():
face.set_surface_override_material(0, material)