online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/menus/settings/Preview.gd')
-rw-r--r--ui/menus/settings/Preview.gd39
1 files changed, 39 insertions, 0 deletions
diff --git a/ui/menus/settings/Preview.gd b/ui/menus/settings/Preview.gd
new file mode 100644
index 0000000..8807498
--- /dev/null
+++ b/ui/menus/settings/Preview.gd
@@ -0,0 +1,39 @@
+tool
+extends GridContainer
+class_name Preview
+
+var size := Vector2(5, 4)
+
+const pieces = [
+ "R", "N", "B", "Q", "K",
+ "P", "P", "P", "P", "P",
+ "P", "P", "P", "P", "P",
+ "K", "Q", "B", "N", "R",
+]
+
+func _init() -> void:
+ columns = size.x
+ for x in size.x:
+ for y in size.y:
+ var clr := ColorRect.new()
+ clr.name = "%s%s" % [x, y]
+ clr.rect_min_size = Vector2(100, 100)
+ var tex := TextureRect.new()
+ tex.rect_min_size = Vector2(100, 100)
+ tex.expand = true
+ tex.name = "Piece"
+ clr.add_child(tex)
+ add_child(clr)
+ if Engine.is_editor_hint():
+ update_preview(Color(0.870588, 0.890196, 0.901961), Color(0.54902, 0.635294, 0.678431), "california")
+
+
+func update_preview(color1:Color, color2:Color, piece_set:String) -> void:
+ var squares := get_children()
+ for i in range(size.x * size.y):
+ squares[i].color = color1 if i % 2 == 0 else color2
+ var top := (size.x * size.y) / 2
+ for i in size.x * size.y:
+ var node :TextureRect= squares[i].get_node("Piece")
+ var things := [piece_set, "b" if i < top else "w", pieces[i]]
+ node.texture = load("res://assets/pieces/%s/%s%s.png" % things)