Search in sources :

Example 1 with ItemStackSet

use of binnie.core.util.ItemStackSet in project Binnie by ForestryMC.

the class MachineUtil method hasIngredients.

public boolean hasIngredients(final int[] recipe, final int[] inventory) {
    final ItemStackSet requiredStacks = new ItemStackSet();
    Collections.addAll(requiredStacks, this.getStacks(recipe));
    final ItemStackSet inventoryStacks = new ItemStackSet();
    Collections.addAll(inventoryStacks, this.getStacks(inventory));
    requiredStacks.removeAll(inventoryStacks);
    return requiredStacks.isEmpty();
}
Also used : ItemStackSet(binnie.core.util.ItemStackSet)

Example 2 with ItemStackSet

use of binnie.core.util.ItemStackSet in project Binnie by ForestryMC.

the class ControlBreweryProgress method onRenderBackground.

@Override
@SideOnly(Side.CLIENT)
public void onRenderBackground(int guiWidth, int guiHeight) {
    CraftGUI.RENDER.texture(BREWERY, Point.ZERO);
    final BreweryLogic logic = Machine.getInterface(BreweryLogic.class, Window.get(this).getInventory());
    if (logic == null || logic.getCurrentCrafting() == null || logic.getCurrentCrafting().getInputFluid() == null) {
        return;
    }
    FluidStack output = BreweryRecipeManager.getOutput(logic.getCurrentCrafting());
    FluidStack input = logic.getCurrentCrafting().getInputFluid();
    final int fermentedHeight = (int) (32.0f * logic.getProgress() / 100.0f);
    CraftGUI.RENDER.limitArea(new Area(new Point(1, 6).add(this.getAbsolutePosition()), new Point(32, 32 - fermentedHeight)), guiWidth, guiHeight);
    GL11.glEnable(GL11.GL_SCISSOR_TEST);
    RenderUtil.drawFluid(new Point(1, 6), input);
    RenderUtil.drawFluid(new Point(17, 6), input);
    RenderUtil.drawFluid(new Point(1, 22), input);
    RenderUtil.drawFluid(new Point(17, 22), input);
    GL11.glDisable(GL11.GL_SCISSOR_TEST);
    CraftGUI.RENDER.limitArea(new Area(new Point(1, 38 - fermentedHeight).add(this.getAbsolutePosition()), new Point(32, fermentedHeight)), guiWidth, guiHeight);
    GL11.glEnable(GL11.GL_SCISSOR_TEST);
    RenderUtil.drawFluid(new Point(1, 6), output);
    RenderUtil.drawFluid(new Point(17, 6), output);
    RenderUtil.drawFluid(new Point(1, 22), output);
    RenderUtil.drawFluid(new Point(17, 22), output);
    GL11.glDisable(GL11.GL_SCISSOR_TEST);
    final ItemStackSet stacks = new ItemStackSet();
    Collections.addAll(stacks, logic.getCurrentCrafting().getInputGrains());
    stacks.add(logic.getCurrentCrafting().getIngredient());
    int x = 1;
    int y = 6;
    for (final ItemStack stack : stacks) {
        RenderUtil.drawItem(new Point(x, y), stack);
        x += 16;
        if (x > 18) {
            x = 1;
            y += 16;
        }
    }
}
Also used : Area(binnie.core.gui.geometry.Area) BreweryLogic(binnie.extratrees.machines.brewery.BreweryLogic) FluidStack(net.minecraftforge.fluids.FluidStack) ItemStackSet(binnie.core.util.ItemStackSet) Point(binnie.core.gui.geometry.Point) ItemStack(net.minecraft.item.ItemStack) Point(binnie.core.gui.geometry.Point) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Aggregations

ItemStackSet (binnie.core.util.ItemStackSet)2 Area (binnie.core.gui.geometry.Area)1 Point (binnie.core.gui.geometry.Point)1 BreweryLogic (binnie.extratrees.machines.brewery.BreweryLogic)1 ItemStack (net.minecraft.item.ItemStack)1 FluidStack (net.minecraftforge.fluids.FluidStack)1 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)1