Search in sources :

Example 1 with BladeSkin

use of com.bladecoder.engine.ui.BladeSkin 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)

Aggregations

Stage (com.badlogic.gdx.scenes.scene2d.Stage)1 Dialog (com.badlogic.gdx.scenes.scene2d.ui.Dialog)1 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)1 SplitPane (com.badlogic.gdx.scenes.scene2d.ui.SplitPane)1 Table (com.badlogic.gdx.scenes.scene2d.ui.Table)1 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)1 BladeSkin (com.bladecoder.engine.ui.BladeSkin)1 ScnEditor (com.bladecoder.engineeditor.scneditor.ScnEditor)1 ActorPanel (com.bladecoder.engineeditor.ui.ActorPanel)1 ProjectPanel (com.bladecoder.engineeditor.ui.ProjectPanel)1 ProjectToolbar (com.bladecoder.engineeditor.ui.ProjectToolbar)1 ScenePanel (com.bladecoder.engineeditor.ui.ScenePanel)1 File (java.io.File)1 IOException (java.io.IOException)1