use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class PageSpeciesTreeGenome method onValueChanged.
// TODO: unused ?
/*public static String tolerated(final boolean t) {
if (t) {
return I18N.localise("binniecore.gui.tolerated");
}
return I18N.localise("binniecore.gui.nottolerated");
}*/
@Override
public void onValueChanged(final IAlleleSpecies species) {
this.deleteAllChildren();
final IAllele[] template = TreeManager.treeRoot.getTemplate(species.getUID());
if (template == null) {
return;
}
final ITree tree = TreeManager.treeRoot.templateAsIndividual(template);
final ITreeGenome genome = tree.getGenome();
final IAlleleTreeSpecies treeSpecies = genome.getPrimary();
final int w = 144;
final int h = 176;
new ControlText(this, new Area(0, 4, w, 16), this.getValue().toString(), TextJustification.MIDDLE_CENTER);
final ControlScrollableContent scrollable = new ControlScrollableContent(this, 4, 20, w - 8, h - 8 - 16, 12);
final Control contents = new Control(scrollable, 0, 0, w - 8 - 12, h - 8 - 16);
final int tw = w - 8 - 12;
final int w2 = 65;
final int w3 = tw - 50;
int y = 0;
final int th = 14;
final int th2 = 18;
final IBreedingSystem syst = Binnie.GENETICS.getSystem(TreeManager.treeRoot);
new ControlText(contents, new Area(w2, y, w3, th), treeSpecies.getPlantType().toString(), TextJustification.MIDDLE_LEFT);
y += th;
new ControlText(contents, new Area(0, y, w2, th), I18N.localise("binniecore.gui.temperature.short") + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), treeSpecies.getTemperature().getName(), TextJustification.MIDDLE_LEFT);
y += th;
Minecraft minecraft = Minecraft.getMinecraft();
World world = minecraft.world;
TextureMap map = minecraft.getTextureMapBlocks();
ILeafSpriteProvider spriteProvider = treeSpecies.getLeafSpriteProvider();
TextureAtlasSprite leaf = map.getAtlasSprite(spriteProvider.getSprite(false, false).toString());
int leafColour = spriteProvider.getColor(false);
new ControlText(contents, new Area(0, y, w2, th2), I18N.localise("extratrees.gui.database.leaves") + " : ", TextJustification.MIDDLE_RIGHT);
new ControlBlockIconDisplay(contents, w2, y, leaf).setColor(leafColour);
IFruitProvider fruitProvider = genome.getFruitProvider();
ResourceLocation fruitSprite = fruitProvider.getSprite(genome, world, BlockPos.ORIGIN, 100);
if (fruitSprite != null && !treeSpecies.getUID().equals("forestry.treeOak")) {
TextureAtlasSprite fruit = map.getAtlasSprite(fruitSprite.toString());
int fruitColour = fruitProvider.getColour(genome, world, BlockPos.ORIGIN, 100);
new ControlBlockIconDisplay(contents, w2, y, fruit).setColor(fruitColour);
}
y += th2;
Map<ItemStack, Float> products = fruitProvider.getProducts();
ItemStack log = treeSpecies.getWoodProvider().getWoodStack();
if (log.isEmpty()) {
new ControlText(contents, new Area(0, y, w2, th2), I18N.localise("extratrees.gui.database.log") + " : ", TextJustification.MIDDLE_RIGHT);
final ControlItemDisplay display = new ControlItemDisplay(contents, w2, y);
display.setItemStack(log);
display.setTooltip();
y += th2;
}
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.HEIGHT) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getHeight() + "x", TextJustification.MIDDLE_LEFT);
y += th;
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.FERTILITY) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getFertility() + "x", TextJustification.MIDDLE_LEFT);
y += th;
List<ItemStack> fruits = new ArrayList<>(products.keySet());
if (!fruits.isEmpty()) {
new ControlText(contents, new Area(0, y, w2, th2), syst.getChromosomeShortName(EnumTreeChromosome.FRUITS) + " : ", TextJustification.MIDDLE_RIGHT);
for (ItemStack fruitw : fruits) {
final ControlItemDisplay display2 = new ControlItemDisplay(contents, w2, y);
display2.setItemStack(fruitw);
display2.setTooltip();
y += th2;
}
}
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.YIELD) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getYield() + "x", TextJustification.MIDDLE_LEFT);
y += th;
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.SAPPINESS) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getSappiness() + "x", TextJustification.MIDDLE_LEFT);
y += th;
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.MATURATION) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getMaturationTime() + "x", TextJustification.MIDDLE_LEFT);
y += th;
new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.GIRTH) + " : ", TextJustification.MIDDLE_RIGHT);
new ControlText(contents, new Area(w2, y, w3, th), genome.getGirth() + "x" + genome.getGirth(), TextJustification.MIDDLE_LEFT);
y += th;
contents.setSize(new Point(contents.getSize().xPos(), y));
scrollable.setScrollableContent(contents);
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class ControlSlotFluid method onRenderBackground.
@Override
@SideOnly(Side.CLIENT)
public void onRenderBackground(int guiWidth, int guiHeight) {
final int size = this.getSize().xPos();
CraftGUI.RENDER.texture(CraftGUITexture.SLOT, this.getArea());
if (this.getTopParent().getMousedOverWidget() == this) {
RenderUtil.drawGradientRect(new Area(new Point(1, 1), this.getArea().size().sub(new Point(2, 2))), -2130706433, -2130706433);
}
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class WindowDesigner method initialiseClient.
@Override
@SideOnly(Side.CLIENT)
public void initialiseClient() {
this.setTitle(Machine.getMachine(this.getInventory()).getPackage().getDisplayName());
new ControlText(this, new Area(190, 36, 114, 10), I18N.localise(new ResourceLocation(Constants.DESIGN_MOD_ID, "gui.design")), TextJustification.TOP_CENTER).setColor(4473924);
new Panel(this, 188, 48, 118, 126, MinecraftGUI.PanelType.GRAY);
this.textEdit = new ControlTextEdit(this, 188, 178, 118, 12);
final ControlScrollableContent scroll = new ControlScrollableContent(this, 190, 50, 114, 122, 12);
scroll.setScrollableContent(this.tileSelect = new ControlTileSelect(scroll, 0, 0));
new ControlPlayerInventory(this).setPosition(new Point(14, 96));
new ControlErrorState(this, 76, 65);
if (this.getInventory() != null) {
new ControlSlot.Builder(this, 22, 34).assign(DesignerSlots.DESIGN_SLOT_1);
new ControlSlot.Builder(this, 62, 34).assign(DesignerSlots.DESIGN_SLOT_2);
new ControlSlot.Builder(this, 42, 64).assign(DesignerSlots.ADHESIVE_SLOT);
new ControlRecipeSlot(this, 112, 34);
}
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class Widget method setOffset.
@Override
public final void setOffset(final IPoint vector) {
if (vector != this.offset) {
this.offset = new Point(vector);
this.callEvent(new EventWidget.ChangeOffset(this));
}
}
use of binnie.core.gui.geometry.Point in project Binnie by ForestryMC.
the class Widget method calculateIsMouseOver.
@Override
public final boolean calculateIsMouseOver() {
final IPoint mouse = this.getRelativeMousePosition();
if (!this.cropped || this.cropArea == null) {
return this.isMouseOverWidget(mouse);
}
final IWidget cropRelative = (this.cropWidget != null) ? this.cropWidget : this;
final IPoint pos = Point.sub(cropRelative.getAbsolutePosition(), this.getAbsolutePosition());
final IPoint size = new Point(this.cropArea.size().xPos(), this.cropArea.size().yPos());
final boolean inCrop = mouse.xPos() > pos.xPos() && mouse.yPos() > pos.yPos() && mouse.xPos() < pos.xPos() + size.xPos() && mouse.yPos() < pos.yPos() + size.yPos();
return inCrop && this.isMouseOverWidget(mouse);
}
Aggregations