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.
 

39 lines
912 B

class_name DroppedBlock
extends Node3D
@export var block_tilt: float = 15.0
@export var bounce_height: float = 0.25
@export var bounce_duration: float = 1.0
@export var spin_duration: float = 2.0
@export var block_size_scale: float = 0.25
@onready var start_position: Vector3 = self.position
var tween: Tween
func drop_block(block_id: String) -> void:
_create_block(block_id)
_run_animation()
func remove_block() -> void:
queue_free()
func _create_block(block_id: String) -> void:
var block: Block = World.BLOCK_PREFAB.instantiate()
block.rotation.z = block_tilt
block.set_id(block_id)
block.scale = Vector3(block_size_scale, block_size_scale, block_size_scale)
add_child(block)
block.collision_shape.disabled = true
func _run_animation() -> void:
tween = create_tween().set_loops()
tween.tween_property(
self,
"rotation_degrees",
Vector3(0, 360, 0),
spin_duration
).from_current()