Fixed accuracy issue with logout spots, Added blur shader toggle for the HudEditor Gui

This commit is contained in:
Rigamortis 2019-11-19 16:42:31 -09:00
parent 16d36e916a
commit fee42cc291
4 changed files with 39 additions and 12 deletions

View File

@ -21,7 +21,7 @@ apply plugin: "com.github.johnrengelman.shadow"
version = "3.0" version = "3.0"
group = "me.rigamortis" group = "me.rigamortis"
archivesBaseName = "seppuku" archivesBaseName = "seppuku"
def buildmode = "RELEASE" def buildmode = "IDE"
sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
compileJava { compileJava {

View File

@ -9,6 +9,7 @@ import me.rigamortis.seppuku.impl.module.ui.HudEditorModule;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.OpenGlHelper;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import java.io.IOException; import java.io.IOException;
@ -117,6 +118,10 @@ public final class GuiHudEditor extends GuiScreen {
public void onGuiClosed() { public void onGuiClosed() {
Seppuku.INSTANCE.getConfigManager().saveAll(); Seppuku.INSTANCE.getConfigManager().saveAll();
if (OpenGlHelper.shadersSupported) {
mc.entityRenderer.stopUseShader();
}
for (HudComponent component : Seppuku.INSTANCE.getHudManager().getComponentList()) { for (HudComponent component : Seppuku.INSTANCE.getHudManager().getComponentList()) {
if (component instanceof DraggableHudComponent) { if (component instanceof DraggableHudComponent) {
if (component.isVisible()) { if (component.isVisible()) {

View File

@ -13,7 +13,7 @@ import me.rigamortis.seppuku.api.value.NumberValue;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d;
import team.stiff.pomelo.impl.annotated.handler.annotation.Listener; import team.stiff.pomelo.impl.annotated.handler.annotation.Listener;
import java.util.Map; import java.util.Map;
@ -76,7 +76,7 @@ public final class LogoutSpotsModule extends Module {
GlStateManager.enableAlpha(); GlStateManager.enableAlpha();
GlStateManager.enableDepth(); GlStateManager.enableDepth();
GlStateManager.color(1, 1, 1, 1); GlStateManager.color(1, 1, 1, 1);
mc.getRenderManager().renderEntity(data.ghost, data.position.getX() - mc.getRenderManager().renderPosX, data.position.getY() - mc.getRenderManager().renderPosY, data.position.getZ() - mc.getRenderManager().renderPosZ, data.ghost.rotationYaw, mc.getRenderPartialTicks(), false); mc.getRenderManager().renderEntity(data.ghost, data.position.x - mc.getRenderManager().renderPosX, data.position.y - mc.getRenderManager().renderPosY, data.position.z - mc.getRenderManager().renderPosZ, data.ghost.rotationYaw, mc.getRenderPartialTicks(), false);
GlStateManager.disableLighting(); GlStateManager.disableLighting();
GlStateManager.disableBlend(); GlStateManager.disableBlend();
GlStateManager.disableAlpha(); GlStateManager.disableAlpha();
@ -96,7 +96,7 @@ public final class LogoutSpotsModule extends Module {
continue; continue;
} }
final GLUProjection.Projection projection = GLUProjection.getInstance().project(data.position.getX() - mc.getRenderManager().renderPosX, data.position.getY() - mc.getRenderManager().renderPosY, data.position.getZ() - mc.getRenderManager().renderPosZ, GLUProjection.ClampMode.NONE, true); final GLUProjection.Projection projection = GLUProjection.getInstance().project(data.position.x - mc.getRenderManager().renderPosX, data.position.y - mc.getRenderManager().renderPosY, data.position.z - mc.getRenderManager().renderPosZ, GLUProjection.ClampMode.NONE, true);
if (projection != null && projection.isType(GLUProjection.Projection.Type.INSIDE)) { if (projection != null && projection.isType(GLUProjection.Projection.Type.INSIDE)) {
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
GlStateManager.translate(projection.getX(), projection.getY(), 0); GlStateManager.translate(projection.getX(), projection.getY(), 0);
@ -119,7 +119,8 @@ public final class LogoutSpotsModule extends Module {
final EntityPlayer player = this.playerCache.get(uuid); final EntityPlayer player = this.playerCache.get(uuid);
final PlayerData data = new PlayerData(player.getPosition(), player.getGameProfile(), player); //final Vec3d interp = MathUtil.interpolateEntity(player, mc.getRenderPartialTicks());
final PlayerData data = new PlayerData(player.getPositionVector(), player.getGameProfile(), player);
if (!this.hasPlayerLogged(uuid)) { if (!this.hasPlayerLogged(uuid)) {
this.logoutCache.put(uuid, data); this.logoutCache.put(uuid, data);
@ -156,16 +157,16 @@ public final class LogoutSpotsModule extends Module {
} }
private boolean isOutOfRange(PlayerData data) { private boolean isOutOfRange(PlayerData data) {
BlockPos position = data.position; Vec3d position = data.position;
return Minecraft.getMinecraft().player.getDistance(position.getX(), position.getY(), position.getZ()) > this.removeDistance.getInt(); return Minecraft.getMinecraft().player.getDistance(position.x, position.y, position.z) > this.removeDistance.getInt();
} }
private class PlayerData { private class PlayerData {
BlockPos position; Vec3d position;
GameProfile profile; GameProfile profile;
EntityPlayer ghost; EntityPlayer ghost;
public PlayerData(BlockPos position, GameProfile profile, EntityPlayer ghost) { public PlayerData(Vec3d position, GameProfile profile, EntityPlayer ghost) {
this.position = position; this.position = position;
this.profile = profile; this.profile = profile;
this.ghost = ghost; this.ghost = ghost;

View File

@ -1,8 +1,12 @@
package me.rigamortis.seppuku.impl.module.ui; package me.rigamortis.seppuku.impl.module.ui;
import me.rigamortis.seppuku.api.event.minecraft.EventDisplayGui;
import me.rigamortis.seppuku.api.module.Module; import me.rigamortis.seppuku.api.module.Module;
import me.rigamortis.seppuku.impl.gui.hud.GuiHudEditor; import me.rigamortis.seppuku.impl.gui.hud.GuiHudEditor;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.util.ResourceLocation;
import team.stiff.pomelo.impl.annotated.handler.annotation.Listener;
/** /**
* Author Seth * Author Seth
@ -13,15 +17,32 @@ public final class HudEditorModule extends Module {
private boolean open; private boolean open;
public HudEditorModule() { public HudEditorModule() {
super("HudEditor", new String[] {"HudEdit", "HEdit"}, "Displays a menu to modify the hud", "NONE", -1, ModuleType.UI); super("HudEditor", new String[]{"HudEdit", "HEdit"}, "Displays a menu to modify the hud", "NONE", -1, ModuleType.UI);
this.setHidden(true); this.setHidden(true);
} }
@Override @Override
public void onToggle() { public void onToggle() {
super.onToggle(); super.onToggle();
Minecraft.getMinecraft().displayGuiScreen(new GuiHudEditor()); final Minecraft mc = Minecraft.getMinecraft();
this.open = true;
if (mc.world != null) {
mc.displayGuiScreen(new GuiHudEditor());
if (OpenGlHelper.shadersSupported) {
mc.entityRenderer.loadShader(new ResourceLocation("minecraft", "shaders/post/blur.json"));
}
this.open = true;
}
}
@Listener
public void displayGui(EventDisplayGui event) {
if (Minecraft.getMinecraft().currentScreen instanceof GuiHudEditor) {
if (event.getScreen() == null && this.open) {
event.setCanceled(true);
}
}
} }
public boolean isOpen() { public boolean isOpen() {