Check / compile (pull_request) Successful in 10m37s
Step 4 of #8, the first version before the 1.21.9 render queue. versions/1.21.8/src is gone; 1.21.8 builds from src/ as :1.21.8. API differences behind version comments (<1.21.9 / >=1.21.9): - Player cosmetics: FeatureRenderer.render takes a VertexConsumerProvider instead of the render queue. The cloak, hat and OBJ renderers name the render target "output" in both, so only the parameter type and the final draw call differ; the OBJ face loop moved into drawGroup. - PlayerEntityRenderer.updateRenderState's entity type, the cape texture accessor, GameProfile getName()/getId() vs name()/id(), fonts in TextMixin, EntityRenderDispatcher vs EntityRenderManager, Screen input events (Click/KeyInput), and KeyBinding categories and isKeyPressed. Features 1.21.9+ lacks stay on 1.21.8, with a TODO for 1.21.9+: - NametagsMixin moves into src/. It hooks renderLabelIfPresent with a VertexConsumerProvider, which 1.21.9 changed, so on 1.21.9+ its body is empty; it stays registered, so features.mixins.json is the same for every version. - The splash screen's loading-bar border, and the real drag deltas in SaturnScreenFabric.mouseDragged. - Status effect icons keep 1.21.8's GUI atlas sprite; 1.21.9+ draws the texture instead (getIconId), as before. Behaviour changes on 1.21.8: the cloak and hat read the Saturn player from the render state (set by PlayerEntityRendererMixin, by UUID) instead of looking it up by name, and the display-name null check applies. Co-Authored-By: Claude Opus 5.5 <[email protected]>
30 lines
962 B
Java
30 lines
962 B
Java
package org.saturnclient.impl.mixins;
|
|
|
|
import org.saturnclient.common.ref.asset.IdentifierRef;
|
|
import org.saturnclient.common.ref.render.TextRef;
|
|
import org.saturnclient.saturnclient.SaturnClient;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
|
|
import net.minecraft.text.Style;
|
|
import net.minecraft.text.Text;
|
|
//? if >=1.21.9
|
|
import net.minecraft.text.StyleSpriteSource.Font;
|
|
import net.minecraft.util.Identifier;
|
|
|
|
@Mixin(Text.class)
|
|
public interface TextMixin extends TextRef {
|
|
|
|
@Override
|
|
public default TextRef withFont(IdentifierRef font) {
|
|
//? if >=1.21.9 {
|
|
return (TextRef) (Text) (((Text) this).copy().setStyle(Style.EMPTY.withFont(new Font((Identifier) (Object) font))));
|
|
//?} else
|
|
//return (TextRef) (((Text) this).copy().setStyle(Style.EMPTY.withFont((Identifier) (Object) font)));
|
|
}
|
|
|
|
@Override
|
|
public default int getWidth() {
|
|
return SaturnClient.client.textRenderer.getWidth((Text) this);
|
|
}
|
|
}
|