Text-related refactors & new text things (#1635)

* may be very controversial
- Change StringRenderable to StringVisitable
- OrderedText (I don't know about this but I can't think of a better one tbh, I'll throw in some more: CharacterVisitable, OrderedString, OrderedTextProvider)
- ReorderingUtils
- TextReorderingProcessor

Signed-off-by: shedaniel <daniel@shedaniel.me>

* improvements

Signed-off-by: shedaniel <daniel@shedaniel.me>

* improvements

Signed-off-by: shedaniel <daniel@shedaniel.me>

* innerConcat

Signed-off-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
shedaniel 2020-08-02 16:34:45 +08:00 committed by GitHub
parent efa2f10b73
commit 96ce5a1fcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 161 additions and 11 deletions

View File

@ -76,6 +76,8 @@ CLASS net/minecraft/class_5225 net/minecraft/client/font/TextHandler
ARG 1 text
ARG 2 maxWidth
ARG 3 style
METHOD method_30875 getWidth (Lnet/minecraft/class_5481;)F
ARG 1 text
CLASS 1
FIELD field_24219 collector Lnet/minecraft/class_5222;
CLASS class_5226 LineWrappingCollector

View File

@ -41,6 +41,7 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
METHOD method_1721 mirror (Ljava/lang/String;)Ljava/lang/String;
ARG 1 text
METHOD method_1723 drawInternal (Lnet/minecraft/class_5481;FFIZLnet/minecraft/class_1159;Lnet/minecraft/class_4597;ZII)I
ARG 1 text
ARG 2 x
ARG 3 y
ARG 4 color
@ -74,12 +75,14 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
ARG 4 y
ARG 5 color
METHOD method_22941 draw (Lnet/minecraft/class_5481;FFILnet/minecraft/class_1159;Z)I
ARG 1 text
ARG 2 x
ARG 3 y
ARG 4 color
ARG 5 matrix
ARG 6 shadow
METHOD method_22942 draw (Lnet/minecraft/class_5481;FFIZLnet/minecraft/class_1159;Lnet/minecraft/class_4597;ZII)I
ARG 1 text
ARG 2 x
ARG 3 y
ARG 4 color
@ -91,8 +94,11 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
ARG 10 light
METHOD method_27515 tweakTransparency (I)I
ARG 0 argb
METHOD method_27516 (ILnet/minecraft/class_2583;)F
ARG 2 style
METHOD method_27517 drawWithShadow (Lnet/minecraft/class_4587;Lnet/minecraft/class_5481;FFI)I
ARG 1 matrices
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color
@ -135,11 +141,13 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
ARG 2 maxWidth
ARG 3 backwards
METHOD method_27525 getWidth (Lnet/minecraft/class_5348;)I
ARG 1 text
METHOD method_27526 getFontStorage (Lnet/minecraft/class_2960;)Lnet/minecraft/class_377;
ARG 1 id
METHOD method_27527 getTextHandler ()Lnet/minecraft/class_5225;
METHOD method_27528 draw (Lnet/minecraft/class_4587;Lnet/minecraft/class_5481;FFI)I
ARG 1 matrices
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color
@ -156,6 +164,7 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
ARG 10 light
ARG 11 mirror
METHOD method_27530 drawLayer (Lnet/minecraft/class_5481;FFIZLnet/minecraft/class_1159;Lnet/minecraft/class_4597;ZII)F
ARG 1 text
ARG 2 x
ARG 3 y
ARG 4 color
@ -172,6 +181,31 @@ CLASS net/minecraft/class_327 net/minecraft/client/font/TextRenderer
ARG 4 y
ARG 5 color
ARG 6 rightToLeft
METHOD method_30880 getWidth (Lnet/minecraft/class_5481;)I
ARG 1 text
METHOD method_30881 drawWithShadow (Lnet/minecraft/class_4587;Lnet/minecraft/class_2561;FFI)I
ARG 1 matrices
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color
METHOD method_30882 draw (Lnet/minecraft/class_2561;FFIZLnet/minecraft/class_1159;Lnet/minecraft/class_4597;ZII)I
ARG 1 text
ARG 2 x
ARG 3 y
ARG 4 color
ARG 5 shadow
ARG 6 matrix
ARG 7 vertexConsumers
ARG 8 seeThrough
ARG 9 backgroundColor
ARG 10 light
METHOD method_30883 draw (Lnet/minecraft/class_4587;Lnet/minecraft/class_2561;FFI)I
ARG 1 matrices
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color
CLASS class_5232 Drawer
FIELD field_24239 vertexConsumers Lnet/minecraft/class_4597;
FIELD field_24241 shadow Z

View File

@ -140,6 +140,12 @@ CLASS net/minecraft/class_332 net/minecraft/client/gui/DrawableHelper
ARG 4 y2
ARG 5 color
METHOD method_25300 drawCenteredString (Lnet/minecraft/class_4587;Lnet/minecraft/class_327;Ljava/lang/String;III)V
ARG 0 matrices
ARG 1 textRenderer
ARG 2 text
ARG 3 centerX
ARG 4 y
ARG 5 color
METHOD method_25301 drawVerticalLine (Lnet/minecraft/class_4587;IIII)V
ARG 1 matrices
ARG 2 x
@ -168,13 +174,35 @@ CLASS net/minecraft/class_332 net/minecraft/client/gui/DrawableHelper
ARG 7 height
COMMENT the height
METHOD method_25303 drawStringWithShadow (Lnet/minecraft/class_4587;Lnet/minecraft/class_327;Ljava/lang/String;III)V
ARG 0 matrices
ARG 1 textRenderer
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color
METHOD method_25304 setZOffset (I)V
ARG 1 zOffset
METHOD method_25305 getZOffset ()I
METHOD method_27533 fillGradient (Lnet/minecraft/class_1159;Lnet/minecraft/class_287;IIIIIII)V
ARG 0 matrix
ARG 2 xStart
ARG 3 yStart
ARG 4 xEnd
ARG 5 yEnd
ARG 6 z
ARG 7 colorStart
ARG 8 colorEnd
METHOD method_27534 drawCenteredText (Lnet/minecraft/class_4587;Lnet/minecraft/class_327;Lnet/minecraft/class_2561;III)V
ARG 0 matrices
ARG 1 textRenderer
ARG 2 text
ARG 3 centerX
ARG 4 y
ARG 5 color
METHOD method_27535 drawTextWithShadow (Lnet/minecraft/class_4587;Lnet/minecraft/class_327;Lnet/minecraft/class_2561;III)V
ARG 0 matrices
ARG 1 textRenderer
ARG 2 text
ARG 3 x
ARG 4 y
ARG 5 color

View File

@ -0,0 +1,6 @@
CLASS net/minecraft/class_5491 net/minecraft/client/resource/language/ReorderingUtil
METHOD method_30921 shapeArabic (Ljava/lang/String;)Ljava/lang/String;
ARG 0 string
METHOD method_30922 reorder (Lnet/minecraft/class_5348;Z)Lnet/minecraft/class_5481;
ARG 0 text
ARG 1 rightToLeft

View File

@ -0,0 +1,23 @@
CLASS net/minecraft/class_5492 net/minecraft/client/resource/language/TextReorderingProcessor
FIELD field_26626 string Ljava/lang/String;
FIELD field_26627 styles Ljava/util/List;
FIELD field_26628 reverser Lit/unimi/dsi/fastutil/ints/Int2IntFunction;
METHOD <init> (Ljava/lang/String;Ljava/util/List;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;)V
ARG 1 string
ARG 2 styles
ARG 3 reverser
METHOD method_30939 getString ()Ljava/lang/String;
METHOD method_30940 process (IIZ)Ljava/util/List;
ARG 1 start
ARG 2 length
ARG 3 reverse
METHOD method_30941 (Ljava/lang/StringBuilder;Ljava/util/List;ILnet/minecraft/class_2583;I)Z
ARG 2 charIndex
ARG 3 style
ARG 4 codePoint
METHOD method_30942 (Ljava/lang/StringBuilder;Ljava/util/List;Lnet/minecraft/class_2583;Ljava/lang/String;)Ljava/util/Optional;
ARG 2 style
ARG 3 text
METHOD method_30943 create (Lnet/minecraft/class_5348;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;Ljava/util/function/UnaryOperator;)Lnet/minecraft/class_5492;
ARG 0 visitable
ARG 1 reverser

View File

@ -1,5 +1,7 @@
CLASS net/minecraft/class_2554 net/minecraft/text/BaseText
FIELD field_11729 siblings Ljava/util/List;
FIELD field_11730 style Lnet/minecraft/class_2583;
FIELD field_26623 orderedText Lnet/minecraft/class_5481;
FIELD field_26624 previousLanguage Lnet/minecraft/class_2477;
METHOD equals (Ljava/lang/Object;)Z
ARG 1 obj

View File

@ -0,0 +1,44 @@
CLASS net/minecraft/class_5481 net/minecraft/text/OrderedText
COMMENT An object that can supply character code points
COMMENT to a visitor, with a style context.
FIELD field_26385 EMPTY Lnet/minecraft/class_5481;
COMMENT An empty text that does not call the visitors.
METHOD accept (Lnet/minecraft/class_5224;)Z
ARG 1 visitor
METHOD method_30741 styled (ILnet/minecraft/class_2583;)Lnet/minecraft/class_5481;
ARG 0 codePoint
ARG 1 style
METHOD method_30742 concat (Lnet/minecraft/class_5481;Lnet/minecraft/class_5481;)Lnet/minecraft/class_5481;
ARG 0 first
ARG 1 second
METHOD method_30743 (Lnet/minecraft/class_5481;Lnet/minecraft/class_5481;Lnet/minecraft/class_5224;)Z
ARG 2 visitor
METHOD method_30745 map (Lnet/minecraft/class_5224;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;)Lnet/minecraft/class_5224;
ARG 0 visitor
ARG 1 codePointMapper
METHOD method_30746 (Lnet/minecraft/class_5224;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;ILnet/minecraft/class_2583;I)Z
ARG 2 charIndex
ARG 3 style
ARG 4 charPoint
METHOD method_30747 styledString (Ljava/lang/String;Lnet/minecraft/class_2583;)Lnet/minecraft/class_5481;
ARG 0 string
ARG 1 style
METHOD method_30748 (Ljava/lang/String;Lnet/minecraft/class_2583;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;Lnet/minecraft/class_5224;)Z
ARG 3 visitor
METHOD method_30749 concat (Ljava/util/List;)Lnet/minecraft/class_5481;
ARG 0 texts
METHOD method_30750 (Ljava/util/List;Lnet/minecraft/class_5224;)Z
ARG 1 visitor
METHOD method_30751 (Lnet/minecraft/class_2583;ILnet/minecraft/class_5224;)Z
ARG 2 visitor
METHOD method_30752 innerConcat (Lnet/minecraft/class_5481;Lnet/minecraft/class_5481;)Lnet/minecraft/class_5481;
ARG 0 text1
ARG 1 text2
METHOD method_30753 (Ljava/lang/String;Lnet/minecraft/class_2583;Lnet/minecraft/class_5224;)Z
ARG 2 visitor
METHOD method_30754 styledStringMapped (Ljava/lang/String;Lnet/minecraft/class_2583;Lit/unimi/dsi/fastutil/ints/Int2IntFunction;)Lnet/minecraft/class_5481;
ARG 0 string
ARG 1 style
ARG 2 codePointMapper
METHOD method_30755 innerConcat (Ljava/util/List;)Lnet/minecraft/class_5481;
ARG 0 texts

View File

@ -1,19 +1,19 @@
CLASS net/minecraft/class_5348 net/minecraft/text/StringRenderable
COMMENT An object that can supply strings to a visitor, with or without a style
COMMENT context, for rendering the strings.
CLASS net/minecraft/class_5348 net/minecraft/text/StringVisitable
COMMENT An object that can supply strings to a visitor,
COMMENT with or without a style context.
FIELD field_25309 TERMINATE_VISIT Ljava/util/Optional;
COMMENT Convenience object indicating the termination of a string visit.
FIELD field_25310 EMPTY Lnet/minecraft/class_5348;
COMMENT An empty renderable that does not call the visitors.
COMMENT An empty visitable that does not call the visitors.
METHOD method_27657 visit (Lnet/minecraft/class_5348$class_5245;)Ljava/util/Optional;
COMMENT Supplies this renderable's literal content to the visitor.
COMMENT Supplies this visitable's literal content to the visitor.
COMMENT
COMMENT @return {@code Optional.empty()} if the visit finished, or a terminating
COMMENT result from the {@code visitor}
ARG 1 visitor
COMMENT the visitor
METHOD method_27658 visit (Lnet/minecraft/class_5348$class_5246;Lnet/minecraft/class_2583;)Ljava/util/Optional;
COMMENT Supplies this renderable's literal content and contextual style to
COMMENT Supplies this visitable's literal content and contextual style to
COMMENT the visitor.
COMMENT
COMMENT @return {@code Optional.empty()} if the visit finished, or a terminating
@ -23,7 +23,7 @@ CLASS net/minecraft/class_5348 net/minecraft/text/StringRenderable
ARG 2 style
COMMENT the contextual style
METHOD method_29430 plain (Ljava/lang/String;)Lnet/minecraft/class_5348;
COMMENT Creates a renderable from a plain string.
COMMENT Creates a visitable from a plain string.
ARG 0 string
COMMENT the plain string
METHOD method_29431 styled (Ljava/lang/String;Lnet/minecraft/class_2583;)Lnet/minecraft/class_5348;
@ -33,15 +33,15 @@ CLASS net/minecraft/class_5348 net/minecraft/text/StringRenderable
ARG 1 style
COMMENT the root style
METHOD method_29432 concat (Ljava/util/List;)Lnet/minecraft/class_5348;
COMMENT Concats multiple string renderables by the order they appear in the list.
COMMENT Concats multiple string visitables by the order they appear in the list.
ARG 0 visitables
COMMENT a list of visitables
METHOD method_29433 concat ([Lnet/minecraft/class_5348;)Lnet/minecraft/class_5348;
COMMENT Concats multiple string renderables by the order they appear in the array.
COMMENT Concats multiple string visitables by the order they appear in the array.
ARG 0 visitables
COMMENT an array or varargs of visitables
CLASS class_5245 Visitor
COMMENT A visitor for rendered string content.
COMMENT A visitor for string content.
METHOD accept (Ljava/lang/String;)Ljava/util/Optional;
COMMENT Visits a literal string.
COMMENT
@ -53,7 +53,7 @@ CLASS net/minecraft/class_5348 net/minecraft/text/StringRenderable
ARG 1 asString
COMMENT the literal string
CLASS class_5246 StyledVisitor
COMMENT A visitor for rendered string content and a contextual {@link Style}.
COMMENT A visitor for string content and a contextual {@link Style}.
METHOD accept (Lnet/minecraft/class_2583;Ljava/lang/String;)Ljava/util/Optional;
COMMENT Visits a string's content with a contextual style.
COMMENT

View File

@ -42,6 +42,7 @@ CLASS net/minecraft/class_2561 net/minecraft/text/Text
COMMENT <p>A shallow copy is made for the siblings.</p>
METHOD method_27662 copy ()Lnet/minecraft/class_5250;
COMMENT Copies the text itself, excluding the styles or siblings.
METHOD method_30937 asOrderedText ()Lnet/minecraft/class_5481;
METHOD method_30163 of (Ljava/lang/String;)Lnet/minecraft/class_2561;
COMMENT Creates a literal text with the given string as content.
ARG 0 string

View File

@ -11,7 +11,17 @@ CLASS net/minecraft/class_2477 net/minecraft/util/Language
ARG 0 language
METHOD method_29428 isRightToLeft ()Z
METHOD method_29429 create ()Lnet/minecraft/class_2477;
METHOD method_30933 reorder (Ljava/util/List;)Ljava/util/List;
ARG 1 texts
METHOD method_30934 reorder (Lnet/minecraft/class_5348;)Lnet/minecraft/class_5481;
ARG 1 text
METHOD method_4678 hasTranslation (Ljava/lang/String;)Z
ARG 1 key
METHOD method_4679 get (Ljava/lang/String;)Ljava/lang/String;
ARG 1 key
CLASS 1
METHOD method_30935 (Lnet/minecraft/class_5224;Lnet/minecraft/class_2583;Ljava/lang/String;)Ljava/util/Optional;
ARG 1 style
ARG 2 string
METHOD method_30936 (Lnet/minecraft/class_5348;Lnet/minecraft/class_5224;)Z
ARG 1 visitor