Closed QuadratClown closed 2 years ago
Thank you for the proposal. I like the flow idea and this approach would be definitely cool to follow.
A few technical tips I'd wish would be part of the code:
ClipCheckpointIO.cs
purpose should be fulfilled - the constructor should receive inputs and the Execute()
method should do all the work in a procedural way (at best separated into descriptive methods, better all in the same class, which would help for easier transfer over to a scripting language, more on that below), and the Execute()
method should only return the final clip object (CGameCtnMediaClip
) and nothing else.ClipCheckpointIO
constructor should look like this (or some other name than comparedReplays
):
public ClipCheckpointIO(CMwNod node, ClipCheckpointConfig? config = null, params CMwNod[] comparedReplays)
Program.cs
should figure out what object to give to node
(the main reference ghost) and what object to give to comparedReplays
, no file paths or parses should be processed in ClipCheckpointIO.cs
. You probably need to use the config object in the Program.cs
directly (and I'm fine with it).comparedReplays
should accept types CGameCtnReplayRecord
, CGameCtnGhost
and CGameCtnMediaClip
just like node
does. The way to figure it out is visible in the ClipCheckpointIO
constructor.I don't think I'll have enough time to bring this to life myself this year, as my goal is to avoid executables overall and unsmooth update flow, which requires the program to be transferred over to network (to avoid exes) and a scripting language (in a procedural way at best, as that one seems to always follow the GBX modification flow), which would guarantee 0 downtimes. But no one can stop open-source contributors. 😄
It would be very useful to allow showing relative time differences instead of just absolute timestamps, especially for comparison of multiple replays.
Proposal
Config.yaml
likeRelativeTimestamps
, which is by default set toFalse
ColorAhead
andColorBehind
to configure the appearance of positive/negative relative timestampsTextCheckpointFormatRelative
to configure the format of relative timestamps