Files
pomchronicles/scripts/map_point.gd

56 lines
1.3 KiB
GDScript

@tool
extends TextureButton
@onready var panel : PanelContainer = $Panel
@onready var anim_player : AnimationPlayer = $AnimationPlayer
var panel_shown : bool = false
@export var primed : bool = false
var locked : bool = true
var mat : ShaderMaterial
var _circle_size : float = 0
@export var circle_size: float:
get(): return _circle_size
set(value):
_circle_size = value
queue_redraw()
@export var add_color : Color
@export var threshold : float
@export var thickness : float = 5
@export var max_circle_size : float = 200
func _ready() -> void:
mat = %CanvasGroup.material
if primed:
anim_player.play("primed")
func _process(delta: float) -> void:
mat.set_shader_parameter("add_color", add_color)
mat.set_shader_parameter("threshold", threshold)
func unlock() -> void:
locked = false
primed = false
anim_player.play("unlock")
$AudioStreamPlayer2D.play()
func _on_mouse_entered() -> void:
if !panel_shown:
panel.visible = true
panel_shown = true
pass # Replace with function body.
func _buttonn_pressed() -> void:
if primed:
unlock()
func _on_mouse_exited() -> void:
if panel_shown:
panel.visible = false
panel_shown = false
pass # Replace with function body.
func _draw() -> void:
if _circle_size != 0:
draw_circle(global_position, _circle_size, add_color, false, thickness * (max_circle_size - _circle_size) / max_circle_size)