diff --git a/settings.json b/settings.json index 13c525e..92415c6 100644 --- a/settings.json +++ b/settings.json @@ -35,6 +35,8 @@ "1.21.8-fabric", "1.21.10-forge", "1.21.10-neoforge", - "1.21.10-fabric" + "1.21.10-fabric", + "1.21.11-neoforge", + "1.21.11-fabric" ] } diff --git a/src/main/java/dev/tr7zw/firstperson/FirstPersonModelCore.java b/src/main/java/dev/tr7zw/firstperson/FirstPersonModelCore.java index 7b207c2..5c376d8 100644 --- a/src/main/java/dev/tr7zw/firstperson/FirstPersonModelCore.java +++ b/src/main/java/dev/tr7zw/firstperson/FirstPersonModelCore.java @@ -6,6 +6,7 @@ import dev.tr7zw.firstperson.modsupport.*; import dev.tr7zw.firstperson.versionless.*; import dev.tr7zw.transition.loader.*; +import dev.tr7zw.transition.mc.*; import lombok.*; import net.minecraft.client.*; //? if >= 1.21.2 @@ -18,12 +19,7 @@ public abstract class FirstPersonModelCore extends FirstPersonBase { private LogicHandler logicHandler; public static FirstPersonModelCore instance; private boolean isHeld = false; - private KeyMapping keyBinding = new KeyMapping("key.firstperson.toggle", 295, - //? if >= 1.21.9 { - new KeyMapping.Category(ResourceLocation.fromNamespaceAndPath("firstperson", "keybind"))); - //? } else { - /*"firstperson.keybind"); - *///? } + private KeyMapping keyBinding = GeneralUtil.createKeyMapping("key.firstperson.toggle", 295, "firstperson:keybind"); private boolean lateInit = true; @Deprecated public static boolean enabled = true; diff --git a/src/main/java/dev/tr7zw/firstperson/LogicHandler.java b/src/main/java/dev/tr7zw/firstperson/LogicHandler.java index 9c54172..6a368c2 100644 --- a/src/main/java/dev/tr7zw/firstperson/LogicHandler.java +++ b/src/main/java/dev/tr7zw/firstperson/LogicHandler.java @@ -12,7 +12,12 @@ import net.minecraft.util.*; import net.minecraft.world.entity.*; import net.minecraft.world.entity.player.*; -import net.minecraft.world.entity.vehicle.*; +//? if >=1.21.11 { +import net.minecraft.world.entity.vehicle.minecart.*; +import net.minecraft.world.entity.vehicle.boat.*; +//?} else { +/*import net.minecraft.world.entity.vehicle.*;*/ +//?} import net.minecraft.world.item.*; import net.minecraft.world.phys.*; diff --git a/src/main/java/dev/tr7zw/firstperson/config/ConfigScreenProvider.java b/src/main/java/dev/tr7zw/firstperson/config/ConfigScreenProvider.java index 7b5e6f8..c033a15 100644 --- a/src/main/java/dev/tr7zw/firstperson/config/ConfigScreenProvider.java +++ b/src/main/java/dev/tr7zw/firstperson/config/ConfigScreenProvider.java @@ -17,6 +17,7 @@ import net.minecraft.network.chat.*; import net.minecraft.resources.*; import net.minecraft.world.item.*; +import org.jetbrains.annotations.*; import java.util.*; import java.util.Map.*; @@ -72,22 +73,20 @@ public CustomConfigScreen(Screen previous) { .icon(new ItemIcon(Items.COMPARATOR))); List, Item>> items = new ArrayList<>(ItemUtil.getItems()); - items.sort((a, b) -> a.getKey().location().toString().compareTo(b.getKey().location().toString())); + items.sort(Comparator.comparing(CustomConfigScreen::getStringItem)); WListPanel, Item>, WToggleButton> itemList = new WListPanel, Item>, WToggleButton>( items, () -> new WToggleButton(ComponentProvider.EMPTY), (s, l) -> { l.setLabel(s.getValue().getName(s.getValue().getDefaultInstance())); - l.setToolip(ComponentProvider.literal(s.getKey().location().toString())); + l.setToolip(ComponentProvider.literal(getStringItem(s))); l.setIcon(new ItemIcon(s.getValue())); - l.setToggle(FirstPersonModelCore.instance.getConfig().autoVanillaHands - .contains(s.getKey().location().toString())); + l.setToggle( + FirstPersonModelCore.instance.getConfig().autoVanillaHands.contains(getStringItem(s))); l.setOnToggle(b -> { if (b) { - FirstPersonModelCore.instance.getConfig().autoVanillaHands - .add(s.getKey().location().toString()); + FirstPersonModelCore.instance.getConfig().autoVanillaHands.add(getStringItem(s)); } else { - FirstPersonModelCore.instance.getConfig().autoVanillaHands - .remove(s.getKey().location().toString()); + FirstPersonModelCore.instance.getConfig().autoVanillaHands.remove(getStringItem(s)); } FirstPersonModelCore.instance.getLogicHandler().reloadAutoVanillaHandsSettings(); save(); @@ -99,7 +98,7 @@ public CustomConfigScreen(Screen previous) { itemTab.add(itemList, 0, 0, 17, 7); WTextField searchField = new WTextField(); searchField.setChangedListener(s -> { - itemList.setFilter(e -> e.getKey().location().toString().toLowerCase().contains(s.toLowerCase())); + itemList.setFilter(e -> getStringItem(e).toLowerCase().contains(s.toLowerCase())); itemList.layout(); }); itemTab.add(searchField, 0, 7, 17, 1); @@ -109,17 +108,15 @@ public CustomConfigScreen(Screen previous) { WListPanel, Item>, WToggleButton> disableList = new WListPanel, Item>, WToggleButton>( items, () -> new WToggleButton(ComponentProvider.EMPTY), (s, l) -> { l.setLabel(s.getValue().getName(s.getValue().getDefaultInstance())); - l.setToolip(ComponentProvider.literal(s.getKey().location().toString())); + l.setToolip(ComponentProvider.literal(getStringItem(s))); l.setIcon(new ItemIcon(s.getValue())); l.setToggle(FirstPersonModelCore.instance.getConfig().autoToggleModItems - .contains(s.getKey().location().toString())); + .contains(getStringItem(s))); l.setOnToggle(b -> { if (b) { - FirstPersonModelCore.instance.getConfig().autoToggleModItems - .add(s.getKey().location().toString()); + FirstPersonModelCore.instance.getConfig().autoToggleModItems.add(getStringItem(s)); } else { - FirstPersonModelCore.instance.getConfig().autoToggleModItems - .remove(s.getKey().location().toString()); + FirstPersonModelCore.instance.getConfig().autoToggleModItems.remove(getStringItem(s)); } FirstPersonModelCore.instance.getLogicHandler().reloadAutoVanillaHandsSettings(); save(); @@ -131,7 +128,7 @@ public CustomConfigScreen(Screen previous) { disableTab.add(disableList, 0, 0, 17, 7); WTextField searchDisableField = new WTextField(); searchDisableField.setChangedListener(s -> { - disableList.setFilter(e -> e.getKey().location().toString().toLowerCase().contains(s.toLowerCase())); + disableList.setFilter(e -> getStringItem(e).toLowerCase().contains(s.toLowerCase())); disableList.layout(); }); disableTab.add(searchDisableField, 0, 7, 17, 1); @@ -206,6 +203,10 @@ public CustomConfigScreen(Screen previous) { root.setHost(this); } + private static @NotNull String getStringItem(Entry, Item> a) { + return a.getKey()/*? >= 1.21.11 {*/.identifier() /*?} else {*//* .location() *//*?}*/.toString(); + } + @Override public void reset() { FirstPersonModelCore.instance.resetSettings(); diff --git a/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemFeatureRendererMixin.java b/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemFeatureRendererMixin.java index 7815ec2..6299712 100644 --- a/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemFeatureRendererMixin.java +++ b/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemFeatureRendererMixin.java @@ -11,6 +11,7 @@ import net.minecraft.client.renderer.entity.state.*; import net.minecraft.client.renderer.item.*; import net.minecraft.world.entity.*; +import net.minecraft.world.item.*; import org.spongepowered.asm.mixin.*; import org.spongepowered.asm.mixin.injection.*; import org.spongepowered.asm.mixin.injection.callback.*; @@ -41,12 +42,16 @@ public class HeldItemFeatureRendererMixin { //? } else { /*@Inject(at = @At("HEAD"), method = "renderArmWithItem", cancellable = true) *///? } - //? if >= 1.21.9 { + //? if >= 1.21.11 { private void renderArmWithItem(ArmedEntityRenderState armedEntityRenderState, + ItemStackRenderState itemStackRenderState, ItemStack stack, HumanoidArm humanoidArm, PoseStack poseStack, + SubmitNodeCollector submitNodeCollector, int i, CallbackInfo ci) { + //? } else if >= 1.21.9 { + /*private void renderArmWithItem(ArmedEntityRenderState armedEntityRenderState, ItemStackRenderState itemStackRenderState, HumanoidArm humanoidArm, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int i, CallbackInfo ci) { - //? } else if >= 1.21.4 { + *///? } else if >= 1.21.4 { /*private void renderArmWithItem(ArmedEntityRenderState livingEntityRenderState, ItemStackRenderState itemStackRenderState, HumanoidArm humanoidArm, PoseStack poseStack, MultiBufferSource multiBufferSource, int i, CallbackInfo ci) { diff --git a/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemRendererMixin.java b/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemRendererMixin.java index 10f0e17..75a90f0 100644 --- a/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemRendererMixin.java +++ b/src/main/java/dev/tr7zw/firstperson/mixins/HeldItemRendererMixin.java @@ -99,7 +99,7 @@ public void renderFirstPersonItem(AbstractClientPlayer player, float deltaTick, * FirstPersonModelCore.instance.getLogicHandler().showVanillaHands(); } */ - @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;getAttackStrengthScale(F)F", shift = At.Shift.BEFORE), method = "tick", cancellable = true) + @Inject(at = @At(value = "INVOKE", target = /*? if >=1.21.11 {*/ "Lnet/minecraft/client/player/LocalPlayer;getItemSwapScale(F)F" /*?} else {*//*"Lnet/minecraft/client/player/LocalPlayer;getAttackStrengthScale(F)F"*//*?}*/, shift = At.Shift.BEFORE), method = "tick", cancellable = true) public void tick(CallbackInfo ci) {// TODO DYNAMIC HAND if (FirstPersonModelCore.instance.isEnabled() && FirstPersonModelCore.instance.getLogicHandler().showVanillaHands() diff --git a/src/main/java/dev/tr7zw/firstperson/mixins/PlayerModelMixin.java b/src/main/java/dev/tr7zw/firstperson/mixins/PlayerModelMixin.java index 5ea7005..d9e7486 100644 --- a/src/main/java/dev/tr7zw/firstperson/mixins/PlayerModelMixin.java +++ b/src/main/java/dev/tr7zw/firstperson/mixins/PlayerModelMixin.java @@ -1,7 +1,11 @@ package dev.tr7zw.firstperson.mixins; import dev.tr7zw.firstperson.access.*; -import net.minecraft.client.model.*; +//? if >=1.21.11 { +import net.minecraft.client.model.player.*; +//?} else { +/*import net.minecraft.client.model.*; +*///?} import net.minecraft.world.entity.*; import org.spongepowered.asm.mixin.*; //? if < 1.21.3 { diff --git a/src/main/java/dev/tr7zw/firstperson/mixins/PlayerRendererMixin.java b/src/main/java/dev/tr7zw/firstperson/mixins/PlayerRendererMixin.java index b33df58..9aaedc6 100644 --- a/src/main/java/dev/tr7zw/firstperson/mixins/PlayerRendererMixin.java +++ b/src/main/java/dev/tr7zw/firstperson/mixins/PlayerRendererMixin.java @@ -4,7 +4,11 @@ import dev.tr7zw.firstperson.access.*; import dev.tr7zw.transition.mc.*; import net.minecraft.client.*; -import net.minecraft.client.model.*; +//? if >=1.21.11 { +import net.minecraft.client.model.player.*; +//?} else { +/*import net.minecraft.client.model.*; +*///?} import net.minecraft.client.renderer.entity.*; import net.minecraft.client.renderer.entity.*; import net.minecraft.client.renderer.entity.layers.*; @@ -74,7 +78,8 @@ public void extractRenderState(Avatar avatar, AvatarRenderState avatarRenderStat if (FirstPersonModelCore.instance.getLogicHandler().hideArmsAndItems(avatar, avatar.getMainHandItem(), avatar.getOffhandItem())) access.setHideArms(true); - avatarRenderState.hitboxesRenderState = null; + //? if <1.21.11 + /*avatarRenderState.hitboxesRenderState = null;*/ } //? } diff --git a/src/main/java/dev/tr7zw/firstperson/mixins/WorldRendererMixin.java b/src/main/java/dev/tr7zw/firstperson/mixins/WorldRendererMixin.java index 121044a..6346949 100644 --- a/src/main/java/dev/tr7zw/firstperson/mixins/WorldRendererMixin.java +++ b/src/main/java/dev/tr7zw/firstperson/mixins/WorldRendererMixin.java @@ -75,12 +75,12 @@ private void renderEntities(Camera camera, Frustum frustum, DeltaTracker deltaTr if (camera.isDetached() || !FirstPersonModelCore.instance.getLogicHandler().shouldApplyThirdPerson(false)) { return; } - Vec3 vec3d = camera.getPosition(); + Vec3 vec3d = /*? if >=1.21.11 {*/ camera.position() /*?} else {*//*camera.getPosition()*//*?}*/; MultiBufferSource.BufferSource immediate = renderBuffers.bufferSource(); FirstPersonModelCore.instance.setRenderingPlayer(true); FirstPersonModelCore.instance.setRenderingPlayerPost(true); // Store position and apply offset - var ent = camera.getEntity(); + var ent = /*? if >=1.21.11 {*/ camera.entity() /*?} else {*//*camera.getEntity()*//*?}*/; var pos = ((EntityAccessor) ent).entityCulling$getRawPosition(); var xO = ent.xo; var yO = ent.yo; diff --git a/src/main/resources/assets/firstperson/lang/en_us.json b/src/main/resources/assets/firstperson/lang/en_us.json index 8bcf042..e85a05d 100644 --- a/src/main/resources/assets/firstperson/lang/en_us.json +++ b/src/main/resources/assets/firstperson/lang/en_us.json @@ -1,5 +1,6 @@ { "text.firstperson.title": "FirstPerson Settings", + "key.category.firstperson.keybind": "FirstPerson Mod", "firstperson.keybind": "Firstperson", "key.firstperson.toggle": "Toggle Firstperson", "category.firstperson.firstperson": "FirstPerson", diff --git a/versions/mainProject b/versions/mainProject index 5138a90..ba42783 100644 --- a/versions/mainProject +++ b/versions/mainProject @@ -1 +1 @@ -1.21.10-fabric \ No newline at end of file +1.21.11-fabric \ No newline at end of file