aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils
diff options
context:
space:
mode:
authorKevin <92656833+kevinthegreat1@users.noreply.github.com>2023-10-28 00:50:38 -0400
committerGitHub <noreply@github.com>2023-10-28 00:50:38 -0400
commit9edc4849a387aef3ac53d43573cfe53f5e06a5eb (patch)
tree3b0059dee9f41691e8332aafbf27f276379bebde /src/main/java/de/hysky/skyblocker/utils
parent158782dabf00a009d7a431f20d4cb2227ffc4298 (diff)
parent1cbf455f1b065db83a9b2f433a68fb99d0647494 (diff)
downloadSkyblocker-9edc4849a387aef3ac53d43573cfe53f5e06a5eb.tar.gz
Skyblocker-9edc4849a387aef3ac53d43573cfe53f5e06a5eb.tar.bz2
Skyblocker-9edc4849a387aef3ac53d43573cfe53f5e06a5eb.zip
Merge pull request #389 from AzureAaron/museum-cache
Museum Item Cache
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Http.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Utils.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java43
3 files changed, 42 insertions, 12 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/Http.java b/src/main/java/de/hysky/skyblocker/utils/Http.java
index c961b56f..eabb02e4 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Http.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Http.java
@@ -51,7 +51,7 @@ public class Http {
InputStream decodedInputStream = getDecodedInputStream(response);
String body = new String(decodedInputStream.readAllBytes());
- return new ApiResponse(body, getCacheStatus(response.headers()));
+ return new ApiResponse(body, response.statusCode(), getCacheStatus(response.headers()));
}
public static HttpHeaders sendHeadRequest(String url) throws IOException, InterruptedException {
@@ -120,7 +120,11 @@ public class Http {
}
//TODO If ever needed, we could just replace cache status with the response headers and go from there
- public record ApiResponse(String content, String cacheStatus) {
+ public record ApiResponse(String content, int statusCode, String cacheStatus) {
+
+ public boolean ok() {
+ return statusCode == 200;
+ }
public boolean cached() {
return cacheStatus.equals("HIT");
diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java
index 1205c71b..ff406b61 100644
--- a/src/main/java/de/hysky/skyblocker/utils/Utils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java
@@ -3,6 +3,7 @@ package de.hysky.skyblocker.utils;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import de.hysky.skyblocker.events.SkyblockEvents;
+import de.hysky.skyblocker.skyblock.item.MuseumItemCache;
import de.hysky.skyblocker.skyblock.item.PriceInfoTooltip;
import de.hysky.skyblocker.skyblock.rift.TheRift;
import de.hysky.skyblocker.utils.scheduler.MessageScheduler;
@@ -365,6 +366,8 @@ public class Utils {
if (isOnSkyblock && message.startsWith("Profile ID: ")) {
profileId = message.replace("Profile ID: ", "");
+
+ MuseumItemCache.tick(profileId);
}
return true;
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
index 4cfaef8f..064b564c 100644
--- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
+++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java
@@ -5,7 +5,6 @@ import de.hysky.skyblocker.mixin.accessor.BeaconBlockEntityRendererInvoker;
import de.hysky.skyblocker.utils.render.culling.OcclusionCulling;
import de.hysky.skyblocker.utils.render.title.Title;
import de.hysky.skyblocker.utils.render.title.TitleContainer;
-import me.x150.renderer.render.Renderer3d;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
@@ -22,8 +21,6 @@ import org.joml.Matrix3f;
import org.joml.Matrix4f;
import org.lwjgl.opengl.GL11;
-import java.awt.*;
-
public class RenderHelper {
private static final Vec3d ONE = new Vec3d(1, 1, 1);
private static final int MAX_OVERWORLD_BUILD_HEIGHT = 319;
@@ -36,20 +33,46 @@ public class RenderHelper {
public static void renderFilledThroughWalls(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
if (FrustumUtils.isVisible(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1)) {
- Renderer3d.renderThroughWalls();
- renderFilled(context, pos, colorComponents, alpha);
- Renderer3d.stopRenderThroughWalls();
+ renderFilled(context, Vec3d.of(pos), ONE, colorComponents, alpha, true);
}
}
public static void renderFilledIfVisible(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
if (OcclusionCulling.isVisible(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + 1, pos.getZ() + 1)) {
- renderFilled(context, pos, colorComponents, alpha);
+ renderFilled(context, Vec3d.of(pos), ONE, colorComponents, alpha, false);
}
}
-
- private static void renderFilled(WorldRenderContext context, BlockPos pos, float[] colorComponents, float alpha) {
- Renderer3d.renderFilled(context.matrixStack(), new Color(colorComponents[0], colorComponents[1], colorComponents[2], alpha), Vec3d.of(pos), ONE);
+
+ private static void renderFilled(WorldRenderContext context, Vec3d pos, Vec3d dimensions, float[] colorComponents, float alpha, boolean throughWalls) {
+ MatrixStack matrices = context.matrixStack();
+ Vec3d camera = context.camera().getPos();
+ Tessellator tessellator = RenderSystem.renderThreadTesselator();
+ BufferBuilder buffer = tessellator.getBuffer();
+
+ matrices.push();
+ matrices.translate(-camera.x, -camera.y, -camera.z);
+
+ RenderSystem.setShader(GameRenderer::getPositionColorProgram);
+ RenderSystem.setShaderColor(1f, 1f, 1f, 1f);
+ RenderSystem.polygonOffset(-1f, -10f);
+ RenderSystem.enablePolygonOffset();
+ RenderSystem.enableBlend();
+ RenderSystem.defaultBlendFunc();
+ RenderSystem.enableDepthTest();
+ RenderSystem.depthFunc(throughWalls ? GL11.GL_ALWAYS : GL11.GL_LEQUAL);
+ RenderSystem.disableCull();
+
+ buffer.begin(DrawMode.TRIANGLE_STRIP, VertexFormats.POSITION_COLOR);
+ WorldRenderer.renderFilledBox(matrices, buffer, pos.x, pos.y, pos.z, pos.x + dimensions.x, pos.y + dimensions.y, pos.z + dimensions.z, colorComponents[0], colorComponents[1], colorComponents[2], alpha);
+ tessellator.draw();
+
+ matrices.pop();
+ RenderSystem.polygonOffset(0f, 0f);
+ RenderSystem.disablePolygonOffset();
+ RenderSystem.disableBlend();
+ RenderSystem.disableDepthTest();
+ RenderSystem.depthFunc(GL11.GL_LEQUAL);
+ RenderSystem.enableCull();
}
private static void renderBeaconBeam(WorldRenderContext context, BlockPos pos, float[] colorComponents) {