diff --git a/src/main/java/net/silentclient/client/cosmetics/AbstractShieldRenderer.java b/src/main/java/net/silentclient/client/cosmetics/AbstractShieldRenderer.java index 23beeed..c3b63e1 100644 --- a/src/main/java/net/silentclient/client/cosmetics/AbstractShieldRenderer.java +++ b/src/main/java/net/silentclient/client/cosmetics/AbstractShieldRenderer.java @@ -5,6 +5,7 @@ import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.renderer.entity.layers.LayerRenderer; +import net.minecraft.item.ItemStack; import net.silentclient.client.Client; import net.silentclient.client.blc.BlcGlStateManager; import net.silentclient.client.mixin.ducks.AbstractClientPlayerExt; @@ -12,7 +13,7 @@ import net.silentclient.client.mods.settings.CosmeticsMod; public class AbstractShieldRenderer extends ModelBase implements LayerRenderer { private final RenderPlayer playerRenderer; - + public AbstractShieldRenderer(RenderPlayer playerRendererIn) { this.playerRenderer = playerRendererIn; @@ -43,7 +44,8 @@ public class AbstractShieldRenderer extends ModelBase implements LayerRenderer= setting.getMin()) { + setting.setValDouble(scale); + } + } + + ((ModDraggable) m).renderEditing(mouseX, mouseY, scaledresolution, debug, this); } } @@ -193,11 +208,6 @@ public class HUDConfigScreen extends GuiScreen { } } - @Override - protected void mouseClickMove(int x, int y, int button, long time) { - super.mouseClickMove(x, y, button, time); - } - @Override public void onGuiClosed() { MenuBlurUtils.unloadBlur(); @@ -216,6 +226,7 @@ public class HUDConfigScreen extends GuiScreen { for(Mod m : Client.getInstance().getModInstances().getMods()) { if(m instanceof ModDraggable) { ((ModDraggable) m).setDragging(false); + ((ModDraggable) m).setCornerScalingType(CornerScalingType.NONE); } } } @@ -226,6 +237,10 @@ public class HUDConfigScreen extends GuiScreen { ScaledResolution scaledResolution = new ScaledResolution(mc); for(Mod m : Client.getInstance().getModInstances().getMods()) { if(m.isEnabled() && m instanceof ModDraggable) { + if(((ModDraggable) m).cornerDotHovered(mouseX, mouseY, CornerScalingType.BOTTOM_RIGHT)) { + ((ModDraggable) m).setCornerScalingType(CornerScalingType.BOTTOM_RIGHT); + break; + } boolean hovered = ((ModDraggable) m).isHovered(mouseX, mouseY, scaledResolution); if(hovered) { @@ -249,4 +264,12 @@ public class HUDConfigScreen extends GuiScreen { public boolean doesGuiPauseGame() { return true; } + + public enum CornerScalingType { + NONE, + TOP_LEFT, + TOP_RIGHT, + BOTTOM_LEFT, + BOTTOM_RIGHT + } } \ No newline at end of file diff --git a/src/main/java/net/silentclient/client/mods/ModDraggable.java b/src/main/java/net/silentclient/client/mods/ModDraggable.java index e46a896..58d71a3 100644 --- a/src/main/java/net/silentclient/client/mods/ModDraggable.java +++ b/src/main/java/net/silentclient/client/mods/ModDraggable.java @@ -2,6 +2,7 @@ package net.silentclient.client.mods; import java.awt.Color; +import net.silentclient.client.gui.util.RenderUtil; import net.silentclient.client.mixin.accessors.GuiAccessor; import org.lwjgl.opengl.GL11; @@ -30,9 +31,9 @@ public abstract class ModDraggable extends Mod implements IRenderer { private boolean isDragging, hide; private int draggingX, draggingY; - - public SimpleAnimation editOpacityAnimation = new SimpleAnimation(0.0F); - + + private HUDConfigScreen.CornerScalingType cornerScalingType; + public ModDraggable(String name, ModCategory category, String icon) { super(name, category, icon); this.pos = ScreenPosition.fromRelativePosition(0, 0); @@ -136,6 +137,7 @@ public abstract class ModDraggable extends Mod implements IRenderer { if((this.getScaledHeight() + y) > scaledresolution.getScaledHeight()) { y = (int) (y - ((this.getScaledHeight() + y) - scaledresolution.getScaledHeight())); } + pos = ScreenPosition.fromAbsolute(x, y); if(debug) { GlStateManager.pushMatrix(); int debugX = (int) (x + this.getScaledWidth()) + 1; @@ -158,6 +160,10 @@ public abstract class ModDraggable extends Mod implements IRenderer { Client.getInstance().getSilentFontRenderer().drawString(debugX, debugY + 24, "height: " + (int) this.getScaledHeight(), 6, SilentFontRenderer.FontType.TITLE); ColorUtils.setColor(-1); Client.getInstance().getSilentFontRenderer().drawString(debugX, debugY + 30, "dragging: " + this.isDragging(), 6, SilentFontRenderer.FontType.TITLE); + ColorUtils.setColor(-1); + Client.getInstance().getSilentFontRenderer().drawString(debugX, debugY + 36, "cursor: " + Client.getInstance().getMouseCursorHandler().getCurrentCursor(), 6, SilentFontRenderer.FontType.TITLE); + ColorUtils.setColor(-1); + Client.getInstance().getSilentFontRenderer().drawString(debugX, debugY + 42, "corner: " + (pos.getAbsoluteX() + (getCornerX(HUDConfigScreen.CornerScalingType.BOTTOM_RIGHT) * getScale())) + ", " + (pos.getAbsoluteY() + (getCornerY(HUDConfigScreen.CornerScalingType.BOTTOM_RIGHT) * getScale())), 6, SilentFontRenderer.FontType.TITLE); GlStateManager.popMatrix(); } ColorUtils.setColor(-1); @@ -166,10 +172,60 @@ public abstract class ModDraggable extends Mod implements IRenderer { GlStateManager.scale(this.getScale(), this.getScale(), this.getScale()); this.renderDummy(pos); boolean hovered = this.isHovered(mouseX, mouseY, scaledresolution); - this.drawHollowRect(0, 0, this.getWidth(), this.getHeight(), hovered || this.isDragging() ? new Color(245, 188, 0).getRGB() : -1, instance); + int hoverColor = new Color(245, 188, 0).getRGB(); + this.drawHollowRect(0, 0, this.getWidth(), this.getHeight(), hovered || this.isDragging() ? hoverColor : -1, instance); + this.drawCornerDot(mouseX, mouseY, HUDConfigScreen.CornerScalingType.BOTTOM_RIGHT); GlStateManager.popMatrix(); } + private void drawCornerDot(int mouseX, int mouseY, HUDConfigScreen.CornerScalingType cornerType) { + int color = -1; + + if(this.cornerDotHovered(mouseX, mouseY, cornerType)) { + color = new Color(245, 188, 0).getRGB(); + } + + RenderUtil.drawRoundedRect(getCornerX(cornerType), getCornerY(cornerType), getCornerX(cornerType) + 3, getCornerY(cornerType) + 3, 3, color); + } + + public int getCornerX(HUDConfigScreen.CornerScalingType cornerType) { + int x = 0; + + switch (cornerType) { + case TOP_LEFT: + case BOTTOM_LEFT: + x = -1; + break; + case TOP_RIGHT: + case BOTTOM_RIGHT: + x = this.getWidth() - 1; + break; + } + + return x; + } + + public int getCornerY(HUDConfigScreen.CornerScalingType cornerType) { + int y = 0; + + switch (cornerType) { + case TOP_LEFT: + case TOP_RIGHT: + y = -1; + break; + case BOTTOM_LEFT: + case BOTTOM_RIGHT: + y = this.getHeight() - 1; + break; + } + + return y; + } + + public boolean cornerDotHovered(int mouseX, int mouseY, HUDConfigScreen.CornerScalingType cornerType) { + return MouseUtils.isInside(mouseX, mouseY, pos.getAbsoluteX() + (getCornerX(cornerType) * getScale()), pos.getAbsoluteY() + (getCornerY(cornerType) * getScale()), 3 * getScale(), 3 * getScale()); + } + private void drawHollowRect(int x, int y, int w, int h, int color, Gui instance) { ((GuiAccessor) instance).silent$drawHorizontalLine(x, x + w, y, color); ((GuiAccessor) instance).silent$drawHorizontalLine(x, x + w, y + h, color); @@ -257,4 +313,12 @@ public abstract class ModDraggable extends Mod implements IRenderer { public void setHide(boolean hide) { this.hide = hide; } + + public HUDConfigScreen.CornerScalingType getCornerScalingType() { + return cornerScalingType; + } + + public void setCornerScalingType(HUDConfigScreen.CornerScalingType cornerScalingType) { + this.cornerScalingType = cornerScalingType; + } } diff --git a/src/main/java/net/silentclient/client/utils/MouseCursorHandler.java b/src/main/java/net/silentclient/client/utils/MouseCursorHandler.java index 260757e..33e3f1a 100644 --- a/src/main/java/net/silentclient/client/utils/MouseCursorHandler.java +++ b/src/main/java/net/silentclient/client/utils/MouseCursorHandler.java @@ -108,6 +108,10 @@ public class MouseCursorHandler { } } + public CursorType getCurrentCursor() { + return currentCursor; + } + public enum CursorType { NORMAL, diff --git a/src/main/resources/assets/minecraft/silentclient/default_bandana/0.png b/src/main/resources/assets/minecraft/silentclient/default_bandana/0.png deleted file mode 100644 index d109fbf..0000000 Binary files a/src/main/resources/assets/minecraft/silentclient/default_bandana/0.png and /dev/null differ diff --git a/src/main/resources/assets/minecraft/silentclient/default_cape/0.png b/src/main/resources/assets/minecraft/silentclient/default_cape/0.png deleted file mode 100644 index 8b139e4..0000000 Binary files a/src/main/resources/assets/minecraft/silentclient/default_cape/0.png and /dev/null differ diff --git a/src/main/resources/assets/minecraft/silentclient/default_cape/shoulders.png b/src/main/resources/assets/minecraft/silentclient/default_cape/shoulders.png deleted file mode 100644 index 8b139e4..0000000 Binary files a/src/main/resources/assets/minecraft/silentclient/default_cape/shoulders.png and /dev/null differ diff --git a/src/main/resources/assets/minecraft/silentclient/default_wings.png b/src/main/resources/assets/minecraft/silentclient/default_wings.png deleted file mode 100644 index b8a680c..0000000 Binary files a/src/main/resources/assets/minecraft/silentclient/default_wings.png and /dev/null differ