package coffee.liz.abstractionengine.app; import coffee.liz.abstractionengine.app.screen.ScrollLogo; import coffee.liz.abstractionengine.app.config.Settings; import coffee.liz.abstractionengine.app.utils.FontHelper; import coffee.liz.ecs.math.Vec2; import coffee.liz.ecs.math.Vec2f; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.utils.viewport.FitViewport; import com.kotcrab.vis.ui.VisUI; public class AbstractionEngineGame extends Game { public static final Vec2 WORLD_SIZE = Vec2f.builder().x(800f).y(800f).build(); public SpriteBatch batch; public BitmapFont font; public FitViewport viewport; public ShapeRenderer shapeRenderer; public Settings settings = Settings.builder().build(); /** * Game initialization hook. */ public void create() { VisUI.load(); viewport = new FitViewport(WORLD_SIZE.getX(), WORLD_SIZE.getY()); batch = new SpriteBatch(); shapeRenderer = new ShapeRenderer(); font = FontHelper.initFont(24, FontHelper.MONO, AbstractionEngineGame.WORLD_SIZE.getY() / Gdx.graphics.getHeight()); this.setScreen(new ScrollLogo(this)); viewport.update(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true); } /** * Game render hook. */ public void render() { super.render(); } /** * Game cleanup hook. */ public void dispose() { batch.dispose(); font.dispose(); shapeRenderer.dispose(); VisUI.dispose(); } }