package com.github.czyzby;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.utils.I18NBundle;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.github.czyzby.kiwi.util.gdx.asset.Disposables;
import com.github.czyzby.lml.parser.LmlParser;
import com.github.czyzby.lml.util.LmlApplicationListener;
import com.github.czyzby.lml.vis.util.VisLml;
import com.github.czyzby.views.FirstView;
import com.github.czyzby.views.YetAnotherView;
import com.github.czyzby.views.actions.Global;
import com.kotcrab.vis.ui.VisUI;
import com.kotcrab.vis.ui.VisUI.SkinScale;
public class Core extends LmlApplicationListener {
public static final int WIDTH = 480, HEIGHT = 340;
private Batch batch;
@Override
public void create() {
VisUI.load(SkinScale.X2);
batch = new SpriteBatch();
super.create();
addClassAlias(YetAnotherView.ID, YetAnotherView.class);
setView(FirstView.class);
// Generating DTD:
// saveDtdSchema(Gdx.files.local("lml.dtd"));
}
/** @return application's only {@link Batch}. */
public Batch getBatch() {
return batch;
}
/** @return a new customized {@link Stage} instance. */
public static Stage newStage() {
// Getting our Core instance:
final Core core = (Core) Gdx.app.getApplicationListener();
return new Stage(new FitViewport(WIDTH, HEIGHT), core.getBatch());
}
@Override
public void dispose() {
super.dispose();
Disposables.disposeOf(batch);
VisUI.dispose(); // Disposing of default VisUI skin.
setCurrentView(null);
}
@Override
protected LmlParser createParser() {
return VisLml.parser()
// Registering global action container:
.actions("global", Global.class)
// Adding localization support:
.i18nBundle(I18NBundle.createBundle(Gdx.files.internal("i18n/bundle"))).build();
}
}