mirror of
https://github.com/Relintai/material-maker.git
synced 2024-11-13 06:27:18 +01:00
35 lines
785 B
GDScript
35 lines
785 B
GDScript
extends OptionButton
|
||
class_name SizeOptionButton
|
||
|
||
var min_size : int = 4 setget set_min_size
|
||
var max_size : int = 12 setget set_max_size
|
||
var size_value : int = 10 setget set_size_value
|
||
|
||
signal size_value_changed(s)
|
||
|
||
func _ready() -> void:
|
||
connect("item_selected", self, "_on_item_selected")
|
||
|
||
func set_min_size(m : int) -> void:
|
||
min_size = m
|
||
update_options()
|
||
|
||
func set_max_size(m : int) -> void:
|
||
max_size = m
|
||
update_options()
|
||
|
||
func set_size_value(v : int) -> void:
|
||
size_value = v
|
||
update_options()
|
||
|
||
func update_options() -> void:
|
||
clear()
|
||
for i in range(min_size, max_size+1):
|
||
var s = pow(2, i)
|
||
add_item("%d×%d" % [ s, s ])
|
||
selected = size_value-min_size
|
||
|
||
func _on_item_selected(id : int) -> void:
|
||
size_value = id + min_size
|
||
emit_signal("size_value_changed", size_value)
|