initial shit

This commit is contained in:
2026-06-04 16:53:41 -05:00
parent f019615187
commit d3779cff20
828 changed files with 512567 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
extends Node
signal buttonPressed
signal buttonReleased
signal buttonUpdated
@export var isBeingPressed = false
@export var text : String
@export var isLoopingUpdate : bool = false
@export var color : Color
# FIX: Do not instantly assign an empty .new() if it might have been loaded
var material : StandardMaterial3D
func _ready() -> void:
# Reconstruct or override the material instance cleanly on load
material = StandardMaterial3D.new()
material.albedo_color = color
ButtonAnimation.loop_mode = Animation.LOOP_NONE
$StaticBody3D/Label3D.text = text
$StaticBody3D/MeshInstance3D.material_override = material
# Keep animation visually synced with the saved press state
if isBeingPressed:
$AnimationPlayer.play("interact")
$AnimationPlayer.advance(ButtonAnimation.length)
else:
$AnimationPlayer.play_backwards("interact")
@onready var ButtonAnimation = $AnimationPlayer.get_animation("interact")
func _press():
if not isBeingPressed:
emit_signal("buttonPressed")
isBeingPressed = true
$AnimationPlayer.play("interact")
$Sound.pitch_scale = 1.5
$Sound.play()
emit_signal("buttonUpdated")
func _release():
if isBeingPressed:
emit_signal("buttonReleased")
isBeingPressed = false
$AnimationPlayer.play_backwards("interact")
$Sound.pitch_scale = 1.3
$Sound.play()
emit_signal("buttonUpdated")
func _interact_press(is_alt_click: bool = false) -> void:
_press()
func _interact_release() -> void:
_release()
func _process(delta: float) -> void:
if isLoopingUpdate:
emit_signal("buttonUpdated")