mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-22 19:58:34 +01:00
made the aura display use less numbers and more niceity
This commit is contained in:
parent
2b4bea5e97
commit
0d9a18b41a
4 changed files with 63 additions and 9 deletions
|
@ -41,7 +41,7 @@ public class BasicAuraContainer implements IAuraContainer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAuraColor() {
|
public int getAuraColor() {
|
||||||
return 0x00FF00;
|
return 0x1E891E;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void writeNBT(NBTTagCompound compound) {
|
public void writeNBT(NBTTagCompound compound) {
|
||||||
|
|
|
@ -7,11 +7,17 @@ import de.ellpeck.naturesaura.aura.IAuraContainerProvider;
|
||||||
import de.ellpeck.naturesaura.items.ModItems;
|
import de.ellpeck.naturesaura.items.ModItems;
|
||||||
import de.ellpeck.naturesaura.particles.ParticleHandler;
|
import de.ellpeck.naturesaura.particles.ParticleHandler;
|
||||||
import de.ellpeck.naturesaura.particles.ParticleMagic;
|
import de.ellpeck.naturesaura.particles.ParticleMagic;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.Gui;
|
||||||
import net.minecraft.client.gui.ScaledResolution;
|
import net.minecraft.client.gui.ScaledResolution;
|
||||||
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
|
||||||
|
@ -27,6 +33,8 @@ import java.util.List;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class ClientEvents {
|
public class ClientEvents {
|
||||||
|
|
||||||
|
private static final ResourceLocation OVERLAYS = new ResourceLocation(NaturesAura.MOD_ID, "textures/gui/overlays.png");
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onDebugRender(RenderGameOverlayEvent.Text event) {
|
public void onDebugRender(RenderGameOverlayEvent.Text event) {
|
||||||
if (Minecraft.getMinecraft().gameSettings.showDebugInfo) {
|
if (Minecraft.getMinecraft().gameSettings.showDebugInfo) {
|
||||||
|
@ -61,13 +69,15 @@ public class ClientEvents {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onOverlayRender(RenderGameOverlayEvent.Post event) {
|
public void onOverlayRender(RenderGameOverlayEvent.Post event) {
|
||||||
Minecraft mc = Minecraft.getMinecraft();
|
Minecraft mc = Minecraft.getMinecraft();
|
||||||
if (event.getType() == ElementType.ALL && mc.currentScreen == null) {
|
if (event.getType() == ElementType.ALL /*&& mc.currentScreen == null*/) {
|
||||||
ScaledResolution res = event.getResolution();
|
ScaledResolution res = event.getResolution();
|
||||||
if (mc.player != null) {
|
if (mc.player != null) {
|
||||||
ItemStack stack = mc.player.getHeldItemMainhand();
|
ItemStack stack = mc.player.getHeldItemMainhand();
|
||||||
if (!stack.isEmpty() && stack.getItem() == ModItems.EYE) {
|
if (!stack.isEmpty() && stack.getItem() == ModItems.EYE) {
|
||||||
int maxAura = 0;
|
int maxAura = 0;
|
||||||
int aura = 0;
|
int aura = 0;
|
||||||
|
int total = 0;
|
||||||
|
|
||||||
for (TileEntity tile : Helper.getTileEntitiesInArea(mc.world, mc.player.getPosition(), 15)) {
|
for (TileEntity tile : Helper.getTileEntitiesInArea(mc.world, mc.player.getPosition(), 15)) {
|
||||||
if (tile instanceof IAuraContainerProvider) {
|
if (tile instanceof IAuraContainerProvider) {
|
||||||
IAuraContainerProvider provider = (IAuraContainerProvider) tile;
|
IAuraContainerProvider provider = (IAuraContainerProvider) tile;
|
||||||
|
@ -75,11 +85,28 @@ public class ClientEvents {
|
||||||
IAuraContainer container = provider.container();
|
IAuraContainer container = provider.container();
|
||||||
maxAura += container.getMaxAura();
|
maxAura += container.getMaxAura();
|
||||||
aura += container.getStoredAura();
|
aura += container.getStoredAura();
|
||||||
|
total++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String area = "Aura in the area: " + aura + " / " + maxAura;
|
|
||||||
mc.fontRenderer.drawString(area, 5, 5, 0xFFFFFF, true);
|
GlStateManager.pushMatrix();
|
||||||
|
mc.getTextureManager().bindTexture(OVERLAYS);
|
||||||
|
|
||||||
|
GlStateManager.color(0.8F, 0.25F, 0.25F);
|
||||||
|
float totalPercentage = total / 1500F;
|
||||||
|
int tHeight = MathHelper.ceil(Math.min(1F, totalPercentage) * 75);
|
||||||
|
if (tHeight < 75)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(3, 17, 6, 12, 6, 75 - tHeight, 256, 256);
|
||||||
|
if (tHeight > 0)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(3, 17 + 75 - tHeight, 0, 12 + 75 - tHeight, 6, tHeight, 256, 256);
|
||||||
|
|
||||||
|
GlStateManager.color(0.25F, 0.8F, 0.25F);
|
||||||
|
int aHeight = MathHelper.ceil(aura / (float) maxAura * 75);
|
||||||
|
if (aHeight < 75)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(12, 17, 6, 12, 6, 75 - aHeight, 256, 256);
|
||||||
|
if (aHeight > 0)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(12, 17 + 75 - aHeight, 0, 12 + 75 - aHeight, 6, aHeight, 256, 256);
|
||||||
|
|
||||||
if (mc.objectMouseOver != null) {
|
if (mc.objectMouseOver != null) {
|
||||||
BlockPos pos = mc.objectMouseOver.getBlockPos();
|
BlockPos pos = mc.objectMouseOver.getBlockPos();
|
||||||
|
@ -87,13 +114,37 @@ public class ClientEvents {
|
||||||
TileEntity tile = mc.world.getTileEntity(pos);
|
TileEntity tile = mc.world.getTileEntity(pos);
|
||||||
if (tile instanceof IAuraContainerProvider) {
|
if (tile instanceof IAuraContainerProvider) {
|
||||||
IAuraContainer container = ((IAuraContainerProvider) tile).container();
|
IAuraContainer container = ((IAuraContainerProvider) tile).container();
|
||||||
String s = "Aura stored: " + container.getStoredAura() + " / " + container.getMaxAura();
|
|
||||||
mc.fontRenderer.drawString(s,
|
int color = container.getAuraColor();
|
||||||
(res.getScaledWidth() - mc.fontRenderer.getStringWidth(s)) / 2, res.getScaledHeight() / 4 * 3,
|
GlStateManager.color((color >> 16 & 255) / 255F, (color >> 8 & 255) / 255F, (color & 255) / 255F);
|
||||||
container.getAuraColor(), true);
|
|
||||||
|
int x = res.getScaledWidth() / 2 - 50;
|
||||||
|
int y = res.getScaledHeight() / 2 + 25;
|
||||||
|
int width = MathHelper.ceil(container.getStoredAura() / (float) container.getMaxAura() * 100F);
|
||||||
|
|
||||||
|
if (width < 100)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(x + width, y, width, 0, 100 - width, 6, 256, 256);
|
||||||
|
if (width > 0)
|
||||||
|
Gui.drawModalRectWithCustomSizedTexture(x, y, 0, 6, width, 6, 256, 256);
|
||||||
|
|
||||||
|
IBlockState state = mc.world.getBlockState(pos);
|
||||||
|
ItemStack blockStack = state.getBlock().getPickBlock(state, mc.objectMouseOver, mc.world, pos, mc.player);
|
||||||
|
String s = blockStack.getDisplayName();
|
||||||
|
mc.fontRenderer.drawString(s, x + 50 - mc.fontRenderer.getStringWidth(s) / 2F, y - 9, color, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (totalPercentage > 1F) {
|
||||||
|
mc.fontRenderer.drawString("+", 3F, 9.5F, 0xBB3333, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
float scale = 0.75F;
|
||||||
|
GlStateManager.scale(scale, scale, scale);
|
||||||
|
mc.fontRenderer.drawString(I18n.format("info." + NaturesAura.MOD_ID + ".aura_in_area"), 3 / scale, 3 / scale, 0xBB3333, true);
|
||||||
|
mc.fontRenderer.drawString(I18n.format("info." + NaturesAura.MOD_ID + ".aura_percentage"), 12 / scale, 10 / scale, 0x33BB33, true);
|
||||||
|
|
||||||
|
GlStateManager.popMatrix();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,3 +17,6 @@ item.naturesaura.infused_iron.name=Infused Iron
|
||||||
|
|
||||||
container.naturesaura.tree_ritual.name=Tree Infusion
|
container.naturesaura.tree_ritual.name=Tree Infusion
|
||||||
container.naturesaura.altar.name=Natural Altar
|
container.naturesaura.altar.name=Natural Altar
|
||||||
|
|
||||||
|
info.naturesaura.aura_in_area=Provider Amount
|
||||||
|
info.naturesaura.aura_percentage=Saturation
|
BIN
src/main/resources/assets/naturesaura/textures/gui/overlays.png
Normal file
BIN
src/main/resources/assets/naturesaura/textures/gui/overlays.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Loading…
Reference in a new issue