use of binnie.core.machines.inventory.ComponentTankContainer in project Binnie by ForestryMC.
the class InfuserMachine method createMachine.
@Override
public void createMachine(final Machine machine) {
new ExtraTreeMachine.ComponentExtraTreeGUI(machine, ExtraTreesGUID.INFUSER);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
final TankSlot input = tanks.addTank(Infuser.TANK_INPUT, "input", 5000);
input.setValidator(new TankValidatorInfuserInput());
input.forbidExtraction();
final TankSlot output = tanks.addTank(Infuser.TANK_OUTPUT, "output", 5000);
output.setValidator(new TankValidatorInfuserOutput());
output.setReadOnly();
new ComponentPowerReceptor(machine);
new InfuserLogic(machine);
}
use of binnie.core.machines.inventory.ComponentTankContainer in project Binnie by ForestryMC.
the class DistilleryMachine method createMachine.
@Override
public void createMachine(final Machine machine) {
new ExtraTreeMachine.ComponentExtraTreeGUI(machine, ExtraTreesGUID.DISTILLERY);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
final TankSlot input = tanks.addTank(TANK_INPUT, "input", 5000);
input.setValidator(new TankValidatorDistilleryInput());
input.forbidExtraction();
final TankSlot output = tanks.addTank(TANK_OUTPUT, "output", 5000);
output.setValidator(new TankValidatorDistilleryOutput());
output.setReadOnly();
new ComponentPowerReceptor(machine);
new DistilleryLogic(machine);
}
use of binnie.core.machines.inventory.ComponentTankContainer in project Binnie by ForestryMC.
the class BreweryMachine method createMachine.
@Override
public void createMachine(final Machine machine) {
new ExtraTreeMachine.ComponentExtraTreeGUI(machine, ExtraTreesGUID.BREWERY);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
for (final InventorySlot slot : inventory.addSlotArray(SLOT_RECIPE_GRAINS, new ResourceLocation(Constants.CORE_MOD_ID, "gui.slot.grain"))) {
slot.setValidator(new SlotValidatorBreweryGrain());
slot.setType(InventorySlot.Type.Recipe);
}
for (final InventorySlot slot : inventory.addSlotArray(SLOTS_INVENTORY, new ResourceLocation(Constants.CORE_MOD_ID, "gui.slot.inventory"))) {
slot.forbidExtraction();
}
final InventorySlot yeast = inventory.addSlot(SLOT_YEAST, getSlotRL("yeast"));
yeast.setValidator(new SlotValidatorBreweryYeast());
yeast.setType(InventorySlot.Type.Recipe);
final InventorySlot ingredient = inventory.addSlot(SLOT_RECIPE_INPUT, getSlotRL("ingredient"));
ingredient.setValidator(new SlotValidatorBreweryIngredient());
ingredient.setType(InventorySlot.Type.Recipe);
final ComponentTankContainer tanks = new ComponentTankContainer(machine);
TankSlot input = tanks.addTank(TANK_INPUT, "input", 5000);
input.setValidator(new TankValidatorFermentInput());
input.forbidExtraction();
final TankSlot output = tanks.addTank(TANK_OUTPUT, "output", 5000);
output.setValidator(new TankValidatorFermentOutput());
output.setReadOnly();
new ComponentPowerReceptor(machine);
new BreweryLogic(machine);
}
use of binnie.core.machines.inventory.ComponentTankContainer in project Binnie by ForestryMC.
the class PackagePolymeriser method createMachine.
@Override
public void createMachine(Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.POLYMERISER);
ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
// Slot Gold
InventorySlot slotGold = inventory.addSlot(Polymeriser.SLOT_GOLD, getSlotRL("catalyst"));
slotGold.setValidator(new SlotValidator.Item(new ItemStack(Items.GOLD_NUGGET, 1), ModuleMachine.getSpriteNugget()));
slotGold.forbidExtraction();
// Slot Serum
InventorySlot slotSerum = inventory.addSlot(Polymeriser.SLOT_SERUM, getSlotRL("process"));
slotSerum.setValidator(new SlotValidatorUnfilledSerum());
slotSerum.forbidInteraction();
slotSerum.setReadOnly();
for (InventorySlot slot : inventory.addSlotArray(Polymeriser.SLOT_SERUM_RESERVE, getSlotRL("input"))) {
slot.setValidator(new SlotValidatorUnfilledSerum());
slot.forbidExtraction();
}
for (InventorySlot slot : inventory.addSlotArray(Polymeriser.SLOT_SERUM_FINISHED, getSlotRL("output"))) {
slot.setReadOnly();
}
ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Polymeriser.SLOT_SERUM_RESERVE, Polymeriser.SLOT_SERUM, 1);
transfer.addStorage(Polymeriser.SLOT_SERUM, Polymeriser.SLOT_SERUM_FINISHED, (stack) -> !stack.isItemDamaged());
ComponentTankContainer tank = new ComponentTankContainer(machine);
tank.addTank(Polymeriser.TANK_BACTERIA, "input", 1000).setValidator(new BacteriaTankValidator());
tank.addTank(Polymeriser.TANK_DNA, "input", 1000).setValidator(new DnaTankValidator());
new ComponentChargedSlots(machine).addCharge(1);
new ComponentPowerReceptor(machine, 8000);
new PolymeriserLogic(machine);
new PolymeriserFX(machine);
}
use of binnie.core.machines.inventory.ComponentTankContainer in project Binnie by ForestryMC.
the class PackageInoculator method createMachine.
@Override
public void createMachine(final Machine machine) {
new ComponentGeneticGUI(machine, GeneticsGUI.INOCULATOR);
final ComponentInventorySlots inventory = new ComponentInventorySlots(machine);
InventorySlot slotSerumVial = inventory.addSlot(Inoculator.SLOT_SERUM_VIAL, getSlotRL("serum.active"));
slotSerumVial.forbidInteraction();
slotSerumVial.setReadOnly();
final SlotValidator serumValid = new SerumSlotValidator();
slotSerumVial.setValidator(serumValid);
for (InventorySlot slot : inventory.addSlotArray(Inoculator.SLOT_SERUM_RESERVE, getSlotRL("serum.input"))) {
slot.setValidator(serumValid);
slot.forbidExtraction();
}
for (InventorySlot slot : inventory.addSlotArray(Inoculator.SLOT_SERUM_EXPENDED, getSlotRL("serum.output"))) {
slot.setValidator(serumValid);
slot.setReadOnly();
}
for (InventorySlot slot : inventory.addSlotArray(Inoculator.SLOT_RESERVE, getSlotRL("input"))) {
slot.forbidExtraction();
slot.setValidator(new ValidatorIndividualInoculate());
}
InventorySlot slotTarget = inventory.addSlot(Inoculator.SLOT_TARGET, getSlotRL("process"));
slotTarget.setValidator(new ValidatorIndividualInoculate());
slotTarget.setReadOnly();
slotTarget.forbidInteraction();
for (final InventorySlot slot : inventory.addSlotArray(Inoculator.SLOT_FINISHED, getSlotRL("output"))) {
slot.setReadOnly();
slot.forbidInsertion();
slot.setValidator(new ValidatorIndividualInoculate());
}
final ComponentInventoryTransfer transfer = new ComponentInventoryTransfer(machine);
transfer.addRestock(Inoculator.SLOT_RESERVE, 9, 1);
transfer.addRestock(Inoculator.SLOT_SERUM_RESERVE, 0);
transfer.addStorage(Inoculator.SLOT_SERUM_VIAL, Inoculator.SLOT_SERUM_EXPENDED, (stack) -> Engineering.getCharges(stack) == 0);
transfer.addStorage(Inoculator.SLOT_TARGET, Inoculator.SLOT_FINISHED, (stack) -> {
if (!stack.isEmpty()) {
IMachine machine1 = transfer.getMachine();
MachineUtil machineUtil = machine1.getMachineUtil();
if (!machineUtil.getStack(Inoculator.SLOT_SERUM_VIAL).isEmpty() && machine1.getInterface(InoculatorLogic.class).isValidSerum() != null) {
return true;
}
}
return false;
});
new ComponentPowerReceptor(machine, 15000);
new InoculatorLogic(machine);
new InoculatorFX(machine);
new ComponentTankContainer(machine).addTank(Inoculator.TANK_VEKTOR, "input", 1000).setValidator(new BacteriaVectorTankValidator());
}
Aggregations