예제 #1
0
  private void createPlanetGui(final Planet planet) {
    WorldAlignementContainer cont =
        new WorldAlignementContainer(gui, renderer.getCamera(), planet.getPosition());
    cont.setBackgroundColor(new Color(0, 0, 0, 0.5f));
    Label label_strength = new Label(gui, "Strength");
    Slider slider_strength = new Slider(gui, 0.1f, 1, 0.5f);
    Label label_health = new Label(gui, "Health");
    Slider slider_health = new Slider(gui, 0.1f, 1, 0.5f);
    Label label_speed = new Label(gui, "Speed");
    Slider slider_speed = new Slider(gui, Constants.BOID_MIN_SPEED, 1, 0.5f);
    Label label_resources = new Label(gui, "Resources");
    Slider slider_resources = new Slider(gui, 10, Constants.PLANET_MAX_CREATURES, 20);
    CheckBox start_planet = new CheckBox(gui, "Start Planet");

    slider_strength.setSize(100, 8);
    slider_health.setSize(100, 8);
    slider_speed.setSize(100, 8);
    slider_resources.setSize(100, 8);

    Color bg = new Color(0.3f, 0.3f, 0.3f, 1);
    slider_strength.setBackgroundColor(bg);
    slider_health.setBackgroundColor(bg);
    slider_speed.setBackgroundColor(bg);
    slider_resources.setBackgroundColor(bg);

    slider_strength.setValue(planet.getStrength());
    slider_health.setValue(planet.getHealth());
    slider_speed.setValue(planet.getSpeed());
    slider_resources.setValue(planet.getMaxResources());

    start_planet.setChecked(planet.isStartPlanet());
    start_planet.setSize(150, 24);

    cont.addWidget(label_strength);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(slider_strength);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(label_health);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(slider_health);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(label_speed);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(slider_speed);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(label_resources);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(slider_resources);
    cont.addWidget(new Spacer(gui, 0, 3));
    cont.addWidget(start_planet);
    cont.addWidget(new Spacer(gui, slider_resources.getWidth() + 20, 10));
    gui.add(cont);
    conts.add(cont);

    slider_strength.setValueChangedListener(
        new ValueChangedListener() {

          public void valueChanged(Widget widget) {
            for (Planet planet : selected_planets) planet.setStrength(((Slider) widget).getValue());

            for (WorldAlignementContainer cont : conts) {
              VerticalBoxContainer v_box = (VerticalBoxContainer) cont.getWidgets().get(0);
              ((Slider) v_box.getWidgets().get(2)).setValue(((Slider) widget).getValue());
            }
          }
        });

    slider_health.setValueChangedListener(
        new ValueChangedListener() {

          public void valueChanged(Widget widget) {
            for (Planet planet : selected_planets) planet.setHealth(((Slider) widget).getValue());

            for (WorldAlignementContainer cont : conts) {
              VerticalBoxContainer v_box = (VerticalBoxContainer) cont.getWidgets().get(0);
              ((Slider) v_box.getWidgets().get(6)).setValue(((Slider) widget).getValue());
            }
          }
        });

    slider_speed.setValueChangedListener(
        new ValueChangedListener() {

          public void valueChanged(Widget widget) {
            for (Planet planet : selected_planets) planet.setSpeed(((Slider) widget).getValue());

            for (WorldAlignementContainer cont : conts) {
              VerticalBoxContainer v_box = (VerticalBoxContainer) cont.getWidgets().get(0);
              ((Slider) v_box.getWidgets().get(10)).setValue(((Slider) widget).getValue());
            }
          }
        });

    slider_resources.setValueChangedListener(
        new ValueChangedListener() {

          public void valueChanged(Widget widget) {
            for (Planet planet : selected_planets)
              planet.setResources((int) ((Slider) widget).getValue());

            for (WorldAlignementContainer cont : conts) {
              VerticalBoxContainer v_box = (VerticalBoxContainer) cont.getWidgets().get(0);
              ((Slider) v_box.getWidgets().get(14)).setValue(((Slider) widget).getValue());
            }
          }
        });

    start_planet.setClickedListener(
        new ClickedListener() {

          public void clicked(Widget widget) {
            for (Planet planet : selected_planets)
              planet.setStartPlanet(((CheckBox) widget).isChecked());

            for (WorldAlignementContainer cont : conts) {
              VerticalBoxContainer v_box = (VerticalBoxContainer) cont.getWidgets().get(0);
              ((CheckBox) v_box.getWidgets().get(16)).setChecked(((CheckBox) widget).isChecked());
            }
          }
        });
  }