online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/colorpicker/HueSlider.gd')
| -rw-r--r-- | ui/colorpicker/HueSlider.gd | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/ui/colorpicker/HueSlider.gd b/ui/colorpicker/HueSlider.gd index bbc8234..247c029 100644 --- a/ui/colorpicker/HueSlider.gd +++ b/ui/colorpicker/HueSlider.gd @@ -1,28 +1,25 @@ extends Control class_name HueSlider -signal color_changed(color) +signal hue_changed(hue) -var color: Color setget set_color +var hue: float = 0 -func _gui_input(event): +func _gui_input(event: InputEvent) -> void: if Input.is_action_pressed("click") and event is InputEventMouse: - var position = event.position - var tmphue = clamp(position.y / rect_size.y, 0, 1) - set_color(Color.from_hsv(tmphue, color.s, color.v)) - emit_signal("color_changed", color) + var position: Vector2 = event.position + set_hue(clamp(position.y / rect_size.y, 0, 1)) + emit_signal("hue_changed", hue) -func set_color(newcolor): - if newcolor != color: - color = newcolor +func set_hue(nh: float) -> void: + if nh != hue: + hue = nh update() -func _draw(): - var x = rect_size.x - var y = color.h * rect_size.y - draw_line(Vector2(0, y - 1), Vector2(x, y - 1), Color.black, 1, true) - draw_line(Vector2(0, y), Vector2(x, y), Color.white, 1, true) - draw_line(Vector2(0, y + 1), Vector2(x, y + 1), Color.black, 1, true) +func _draw() -> void: + var y := hue * rect_size.y + var drawclr := Color.from_hsv(wrapf(hue + .5, 0, 1), 1, 1, 1) + draw_line(Vector2(0, y), Vector2(rect_size.x, y), drawclr, 1, true) |