aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java161
1 files changed, 80 insertions, 81 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java
index f3a33aa9..9a1b82d4 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/CrystalOverlay.java
@@ -6,7 +6,6 @@ import io.github.moulberry.notenoughupdates.util.SpecialColour;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.client.renderer.vertex.VertexFormatElement;
@@ -25,10 +24,10 @@ import org.lwjgl.opengl.GL11;
import java.awt.*;
import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.Set;
public class CrystalOverlay {
@@ -47,14 +46,14 @@ public class CrystalOverlay {
}
public Set<BlockPos> getCircleOffsets() {
- if(circleOffsets != null) return circleOffsets;
+ if (circleOffsets != null) return circleOffsets;
circleOffsets = new HashSet<>();
- for(int x=-radius; x<=radius; x++) {
- for(int y=-radius; y<=radius; y++) {
- for(int z=-radius; z<=radius; z++) {
- float distSq = (x-0.5f)*(x-0.5f) + y*y + (z-0.5f)*(z-0.5f);
- if(distSq > (radius-1)*(radius-1) && distSq < radius*radius) {
+ for (int x = -radius; x <= radius; x++) {
+ for (int y = -radius; y <= radius; y++) {
+ for (int z = -radius; z <= radius; z++) {
+ float distSq = (x - 0.5f) * (x - 0.5f) + y * y + (z - 0.5f) * (z - 0.5f);
+ if (distSq > (radius - 1) * (radius - 1) && distSq < radius * radius) {
circleOffsets.add(new BlockPos(x, y, z));
}
}
@@ -65,12 +64,12 @@ public class CrystalOverlay {
}
public ReverseWorldRenderer getOverlayVBO() {
- if(overlayVBO != null) return overlayVBO;
+ if (overlayVBO != null) return overlayVBO;
EntityPlayerSP p = Minecraft.getMinecraft().thePlayer;
- if(p == null) return null;
+ if (p == null) return null;
- if(!crystals.containsKey(this)) {
+ if (!crystals.containsKey(this)) {
return null;
}
@@ -79,21 +78,21 @@ public class CrystalOverlay {
//per block = 8
//total per block = 196
- ReverseWorldRenderer worldRenderer = new ReverseWorldRenderer(196*getCircleOffsets().size());
+ ReverseWorldRenderer worldRenderer = new ReverseWorldRenderer(196 * getCircleOffsets().size());
worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);
String col = SpecialColour.special(0, 180, rgb);
- for(BlockPos offset : getCircleOffsets()) {
+ for (BlockPos offset : getCircleOffsets()) {
BlockPos overlayPos = new BlockPos(offset.getX(), offset.getY(), offset.getZ());
AxisAlignedBB bb = new AxisAlignedBB(
overlayPos.getX(),
overlayPos.getY(),
overlayPos.getZ(),
- overlayPos.getX()+1,
- overlayPos.getY()+1,
- overlayPos.getZ()+1
- ).expand(0.001f*(this.ordinal()+1), 0.001f*(this.ordinal()+1), 0.001f*(this.ordinal()+1));
+ overlayPos.getX() + 1,
+ overlayPos.getY() + 1,
+ overlayPos.getZ() + 1
+ ).expand(0.001f * (this.ordinal() + 1), 0.001f * (this.ordinal() + 1), 0.001f * (this.ordinal() + 1));
uploadFilledBoundingBox(bb, 1f, col, worldRenderer);
}
@@ -112,7 +111,8 @@ public class CrystalOverlay {
private static double posLastUpdateY;
private static double posLastUpdateZ;
- private static HashMap<String, CrystalType> skullId = new HashMap<>();
+ private static final HashMap<String, CrystalType> skullId = new HashMap<>();
+
static {
skullId.put("d9c3168a-8654-3dd8-b297-4d3b7e55b95a", CrystalType.FARMING_MINION);
skullId.put("949d100c-aa74-3b09-a642-af5529f808aa", CrystalType.MINING_MINION);
@@ -127,62 +127,61 @@ public class CrystalOverlay {
public static HashMap<CrystalType, BlockPos> crystals = new HashMap<>();
public static void tick() {
- if(!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
- if(Minecraft.getMinecraft().theWorld == null) return;
+ if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
+ if (Minecraft.getMinecraft().theWorld == null) return;
EntityPlayerSP p = Minecraft.getMinecraft().thePlayer;
- if(p == null) return;
+ if (p == null) return;
long currentTime = System.currentTimeMillis();
- if(NotEnoughUpdates.INSTANCE.config.itemOverlays.alwaysShowCrystal) {
+ if (NotEnoughUpdates.INSTANCE.config.itemOverlays.alwaysShowCrystal) {
displayMillis = currentTime;
} else {
- if(currentTime - displayMillis > 10*1000) {
+ if (currentTime - displayMillis > 10 * 1000) {
crystals.clear();
displayMillis = -1;
}
ItemStack held = p.getHeldItem();
String internal = NotEnoughUpdates.INSTANCE.manager.getInternalNameForItem(held);
- if(internal != null) {
- if(internal.endsWith("_CRYSTAL") && !internal.equals("POWER_CRYSTAL")) {
+ if (internal != null) {
+ if (internal.endsWith("_CRYSTAL") && !internal.equals("POWER_CRYSTAL")) {
displayMillis = currentTime;
}
}
- if(displayMillis < 0) {
+ if (displayMillis < 0) {
return;
}
}
-
Set<CrystalType> foundTypes = new HashSet<>();
- for(Entity entity : Minecraft.getMinecraft().theWorld.loadedEntityList) {
- if(entity instanceof EntityArmorStand) {
+ for (Entity entity : Minecraft.getMinecraft().theWorld.loadedEntityList) {
+ if (entity instanceof EntityArmorStand) {
EntityArmorStand armorStand = (EntityArmorStand) entity;
- if(armorStand.isChild() && armorStand.getEquipmentInSlot(4) != null) {
+ if (armorStand.isChild() && armorStand.getEquipmentInSlot(4) != null) {
ItemStack helmet = armorStand.getEquipmentInSlot(4);
- if(helmet.getItem() == Items.skull && helmet.hasTagCompound()) {
+ if (helmet.getItem() == Items.skull && helmet.hasTagCompound()) {
NBTTagCompound tag = helmet.getTagCompound();
- if(tag.hasKey("SkullOwner", 10)) {
+ if (tag.hasKey("SkullOwner", 10)) {
NBTTagCompound skullOwner = tag.getCompoundTag("SkullOwner");
- if(skullOwner.hasKey("Id", 8)) {
+ if (skullOwner.hasKey("Id", 8)) {
String id = skullOwner.getString("Id");
- if(skullId.containsKey(id)) {
+ if (skullId.containsKey(id)) {
CrystalType type = skullId.get(id);
foundTypes.add(type);
- BlockPos pos = new BlockPos(armorStand.posX, armorStand.posY+0.5f, armorStand.posZ);
+ BlockPos pos = new BlockPos(armorStand.posX, armorStand.posY + 0.5f, armorStand.posZ);
- if(crystals.containsKey(type)) {
+ if (crystals.containsKey(type)) {
BlockPos old = crystals.get(type);
- if(old.equals(pos)) {
+ if (old.equals(pos)) {
type.updates = 0;
} else {
- if(++type.updates >= 3) {
+ if (++type.updates >= 3) {
type.updates = 0;
crystals.put(type, pos);
}
@@ -202,21 +201,21 @@ public class CrystalOverlay {
@SubscribeEvent
public void onTick(TickEvent.ClientTickEvent event) {
- if(!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
+ if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
- if(displayMillis < 0) {
+ if (displayMillis < 0) {
return;
}
EntityPlayerSP p = Minecraft.getMinecraft().thePlayer;
- if(p == null) return;
+ if (p == null) return;
- if(event.phase == TickEvent.Phase.START) {
+ if (event.phase == TickEvent.Phase.START) {
double dX = p.posX - posLastUpdateX;
double dY = p.posY - posLastUpdateY;
double dZ = p.posZ - posLastUpdateZ;
- if(dX*dX + dY*dY + dZ*dZ < 1) {
+ if (dX * dX + dY * dY + dZ * dZ < 1) {
return;
}
@@ -224,24 +223,24 @@ public class CrystalOverlay {
posLastUpdateY = p.posY;
posLastUpdateZ = p.posZ;
- for(CrystalType type : crystals.keySet()) {
- if(type == CrystalType.MINING_MINION) {
+ for (CrystalType type : crystals.keySet()) {
+ if (type == CrystalType.MINING_MINION) {
long currentTime = System.currentTimeMillis();
- if(currentTime - lastMiningUpdate < 1000) {
+ if (currentTime - lastMiningUpdate < 1000) {
continue;
}
lastMiningUpdate = currentTime;
}
ReverseWorldRenderer worldRenderer = type.getOverlayVBO();
- if(worldRenderer != null) {
+ if (worldRenderer != null) {
BlockPos crystal = crystals.get(type);
- worldRenderer.setTranslation(0, 0,0 );
+ worldRenderer.setTranslation(0, 0, 0);
worldRenderer.sortVertexData(
- (float)p.posX-crystal.getX(),
- (float)p.posY-crystal.getY(),
- (float)p.posZ-crystal.getZ());
+ (float) p.posX - crystal.getX(),
+ (float) p.posY - crystal.getY(),
+ (float) p.posZ - crystal.getZ());
/*es.submit(() -> worldRenderer.sortVertexData(
(float)p.posX-crystal.getX(),
(float)p.posY-crystal.getY(),
@@ -254,9 +253,9 @@ public class CrystalOverlay {
@SubscribeEvent
public void onRenderLast(RenderWorldLastEvent event) {
- if(!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
+ if (!NotEnoughUpdates.INSTANCE.config.itemOverlays.enableCrystalOverlay) return;
- if(displayMillis < 0) {
+ if (displayMillis < 0) {
return;
}
@@ -272,9 +271,9 @@ public class CrystalOverlay {
GlStateManager.translate(-viewerX, -viewerY, -viewerZ);
GL11.glPolygonOffset(5, 5);
- for(CrystalType type : crystals.keySet()) {
+ for (CrystalType type : crystals.keySet()) {
ReverseWorldRenderer worldRenderer = type.getOverlayVBO();
- if(worldRenderer != null && worldRenderer.getVertexCount() > 0) {
+ if (worldRenderer != null && worldRenderer.getVertexCount() > 0) {
BlockPos crystal = crystals.get(type);
GlStateManager.translate(crystal.getX(), crystal.getY(), crystal.getZ());
@@ -315,57 +314,57 @@ public class CrystalOverlay {
//vertical
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f, c.getGreen()/255f, c.getBlue()/255f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f, c.getGreen() / 255f, c.getBlue() / 255f, c.getAlpha() / 255f * alpha).endVertex();
//x
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.8f, c.getGreen()/255f*0.8f, c.getBlue()/255f*0.8f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.8f, c.getGreen() / 255f * 0.8f, c.getBlue() / 255f * 0.8f, c.getAlpha() / 255f * alpha).endVertex();
//z
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.minZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.minY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.maxX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
worldrenderer.pos(p_181561_0_.minX, p_181561_0_.maxY, p_181561_0_.maxZ)
- .color(c.getRed()/255f*0.9f, c.getGreen()/255f*0.9f, c.getBlue()/255f*0.9f, c.getAlpha()/255f*alpha).endVertex();
+ .color(c.getRed() / 255f * 0.9f, c.getGreen() / 255f * 0.9f, c.getBlue() / 255f * 0.9f, c.getAlpha() / 255f * alpha).endVertex();
}
}