projet-programmation-orient.../core/src/sagittarius/view/SettingsScreen.java

89 lines
2.8 KiB
Java
Raw Normal View History

package sagittarius.view;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener;
import com.kotcrab.vis.ui.VisUI;
import com.kotcrab.vis.ui.util.form.SimpleFormValidator;
import com.kotcrab.vis.ui.widget.VisCheckBox;
import com.kotcrab.vis.ui.widget.VisLabel;
import com.kotcrab.vis.ui.widget.VisTable;
import com.kotcrab.vis.ui.widget.VisTextButton;
import com.kotcrab.vis.ui.widget.VisValidatableTextField;
import sagittarius.SagittariusGame;
public class SettingsScreen extends BaseScreen {
@Override
public void initialize() {
2021-04-23 15:32:17 +00:00
Gdx.input.setInputProcessor(uiStage);
// Table creation
VisTable table = new VisTable(true);
table.setFillParent(true);
2021-04-23 15:32:17 +00:00
uiStage.addActor(table);
2021-04-16 11:48:57 +00:00
VisLabel errorLabel = new VisLabel();
errorLabel.setColor(Color.RED);
VisValidatableTextField gConstField = new VisValidatableTextField();
gConstField.setText(Float.toString(SagittariusGame.G));
VisCheckBox debugModeBox = new VisCheckBox("debug mode");
debugModeBox.setChecked(SagittariusGame.debugMode);
2021-04-16 11:48:57 +00:00
VisTextButton saveButton = new VisTextButton("Save");
saveButton.addListener(new ActorGestureListener() {
@Override
public void tap(InputEvent event, float x, float y, int count, int button) {
super.tap(event, x, y, count, button);
2021-04-16 11:48:57 +00:00
SagittariusGame.G = Float.parseFloat(gConstField.getText());
SagittariusGame.debugMode = debugModeBox.isChecked();
}
});
VisTextButton returnButton = new VisTextButton("Go Back");
returnButton.addListener(new ActorGestureListener() {
@Override
public void tap(InputEvent event, float x, float y, int count, int button) {
super.tap(event, x, y, count, button);
SagittariusGame.setActiveScreen( new StartScreen() );
}
});
SimpleFormValidator validator;
validator = new SimpleFormValidator(saveButton, errorLabel, "smooth");
validator.notEmpty(gConstField, "G cannot be empty");
validator.floatNumber(gConstField, "G must be a float");
validator.valueGreaterThan(gConstField, "G must be positive", 0, true);
// Table structure
table.add(errorLabel);
table.row();
table.add(new VisLabel("G constant:"));
table.add(gConstField);
table.row();
table.add(debugModeBox).colspan(2);
table.row();
2021-04-16 11:48:57 +00:00
table.add(saveButton).colspan(2);
table.row();
2021-04-16 11:48:57 +00:00
table.add(returnButton).colspan(2);
}
@Override
public void update(float dt) {
//
}
@Override
public void dispose() {
VisUI.dispose();
super.dispose();
}
}