online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/colorpicker/ColorSelect.gd')
-rw-r--r--ui/colorpicker/ColorSelect.gd25
1 files changed, 7 insertions, 18 deletions
diff --git a/ui/colorpicker/ColorSelect.gd b/ui/colorpicker/ColorSelect.gd
index 211e9f9..5ee779b 100644
--- a/ui/colorpicker/ColorSelect.gd
+++ b/ui/colorpicker/ColorSelect.gd
@@ -3,8 +3,6 @@ class_name ColorSelect
var color: Color setget set_color
-var _focused := false setget set_focused
-
onready var shader_holder := $ShaderHolder
signal color_changed(color)
@@ -22,33 +20,24 @@ func apply_hue(newhue):
func _gui_input(event):
- if _focused and Input.is_action_pressed("click") and event is InputEventMouse:
+ if Input.is_action_pressed("click") and event is InputEventMouse:
var position = event.position
- var saturation = position.x / rect_size.x
- var value = 1 - (position.y / rect_size.y)
- if saturation > 1 or saturation < 0 or value > 1 or value < 0:
- _focused = false
- return
+ var saturation = clamp(position.x / rect_size.x, 0, 1)
+ var value = clamp(1 - (position.y / rect_size.y), 0, 1)
set_color(Color.from_hsv(color.h, saturation, value))
update()
emit_signal("color_changed", color)
func _draw():
+ var draw_color = color.inverted()
+
var vlinex = color.s * rect_size.x
var vliney = rect_size.y
- draw_line(Vector2(vlinex - 1, 0), Vector2(vlinex - 1, vliney), Color.black)
- draw_line(Vector2(vlinex, 0), Vector2(vlinex, vliney), Color.white)
- draw_line(Vector2(vlinex + 1, 0), Vector2(vlinex + 1, vliney), Color.black)
+ draw_line(Vector2(vlinex, 0), Vector2(vlinex, vliney), draw_color)
var hlinex = rect_size.x
var hliney = rect_size.y - color.v * rect_size.y
- draw_line(Vector2(0, hliney - 1), Vector2(hlinex, hliney - 1), Color.black)
- draw_line(Vector2(0, hliney), Vector2(hlinex, hliney), Color.white)
- draw_line(Vector2(0, hliney + 1), Vector2(hlinex, hliney + 1), Color.black)
-
-
-func set_focused(focused):
- _focused = focused
+ draw_line(Vector2(0, hliney), Vector2(hlinex, hliney), draw_color)