Search in sources :

Example 91 with Stage

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();
}
Also used : FileInputPanel(com.bladecoder.engineeditor.ui.panels.FileInputPanel) InputPanel(com.bladecoder.engineeditor.ui.panels.InputPanel) Stage(com.badlogic.gdx.scenes.scene2d.Stage) IOException(java.io.IOException)

Example 92 with Stage

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);
}
Also used : Task(com.badlogic.gdx.utils.Timer.Task) Stage(com.badlogic.gdx.scenes.scene2d.Stage)

Example 93 with Stage

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;
}
Also used : ScenePanel(com.bladecoder.engineeditor.ui.ScenePanel) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) ScnEditor(com.bladecoder.engineeditor.scneditor.ScnEditor) ScreenViewport(com.badlogic.gdx.utils.viewport.ScreenViewport) SplitPane(com.badlogic.gdx.scenes.scene2d.ui.SplitPane) IOException(java.io.IOException) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) BladeSkin(com.bladecoder.engine.ui.BladeSkin) IOException(java.io.IOException) Dialog(com.badlogic.gdx.scenes.scene2d.ui.Dialog) Stage(com.badlogic.gdx.scenes.scene2d.Stage) ActorPanel(com.bladecoder.engineeditor.ui.ActorPanel) ProjectPanel(com.bladecoder.engineeditor.ui.ProjectPanel) File(java.io.File) ProjectToolbar(com.bladecoder.engineeditor.ui.ProjectToolbar)

Example 94 with Stage

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());
}
Also used : InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) Actor(com.badlogic.gdx.scenes.scene2d.Actor) Stage(com.badlogic.gdx.scenes.scene2d.Stage) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent)

Example 95 with Stage

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);
}
Also used : Label(com.badlogic.gdx.scenes.scene2d.ui.Label) TextureRegionDrawable(com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable) World(com.bladecoder.engine.model.World) Texture(com.badlogic.gdx.graphics.Texture) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Container(com.badlogic.gdx.scenes.scene2d.ui.Container) InputListener(com.badlogic.gdx.scenes.scene2d.InputListener) Button(com.badlogic.gdx.scenes.scene2d.ui.Button) Stage(com.badlogic.gdx.scenes.scene2d.Stage) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) TextureRegionDrawable(com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable) Drawable(com.badlogic.gdx.scenes.scene2d.utils.Drawable) ScreenViewport(com.badlogic.gdx.utils.viewport.ScreenViewport) Date(java.util.Date) Skin(com.badlogic.gdx.scenes.scene2d.ui.Skin)

Aggregations

Stage (com.badlogic.gdx.scenes.scene2d.Stage)107 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)46 Table (com.badlogic.gdx.scenes.scene2d.ui.Table)46 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)38 Texture (com.badlogic.gdx.graphics.Texture)36 Actor (com.badlogic.gdx.scenes.scene2d.Actor)32 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)30 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)30 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)28 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)22 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)22 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)20 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)19 BitmapFont (com.badlogic.gdx.graphics.g2d.BitmapFont)18 SpriteBatch (com.badlogic.gdx.graphics.g2d.SpriteBatch)15 TextureRegionDrawable (com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable)13 ScrollPane (com.badlogic.gdx.scenes.scene2d.ui.ScrollPane)12 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)11 Sprite (com.badlogic.gdx.graphics.g2d.Sprite)10 TextField (com.badlogic.gdx.scenes.scene2d.ui.TextField)10