Fix multiplayer presentation and Fishnet synchronization
This commit is contained in:
parent
31d459b3a7
commit
2045d8e288
19 changed files with 748 additions and 41 deletions
49
tests/network_player_animation_protocol_validation.gd
Normal file
49
tests/network_player_animation_protocol_validation.gd
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
extends SceneTree
|
||||
|
||||
|
||||
func _initialize() -> void:
|
||||
var idle := NetworkPlayerAnimationProtocol.make_state(
|
||||
NetworkPlayerAnimationProtocol.LOCOMOTION_IDLE,
|
||||
true,
|
||||
)
|
||||
assert(NetworkPlayerAnimationProtocol.validate_state(idle))
|
||||
var emote := NetworkPlayerAnimationProtocol.make_state(
|
||||
NetworkPlayerAnimationProtocol.LOCOMOTION_RUNNING,
|
||||
false,
|
||||
&"wave_hello",
|
||||
17,
|
||||
1.25,
|
||||
)
|
||||
assert(NetworkPlayerAnimationProtocol.validate_state(emote))
|
||||
var future_locomotion := NetworkPlayerAnimationProtocol.make_state(
|
||||
&"swimming_fast",
|
||||
false,
|
||||
)
|
||||
assert(NetworkPlayerAnimationProtocol.validate_state(future_locomotion))
|
||||
var extra_future_field: Dictionary = emote.duplicate(true)
|
||||
extra_future_field["future_layer"] = {"id": "umbrella"}
|
||||
assert(NetworkPlayerAnimationProtocol.validate_state(extra_future_field))
|
||||
|
||||
var invalid_action: Dictionary = emote.duplicate(true)
|
||||
invalid_action["action"] = {
|
||||
"id": "../unsafe",
|
||||
"sequence": 17,
|
||||
"elapsed": 1.25,
|
||||
}
|
||||
assert(not NetworkPlayerAnimationProtocol.validate_state(invalid_action))
|
||||
var invalid_sequence: Dictionary = emote.duplicate(true)
|
||||
invalid_sequence["action"] = {
|
||||
"id": "wave_hello",
|
||||
"sequence": -1,
|
||||
"elapsed": 1.25,
|
||||
}
|
||||
assert(not NetworkPlayerAnimationProtocol.validate_state(invalid_sequence))
|
||||
var invalid_elapsed: Dictionary = emote.duplicate(true)
|
||||
invalid_elapsed["action"] = {
|
||||
"id": "wave_hello",
|
||||
"sequence": 17,
|
||||
"elapsed": INF,
|
||||
}
|
||||
assert(not NetworkPlayerAnimationProtocol.validate_state(invalid_elapsed))
|
||||
print("Network player animation protocol validation: PASS")
|
||||
quit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue