Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what's wrong
since argentum 1.0.3-beta.1 the poly+ badge is gone from nametags on 1.8.9 (tab is fine since that uses
blitTab)cacheable()return false isn't enough anymore and\ue000never reachesMixinEmojiTextRenderer. it only falls back to vanilla whenTextBatcher.beginreturns NaNcharWidth(CZ[B)Fis nowcharWidth(IZ)F, so the width hook doesn't applyNameTagBatch(it records the GL matrices and draws the glyphs itself), so even vanilla text inside a nametag ends up in the wrong placealso broke legacy chat emojis since they go through the same path
what I changed
MixinTextBatcher:beginreturns NaN for text with the badge/emoji so argentum lets vanilla draw it, added thecharWidth(IZ)Fhook, and moved the emoji check into one helper that skipslegacyIndexfor anything below the private use area (it runs for every string). kept the old hooks for argentum 1.0.0MixinEntityRendererArgentum+MixinNameTagBatch: badged player nametags render unbatched (NameTagBatch.active()returns null while they render). wrapsrenderNameTagat priority 2000 so it's outside argentum's wrapperArgentumNameTags: small helper holding that state, only does anything if argentum is loadedeverything is 1.8.9 only and
require = 0like the existing argentum compattesting
tested in game on oneclient 1.8.9 (polyplus 1.4.6, argentum 1.0.3-beta.1, sarcio 1.2.0-beta.1) using the same mixins in a separate test mod: badge shows on nametags again and is centred, legacy chat emojis render again, no noticeable fps hit


this only fixes the drawing side. with sarcio's
mem.alloc.name_tag_texton,badgesNameTagcan still return false because the nametag string doesn't match the display name anymore (fixed on sarcio's side in QuicksilverMC/Sarcio#51, or here by #254)