Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul multiplayer text system #39

Open
AbnerSquared opened this issue Oct 7, 2020 · 0 comments
Open

Overhaul multiplayer text system #39

AbnerSquared opened this issue Oct 7, 2020 · 0 comments
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.

Comments

@AbnerSquared
Copy link
Owner

AbnerSquared commented Oct 7, 2020

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:

  • Replace Component to TextContainer
  • Create an abstract class BaseTextContainer
  • TextContainer values should utilize a set string format, with variables that can be specified in it
  • TextContainer values should mimic the Buffer system from the original Component classes
  • TextContainer values should have more methods related to formatting, such as markdown implementation, padding and text alignment, and other scenarios
  • TextListContainer should also be implemented as a way to easily introduce lists, similar to ComponentGroup
  • TextListContainer should have base text formatting, individual element formatting, and a separator
  • TextContainer values should now be able to specify a character limit to block off extremely long lines of text
  • TextContainer values should include automated pagination support, which can be peeked at by jumping to an index
  • To prevent out of range errors, TextContainer pagination methods should revolve around TryMoveNext, TryMovePrevious, First, Last, which will attempt to jump to the specified pages
  • All missing text values in a TextContainer should instead be noted by a INVALID_VALUE or a VALUE_NOT_SPECIFIED, as opposed to errors
  • Errors can easily be toggled depending on how severe text issues are
  • The BaseTextContainer class should be easily accessible and customizable
  • The BaseTextContainer class should expose core methods and properties that inheriting classes can manipulate or modify for their own purpose
@AbnerSquared AbnerSquared added type:enhancement The issue is intended to introduce a new feature or change existing features. priority:low This issue is queued to be worked on, but isn't important difficulty:hard This issue is a difficult one to fix, and may require several iterations before it can be resolved. state:planned This issue is currently being planned out and/or designed. scope:multiplayer This issue focuses on the multiplayer service. labels Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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.
Projects
None yet
Development

No branches or pull requests

1 participant