diff --git a/README.md b/README.md index 5d4c4b2..8d4e984 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ algunos módulos tienen teclas asignadas por defecto, asígnales `ESC` para desa fullbright en modo gamma cambiando el color de los shaders HUD editor de HUD +selector de colores ## contibuciones diff --git a/build.gradle b/build.gradle index 5a9eea2..86e83cb 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ dependencies { mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" } diff --git a/cambios.md b/cambios.md index 22d8216..2492d03 100644 --- a/cambios.md +++ b/cambios.md @@ -1,28 +1,29 @@ -# v2.0 +# v2.1 (roto) ## novedades +- actualizado a la 1.21.11 (maomeno) + ### adiciones -- ajuste de opción: similar a enumsetting, pero abre un marco de selección, igual que listsetting. +- categorías de módulos: ahora puedes buscar "cámara", "jugador", "mundo", "renderizado", "red", "cliente" o "misc" para que se filtren los módulos de esas categorías, respectivamente #### módulos nuevos: -- resaltado de bloques: resalta bloques de cierto tipo renderizando una caja con su forma, visible a través de paredes -- delay de paquetes: simula un ping alto añadiendo delay a los paquetes -- inventario plus: te permite mover items a cualquier slot del inventario mediante teclas (ej.: d + tecla para slot 4); -- progreso de minado: muestra el progreso de minado de un bloque de una manera más visual, mediante cajas de color -- mano secundaria: equipa de manera automática un ítem en tu mano secundaria -- moverse en interfaz: te permite utilizar las teclas de movimiento con ciertas interfaces abiertas (configurable) +- muletas: hace te no te caigas (de bloques), como cuando estás agachado, pero sin agacharte ### arreglos / mejoras -- ahora se pueden mostrar también las coordenadas del nether en el elemento del hud para coordenadas -- ahora ChatPlus utilizará los corchetes [] para mostrar la hora (antes era <>), además de también detectar cuando un jugador se une a la hora de dibujar las cabezas -- ahora puedes elegir el sonido en aviso de baja dur., junto a la altura y volumen de este -- ya no se pueden abrir interfaces del mod estando en pantallas donde se suele escribir (chat, carteles, etc.) -- arreglado algunos problemas con las configuraciones +- ahora ya puedes escribir espacios en la barra de búsqueda +- ahora se ignoran las tildes al buscar en la barra de búsqueda +- aviso de baja dur. ya no te avisa al reparar objetos dañados por debajo del límite +- creo que cielo custom ya funciona por completo (las fases lunares) ## problemas reconocidos -- muchos, pero repórtalos en la página de problemas si quieres para que queden bien registrados \ No newline at end of file +- muchos, pero repórtalos en la página de problemas si quieres para que queden bien registrados +- de esta actualización: + - superposición de daño no funciona porque no lo he podido actualizar porque han cambiado cosas relacionadas a la renderización + - la renderización de líneas (no rellenos) está rota, por el mismo motivo + - por el mismo motivo, destello de enchants no funciona + - minar sin interrupción no funciona \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 0644fc4..77318f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,13 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true -minecraft_version=1.21.10 -yarn_mappings=1.21.10+build.2 -loader_version=0.17.3 -loom_version=1.11-SNAPSHOT +minecraft_version=1.21.11 +yarn_mappings=1.21.11+build.3 +loader_version=0.18.4 +loom_version=1.13-SNAPSHOT + +fabric_api_version=0.140.2+1.21.11 mod_version=2.1 maven_group=me.retucio -archives_base_name=camtweaks - -fabric_version=0.135.0+1.21.10 \ No newline at end of file +archives_base_name=camtweaks \ No newline at end of file diff --git a/screenshots/colorpicker.png b/screenshots/colorpicker.png new file mode 100644 index 0000000..6ee3f08 Binary files /dev/null and b/screenshots/colorpicker.png differ diff --git a/src/main/java/me/retucio/camtweaks/CameraTweaks.java b/src/main/java/me/retucio/camtweaks/CameraTweaks.java index 4d2e943..8a35169 100644 --- a/src/main/java/me/retucio/camtweaks/CameraTweaks.java +++ b/src/main/java/me/retucio/camtweaks/CameraTweaks.java @@ -16,7 +16,7 @@ import me.retucio.camtweaks.event.events.camtweaks.LoadModuleManagerEvent; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.screen.ClickGUI; import me.retucio.camtweaks.ui.hud.HudEditorScreen; import me.retucio.camtweaks.ui.hud.HudRenderer; diff --git a/src/main/java/me/retucio/camtweaks/command/commands/CopyScreenshotCommand.java b/src/main/java/me/retucio/camtweaks/command/commands/CopyScreenshotCommand.java index a53b4f4..5f8b7db 100644 --- a/src/main/java/me/retucio/camtweaks/command/commands/CopyScreenshotCommand.java +++ b/src/main/java/me/retucio/camtweaks/command/commands/CopyScreenshotCommand.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.command.commands; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import me.retucio.camtweaks.command.Command; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ScreenshotPlus; +import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus; import net.minecraft.command.CommandSource; // se usa principalmente para el módulo ScreenshotPlus, pero también se puede usar sin él supongo diff --git a/src/main/java/me/retucio/camtweaks/command/commands/SaveScreenshotCommand.java b/src/main/java/me/retucio/camtweaks/command/commands/SaveScreenshotCommand.java index 2e210b7..464fe24 100644 --- a/src/main/java/me/retucio/camtweaks/command/commands/SaveScreenshotCommand.java +++ b/src/main/java/me/retucio/camtweaks/command/commands/SaveScreenshotCommand.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.command.commands; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import me.retucio.camtweaks.command.Command; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ScreenshotPlus; +import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus; import me.retucio.camtweaks.util.ChatUtil; import net.minecraft.command.CommandSource; diff --git a/src/main/java/me/retucio/camtweaks/event/events/ClientClickEvent.java b/src/main/java/me/retucio/camtweaks/event/events/ClientClickEvent.java index b2e62c5..cc95d24 100644 --- a/src/main/java/me/retucio/camtweaks/event/events/ClientClickEvent.java +++ b/src/main/java/me/retucio/camtweaks/event/events/ClientClickEvent.java @@ -1,10 +1,11 @@ package me.retucio.camtweaks.event.events; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; import net.minecraft.text.ClickEvent; /** este evento es solo para asegurarse de que comandos del mod se puedan ejecutar solo desde el lado del cliente - * @see me.retucio.camtweaks.module.modules.ChatPlus#getSendButton + * @see ChatPlus#getSendButton */ public class ClientClickEvent implements ClickEvent { diff --git a/src/main/java/me/retucio/camtweaks/event/events/ClipAtLedgeEvent.java b/src/main/java/me/retucio/camtweaks/event/events/ClipAtLedgeEvent.java new file mode 100644 index 0000000..f8c954b --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/event/events/ClipAtLedgeEvent.java @@ -0,0 +1,20 @@ +package me.retucio.camtweaks.event.events; + +import me.retucio.camtweaks.event.Event; + +public class ClipAtLedgeEvent extends Event { + + private boolean clipping; + + public ClipAtLedgeEvent(boolean clipping) { + this.clipping = clipping; + } + + public boolean isClipping() { + return clipping; + } + + public void setClipping(boolean clipping) { + this.clipping = clipping; + } +} diff --git a/src/main/java/me/retucio/camtweaks/mixin/CameraMixin.java b/src/main/java/me/retucio/camtweaks/mixin/CameraMixin.java index da6e8dc..02d743d 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/CameraMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/CameraMixin.java @@ -1,12 +1,12 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freelook; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.PerspectivePlus; +import me.retucio.camtweaks.module.modules.camera.Freelook; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.camera.PerspectivePlus; import net.minecraft.client.render.Camera; import net.minecraft.entity.Entity; -import net.minecraft.world.BlockView; +import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -44,7 +44,7 @@ public abstract class CameraMixin { } @Inject(method = "update", at = @At("HEAD")) - private void onUpdateHead(BlockView area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo info) { + private void onUpdateHead(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo ci) { this.tickDelta = tickDelta; } @@ -67,7 +67,7 @@ public abstract class CameraMixin { // cámara libre @Inject(method = "update", at = @At("TAIL")) - private void onUpdateTail(BlockView area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo info) { + private void onUpdateTail(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) { if (freecam.isEnabled()) this.thirdPerson = true; } diff --git a/src/main/java/me/retucio/camtweaks/mixin/ChatHudMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ChatHudMixin.java index feb20e4..b97c329 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ChatHudMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ChatHudMixin.java @@ -1,18 +1,15 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import com.llamalad7.mixinextras.injector.ModifyReceiver; import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.event.events.ReceiveMessageEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ChatPlus; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; import me.retucio.camtweaks.util.interfaces.IChatHud; import me.retucio.camtweaks.util.interfaces.IChatHudLine; import me.retucio.camtweaks.util.interfaces.IChatHudLineVisible; import me.retucio.camtweaks.util.interfaces.IMessageHandler; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.ChatHud; import net.minecraft.client.gui.hud.ChatHudLine; import net.minecraft.client.gui.hud.MessageIndicator; @@ -71,12 +68,12 @@ public abstract class ChatHudMixin implements IChatHud { nextId = 0; } - @Inject(method = "addVisibleMessage", at = @At(value = "INVOKE", target = "Ljava/util/List;add(ILjava/lang/Object;)V", shift = At.Shift.AFTER)) + @Inject(method = "addVisibleMessage", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER)) private void onAddMessageAfterNewChatHudLineVisible(ChatHudLine message, CallbackInfo ci) { ((IChatHudLine) (Object) visibleMessages.getFirst()).smegma$setId(nextId); } - @Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;add(ILjava/lang/Object;)V", shift = At.Shift.AFTER)) + @Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;addFirst(Ljava/lang/Object;)V", shift = At.Shift.AFTER)) private void onAddMessageAfterNewChatHudLine(ChatHudLine message, CallbackInfo ci) { ((IChatHudLine) (Object) messages.getFirst()).smegma$setId(nextId); } @@ -144,23 +141,11 @@ public abstract class ChatHudMixin implements IChatHud { // cabezas - @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;ceil(F)I")) + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/gui/hud/ChatHud$Backend;IIZ)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;ceil(F)I")) private int onRender_modifyWidth(int width) { return (chatPlus.isEnabled() && chatPlus.showHeads.isEnabled()) ? width + 10 : width; } - @ModifyReceiver(method = "method_71991", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawTextWithShadow(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/OrderedText;III)V")) - private DrawContext onRender_beforeDrawTextWithShadow(DrawContext context, TextRenderer textRenderer, OrderedText text, int x, int y, int color, @Local(argsOnly = true) ChatHudLine.Visible line) { - chatPlus.beforeDrawMessage(context, line, y, color); - return context; - } - - @Inject(method = "method_71991", at = @At("TAIL")) - private void onRender_afterDrawTextWithShadow(int i, DrawContext context, float f, int j, int k, int l, ChatHudLine.Visible visible, int m, float g, CallbackInfo info) { - chatPlus.afterDrawMessage(context); - } - - // historial (registro) del chat @@ -181,7 +166,7 @@ public abstract class ChatHudMixin implements IChatHud { chatPlus.lines.addFirst(list.size()); } - @Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;remove(I)Ljava/lang/Object;")) + @Inject(method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V", at = @At(value = "INVOKE", target = "Ljava/util/List;removeLast()Ljava/lang/Object;")) private void onRemoveMessage(ChatHudLine message, CallbackInfo ci) { int extra = chatPlus.chatHistoryExtraLength.getIntValue(); int size = chatPlus.lines.size(); diff --git a/src/main/java/me/retucio/camtweaks/mixin/ChatScreenMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ChatScreenMixin.java index 9a27213..72e8ed3 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ChatScreenMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ChatScreenMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ChatPlus; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.widget.TextFieldWidget; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ChunkBorderDebugRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ChunkBorderDebugRendererMixin.java index fde5a83..6df8189 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ChunkBorderDebugRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ChunkBorderDebugRendererMixin.java @@ -1,18 +1,15 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; +import me.retucio.camtweaks.module.modules.camera.Freecam; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.debug.ChunkBorderDebugRenderer; -import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.ChunkSectionPos; import net.minecraft.util.math.MathHelper; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @Mixin(ChunkBorderDebugRenderer.class) @@ -21,14 +18,16 @@ public abstract class ChunkBorderDebugRendererMixin { @Shadow @Final private MinecraftClient client; - @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getChunkPos()Lnet/minecraft/util/math/ChunkPos;")) - private ChunkPos getChunkPos(ChunkPos chunkPos) { + @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ChunkSectionPos;from(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/util/math/ChunkSectionPos;")) + private ChunkSectionPos getChunkPos(ChunkSectionPos chunkPos) { Freecam freecam = ModuleManager.INSTANCE.getModuleByClass(Freecam.class); if (!freecam.isEnabled()) return chunkPos; float delta = client.getRenderTickCounter().getTickProgress(true); - return new ChunkPos( + return ChunkSectionPos.from( ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getX(delta))), - ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getZ(delta)))); + ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getY(delta))), + ChunkSectionPos.getSectionCoord(MathHelper.floor(freecam.getZ(delta))) + ); } } diff --git a/src/main/java/me/retucio/camtweaks/mixin/ClientCommonNetworkHandlerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ClientCommonNetworkHandlerMixin.java index 4651ea6..58cc9e5 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ClientCommonNetworkHandlerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ClientCommonNetworkHandlerMixin.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.mixin.accessor.ConfirmServerResourcePackScreenAccessor; import me.retucio.camtweaks.mixin.accessor.PackAccessor; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.RPackBypass; +import me.retucio.camtweaks.module.modules.network.RPackBypass; import me.retucio.camtweaks.util.interfaces.IConfirmScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayNetworkHandlerMixin.java index fff10cc..4ab20f9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayNetworkHandlerMixin.java @@ -4,12 +4,11 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import me.retucio.camtweaks.command.CommandManager; import me.retucio.camtweaks.event.events.SendMessageEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import me.retucio.camtweaks.util.ChatUtil; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.render.GameRenderer; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerEntityMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerEntityMixin.java index 56b4040..5ab5775 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerEntityMixin.java @@ -1,19 +1,38 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.PortalGUI; +import me.retucio.camtweaks.module.modules.world.NoMiningInterruptions; +import me.retucio.camtweaks.module.modules.player.PortalGUI; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.util.hit.HitResult; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @Mixin(ClientPlayerEntity.class) public abstract class ClientPlayerEntityMixin { - @ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;")) + @ModifyExpressionValue(method = "tickNausea", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", opcode = Opcodes.GETFIELD)) private Screen allowScreensInPortals(Screen original) { if (ModuleManager.INSTANCE.getModuleByClass(PortalGUI.class).isEnabled()) return null; return original; } + + @ModifyReturnValue(method = "getCrosshairTarget(FLnet/minecraft/entity/Entity;)Lnet/minecraft/util/hit/HitResult;", at = @At("RETURN")) + private static HitResult onGetCrosshairTarget(HitResult original, @Local HitResult hitResult) { + NoMiningInterruptions nmi = ModuleManager.INSTANCE.getModuleByClass(NoMiningInterruptions.class); + if (original instanceof EntityHitResult ehr) { + if (nmi.shouldIgnoreEntity(ehr.getEntity()) + && hitResult.getType() == HitResult.Type.BLOCK) { + return hitResult; + } + } + + return original; + } } diff --git a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerInteractionManagerMixin.java index 9968904..43489c9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerInteractionManagerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ClientPlayerInteractionManagerMixin.java @@ -1,14 +1,11 @@ package me.retucio.camtweaks.mixin; -import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.event.events.AttackEntityEvent; import me.retucio.camtweaks.event.events.BreakBlockEvent; import me.retucio.camtweaks.event.events.InteractEntityEvent; import me.retucio.camtweaks.event.events.PlaceBlockEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.util.ChatUtil; +import me.retucio.camtweaks.module.modules.camera.Freecam; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayerEntity; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ClientWorldPropertiesMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ClientWorldPropertiesMixin.java index e897cc2..4c25534 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ClientWorldPropertiesMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ClientWorldPropertiesMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.TimeChanger; +import me.retucio.camtweaks.module.modules.world.TimeChanger; import net.minecraft.client.world.ClientWorld; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ConfirmScreenMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ConfirmScreenMixin.java index 43f6947..04155bf 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ConfirmScreenMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ConfirmScreenMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.RPackBypass; +import me.retucio.camtweaks.module.modules.network.RPackBypass; import me.retucio.camtweaks.util.interfaces.IConfirmScreen; import net.minecraft.client.gui.screen.ConfirmScreen; import net.minecraft.client.gui.screen.Screen; diff --git a/src/main/java/me/retucio/camtweaks/mixin/DamageParticleMixin.java b/src/main/java/me/retucio/camtweaks/mixin/DamageParticleMixin.java index 1ce146c..47efdb9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/DamageParticleMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/DamageParticleMixin.java @@ -2,15 +2,13 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.CritsPlus; +import me.retucio.camtweaks.module.modules.render.CritsPlus; import net.minecraft.client.particle.BillboardParticle; import net.minecraft.client.particle.DamageParticle; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; -import java.awt.*; - @Mixin(DamageParticle.class) public abstract class DamageParticleMixin { diff --git a/src/main/java/me/retucio/camtweaks/mixin/DimensionTypeMixin.java b/src/main/java/me/retucio/camtweaks/mixin/DimensionTypeMixin.java deleted file mode 100644 index 3487f03..0000000 --- a/src/main/java/me/retucio/camtweaks/mixin/DimensionTypeMixin.java +++ /dev/null @@ -1,30 +0,0 @@ -package me.retucio.camtweaks.mixin; - -import com.llamalad7.mixinextras.injector.ModifyReturnValue; -import com.llamalad7.mixinextras.sugar.Local; -import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.TimeChanger; -import me.retucio.camtweaks.util.ChatUtil; -import net.minecraft.world.dimension.DimensionType; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -import static me.retucio.camtweaks.CameraTweaks.mc; - -@Mixin(DimensionType.class) -public abstract class DimensionTypeMixin { - - // no consigo arreglar lo de que la fase lunar por defecto siempre sea luna llena - @ModifyReturnValue(method = "getMoonPhase", at = @At("RETURN")) - private int overrideMoonPhase(int original, @Local(argsOnly = true) long time) { - TimeChanger timeChanger = ModuleManager.INSTANCE.getModuleByClass(TimeChanger.class); - if (timeChanger == null || !timeChanger.isEnabled() || mc.world == null) { - return original; - } - - if (timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT)) - return (int) (time / 24000L % 8L + 8L) % 8; - - return timeChanger.getMoonPhase(); - } -} diff --git a/src/main/java/me/retucio/camtweaks/mixin/DisconnectedScreenMixin.java b/src/main/java/me/retucio/camtweaks/mixin/DisconnectedScreenMixin.java index 0529758..647b0b5 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/DisconnectedScreenMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/DisconnectedScreenMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Reconnect; +import me.retucio.camtweaks.module.modules.network.Reconnect; import net.minecraft.client.gui.screen.DisconnectedScreen; import net.minecraft.client.gui.widget.ButtonWidget; diff --git a/src/main/java/me/retucio/camtweaks/mixin/EntityMixin.java b/src/main/java/me/retucio/camtweaks/mixin/EntityMixin.java index 94860d1..dab1099 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/EntityMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/EntityMixin.java @@ -3,7 +3,11 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.event.events.ChangeRotationEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.*; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.camera.Freelook; +import me.retucio.camtweaks.module.modules.camera.Rotations; +import me.retucio.camtweaks.module.modules.misc.AntiInvis; +import me.retucio.camtweaks.module.modules.render.Nametags; import net.minecraft.entity.*; import net.minecraft.entity.passive.TameableEntity; import net.minecraft.entity.player.PlayerEntity; @@ -31,10 +35,14 @@ public abstract class EntityMixin { @Shadow private float yaw; @Shadow private float pitch; - @Unique Freecam freecam; - @Unique Freelook freelook; - @Unique Nametags nametags; - @Unique Rotations rotations; + @Unique + Freecam freecam; + @Unique + Freelook freelook; + @Unique + Nametags nametags; + @Unique + Rotations rotations; @SuppressWarnings("rawtypes") @Inject(method = "", at = @At("TAIL")) diff --git a/src/main/java/me/retucio/camtweaks/mixin/EquipmentRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/EquipmentRendererMixin.java index ea48368..32e47e7 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/EquipmentRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/EquipmentRendererMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.GlintPlus; +import me.retucio.camtweaks.module.modules.render.GlintPlus; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.entity.equipment.EquipmentRenderer; import org.spongepowered.asm.mixin.Mixin; @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(EquipmentRenderer.class) public abstract class EquipmentRendererMixin { - @Redirect(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getArmorEntityGlint()Lnet/minecraft/client/render/RenderLayer;")) + @Redirect(method = "render(Lnet/minecraft/client/render/entity/equipment/EquipmentModel$LayerType;Lnet/minecraft/registry/RegistryKey;Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/util/Identifier;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;armorEntityGlint()Lnet/minecraft/client/render/RenderLayer;")) private RenderLayer redirectArmorEntityGlint() { GlintPlus glintPlus = ModuleManager.INSTANCE.getModuleByClass(GlintPlus.class); return glintPlus.getArmorEntityGlint(); diff --git a/src/main/java/me/retucio/camtweaks/mixin/FogRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/FogRendererMixin.java index a27c09c..9b62bc4 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/FogRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/FogRendererMixin.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.block.enums.CameraSubmersionType; import net.minecraft.client.render.Camera; import net.minecraft.client.render.fog.FogModifier; @@ -28,7 +28,7 @@ public abstract class FogRendererMixin { noRender = ModuleManager.INSTANCE.getModuleByClass(NoRender.class); } - @Redirect(method = "applyFog(Lnet/minecraft/client/render/Camera;IZLnet/minecraft/client/render/RenderTickCounter;FLnet/minecraft/client/world/ClientWorld;)Lorg/joml/Vector4f;", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/fog/FogModifier;shouldApply(Lnet/minecraft/block/enums/CameraSubmersionType;Lnet/minecraft/entity/Entity;)Z")) + @Redirect(method = "applyFog(Lnet/minecraft/client/render/Camera;ILnet/minecraft/client/render/RenderTickCounter;FLnet/minecraft/client/world/ClientWorld;)Lorg/joml/Vector4f;", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/fog/FogModifier;shouldApply(Lnet/minecraft/block/enums/CameraSubmersionType;Lnet/minecraft/entity/Entity;)Z")) private boolean noRenderFogs(FogModifier instance, CameraSubmersionType cameraSubmersionType, Entity entity) { if (!noRender.isEnabled()) return instance.shouldApply(cameraSubmersionType, entity); String className = instance.getClass().getSimpleName(); diff --git a/src/main/java/me/retucio/camtweaks/mixin/GameOptionsMixin.java b/src/main/java/me/retucio/camtweaks/mixin/GameOptionsMixin.java index 9515e5b..fd51ee9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/GameOptionsMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/GameOptionsMixin.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.event.events.PerspectiveChangeEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; +import me.retucio.camtweaks.module.modules.camera.Freecam; import net.minecraft.client.option.GameOptions; import net.minecraft.client.option.Perspective; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/retucio/camtweaks/mixin/GameRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/GameRendererMixin.java index fbabdff..4dd909b 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/GameRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/GameRendererMixin.java @@ -1,13 +1,11 @@ package me.retucio.camtweaks.mixin; -import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.event.events.GetFOVEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.NoMiningInterruptions; -import me.retucio.camtweaks.module.modules.NoRender; -import me.retucio.camtweaks.module.modules.Zoom; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.render.NoRender; +import me.retucio.camtweaks.module.modules.camera.Zoom; import me.retucio.camtweaks.util.interfaces.IVec3d; import net.minecraft.client.MinecraftClient; @@ -17,8 +15,6 @@ import net.minecraft.client.render.block.BlockRenderManager; import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.entity.Entity; -import net.minecraft.util.hit.EntityHitResult; -import net.minecraft.util.hit.HitResult; import org.joml.Matrix4f; import org.joml.Vector3d; @@ -123,15 +119,4 @@ public abstract class GameRendererMixin { private float noRenderNauseaDistortion(float scaledNauseaEffectFactor) { return (noRender.isEnabled() && !noRender.nauseaEffect.isEnabled()) ? 0 : scaledNauseaEffectFactor; } - - @ModifyReturnValue(method = "findCrosshairTarget", at = @At("RETURN")) - private HitResult onTargetEntity(HitResult original, @Local HitResult hitResult) { - NoMiningInterruptions nmi = ModuleManager.INSTANCE.getModuleByClass(NoMiningInterruptions.class); - - Entity entity = original instanceof EntityHitResult result ? result.getEntity() : null; - if (nmi.shouldIgnoreEntity(entity) && hitResult.getType() == HitResult.Type.BLOCK) - return hitResult; - - return original; - } } diff --git a/src/main/java/me/retucio/camtweaks/mixin/HandshakeC2SPacketMixin.java b/src/main/java/me/retucio/camtweaks/mixin/HandshakeC2SPacketMixin.java index bb53c73..0b666ab 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/HandshakeC2SPacketMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/HandshakeC2SPacketMixin.java @@ -5,7 +5,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.BungeecordSpoofer; +import me.retucio.camtweaks.module.modules.network.BungeecordSpoofer; import net.minecraft.network.packet.c2s.handshake.ConnectionIntent; import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket; import org.spongepowered.asm.mixin.*; diff --git a/src/main/java/me/retucio/camtweaks/mixin/HeldItemRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/HeldItemRendererMixin.java index c668814..191704a 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/HeldItemRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/HeldItemRendererMixin.java @@ -4,15 +4,13 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.event.events.RenderHeldItemEvent; import me.retucio.camtweaks.event.events.RenderArmEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.HandView; +import me.retucio.camtweaks.module.modules.player.HandView; import net.minecraft.client.MinecraftClient; import net.minecraft.client.item.ItemModelManager; import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EntityRenderManager; import net.minecraft.client.render.item.HeldItemRenderer; -import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -50,7 +48,7 @@ public abstract class HeldItemRendererMixin { protected abstract boolean shouldSkipHandAnimationOnSwap(ItemStack from, ItemStack to); @Inject(method = "", at = @At("TAIL")) - private void getModules(MinecraftClient client, EntityRenderManager entityRenderDispatcher, ItemRenderer itemRenderer, ItemModelManager itemModelManager, CallbackInfo ci) { + private void getModules(MinecraftClient client, EntityRenderManager entityRenderDispatcher, ItemModelManager itemModelManager, CallbackInfo ci) { handView = ModuleManager.INSTANCE.getModuleByClass(HandView.class); } diff --git a/src/main/java/me/retucio/camtweaks/mixin/InGameHudMixin.java b/src/main/java/me/retucio/camtweaks/mixin/InGameHudMixin.java index 599e6ea..e1ba41f 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/InGameHudMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/InGameHudMixin.java @@ -2,9 +2,9 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ChatPlus; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.render.NoRender; import me.retucio.camtweaks.ui.hud.HudRenderer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; diff --git a/src/main/java/me/retucio/camtweaks/mixin/InGameOverlayRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/InGameOverlayRendererMixin.java index 06b2709..7d7e25c 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/InGameOverlayRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/InGameOverlayRendererMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.hud.InGameOverlayRenderer; import net.minecraft.client.render.VertexConsumerProvider; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ItemEntityMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ItemEntityMixin.java index 21fc6c2..49baf66 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ItemEntityMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ItemEntityMixin.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Nametags; +import me.retucio.camtweaks.module.modules.render.Nametags; import net.minecraft.entity.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.MutableText; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ItemMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ItemMixin.java index 71828c9..82f3499 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ItemMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ItemMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ShulkerPeek; +import me.retucio.camtweaks.module.modules.misc.ShulkerPeek; import net.minecraft.block.ShulkerBoxBlock; import net.minecraft.component.type.TooltipDisplayComponent; import net.minecraft.item.BlockItem; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ItemRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ItemRendererMixin.java index 14d7a57..9d622a5 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ItemRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ItemRendererMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.GlintPlus; +import me.retucio.camtweaks.module.modules.render.GlintPlus; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.item.ItemRenderer; import org.spongepowered.asm.mixin.Mixin; @@ -22,12 +22,12 @@ public abstract class ItemRendererMixin { glintPlus = ModuleManager.INSTANCE.getModuleByClass(GlintPlus.class); } - @Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getGlint()Lnet/minecraft/client/render/RenderLayer;")) + @Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;glint()Lnet/minecraft/client/render/RenderLayer;")) private static RenderLayer getGlint() { return glintPlus.getGlint(); } - @Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getEntityGlint()Lnet/minecraft/client/render/RenderLayer;")) + @Redirect(method = "getItemGlintConsumer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayers;entityGlint()Lnet/minecraft/client/render/RenderLayer;")) private static RenderLayer getEntityGlint() { return glintPlus.getEntityGlint(); } diff --git a/src/main/java/me/retucio/camtweaks/mixin/KeyInputMixin.java b/src/main/java/me/retucio/camtweaks/mixin/KeyInputMixin.java index 26ef5c2..08433b7 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/KeyInputMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/KeyInputMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; +import me.retucio.camtweaks.module.modules.camera.Freecam; import net.minecraft.client.input.Input; import net.minecraft.client.input.KeyboardInput; import net.minecraft.util.PlayerInput; diff --git a/src/main/java/me/retucio/camtweaks/mixin/LightmapTextureManagerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/LightmapTextureManagerMixin.java index 5f19870..36d2870 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/LightmapTextureManagerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/LightmapTextureManagerMixin.java @@ -4,8 +4,8 @@ import com.llamalad7.mixinextras.sugar.Local; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.GpuTexture; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Fullbright; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.camera.Fullbright; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.LightmapTextureManager; diff --git a/src/main/java/me/retucio/camtweaks/mixin/LivingEntityRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/LivingEntityRendererMixin.java index 7d2332f..d2f18c5 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/LivingEntityRendererMixin.java @@ -4,8 +4,8 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.Nametags; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.render.Nametags; import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.model.EntityModel; diff --git a/src/main/java/me/retucio/camtweaks/mixin/MinecraftClientMixin.java b/src/main/java/me/retucio/camtweaks/mixin/MinecraftClientMixin.java index 90f930e..46f4ea2 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/MinecraftClientMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/MinecraftClientMixin.java @@ -1,7 +1,5 @@ package me.retucio.camtweaks.mixin; -import com.ibm.icu.util.CodePointTrie; -import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.sugar.Local; import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.event.JoinWorldEvent; @@ -10,7 +8,7 @@ import me.retucio.camtweaks.event.events.ShutdownEvent; import me.retucio.camtweaks.event.events.TickEvent; import me.retucio.camtweaks.event.events.UseItemEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.FastUse; +import me.retucio.camtweaks.module.modules.player.FastUse; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.world.ClientWorld; diff --git a/src/main/java/me/retucio/camtweaks/mixin/OverlayTextureMixin.java b/src/main/java/me/retucio/camtweaks/mixin/OverlayTextureMixin.java index 85f42db..380ecb9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/OverlayTextureMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/OverlayTextureMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.DamageOverlay; +import me.retucio.camtweaks.module.modules.render.DamageOverlay; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.texture.NativeImageBackedTexture; import org.spongepowered.asm.mixin.Final; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ParticleManagerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ParticleManagerMixin.java index e932db2..e3ec3ce 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ParticleManagerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ParticleManagerMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleManager; import net.minecraft.particle.ParticleEffect; diff --git a/src/main/java/me/retucio/camtweaks/mixin/PlayerEntityMixin.java b/src/main/java/me/retucio/camtweaks/mixin/PlayerEntityMixin.java index bf4df58..f61f904 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/PlayerEntityMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/PlayerEntityMixin.java @@ -1,8 +1,10 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import me.retucio.camtweaks.CameraTweaks; +import me.retucio.camtweaks.event.events.ClipAtLedgeEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Nametags; +import me.retucio.camtweaks.module.modules.render.Nametags; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -11,6 +13,8 @@ import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerEntity.class) public abstract class PlayerEntityMixin extends LivingEntity { @@ -49,4 +53,11 @@ public abstract class PlayerEntityMixin extends LivingEntity { return original.copy().append(text); } + + @Inject(method = "clipAtLedge", at = @At("HEAD"), cancellable = true) + private void clipAtLedge(CallbackInfoReturnable cir) { + if (!getEntityWorld().isClient()) return; + ClipAtLedgeEvent event = CameraTweaks.EVENT_BUS.post(new ClipAtLedgeEvent(isSneaking())); + cir.setReturnValue(event.isClipping()); + } } \ No newline at end of file diff --git a/src/main/java/me/retucio/camtweaks/mixin/ResourcePackPolicyMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ResourcePackPolicyMixin.java index 1c47c00..1b2023f 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ResourcePackPolicyMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ResourcePackPolicyMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.RPackBypass; +import me.retucio.camtweaks.module.modules.network.RPackBypass; import net.minecraft.client.network.ServerInfo; import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ScreenshotRecorderMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ScreenshotRecorderMixin.java index 9605869..5fc0035 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ScreenshotRecorderMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ScreenshotRecorderMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ScreenshotPlus; +import me.retucio.camtweaks.module.modules.misc.ScreenshotPlus; import net.minecraft.client.texture.NativeImage; import net.minecraft.client.util.ScreenshotRecorder; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ServerConnectorMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ServerConnectorMixin.java index 59cdf07..b614e9e 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ServerConnectorMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ServerConnectorMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.RPackBypass; +import me.retucio.camtweaks.module.modules.network.RPackBypass; import net.minecraft.client.network.ServerInfo; import net.minecraft.client.resource.server.ServerResourcePackManager; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/retucio/camtweaks/mixin/ServerInfoMixin.java b/src/main/java/me/retucio/camtweaks/mixin/ServerInfoMixin.java index ca36a93..121c049 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/ServerInfoMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/ServerInfoMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.RPackBypass; +import me.retucio.camtweaks.module.modules.network.RPackBypass; import net.minecraft.client.network.ServerInfo; import net.minecraft.nbt.NbtCompound; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/me/retucio/camtweaks/mixin/SkyRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/SkyRendererMixin.java index dba3c65..a8146d6 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/SkyRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/SkyRendererMixin.java @@ -1,20 +1,17 @@ package me.retucio.camtweaks.mixin; -import com.mojang.blaze3d.buffers.GpuBuffer; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; -import me.retucio.camtweaks.module.modules.PerspectivePlus; -import me.retucio.camtweaks.module.modules.TimeChanger; -import me.retucio.camtweaks.util.ChatUtil; +import me.retucio.camtweaks.module.modules.render.NoRender; +import me.retucio.camtweaks.module.modules.world.TimeChanger; import net.minecraft.client.render.SkyRendering; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.world.MoonPhase; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(SkyRendering.class) public abstract class SkyRendererMixin { @@ -33,8 +30,17 @@ public abstract class SkyRendererMixin { } @Inject(method = "renderMoon", at = @At("HEAD"), cancellable = true) - private void onRenderMoon(int phase, float alpha, MatrixStack matrixStack, CallbackInfo ci) { - if (timeChanger.isEnabled() && !timeChanger.renderMoon.isEnabled()) ci.cancel(); + private void onRenderMoon(MoonPhase moonPhase, float alpha, MatrixStack matrices, CallbackInfo ci) { + if (!timeChanger.isEnabled()) return; + if (!timeChanger.renderMoon.isEnabled()) ci.cancel(); + } + + @ModifyArg(method = "renderCelestialBodies", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/SkyRendering;renderMoon(Lnet/minecraft/world/MoonPhase;FLnet/minecraft/client/util/math/MatrixStack;)V")) + private MoonPhase timeChangerMoonPhase(MoonPhase original) { + if (!timeChanger.isEnabled() || timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT)) return original; + int phase = timeChanger.moonPhase.getIndex(); + if (timeChanger.moonPhase.is(TimeChanger.MoonPhases.DEFAULT)) phase = original.getIndex(); + return MoonPhase.values()[phase]; } @Inject(method = "renderStars", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/me/retucio/camtweaks/mixin/StatusEffectFogModifierMixin.java b/src/main/java/me/retucio/camtweaks/mixin/StatusEffectFogModifierMixin.java index ce159ef..fd0e50c 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/StatusEffectFogModifierMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/StatusEffectFogModifierMixin.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.render.fog.StatusEffectFogModifier; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffects; diff --git a/src/main/java/me/retucio/camtweaks/mixin/StringHelperMixin.java b/src/main/java/me/retucio/camtweaks/mixin/StringHelperMixin.java index 3a130b7..b191f50 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/StringHelperMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/StringHelperMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.ChatPlus; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; import net.minecraft.util.StringHelper; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/retucio/camtweaks/mixin/StuckArrowsFeatureRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/StuckArrowsFeatureRendererMixin.java index 51f0864..1e71ae9 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/StuckArrowsFeatureRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/StuckArrowsFeatureRendererMixin.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.render.entity.feature.StuckArrowsFeatureRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/retucio/camtweaks/mixin/TextRendererDrawerMixin.java b/src/main/java/me/retucio/camtweaks/mixin/TextRendererDrawerMixin.java index a1cdcfc..a8df198 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/TextRendererDrawerMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/TextRendererDrawerMixin.java @@ -1,22 +1,15 @@ package me.retucio.camtweaks.mixin; -import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import com.llamalad7.mixinextras.injector.ModifyReturnValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; -import net.minecraft.client.font.BakedGlyph; -import net.minecraft.client.font.GlyphProvider; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.font.TextRenderer; import net.minecraft.text.Style; import net.minecraft.text.TextColor; -import net.minecraft.util.math.MathHelper; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.*; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import static me.retucio.camtweaks.CameraTweaks.mc; - // falta italics pero no sé dónde se comprueba eso, no es aquí :P @Mixin(TextRenderer.Drawer.class) public abstract class TextRendererDrawerMixin { @@ -24,8 +17,8 @@ public abstract class TextRendererDrawerMixin { @Unique NoRender noRender; - @Inject(method = "(Lnet/minecraft/client/font/TextRenderer;FFIIZ)V", at = @At("TAIL")) - private void getModules(TextRenderer textRenderer, float x, float y, int color, int backgroundColor, boolean shadow, CallbackInfo ci) { + @Inject(method = "(Lnet/minecraft/client/font/TextRenderer;FFIIZZ)V", at = @At("TAIL")) + private void getModules(TextRenderer textRenderer, float x, float y, int color, int backgroundColor, boolean shadow, boolean trackEmpty, CallbackInfo ci) { noRender = ModuleManager.INSTANCE.getModuleByClass(NoRender.class); } diff --git a/src/main/java/me/retucio/camtweaks/mixin/TextRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/TextRendererMixin.java index ef779bc..5f74056 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/TextRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/TextRendererMixin.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.mixin; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.font.TextRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/me/retucio/camtweaks/mixin/WeatherRenderingMixin.java b/src/main/java/me/retucio/camtweaks/mixin/WeatherRenderingMixin.java index 30a5e47..06628e3 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/WeatherRenderingMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/WeatherRenderingMixin.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.mixin; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.NoRender; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.render.Camera; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.WeatherRendering; @@ -15,8 +15,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import java.util.List; - @Mixin(WeatherRendering.class) public abstract class WeatherRenderingMixin { @@ -30,7 +28,7 @@ public abstract class WeatherRenderingMixin { } @Inject(method = "addParticlesAndSound", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/world/ClientWorld;addParticleClient(Lnet/minecraft/particle/ParticleEffect;DDDDDD)V"), cancellable = true) - private void noRainParticles(ClientWorld world, Camera camera, int ticks, ParticlesMode particlesMode, CallbackInfo ci) { + private void noRainParticles(ClientWorld world, Camera camera, int ticks, ParticlesMode particlesMode, int weatherRadius, CallbackInfo ci) { if (noRender.isEnabled() && !noRender.rain.isEnabled()) ci.cancel(); } diff --git a/src/main/java/me/retucio/camtweaks/mixin/WorldRendererMixin.java b/src/main/java/me/retucio/camtweaks/mixin/WorldRendererMixin.java index d2c825b..0b5f154 100644 --- a/src/main/java/me/retucio/camtweaks/mixin/WorldRendererMixin.java +++ b/src/main/java/me/retucio/camtweaks/mixin/WorldRendererMixin.java @@ -5,19 +5,15 @@ import com.mojang.blaze3d.buffers.GpuBufferSlice; import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.event.events.RenderWorldEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.BlockOutline; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.NoRender; -import me.retucio.camtweaks.util.Colors; -import net.minecraft.client.MinecraftClient; +import me.retucio.camtweaks.module.modules.render.BlockOutline; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.render.NoRender; import net.minecraft.client.render.*; import net.minecraft.client.render.state.WorldRenderState; import net.minecraft.client.util.ObjectAllocator; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.ColorHelper; -import net.minecraft.util.math.Direction; import net.minecraft.util.math.RotationAxis; -import net.minecraft.util.math.Vec3d; import net.minecraft.util.profiler.Profiler; import org.joml.Matrix4f; import org.joml.Vector4f; @@ -29,15 +25,13 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import java.awt.*; - import static me.retucio.camtweaks.CameraTweaks.EVENT_BUS; import static me.retucio.camtweaks.CameraTweaks.mc; @Mixin(WorldRenderer.class) public abstract class WorldRendererMixin { - @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;method_74752(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V"), index = 2) + @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;updateCamera(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V"), index = 2) private boolean renderSetupTerrainModifyArg(boolean spectator) { return ModuleManager.INSTANCE.getModuleByClass(Freecam.class).isEnabled() || spectator; } @@ -72,10 +66,10 @@ public abstract class WorldRendererMixin { if (!noRender.blindnessEffect.isEnabled() || !noRender.darknessEffect.isEnabled()) cir.setReturnValue(null); } - @Redirect(method = "renderTargetBlockOutline", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ColorHelper;withAlpha(II)I")) - private int modifyBlockOutlineColor(int alpha, int rgb) { + @Redirect(method = "renderTargetBlockOutline", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/ColorHelper;toAlpha(I)I")) + private int modifyBlockOutlineColor(int alpha) { BlockOutline outline = ModuleManager.INSTANCE.getModuleByClass(BlockOutline.class); - if (!outline.isEnabled()) return ColorHelper.withAlpha(alpha, rgb); + if (!outline.isEnabled()) return ColorHelper.toAlpha(alpha); return outline.color.getRGB(); } diff --git a/src/main/java/me/retucio/camtweaks/module/Category.java b/src/main/java/me/retucio/camtweaks/module/Category.java new file mode 100644 index 0000000..0093693 --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/Category.java @@ -0,0 +1,19 @@ +package me.retucio.camtweaks.module; + +public enum Category { + + PLAYER("jugador"), + WORLD("mundo"), + + CAMERA("cámara"), + RENDER("renderizado"), + + NETWORK("red"), + + CLIENT("cliente"), + MISC("misc."); + + private final String name; + Category(String name) { this.name = name; } + @Override public String toString() { return name; } +} diff --git a/src/main/java/me/retucio/camtweaks/module/Module.java b/src/main/java/me/retucio/camtweaks/module/Module.java index dee514d..7be92c1 100644 --- a/src/main/java/me/retucio/camtweaks/module/Module.java +++ b/src/main/java/me/retucio/camtweaks/module/Module.java @@ -23,6 +23,8 @@ public class Module { // atributos private String name; private String description; + private Category category; + private boolean enabled; private boolean saveSettings = true; private boolean searchMatch = true; @@ -36,20 +38,23 @@ public class Module { protected MinecraftClient mc = MinecraftClient.getInstance(); - public Module(String name, String description) { + public Module(String name, String description, Category category) { this.name = name; this.description = description; + this.category = category; addSettings(bind, keyMode, notify); } - public Module(String name, String description, int key) { + public Module(String name, String description, Category category, int key) { this.name = name; this.description = description; + this.category = category; addSettings(bind, keyMode, notify); this.bind.setDefaultKey(key); // puto marcos - if (ConfigManager.getConfig().settings.get(this.getName() + ":" + bind.getName()) == null) + if (ConfigManager.getConfig().settings + .get(this.getName() + ":" + bind.getName()) == null) this.bind.setKey(key); } @@ -115,6 +120,14 @@ public class Module { this.description = description; } + public Category getCategory() { + return category; + } + + public void setCategory(Category category) { + this.category = category; + } + public boolean isEnabled() { return enabled; } diff --git a/src/main/java/me/retucio/camtweaks/module/ModuleManager.java b/src/main/java/me/retucio/camtweaks/module/ModuleManager.java index 795a83d..a4abe41 100644 --- a/src/main/java/me/retucio/camtweaks/module/ModuleManager.java +++ b/src/main/java/me/retucio/camtweaks/module/ModuleManager.java @@ -1,9 +1,15 @@ package me.retucio.camtweaks.module; import me.retucio.camtweaks.CameraTweaks; -import me.retucio.camtweaks.event.EventBus; import me.retucio.camtweaks.event.SubscribeEvent; -import me.retucio.camtweaks.module.modules.*; +import me.retucio.camtweaks.module.modules.camera.*; +import me.retucio.camtweaks.module.modules.client.HUD; +import me.retucio.camtweaks.module.modules.misc.*; +import me.retucio.camtweaks.module.modules.network.*; +import me.retucio.camtweaks.module.modules.player.*; +import me.retucio.camtweaks.module.modules.render.*; +import me.retucio.camtweaks.module.modules.render.CritsPlus; +import me.retucio.camtweaks.module.modules.world.*; import java.lang.reflect.Method; import java.util.ArrayList; @@ -60,6 +66,7 @@ public class ModuleManager { modules.add(new Reconnect()); modules.add(new Rotations()); modules.add(new RPackBypass()); + modules.add(new SafeWalk()); modules.add(new ScreenshotPlus()); modules.add(new ShulkerPeek()); modules.add(new TimeChanger()); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/AntiInvis.java b/src/main/java/me/retucio/camtweaks/module/modules/AntiInvis.java deleted file mode 100644 index e46c211..0000000 --- a/src/main/java/me/retucio/camtweaks/module/modules/AntiInvis.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.retucio.camtweaks.module.modules; - -import me.retucio.camtweaks.module.Module; - -/** continúa en: - * @see me.retucio.camtweaks.mixin.EntityMixin - */ - -public class AntiInvis extends Module { - - public AntiInvis() { - super("anti invis", "te permite ver a los jugadores invisibles"); - } -} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Headhitters.java b/src/main/java/me/retucio/camtweaks/module/modules/Headhitters.java deleted file mode 100644 index a9338ad..0000000 --- a/src/main/java/me/retucio/camtweaks/module/modules/Headhitters.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.retucio.camtweaks.module.modules; - -import me.retucio.camtweaks.module.Module; - -public class Headhitters extends Module { - - public Headhitters() { - super("headhitters", "mantén pulsado el espacio para hacer headhitting sin tener que espamearlo"); - } - - @Override - public void onTick() { - if (mc.player == null) return; - mc.player.jumpingCooldown = 0; - } -} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/NoMiningInterruptions.java b/src/main/java/me/retucio/camtweaks/module/modules/NoMiningInterruptions.java deleted file mode 100644 index de688ff..0000000 --- a/src/main/java/me/retucio/camtweaks/module/modules/NoMiningInterruptions.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.retucio.camtweaks.module.modules; - -import me.retucio.camtweaks.module.Module; -import me.retucio.camtweaks.module.settings.BooleanSetting; -import net.minecraft.entity.Entity; -import net.minecraft.registry.tag.ItemTags; - -public class NoMiningInterruptions extends Module { - - public BooleanSetting withPickaxeOnly = addSetting(new BooleanSetting("solo con pico", "ignorar entidades solamente cuando se sujeta un pico", false)); - - public NoMiningInterruptions() { - super("minar sin interrupción", "te permite minar bloques a través de entidades"); - } - - public boolean shouldIgnoreEntity(Entity entity) { - if (entity == null || !this.isEnabled()) return false; - if (withPickaxeOnly.isEnabled()) - return (mc.player.getMainHandStack().isIn(ItemTags.PICKAXES) || mc.player.getOffHandStack().isIn(ItemTags.PICKAXES)); - return true; - } - - -} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/PortalGUI.java b/src/main/java/me/retucio/camtweaks/module/modules/PortalGUI.java deleted file mode 100644 index 7cc0344..0000000 --- a/src/main/java/me/retucio/camtweaks/module/modules/PortalGUI.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.retucio.camtweaks.module.modules; - -import me.retucio.camtweaks.module.Module; - -/** continúa en: - * @see me.retucio.camtweaks.mixin.ClientPlayerEntityMixin - */ - -public class PortalGUI extends Module { - - public PortalGUI() { - super("interfaz en portales", "te permite abrir interfaces dentro de portales, como el chat o el inventario"); - } -} \ No newline at end of file diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Freecam.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/Freecam.java similarity index 97% rename from src/main/java/me/retucio/camtweaks/module/modules/Freecam.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/Freecam.java index d6f397f..988f72f 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Freecam.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/Freecam.java @@ -1,8 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; import me.retucio.camtweaks.event.Stage; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.*; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.KeySetting; @@ -69,7 +70,11 @@ public class Freecam extends Module { private float yaw, pitch; public Freecam() { - super("cámara libre", "permite a la cámara moverse independientemente del jugador. útil para explorar alrededores", GLFW.GLFW_KEY_V); + super("cámara libre", + "permite a la cámara moverse independientemente del jugador. útil para explorar alrededores", + Category.CAMERA, + GLFW.GLFW_KEY_V); + speedSetting.onUpdate(newSpeed -> speed = newSpeed); } diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Freelook.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/Freelook.java similarity index 92% rename from src/main/java/me/retucio/camtweaks/module/modules/Freelook.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/Freelook.java index 7c35fa4..48ffb52 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Freelook.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/Freelook.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -29,7 +30,10 @@ public class Freelook extends Module { private Perspective prevPerspective; public Freelook() { - super("perspectiva libre", "te permite mover la cámara de la perspectiva sin mover la del jugador, o vice versa", GLFW.GLFW_KEY_B); + super("perspectiva libre", + "te permite mover la cámara de la perspectiva sin mover la del jugador, o vice versa", + Category.CAMERA, + GLFW.GLFW_KEY_B); keyMode.setDefaultValue(KeyModes.HOLD); keyMode.setValue(KeyModes.HOLD); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Fullbright.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/Fullbright.java similarity index 90% rename from src/main/java/me/retucio/camtweaks/module/modules/Fullbright.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/Fullbright.java index ee18c74..142b3c6 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Fullbright.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/Fullbright.java @@ -1,10 +1,10 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; import me.retucio.camtweaks.mixin.accessor.StatusEffectInstanceAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.ColorSetting; import me.retucio.camtweaks.module.settings.EnumSetting; -import me.retucio.camtweaks.module.settings.NumberSetting; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; import net.minecraft.registry.Registries; @@ -23,7 +23,10 @@ public class Fullbright extends Module { public ColorSetting color = addSetting(new ColorSetting("filtro", "filtro de color", new Color(255, 255, 255, 255), false)); public Fullbright() { - super("brilli brilli", "deshabilita la oscuridad (y aplica colores a los shaders)", GLFW.GLFW_KEY_K); + super("brilli brilli", + "deshabilita la oscuridad (y aplica colores a los shaders)", + Category.CAMERA, + GLFW.GLFW_KEY_K); mode.onUpdate(mode -> { if (mode != Modes.POTION) disableNightVision(); }); mode.onUpdate(mode -> { boolean v = mode.equals(Modes.GAMMA); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/PerspectivePlus.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/PerspectivePlus.java similarity index 89% rename from src/main/java/me/retucio/camtweaks/module/modules/PerspectivePlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/PerspectivePlus.java index 59a2a8c..4d7005c 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/PerspectivePlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/PerspectivePlus.java @@ -1,8 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.MouseScrollEvent; import me.retucio.camtweaks.event.events.PerspectiveChangeEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.*; import me.retucio.camtweaks.util.KeyUtil; @@ -28,7 +29,9 @@ public class PerspectivePlus extends Module { public KeySetting scrollKey = addSetting(new KeySetting("tecla del scroll", "qué tecla mantener para usar la rueda del ratón", GLFW.GLFW_KEY_LEFT_ALT)); public PerspectivePlus() { - super("perspectiva plus", "añade cositas chulas al cambio de perspectiva"); + super("perspectiva plus", + "añade cositas chulas al cambio de perspectiva", + Category.CAMERA); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Rotations.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/Rotations.java similarity index 88% rename from src/main/java/me/retucio/camtweaks/module/modules/Rotations.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/Rotations.java index ca4c50e..a5de9c4 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Rotations.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/Rotations.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.ChangeRotationEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -16,7 +17,9 @@ public class Rotations extends Module { public BooleanSetting serverSide = addSetting(new BooleanSetting("serverside", "espamea paquetes de rotación al servidor", false)); public Rotations() { - super("rotaciones", "te permite forzar una rotación específica"); + super("rotaciones", + "te permite forzar una rotación específica", + Category.CAMERA); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Zoom.java b/src/main/java/me/retucio/camtweaks/module/modules/camera/Zoom.java similarity index 94% rename from src/main/java/me/retucio/camtweaks/module/modules/Zoom.java rename to src/main/java/me/retucio/camtweaks/module/modules/camera/Zoom.java index ebeed93..680ed9d 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Zoom.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/camera/Zoom.java @@ -1,8 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.camera; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.GetFOVEvent; import me.retucio.camtweaks.event.events.MouseScrollEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.KeySetting; @@ -36,7 +37,10 @@ public class Zoom extends Module { private double value; public Zoom() { - super("zoom", "lupa", GLFW.GLFW_KEY_F); + super("zoom", + "lupa", + Category.CAMERA, + GLFW.GLFW_KEY_F); keyMode.setDefaultValue(KeyModes.HOLD); keyMode.setValue(KeyModes.HOLD); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/GUI.java b/src/main/java/me/retucio/camtweaks/module/modules/client/GUI.java similarity index 92% rename from src/main/java/me/retucio/camtweaks/module/modules/GUI.java rename to src/main/java/me/retucio/camtweaks/module/modules/client/GUI.java index ed693b1..53ae1d6 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/GUI.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/client/GUI.java @@ -1,4 +1,4 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.client; import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.command.CommandManager; @@ -6,8 +6,10 @@ import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.TickEvent; import me.retucio.camtweaks.event.events.camtweaks.LoadClickGUIEvent; import me.retucio.camtweaks.event.events.camtweaks.LoadCommandManagerEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.ModuleManager; +import me.retucio.camtweaks.module.modules.misc.ChatPlus; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -42,7 +44,10 @@ public class GUI extends Module { public BooleanSetting multipleKeybinds = addSetting(new BooleanSetting("teclas multimódulo", "permitir asignar la misma tecla a más de un módulo", false)); public GUI() { - super("interfaz", "ajustes de la interfaz, y otros misceláneos", GLFW.GLFW_KEY_RIGHT_SHIFT); + super("interfaz", + "ajustes de la interfaz, y otros misceláneos", + Category.CLIENT, + GLFW.GLFW_KEY_RIGHT_SHIFT); CameraTweaks.EVENT_BUS.register(this); keyMode.setVisible(false); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/HUD.java b/src/main/java/me/retucio/camtweaks/module/modules/client/HUD.java similarity index 89% rename from src/main/java/me/retucio/camtweaks/module/modules/HUD.java rename to src/main/java/me/retucio/camtweaks/module/modules/client/HUD.java index c4b246e..b844e27 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/HUD.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/client/HUD.java @@ -1,8 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.client; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.*; -import me.retucio.camtweaks.ui.hud.CoordsElement; import me.retucio.camtweaks.ui.hud.HudElement; import me.retucio.camtweaks.ui.hud.HudRenderer; import me.retucio.camtweaks.ui.hud.HudEditorScreen; @@ -34,7 +34,11 @@ public class HUD extends Module { public EnumSetting coordsMode = addSetting(new EnumSetting<>("modo de coordenadas", "qué coordenadas mostrar", CoordsMode.class, CoordsMode.OVERWORLD)); public HUD() { - super("HUD", "superposición de la pantalla con info. adicional"); + super("HUD", + "superposición de la pantalla con info. adicional", + Category.CLIENT, + GLFW.GLFW_KEY_F12 + ); } public enum TimeFormat { diff --git a/src/main/java/me/retucio/camtweaks/module/modules/misc/AntiInvis.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/AntiInvis.java new file mode 100644 index 0000000..a7d1cac --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/AntiInvis.java @@ -0,0 +1,17 @@ +package me.retucio.camtweaks.module.modules.misc; + +import me.retucio.camtweaks.module.Category; +import me.retucio.camtweaks.module.Module; + +/** continúa en: + * @see me.retucio.camtweaks.mixin.EntityMixin + */ + +public class AntiInvis extends Module { + + public AntiInvis() { + super("anti invis", + "te permite ver a los jugadores invisibles", + Category.MISC); + } +} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/AnvilFont.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/AnvilFont.java similarity index 95% rename from src/main/java/me/retucio/camtweaks/module/modules/AnvilFont.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/AnvilFont.java index c82051a..d3d7002 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/AnvilFont.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/AnvilFont.java @@ -1,12 +1,13 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import me.retucio.camtweaks.mixin.accessor.AnvilScreenAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.EnumSetting; import net.minecraft.client.gui.screen.ingame.AnvilScreen; import net.minecraft.client.gui.widget.TextFieldWidget; -import me.retucio.camtweaks.module.modules.AnvilFont.CustomFont.CharMap; +import me.retucio.camtweaks.module.modules.misc.AnvilFont.CustomFont.CharMap; import java.util.Arrays; import java.util.HashMap; @@ -66,7 +67,9 @@ public class AnvilFont extends Module { ); public AnvilFont() { - super("yunques con pluma", "te permite tipografías distintas al renombrar items en un yunque"); + super("yunques con pluma", + "te permite tipografías distintas al renombrar items en un yunque", + Category.MISC); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/BossbarStack.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/BossbarStack.java similarity index 90% rename from src/main/java/me/retucio/camtweaks/module/modules/BossbarStack.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/BossbarStack.java index 799e162..dfecf6f 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/BossbarStack.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/BossbarStack.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import me.retucio.camtweaks.event.events.RenderBossbarEvent; import me.retucio.camtweaks.event.SubscribeEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -22,7 +23,9 @@ public class BossbarStack extends Module { private final Map bossBarMap = new WeakHashMap<>(); public BossbarStack() { - super("apilar bossbars", "apila bossbars para reducir el espacio que ocupan en pantalla"); + super("apilar bossbars", + "apila bossbars para reducir el espacio que ocupan en pantalla", + Category.MISC); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/ChatPlus.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/ChatPlus.java similarity index 98% rename from src/main/java/me/retucio/camtweaks/module/modules/ChatPlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/ChatPlus.java index 9a957cb..904483b 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/ChatPlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/ChatPlus.java @@ -1,4 +1,4 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import com.mojang.authlib.GameProfile; import it.unimi.dsi.fastutil.ints.IntArrayList; @@ -9,6 +9,7 @@ import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.ClientClickEvent; import me.retucio.camtweaks.event.events.ReceiveMessageEvent; import me.retucio.camtweaks.event.events.SendMessageEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -55,7 +56,9 @@ public class ChatPlus extends Module { 0, 0, 1000, 1)); public ChatPlus() { - super("chat plus", "mejoras para el chat"); + super("chat plus", + "mejoras para el chat", + Category.MISC); updateDateFormat(); updateClientName(); timestamps.onUpdate(v -> timestampSecs.setVisible(v)); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/FakePlayer.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/FakePlayer.java similarity index 87% rename from src/main/java/me/retucio/camtweaks/module/modules/FakePlayer.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/FakePlayer.java index 82cee19..2ff2d38 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/FakePlayer.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/FakePlayer.java @@ -1,6 +1,7 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import com.mojang.authlib.GameProfile; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.StringSetting; import net.minecraft.client.network.OtherClientPlayerEntity; @@ -16,7 +17,9 @@ public class FakePlayer extends Module { private OtherClientPlayerEntity player = null; public FakePlayer() { - super("jugador falso", "invoca una entidad de jugador falsa por motivos de testeo"); + super("jugador falso", + "invoca una entidad de jugador falsa por motivos de testeo", + Category.MISC); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/ScreenshotPlus.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/ScreenshotPlus.java similarity index 97% rename from src/main/java/me/retucio/camtweaks/module/modules/ScreenshotPlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/ScreenshotPlus.java index 4bbad22..710e2bb 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/ScreenshotPlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/ScreenshotPlus.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import me.retucio.camtweaks.command.CommandManager; import me.retucio.camtweaks.event.events.ClientClickEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.EnumSetting; @@ -41,7 +42,9 @@ public class ScreenshotPlus extends Module { private File screenshotFile; public ScreenshotPlus() { - super("capturas de pantalla", "elige qué hacer tras tomar una captura de pantalla"); + super("capturas de pantalla", + "elige qué hacer tras tomar una captura de pantalla", + Category.MISC); } public void sendScreenshotMessage() { diff --git a/src/main/java/me/retucio/camtweaks/module/modules/ShulkerPeek.java b/src/main/java/me/retucio/camtweaks/module/modules/misc/ShulkerPeek.java similarity index 94% rename from src/main/java/me/retucio/camtweaks/module/modules/ShulkerPeek.java rename to src/main/java/me/retucio/camtweaks/module/modules/misc/ShulkerPeek.java index 419bf21..654cdb3 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/ShulkerPeek.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/misc/ShulkerPeek.java @@ -1,8 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.misc; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.KeyEvent; import me.retucio.camtweaks.mixin.accessor.HandledScreenAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.KeySetting; @@ -11,9 +12,7 @@ import me.retucio.camtweaks.util.ChatUtil; import me.retucio.camtweaks.util.Colors; import me.retucio.camtweaks.util.InventoryUtil; -import me.retucio.camtweaks.util.MiscUtil; import net.minecraft.block.ShulkerBoxBlock; -import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.ContainerComponent; @@ -21,7 +20,6 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.screen.slot.Slot; import org.lwjgl.glfw.GLFW; @@ -37,7 +35,9 @@ public class ShulkerPeek extends Module { public static final HashMap SHULKER_COLORS = new HashMap<>(); public ShulkerPeek() { - super("prev. de shulkers", "te permite previsualizar el contenido de shulkers desde el inventario"); + super("prev. de shulkers", + "te permite previsualizar el contenido de shulkers desde el inventario", + Category.MISC); // colores y tal (https://github.com/kgriff0n/shulker-preview) SHULKER_COLORS.put(Items.SHULKER_BOX, Colors.LAVENDER); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/BungeecordSpoofer.java b/src/main/java/me/retucio/camtweaks/module/modules/network/BungeecordSpoofer.java similarity index 69% rename from src/main/java/me/retucio/camtweaks/module/modules/BungeecordSpoofer.java rename to src/main/java/me/retucio/camtweaks/module/modules/network/BungeecordSpoofer.java index 70399b7..f383b47 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/BungeecordSpoofer.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/network/BungeecordSpoofer.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.network; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.StringSetting; import me.retucio.camtweaks.util.ChatUtil; @@ -9,7 +10,9 @@ public class BungeecordSpoofer extends Module { public StringSetting address = addSetting(new StringSetting("dirección", "la dirección IP que será enviada al server", "127.0.0.1", 15)); public BungeecordSpoofer() { - super("spoofer de bungeecord", "te permite conectarte a los servidores backend de un server bungeecord mal configurado"); + super("spoofer de bungeecord", + "te permite conectarte a los servidores backend de un server bungeecord mal configurado", + Category.NETWORK); address.onUpdate(text -> { if (!text.matches("^[0-9a-f\\\\.:]{0,45}$")) { diff --git a/src/main/java/me/retucio/camtweaks/module/modules/LogoutSpots.java b/src/main/java/me/retucio/camtweaks/module/modules/network/LogoutSpots.java similarity index 96% rename from src/main/java/me/retucio/camtweaks/module/modules/LogoutSpots.java rename to src/main/java/me/retucio/camtweaks/module/modules/network/LogoutSpots.java index f89ee8d..7ac1ef3 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/LogoutSpots.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/network/LogoutSpots.java @@ -1,14 +1,14 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.network; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.AddEntityEvent; import me.retucio.camtweaks.event.events.RenderWorldEvent; -import me.retucio.camtweaks.event.events.TickEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.ModuleManager; +import me.retucio.camtweaks.module.modules.misc.FakePlayer; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; -import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.NumberSetting; import me.retucio.camtweaks.util.MiscUtil; import me.retucio.camtweaks.util.render.RenderUtil; @@ -21,10 +21,6 @@ import net.minecraft.util.math.Box; import net.minecraft.world.dimension.DimensionType; import java.awt.*; -import java.time.Instant; -import java.time.LocalTime; -import java.time.ZoneOffset; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.UUID; @@ -52,7 +48,9 @@ public class LogoutSpots extends Module { private DimensionType lastDimension; public LogoutSpots() { - super("puntos de desconexión", "te muestra los puntos donde otros jugadores se desconectan"); + super("puntos de desconexión", + "te muestra los puntos donde otros jugadores se desconectan", + Category.NETWORK); outlines.onUpdate(v -> { outlineColor.setVisible(v); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/PacketDelay.java b/src/main/java/me/retucio/camtweaks/module/modules/network/PacketDelay.java similarity index 94% rename from src/main/java/me/retucio/camtweaks/module/modules/PacketDelay.java rename to src/main/java/me/retucio/camtweaks/module/modules/network/PacketDelay.java index aae2408..0c40f29 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/PacketDelay.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/network/PacketDelay.java @@ -1,9 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.network; import me.retucio.camtweaks.event.JoinWorldEvent; import me.retucio.camtweaks.event.SubscribeEvent; -import me.retucio.camtweaks.event.events.DisconnectEvent; import me.retucio.camtweaks.event.events.PacketEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -12,9 +12,7 @@ import me.retucio.camtweaks.util.NetworkUtil; import net.minecraft.network.ClientConnection; import net.minecraft.network.listener.PacketListener; -import net.minecraft.network.message.SentMessage; import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket; import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket; import net.minecraft.network.packet.s2c.common.KeepAliveS2CPacket; @@ -34,7 +32,9 @@ public class PacketDelay extends Module { private long lastProcessTime = 0; public PacketDelay() { - super("delay de paquetes", "aplica un delay a los paquetes"); + super("delay de paquetes", + "aplica un delay a los paquetes", + Category.NETWORK); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/RPackBypass.java b/src/main/java/me/retucio/camtweaks/module/modules/network/RPackBypass.java similarity index 76% rename from src/main/java/me/retucio/camtweaks/module/modules/RPackBypass.java rename to src/main/java/me/retucio/camtweaks/module/modules/network/RPackBypass.java index e3e0f19..4b06fbb 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/RPackBypass.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/network/RPackBypass.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.network; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import net.minecraft.client.network.ServerInfo; import net.minecraft.text.Text; @@ -20,7 +21,9 @@ public class RPackBypass extends Module { public Text BYPASS_TEXT = Text.literal("nuh uh"); public RPackBypass() { - super("bypassear packs", "te permite omitir packs de recursos forzados por servers"); + super("bypassear packs", + "te permite omitir packs de recursos forzados por servers", + Category.NETWORK); } public ServerInfo.ResourcePackPolicy getPolicy() { diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Reconnect.java b/src/main/java/me/retucio/camtweaks/module/modules/network/Reconnect.java similarity index 77% rename from src/main/java/me/retucio/camtweaks/module/modules/Reconnect.java rename to src/main/java/me/retucio/camtweaks/module/modules/network/Reconnect.java index 9125def..7c7f168 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Reconnect.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/network/Reconnect.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.network; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.DisconnectEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import net.minecraft.client.gui.screen.multiplayer.ConnectScreen; import net.minecraft.client.network.ServerAddress; @@ -12,7 +13,9 @@ public class Reconnect extends Module { private ServerInfo lastServer = null; public Reconnect() { - super("reconectar", "añade un botón para reconectarse a un servidor tras ser desconectado"); + super("reconectar", + "añade un botón para reconectarse a un servidor tras ser desconectado", + Category.NETWORK); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/AttributeSwapper.java b/src/main/java/me/retucio/camtweaks/module/modules/player/AttributeSwapper.java similarity index 81% rename from src/main/java/me/retucio/camtweaks/module/modules/AttributeSwapper.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/AttributeSwapper.java index 28ab3e6..4d2f51d 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/AttributeSwapper.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/AttributeSwapper.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.AttackEntityEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -16,7 +17,9 @@ public class AttributeSwapper extends Module { private int prevSlot = -1; public AttributeSwapper() { - super("attribute-swapper", "utiliza el \"attribute swapping\" entre dos herramientas para negar daño de durabilidad o aplicar encantamientos adicionales a estas"); + super("attribute-swapper", + "utiliza el \"attribute swapping\" entre dos herramientas para negar daño de durabilidad o aplicar encantamientos adicionales a estas", + Category.PLAYER); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/FastUse.java b/src/main/java/me/retucio/camtweaks/module/modules/player/FastUse.java similarity index 84% rename from src/main/java/me/retucio/camtweaks/module/modules/FastUse.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/FastUse.java index d8cef34..a44bb1e 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/FastUse.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/FastUse.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -15,7 +16,9 @@ public class FastUse extends Module { public NumberSetting blockCooldown = addSetting(new NumberSetting("cooldown de bloques", "cooldown para colocar bloques en ticks", 0, 0, 4, 1)); public FastUse() { - super("precoz", "hace cosas como usar items o colocar bloques más rápido"); + super("precoz", + "hace cosas como usar items o colocar bloques más rápido", + Category.PLAYER); items.onUpdate(v -> itemCooldown.setVisible(v)); blocks.onUpdate(v -> blockCooldown.setVisible(v)); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/HandView.java b/src/main/java/me/retucio/camtweaks/module/modules/player/HandView.java similarity index 96% rename from src/main/java/me/retucio/camtweaks/module/modules/HandView.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/HandView.java index 0b00eb5..2b97ae0 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/HandView.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/HandView.java @@ -1,8 +1,9 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.RenderHeldItemEvent; import me.retucio.camtweaks.event.events.RenderArmEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -89,7 +90,9 @@ public class HandView extends Module { 0, -180, 180, 1)); public HandView() { - super("manos", "modifica la manera en la que se renderizan las manos"); + super("manos", + "modifica la manera en la que se renderizan las manos", + Category.PLAYER); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/player/Headhitters.java b/src/main/java/me/retucio/camtweaks/module/modules/player/Headhitters.java new file mode 100644 index 0000000..f509f3d --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/Headhitters.java @@ -0,0 +1,19 @@ +package me.retucio.camtweaks.module.modules.player; + +import me.retucio.camtweaks.module.Category; +import me.retucio.camtweaks.module.Module; + +public class Headhitters extends Module { + + public Headhitters() { + super("headhitters", + "mantén pulsado el espacio para hacer headhitting sin tener que espamearlo", + Category.PLAYER); + } + + @Override + public void onTick() { + if (mc.player == null) return; + mc.player.jumpingCooldown = 0; + } +} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/InventoryPlus.java b/src/main/java/me/retucio/camtweaks/module/modules/player/InventoryPlus.java similarity index 92% rename from src/main/java/me/retucio/camtweaks/module/modules/InventoryPlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/InventoryPlus.java index 6678e28..fc351af 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/InventoryPlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/InventoryPlus.java @@ -1,10 +1,11 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; import me.retucio.camtweaks.event.Event; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.KeyEvent; import me.retucio.camtweaks.event.events.MouseClickEvent; import me.retucio.camtweaks.mixin.accessor.HandledScreenAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.KeySetting; import me.retucio.camtweaks.util.InventoryUtil; @@ -20,7 +21,9 @@ public class InventoryPlus extends Module { public KeySetting row3key = addSetting(new KeySetting("fila 3", "tecla para mover items a la tercera fila", GLFW.GLFW_KEY_D)); public InventoryPlus() { - super("inventario plus", "mueve ítems del inventario usando solo el teclado"); + super("inventario plus", + "mueve ítems del inventario usando solo el teclado", + Category.PLAYER); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Offhand.java b/src/main/java/me/retucio/camtweaks/module/modules/player/Offhand.java similarity index 93% rename from src/main/java/me/retucio/camtweaks/module/modules/Offhand.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/Offhand.java index f98cf08..b6441a5 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Offhand.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/Offhand.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -25,7 +26,9 @@ public class Offhand extends Module { private boolean holdingItem; public Offhand() { - super("mano secundaria", "automáticamente equipa un ítem en la mano secundaria"); + super("mano secundaria", + "automáticamente equipa un ítem en la mano secundaria", + Category.PLAYER); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/player/PortalGUI.java b/src/main/java/me/retucio/camtweaks/module/modules/player/PortalGUI.java new file mode 100644 index 0000000..8da7ffd --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/PortalGUI.java @@ -0,0 +1,17 @@ +package me.retucio.camtweaks.module.modules.player; + +import me.retucio.camtweaks.module.Category; +import me.retucio.camtweaks.module.Module; + +/** continúa en: + * @see me.retucio.camtweaks.mixin.ClientPlayerEntityMixin + */ + +public class PortalGUI extends Module { + + public PortalGUI() { + super("interfaz en portales", + "te permite abrir interfaces dentro de portales, como el chat o el inventario", + Category.PLAYER); + } +} \ No newline at end of file diff --git a/src/main/java/me/retucio/camtweaks/module/modules/player/SafeWalk.java b/src/main/java/me/retucio/camtweaks/module/modules/player/SafeWalk.java new file mode 100644 index 0000000..1461e63 --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/SafeWalk.java @@ -0,0 +1,55 @@ +package me.retucio.camtweaks.module.modules.player; + +import me.retucio.camtweaks.event.SubscribeEvent; +import me.retucio.camtweaks.event.events.ClipAtLedgeEvent; +import me.retucio.camtweaks.module.Category; +import me.retucio.camtweaks.module.Module; +import me.retucio.camtweaks.module.settings.NumberSetting; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.Heightmap; +import net.minecraft.world.RaycastContext; + +public class SafeWalk extends Module { + + public NumberSetting fallDistance = addSetting(new NumberSetting("distancia de caída", "distancia de caída máxima permitida", 1, 0, 10, 0.1)); + + public SafeWalk() { + super("muletas", + "te ayuda a no caerte de bloques, sin agacharte", + Category.PLAYER); + } + + @SubscribeEvent + public void onClipAtLedge(ClipAtLedgeEvent event) { + if (mc.player == null || mc.world == null) return; + + if (fallDistance.getValue() > 1) { + int surface = mc.world.getWorldChunk( + mc.player.getBlockPos()) + .getHeightmap(Heightmap.Type.MOTION_BLOCKING) + .get(mc.player.getBlockX() & 15, mc.player.getBlockZ() & 15); + + if (mc.player.getBlockY() >= surface) + if (mc.player.getBlockY() - surface < fallDistance.getValue()) return; + + else { + BlockHitResult raycastResult = mc.world.raycast(new RaycastContext( + mc.player.getEntityPos(), + new Vec3d(mc.player.getX(), + mc.world.getBottomY(), + mc.player.getZ()), + RaycastContext.ShapeType.COLLIDER, + RaycastContext.FluidHandling.WATER, + mc.player)); + + if (raycastResult.getType() != HitResult.Type.MISS) + if ((int) (mc.player.getY() - raycastResult.getBlockPos().up().getY()) < fallDistance.getValue()) return; + } + } + + if (!mc.player.isSneaking()) + event.setClipping(true); + } +} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/UIMove.java b/src/main/java/me/retucio/camtweaks/module/modules/player/UIMove.java similarity index 91% rename from src/main/java/me/retucio/camtweaks/module/modules/UIMove.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/UIMove.java index 1fe6f2a..fca1c60 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/UIMove.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/UIMove.java @@ -1,6 +1,7 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; import me.retucio.camtweaks.mixin.accessor.KeyBindingAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.ListSetting; import me.retucio.camtweaks.ui.screen.ClickGUI; @@ -29,7 +30,10 @@ public class UIMove extends Module { "camtweaks_clickgui", GenericContainerScreenHandler::createGeneric9x3); // 9x3 porque no importa (creo) public UIMove() { - super("moverse en interfaz", "te permite seguir usando las teclas de movimiento aún estando en ciertas interfaces"); + super("moverse en interfaz", + "te permite seguir usando las teclas de movimiento aún estando en ciertas interfaces", + Category.PLAYER); + screens.addOption(inventoryHandlerType, true, "inventario"); screens.addOption(clickGuiHandlerType, true, "interfaz del mod"); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/WarnLowDurability.java b/src/main/java/me/retucio/camtweaks/module/modules/player/WarnLowDurability.java similarity index 88% rename from src/main/java/me/retucio/camtweaks/module/modules/WarnLowDurability.java rename to src/main/java/me/retucio/camtweaks/module/modules/player/WarnLowDurability.java index fe0af81..604c066 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/WarnLowDurability.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/player/WarnLowDurability.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.player; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.NumberSetting; @@ -32,9 +33,12 @@ public class WarnLowDurability extends Module { public NumberSetting pitch = addSetting(new NumberSetting("frecuencia", "altura del sonido", 70, 0, 125, 1)); private final List warned = new ArrayList<>(); + private float prevPercentage = -1; public WarnLowDurability() { - super("aviso de baja dur.", "te avisa cuando la herramienta que sostengas sobrepase un límite de durabilidad"); + super("aviso de baja dur.", + "te avisa cuando la herramienta que sostengas sobrepase un límite de durabilidad", + Category.PLAYER); playSound.onUpdate(v -> { sound.setVisible(v); @@ -51,7 +55,7 @@ public class WarnLowDurability extends Module { float percentage = (1 - (float) stack.getDamage() / stack.getMaxDamage()) * 100; - if (percentage <= limitPercentage.getValue()) { + if (percentage <= limitPercentage.getValue() && percentage < prevPercentage) { if (playSound.isEnabled()) mc.world.playSound(mc.player, mc.player.getBlockPos(), sound.getValue(), @@ -71,6 +75,8 @@ public class WarnLowDurability extends Module { warned.add(stack); } + + prevPercentage = percentage; } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/BlockESP.java b/src/main/java/me/retucio/camtweaks/module/modules/render/BlockESP.java similarity index 93% rename from src/main/java/me/retucio/camtweaks/module/modules/BlockESP.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/BlockESP.java index 5ab937a..3b15f32 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/BlockESP.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/BlockESP.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.RenderWorldEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; @@ -36,7 +37,9 @@ public class BlockESP extends Module { public BlockESP() { - super("resaltado de bloques", "te muestra la posición de cierto tipo de bloque renderizando una caja con su forma"); + super("resaltado de bloques", + "te muestra la posición de cierto tipo de bloque renderizando una caja con su forma", + Category.RENDER); outlines.onUpdate(v -> { outlineColor.setVisible(v); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/BlockOutline.java b/src/main/java/me/retucio/camtweaks/module/modules/render/BlockOutline.java similarity index 65% rename from src/main/java/me/retucio/camtweaks/module/modules/BlockOutline.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/BlockOutline.java index 9f42e55..49accb9 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/BlockOutline.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/BlockOutline.java @@ -1,9 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; -import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; -import me.retucio.camtweaks.module.settings.NumberSetting; import java.awt.*; @@ -17,6 +16,8 @@ public class BlockOutline extends Module { new Color(0, 0, 0, 102), true)); public BlockOutline() { - super("contorno", "customiza el contorno de los bloques"); + super("contorno", + "customiza el contorno de los bloques", + Category.RENDER); } } diff --git a/src/main/java/me/retucio/camtweaks/module/modules/BreakingProgress.java b/src/main/java/me/retucio/camtweaks/module/modules/render/BreakingProgress.java similarity index 93% rename from src/main/java/me/retucio/camtweaks/module/modules/BreakingProgress.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/BreakingProgress.java index 628a5b7..a218ea8 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/BreakingProgress.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/BreakingProgress.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.RenderWorldEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; @@ -30,7 +31,9 @@ public class BreakingProgress extends Module { new Color(0, 255, 0, 60), false)); public BreakingProgress() { - super("progreso de minado", "te muestra el progreso de minado de un bloque de manera más visible"); + super("progreso de minado", + "te muestra el progreso de minado de un bloque de manera más visible", + Category.RENDER); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/CritsPlus.java b/src/main/java/me/retucio/camtweaks/module/modules/render/CritsPlus.java similarity index 85% rename from src/main/java/me/retucio/camtweaks/module/modules/CritsPlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/CritsPlus.java index 491b78e..4228f9d 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/CritsPlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/CritsPlus.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; @@ -24,6 +25,8 @@ public class CritsPlus extends Module { public BooleanSetting collide = addSetting(new BooleanSetting("colisionar", "colisionar con bloques", false)); public CritsPlus() { - super("críticos", "cambia la apariencia de los críticos al gusto"); + super("críticos", + "cambia la apariencia de los críticos al gusto", + Category.RENDER); } } diff --git a/src/main/java/me/retucio/camtweaks/module/modules/DamageOverlay.java b/src/main/java/me/retucio/camtweaks/module/modules/render/DamageOverlay.java similarity index 75% rename from src/main/java/me/retucio/camtweaks/module/modules/DamageOverlay.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/DamageOverlay.java index 7c9d4a3..cc658d0 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/DamageOverlay.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/DamageOverlay.java @@ -1,10 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.textures.GpuTextureView; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.ColorSetting; -import me.retucio.camtweaks.module.settings.NumberSetting; import net.minecraft.client.texture.NativeImage; import net.minecraft.client.texture.NativeImageBackedTexture; @@ -21,7 +19,10 @@ public class DamageOverlay extends Module { private NativeImageBackedTexture texture = null; public DamageOverlay() { - super("superposición de daño", "modifica el color en el que se renderiza la superposición de recibir daño"); + super("superposición de daño", + "modifica el color en el que se renderiza la superposición de recibir daño", + Category.RENDER); + colorSetting.onUpdate(v -> reloadOverlayIfReady()); } @@ -69,12 +70,12 @@ public class DamageOverlay extends Module { // resubir las texturas private void uploadTexture() { - GpuTextureView overlayTex = RenderSystem.getShaderTexture(33985); - RenderSystem.setShaderTexture(33985, overlayTex); - - texture.upload(); - - GpuTextureView mainTex = RenderSystem.getShaderTexture(33984); - RenderSystem.setShaderTexture(33984, mainTex); +// GpuTextureView overlayTex = RenderSystem.getDevice().getShaderTexture(33985); +// RenderSystem.setShaderTexture(33985, overlayTex); +// +// texture.upload(); +// +// GpuTextureView mainTex = RenderSystem.getShaderTexture(33984); +// RenderSystem.setShaderTexture(33984, mainTex); } } diff --git a/src/main/java/me/retucio/camtweaks/module/modules/GlintPlus.java b/src/main/java/me/retucio/camtweaks/module/modules/render/GlintPlus.java similarity index 88% rename from src/main/java/me/retucio/camtweaks/module/modules/GlintPlus.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/GlintPlus.java index f7b7ae2..908f566 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/GlintPlus.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/GlintPlus.java @@ -1,14 +1,14 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.util.render.GlintRenderLayer; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.RenderLayers; import net.minecraft.util.DyeColor; -import java.awt.*; - /** continúa en: * @see me.retucio.camtweaks.mixin.BufferStorageMixin * @see me.retucio.camtweaks.mixin.EquipmentRendererMixin @@ -22,24 +22,26 @@ public class GlintPlus extends Module { public EnumSetting glintColor = addSetting(new EnumSetting<>("colores", "color del glint", GlintColors.class, GlintColors.PURPLE)); public GlintPlus() { - super("destello de enchants.", "modifica el color del brillo de los encantamientos"); + super("destello de enchants.", + "modifica el color del brillo de los encantamientos", + Category.RENDER); } public RenderLayer getGlint() { int color = getColor(); - if (!isEnabled() || !items.isEnabled()) return RenderLayer.getGlint(); + if (!isEnabled() || !items.isEnabled()) return RenderLayers.glint(); return GlintRenderLayer.glintColor.get(color); } public RenderLayer getEntityGlint() { int color = getColor(); - if (!isEnabled() || !items.isEnabled()) return RenderLayer.getEntityGlint(); + if (!isEnabled() || !items.isEnabled()) return RenderLayers.entityGlint(); return GlintRenderLayer.entityGlintColor.get(color); } public RenderLayer getArmorEntityGlint() { int color = getColor(); - if (!isEnabled() || !armor.isEnabled()) return RenderLayer.getArmorEntityGlint(); + if (!isEnabled() || !armor.isEnabled()) return RenderLayers.armorEntityGlint(); return GlintRenderLayer.armorEntityGlintColor.get(color); } diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Nametags.java b/src/main/java/me/retucio/camtweaks/module/modules/render/Nametags.java similarity index 96% rename from src/main/java/me/retucio/camtweaks/module/modules/Nametags.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/Nametags.java index 83d860f..fc60d5d 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Nametags.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/Nametags.java @@ -1,14 +1,14 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.ListSetting; import me.retucio.camtweaks.util.Lists; import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LazyEntityReference; import net.minecraft.entity.LivingEntity; @@ -19,13 +19,10 @@ import net.minecraft.item.Item; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.MathHelper; import net.minecraft.world.entity.EntityQueriable; -import net.minecraft.world.entity.UniquelyIdentifiable; import java.io.InputStreamReader; import java.net.HttpURLConnection; -import java.net.URI; import java.net.URL; -import java.util.HashMap; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -62,7 +59,9 @@ public class Nametags extends Module { private static final ExecutorService executor = Executors.newCachedThreadPool(); public Nametags() { - super("nametags", "modifica la manera en la que se renderizan los nametags"); + super("nametags", + "modifica la manera en la que se renderizan los nametags", + Category.RENDER); // entidades activadas por defecto defaultEntities.replace(EntityType.PLAYER, true); diff --git a/src/main/java/me/retucio/camtweaks/module/modules/NoRender.java b/src/main/java/me/retucio/camtweaks/module/modules/render/NoRender.java similarity index 95% rename from src/main/java/me/retucio/camtweaks/module/modules/NoRender.java rename to src/main/java/me/retucio/camtweaks/module/modules/render/NoRender.java index b1d6ab7..3cd89f3 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/NoRender.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/render/NoRender.java @@ -1,10 +1,10 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.render; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.ListSetting; -import me.retucio.camtweaks.module.settings.NumberSetting; import me.retucio.camtweaks.util.Lists; import net.minecraft.particle.ParticleType; import net.minecraft.util.Formatting; @@ -55,7 +55,9 @@ public class NoRender extends Module { public BooleanSetting scrambledText = addSetting(new BooleanSetting("garabato", "engarabatar texto (o como se diga) (§kasí§r)", false)); public NoRender() { - super("no render", "customiza qué se renderiza y qué no"); + super("no render", + "customiza qué se renderiza y qué no", + Category.RENDER); } public enum Colors { diff --git a/src/main/java/me/retucio/camtweaks/module/modules/AutoSign.java b/src/main/java/me/retucio/camtweaks/module/modules/world/AutoSign.java similarity index 87% rename from src/main/java/me/retucio/camtweaks/module/modules/AutoSign.java rename to src/main/java/me/retucio/camtweaks/module/modules/world/AutoSign.java index 13f5eac..88b8bb6 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/AutoSign.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/AutoSign.java @@ -1,9 +1,10 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.world; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.OpenScreenEvent; import me.retucio.camtweaks.event.events.PacketEvent; import me.retucio.camtweaks.mixin.accessor.AbstractSignEditScreenAccessor; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.util.ChatUtil; import net.minecraft.block.entity.SignBlockEntity; @@ -16,7 +17,9 @@ public class AutoSign extends Module { public String[] text = null; public AutoSign() { - super("autocartel", "te permite colocar carteles con el mismo texto sin tener que escribirlo uno por uno"); + super("autocartel", + "te permite colocar carteles con el mismo texto sin tener que escribirlo uno por uno", + Category.WORLD); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/ColoredSigns.java b/src/main/java/me/retucio/camtweaks/module/modules/world/ColoredSigns.java similarity index 75% rename from src/main/java/me/retucio/camtweaks/module/modules/ColoredSigns.java rename to src/main/java/me/retucio/camtweaks/module/modules/world/ColoredSigns.java index ddb22e2..478a278 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/ColoredSigns.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/ColoredSigns.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.world; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.PacketEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.StringSetting; import net.minecraft.network.packet.c2s.play.UpdateSignC2SPacket; @@ -11,7 +12,9 @@ public class ColoredSigns extends Module { public StringSetting symbol = addSetting(new StringSetting("símbolo", "símbolo a reemplazar por \"§\"", "&", 5)); public ColoredSigns() { - super("carteles gays", "te permite usar un símbolo a elegir como § para añadir formato a estos."); + super("carteles gays", + "te permite usar un símbolo a elegir como § para añadir formato a estos.", + Category.WORLD); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/LightOverlay.java b/src/main/java/me/retucio/camtweaks/module/modules/world/LightOverlay.java similarity index 93% rename from src/main/java/me/retucio/camtweaks/module/modules/LightOverlay.java rename to src/main/java/me/retucio/camtweaks/module/modules/world/LightOverlay.java index 653bd9d..e1a4ee8 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/LightOverlay.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/LightOverlay.java @@ -1,7 +1,8 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.world; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.RenderWorldEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ColorSetting; @@ -9,7 +10,6 @@ import me.retucio.camtweaks.module.settings.NumberSetting; import me.retucio.camtweaks.util.render.RenderUtil; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; import net.minecraft.world.LightType; import java.awt.*; @@ -36,7 +36,9 @@ public class LightOverlay extends Module { List blocks = new ArrayList<>(); public LightOverlay() { - super("superposición de luz", "te muestra el nivel de luz en bloques, para prevenir mob spawns"); + super("superposición de luz", + "te muestra el nivel de luz en bloques, para prevenir mob spawns", + Category.WORLD); } @SubscribeEvent diff --git a/src/main/java/me/retucio/camtweaks/module/modules/world/NoMiningInterruptions.java b/src/main/java/me/retucio/camtweaks/module/modules/world/NoMiningInterruptions.java new file mode 100644 index 0000000..0ed466d --- /dev/null +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/NoMiningInterruptions.java @@ -0,0 +1,35 @@ +package me.retucio.camtweaks.module.modules.world; + +import me.retucio.camtweaks.module.Category; +import me.retucio.camtweaks.module.Module; +import me.retucio.camtweaks.module.settings.BooleanSetting; +import me.retucio.camtweaks.module.settings.ListSetting; +import me.retucio.camtweaks.util.Lists; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.registry.tag.ItemTags; + +public class NoMiningInterruptions extends Module { + + public BooleanSetting withPickaxeOnly = addSetting(new BooleanSetting("solo con pico", "ignorar entidades solamente cuando se sujeta un pico", false)); + public ListSetting> entities = addSetting(new ListSetting<>("entidades", "entidades a ignorar", + Lists.entityList, Lists.allTrue(Lists.entityList), Lists.entityNames)); + + public NoMiningInterruptions() { + super("minar sin interrupción", + "te permite minar bloques a través de entidades", + Category.WORLD); + } + + public boolean shouldIgnoreEntity(Entity entity) { + if (entity == null || !this.isEnabled() || mc.player == null) return false; + + if (withPickaxeOnly.isEnabled()) + return (mc.player.getMainHandStack().isIn(ItemTags.PICKAXES) + || mc.player.getOffHandStack().isIn(ItemTags.PICKAXES)); + + return entities.isEnabled(entity.getType()); + } + + +} diff --git a/src/main/java/me/retucio/camtweaks/module/modules/Racist.java b/src/main/java/me/retucio/camtweaks/module/modules/world/Racist.java similarity index 88% rename from src/main/java/me/retucio/camtweaks/module/modules/Racist.java rename to src/main/java/me/retucio/camtweaks/module/modules/world/Racist.java index 8044eca..6c7a279 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/Racist.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/Racist.java @@ -1,5 +1,6 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.world; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.util.EntityUtil; import net.minecraft.entity.Entity; @@ -14,7 +15,9 @@ public class Racist extends Module { private final List lookedEndermen = new ArrayList<>(); public Racist() { - super("racismo", "amego segarro"); + super("racismo", + "amego segarro", + Category.WORLD); } @Override diff --git a/src/main/java/me/retucio/camtweaks/module/modules/TimeChanger.java b/src/main/java/me/retucio/camtweaks/module/modules/world/TimeChanger.java similarity index 75% rename from src/main/java/me/retucio/camtweaks/module/modules/TimeChanger.java rename to src/main/java/me/retucio/camtweaks/module/modules/world/TimeChanger.java index f76c672..370bd7a 100644 --- a/src/main/java/me/retucio/camtweaks/module/modules/TimeChanger.java +++ b/src/main/java/me/retucio/camtweaks/module/modules/world/TimeChanger.java @@ -1,12 +1,12 @@ -package me.retucio.camtweaks.module.modules; +package me.retucio.camtweaks.module.modules.world; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.PacketEvent; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.EnumSetting; import me.retucio.camtweaks.module.settings.NumberSetting; -import me.retucio.camtweaks.util.ChatUtil; import net.minecraft.network.packet.s2c.play.WorldTimeUpdateS2CPacket; // continúa en ClientWorldPropertiesMixin, DimensionTypeMixin, @@ -20,7 +20,10 @@ public class TimeChanger extends Module { public NumberSetting time = addSetting(new NumberSetting("hora", "hora del juego", 0, -20000, 20000, 1)); public TimeChanger() { - super("cielo custom", "te deja cambiar visualmente el progreso del día"); + super("cielo custom", + "te deja cambiar visualmente el progreso del día, entre otras cosas", + Category.WORLD); + renderMoon.onUpdate(v -> moonPhase.setVisible(v)); } @@ -54,32 +57,16 @@ public class TimeChanger extends Module { mc.world.getLevelProperties().setTimeOfDay(time.getLongValue()); } - public int getMoonPhase() { - if (mc.world == null) return -1; - - return switch (moonPhase.getValue()) { - case DEFAULT -> -1; - case FULL_MOON -> 0; - case WANING_GIBBOUS -> 1; - case LAST_QUARTER -> 2; - case WANING_CRESCENT -> 3; - case NEW_MOON -> 4; - case WAXING_CRESCENT -> 5; - case FIRST_QUARTER -> 6; - case WAXING_GIBBOUS -> 7; - }; - } - public enum MoonPhases { - DEFAULT("por defecto"), FULL_MOON("luna llena"), WANING_GIBBOUS("menguante gibosa"), - LAST_QUARTER("cuarto menguante"), + THIRD_QUARTER("cuarto menguante"), WANING_CRESCENT("luna vieja"), NEW_MOON("luna nueva"), WAXING_CRESCENT("creciente"), FIRST_QUARTER("cuarto creciente"), - WAXING_GIBBOUS("creciente gibosa"); + WAXING_GIBBOUS("creciente gibosa"), + DEFAULT("por defecto"); private final String name; MoonPhases(String name) { this.name = name; } diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/HudElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/HudElement.java index 6ae0bce..ae287cd 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/HudElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/HudElement.java @@ -1,6 +1,6 @@ package me.retucio.camtweaks.ui.hud; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.util.Colors; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/HudRenderer.java b/src/main/java/me/retucio/camtweaks/ui/hud/HudRenderer.java index cb1beed..bdfb0fb 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/HudRenderer.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/HudRenderer.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.ui.hud; import me.retucio.camtweaks.config.ConfigManager; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.elements.*; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/CoordsElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/CoordsElement.java index 37cf30e..93bd568 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/CoordsElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/CoordsElement.java @@ -1,9 +1,8 @@ package me.retucio.camtweaks.ui.hud; -import me.retucio.camtweaks.event.events.PacketEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.Freecam; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.camera.Freecam; +import me.retucio.camtweaks.module.modules.client.HUD; import net.minecraft.text.Text; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/CustomTextElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/CustomTextElement.java index 54b901e..d4befb3 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/CustomTextElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/CustomTextElement.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.ui.hud.elements; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.camtweaks.UpdateSettingEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.HudElement; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/FpsElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/FpsElement.java index 931c806..2166e88 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/FpsElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/FpsElement.java @@ -1,6 +1,6 @@ package me.retucio.camtweaks.ui.hud.elements; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.HudElement; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/PingElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/PingElement.java index 6143e6f..3bf1b04 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/PingElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/PingElement.java @@ -1,6 +1,6 @@ package me.retucio.camtweaks.ui.hud.elements; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.HudElement; import net.minecraft.client.network.PlayerListEntry; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/TimeElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/TimeElement.java index a745638..93346ab 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/TimeElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/TimeElement.java @@ -1,6 +1,6 @@ package me.retucio.camtweaks.ui.hud.elements; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.HudElement; import me.retucio.camtweaks.util.MiscUtil; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/ui/hud/elements/TpsElement.java b/src/main/java/me/retucio/camtweaks/ui/hud/elements/TpsElement.java index 55d337b..913afaa 100644 --- a/src/main/java/me/retucio/camtweaks/ui/hud/elements/TpsElement.java +++ b/src/main/java/me/retucio/camtweaks/ui/hud/elements/TpsElement.java @@ -1,6 +1,6 @@ package me.retucio.camtweaks.ui.hud.elements; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import me.retucio.camtweaks.ui.hud.HudElement; import me.retucio.camtweaks.util.NetworkUtil; import net.minecraft.text.Text; diff --git a/src/main/java/me/retucio/camtweaks/ui/screen/ClickGUI.java b/src/main/java/me/retucio/camtweaks/ui/screen/ClickGUI.java index 76bee52..973d7d6 100644 --- a/src/main/java/me/retucio/camtweaks/ui/screen/ClickGUI.java +++ b/src/main/java/me/retucio/camtweaks/ui/screen/ClickGUI.java @@ -23,6 +23,7 @@ import me.retucio.camtweaks.ui.widgets.misc.ScrollBarWidget; import me.retucio.camtweaks.ui.widgets.misc.SearchBarWidget; import me.retucio.camtweaks.util.KeyUtil; +import me.retucio.camtweaks.util.MiscUtil; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; @@ -206,15 +207,20 @@ public class ClickGUI extends Screen { continue; } - String name = module.getName(); - String description = module.getDescription(); + String name = MiscUtil.removeAccentMarks(module.getName()); + String description = MiscUtil.removeAccentMarks(module.getDescription()); + String category = MiscUtil.removeAccentMarks(module.getCategory().toString()); if (!guiSettings.matchCase.isEnabled()) { name = name.toLowerCase(); description = description.toLowerCase(); + category = category.toLowerCase(); } - module.setSearchMatch(name.contains(searchInput) || description.contains(searchInput)); + module.setSearchMatch( + name.contains(searchInput) + || description.contains(searchInput) + || category.contains(searchInput)); } for (SettingsFrame sf : settingsFrames) { diff --git a/src/main/java/me/retucio/camtweaks/ui/screen/PreviewScreen.java b/src/main/java/me/retucio/camtweaks/ui/screen/PreviewScreen.java index bed9ad6..c7a5f86 100644 --- a/src/main/java/me/retucio/camtweaks/ui/screen/PreviewScreen.java +++ b/src/main/java/me/retucio/camtweaks/ui/screen/PreviewScreen.java @@ -1,7 +1,7 @@ package me.retucio.camtweaks.ui.screen; import me.retucio.camtweaks.CameraTweaks; -import me.retucio.camtweaks.module.modules.ShulkerPeek; +import me.retucio.camtweaks.module.modules.misc.ShulkerPeek; import me.retucio.camtweaks.ui.widgets.frames.settings.ClientSettingsFrame; import me.retucio.camtweaks.util.Colors; import net.minecraft.client.gl.RenderPipelines; diff --git a/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ChooseButton.java b/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ChooseButton.java index ff9b399..68d93b6 100644 --- a/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ChooseButton.java +++ b/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ChooseButton.java @@ -1,5 +1,6 @@ package me.retucio.camtweaks.ui.widgets.buttons.settings; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.OptionSetting; @@ -25,7 +26,7 @@ public class ChooseButton extends SettingButton> { this.setting = setting; // crear un módulo "dummy" (falso) - dummy = new Module(setting.getName(), setting.getDescription()) { + dummy = new Module(setting.getName(), setting.getDescription(), Category.CLIENT) { @Override public void onEnable() {} @Override public void onDisable() {} }; diff --git a/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ListButton.java b/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ListButton.java index 9b93015..f5d933c 100644 --- a/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ListButton.java +++ b/src/main/java/me/retucio/camtweaks/ui/widgets/buttons/settings/ListButton.java @@ -1,5 +1,6 @@ package me.retucio.camtweaks.ui.widgets.buttons.settings; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.BooleanSetting; import me.retucio.camtweaks.module.settings.ListSetting; @@ -26,7 +27,7 @@ public class ListButton extends SettingButton> { this.setting = setting; // crear un módulo "dummy" (falso), que se le añade cada entrada en la lista como un BooleanSetting - dummy = new Module(setting.getName(), setting.getDescription()) { + dummy = new Module(setting.getName(), setting.getDescription(), Category.CLIENT) { @Override public void onEnable() {} @Override public void onDisable() {} }; diff --git a/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ClientSettingsFrame.java b/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ClientSettingsFrame.java index 0f8c15f..5743085 100644 --- a/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ClientSettingsFrame.java +++ b/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ClientSettingsFrame.java @@ -2,7 +2,7 @@ package me.retucio.camtweaks.ui.widgets.frames.settings; import me.retucio.camtweaks.CameraTweaks; import me.retucio.camtweaks.event.events.camtweaks.GUISettingsFrameEvent; -import me.retucio.camtweaks.module.modules.GUI; +import me.retucio.camtweaks.module.modules.client.GUI; import me.retucio.camtweaks.ui.widgets.frames.SettingsFrame; import me.retucio.camtweaks.ui.screen.ClickGUI; import me.retucio.camtweaks.ui.widgets.buttons.SettingButton; diff --git a/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ColorPickerFrame.java b/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ColorPickerFrame.java index e150552..a9ae6db 100644 --- a/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ColorPickerFrame.java +++ b/src/main/java/me/retucio/camtweaks/ui/widgets/frames/settings/ColorPickerFrame.java @@ -1,5 +1,6 @@ package me.retucio.camtweaks.ui.widgets.frames.settings; +import me.retucio.camtweaks.module.Category; import me.retucio.camtweaks.module.Module; import me.retucio.camtweaks.module.settings.Setting; import me.retucio.camtweaks.module.settings.BooleanSetting; @@ -46,7 +47,7 @@ public class ColorPickerFrame extends SettingsFrame { this.colorSetting = colorSetting; this.currentColor = colorSetting.getColor(); - dummyModule = new Module("selector de colores", "elige colores") { + dummyModule = new Module("selector de colores", "elige colores", Category.CLIENT) { @Override public void onEnable() {} @Override public void onDisable() {} }; diff --git a/src/main/java/me/retucio/camtweaks/ui/widgets/misc/SearchBarWidget.java b/src/main/java/me/retucio/camtweaks/ui/widgets/misc/SearchBarWidget.java index 5bf893b..e931454 100644 --- a/src/main/java/me/retucio/camtweaks/ui/widgets/misc/SearchBarWidget.java +++ b/src/main/java/me/retucio/camtweaks/ui/widgets/misc/SearchBarWidget.java @@ -83,11 +83,6 @@ public class SearchBarWidget extends Widget { } } - @Override - public void mouseDragged(int mouseX, int mouseY) { - - } - @Override public void onKey(int key, int action) { if (!ClientSettingsFrame.guiSettings.searchBar.isEnabled()) return; @@ -99,6 +94,7 @@ public class SearchBarWidget extends Widget { buffer.setLength(0); focused = false; } + case GLFW.GLFW_KEY_SPACE -> charTyped(' '); case GLFW.GLFW_KEY_BACKSPACE -> onBackspace(); default -> { String c = KeyUtil.getKeyName(key); diff --git a/src/main/java/me/retucio/camtweaks/util/MiscUtil.java b/src/main/java/me/retucio/camtweaks/util/MiscUtil.java index 0274684..23eaf54 100644 --- a/src/main/java/me/retucio/camtweaks/util/MiscUtil.java +++ b/src/main/java/me/retucio/camtweaks/util/MiscUtil.java @@ -3,7 +3,7 @@ package me.retucio.camtweaks.util; import me.retucio.camtweaks.event.SubscribeEvent; import me.retucio.camtweaks.event.events.TickEvent; import me.retucio.camtweaks.module.ModuleManager; -import me.retucio.camtweaks.module.modules.HUD; +import me.retucio.camtweaks.module.modules.client.HUD; import net.minecraft.client.gui.screen.Screen; import net.minecraft.util.math.Vec3d; import org.joml.Vector3d; @@ -52,4 +52,18 @@ public class MiscUtil { } } + public static String removeAccentMarks(String text) { + return text + .replace("Á", "A") + .replace("É", "E") + .replace("Í", "I") + .replace("Ó", "O") + .replace("Ú", "U") + .replace("á", "a") + .replace("é", "e") + .replace("í", "i") + .replace("ó", "o") + .replace("ú", "u"); + } + } diff --git a/src/main/java/me/retucio/camtweaks/util/render/GlintRenderLayer.java b/src/main/java/me/retucio/camtweaks/util/render/GlintRenderLayer.java index c763d10..01a0f66 100644 --- a/src/main/java/me/retucio/camtweaks/util/render/GlintRenderLayer.java +++ b/src/main/java/me/retucio/camtweaks/util/render/GlintRenderLayer.java @@ -1,15 +1,14 @@ package me.retucio.camtweaks.util.render; +import com.mojang.blaze3d.pipeline.BlendFunction; import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.blaze3d.platform.DepthTestFunction; import com.mojang.blaze3d.vertex.VertexFormat; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import me.retucio.camtweaks.CameraTweaks; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; +import me.retucio.camtweaks.module.modules.render.GlintPlus; import net.minecraft.client.gl.RenderPipelines; -import net.minecraft.client.render.BuiltBuffer; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.RenderPhase; +import net.minecraft.client.render.*; import net.minecraft.client.util.BufferAllocator; import net.minecraft.util.DyeColor; import net.minecraft.util.Identifier; @@ -19,27 +18,25 @@ import java.util.List; import java.util.function.Function; /** clase modificada de RenderLayer para modificar el color del destello de encantamientos - * @see me.retucio.camtweaks.module.modules.GlintPlus + * @see GlintPlus * yoinkeado de: https://github.com/Pepperoni-Jabroni/NoMorePurple/blob/main/src/main/java/pepjebs/no_more_purple/client/GlintRenderLayer.java * (y actualizado) -*/ + */ public class GlintRenderLayer extends RenderLayer { public static List glintColor = newRenderList(GlintRenderLayer::buildGlintRenderLayer); public static List entityGlintColor = newRenderList(GlintRenderLayer::buildEntityGlintRenderLayer); - public static List armorGlintColor = newRenderList(GlintRenderLayer::buildArmorGlintRenderLayer); public static List armorEntityGlintColor = newRenderList(GlintRenderLayer::buildArmorEntityGlintRenderLayer); public static void addGlintTypes(Object2ObjectLinkedOpenHashMap map) { addGlintTypes(map, glintColor); addGlintTypes(map, entityGlintColor); - addGlintTypes(map, armorGlintColor); addGlintTypes(map, armorEntityGlintColor); } public GlintRenderLayer(String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, Runnable startAction, Runnable endAction) { - super(name, expectedBufferSize, hasCrumbling, translucent, startAction, endAction); + super(name, RenderSetup.builder(RenderPipeline.builder().build()).build()); } private static List newRenderList(Function func) { @@ -63,45 +60,61 @@ public class GlintRenderLayer extends RenderLayer { private static RenderLayer buildGlintRenderLayer(String name) { final Identifier res = Identifier.of(CameraTweaks.MOD_ID, "textures/misc/glint_" + name.toLowerCase() + ".png"); - return RenderLayer.of("glint_" + name, 256, RenderPipelines.GLINT, MultiPhaseParameters.builder() - .texturing(RenderPhase.GLINT_TEXTURING) - .texture(new Texture(res, false)) - .texturing(GLINT_TEXTURING) - .build(false)); + return RenderLayer.of("glint_" + name, RenderSetup.builder( + RenderPipeline.builder() + .withCull(false) + .withDepthTestFunction(DepthTestFunction.EQUAL_DEPTH_TEST) + .withBlend(BlendFunction.GLINT) + .withLocation(RenderPipelines.GLINT.getLocation()) + .withVertexShader(RenderPipelines.GLINT.getVertexShader()) + .withFragmentShader(RenderPipelines.GLINT.getFragmentShader()) + .withVertexFormat(RenderPipelines.GLINT.getVertexFormat(), RenderPipelines.GLINT.getVertexFormatMode()) + .build()) + .texture("glint_" + name, res) + .textureTransform(TextureTransform.GLINT_TEXTURING) + .translucent() + .build()); + } private static RenderLayer buildEntityGlintRenderLayer(String name) { final Identifier res = Identifier.of(CameraTweaks.MOD_ID, "textures/misc/glint_" + name.toLowerCase() + ".png"); - return RenderLayer.of("entity_glint_" + name, 256, RenderPipelines.GLINT, MultiPhaseParameters.builder() - .texturing(RenderPhase.ENTITY_GLINT_TEXTURING) - .texture(new Texture(res, false)) - .target(ITEM_ENTITY_TARGET) - .texturing(ENTITY_GLINT_TEXTURING) - .build(false)); + return RenderLayer.of("entity_glint_" + name, RenderSetup.builder( + RenderPipeline.builder() + .withCull(true) + .withDepthTestFunction(DepthTestFunction.EQUAL_DEPTH_TEST) + .withBlend(BlendFunction.GLINT) + .withLocation(RenderPipelines.GLINT.getLocation()) + .withVertexShader(RenderPipelines.GLINT.getVertexShader()) + .withFragmentShader(RenderPipelines.GLINT.getFragmentShader()) + .withVertexFormat(VertexFormats.POSITION_TEXTURE, VertexFormat.DrawMode.QUADS) + .build()) + .texture("entity_glint_" + name, res) + .textureTransform(TextureTransform.ENTITY_GLINT_TEXTURING) + .outputTarget(OutputTarget.ITEM_ENTITY_TARGET) + .translucent() + .build()); } - private static RenderLayer buildArmorGlintRenderLayer(String name) { - final Identifier res = Identifier.of(CameraTweaks.MOD_ID, "textures/misc/glint_" + name.toLowerCase() + ".png"); - - return RenderLayer.of("armor_glint_" + name, 256, RenderPipelines.GLINT, MultiPhaseParameters.builder() - .texturing(RenderPhase.ARMOR_ENTITY_GLINT_TEXTURING) - .texture(new Texture(res, false)) - .texturing(GLINT_TEXTURING) - .layering(VIEW_OFFSET_Z_LAYERING) - .build(false)); - } - private static RenderLayer buildArmorEntityGlintRenderLayer(String name) { final Identifier res = Identifier.of(CameraTweaks.MOD_ID, "textures/misc/glint_" + name.toLowerCase() + ".png"); - return RenderLayer.of("armor_entity_glint_" + name, 256, RenderPipelines.GLINT, MultiPhaseParameters.builder() - .texturing(RenderPhase.ARMOR_ENTITY_GLINT_TEXTURING) - .texture(new Texture(res, false)) - .texturing(ENTITY_GLINT_TEXTURING) - .layering(VIEW_OFFSET_Z_LAYERING) - .build(false)); + return RenderLayer.of("armor_glint_" + name, RenderSetup.builder( + RenderPipeline.builder() + .withCull(false) + .withDepthTestFunction(DepthTestFunction.EQUAL_DEPTH_TEST) + .withLocation(RenderPipelines.GLINT.getLocation()) + .withVertexShader(RenderPipelines.GLINT.getVertexShader()) + .withFragmentShader(RenderPipelines.GLINT.getFragmentShader()) + .withVertexFormat(RenderPipelines.GLINT.getVertexFormat(), RenderPipelines.GLINT.getVertexFormatMode()) + .build()) + .texture("armor_glint_" + name, res) + .textureTransform(TextureTransform.ARMOR_ENTITY_GLINT_TEXTURING) + .layeringTransform(LayeringTransform.VIEW_OFFSET_Z_LAYERING) + .translucent() + .build()); } @Override diff --git a/src/main/java/me/retucio/camtweaks/util/render/Layers.java b/src/main/java/me/retucio/camtweaks/util/render/Layers.java index 0955c62..30d8cfb 100644 --- a/src/main/java/me/retucio/camtweaks/util/render/Layers.java +++ b/src/main/java/me/retucio/camtweaks/util/render/Layers.java @@ -1,11 +1,7 @@ package me.retucio.camtweaks.util.render; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.RenderPhase; -import net.minecraft.util.Util; - -import java.util.OptionalDouble; -import java.util.function.Function; +import net.minecraft.client.render.RenderSetup; import static me.retucio.camtweaks.util.render.Pipelines.GLOBAL_LINES_PIPELINE; import static me.retucio.camtweaks.util.render.Pipelines.GLOBAL_QUADS_PIPELINE; @@ -13,30 +9,17 @@ import static me.retucio.camtweaks.util.render.Pipelines.GLOBAL_QUADS_PIPELINE; public class Layers { private static final RenderLayer GLOBAL_QUADS; - private static final Function GLOBAL_LINES; + private static final RenderLayer GLOBAL_LINES; - public static RenderLayer getGlobalLines(double width) { - return GLOBAL_LINES.apply(width); + public static RenderLayer getGlobalLines() { + return GLOBAL_LINES; } - public static RenderLayer getGlobalQuads() { return GLOBAL_QUADS; } - private static RenderLayer.MultiPhaseParameters.Builder builder() { - return RenderLayer.MultiPhaseParameters.builder(); - } - - private static RenderLayer.MultiPhaseParameters empty() { - return builder().build(false); - } - static { - GLOBAL_QUADS = RenderLayer.of("global_fill", 156, GLOBAL_QUADS_PIPELINE, empty()); - - GLOBAL_LINES = Util.memoize(l -> { - RenderPhase.LineWidth width = new RenderPhase.LineWidth(OptionalDouble.of(l)); - return RenderLayer.of("global_lines", 156, GLOBAL_LINES_PIPELINE, builder().lineWidth(width).build(false)); - }); + GLOBAL_QUADS = RenderLayer.of("global_fill", RenderSetup.builder(GLOBAL_QUADS_PIPELINE).build()); + GLOBAL_LINES = RenderLayer.of("global_lines", RenderSetup.builder(GLOBAL_LINES_PIPELINE).build()); } } \ No newline at end of file diff --git a/src/main/java/me/retucio/camtweaks/util/render/Pipelines.java b/src/main/java/me/retucio/camtweaks/util/render/Pipelines.java index 536715f..700d3fc 100644 --- a/src/main/java/me/retucio/camtweaks/util/render/Pipelines.java +++ b/src/main/java/me/retucio/camtweaks/util/render/Pipelines.java @@ -6,14 +6,8 @@ import com.mojang.blaze3d.platform.DepthTestFunction; import com.mojang.blaze3d.vertex.VertexFormat; import me.retucio.camtweaks.CameraTweaks; import net.minecraft.client.gl.RenderPipelines; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexFormats; import net.minecraft.util.Identifier; -import net.minecraft.util.Util; - -import java.util.OptionalDouble; -import java.util.function.Function; public class Pipelines { @@ -34,19 +28,4 @@ public class Pipelines { .withDepthWrite(false) .withCull(false) .build(); - - static final Function GLOBAL_LINES_LAYER = Util.memoize(lineWidth -> { - RenderPhase.LineWidth lineState = new RenderPhase.LineWidth(OptionalDouble.of(lineWidth)); - RenderLayer.MultiPhaseParameters compositeState = RenderLayer.MultiPhaseParameters.builder() - .lineWidth(lineState) - .build(false); - return RenderLayer.of("global_lines", RenderLayer.DEFAULT_BUFFER_SIZE, GLOBAL_LINES_PIPELINE, compositeState); - }); - - - - - public static RenderLayer getGlobalLinesLayer(double lineWidth) { - return GLOBAL_LINES_LAYER.apply(lineWidth); - } } \ No newline at end of file diff --git a/src/main/java/me/retucio/camtweaks/util/render/RenderUtil.java b/src/main/java/me/retucio/camtweaks/util/render/RenderUtil.java index dd28244..f88c6ad 100644 --- a/src/main/java/me/retucio/camtweaks/util/render/RenderUtil.java +++ b/src/main/java/me/retucio/camtweaks/util/render/RenderUtil.java @@ -95,7 +95,7 @@ public class RenderUtil { // expand es para evitar z-fighting public static void drawBlockFaceFilled(MatrixStack matrices, BlockPos pos, Direction face, Color color, float expand) { - Vec3d cameraPos = mc.gameRenderer.getCamera().getPos(); + Vec3d cameraPos = mc.gameRenderer.getCamera().getCameraPos(); float minX = (float) (pos.getX() - cameraPos.x); float minY = (float) (pos.getY() - cameraPos.y); @@ -173,28 +173,27 @@ public class RenderUtil { // cajas public static void drawOutlineBox(MatrixStack matrices, Box box, Color color, float lineWidth) { - float r = color.getRed() / 255f; - float g = color.getGreen() / 255f; - float b = color.getBlue() / 255f; - float a = color.getAlpha() / 255f; + Camera camera = mc.gameRenderer.getCamera(); + Vec3d cameraPos = camera.getCameraPos(); - Vec3d cameraPos = mc.gameRenderer.getCamera().getPos(); - float minX = (float) (box.minX - cameraPos.x); - float minY = (float) (box.minY - cameraPos.y); - float minZ = (float) (box.minZ - cameraPos.z); - float maxX = (float) (box.maxX - cameraPos.x); - float maxY = (float) (box.maxY - cameraPos.y); - float maxZ = (float) (box.maxZ - cameraPos.z); + matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(1 / camera.getPitch())); + matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(1 / (camera.getYaw() + 180f))); - BufferBuilder buffer = tesselator.begin(VertexFormat.DrawMode.LINES, VertexFormats.POSITION_COLOR_NORMAL); - - VertexRendering.drawBox(matrices.peek(), buffer, minX, minY, minZ, maxX, maxY, maxZ, r, g, b, a); - - Layers.getGlobalLines(lineWidth).draw(buffer.end()); + VertexRendering.drawOutline( + matrices, + mc.getBufferBuilders() + .getEntityVertexConsumers() + .getBuffer(RenderLayers.lines()), + VoxelShapes.cuboid(box), + -cameraPos.x, + -cameraPos.y, + -cameraPos.z, + color.getRGB(), + lineWidth); } public static void drawFilledBox(MatrixStack matrices, Box box, Color color) { - Vec3d cameraPos = mc.gameRenderer.getCamera().getPos(); + Vec3d cameraPos = mc.gameRenderer.getCamera().getCameraPos(); float minX = (float) (box.minX - cameraPos.x); float minY = (float) (box.minY - cameraPos.y); float minZ = (float) (box.minZ - cameraPos.z); diff --git a/src/main/resources/camtweaks.accesswidener b/src/main/resources/camtweaks.accesswidener index 06a31f8..070c71f 100644 --- a/src/main/resources/camtweaks.accesswidener +++ b/src/main/resources/camtweaks.accesswidener @@ -1,5 +1,6 @@ accessWidener v2 named + accessible method net/minecraft/network/ClientConnection handleQueuedTasks ()V accessible method net/minecraft/network/ClientConnection sendImmediately (Lnet/minecraft/network/packet/Packet;Lio/netty/channel/ChannelFutureListener;Z)V accessible field net/minecraft/network/ClientConnection queuedTasks Ljava/util/Queue; @@ -17,9 +18,8 @@ accessible field net/minecraft/client/particle/Particle gravityStrength F accessible field net/minecraft/client/particle/Particle collidesWithWorld Z accessible field net/minecraft/entity/LivingEntity jumpingCooldown I +accessible method net/minecraft/client/render/RenderLayer (Ljava/lang/String;Lnet/minecraft/client/render/RenderSetup;)V accessible field net/minecraft/client/render/WorldRenderer worldRenderState Lnet/minecraft/client/render/state/WorldRenderState; -accessible method net/minecraft/client/render/WorldRenderer method_74752 (Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V accessible method net/minecraft/client/render/GameRenderer getProjectionMatrix (F)Lorg/joml/Matrix4f; -accessible method net/minecraft/client/render/command/DebugHitboxCommandRenderer renderDebugHitbox (Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/state/EntityHitboxAndView;Lnet/minecraft/client/render/VertexConsumer;F)V accessible method net/minecraft/screen/ScreenHandlerType register (Ljava/lang/String;Lnet/minecraft/screen/ScreenHandlerType$Factory;)Lnet/minecraft/screen/ScreenHandlerType; \ No newline at end of file diff --git a/src/main/resources/camtweaks.mixins.json b/src/main/resources/camtweaks.mixins.json index 3bc3fd9..2fbe006 100644 --- a/src/main/resources/camtweaks.mixins.json +++ b/src/main/resources/camtweaks.mixins.json @@ -4,7 +4,6 @@ "compatibilityLevel": "JAVA_21", "mixins": [ "ClientConnectionMixin", - "DimensionTypeMixin", "EntityMixin", "HandshakeC2SPacketMixin", "ItemEntityMixin",