Skip to content

Commit

Permalink
Initial 1.15.1 port work
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed Dec 29, 2019
1 parent b92b6a2 commit 44ab3a4
Show file tree
Hide file tree
Showing 9 changed files with 164 additions and 161 deletions.
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
minecraft_version=1.14.4
forge_version=28.0.45
mappings=20190807-1.14.3
mod_version=1.6.3
minecraft_version=1.15.1
forge_version=30.0.17
mappings=20191221-1.14.3
mod_version=1.6.4

org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=false
2 changes: 1 addition & 1 deletion src/main/java/dmillerw/ping/client/ClientHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ private static void sendPing(BlockRayTraceResult raytrace, int color, PingType t
@OnlyIn(Dist.CLIENT)
private static BlockRayTraceResult raytrace(PlayerEntity player, double distance) {
float eyeHeight = player.getEyeHeight();
return (BlockRayTraceResult) player.func_213324_a(distance, eyeHeight, false);
return (BlockRayTraceResult) player.pick(distance, eyeHeight, false);
}

@OnlyIn(Dist.CLIENT)
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/dmillerw/ping/client/KeyHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,16 @@ public static void onClientTick(TickEvent.ClientTickEvent event) {
return;
}

long handle = Minecraft.getInstance().mainWindow.getHandle();
long handle = Minecraft.getInstance().func_228018_at_().getHandle();
boolean keyPressed = (KEY_BINDING.getKey().getKeyCode() >= 0 ? InputMappings.isKeyDown(handle, KEY_BINDING.getKey().getKeyCode()) : InputMappings.isKeyDown(handle, KEY_BINDING.getKey().getKeyCode() + 100));

if (keyPressed != lastKeyState) {
if (keyPressed) {
PingSelectGui.activate();
} else {
if (!ignoreNextRelease) {
final double mouseX = mc.mouseHelper.getMouseX() * ((double) mc.mainWindow.getScaledWidth() / mc.mainWindow.getWidth());
final double mouseY = mc.mouseHelper.getMouseY() * ((double) mc.mainWindow.getScaledHeight() / mc.mainWindow.getHeight());
final double mouseX = mc.mouseHelper.getMouseX() * ((double) mc.func_228018_at_().getScaledWidth() / mc.func_228018_at_().getWidth());
final double mouseY = mc.mouseHelper.getMouseY() * ((double) mc.func_228018_at_().getScaledHeight() / mc.func_228018_at_().getHeight());

PingSelectGui.INSTANCE.mouseClicked(mouseX, mouseY, 0);
}
Expand Down
108 changes: 55 additions & 53 deletions src/main/java/dmillerw/ping/client/PingHandler.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
package dmillerw.ping.client;

import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import dmillerw.ping.Ping;
import dmillerw.ping.data.PingType;
import dmillerw.ping.data.PingWrapper;
import dmillerw.ping.network.packet.ServerBroadcastPing;
import dmillerw.ping.util.Config;
import dmillerw.ping.util.GLUUtils;
import dmillerw.ping.util.PingRenderHelper;
import dmillerw.ping.util.PingSounds;
import net.minecraft.block.Blocks;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.SimpleSound;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.culling.Frustum;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderWorldLastEvent;
Expand Down Expand Up @@ -60,28 +60,30 @@ public static void onRenderWorld(RenderWorldLastEvent event) {
Minecraft mc = Minecraft.getInstance();
Entity renderEntity = mc.getRenderViewEntity();
if (renderEntity == null) return;
double interpX = renderEntity.prevPosX + (renderEntity.posX - renderEntity.prevPosX) * event.getPartialTicks();
double interpY = (renderEntity.prevPosY + (renderEntity.posY - renderEntity.prevPosY) * event.getPartialTicks()) + 1;
double interpZ = renderEntity.prevPosZ + (renderEntity.posZ - renderEntity.prevPosZ) * event.getPartialTicks();
BlockPos renderEntityPos = renderEntity.getPosition();
double interpX = renderEntity.prevPosX + (renderEntityPos.getX() - renderEntity.prevPosX) * event.getPartialTicks();
double interpY = (renderEntity.prevPosY + (renderEntityPos.getY() - renderEntity.prevPosY) * event.getPartialTicks()) + 1;
double interpZ = renderEntity.prevPosZ + (renderEntityPos.getZ() - renderEntity.prevPosZ) * event.getPartialTicks();

Frustum camera = new Frustum();
camera.setPosition(interpX, interpY, interpZ);
//Frustum camera = new Frustum();
//camera.setPosition(interpX, interpY, interpZ);

for (PingWrapper ping : active_pings) {
double px = ping.pos.getX() + 0.5D - interpX;
double py = ping.pos.getY() + 0.5D - interpY + 1 - renderEntity.getEyeHeight();
double pz = ping.pos.getZ() + 0.5D - interpZ;

if (camera.isBoundingBoxInFrustum(ping.getAABB())) {
//if (camera.isBoundingBoxInFrustum(ping.getAABB())) {
ping.isOffscreen = false;
if (Config.VISUAL.blockOverlay.get()) {
renderPingOverlay(ping.pos.getX() - TileEntityRendererDispatcher.staticPlayerX, ping.pos.getY() - TileEntityRendererDispatcher.staticPlayerY, ping.pos.getZ() - TileEntityRendererDispatcher.staticPlayerZ, ping);
Vec3d staticPos = TileEntityRendererDispatcher.instance.renderInfo.getProjectedView();
renderPingOverlay(ping.pos.getX() - staticPos.getX(), ping.pos.getY() - staticPos.getY(), ping.pos.getZ() - staticPos.getZ(), ping);
}
renderPing(px, py, pz, renderEntity, ping);
} else {
/*} else {
ping.isOffscreen = true;
translatePingCoordinates(px, py, pz, ping);
}
}*/
}
}

Expand All @@ -94,8 +96,8 @@ public static void onRenderOverlay(RenderGameOverlayEvent.Post event) {
continue;
}

int width = mc.mainWindow.getWidth();
int height = mc.mainWindow.getHeight();
int width = mc.func_228018_at_().getWidth();
int height = mc.func_228018_at_().getHeight();

int x1 = -(width / 2) + 32;
int y1 = -(height / 2) + 32;
Expand Down Expand Up @@ -134,14 +136,14 @@ public static void onRenderOverlay(RenderGameOverlayEvent.Post event) {
pingX += width * 0.5D;
pingY += height * 0.5D;

GlStateManager.pushMatrix();
RenderSystem.pushMatrix();

Minecraft.getInstance().textureManager.bindTexture(TEXTURE);

Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferBuilder = tessellator.getBuffer();

bufferBuilder.setTranslation(pingX / 2, pingY / 2, 0);
//bufferBuilder.setTranslation(pingX / 2, pingY / 2, 0); //TODO

float min = -8;
float max = 8;
Expand All @@ -154,23 +156,23 @@ public static void onRenderOverlay(RenderGameOverlayEvent.Post event) {
int g = ping.color >> 8 & 255;
int b = ping.color & 255;

bufferBuilder.pos(min, max, 0).tex(PingType.BACKGROUND.minU, PingType.BACKGROUND.maxV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(max, max, 0).tex(PingType.BACKGROUND.maxU, PingType.BACKGROUND.maxV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(max, min, 0).tex(PingType.BACKGROUND.maxU, PingType.BACKGROUND.minV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(min, min, 0).tex(PingType.BACKGROUND.minU, PingType.BACKGROUND.minV).color(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(min, max, 0).func_225583_a_(PingType.BACKGROUND.minU, PingType.BACKGROUND.maxV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(max, max, 0).func_225583_a_(PingType.BACKGROUND.maxU, PingType.BACKGROUND.maxV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(max, min, 0).func_225583_a_(PingType.BACKGROUND.maxU, PingType.BACKGROUND.minV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(min, min, 0).func_225583_a_(PingType.BACKGROUND.minU, PingType.BACKGROUND.minV).func_225586_a_(r, g, b, 255).endVertex();
tessellator.draw();

// Ping Notice Icon
bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
bufferBuilder.pos(min, max, 0).tex(ping.type.minU, ping.type.maxV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(max, max, 0).tex(ping.type.maxU, ping.type.maxV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(max, min, 0).tex(ping.type.maxU, ping.type.minV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(min, min, 0).tex(ping.type.minU, ping.type.minV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(min, max, 0).func_225583_a_(ping.type.minU, ping.type.maxV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(max, max, 0).func_225583_a_(ping.type.maxU, ping.type.maxV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(max, min, 0).func_225583_a_(ping.type.maxU, ping.type.minV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(min, min, 0).func_225583_a_(ping.type.minU, ping.type.minV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
tessellator.draw();

bufferBuilder.setTranslation(0, 0, 0);
//bufferBuilder.setTranslation(0, 0, 0); //TODO

GlStateManager.popMatrix();
RenderSystem.popMatrix();
}
}
}
Expand All @@ -193,14 +195,14 @@ public static void onClientTick(TickEvent.ClientTickEvent event) {
}

private static void renderPing(double px, double py, double pz, Entity renderEntity, PingWrapper ping) {
GlStateManager.pushMatrix();
RenderSystem.pushMatrix();

GlStateManager.disableDepthTest();
GlStateManager.translated(px, py, pz);
RenderSystem.disableDepthTest();
RenderSystem.translated(px, py, pz);

GlStateManager.rotatef(-renderEntity.rotationYaw, 0, 1, 0);
GlStateManager.rotatef(renderEntity.rotationPitch, 1, 0, 0);
GlStateManager.rotated(180, 0, 0, 1);
RenderSystem.rotatef(-renderEntity.rotationYaw, 0.0F, 1.0F, 0.0F);
RenderSystem.rotatef(renderEntity.rotationPitch, 1.0F, 0.0F, 0.0F);
RenderSystem.rotatef(180.0F, 0.0F, 0.0F, 1.0F);

Minecraft.getInstance().textureManager.bindTexture(TEXTURE);

Expand All @@ -215,24 +217,24 @@ private static void renderPing(double px, double py, double pz, Entity renderEnt
int r = ping.color >> 16 & 255;
int g = ping.color >> 8 & 255;
int b = ping.color & 255;
bufferBuilder.pos(min, max, 0).tex(PingType.BACKGROUND.minU, PingType.BACKGROUND.maxV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(max, max, 0).tex(PingType.BACKGROUND.maxU, PingType.BACKGROUND.maxV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(max, min, 0).tex(PingType.BACKGROUND.maxU, PingType.BACKGROUND.minV).color(r, g, b, 255).endVertex();
bufferBuilder.pos(min, min, 0).tex(PingType.BACKGROUND.minU, PingType.BACKGROUND.minV).color(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(min, max, 0).func_225583_a_(PingType.BACKGROUND.minU, PingType.BACKGROUND.maxV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(max, max, 0).func_225583_a_(PingType.BACKGROUND.maxU, PingType.BACKGROUND.maxV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(max, min, 0).func_225583_a_(PingType.BACKGROUND.maxU, PingType.BACKGROUND.minV).func_225586_a_(r, g, b, 255).endVertex();
bufferBuilder.func_225582_a_(min, min, 0).func_225583_a_(PingType.BACKGROUND.minU, PingType.BACKGROUND.minV).func_225586_a_(r, g, b, 255).endVertex();
tessellator.draw();

int alpha = ping.type == PingType.ALERT ? (int) (1.3F + Math.sin(Minecraft.getInstance().world.getDayTime())) : 175;

// Block Overlay Icon
bufferBuilder.begin(7, DefaultVertexFormats.POSITION_TEX_COLOR);
bufferBuilder.pos(min, max, 0).tex(ping.type.minU, ping.type.maxV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(max, max, 0).tex(ping.type.maxU, ping.type.maxV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(max, min, 0).tex(ping.type.maxU, ping.type.minV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.pos(min, min, 0).tex(ping.type.minU, ping.type.minV).color(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(min, max, 0).func_225583_a_(ping.type.minU, ping.type.maxV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(max, max, 0).func_225583_a_(ping.type.maxU, ping.type.maxV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(max, min, 0).func_225583_a_(ping.type.maxU, ping.type.minV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
bufferBuilder.func_225582_a_(min, min, 0).func_225583_a_(ping.type.minU, ping.type.minV).func_227885_a_(1.0F, 1.0F, 1.0F, alpha).endVertex();
tessellator.draw();

GlStateManager.enableDepthTest();
GlStateManager.popMatrix();
RenderSystem.enableDepthTest();
RenderSystem.popMatrix();
}

private static void renderPingOverlay(double x, double y, double z, PingWrapper ping) {
Expand All @@ -241,18 +243,18 @@ private static void renderPingOverlay(double x, double y, double z, PingWrapper
float padding = 0F + (0.20F * (float) ping.animationTimer / (float) 20);
float box = 1 + padding + padding;

GlStateManager.pushMatrix();
GlStateManager.enableBlend();
GlStateManager.blendFuncSeparate(770, 771, 1, 0);
GlStateManager.disableDepthTest();
RenderSystem.pushMatrix();
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(770, 771, 1, 0);
RenderSystem.disableDepthTest();

GlStateManager.translated(x + 0.5, y + 0.5, z + 0.5);
RenderSystem.translated(x + 0.5, y + 0.5, z + 0.5);
PingRenderHelper.drawBlockOverlay(box, box, box, icon, ping.color, 175);
GlStateManager.translated(0, 0, 0);
RenderSystem.translated(0, 0, 0);

GlStateManager.enableDepthTest();
GlStateManager.disableBlend();
GlStateManager.popMatrix();
RenderSystem.enableDepthTest();
RenderSystem.disableBlend();
RenderSystem.popMatrix();
}

private static void translatePingCoordinates(double px, double py, double pz, PingWrapper ping) {
Expand All @@ -261,8 +263,8 @@ private static void translatePingCoordinates(double px, double py, double pz, Pi
FloatBuffer modelView = BufferUtils.createFloatBuffer(16);
FloatBuffer projection = BufferUtils.createFloatBuffer(16);

GlStateManager.getMatrix(GL11.GL_MODELVIEW_MATRIX, modelView);
GlStateManager.getMatrix(GL11.GL_PROJECTION_MATRIX, projection);
GL11.glGetFloatv(GL11.GL_MODELVIEW_MATRIX, modelView);
GL11.glGetFloatv(GL11.GL_PROJECTION_MATRIX, projection);
GL11.glGetIntegerv(GL11.GL_VIEWPORT, viewport);

if (GLUUtils.gluProject((float) px, (float) py, (float) pz, modelView, projection, viewport, screenCoords)) {
Expand Down

0 comments on commit 44ab3a4

Please sign in to comment.