commit e78a939acbde029b9283330ea10df458fa83c48a from: Omar Polo date: Fri Aug 19 21:51:53 2022 UTC make da web workz commit - 3fc3080d0c5b55dc5d560c1e48c465b0ee249e14 commit + e78a939acbde029b9283330ea10df458fa83c48a blob - 4a91a78b46c8739e3be0a85cf309f5b22669fe18 blob + 66d9e838c57d23268ca834637648ae7b6d40025c --- src/board.gd +++ src/board.gd @@ -1,8 +1,7 @@ extends Node2D +var _ids := 0 -func _unused_send_ping() -> void: - rpc("ping") remote func ping(): var id := get_tree().get_rpc_sender_id() @@ -13,10 +12,34 @@ remote func pong(): var id := get_tree().get_rpc_sender_id() print("PONG from ", id) +remote func move(id, x, y): + print("id is ", id) + for child in $"pieces".get_children(): + if child.id == id: + child.position = Vector2(x, y) + return + print("piece ", id, " not found!") + +remote func setup() -> void: + print("was ordered to set up!") + _place(false) + + +func _onmoving(id, x, y): + rpc_unreliable("move", id, x, y) + + +func _onmoved(id, x, y): + rpc("move", id, x, y) + + func _addpiece(kind: String, black: bool, off: int) -> void: + _ids += 1 var piece := preload("res://src/piece/piece.tscn").instance() - piece.setup(kind, black) + piece.setup(_ids, kind, black) + piece.connect("moving", self, "_onmoving") + piece.connect("moved", self, "_onmoved") $"pieces".add_child(piece) var y := 70 if not black: @@ -30,7 +53,15 @@ func _addpiece(kind: String, black: bool, off: int) -> func _on_setup_click() -> void: + _place(true) + + +func _place(send: bool) -> void: + if send: + rpc("setup") + # remove and re-place (pun intended) all the pieces + _ids = 0 for child in $"pieces".get_children(): $"pieces".remove_child(child) child.queue_free() @@ -47,3 +78,7 @@ func _on_setup_click() -> void: _addpiece(p, true, off) _addpiece(p, false, off) off += 63 + + +func _fai_cose() -> void: + rpc("ping") blob - 6b431e50b18e4357693de5635c0859a7315c7aba blob + 332466b73ad03d0d10dace36ce8c7c57d3bfd534 --- src/board.tscn +++ src/board.tscn @@ -19,4 +19,12 @@ text = "Setup Board" [node name="pieces" type="Node2D" parent="."] +[node name="Button" type="Button" parent="."] +margin_left = 109.0 +margin_top = 165.0 +margin_right = 198.0 +margin_bottom = 185.0 +text = "PING/PONG" + [connection signal="button_down" from="setup" to="." method="_on_setup_click"] +[connection signal="pressed" from="Button" to="." method="_fai_cose"] blob - 70121c14fa0b8cf78ea80f8cd4a2ea4ba06c921f blob + d1fdf799b04abbcc9704a3331fd573a08dc2bd86 --- src/menu.gd +++ src/menu.gd @@ -13,21 +13,23 @@ func _ready() -> void: get_tree().connect("server_disconnected", self, "_server_disconnected") -func _player_connected(id): - print("player_connected ", id) +func _peer_connected(id): + print("peer_connected ", id) rpc_id(id, "ping") -func _player_disconnected(id): - print("player_disconnected ", id) +func _peer_disconnected(id): + print("peer_disconnected ", id) func _connected_ok(): print("connected!") + func _connected_fail(): print("failed to connect D:<") + func _server_disconnected(): print("disconnected!!!!! D:<<") @@ -44,10 +46,12 @@ func _on_serverz_click() -> void: func _on_clientz_click() -> void: var peer := NetworkedMultiplayerENet.new() - var err := peer.create_client($VBoxContainer/HBoxContainer/ipaddr.text, SERVER_PORT) + var ip :String = $VBoxContainer/ipaddr.text + var err := peer.create_client(ip, SERVER_PORT) if err != OK: print("WOOOOPS, failed with error ", err) return + print("OK! I should be connected?") get_tree().network_peer = peer goto_board() blob - c6b3bd8017ac17cd1d3e351f03931f5720c378e3 blob + 9fb0fec056a3f5322593ef0311db992fb59f42a6 --- src/piece/piece.gd +++ src/piece/piece.gd @@ -1,13 +1,15 @@ extends StaticBody2D var hold := false +var id : int -func setup(kind: String, black: bool) -> void: -# var t := "white" -# if black: -# t = "white" -# var sprite = Pieces.piece[kind][t] +signal moving(id, x, y) +signal moved(id, x, y) + + +func setup(_id: int, kind: String, black: bool) -> void: + id = _id var sprite = Pieces.getpiece(kind, black) $sprite.texture = sprite @@ -15,6 +17,7 @@ func setup(kind: String, black: bool) -> void: func _input(event: InputEvent) -> void: if hold and event is InputEventMouseMotion: position = event.position + emit_signal("moving", id, position.x, position.y) func _on_button_down() -> void: @@ -23,3 +26,4 @@ func _on_button_down() -> void: func _on_button_up() -> void: hold = false + emit_signal("moved", id, position.x, position.y)