Overhaul multiplayer text system #39
Labels
difficulty:hard
This issue is a difficult one to fix, and may require several iterations before it can be resolved.
priority:low
This issue is queued to be worked on, but isn't important
scope:multiplayer
This issue focuses on the multiplayer service.
state:planned
This issue is currently being planned out and/or designed.
type:enhancement
The issue is intended to introduce a new feature or change existing features.
The multiplayer framework has a weak text system, often relying a lot on the
Draw()
method. This overhaul should make it much easier to handle text formatting.Rough Steps:
Component
toTextContainer
BaseTextContainer
TextContainer
values should utilize a set string format, with variables that can be specified in itTextContainer
values should mimic theBuffer
system from the originalComponent
classesTextContainer
values should have more methods related to formatting, such as markdown implementation, padding and text alignment, and other scenariosTextListContainer
should also be implemented as a way to easily introduce lists, similar toComponentGroup
TextListContainer
should have base text formatting, individual element formatting, and a separatorTextContainer
values should now be able to specify a character limit to block off extremely long lines of textTextContainer
values should include automated pagination support, which can be peeked at by jumping to an indexTextContainer
pagination methods should revolve aroundTryMoveNext
,TryMovePrevious
,First
,Last
, which will attempt to jump to the specified pagesTextContainer
should instead be noted by aINVALID_VALUE
or aVALUE_NOT_SPECIFIED
, as opposed to errorsBaseTextContainer
class should be easily accessible and customizableBaseTextContainer
class should expose core methods and properties that inheriting classes can manipulate or modify for their own purposeThe text was updated successfully, but these errors were encountered: