Add transactional RV decor synchronization
This commit is contained in:
parent
ee992d9f0c
commit
6578d3e870
7 changed files with 663 additions and 48 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue