Пример #1
0
  @Override
  protected void mouseClicked(int i, int j, int k) {
    super.mouseClicked(i, j, k);

    int cornerX = (width - xSize) / 2;
    int cornerY = (height - ySize) / 2;

    int position = getSlotAtLocation(i - cornerX, j - cornerY);

    if (position >= 0 && position < 2) {
      if (k == 0) {
        if (!isShiftKeyDown()) {
          FluidStack liquid =
              FluidContainerRegistry.getFluidForFilledItem(mc.thePlayer.inventory.getItemStack());

          if (liquid == null) {
            return;
          }

          container.setFilter(position, liquid.getFluid());
        } else {
          container.setFilter(position, null);
        }
      } else {
        TileRefinery ref = (TileRefinery) this.tile;

        if (position == 0) container.setFilter(position, ref.tank1.getFluidType());
        else if (position == 1) container.setFilter(position, ref.tank2.getFluidType());
      }
    }
  }
Пример #2
0
  private void updateSlots() {

    Fluid filter0 = container.getFilter(0);
    Fluid filter1 = container.getFilter(1);

    ((FluidSlot) slots[0]).fluid = filter0;
    ((FluidSlot) slots[1]).fluid = filter1;

    FluidStack liquid0 = null;
    FluidStack liquid1 = null;

    if (filter0 != null) {
      liquid0 = new FluidStack(filter0, FluidContainerRegistry.BUCKET_VOLUME);
    }
    if (filter1 != null) {
      liquid1 = new FluidStack(filter1, FluidContainerRegistry.BUCKET_VOLUME);
    }

    Recipe recipe = RefineryRecipes.findRefineryRecipe(liquid0, liquid1);

    if (recipe != null) {
      ((FluidSlot) slots[2]).fluid = recipe.result.getFluid();
    } else {
      ((FluidSlot) slots[2]).fluid = null;
    }
  }