online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/menus/settings/Preview.gd')
| -rw-r--r-- | ui/menus/settings/Preview.gd | 39 |
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) |