Skip to content

Commit 59c3aeb

Browse files
committed
synchronized rigid_cube and cleanup
1 parent 7f78181 commit 59c3aeb

File tree

9 files changed

+27
-103
lines changed

9 files changed

+27
-103
lines changed
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
extends StaticBody3D
22

3-
var from_player : int
4-
var moving_cube_state : Array
5-
63
func _physics_process(_delta):
7-
# if category moving_cube doesnt exist in global_state add it
8-
# if !get_node("/root/Main").global_state.has("moving_cube"):
9-
# get_node("/root/Main").global_state["moving_cube"] = {}
10-
#
11-
# # add global moving_cube_state into vars
12-
# if get_node("/root/Main").global_state["moving_cube"].has(name):
13-
# moving_cube_state = get_node("/root/Main").global_state["moving_cube"][name]
14-
# position = moving_cube_state[0]
154
pass

client/assets/net/server_to_client.gd

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,21 @@ func send_output_to_client_unreliable(states_udp_json_string: String):
7070
player.camera_arm.rotation = Vector3(str_to_var("Vector3" + states_udp["player"][id]["camera_arm_rotation"]))
7171
if states_udp.has("moving_cube"):
7272
for id in states_udp["moving_cube"]:
73-
7473
if get_node("/root/main/maps/").get_child_count() > 0:
75-
print(get_node("/root/main/maps/").get_child(0).name)
76-
7774
var moving_cube = get_node("/root/main/maps/").get_child(0).get_node(id)
7875
if states_udp["moving_cube"][id].has("rotation"):
7976
moving_cube.rotation = Vector3(str_to_var("Vector3" + states_udp["moving_cube"][id]["rotation"]))
8077
if states_udp["moving_cube"][id].has("position"):
8178
moving_cube.position = Vector3(str_to_var("Vector3" + states_udp["moving_cube"][id]["position"]))
79+
if states_udp.has("rigid_cube"):
80+
for id in states_udp["rigid_cube"]:
81+
if get_node("/root/main/maps/").get_child_count() > 0:
82+
var rigid_cube = get_node("/root/main/maps/").get_child(0).get_node(id)
83+
if states_udp["rigid_cube"][id].has("rotation"):
84+
rigid_cube.rotation = Vector3(str_to_var("Vector3" + states_udp["rigid_cube"][id]["rotation"]))
85+
if states_udp["rigid_cube"][id].has("position"):
86+
rigid_cube.position = Vector3(str_to_var("Vector3" + states_udp["rigid_cube"][id]["position"]))
8287

83-
# var rotation = Vector3(str_to_var("Vector3" + output["rotation"]))
84-
# get_node("/root/main/players/" + str(id) + "/" + str(id)).rotation = rotation
85-
# var position = Vector3(str_to_var("Vector3" + output["position"]))
86-
# get_node("/root/main/players/" + str(id) + "/" + str(id)).position = position
87-
# var camera_arm_rotation = Vector3(str_to_var("Vector3" + output["camera_arm_rotation"]))
88-
# get_node("/root/main/players/" + str(id) + "/" + str(id) + "/SpringArm3D").rotation = camera_arm_rotation
8988

9089
@rpc("call_remote", "reliable")
9190
func send_output_to_client_reliable(states_tcp_json_string: String):
@@ -95,9 +94,3 @@ func send_output_to_client_reliable(states_tcp_json_string: String):
9594
var player = get_node("/root/main/players/" + id + "/" + id)
9695
if states_tcp["player"][id].has("camera_arm_scale"):
9796
player.camera_arm.scale = Vector3(str_to_var("Vector3" + states_tcp["player"][id]["camera_arm_scale"]))
98-
99-
# var output: Dictionary = JSON.parse_string(output_json_string)
100-
# var id = int(output["id"])
101-
# var camera_arm_scale = Vector3(str_to_var("Vector3" + output["camera_arm_scale"]))
102-
## print("received scale: " + str(camera_arm_scale))
103-
# get_node("/root/main/players/" + str(id) + "/" + str(id) + "/SpringArm3D").scale = camera_arm_scale

client/assets/player/player.gd

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
extends CharacterBody3D
22

3-
#TODO:
4-
#merge player_to_server into client_to_server
5-
#updaterate / limit packets send
6-
7-
83

94
#various
105
var client_ready: bool = false
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
extends RigidBody3D
22

3-
var rigid_cube_state : Array
4-
53
func _physics_process(_delta):
6-
# if category rigid_cube doesnt exist in global_state add it
7-
# if !get_node("/root/Main").global_state.has("rigid_cube"):
8-
# get_node("/root/Main").global_state["rigid_cube"] = {}
9-
#
10-
# # add global rigid_cube_state into varsw
11-
# if get_node("/root/Main").global_state["rigid_cube"].has(name):
12-
# rigid_cube_state = get_node("/root/Main").global_state["rigid_cube"][name]
13-
# position = rigid_cube_state[0]
14-
# rotation = rigid_cube_state[1]
154
pass

server/assets/moving_cube/moving_cube.gd

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
extends StaticBody3D
22

3-
#var moving_cube_state : Array
43
var vel = 0
54
var length = 0.8
65
var speed = 5
@@ -31,13 +30,3 @@ func _process(delta):
3130
get_node("/root/main/net").states_udp["moving_cube"] = {}
3231
# add player_state to states_udp
3332
get_node("/root/main/net").states_udp["moving_cube"][name] = moving_cube_state_udp
34-
35-
36-
# moving_cube_state = [position]
37-
#
38-
# #if moving_cube doesnt exist add it to global_state
39-
# if !get_node("/root/Main").global_state.has("moving_cube"):
40-
# get_node("/root/Main").global_state["moving_cube"] = {}
41-
#
42-
# # add moving_cube_state to global_state
43-
# get_node("/root/Main").global_state["moving_cube"][name] = moving_cube_state

