Skip to content

Commit a8572bd

Browse files
Edit Dungeon Map Marker Scaling and Fix #609
1 parent 1b1d47b commit a8572bd

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

src/main/java/codes/biscuit/skyblockaddons/asm/hooks/GuiChestHook.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class GuiChestHook {
5353

5454
private static final int REFORGE_MENU_HEIGHT = 222 - 108 + 5 * 18;
5555

56+
@Getter
5657
private static IslandWarpGui islandWarpGui = null;
5758

5859
/** Reforge filter text field for reforges to match */
@@ -169,8 +170,7 @@ public static void drawScreenIslands(int mouseX, int mouseY, ReturnValue<?> retu
169170
markers.put(marker, IslandWarpGui.UnlockedStatus.UNKNOWN);
170171
}
171172
}
172-
//markers.put(IslandWarpGui.Marker.DWARVEN_FORGE, markers.getOrDefault(IslandWarpGui.Marker.DEEP_CAVERNS, IslandWarpGui.UnlockedStatus.UNKNOWN));
173-
markers.put(IslandWarpGui.Marker.DUNGEON_HUB_ISLAND, markers.getOrDefault(IslandWarpGui.Marker.DUNGEON_HUB, IslandWarpGui.UnlockedStatus.UNKNOWN));
173+
174174
if (islandWarpGui == null || !islandWarpGui.getMarkers().equals(markers)) {
175175
islandWarpGui = new IslandWarpGui(markers);
176176
ScaledResolution scaledresolution = new ScaledResolution(mc);

src/main/java/codes/biscuit/skyblockaddons/features/dungeonmap/DungeonMapManager.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public static void drawDungeonsMap(Minecraft mc, float scale, ButtonLocation but
209209
}
210210

211211
MapItemRenderer.Instance instance = mc.entityRenderer.getMapItemRenderer().getMapRendererInstance(mapData);
212-
drawMapEdited(instance, isScoreSummary, zoomScaleFactor);
212+
drawMapEdited(instance, isScoreSummary, totalScaleFactor);
213213
}
214214
} catch (Exception ex) {
215215
ex.printStackTrace();
@@ -238,7 +238,7 @@ public static void drawDungeonsMap(Minecraft mc, float scale, ButtonLocation but
238238

239239
private static final Map<String, Vec4b> savedMapDecorations = new HashMap<>();
240240

241-
public static void drawMapEdited(MapItemRenderer.Instance instance, boolean isScoreSummary, float zoom) {
241+
public static void drawMapEdited(MapItemRenderer.Instance instance, boolean isScoreSummary, float markerScale) {
242242
Minecraft mc = Minecraft.getMinecraft();
243243
int startX = 0;
244244
int startY = 0;
@@ -336,11 +336,13 @@ else if (player == mc.thePlayer) {
336336
}
337337
}
338338

339+
markerScale = (float) (-0.75F * Math.pow((markerScale - 1.5F), 2F) + 3F);
340+
339341
for (MapMarker mapMarker : allMarkers) {
340342
GlStateManager.pushMatrix();
341343
GlStateManager.translate((float)startX + mapMarker.getX() / 2.0F + 64.0F, (float)startY + mapMarker.getZ() / 2.0F + 64.0F, -0.02F);
342344
GlStateManager.rotate((mapMarker.getRotation() * 360) / 16.0F, 0.0F, 0.0F, 1.0F);
343-
GlStateManager.scale(4.0F/zoom, 4.0F/zoom, 3.0F);
345+
GlStateManager.scale(markerScale, markerScale, 3.0F);
344346
byte iconType = mapMarker.getIconType();
345347
float f1 = (float)(iconType % 4) / 4.0F;
346348
float f2 = (float)(iconType / 4) / 4.0F;

src/main/java/codes/biscuit/skyblockaddons/gui/IslandWarpGui.java

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class IslandWarpGui extends GuiScreen {
4343

4444
private Marker selectedMarker;
4545
private boolean guiIsActualWarpMenu = false;
46+
@Getter
4647
private boolean foundAdvancedWarpToggle = false;
4748

4849
public static float ISLAND_SCALE;

src/main/java/codes/biscuit/skyblockaddons/gui/buttons/IslandMarkerButton.java

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package codes.biscuit.skyblockaddons.gui.buttons;
22

3-
import codes.biscuit.skyblockaddons.SkyblockAddons;
3+
import codes.biscuit.skyblockaddons.asm.hooks.GuiChestHook;
44
import codes.biscuit.skyblockaddons.gui.IslandWarpGui;
55
import codes.biscuit.skyblockaddons.utils.ColorCode;
66
import codes.biscuit.skyblockaddons.utils.ColorUtils;
@@ -19,7 +19,7 @@ public class IslandMarkerButton extends GuiButton {
1919

2020
private static final ResourceLocation PORTAL_ICON = new ResourceLocation("skyblockaddons", "portal.png");
2121

22-
@Getter private IslandWarpGui.Marker marker;
22+
@Getter private final IslandWarpGui.Marker marker;
2323

2424
private float centerX;
2525
private float centerY;
@@ -33,7 +33,6 @@ public IslandMarkerButton(IslandWarpGui.Marker marker) {
3333

3434
public void drawButton(float islandX, float islandY, float expansion, boolean hovered, boolean islandUnlocked, IslandWarpGui.UnlockedStatus status) {
3535
Minecraft mc = Minecraft.getMinecraft();
36-
SkyblockAddons main = SkyblockAddons.getInstance();
3736

3837
float width = 50*expansion;
3938
float height = width*(100/81F); // Ratio is 81w : 100h
@@ -43,7 +42,16 @@ public void drawButton(float islandX, float islandY, float expansion, boolean ho
4342

4443
this.centerX = centerX;
4544
this.centerY = centerY;
46-
this.unlocked = status == IslandWarpGui.UnlockedStatus.UNLOCKED || status == IslandWarpGui.UnlockedStatus.IN_COMBAT;
45+
46+
/*
47+
Assume crystal hollows and forge are unlocked for non-MVP+ players due to a Hypixel bug that causes those warps
48+
to not show in the menu even when unlocked.
49+
*/
50+
this.unlocked = status == IslandWarpGui.UnlockedStatus.UNLOCKED ||
51+
status == IslandWarpGui.UnlockedStatus.IN_COMBAT ||
52+
(!GuiChestHook.getIslandWarpGui().isFoundAdvancedWarpToggle() &&
53+
(marker == IslandWarpGui.Marker.CRYSTAL_HOLLOWS ||
54+
marker == IslandWarpGui.Marker.DWARVEN_FORGE));
4755

4856
float x = centerX-(width/2);
4957
float y = centerY-(height/2);

0 commit comments

Comments
 (0)