Open JeffreyGaydos opened 2 years ago
Front end complete.
This feature feels like "convention over configuration". If the user enters an integer (and no other extraneous characters) in the input field, the input will be interpreted as a delay input.
Delay inputs can only be put on child nodes (also child nodes can be converted to delay nodes and back)
✅ Tellraw to HTML parser is not really aware of this fact, so sometimes it gives errors that may confuse users if they do not know that you can't convert NPC nodes to delay nodes
Should you be able to paste-as-link delay nodes? It would be cool because then you could do weird things with small delays.
Should NPC nodes also be delayable? (i.e. allows player nodes to be displayed 1-by-1 with delay)
Enforce that delays are positive (this means not 0 either)
Couple issues:
Some weird rules that we will have to explain (and implement in the MC backend)
This is the simplest way of allowing for these scenarios without degrading the flexibility of the system, but it does allow the user to do some pretty stupid things like displaying some dialogue immediately, then waiting and before the player can answer, the NPC says something else; which, come to think of it, is actually pretty cool if you had some sort of time-sensitive issue that you needed to respond to in a dialogue. - Update on this weird scenario: currently, it parses and displays all children text, regardless of order in the list of child responses, then after a delay displays the child of the delay node, as expected. You may want to leave it this way since it does not make sense to hide the option that is after the delay node until the delay has finished and we've moved on to the next NPC dialogue, because then the option that was now revealed with by locked out by our locking system...
✅ Bug: conversion from delay to player node (and back) does not update image until another refresh happens
✅ Bug: no parsing logic for delay nodes
Try to just extract the useful/shared parts of TellrawToHTML
to re-implement the ImportTellrawCode
function and fill in the rest maintaining backwards compatibility
✅ 🐞 Incorrect detection of delay nodes present in dialogue model. Always creates a tick function.
tick.json
file. See condtest2
CreateStartFile
functionhasDelay
parameter (which was made after the tick creation mechanics)Last thing to do is some tests I guess:
Implement linked/copied/cut delay nodes
✅ 🐞 Locking mechanics fail when there are childless delay nodes
⚠️ This is currently in a pretty inconsistent state. Recommend re-working simpler cases before tackling linked childless delay nodes