update
This commit is contained in:
@@ -63,7 +63,9 @@ func setup(cfg: Dictionary) -> void:
|
||||
|
||||
table = GameTable.new()
|
||||
add_child(table)
|
||||
table.build(seats.size(), local_seat)
|
||||
# Der Server hat keinen Platz, legt den Tisch aber fest so, als säße Platz 0
|
||||
# unten. Diese Ausrichtung ist der Bezug für alle Würfelkoordinaten.
|
||||
table.build(seats.size(), maxi(local_seat, 0))
|
||||
|
||||
# Ohne Platz am Tisch gibt es nichts anzuzeigen und nichts zu bedienen.
|
||||
if local_seat >= 0:
|
||||
@@ -607,12 +609,16 @@ func _pack(seat: int) -> PackedFloat32Array:
|
||||
func _unpack(data: PackedFloat32Array) -> void:
|
||||
var dl: Array = table.dice_of(local_seat)
|
||||
var n := mini(dl.size(), int(data.size() / 7))
|
||||
# Jeder Client dreht seinen eigenen Platz nach unten, der Server nicht.
|
||||
# Ohne diese Drehung landen die eigenen Würfel in der Zone des Nachbarn.
|
||||
var dreh := Transform3D(Basis(Vector3.UP, TAU * local_seat / float(seats.size())),
|
||||
Vector3.ZERO)
|
||||
for i in n:
|
||||
var o := i * 7
|
||||
var t := Transform3D(Basis(Quaternion(data[o + 3], data[o + 4], data[o + 5], data[o + 6])),
|
||||
Vector3(data[o], data[o + 1], data[o + 2]))
|
||||
dl[i].set_kinematic(true)
|
||||
dl[i].place(t)
|
||||
dl[i].place(dreh * t)
|
||||
|
||||
|
||||
@rpc("authority", "unreliable_ordered")
|
||||
|
||||
Reference in New Issue
Block a user