online multiplayer chess game (note server currently down)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)