38 lines
917 B
GDScript
38 lines
917 B
GDScript
class_name DiveUpdate
|
|
extends RefCounted
|
|
|
|
const DiveSnapshot = preload("res://game/domain/dive/dive_snapshot.gd")
|
|
const DiveEvent = preload("res://game/domain/dive/dive_event.gd")
|
|
|
|
var accepted: bool
|
|
var requested_tick_sequence: int
|
|
var rejection_reason: String
|
|
var snapshot: DiveSnapshot
|
|
var events: Array[DiveEvent]
|
|
|
|
|
|
func _init(
|
|
p_accepted: bool,
|
|
p_requested_tick_sequence: int,
|
|
p_rejection_reason: String,
|
|
p_snapshot: DiveSnapshot,
|
|
p_events: Array[DiveEvent] = []
|
|
) -> void:
|
|
accepted = p_accepted
|
|
requested_tick_sequence = p_requested_tick_sequence
|
|
rejection_reason = p_rejection_reason
|
|
snapshot = p_snapshot
|
|
events = p_events.duplicate()
|
|
|
|
|
|
static func initial(snapshot: DiveSnapshot):
|
|
return new(true, snapshot.tick_sequence, "", snapshot)
|
|
|
|
|
|
static func rejected(
|
|
requested_tick_sequence: int,
|
|
reason: String,
|
|
snapshot: DiveSnapshot
|
|
):
|
|
return new(false, requested_tick_sequence, reason, snapshot)
|