use of com.badlogic.gdx.scenes.scene2d.Stage in project bladecoder-adventure-engine by bladecoder.
the class PackageDialog method ok.
@Override
protected void ok() {
final Stage stg = getStage();
new Thread() {
@Override
public void run() {
Message.showMsg(stg, "Generating package...", true);
String msg;
if (Ctx.project.getSelectedScene() == null) {
msg = "There are no scenes in this chapter.";
Message.showMsg(stg, msg, 3);
return;
}
Ctx.project.getProjectConfig().remove(Config.CHAPTER_PROP);
Ctx.project.getProjectConfig().remove(Config.TEST_SCENE_PROP);
setCurrentVersion(version.getText());
try {
Ctx.project.saveProject();
} catch (Exception ex) {
msg = "Something went wrong while saving the project.\n\n" + ex.getClass().getSimpleName() + " - " + ex.getMessage();
Message.showMsgDialog(stg, "Error", msg);
return;
}
try {
msg = packageAdv();
} catch (Exception e) {
msg = "Error Generating package\n\n" + e.getMessage();
e.printStackTrace();
}
Ctx.project.getEditorConfig().setProperty(ARCH_PROP, arch.getText());
Ctx.project.getEditorConfig().setProperty(DIR_PROP, dir.getText());
for (InputPanel i : options) {
if (i.getText() != null)
Ctx.project.getEditorConfig().setProperty("package." + i.getTitle(), i.getText());
}
// hide message
Message.showMsg(stg, "", .5f);
if (msg != null) {
final String m = msg;
Message.showMsgDialog(stg, "Result", m);
}
}
}.start();
}
use of com.badlogic.gdx.scenes.scene2d.Stage in project bladecoder-adventure-engine by bladecoder.
the class CreateProjectDialog method ok.
@Override
protected void ok() {
try {
Ctx.project.getEditorConfig().setProperty(ANDROID_SDK_PROP, androidSdk.getText());
Ctx.project.saveProject();
} catch (Exception ex) {
String msg = ex.getClass().getSimpleName() + " - " + ex.getMessage();
Message.showMsgDialog(getStage(), "Error saving project", msg);
}
final Stage stage = getStage();
Message.showMsg(getStage(), "Creating project...", true);
Timer.schedule(new Task() {
@Override
public void run() {
createProject(stage);
}
}, 1);
}
use of com.badlogic.gdx.scenes.scene2d.Stage in project bladecoder-adventure-engine by bladecoder.
the class Editor method create.
@Override
public void create() {
Gdx.graphics.setWindowedMode(Math.max((int) (Gdx.graphics.getDisplayMode().width * 0.9), 1920 / 2), Math.max((int) (Gdx.graphics.getDisplayMode().height * 0.9), 1080 / 2));
skin = new BladeSkin(Gdx.files.internal(SKIN));
VisUI.load();
FileChooser.setDefaultPrefsName("com.bladecoder.engineeditor.filechooser");
/**
* STAGE SETUP **
*/
stage = new Stage(new ScreenViewport());
Gdx.input.setInputProcessor(stage);
setCtx();
Message.init(skin);
scnEditor = new ScnEditor(skin);
scnEditor.setBackground("background");
skin.getFont("default-font").getData().markupEnabled = true;
// RIGHT PANEL
ScenePanel scenePanel = new ScenePanel(skin);
ActorPanel actorPanel = new ActorPanel(skin);
Table rightPanel = new Table(skin);
rightPanel.top().left();
rightPanel.add(actorPanel).expand().fill().left();
rightPanel.setBackground("background");
SplitPane splitPaneRight = new SplitPane(scnEditor, rightPanel, false, skin);
splitPaneRight.setSplitAmount(0.75f);
// LEFT PANEL
ProjectPanel projectPanel = new ProjectPanel(skin);
Image img = new Image(Ctx.assetManager.getIcon("title"));
img.setScaling(Scaling.none);
img.setAlign(Align.left);
Table leftPanel = new Table(skin);
leftPanel.top().left().padLeft(10);
leftPanel.add(img).expand().fill().padBottom(20).padTop(20).padLeft(0).left();
leftPanel.row();
leftPanel.add(new ProjectToolbar(skin)).expandX().fill().left();
leftPanel.row();
leftPanel.add(projectPanel).expand().fill().left();
leftPanel.row();
leftPanel.add(scenePanel).expand().fill().left();
leftPanel.setBackground("background");
SplitPane splitPaneLeft = new SplitPane(leftPanel, splitPaneRight, false, skin);
splitPaneLeft.setFillParent(true);
splitPaneLeft.setSplitAmount(0.25f);
stage.addActor(splitPaneLeft);
// LOAD LAST OPEN PROJECT
String lastProject = Ctx.project.getEditorConfig().getProperty(Project.LAST_PROJECT_PROP, "");
if (!lastProject.isEmpty() && new File(lastProject).exists()) {
try {
EditorLogger.debug("Loading last project: " + lastProject);
Ctx.project.loadProject(new File(lastProject));
if (!Ctx.project.checkVersion()) {
new Dialog("Update Engine", skin) {
protected void result(Object object) {
if (((Boolean) object).booleanValue()) {
try {
Ctx.project.updateEngineVersion();
Message.showMsg(getStage(), "Project successfully updated.", 3);
} catch (IOException e1) {
String msg = "Something went wrong while updating the engine.\n\n" + e1.getClass().getSimpleName() + " - " + e1.getMessage();
Message.showMsgDialog(getStage(), "Error", msg);
EditorLogger.error(msg, e1);
}
}
}
}.text("Your game uses an old (" + Ctx.project.getProjectBladeEngineVersion() + ") Engine version. Do you want to update the engine?").button("Yes", true).button("No", false).key(Keys.ENTER, true).key(Keys.ESCAPE, false).show(stage);
}
} catch (Exception e) {
EditorLogger.error("Error loading last project.", e);
Ctx.project.closeProject();
}
}
stage.setScrollFocus(scnEditor.getScnWidget());
stage.setKeyboardFocus(scnEditor.getScnWidget());
// TooltipManager.getInstance().instant();
TooltipManager.getInstance().initialTime = 0.2f;
TooltipManager.getInstance().hideAll();
TooltipManager.getInstance().subsequentTime = 0.2f;
}
use of com.badlogic.gdx.scenes.scene2d.Stage in project bladecoder-adventure-engine by bladecoder.
the class EditorLogger method setConsole.
public static void setConsole(Console console) {
EditorLogger.console = console;
EditorLogger.console.setDisplayKeyID(Keys.F1);
console.setMaxEntries(1000);
final Stage s = (Stage) console.getInputProcessor();
final Actor actor = s.getActors().items[0];
actor.addListener(new InputListener() {
@Override
public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
if (toActor == null) {
s.setScrollFocus(null);
}
}
});
console.setCommandExecutor(new EditorCommandExecutor());
}
use of com.badlogic.gdx.scenes.scene2d.Stage in project bladecoder-adventure-engine by bladecoder.
the class LoadSaveScreen method show.
@Override
public void show() {
float size = DPIUtils.getPrefButtonSize();
float pad = DPIUtils.getMarginSize();
final Skin skin = ui.getSkin();
final World world = World.getInstance();
// loadScreenMode = ui.getScreen(Screens.LOAD_GAME_SCREEN) == this;
loadScreenMode = world.getCurrentScene() == null;
stage = new Stage(new ScreenViewport());
slotWidth = (int) (stage.getViewport().getWorldWidth() / (ROW_SLOTS + 1) - 2 * pad);
slotHeight = (int) (slotWidth * stage.getViewport().getScreenHeight() / stage.getViewport().getScreenWidth());
LoadSaveScreenStyle style = skin.get(LoadSaveScreenStyle.class);
Drawable bg = style.background;
if (bg == null && style.bgFile != null) {
bgTexFile = new Texture(EngineAssetManager.getInstance().getResAsset(style.bgFile));
bgTexFile.setFilter(TextureFilter.Linear, TextureFilter.Linear);
bg = new TextureRegionDrawable(new TextureRegion(bgTexFile));
}
Table table = new Table(skin);
table.setFillParent(true);
table.center();
table.pad(pad);
Label title = new Label(loadScreenMode ? I18N.getString("ui.load") : I18N.getString("ui.save"), skin, "title");
Button back = new Button(skin, "back");
back.addListener(new ClickListener() {
public void clicked(InputEvent event, float x, float y) {
ui.setCurrentScreen(Screens.MENU_SCREEN);
}
});
Table header = new Table();
// header.padBottom(pad);
Container<Button> cont = new Container<Button>(back);
cont.size(size);
header.add(cont);
header.add(title).fillX().expandX().left();
table.add(header).fillX().expandX().left();
if (bg != null)
table.setBackground(bg);
table.addListener(new InputListener() {
@Override
public boolean keyUp(InputEvent event, int keycode) {
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK)
if (world.getCurrentScene() != null)
ui.setCurrentScreen(Screens.SCENE_SCREEN);
return true;
}
});
final PagedScrollPane scroll = new PagedScrollPane();
scroll.setFlingTime(0.1f);
scroll.setPageSpacing(0);
Table slots = new Table().pad(pad);
slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top();
int c = 0;
// Add "new slot" slot for save screen
if (!loadScreenMode) {
slots.add(getSlotButton(Long.toString(new Date().getTime()))).fill().expand();
c++;
}
final List<String> sl = getSlots();
Collections.sort(sl);
for (int j = sl.size() - 1; j >= 0; j--) {
String s = sl.get(j);
if (c % ROW_SLOTS == 0 && c % (ROW_SLOTS * COL_SLOTS) != 0)
slots.row();
if (c != 0 && c % (ROW_SLOTS * COL_SLOTS) == 0) {
scroll.addPage(slots);
slots = new Table().pad(pad);
slots.defaults().pad(pad).size(slotWidth + pad, slotHeight + pad * 2).top();
}
Button removeButton = new Button(skin, "delete_game");
removeButton.setName(s);
removeButton.addListener(removeClickListener);
Container<Button> container = new Container<Button>(removeButton);
container.size(DPIUtils.getPrefButtonSize() * .75f);
container.align(Align.topRight);
slots.stack(getSlotButton(s), container).fill().expand();
c++;
}
// Add last page
if (slots.getCells().size > 0)
scroll.addPage(slots);
table.row();
if (loadScreenMode && sl.size() == 0) {
Label lbl = new Label(I18N.getString("ui.noSavedGames"), skin, "title");
lbl.setAlignment(Align.center);
lbl.setWrap(true);
table.add(lbl).expand().fill();
} else {
table.add(scroll).expand().fill();
}
table.pack();
stage.setKeyboardFocus(table);
stage.addActor(table);
pointer = new Pointer(ui.getSkin());
stage.addActor(pointer);
Gdx.input.setInputProcessor(stage);
}
Aggregations