update
This commit is contained in:
@@ -63,7 +63,9 @@ func setup(cfg: Dictionary) -> void:
|
|||||||
|
|
||||||
table = GameTable.new()
|
table = GameTable.new()
|
||||||
add_child(table)
|
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.
|
# Ohne Platz am Tisch gibt es nichts anzuzeigen und nichts zu bedienen.
|
||||||
if local_seat >= 0:
|
if local_seat >= 0:
|
||||||
@@ -607,12 +609,16 @@ func _pack(seat: int) -> PackedFloat32Array:
|
|||||||
func _unpack(data: PackedFloat32Array) -> void:
|
func _unpack(data: PackedFloat32Array) -> void:
|
||||||
var dl: Array = table.dice_of(local_seat)
|
var dl: Array = table.dice_of(local_seat)
|
||||||
var n := mini(dl.size(), int(data.size() / 7))
|
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:
|
for i in n:
|
||||||
var o := i * 7
|
var o := i * 7
|
||||||
var t := Transform3D(Basis(Quaternion(data[o + 3], data[o + 4], data[o + 5], data[o + 6])),
|
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]))
|
Vector3(data[o], data[o + 1], data[o + 2]))
|
||||||
dl[i].set_kinematic(true)
|
dl[i].set_kinematic(true)
|
||||||
dl[i].place(t)
|
dl[i].place(dreh * t)
|
||||||
|
|
||||||
|
|
||||||
@rpc("authority", "unreliable_ordered")
|
@rpc("authority", "unreliable_ordered")
|
||||||
|
|||||||
Reference in New Issue
Block a user