Add transactional RV decor synchronization

This commit is contained in:
Alexander Sellite 2026-08-31 05:48:36 -04:00
parent ee992d9f0c
commit 6578d3e870
7 changed files with 663 additions and 48 deletions

View file

@ -7,6 +7,7 @@ const CAPABILITY: StringName = &"portable_home_v1"
const RELIABLE_CHANNEL: int = NetworkProtocol.HOME_RELIABLE_CHANNEL
const MAX_ID_LENGTH: int = 96
const MAX_MESSAGE_LENGTH: int = 160
const MAX_TRANSITION_COORDINATE: float = 10000.0
const WORLD_SPACE: StringName = &"world"
enum TransitionAction {
@ -143,7 +144,7 @@ static func transform_to_array(value: Transform3D) -> Array[float]:
static func array_to_transform(value: Variant) -> Transform3D:
if not _valid_transform(value):
if not validate_transition_transform(value):
return Transform3D()
var fields: Array = value
return Transform3D(
@ -156,6 +157,17 @@ static func array_to_transform(value: Variant) -> Transform3D:
)
static func validate_transition_transform(value: Variant) -> bool:
if not _valid_transform(value):
return false
var fields: Array = value
return (
absf(float(fields[9])) <= MAX_TRANSITION_COORDINATE
and absf(float(fields[10])) <= MAX_TRANSITION_COORDINATE
and absf(float(fields[11])) <= MAX_TRANSITION_COORDINATE
)
static func _valid_transform(value: Variant) -> bool:
if typeof(value) != TYPE_ARRAY or (value as Array).size() != 12:
return false