private void resetInput() {
   // clear the textbowes
   txtzonename.setText("");
   txtheight.setText("");
   txtwidth.setText("");
   txtdepth.setText("");
   lblzonetype.setText("");
   lblError.setText("");
   newzonefound = false;
   btnSave.setVisible(false);
   btnDelete.setVisible(false);
 }
  private void fillUI() {
    initList();
    resetInput();

    if (MinionSystem.getNewZone() != null && MinionSystem.getNewZone().getEndPosition() == null) {
      if (checkSingleZone()) {
        Vector3i minbounds = MinionSystem.getNewZone().getMinBounds();
        Vector3i maxbounds = MinionSystem.getNewZone().getMaxBounds();
        txtwidth.setText("1");
        txtdepth.setText("1");
        txtheight.setText("1");
      }
    } else if (MinionSystem.getNewZone() != null
        && MinionSystem.getNewZone().getEndPosition() != null) {
      newzonefound = true;
      MinionSystem.getNewZone().zonetype = ZoneType.Gather;

      Vector3i minbounds = MinionSystem.getNewZone().getMinBounds();
      Vector3i maxbounds = MinionSystem.getNewZone().getMaxBounds();
      if (MinionSystem.getGatherZoneList() == null) {
        txtzonename.setText("Zone0");
      } else {
        txtzonename.setText(
            "Zone"
                + (MinionSystem.getGatherZoneList().size()
                    + MinionSystem.getTerraformZoneList().size()));
      }
      lblzonetype.setText("ZoneType :");
      cmbType.setVisible(true);
      txtwidth.setText("" + (getAbsoluteDiff(maxbounds.x, minbounds.x)));
      txtdepth.setText("" + (getAbsoluteDiff(maxbounds.z, minbounds.z)));
      txtheight.setText("" + (getAbsoluteDiff(maxbounds.y, minbounds.y)));
    }
    if (newzonefound) {
      if (MinionSystem.getNewZone().outofboundselection()) {
        btnSave.setVisible(true);
        lblError.setText(
            "The zone is to big to be saved, depth, width, height should not exceed 50");
      } else {
        btnSave.setVisible(true);
      }
      btnDelete.setVisible(false);
    }
  }
  public UIScreenBookOreo() {
    setId("oreobook");
    setHorizontalAlign(EHorizontalAlign.LEFT);
    setVerticalAlign(EVerticalAlign.CENTER);
    setModal(true);
    // setCloseBinds(new String[]{"engine:useHeldItem"});
    setCloseKeys(new int[] {Keyboard.KEY_ESCAPE});
    setSize(new Vector2f(800, 400));

    background = new UIImage();
    background.setTexture(Assets.getTexture("miniion:openbook"));
    background.setPosition(new Vector2f(0, 0));
    background.setSize(new Vector2f(600, 400));
    background.setVisible(true);
    addDisplayElement(background);

    pagetitle = new UILabel("Summoned minions");
    pagetitle.setPosition(new Vector2f(50, 20));
    pagetitle.setColor(org.newdawn.slick.Color.black);
    pagetitle.setVisible(true);
    addDisplayElement(pagetitle);

    pagetitle2 = new UILabel("Active minion");
    pagetitle2.setPosition(new Vector2f(340, 20));
    pagetitle2.setColor(org.newdawn.slick.Color.black);
    pagetitle2.setVisible(true);
    addDisplayElement(pagetitle2);

    uiminionlist = new UIList();
    uiminionlist.setSize(new Vector2f(250, 350));
    uiminionlist.setPosition(new Vector2f(45, 40));
    uiminionlist.setVisible(true);
    addDisplayElement(uiminionlist);

    selected = new UISelectedMinion(this);
    selected.setPosition(new Vector2f(310, 40));
    selected.setSize(new Vector2f(250, 170));
    selected.setVisible(true);
    addDisplayElement(selected);

    btnshowminion = new UIModButton(new Vector2f(100, 20), ButtonType.NORMAL);
    btnshowminion.setLabel("Show minion window");
    btnshowminion.setColorOffset(120);
    btnshowminion.setVisible(true);
    btnshowminion.setPosition(new Vector2f(375, 260));
    btnshowminion.addClickListener(
        new ClickListener() {
          @Override
          public void click(UIDisplayElement element, int button) {
            if (btnshowminion.getLabel().getText() == "Show minion window") {
              btnshowminion.setLabel("Hide minion minion");
            } else {
              btnshowminion.setLabel("Show minion window");
            }
          }
        });
    this.addDisplayElement(btnshowminion);
  }
 private boolean checkSingleZone() {
   WorldProvider worldprovider = CoreRegistry.get(WorldProvider.class);
   Block block = worldprovider.getBlock(MinionSystem.getNewZone().getStartPosition());
   if (block.getURI().getFamily().matches("minionbench")) {
     MinionSystem.getNewZone().zonetype = ZoneType.Work;
     if (MinionSystem.getWorkZoneList() == null) {
       txtzonename.setText("Workzone0");
     } else {
       txtzonename.setText("Workzone" + MinionSystem.getWorkZoneList().size());
     }
     lblzonetype.setText("ZoneType : Workzone");
     newzonefound = true;
   } else if (block.getURI().getFamily().matches("chest")) {
     MinionSystem.getNewZone().zonetype = ZoneType.Storage;
     if (MinionSystem.getWorkZoneList() == null) {
       txtzonename.setText("Storage0");
     } else {
       txtzonename.setText("Storage" + MinionSystem.getWorkZoneList().size());
     }
     lblzonetype.setText("ZoneType : Storage");
     newzonefound = true;
   }
   return newzonefound;
 }
        @Override
        public void click(UIDisplayElement element, int button) {
          UIListItem listitem = (UIListItem) element;
          if (listitem.getValue().getClass().equals(ZoneType.class)) {
            switch (((ZoneType) listitem.getValue())) {
              case Gather:
                {
                  uizonelist.removeAll();
                  for (Zone zone : MinionSystem.getGatherZoneList()) {
                    UIListItem newlistitem = new UIListItem(zone.Name, zone);
                    newlistitem.setTextColor(Color.black);
                    newlistitem.addClickListener(zonelistener);
                    uizonelist.addItem(newlistitem);
                  }
                  uizonelistgroup.setVisible(false);
                  uizonelist.setVisible(true);
                  btnBack.setVisible(true);
                  break;
                }
              case Terraform:
                {
                  uizonelist.removeAll();
                  for (Zone zone : MinionSystem.getTerraformZoneList()) {
                    UIListItem newlistitem = new UIListItem(zone.Name, zone);
                    newlistitem.setTextColor(Color.black);
                    newlistitem.addClickListener(zonelistener);
                    uizonelist.addItem(newlistitem);
                  }
                  uizonelistgroup.setVisible(false);
                  uizonelist.setVisible(true);
                  btnBack.setVisible(true);
                  break;
                }
              case Work:
                {
                  uizonelist.removeAll();
                  for (Zone zone : MinionSystem.getWorkZoneList()) {
                    UIListItem newlistitem = new UIListItem(zone.Name, zone);
                    newlistitem.setTextColor(Color.black);
                    newlistitem.addClickListener(zonelistener);
                    uizonelist.addItem(newlistitem);
                  }
                  uizonelistgroup.setVisible(false);
                  uizonelist.setVisible(true);
                  btnBack.setVisible(true);
                  break;
                }
              case Storage:
                {
                  uizonelist.removeAll();
                  for (Zone zone : MinionSystem.getStorageZoneList()) {
                    UIListItem newlistitem = new UIListItem(zone.Name, zone);
                    newlistitem.setTextColor(Color.black);
                    newlistitem.addClickListener(zonelistener);
                    uizonelist.addItem(newlistitem);
                  }
                  uizonelistgroup.setVisible(false);
                  uizonelist.setVisible(true);
                  btnBack.setVisible(true);
                  break;
                }
              case OreonFarm:
                {
                  uizonelist.removeAll();
                  for (Zone zone : MinionSystem.getOreonFarmZoneList()) {
                    UIListItem newlistitem = new UIListItem(zone.Name, zone);
                    newlistitem.setTextColor(Color.black);
                    newlistitem.addClickListener(zonelistener);
                    uizonelist.addItem(newlistitem);
                  }
                  uizonelistgroup.setVisible(false);
                  uizonelist.setVisible(true);
                  btnBack.setVisible(true);
                  break;
                }
              default:
                {
                  break;
                }
            }
          } else {
            if (cmbType.isVisible()) {
              cmbType.setVisible(false);
            }
            lblError.setText("");
            Zone zone = (Zone) listitem.getValue();
            txtzonename.setText(zone.Name);
            txtheight.setText("" + zone.zoneheight);
            txtwidth.setText("" + zone.zonewidth);
            txtdepth.setText("" + zone.zonedepth);
            switch (zone.zonetype) {
              case Gather:
                {
                  lblzonetype.setText("Zonetype : Gather");
                  break;
                }
              case Terraform:
                {
                  lblzonetype.setText("Zonetype : Terraform");
                  break;
                }
              case Work:
                {
                  lblzonetype.setText("Zonetype : Work");
                  break;
                }
              default:
                {
                  lblzonetype.setText("label wasn't set");
                  break;
                }
            }

            btnSave.setVisible(false);
            btnDelete.setVisible(true);
          }
        }
  private void executeClick(UIDisplayElement element, int id) {
    lblError.setText("");
    if (MinionSystem.getNewZone() == null) {
      newzonefound = false;
      MinionSystem.resetNewSelection();
      lblError.setText("Something went wrong. Please close the book and recreate the selection.");
    }
    if (MinionSystem.getNewZone().zonetype == ZoneType.OreonFarm) {
      if (MinionSystem.getNewZone().getEndPosition() == null) {
        newzonefound = false;
        MinionSystem.resetNewSelection();
        lblError.setText("Something went wrong. Please close the book and recreate the selection.");
      } else {

      }
    }
    if ((!cmbType.isVisible()) && MinionSystem.getNewZone() == null) {
      newzonefound = false;
      this.close();
    }
    if (cmbType.isVisible() && cmbType.getSelection() == null) {
      lblError.setText("Please select a zone type");
      return;
    }
    if (cmbType.isVisible() && cmbType.getSelection() != null) {
      if (ZoneType.valueOf(cmbType.getSelection().getText()) == ZoneType.OreonFarm) {
        if (MinionSystem.getNewZone().getMinBounds().y
            != MinionSystem.getNewZone().getMaxBounds().y) {
          newzonefound = false;
          lblError.setText(
              "A farm zone needs to be level. Please select a flat zone and try again");
          return;
        }
      }
    }
    if (txtzonename.getText().length() < 3) {
      lblError.setText("Zone name needs to be longer then 2 characters!");
      return;
    }
    for (Zone zone : MinionSystem.getGatherZoneList()) {
      if (zone.Name.matches(txtzonename.getText())) {
        lblError.setText("Zone name already exists!");
        return;
      }
    }
    for (Zone zone : MinionSystem.getTerraformZoneList()) {
      if (zone.Name.matches(txtzonename.getText())) {
        lblError.setText("Zone name already exists!");
        return;
      }
    }
    for (Zone zone : MinionSystem.getWorkZoneList()) {
      if (zone.Name.matches(txtzonename.getText())) {
        lblError.setText("Zone name already exists!");
        return;
      }
    }
    int tmp;
    try {
      tmp = Integer.parseInt(txtheight.getText());
      tmp = Integer.parseInt(txtwidth.getText());
      tmp = Integer.parseInt(txtdepth.getText());
      lblError.setText("value needs to be an number, check for trailing spaces!");
    } catch (NumberFormatException e) {
      return;
    }
    Zone newzone =
        new Zone(
            MinionSystem.getNewZone().getStartPosition(),
            MinionSystem.getNewZone().getEndPosition());
    newzone.Name = txtzonename.getText();
    newzone.zoneheight = Integer.parseInt(txtheight.getText());
    newzone.zonewidth = Integer.parseInt(txtwidth.getText());
    newzone.zonedepth = Integer.parseInt(txtdepth.getText());
    if (cmbType.isVisible()) {
      newzone.zonetype = ZoneType.valueOf(cmbType.getSelection().getText());
    } else {
      newzone.zonetype = MinionSystem.getNewZone().zonetype;
    }
    MinionSystem.addZone(newzone);
    newzonefound = false;
    lblzonetype.setText("");
    MinionSystem.resetNewSelection();
    this.close();
  }
  public UIZoneBook() {

    setId("zonebook");
    setModal(true);
    maximize();
    setCloseKeys(new int[] {Keyboard.KEY_ESCAPE});

    background = new UIImage();
    background.setTexture(Assets.getTexture("miniion:openbook"));
    background.setHorizontalAlign(EHorizontalAlign.CENTER);
    background.setVerticalAlign(EVerticalAlign.CENTER);
    background.setSize(new Vector2f(500, 300));
    background.setVisible(true);
    addDisplayElement(background);

    uizonelist = new UIList();
    uizonelist.setSize(new Vector2f(200, 220));
    uizonelist.setPosition(new Vector2f(40, 20));
    uizonelist.setVisible(true);
    background.addDisplayElement(uizonelist);

    uizonelistgroup = new UIList();
    uizonelistgroup.setSize(new Vector2f(200, 250));
    uizonelistgroup.setPosition(new Vector2f(40, 20));
    uizonelistgroup.setVisible(true);
    background.addDisplayElement(uizonelistgroup);

    lblzonename = new UILabel("Zone name :");
    lblzonename.setPosition(new Vector2f(260, 20));
    lblzonename.setColor(Color.black);
    lblzonename.setVisible(true);
    background.addDisplayElement(lblzonename);

    txtzonename = new UIText();
    txtzonename.setPosition(new Vector2f(350, 20));
    txtzonename.setColor(Color.black);
    txtzonename.setSize(new Vector2f(80, 20));
    txtzonename.setVisible(true);
    background.addDisplayElement(txtzonename);

    lblheight = new UILabel("Height :");
    lblheight.setPosition(new Vector2f(260, 40));
    lblheight.setColor(Color.black);
    lblheight.setVisible(true);
    background.addDisplayElement(lblheight);

    txtheight = new UIText();
    txtheight.setPosition(new Vector2f(350, 40));
    txtheight.setColor(Color.black);
    txtheight.setSize(new Vector2f(80, 20));
    txtheight.setVisible(true);
    background.addDisplayElement(txtheight);

    lblwidth = new UILabel("Width :");
    lblwidth.setPosition(new Vector2f(260, 60));
    lblwidth.setColor(Color.black);
    lblwidth.setVisible(true);
    background.addDisplayElement(lblwidth);

    txtwidth = new UIText();
    txtwidth.setPosition(new Vector2f(350, 60));
    txtwidth.setColor(Color.black);
    txtwidth.setSize(new Vector2f(80, 20));
    txtwidth.setVisible(true);
    background.addDisplayElement(txtwidth);

    lbldepth = new UILabel("Depth :");
    lbldepth.setPosition(new Vector2f(260, 80));
    lbldepth.setColor(Color.black);
    lbldepth.setVisible(true);
    background.addDisplayElement(lbldepth);

    txtdepth = new UIText();
    txtdepth.setPosition(new Vector2f(350, 80));
    txtdepth.setColor(Color.black);
    txtdepth.setSize(new Vector2f(80, 20));
    txtdepth.setVisible(true);
    background.addDisplayElement(txtdepth);

    lblzonetype = new UILabel("");
    lblzonetype.setPosition(new Vector2f(260, 100));
    lblzonetype.setColor(Color.black);
    lblzonetype.setVisible(true);
    background.addDisplayElement(lblzonetype);

    cmbType = new UIComboBox(new Vector2f(80, 20), new Vector2f(80, 200));
    cmbType.setPosition(new Vector2f(350, 100));
    cmbType.setVisible(false);
    background.addDisplayElement(cmbType);
    initTypes();

    lblError = new UILabel("");
    lblError.setWrap(true);
    lblError.setSize(new Vector2f(200, 80));
    lblError.setPosition(new Vector2f(260, 130));
    lblError.setColor(Color.red);
    lblError.setVisible(true);
    background.addDisplayElement(lblError);

    btnSave = new UIModButton(new Vector2f(50, 20), ButtonType.NORMAL);
    btnSave.setPosition(new Vector2f(260, 230));
    btnSave.setLabel("Save");
    btnSave.setId("btnSave");
    btnSave.setVisible(true);
    btnSave.addClickListener(
        new ClickListener() {
          @Override
          public void click(UIDisplayElement element, int button) {
            executeClick(element, button);
          }
        });
    background.addDisplayElement(btnSave);

    btnDelete = new UIModButton(new Vector2f(50, 20), ButtonType.NORMAL);
    btnDelete.setPosition(new Vector2f(260, 230));
    btnDelete.setLabel("Delete");
    btnDelete.setId("btnDelZone");
    btnDelete.setVisible(false);
    btnDelete.addClickListener(
        new ClickListener() {
          @Override
          public void click(UIDisplayElement element, int button) {
            executeDelClick(element, button, (Zone) uizonelist.getSelection().getValue());
          }
        });
    background.addDisplayElement(btnDelete);

    btnBack = new UIModButton(new Vector2f(50, 20), ButtonType.NORMAL);
    btnBack.setPosition(new Vector2f(40, 240));
    btnBack.setLabel("Back");
    btnBack.setId("btnBack");
    btnBack.setVisible(false);
    btnBack.addClickListener(
        new ClickListener() {
          @Override
          public void click(UIDisplayElement element, int button) {
            initList();
            btnBack.setVisible(false);
          }
        });
    background.addDisplayElement(btnBack);
  }
  public UIMenuConfigVideo() {
    setId("config:video");
    setBackgroundImage("engine:loadingbackground");
    setModal(true);
    maximize();

    title = new UIImage(Assets.getTexture("engine:terasology"));
    title.setHorizontalAlign(EHorizontalAlign.CENTER);
    title.setPosition(new Vector2f(0f, 128f));
    title.setVisible(true);
    title.setSize(new Vector2f(512f, 128f));

    version = new UILabel("Video Settings");
    version.setHorizontalAlign(EHorizontalAlign.CENTER);
    version.setPosition(new Vector2f(0f, 230f));
    version.setVisible(true);

    graphicsQualityButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction graphicsQualityStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            switch (button.getState()) {
              case 0:
                Config.getInstance().setEnablePostProcessingEffects(false);
                Config.getInstance().setFlickeringLight(false);
                break;
              case 1:
                Config.getInstance().setEnablePostProcessingEffects(false);
                Config.getInstance().setFlickeringLight(true);
                break;
              case 2:
                Config.getInstance().setEnablePostProcessingEffects(true);
                Config.getInstance().setFlickeringLight(true);
                break;
            }

            ShaderManager.getInstance().recompileAllShaders();
          }
        };
    graphicsQualityButton.addState("Graphics Quality: Ugly", graphicsQualityStateAction);
    graphicsQualityButton.addState("Graphics Quality: Nice", graphicsQualityStateAction);
    graphicsQualityButton.addState("Graphics Quality: Epic", graphicsQualityStateAction);
    graphicsQualityButton.addClickListener(clickAction);
    graphicsQualityButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    graphicsQualityButton.setPosition(
        new Vector2f(-graphicsQualityButton.getSize().x / 2f - 10f, 300f));
    graphicsQualityButton.setVisible(true);

    viewingDistanceButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction viewingDistanceStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            Config.getInstance().setViewingDistanceById(button.getState());
          }
        };
    viewingDistanceButton.addState("Viewing Distance: Near", viewingDistanceStateAction);
    viewingDistanceButton.addState("Viewing Distance: Moderate", viewingDistanceStateAction);
    viewingDistanceButton.addState("Viewing Distance: Far", viewingDistanceStateAction);
    viewingDistanceButton.addState("Viewing Distance: Ultra", viewingDistanceStateAction);
    viewingDistanceButton.addClickListener(clickAction);
    viewingDistanceButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    viewingDistanceButton.setPosition(
        new Vector2f(-viewingDistanceButton.getSize().x / 2f - 10f, 300f + 40f));
    viewingDistanceButton.setVisible(true);

    fovButton = new UISlider(new Vector2f(256f, 32f), 75, 130);
    fovButton.addChangedListener(
        new ChangedListener() {
          @Override
          public void changed(UIDisplayElement element) {
            UISlider slider = (UISlider) element;
            slider.setText("FOV: " + String.valueOf(slider.getValue()));
            Config.getInstance().setFov(slider.getValue());
          }
        });
    fovButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    fovButton.setPosition(new Vector2f(-fovButton.getSize().x / 2f - 10f, 300f + 2 * 40f));
    fovButton.setVisible(true);

    bobbingButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction bobbingStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            if (button.getState() == 0) Config.getInstance().setCameraBobbing(false);
            else Config.getInstance().setCameraBobbing(true);
          }
        };
    bobbingButton.addState("Bobbing: Off", bobbingStateAction);
    bobbingButton.addState("Bobbing: On", bobbingStateAction);
    bobbingButton.addClickListener(clickAction);
    bobbingButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    bobbingButton.setPosition(new Vector2f(-bobbingButton.getSize().x / 2f - 10f, 300f + 3 * 40f));
    bobbingButton.setVisible(true);

    animateGrassButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction animateGrassStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            if (button.getState() == 0) Config.getInstance().setAnimatedGrass(false);
            else Config.getInstance().setAnimatedGrass(true);

            ShaderManager.getInstance().recompileAllShaders();
          }
        };
    animateGrassButton.addState("Animate Grass: Off", animateGrassStateAction);
    animateGrassButton.addState("Animate Grass: On", animateGrassStateAction);
    animateGrassButton.addClickListener(clickAction);
    animateGrassButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    animateGrassButton.setPosition(new Vector2f(animateGrassButton.getSize().x / 2f, 300f));
    animateGrassButton.setVisible(true);

    reflectiveWaterButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction reflectiveWaterStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            if (button.getState() == 0) Config.getInstance().setComplexWater(false);
            else Config.getInstance().setComplexWater(true);

            ShaderManager.getInstance().recompileAllShaders();
          }
        };
    reflectiveWaterButton.addState("Water World Reflection: Off", reflectiveWaterStateAction);
    reflectiveWaterButton.addState("Water World Reflection: On", reflectiveWaterStateAction);
    reflectiveWaterButton.addClickListener(clickAction);
    reflectiveWaterButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    reflectiveWaterButton.setPosition(
        new Vector2f(reflectiveWaterButton.getSize().x / 2f, 300f + 40f));
    reflectiveWaterButton.setVisible(true);

    blurIntensityButton = new UIStateButton(new Vector2f(256f, 32f));
    StateButtonAction blurIntensityStateAction =
        new StateButtonAction() {
          @Override
          public void action(UIDisplayElement element) {
            UIStateButton button = (UIStateButton) element;
            Config.getInstance().setBlurIntensity(button.getState());
            ShaderManager.getInstance().recompileAllShaders();
          }
        };
    blurIntensityButton.addState("Blur Intensity: Off", blurIntensityStateAction);
    blurIntensityButton.addState("Blur Intensity: Some", blurIntensityStateAction);
    blurIntensityButton.addState("Blur Intensity: Normal", blurIntensityStateAction);
    blurIntensityButton.addState("Blur Intensity: Max", blurIntensityStateAction);
    blurIntensityButton.addClickListener(clickAction);
    blurIntensityButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    blurIntensityButton.setPosition(
        new Vector2f(blurIntensityButton.getSize().x / 2f, 300f + 2 * 40f));
    blurIntensityButton.setVisible(true);

    backToConfigMenuButton = new UIButton(new Vector2f(256f, 32f), UIButton.ButtonType.NORMAL);
    backToConfigMenuButton.getLabel().setText("Back");
    backToConfigMenuButton.setHorizontalAlign(EHorizontalAlign.CENTER);
    backToConfigMenuButton.setPosition(new Vector2f(0f, 300f + 7 * 40f));
    backToConfigMenuButton.setVisible(true);
    backToConfigMenuButton.addClickListener(
        new ClickListener() {
          @Override
          public void click(UIDisplayElement element, int button) {
            getGUIManager().openWindow("config");
          }
        });

    addDisplayElement(title);
    addDisplayElement(version);

    addDisplayElement(graphicsQualityButton);
    addDisplayElement(fovButton);
    addDisplayElement(viewingDistanceButton);
    addDisplayElement(animateGrassButton);
    addDisplayElement(reflectiveWaterButton);
    addDisplayElement(blurIntensityButton);
    addDisplayElement(bobbingButton);
    addDisplayElement(backToConfigMenuButton);

    setup();
  }