Files
Ransom-s-wake/game/domain/dive/collision_observation.gd

32 lines
885 B
GDScript

class_name CollisionObservation
extends RefCounted
var observation_id: StringName
var sequence: int
var tick_sequence: int
var normal_impact_speed_mps: float
func _init(
p_observation_id: StringName,
p_sequence: int,
p_tick_sequence: int,
p_normal_impact_speed_mps: float
) -> void:
observation_id = p_observation_id
sequence = p_sequence
tick_sequence = p_tick_sequence
normal_impact_speed_mps = p_normal_impact_speed_mps
func validation_error(expected_tick_sequence: int) -> String:
if observation_id.is_empty():
return "collision observation_id is empty"
if sequence < 0:
return "collision sequence is negative"
if tick_sequence != expected_tick_sequence:
return "collision tick sequence does not match DiveTick"
if not is_finite(normal_impact_speed_mps) or normal_impact_speed_mps < 0.0:
return "collision speed must be finite and non-negative"
return ""