Skip to content

Commit d447ff3

Browse files
authored
More fixes (#641)
1 parent dff6e19 commit d447ff3

File tree

10 files changed

+54
-43
lines changed

10 files changed

+54
-43
lines changed

src/main/java/de/florianmichael/viafabricplus/fixes/versioned/visual/FootStepParticle1_12_2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public ParticleTextureSheet getType() {
6363
}
6464

6565
@Override
66-
public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) {
66+
public void render(VertexConsumer vertexConsumer, Camera camera, float tickDelta) {
6767
final float strength = ((float) this.age + tickDelta) / (float) this.maxAge;
6868
this.alpha = 2.0F - (strength * strength) * 2.0F;
6969
if (this.alpha > 1.0F) {

src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerServerListWidget_ServerEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ private List<OrderedText> disableServerPinging(TextRenderer instance, StringVisi
9292
}
9393
}
9494

95-
@ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;IIIZ)I"), index = 2)
95+
@ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Ljava/lang/String;III)I"), index = 2)
9696
private int disableServerPinging(int x) {
9797
if (viaFabricPlus$disableServerPinging) { // Move server label to the right (as we remove the ping bar)
9898
x += 15 /* ping bar width */ - 3 /* magical offset */;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus
3+
* Copyright (C) 2021-2024 FlorianMichael/EnZaXD <[email protected]> and RK_01/RaphiMC
4+
* Copyright (C) 2023-2024 contributors
5+
*
6+
* This program is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* This program is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18+
*/
19+
20+
package de.florianmichael.viafabricplus.injection.mixin.compat.fabricapi;
21+
22+
import de.florianmichael.viafabricplus.ViaFabricPlus;
23+
import de.florianmichael.viafabricplus.settings.impl.DebugSettings;
24+
import net.fabricmc.fabric.impl.client.registry.sync.ClientRegistrySyncHandler;
25+
import net.fabricmc.fabric.impl.registry.sync.packet.RegistryPacketHandler;
26+
import org.spongepowered.asm.mixin.Mixin;
27+
import org.spongepowered.asm.mixin.injection.At;
28+
import org.spongepowered.asm.mixin.injection.Inject;
29+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
30+
31+
@Mixin(ClientRegistrySyncHandler.class)
32+
public abstract class MixinClientRegistrySyncHandler {
33+
34+
@Inject(method = "checkRemoteRemap", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;)V", ordinal = 0), cancellable = true, remap = false)
35+
private static void ignoreFabricSyncErrors(RegistryPacketHandler.SyncedPacketData data, CallbackInfo ci) {
36+
if (DebugSettings.global().ignoreFabricSyncErrors.getValue()) {
37+
ViaFabricPlus.global().getLogger().warn("Ignoring missing registries from Fabric API");
38+
ci.cancel();
39+
}
40+
}
41+
42+
}

src/main/java/de/florianmichael/viafabricplus/injection/mixin/compat/fabricapi/MixinRegistrySyncManager.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,12 @@
2121

2222
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2323
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
24-
import de.florianmichael.viafabricplus.ViaFabricPlus;
2524
import de.florianmichael.viafabricplus.fixes.versioned.visual.FootStepParticle1_12_2;
26-
import de.florianmichael.viafabricplus.settings.impl.DebugSettings;
27-
import it.unimi.dsi.fastutil.objects.Object2IntMap;
2825
import net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager;
2926
import net.minecraft.registry.Registry;
3027
import net.minecraft.util.Identifier;
3128
import org.spongepowered.asm.mixin.Mixin;
3229
import org.spongepowered.asm.mixin.injection.At;
33-
import org.spongepowered.asm.mixin.injection.Inject;
34-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
35-
36-
import java.util.Map;
3730

3831
@Mixin(RegistrySyncManager.class)
3932
public abstract class MixinRegistrySyncManager {
@@ -48,12 +41,4 @@ private static Identifier skipFootStepParticle(Registry instance, Object t, Oper
4841
}
4942
}
5043

51-
@Inject(method = "checkRemoteRemap", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;)V", ordinal = 0), cancellable = true, remap = false)
52-
private static void ignoreFabricSyncErrors(Map<Identifier, Object2IntMap<Identifier>> map, CallbackInfo ci) {
53-
if (DebugSettings.global().ignoreFabricSyncErrors.getValue()) {
54-
ViaFabricPlus.global().getLogger().warn("Ignoring missing registries from Fabric API");
55-
ci.cancel();
56-
}
57-
}
58-
5944
}

src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinTextRenderer_Drawer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public abstract class MixinTextRenderer_Drawer {
3333
@Unique
3434
private static final float viaFabricPlus$offset = 0.5F; // Magical offset to revert the changes done in 1.13 pre6->1.13 pre7
3535

36-
@ModifyArg(method = "accept", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/BakedGlyph$Rectangle;<init>(FFFFFI)V", ordinal = 0), index = 1)
36+
@ModifyArg(method = "accept", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/BakedGlyph$Rectangle;<init>(FFFFFIIF)V", ordinal = 0), index = 1)
3737
private float fixStrikethroughMinY(float value) {
3838
if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_12_2)) {
3939
return value - viaFabricPlus$offset;
@@ -42,7 +42,7 @@ private float fixStrikethroughMinY(float value) {
4242
}
4343
}
4444

45-
@ModifyArg(method = "accept", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/BakedGlyph$Rectangle;<init>(FFFFFI)V", ordinal = 0), index = 3)
45+
@ModifyArg(method = "accept", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/font/BakedGlyph$Rectangle;<init>(FFFFFIIF)V", ordinal = 0), index = 3)
4646
private float fixStrikethroughMaxY(float value) {
4747
if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_12_2)) {
4848
return value - viaFabricPlus$offset;

src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinWeatherRendering.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
@Mixin(WeatherRendering.class)
3434
public abstract class MixinWeatherRendering {
3535

36-
@Redirect(method = "renderPrecipitation(Lnet/minecraft/world/World;Lnet/minecraft/client/render/LightmapTextureManager;IFLnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getRainGradient(F)F"))
36+
@Redirect(method = "renderPrecipitation(Lnet/minecraft/world/World;Lnet/minecraft/client/render/VertexConsumerProvider;IFLnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getRainGradient(F)F"))
3737
private float forceSnow(World instance, float delta) {
3838
if (CPEAdditions.isSnowing()) {
3939
return 1F;

src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/block/MixinWallBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public VoxelShape getCullingShape(BlockState state) {
172172

173173
@Unique
174174
private static int viaFabricPlus$getDirectionMask(Direction dir) {
175-
return 1 << dir.getHorizontal();
175+
return 1 << dir.getHorizontalQuarterTurns();
176176
}
177177

178178
@Unique

src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public abstract class MixinLivingEntity extends Entity {
5858
protected boolean jumping;
5959

6060
@Shadow
61-
protected abstract float getBaseMovementSpeedMultiplier();
61+
protected abstract float getBaseWaterMovementSpeedMultiplier();
6262

6363
@Shadow
6464
private Optional<BlockPos> climbingPos;
@@ -218,7 +218,7 @@ private void modifySwimSprintFallSpeed(double gravity, boolean movingDown, Vec3d
218218
@ModifyConstant(method = "travelInFluid", constant = @Constant(floatValue = 0.9F))
219219
private float modifySwimFriction(float constant) {
220220
if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_12_2)) {
221-
return this.getBaseMovementSpeedMultiplier();
221+
return this.getBaseWaterMovementSpeedMultiplier();
222222
} else {
223223
return constant;
224224
}

src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinHeldItemRenderer.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import net.minecraft.client.util.math.MatrixStack;
2727
import net.minecraft.item.BlockItem;
2828
import net.minecraft.item.ItemStack;
29-
import net.minecraft.item.ShieldItem;
3029
import net.minecraft.util.Arm;
3130
import net.minecraft.util.Hand;
3231
import net.minecraft.util.math.RotationAxis;
@@ -35,7 +34,6 @@
3534
import org.spongepowered.asm.mixin.Unique;
3635
import org.spongepowered.asm.mixin.injection.At;
3736
import org.spongepowered.asm.mixin.injection.Inject;
38-
import org.spongepowered.asm.mixin.injection.Slice;
3937
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
4038

4139
@Mixin(HeldItemRenderer.class)
@@ -45,34 +43,19 @@ public abstract class MixinHeldItemRenderer {
4543
protected abstract void applySwingOffset(MatrixStack matrices, Arm arm, float swingProgress);
4644

4745
@Inject(method = "renderFirstPersonItem",
48-
slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getUseAction()Lnet/minecraft/item/consume/UseAction;")),
4946
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", ordinal = 2, shift = At.Shift.AFTER))
50-
private void transformSwordBlockingPosition(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
51-
if (!VisualSettings.global().swordBlockingAnimation.isEnabled()) {
52-
return;
53-
}
54-
55-
final Arm arm = hand == Hand.MAIN_HAND ? player.getMainArm() : player.getMainArm().getOpposite();
56-
final int direction = arm == Arm.RIGHT ? 1 : -1;
57-
47+
private void applyFoodSwingOffset(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
5848
viaFabricPlus$applySwingOffset(player, hand, swingProgress, matrices);
59-
if (!(item.getItem() instanceof ShieldItem)) {
60-
// Values stripped from early 1.9 snapshots, 15w33b specifically, which is the version prior to them removing sword blocking
61-
matrices.translate(direction * -0.14142136F, 0.08F, 0.14142136F);
62-
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-102.25F));
63-
matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(direction * 13.365F));
64-
matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(direction * 78.05F));
65-
}
6649
}
6750

6851
@Inject(method = "renderFirstPersonItem",
6952
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", ordinal = 3, shift = At.Shift.AFTER))
70-
private void applyFoodSwingOffset(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
53+
private void applyBlockingSwingOffset(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
7154
viaFabricPlus$applySwingOffset(player, hand, swingProgress, matrices);
7255
}
7356

7457
@Inject(method = "renderFirstPersonItem",
75-
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", ordinal = 5, shift = At.Shift.AFTER))
58+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", ordinal = 4, shift = At.Shift.AFTER))
7659
private void applyBowSwingOffset(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
7760
viaFabricPlus$applySwingOffset(player, hand, swingProgress, matrices);
7861
}

src/main/resources/viafabricplus.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"base.perserverversion.MixinServerInfo",
3131
"compat.classic4j.MixinCCAuthenticationResponse",
3232
"compat.classic4j.MixinTextFieldWidget",
33+
"compat.fabricapi.MixinClientRegistrySyncHandler",
3334
"compat.fabricapi.MixinRegistrySyncManager",
3435
"compat.ipnext.MixinAutoRefillHandler_ItemSlotMonitor",
3536
"compat.lithium.MixinEntity",

0 commit comments

Comments
 (0)