diff --git a/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingEvents.java b/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingEvents.java index 7d1a51d..c8d5cfe 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingEvents.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingEvents.java @@ -36,17 +36,17 @@ public class AngelRingEvents { public static void setRingBreakSpeed(PlayerEvent.BreakSpeed event) { Player player = event.getEntity(); Optional slotResult = CuriosApi.getCuriosInventory(player).flatMap(handler -> handler.findFirstCurio(ItemRegistry.ANGEL_RING.get())); - if (slotResult.isPresent()) { - ItemStack angelRingStack = slotResult.get().stack(); - float newDigSpeed = event.getOriginalSpeed(); - if (getMiningSpeedModifier(angelRingStack) && !player.onGround() && KeyBindRegistry.miningEnabled) { - newDigSpeed *= 5f; - } - if (newDigSpeed != event.getOriginalSpeed()) { - event.setNewSpeed(newDigSpeed); - } + if (slotResult.isPresent()) { + ItemStack angelRingStack = slotResult.get().stack(); + float newDigSpeed = event.getOriginalSpeed(); + if (getMiningSpeedModifier(angelRingStack) && !player.onGround() && KeyBindRegistry.miningEnabled) { + newDigSpeed *= 5f; + } + if (newDigSpeed != event.getOriginalSpeed()) { + event.setNewSpeed(newDigSpeed); } } + } @SubscribeEvent(priority = EventPriority.LOW) public static void stopDrift(PlayerTickEvent.Pre event) { @@ -54,20 +54,19 @@ public static void stopDrift(PlayerTickEvent.Pre event) { Optional slotResult = CuriosApi.getCuriosInventory(player).flatMap(handler -> handler.findFirstCurio(ItemRegistry.ANGEL_RING.get())); if (slotResult.isPresent()) { ItemStack angelRingStack = slotResult.get().stack(); - Vec3 motion = player.getDeltaMovement(); - Options opt = Minecraft.getInstance().options; - if (player.getAbilities().flying && getInertiaModifier(angelRingStack) && KeyBindRegistry.inertiaEnabled) { - if (!opt.keyUp.isDown() && !opt.keyDown.isDown() && !opt.keyLeft.isDown() && !opt.keyRight.isDown()) { - if (motion.x != 0 || motion.z != 0) { - player.setDeltaMovement(0, motion.y, 0); - } + Vec3 motion = player.getDeltaMovement(); + Options opt = Minecraft.getInstance().options; + if (player.getAbilities().flying && getInertiaModifier(angelRingStack) && KeyBindRegistry.inertiaEnabled) { + if (!opt.keyUp.isDown() && !opt.keyDown.isDown() && !opt.keyLeft.isDown() && !opt.keyRight.isDown()) { + if (motion.x != 0 || motion.z != 0) { + player.setDeltaMovement(0, motion.y, 0); } } + } } } - @SubscribeEvent(priority = EventPriority.LOW) public static void newFlightSpeed(PlayerInteractEvent.RightClickItem event) { final float MAX_FLY_SPEED = 0.15F; @@ -102,4 +101,4 @@ public static void newFlightSpeed(PlayerInteractEvent.RightClickItem event) { public static void onPlayerTick(PlayerTickEvent.Pre event) { AngelRingItem.tickPlayer(event.getEntity()); } - } +} diff --git a/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingRenderEvents.java b/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingRenderEvents.java index c9868ca..80a2393 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingRenderEvents.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/events/AngelRingRenderEvents.java @@ -1,8 +1,7 @@ package com.leclowndu93150.modular_angelring.events; import com.leclowndu93150.modular_angelring.AngelRingMain; -import com.leclowndu93150.modular_angelring.render.AngelRingRendererLeft; -import com.leclowndu93150.modular_angelring.render.AngelRingRendererRight; +import com.leclowndu93150.modular_angelring.render.AngelRingRenderer; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.player.PlayerRenderer; import net.minecraft.client.resources.PlayerSkin; @@ -21,12 +20,12 @@ public static void registerEntityLayers(EntityRenderersEvent.AddLayers event) { EntityRenderer slim = event.getSkin(PlayerSkin.Model.SLIM); if (def instanceof PlayerRenderer playerRendererA) { - playerRendererA.addLayer(new AngelRingRendererLeft(playerRendererA)); - playerRendererA.addLayer(new AngelRingRendererRight(playerRendererA)); + playerRendererA.addLayer(new AngelRingRenderer(playerRendererA, false)); + playerRendererA.addLayer(new AngelRingRenderer(playerRendererA, true)); } if (slim instanceof PlayerRenderer playerRendererB) { - playerRendererB.addLayer(new AngelRingRendererLeft(playerRendererB)); - playerRendererB.addLayer(new AngelRingRendererRight(playerRendererB)); + playerRendererB.addLayer(new AngelRingRenderer(playerRendererB, false)); + playerRendererB.addLayer(new AngelRingRenderer(playerRendererB, true)); } } } diff --git a/src/main/java/com/leclowndu93150/modular_angelring/registry/KeyBindRegistry.java b/src/main/java/com/leclowndu93150/modular_angelring/registry/KeyBindRegistry.java index 9cd69c0..88912b3 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/registry/KeyBindRegistry.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/registry/KeyBindRegistry.java @@ -11,6 +11,7 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.InputEvent; @@ -27,10 +28,10 @@ @EventBusSubscriber(modid = MODID, bus = EventBusSubscriber.Bus.MOD) public class KeyBindRegistry { - public static final Lazy INERTIA_MODULE = Lazy.of(() ->new KeyMapping( + public static final Lazy INERTIA_MODULE = Lazy.of(() -> new KeyMapping( "Inertia Module", InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_L, "Modular Angel Ring")); - public static final Lazy SPEED_MODULE = Lazy.of(() ->new KeyMapping( + public static final Lazy SPEED_MODULE = Lazy.of(() -> new KeyMapping( "Speed Module", InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_K, "Modular Angel Ring")); @@ -49,29 +50,30 @@ public static void onKey(InputEvent.Key event) { Player player = Minecraft.getInstance().player; if (player == null) return; Optional slotResult = CuriosApi.getCuriosInventory(player).flatMap(handler -> handler.findFirstCurio(ItemRegistry.ANGEL_RING.get())); - if (slotResult.isPresent()) { - ItemStack angelRingStack = slotResult.get().stack(); - if (INERTIA_MODULE.get().consumeClick() && AngelRingModules.getInertiaModifier(angelRingStack)) { - inertiaEnabled = !inertiaEnabled; - if (inertiaEnabled) { - player.displayClientMessage(Component.literal("Inertia Module: Enabled").withStyle(ChatFormatting.GREEN), true); - player.level().playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.01f); - } else { - player.displayClientMessage(Component.literal("Inertia Module: Disabled").withStyle(ChatFormatting.RED), true); - player.level().playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.09f); - } + if (slotResult.isPresent()) { + ItemStack angelRingStack = slotResult.get().stack(); + Level level = player.level(); + if (INERTIA_MODULE.get().consumeClick() && AngelRingModules.getInertiaModifier(angelRingStack)) { + inertiaEnabled = !inertiaEnabled; + if (inertiaEnabled) { + player.displayClientMessage(Component.literal("Inertia Module: Enabled").withStyle(ChatFormatting.GREEN), true); + level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.01f); + } else { + player.displayClientMessage(Component.literal("Inertia Module: Disabled").withStyle(ChatFormatting.RED), true); + level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.09f); } - if (SPEED_MODULE.get().consumeClick() && angelRingStack.has(DataComponentRegistry.SPEED_MODIFIER)) { - speedEnabled = !speedEnabled; - if (speedEnabled) { - player.displayClientMessage(Component.literal("Speed Module: Enabled").withStyle(ChatFormatting.GREEN), true); - player.level().playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.01f); - } else { - player.displayClientMessage(Component.literal("Speed Module: Disabled").withStyle(ChatFormatting.RED), true); - player.level().playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.09f); - } + } + if (SPEED_MODULE.get().consumeClick() && angelRingStack.has(DataComponentRegistry.SPEED_MODIFIER)) { + speedEnabled = !speedEnabled; + if (speedEnabled) { + player.displayClientMessage(Component.literal("Speed Module: Enabled").withStyle(ChatFormatting.GREEN), true); + level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.01f); + } else { + player.displayClientMessage(Component.literal("Speed Module: Disabled").withStyle(ChatFormatting.RED), true); + level.playSound(player, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BELL.value(), SoundSource.PLAYERS, 0.4f, 0.09f); } } + } } } diff --git a/src/main/java/com/leclowndu93150/modular_angelring/render/AbstractAngelRingRenderer.java b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java similarity index 91% rename from src/main/java/com/leclowndu93150/modular_angelring/render/AbstractAngelRingRenderer.java rename to src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java index d249129..b1c507d 100644 --- a/src/main/java/com/leclowndu93150/modular_angelring/render/AbstractAngelRingRenderer.java +++ b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRenderer.java @@ -17,15 +17,14 @@ import static com.leclowndu93150.modular_angelring.render.AngelRingCheck.isEquipped; -public abstract class AbstractAngelRingRenderer extends RenderLayer> { - +public class AngelRingRenderer extends RenderLayer> { protected static final double FLAP_FREQUENCY = 0.5; // flaps per second protected static final double MAX_ANGLE = 25.0; // Maximum flap angle protected double angle; // Angle of rotation private final double dir; //-1 or 1, depending on wing side - public AbstractAngelRingRenderer(RenderLayerParent> playerModel, boolean isRightWing) { + public AngelRingRenderer(RenderLayerParent> playerModel, boolean isRightWing) { super(playerModel); this.angle = 0.; this.dir = isRightWing ? 1. : -1.; diff --git a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererLeft.java b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererLeft.java deleted file mode 100644 index ee36095..0000000 --- a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererLeft.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.leclowndu93150.modular_angelring.render; - -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.entity.RenderLayerParent; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -public class AngelRingRendererLeft extends AbstractAngelRingRenderer { - - public AngelRingRendererLeft(RenderLayerParent> playerModel) { - super(playerModel, false); - } -} \ No newline at end of file diff --git a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererRight.java b/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererRight.java deleted file mode 100644 index a6ed507..0000000 --- a/src/main/java/com/leclowndu93150/modular_angelring/render/AngelRingRendererRight.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.leclowndu93150.modular_angelring.render; - -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.entity.RenderLayerParent; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.api.distmarker.OnlyIn; - -@OnlyIn(Dist.CLIENT) -public class AngelRingRendererRight extends AbstractAngelRingRenderer { - public AngelRingRendererRight(RenderLayerParent> playerModel) { - super(playerModel, true); - } -} \ No newline at end of file