Fixes capes, adds HudEditor labels to potion effects for the player & enemy if there are no effects currently on them

This commit is contained in:
noil 2020-11-01 20:34:51 -05:00
parent d6eaac9cf4
commit 4c40e70ed9
3 changed files with 46 additions and 31 deletions

View File

@ -94,7 +94,7 @@ public final class EnemyPotionsComponent extends DraggableHudComponent {
if (Minecraft.getMinecraft().currentScreen instanceof GuiHudEditor) {
if (effectCount == 0) {
final String placeholder = "Enemy Potions";
final String placeholder = "(enemy potion effects)";
this.setW(mc.fontRenderer.getStringWidth(placeholder));
this.setH(mc.fontRenderer.FONT_HEIGHT);
mc.fontRenderer.drawStringWithShadow(placeholder, this.getX(), this.getY(), 0xFFFFFFFF);
@ -105,4 +105,4 @@ public final class EnemyPotionsComponent extends DraggableHudComponent {
this.setW(maxWidth);
this.setH(Math.abs(yOffset));
}
}
}

View File

@ -3,6 +3,7 @@ package me.rigamortis.seppuku.impl.gui.hud.component;
import com.mojang.realmsclient.gui.ChatFormatting;
import me.rigamortis.seppuku.api.gui.hud.component.DraggableHudComponent;
import me.rigamortis.seppuku.api.util.PotionUtil;
import me.rigamortis.seppuku.impl.gui.hud.GuiHudEditor;
import net.minecraft.client.Minecraft;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
@ -25,13 +26,15 @@ public final class PotionEffectsComponent extends DraggableHudComponent {
public void render(int mouseX, int mouseY, float partialTicks) {
super.render(mouseX, mouseY, partialTicks);
final Minecraft mc = Minecraft.getMinecraft();
final List<PotionEffect> effects =
new ArrayList<>(Minecraft.getMinecraft().player.getActivePotionEffects());
new ArrayList<>(mc.player.getActivePotionEffects());
final Comparator<PotionEffect> comparator = (first, second) -> {
final String firstEffect = PotionUtil.getFriendlyPotionName(first) + " " + ChatFormatting.GRAY + Potion.getPotionDurationString(first, 1.0F);
final String secondEffect = PotionUtil.getFriendlyPotionName(second) + " " + ChatFormatting.GRAY + Potion.getPotionDurationString(second, 1.0F);
final float dif = Minecraft.getMinecraft().fontRenderer.getStringWidth(secondEffect) - Minecraft.getMinecraft().fontRenderer.getStringWidth(firstEffect);
final float dif = mc.fontRenderer.getStringWidth(secondEffect) - mc.fontRenderer.getStringWidth(firstEffect);
return dif != 0 ? (int) dif : secondEffect.compareTo(firstEffect);
};
@ -45,7 +48,7 @@ public final class PotionEffectsComponent extends DraggableHudComponent {
if (potionEffect != null) {
final String effect = PotionUtil.getFriendlyPotionName(potionEffect) + " " + ChatFormatting.GRAY + Potion.getPotionDurationString(potionEffect, 1.0F);
final float width = Minecraft.getMinecraft().fontRenderer.getStringWidth(effect);
final float width = mc.fontRenderer.getStringWidth(effect);
if (width >= maxWidth) {
maxWidth = width;
@ -54,7 +57,7 @@ public final class PotionEffectsComponent extends DraggableHudComponent {
if (this.getAnchorPoint() != null) {
switch (this.getAnchorPoint().getPoint()) {
case TOP_CENTER:
xOffset = (this.getW() - Minecraft.getMinecraft().fontRenderer.getStringWidth(effect)) / 2;
xOffset = (this.getW() - mc.fontRenderer.getStringWidth(effect)) / 2;
break;
case TOP_LEFT:
case BOTTOM_LEFT:
@ -62,7 +65,7 @@ public final class PotionEffectsComponent extends DraggableHudComponent {
break;
case TOP_RIGHT:
case BOTTOM_RIGHT:
xOffset = this.getW() - Minecraft.getMinecraft().fontRenderer.getStringWidth(effect);
xOffset = this.getW() - mc.fontRenderer.getStringWidth(effect);
break;
}
}
@ -72,24 +75,34 @@ public final class PotionEffectsComponent extends DraggableHudComponent {
case TOP_CENTER:
case TOP_LEFT:
case TOP_RIGHT:
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset += (Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT + 1);
mc.fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset += (mc.fontRenderer.FONT_HEIGHT + 1);
break;
case BOTTOM_LEFT:
case BOTTOM_RIGHT:
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + (this.getH() - Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT) + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset -= (Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT + 1);
mc.fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + (this.getH() - mc.fontRenderer.FONT_HEIGHT) + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset -= (mc.fontRenderer.FONT_HEIGHT + 1);
break;
}
} else {
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset += (Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT + 1);
mc.fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + yOffset, potionEffect.getPotion().getLiquidColor());
yOffset += (mc.fontRenderer.FONT_HEIGHT + 1);
}
}
}
if (mc.currentScreen instanceof GuiHudEditor) {
if (effects.size() <= 0) {
final String placeholder = "(my potion effects)";
this.setW(mc.fontRenderer.getStringWidth(placeholder));
this.setH(mc.fontRenderer.FONT_HEIGHT);
mc.fontRenderer.drawStringWithShadow(placeholder, this.getX(), this.getY(), 0xFFFFFFFF);
return;
}
}
this.setW(maxWidth);
this.setH(Math.abs(yOffset));
}
}
}

View File

@ -12,6 +12,7 @@ import team.stiff.pomelo.impl.annotated.handler.annotation.Listener;
import javax.imageio.ImageIO;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@ -19,8 +20,8 @@ import java.util.List;
import java.util.Map;
/**
* Author Seth
* 7/9/2019 @ 5:47 PM.
* @author Seth
* @author noil
*/
public final class CapeManager {
@ -51,20 +52,18 @@ public final class CapeManager {
*/
protected void downloadCapes() {
try {
if (Minecraft.getMinecraft().getTextureManager() != null) {
for (CapeUser user : this.capeUserList) {
if (user != null) {
final ResourceLocation cape = this.findResource(user.getCape());
Minecraft.getMinecraft().getTextureManager();
for (CapeUser user : this.capeUserList) {
if (user != null) {
final ResourceLocation cape = this.findResource(user.getCape());
if (cape == null) {
final DynamicTexture texture = new DynamicTexture(ImageIO.read(new URL("https://seppuku.pw/files/" + user.getCape())));
if (texture != null) {
final ResourceLocation location = Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("seppuku/capes", texture);
if (location != null) {
this.capesMap.put(user.getCape(), location);
}
}
}
if (cape == null) {
URL url = new URL("https://seppuku.pw/files/" + user.getCape());
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.addRequestProperty("User-Agent", "Mozilla/4.76");
final DynamicTexture texture = new DynamicTexture(ImageIO.read(httpURLConnection.getInputStream()));
final ResourceLocation location = Minecraft.getMinecraft().getTextureManager().getDynamicTextureLocation("seppuku/capes", texture);
this.capesMap.put(user.getCape(), location);
}
}
}
@ -93,7 +92,10 @@ public final class CapeManager {
*/
protected void downloadCapeUsers() {
try {
final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL("https://seppuku.pw/files/capes.txt").openStream()));
URL url = new URL("https://seppuku.pw/files/capes.txt");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.addRequestProperty("User-Agent", "Mozilla/4.76");
final BufferedReader reader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
@ -169,4 +171,4 @@ public final class CapeManager {
public void setCapesMap(HashMap<String, ResourceLocation> capesMap) {
this.capesMap = capesMap;
}
}
}