mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-20 01:12:13 +02:00
Eclipse auto cleanup
This commit is contained in:
parent
c7e0912e0d
commit
896d0b005f
@ -19,19 +19,19 @@ public final class NameTagsHack extends Hack
|
||||
new CheckboxSetting("Unlimited range",
|
||||
"Removes the 64 block distance limit for nametags.", true);
|
||||
|
||||
private final CheckboxSetting seeThrough = new CheckboxSetting(
|
||||
"See-through mode",
|
||||
"Renders nametags on the see-through text layer. This makes them"
|
||||
+ " easier to read behind walls.",
|
||||
true);
|
||||
private final CheckboxSetting seeThrough =
|
||||
new CheckboxSetting("See-through mode",
|
||||
"Renders nametags on the see-through text layer. This makes them"
|
||||
+ " easier to read behind walls.",
|
||||
true);
|
||||
|
||||
private final CheckboxSetting forceNametags = new CheckboxSetting(
|
||||
"Force nametags",
|
||||
"Forces nametags of all players to be visible, even your own.", false);
|
||||
|
||||
private final CheckboxSetting forceMobNametags = new CheckboxSetting(
|
||||
"Force mob nametags",
|
||||
"Forces nametags of all mobs to be visible.", false);
|
||||
private final CheckboxSetting forceMobNametags =
|
||||
new CheckboxSetting("Force mob nametags",
|
||||
"Forces nametags of all mobs to be visible.", false);
|
||||
|
||||
public NameTagsHack()
|
||||
{
|
||||
|
@ -1,116 +1,116 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2023 Wurst-Imperium and contributors.
|
||||
*
|
||||
* This source code is subject to the terms of the GNU General Public
|
||||
* License, version 3. If a copy of the GPL was not distributed with this
|
||||
* file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
*/
|
||||
package net.wurstclient.mixin;
|
||||
|
||||
import org.joml.Matrix4f;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.font.TextRenderer.TextLayerType;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.render.entity.EntityRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.text.Text;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.hacks.NameTagsHack;
|
||||
|
||||
@Mixin(EntityRenderer.class)
|
||||
public abstract class EntityRendererMixin<T extends Entity>
|
||||
{
|
||||
@Shadow
|
||||
@Final
|
||||
protected EntityRenderDispatcher dispatcher;
|
||||
|
||||
@Inject(at = @At("HEAD"),
|
||||
method = "renderLabelIfPresent(Lnet/minecraft/entity/Entity;Lnet/minecraft/text/Text;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V",
|
||||
cancellable = true)
|
||||
private void onRenderLabelIfPresent(T entity, Text text,
|
||||
MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider,
|
||||
int i, CallbackInfo ci)
|
||||
{
|
||||
// add HealthTags info
|
||||
if(entity instanceof LivingEntity)
|
||||
text = WurstClient.INSTANCE.getHax().healthTagsHack
|
||||
.addHealth((LivingEntity)entity, text);
|
||||
|
||||
// do NameTags adjustments
|
||||
wurstRenderLabelIfPresent(entity, text, matrixStack,
|
||||
vertexConsumerProvider, i);
|
||||
ci.cancel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy of renderLabelIfPresent() since calling the original would result in
|
||||
* an infinite loop. Also makes it easier to modify.
|
||||
*/
|
||||
protected void wurstRenderLabelIfPresent(T entity, Text text,
|
||||
MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light)
|
||||
{
|
||||
NameTagsHack nameTags = WurstClient.INSTANCE.getHax().nameTagsHack;
|
||||
|
||||
// disable distance limit if configured in NameTags
|
||||
double distanceSq = dispatcher.getSquaredDistanceToCamera(entity);
|
||||
if(distanceSq > 4096 && !nameTags.isUnlimitedRange())
|
||||
return;
|
||||
|
||||
// disable sneaking changes if NameTags is enabled
|
||||
boolean notSneaky = !entity.isSneaky() || nameTags.isEnabled();
|
||||
|
||||
float matrixY = entity.getHeight() + 0.5F;
|
||||
int labelY = "deadmau5".equals(text.getString()) ? -10 : 0;
|
||||
|
||||
matrices.push();
|
||||
matrices.translate(0, matrixY, 0);
|
||||
matrices.multiply(dispatcher.getRotation());
|
||||
|
||||
// adjust scale if NameTags is enabled
|
||||
float scale = 0.025F;
|
||||
if(nameTags.isEnabled())
|
||||
{
|
||||
double distance = WurstClient.MC.player.distanceTo(entity);
|
||||
if(distance > 10)
|
||||
scale *= distance / 10;
|
||||
}
|
||||
matrices.scale(-scale, -scale, scale);
|
||||
|
||||
Matrix4f matrix = matrices.peek().getPositionMatrix();
|
||||
float bgOpacity =
|
||||
WurstClient.MC.options.getTextBackgroundOpacity(0.25F);
|
||||
int bgColor = (int)(bgOpacity * 255F) << 24;
|
||||
TextRenderer tr = getTextRenderer();
|
||||
float labelX = -tr.getWidth(text) / 2;
|
||||
|
||||
// draw background
|
||||
tr.draw(text, labelX, labelY, 0x20FFFFFF, false, matrix,
|
||||
vertexConsumers, notSneaky && !nameTags.isSeeThrough()
|
||||
? TextLayerType.SEE_THROUGH : TextLayerType.NORMAL,
|
||||
bgColor, light);
|
||||
|
||||
// use the see-through layer for text if configured in NameTags
|
||||
TextLayerType textLayer = nameTags.isSeeThrough()
|
||||
? TextLayerType.SEE_THROUGH : TextLayerType.NORMAL;
|
||||
|
||||
// draw text
|
||||
if(notSneaky)
|
||||
tr.draw(text, labelX, labelY, 0xFFFFFFFF, false, matrix,
|
||||
vertexConsumers, textLayer, 0, light);
|
||||
|
||||
matrices.pop();
|
||||
}
|
||||
|
||||
@Shadow
|
||||
public abstract TextRenderer getTextRenderer();
|
||||
}
|
||||
/*
|
||||
* Copyright (c) 2014-2023 Wurst-Imperium and contributors.
|
||||
*
|
||||
* This source code is subject to the terms of the GNU General Public
|
||||
* License, version 3. If a copy of the GPL was not distributed with this
|
||||
* file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt
|
||||
*/
|
||||
package net.wurstclient.mixin;
|
||||
|
||||
import org.joml.Matrix4f;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.font.TextRenderer.TextLayerType;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.render.entity.EntityRenderer;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.text.Text;
|
||||
import net.wurstclient.WurstClient;
|
||||
import net.wurstclient.hacks.NameTagsHack;
|
||||
|
||||
@Mixin(EntityRenderer.class)
|
||||
public abstract class EntityRendererMixin<T extends Entity>
|
||||
{
|
||||
@Shadow
|
||||
@Final
|
||||
protected EntityRenderDispatcher dispatcher;
|
||||
|
||||
@Inject(at = @At("HEAD"),
|
||||
method = "renderLabelIfPresent(Lnet/minecraft/entity/Entity;Lnet/minecraft/text/Text;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V",
|
||||
cancellable = true)
|
||||
private void onRenderLabelIfPresent(T entity, Text text,
|
||||
MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider,
|
||||
int i, CallbackInfo ci)
|
||||
{
|
||||
// add HealthTags info
|
||||
if(entity instanceof LivingEntity)
|
||||
text = WurstClient.INSTANCE.getHax().healthTagsHack
|
||||
.addHealth((LivingEntity)entity, text);
|
||||
|
||||
// do NameTags adjustments
|
||||
wurstRenderLabelIfPresent(entity, text, matrixStack,
|
||||
vertexConsumerProvider, i);
|
||||
ci.cancel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy of renderLabelIfPresent() since calling the original would result in
|
||||
* an infinite loop. Also makes it easier to modify.
|
||||
*/
|
||||
protected void wurstRenderLabelIfPresent(T entity, Text text,
|
||||
MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light)
|
||||
{
|
||||
NameTagsHack nameTags = WurstClient.INSTANCE.getHax().nameTagsHack;
|
||||
|
||||
// disable distance limit if configured in NameTags
|
||||
double distanceSq = dispatcher.getSquaredDistanceToCamera(entity);
|
||||
if(distanceSq > 4096 && !nameTags.isUnlimitedRange())
|
||||
return;
|
||||
|
||||
// disable sneaking changes if NameTags is enabled
|
||||
boolean notSneaky = !entity.isSneaky() || nameTags.isEnabled();
|
||||
|
||||
float matrixY = entity.getHeight() + 0.5F;
|
||||
int labelY = "deadmau5".equals(text.getString()) ? -10 : 0;
|
||||
|
||||
matrices.push();
|
||||
matrices.translate(0, matrixY, 0);
|
||||
matrices.multiply(dispatcher.getRotation());
|
||||
|
||||
// adjust scale if NameTags is enabled
|
||||
float scale = 0.025F;
|
||||
if(nameTags.isEnabled())
|
||||
{
|
||||
double distance = WurstClient.MC.player.distanceTo(entity);
|
||||
if(distance > 10)
|
||||
scale *= distance / 10;
|
||||
}
|
||||
matrices.scale(-scale, -scale, scale);
|
||||
|
||||
Matrix4f matrix = matrices.peek().getPositionMatrix();
|
||||
float bgOpacity =
|
||||
WurstClient.MC.options.getTextBackgroundOpacity(0.25F);
|
||||
int bgColor = (int)(bgOpacity * 255F) << 24;
|
||||
TextRenderer tr = getTextRenderer();
|
||||
float labelX = -tr.getWidth(text) / 2;
|
||||
|
||||
// draw background
|
||||
tr.draw(text, labelX, labelY, 0x20FFFFFF, false, matrix,
|
||||
vertexConsumers, notSneaky && !nameTags.isSeeThrough()
|
||||
? TextLayerType.SEE_THROUGH : TextLayerType.NORMAL,
|
||||
bgColor, light);
|
||||
|
||||
// use the see-through layer for text if configured in NameTags
|
||||
TextLayerType textLayer = nameTags.isSeeThrough()
|
||||
? TextLayerType.SEE_THROUGH : TextLayerType.NORMAL;
|
||||
|
||||
// draw text
|
||||
if(notSneaky)
|
||||
tr.draw(text, labelX, labelY, 0xFFFFFFFF, false, matrix,
|
||||
vertexConsumers, textLayer, 0, light);
|
||||
|
||||
matrices.pop();
|
||||
}
|
||||
|
||||
@Shadow
|
||||
public abstract TextRenderer getTextRenderer();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user