@Override
  public void drawExtras(int i) {
    CachedIORecipe recipe = (CachedIORecipe) arecipes.get(i);

    if (recipe.pressurizedRecipe.getInput().getFluid() != null) {
      fluidInput.setDummyType(recipe.pressurizedRecipe.getInput().getFluid().getFluid());
      fluidInput.renderScale(0, 0, -xOffset, -yOffset);
    }

    if (recipe.pressurizedRecipe.getInput().getGas() != null) {
      gasInput.setDummyType(recipe.pressurizedRecipe.getInput().getGas().getGas());
      gasInput.renderScale(0, 0, -xOffset, -yOffset);
    }

    if (recipe.pressurizedRecipe.getOutput().getGasOutput() != null) {
      gasOutput.setDummyType(recipe.pressurizedRecipe.getOutput().getGasOutput().getGas());
      gasOutput.renderScale(0, 0, -xOffset, -yOffset);
    }
  }
  @Override
  public void drawExtras(int i) {
    CachedIORecipe recipe = (CachedIORecipe) arecipes.get(i);

    if (recipe.fluidInput != null) {
      fluidInput.setDummyType(recipe.fluidInput.ingredient.getFluid());
      fluidInput.renderScale(0, 0, -xOffset, -yOffset);
    }

    if (recipe.outputPair.leftGas != null) {
      displayGauge(28, 59 - xOffset, 19 - yOffset, 176, 68, 28, null, recipe.outputPair.leftGas);
      leftGas.setDummyType(recipe.outputPair.leftGas.getGas());
      leftGas.renderScale(0, 0, -xOffset, -yOffset);
    }

    if (recipe.outputPair.rightGas != null) {
      displayGauge(28, 101 - xOffset, 19 - yOffset, 176, 68, 28, null, recipe.outputPair.rightGas);
      rightGas.setDummyType(recipe.outputPair.rightGas.getGas());
      rightGas.renderScale(0, 0, -xOffset, -yOffset);
    }
  }
  @Override
  public void addGuiElements() {
    guiElements.add(
        fluidInput =
            GuiFluidGauge.getDummy(
                GuiGauge.Type.STANDARD,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
                5,
                10));
    guiElements.add(
        leftGas =
            GuiGasGauge.getDummy(
                GuiGauge.Type.SMALL,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
                58,
                18));
    guiElements.add(
        rightGas =
            GuiGasGauge.getDummy(
                GuiGauge.Type.SMALL,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
                100,
                18));
    guiElements.add(
        new GuiPowerBar(
            this,
            new IPowerInfoHandler() {
              @Override
              public double getLevel() {
                return ticksPassed <= 20 ? ticksPassed / 20.0F : 1.0F;
              }
            },
            MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
            164,
            15));

    guiElements.add(
        new GuiSlot(
            SlotType.NORMAL,
            this,
            MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
            25,
            34));
    guiElements.add(
        new GuiSlot(
            SlotType.NORMAL,
            this,
            MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
            58,
            51));
    guiElements.add(
        new GuiSlot(
            SlotType.NORMAL,
            this,
            MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
            100,
            51));
    guiElements.add(
        new GuiSlot(
                SlotType.NORMAL,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
                142,
                34)
            .with(SlotOverlay.POWER));

    guiElements.add(
        new GuiProgress(
            new IProgressInfoHandler() {
              @Override
              public double getProgress() {
                return 1;
              }
            },
            ProgressBar.BI,
            this,
            MekanismUtils.getResource(ResourceType.GUI, "GuiElectrolyticSeparator.png"),
            78,
            29));
  }
  @Override
  public void addGuiElements() {
    guiElements.add(
        new GuiSlot(
            SlotType.INPUT,
            this,
            MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
            53,
            34));
    guiElements.add(
        new GuiSlot(
                SlotType.POWER,
                this,
                MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
                140,
                18)
            .with(SlotOverlay.POWER));
    guiElements.add(
        new GuiSlot(
            SlotType.OUTPUT,
            this,
            MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
            115,
            34));

    guiElements.add(
        fluidInput =
            GuiFluidGauge.getDummy(
                GuiGauge.Type.STANDARD,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiPRC.png"),
                5,
                10));
    guiElements.add(
        gasInput =
            GuiGasGauge.getDummy(
                GuiGauge.Type.STANDARD,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiPRC.png"),
                28,
                10));
    guiElements.add(
        gasOutput =
            GuiGasGauge.getDummy(
                GuiGauge.Type.SMALL,
                this,
                MekanismUtils.getResource(ResourceType.GUI, "GuiPRC.png"),
                140,
                40));

    guiElements.add(
        new GuiPowerBar(
            this,
            new IPowerInfoHandler() {
              @Override
              public double getLevel() {
                return ticksPassed <= 20 ? ticksPassed / 20.0F : 1.0F;
              }
            },
            MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
            164,
            15));
    guiElements.add(
        new GuiProgress(
            new IProgressInfoHandler() {
              @Override
              public double getProgress() {
                return ticksPassed >= 20 ? (ticksPassed - 20) % 20 / 20.0F : 0.0F;
              }
            },
            getProgressType(),
            this,
            MekanismUtils.getResource(ResourceType.GUI, stripTexture()),
            75,
            37));
  }