org.shadebob.skineditor.SkinEditorGame.java Source code

Java tutorial

Introduction

Here is the source code for org.shadebob.skineditor.SkinEditorGame.java

Source

/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package org.shadebob.skineditor;

import org.shadebob.skineditor.screens.MainScreen;
import org.shadebob.skineditor.screens.WelcomeScreen;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.tools.texturepacker.TexturePacker;

/**
 * Main game class I re-use everywhere in this program.
 * 
 * @author Yanick Bourbeau
 */
public class SkinEditorGame extends Game {

    public final static String[] widgets = { "Label", "Button", "TextButton", "ImageButton", "CheckBox",
            "TextField", "List", "SelectBox", "ProgressBar", "Slider", "ScrollPane", "SplitPane", "Window",
            "Touchpad", "Tree" };

    public SpriteBatch batch;
    public Skin skin;
    public TextureAtlas atlas;

    public MainScreen screenMain;
    public WelcomeScreen screenWelcome;

    // Project related
    public Skin skinProject;

    // System fonts
    public SystemFonts fm;

    // Optional check
    public OptionalChecker opt;

    @Override
    public void create() {

        opt = new OptionalChecker();

        fm = new SystemFonts();
        fm.refreshFonts();

        // Create projects folder if not already here
        FileHandle dirProjects = new FileHandle("projects");

        if (dirProjects.isDirectory() == false) {
            dirProjects.mkdirs();
        }

        // Rebuild from raw resources, kind of overkill, might disable it for production
        TexturePacker.Settings settings = new TexturePacker.Settings();
        settings.combineSubdirectories = true;
        TexturePacker.process(settings, "resources/raw/", ".", "resources/uiskin");

        batch = new SpriteBatch();
        skin = new Skin();
        atlas = new TextureAtlas(Gdx.files.internal("resources/uiskin.atlas"));

        skin.addRegions(new TextureAtlas(Gdx.files.local("resources/uiskin.atlas")));
        skin.load(Gdx.files.local("resources/uiskin.json"));

        screenMain = new MainScreen(this);
        screenWelcome = new WelcomeScreen(this);
        setScreen(screenWelcome);

    }

    /**
     * Display a dialog with a notice
     */
    public void showNotice(String title, String message, Stage stage) {
        Dialog dlg = new Dialog(title, skin);
        dlg.pad(20);
        dlg.getContentTable().add(message).pad(20);
        dlg.button("OK", true);
        dlg.key(com.badlogic.gdx.Input.Keys.ENTER, true);
        dlg.key(com.badlogic.gdx.Input.Keys.ESCAPE, false);
        dlg.show(stage);
    }

}