Begin basic HUDElement system
Need to allow moving and such by specifying a clickable area Will probably have the element override getClickableArea() and return a default. We'll then set that to new values after being moved.
This commit is contained in:
parent
f043eb0fde
commit
1d8a47ce1e
4 changed files with 155 additions and 49 deletions
src/main/java/WayofTime/bloodmagic/client/hud
|
@ -0,0 +1,58 @@
|
|||
package WayofTime.bloodmagic.client.hud;
|
||||
|
||||
import WayofTime.bloodmagic.util.handler.event.ClientHandler;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.VertexBuffer;
|
||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public abstract class HUDElement {
|
||||
|
||||
private int xOffset;
|
||||
private int yOffset;
|
||||
private final int xOffsetDefault;
|
||||
private final int yOffsetDefault;
|
||||
private final RenderGameOverlayEvent.ElementType elementType;
|
||||
|
||||
public HUDElement(int xOffset, int yOffset, RenderGameOverlayEvent.ElementType elementType) {
|
||||
this.xOffset = xOffset;
|
||||
this.xOffsetDefault = xOffset;
|
||||
this.yOffset = yOffset;
|
||||
this.yOffsetDefault = yOffset;
|
||||
this.elementType = elementType;
|
||||
|
||||
ClientHandler.hudElements.add(this);
|
||||
}
|
||||
|
||||
public abstract void render(Minecraft minecraft, ScaledResolution resolution, float partialTicks);
|
||||
|
||||
public abstract boolean shouldRender(Minecraft minecraft);
|
||||
|
||||
public void onPositionChanged() {
|
||||
|
||||
}
|
||||
|
||||
public void resetToDefault() {
|
||||
this.xOffset = xOffsetDefault;
|
||||
this.yOffset = yOffsetDefault;
|
||||
}
|
||||
|
||||
public void drawTexturedModalRect(int x, int y, int textureX, int textureY, int width, int height) {
|
||||
float f = 0.00390625F;
|
||||
float f1 = 0.00390625F;
|
||||
Tessellator tessellator = Tessellator.getInstance();
|
||||
VertexBuffer vertexbuffer = tessellator.getBuffer();
|
||||
vertexbuffer.begin(7, DefaultVertexFormats.POSITION_TEX);
|
||||
vertexbuffer.pos((double)(x + 0), (double)(y + height), 0).tex((double)((float)(textureX + 0) * f), (double)((float)(textureY + height) * f1)).endVertex();
|
||||
vertexbuffer.pos((double)(x + width), (double)(y + height), 0).tex((double)((float)(textureX + width) * f), (double)((float)(textureY + height) * f1)).endVertex();
|
||||
vertexbuffer.pos((double)(x + width), (double)(y + 0), 0).tex((double)((float)(textureX + width) * f), (double)((float)(textureY + 0) * f1)).endVertex();
|
||||
vertexbuffer.pos((double)(x + 0), (double)(y + 0), 0).tex((double)((float)(textureX + 0) * f), (double)((float)(textureY + 0) * f1)).endVertex();
|
||||
tessellator.draw();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue