use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class ControlSlide method onRenderBackground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderBackground(int guiWidth, int guiHeight) {
super.onRenderBackground(guiWidth, guiHeight);
if (this.label != null) {
final int lw = RenderUtil.getTextWidth(this.label) + 16;
final int lh = RenderUtil.getTextHeight() + 16;
final boolean hor = this.anchor.x() != 0;
final IArea ar = this.isSlideActive() ? this.expanded : this.shrunk;
IArea tabArea = new Area(hor ? (-lh / 2) : (-lw / 2), hor ? (-lw / 2) : (-lh / 2), hor ? lh : lw, hor ? lw : lh);
final Point shift = new Point(ar.width() * (1 - this.anchor.x()) / 2, ar.height() * (1 - this.anchor.y()) / 2);
tabArea = tabArea.shift(shift.xPos() - (-3 + lh / 2) * this.anchor.x(), shift.yPos() - (-3 + lh / 2) * this.anchor.y());
ITexture texture = CraftGUI.RENDER.getTexture(this.isSlideActive() ? CraftGUITexture.TAB : CraftGUITexture.TAB_DISABLED).crop(this.anchor.opposite(), 8);
CraftGUI.RENDER.texture(texture, tabArea);
texture = CraftGUI.RENDER.getTexture(CraftGUITexture.TAB_OUTLINE).crop(this.anchor.opposite(), 8);
CraftGUI.RENDER.texture(texture, tabArea.inset(2));
final Area labelArea = new Area(-lw / 2, 0, lw, lh);
GlStateManager.pushMatrix();
GlStateManager.translate(shift.xPos() + this.anchor.x() * 2, shift.yPos() + this.anchor.y() * 2, 0);
if (this.anchor.x() != 0) {
GlStateManager.rotate(90.0f, 0.0f, 0.0f, this.anchor.x());
}
if (this.anchor.y() > 0) {
GlStateManager.translate(0.0f, -lh, 0.0f);
}
RenderUtil.drawText(labelArea, TextJustification.MIDDLE_CENTER, this.label, 16777215);
GlStateManager.popMatrix();
}
CraftGUI.RENDER.texture(CraftGUITexture.WINDOW, this.getArea());
final Object slideTexture = (this.anchor == Alignment.BOTTOM) ? CraftGUITexture.SLIDE_DOWN : ((this.anchor == Alignment.TOP) ? CraftGUITexture.SLIDE_UP : ((this.anchor == Alignment.LEFT) ? CraftGUITexture.SLIDE_LEFT : CraftGUITexture.SLIDE_RIGHT));
CraftGUI.RENDER.texture(slideTexture, new Point((this.anchor.x() + 1) * this.getWidth() / 2 - 8, (this.anchor.y() + 1) * this.getHeight() / 2 - 8));
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class ControlLumbermillProgress method onRenderForeground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderForeground(int guiWidth, int guiHeight) {
GlStateManager.disableLighting();
final int sawX = (int) (63 * this.progress);
CraftGUI.RENDER.texture(ControlLumbermillProgress.SAW, new Point(sawX, -8 + Math.round(6 * (float) Math.sin(this.animation))));
final ItemStack item = Window.get(this).getInventory().getStackInSlot(LumbermillMachine.SLOT_LOG);
if (item.isEmpty()) {
return;
}
GlStateManager.disableLighting();
Block block = null;
if (item.getItem() instanceof ItemBlock) {
block = ((ItemBlock) item.getItem()).getBlock();
}
if (block == null) {
return;
}
// TODO RENDERING
// final IIcon icon = block.getIcon(2, item.getItemDamage());
TextureAtlasSprite icon = getWoodSprite(item);
for (int i = 0; i < 4; ++i) {
// CraftGUI.Render.iconBlock(new IPoint(1 + i * 16, 1), icon);
RenderUtil.drawSprite(new Point(1 + i * 16, 1), icon);
}
final ItemStack result = LumbermillRecipeManager.getPlankProduct(item, Minecraft.getMinecraft().world);
if (result.isEmpty()) {
return;
}
Block block2 = null;
if (result.getItem() instanceof ItemBlock) {
block2 = ((ItemBlock) result.getItem()).getBlock();
}
if (block2 == null) {
return;
}
// final IIcon icon2 = block2.getIcon(2, result.getItemDamage());
TextureAtlasSprite sprite = getWoodSprite(result);
final IPoint pos = this.getAbsolutePosition();
CraftGUI.RENDER.limitArea(new Area(pos.add(Point.ZERO), new Point(Math.round(this.progress * 64) + 2, 18)), guiWidth, guiHeight);
GL11.glEnable(GL11.GL_SCISSOR_TEST);
for (int j = 0; j < 4; ++j) {
// TODO RENDERING
RenderUtil.drawSprite(new Point(1 + j * 16, 1), sprite);
}
GL11.glDisable(GL11.GL_SCISSOR_TEST);
CraftGUI.RENDER.texture(ControlLumbermillProgress.SAW, new Point(sawX, -8 + Math.round(6 * (float) Math.sin(this.animation))));
CraftGUI.RENDER.texture(ControlLumbermillProgress.SAW_2, new Point(sawX + 2, -8 + Math.round(6 * (float) Math.sin(this.animation))));
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class ControlFruitPressProgress method onRenderForeground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderForeground(int guiWidth, int guiHeight) {
GlStateManager.enableBlend();
CraftGUI.RENDER.texture(ControlFruitPressProgress.PressTexture, new Point(0, Math.round(16 * this.progress)));
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class ControlDistilleryProgress method onRenderBackground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderBackground(int guiWidth, int guiHeight) {
CraftGUI.RENDER.texture(DISTILLERY_BASE, Point.ZERO);
CraftGUI.RENDER.texturePercentage(LIQUID_FLOW, new Area(18, 0, 38, 66), Alignment.LEFT, this.progress);
final DistilleryLogic component = Machine.getInterface(DistilleryLogic.class, Window.get(this).getInventory());
FluidStack stack = null;
if (component != null) {
stack = component.getCurrentFluid();
}
if (stack != null) {
for (int y = 0; y < 4; ++y) {
RenderUtil.drawFluid(new Point(1, 1 + y * 16), stack);
}
}
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class PagePlanksOverview method onValueChanged.
@Override
public void onValueChanged(final ItemStack species) {
this.deleteAllChildren();
final WindowAbstractDatabase database = Window.get(this);
IPoint size = getSize();
new ControlText(this, new Area(0, 0, size.xPos(), 24), species.getDisplayName(), TextJustification.MIDDLE_CENTER);
new ControlText(this, new Area(12, 24, size.xPos() - 24, 24), I18N.localise(DatabaseConstants.EXTRATREES_KEY + ".planks.use"), TextJustification.MIDDLE_LEFT);
final IPlankType type = WoodManager.getPlankType(species);
int x = 12;
if (type != null) {
final ItemStack fence = WoodManager.getFence(type, new FenceType(0), 1);
final ItemStack gate = WoodManager.getGate(type);
final ItemStack door = WoodManager.getDoor(type);
if (!fence.isEmpty()) {
new ControlItemDisplay(this, x, 48).setItemStack(fence);
x += 22;
}
if (!gate.isEmpty()) {
new ControlItemDisplay(this, x, 48).setItemStack(gate);
x += 22;
}
if (!door.isEmpty()) {
new ControlItemDisplay(this, x, 48).setItemStack(door);
x += 22;
}
}
final ControlText controlDescription = new ControlText(this, new Area(8, 84, this.getSize().xPos() - 16, 0), "", TextJustification.MIDDLE_CENTER);
final ControlText controlSignature = new ControlText(this, new Area(8, 84, this.getSize().xPos() - 16, 0), "", TextJustification.BOTTOM_RIGHT);
String desc = "";
if (type != null) {
desc = type.getDescription();
}
StringBuilder descBody = new StringBuilder("§o");
String descSig = "";
if (desc == null || desc.length() == 0) {
descBody.append(I18N.localise(DatabaseConstants.KEY + ".nodescription"));
} else {
final String[] descStrings = desc.split("\\|");
descBody.append(descStrings[0]);
for (int i = 1; i < descStrings.length - 1; ++i) {
descBody.append(' ').append(descStrings[i]);
}
if (descStrings.length > 1) {
descSig += descStrings[descStrings.length - 1];
}
}
controlDescription.setValue(descBody + "§r");
controlSignature.setValue(descSig + "§r");
final int descHeight = CraftGUI.RENDER.textHeight(controlDescription.getValue(), controlDescription.getSize().xPos());
controlSignature.setPosition(new Point(controlSignature.getPosition().xPos(), controlDescription.getPosition().yPos() + descHeight + 10));
}
Aggregations