server/assets/net/client_to_server.gd

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ func done_preconfig():
1818
# if child.name == str(newplayerid):
1919
# assert(ip == child.ip)
2020

21-
# createlbl("Names", str(newplayerid), pname)
22-
# createlbl("Positions", str(newplayerid), str(pos))
21+
2322
# get_node("/root/main/players/" + str(new_id)).player_name = pname
2423
# get_node("/root/main/players/" + str(new_id)).global_position = pos
2524
get_node("/root/main/players/" + str(new_id) + "/" + str(new_id)).client_ready = true

server/assets/net/net.gd

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,8 @@ func spawn_player_on_server(id): #TODO player nur spawna wenn im sichtbereich un
170170
player.set_name(str(id))
171171
player.ip = peer.get_peer(id).get_remote_address()
172172
player.player_name = "Spartan " + str(randi()%201+1)
173-
# var material: StandardMaterial3D = StandardMaterial3D.new()
174-
# var color: Color = Color.from_hsv((randi() % 12) / 12.0, 1, 1)
175-
# material.albedo_color = color
176-
# player.get_node("MeshInstance3D").mesh.material = player.get_node("MeshInstance3D").mesh.material.duplicate()
177-
# player.get_node("MeshInstance3D").mesh.material = material
178173
player.color = Color.from_hsv((randi() % 12) / 12.0, 1, 1)
179-
# print("spawn_player_on_server: " + str(player.get_node("MeshInstance3D").mesh.material.albedo_color))
180174
player.position = Vector3(randf_range(700.0, 705.0), 200.0, randf_range(5.0, 10.0))
181-
182175
get_node("/root/main/players/" + str(id)).add_child(player)
183176

184177

@@ -204,8 +197,6 @@ func free_player(id):
204197
get_node("../ui/table/GridContainer/" + str(item_name)).free()
205198

206199

207-
208-
209200
func print_net_info():
210201
print("****************************************")
211202
print("sv_tickrate: " + str(sv_tickrate) + " ticks per second")

server/assets/player/player.gd

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -123,33 +123,6 @@ func _physics_process(delta):
123123
# add player_state to states_tcp
124124
get_node("/root/main/net").states_tcp["player"][name] = player_state_tcp
125125

126-
# # output_udp
127-
# var newpos = global_transform
128-
# if newpos.origin.distance_to(oldpos.origin) >0.00001 or newpos.basis != oldpos.basis:
129-
# oldpos=newpos
130-
# for p in get_node("/root/main/players").get_children():
131-
# if p.get_node(str(p.name)).client_ready == true:
132-
# var output_udp: Dictionary = {
133-
# "id": int(str(name)),
134-
# "position": position,
135-
# "rotation": rotation,
136-
# "camera_arm_rotation": camera_arm.rotation}
137-
# var output_udp_json_string: String = JSON.stringify(output_udp)
138-
# $/root/main/net/server_to_client.send_output_to_client_unreliable.rpc_id(int(str(p.get_name())), output_udp_json_string)
139-
## print("send udp: " + str(output_udp_json_string))
140-
141-
#output_tcp
142-
# if $inputs.zoom != $inputs.old_zoom:
143-
# $inputs.old_zoom = $inputs.zoom
144-
# for p in get_node("/root/main/players").get_children():
145-
# if p.get_node(str(p.name)).client_ready == true:
146-
## Network.update_remote_states(int(str(self.name)))
147-
# var output_tcp: Dictionary = {
148-
# "id": int(str(name)),
149-
# "camera_arm_scale": camera_arm.scale}
150-
# var output_tcp_json_string: String = JSON.stringify(output_tcp)
151-
# $/root/main/net/server_to_client.send_output_to_client_reliable.rpc_id(int(str(p.get_name())), output_tcp_json_string)
152-
## print("send tcp: " + str(output_tcp_json_string))
153126

154127
#Reset inputs (only some, $inputs.zoom should keep its value)
155128
$inputs.mouse_motion = Vector2()
Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
extends RigidBody3D
22

3-
var rigid_cube_state : Array
3+
var old_position: Vector3
4+
var old_rotation: Vector3
45

5-
func _physics_process(_delta):
6-
# if category rigid_cube doesnt exist in global_state add it
7-
# if !get_node("/root/Main").global_state.has("rigid_cube"):
8-
# get_node("/root/Main").global_state["rigid_cube"] = {}
9-
#
10-
# # add global rigid_cube_state into varsw
11-
# if get_node("/root/Main").global_state["rigid_cube"].has(name):
12-
# rigid_cube_state = get_node("/root/Main").global_state["rigid_cube"][name]
13-
# position = rigid_cube_state[0]
14-
# rotation = rigid_cube_state[1]
15-
pass
6+
func _process(_delta):
7+
8+
#UDP: add player_state_udp to states_udp
9+
var rigid_cube_state_udp: Dictionary = {}
10+
if position.distance_to(old_position) >0.00001: # only add if changed enough
11+
old_position=position
12+
rigid_cube_state_udp["position"] = position
13+
if rotation != old_rotation: # only add if changed
14+
old_rotation=rotation
15+
rigid_cube_state_udp["rotation"] = rotation
16+
if !rigid_cube_state_udp.is_empty(): # only add if not empty
17+
#if states_udp doesnt have player category add it to states_udp
18+
if !get_node("/root/main/net").states_udp.has("rigid_cube"):
19+
get_node("/root/main/net").states_udp["rigid_cube"] = {}
20+
# add player_state to states_udp
21+
get_node("/root/main/net").states_udp["rigid_cube"][name] = rigid_cube_state_udp

0 commit comments

Comments
 (0)