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"
group = "me.rigamortis"
archivesBaseName = "seppuku"
def buildmode = "RELEASE"
def buildmode = "IDE"
sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
compileJava {

View File

@ -9,6 +9,7 @@ import me.rigamortis.seppuku.impl.module.ui.HudEditorModule;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.OpenGlHelper;
import org.lwjgl.input.Keyboard;
import java.io.IOException;
@ -117,6 +118,10 @@ public final class GuiHudEditor extends GuiScreen {
public void onGuiClosed() {
Seppuku.INSTANCE.getConfigManager().saveAll();
if (OpenGlHelper.shadersSupported) {
mc.entityRenderer.stopUseShader();
}
for (HudComponent component : Seppuku.INSTANCE.getHudManager().getComponentList()) {
if (component instanceof DraggableHudComponent) {
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.renderer.GlStateManager;
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 java.util.Map;
@ -76,7 +76,7 @@ public final class LogoutSpotsModule extends Module {
GlStateManager.enableAlpha();
GlStateManager.enableDepth();
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.disableBlend();
GlStateManager.disableAlpha();
@ -96,7 +96,7 @@ public final class LogoutSpotsModule extends Module {
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)) {
GlStateManager.pushMatrix();
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 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)) {
this.logoutCache.put(uuid, data);
@ -156,16 +157,16 @@ public final class LogoutSpotsModule extends Module {
}
private boolean isOutOfRange(PlayerData data) {
BlockPos position = data.position;
return Minecraft.getMinecraft().player.getDistance(position.getX(), position.getY(), position.getZ()) > this.removeDistance.getInt();
Vec3d position = data.position;
return Minecraft.getMinecraft().player.getDistance(position.x, position.y, position.z) > this.removeDistance.getInt();
}
private class PlayerData {
BlockPos position;
Vec3d position;
GameProfile profile;
EntityPlayer ghost;
public PlayerData(BlockPos position, GameProfile profile, EntityPlayer ghost) {
public PlayerData(Vec3d position, GameProfile profile, EntityPlayer ghost) {
this.position = position;
this.profile = profile;
this.ghost = ghost;

View File

@ -1,8 +1,12 @@
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.impl.gui.hud.GuiHudEditor;
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
@ -13,15 +17,32 @@ public final class HudEditorModule extends Module {
private boolean open;
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);
}
@Override
public void onToggle() {
super.onToggle();
Minecraft.getMinecraft().displayGuiScreen(new GuiHudEditor());
this.open = true;
final Minecraft mc = Minecraft.getMinecraft();
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() {