package com.jmrapp.terralegion;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.jmrapp.terralegion.engine.utils.Settings;
import com.jmrapp.terralegion.engine.utils.Timer;
import com.jmrapp.terralegion.engine.views.drawables.ResourceManager;
import com.jmrapp.terralegion.engine.views.screens.ScreenManager;
import com.jmrapp.terralegion.game.utils.ThreadManager;
import com.jmrapp.terralegion.game.views.screen.MainScreen;
public class PhysicsGame implements ApplicationListener {
protected SpriteBatch sb;
protected boolean paused;
protected long lastBack;
@Override
public void create() {
sb = new SpriteBatch(150);
sb.enableBlending();
instantiateSettings();
Gdx.input.setCatchBackKey(true); //Stops from exiting when back button pressed
//MENU
ResourceManager.getInstance().loadSprite("menuBg", "menu/bg.png", .588f, .625f);
ResourceManager.getInstance().loadSprite("btnBg", "ui/btnBg.png", .75f, .75f);
//GAME
ResourceManager.getInstance().loadTexture("joystickBg", "ui/joystickBg.png");
ResourceManager.getInstance().loadTexture("joystickKnob", "ui/joystickKnob.png");
ResourceManager.getInstance().loadTexture("bg", "bg.png");
ResourceManager.getInstance().loadTexture("playerAnimated", "player_animated.png");
ResourceManager.getInstance().loadTexture("leftBtn", "ui/leftBtn.png");
ResourceManager.getInstance().loadTexture("rightBtn", "ui/rightBtn.png");
ResourceManager.getInstance().loadTexture("upBtn", "ui/upBtn.png");
ResourceManager.getInstance().loadTexture("bunny", "entities/bunny.png");
ResourceManager.getInstance().loadTexture("hedgehog", "entities/bunny.png"); //Jordan didn't push hedgehog, waiting.
//UI
ResourceManager.getInstance().loadTexture("inventoryBox", "ui/inventoryBox.png");
ResourceManager.getInstance().loadTexture("selectedInventoryBox", "ui/selectedInventoryBox.png");
ResourceManager.getInstance().loadTexturedDrawable("cancelBtn", "ui/cancelBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("unselectedCraftingBtn", "ui/unselectedCraftingBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("unselectedInvBtn", "ui/unselectedInvBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("selectedInvBtn", "ui/selectedInvBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("dropItemBtn", "ui/dropItemBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("splitItemBtn", "ui/splitItemBtn.png");
ResourceManager.getInstance().loadTexture("heart", "ui/heart.png");
//INVENTORY SCREEN
ResourceManager.getInstance().loadTexture("inventoryBg", "inventory/invBg.png");
ResourceManager.getInstance().loadTexture("invStageBg", "inventory/stageBg.png");
ResourceManager.getInstance().loadTexturedDrawable("inventoryBtn", "ui/inventoryBtn.png");
//CRAFTING SCREEN
ResourceManager.getInstance().loadTexture("craftingBg", "inventory/craftingBg.png");
ResourceManager.getInstance().loadTexturedDrawable("selectedCraftingBtn", "ui/selectedCraftingBtn.png");
ResourceManager.getInstance().loadTexture("selectedToolCategoryBtn", "ui/selectedToolCategoryBtn.png");
ResourceManager.getInstance().loadTexture("unselectedToolCategoryBtn", "ui/unselectedToolCategoryBtn.png");
ResourceManager.getInstance().loadTexturedDrawable("craftBtn", "ui/craftBtn.png");
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("tiles/tiles.atlas"));
//TILES
ResourceManager.getInstance().loadAtlasRegionDrawable("grass", atlas, "grass");
ResourceManager.getInstance().loadAtlasRegionDrawable("dirt", atlas, "dirt");
ResourceManager.getInstance().loadAtlasRegionDrawable("stone", atlas, "stone");
ResourceManager.getInstance().loadAtlasRegionDrawable("diamond", atlas, "diamond");
ResourceManager.getInstance().loadAtlasRegionDrawable("torch", atlas, "torch");
ResourceManager.getInstance().loadAtlasRegionDrawable("coalOre", atlas, "coalOre");
ResourceManager.getInstance().loadAtlasRegionDrawable("stoneWall", atlas, "stoneWall");
ResourceManager.getInstance().loadAtlasRegionDrawable("dirtWall", atlas, "dirtWall");
ResourceManager.getInstance().loadAtlasRegionDrawable("leaves", atlas, "leaves");
ResourceManager.getInstance().loadAtlasRegionDrawable("wood", atlas, "wood");
//ResourceManager.getInstance().loadAtlasRegionDrawable("dummyTile", atlas, "dummyTile");
ResourceManager.getInstance().loadAtlasRegionDrawable("blankTile", atlas, "blankTile");
ResourceManager.getInstance().loadAtlasRegionDrawable("chest", atlas, "chest");
ResourceManager.getInstance().loadAtlasRegionDrawable("covergrass", atlas, "covergrass");
ResourceManager.getInstance().loadAtlasRegionDrawable("crop0", atlas, "crop0");
ResourceManager.getInstance().loadAtlasRegionDrawable("crop1", atlas, "crop1");
ResourceManager.getInstance().loadAtlasRegionDrawable("crop2", atlas, "crop2");
ResourceManager.getInstance().loadAtlasRegionDrawable("crop3", atlas, "crop3");
ResourceManager.getInstance().loadAtlasRegionDrawable("mushroom0", atlas, "mushroom0");
ResourceManager.getInstance().loadAtlasRegionDrawable("mushroom1", atlas, "mushroom1");
ResourceManager.getInstance().loadAtlasRegionDrawable("mushroom2", atlas, "mushroom2");
ResourceManager.getInstance().loadAtlasRegionDrawable("stove", atlas, "stove");
ResourceManager.getInstance().loadAtlasRegionDrawable("sand", atlas, "sand");
ResourceManager.getInstance().loadAtlasRegionDrawable("cactus", atlas, "cactus");
ResourceManager.getInstance().loadAtlasRegionDrawable("glass", atlas, "glass");
ResourceManager.getInstance().loadAtlasRegionDrawable("sandWall", atlas, "sandWall");
ResourceManager.getInstance().loadAtlasRegionDrawable("sandStone", atlas, "sandStone");
ResourceManager.getInstance().loadAtlasRegionDrawable("glassHard", atlas, "glassHard");
ResourceManager.getInstance().loadAtlasRegionDrawable("appleLeaves", atlas, "appleLeaves");
ResourceManager.getInstance().loadAtlasRegionDrawable("cactusWall", atlas, "cactusWall");
ResourceManager.getInstance().loadAtlasRegionDrawable("fenceWood", atlas, "fenceWood");
ResourceManager.getInstance().loadAtlasRegionDrawable("fenceStone", atlas, "fenceStone");
atlas = new TextureAtlas(Gdx.files.internal("tiles/drops.atlas"));
//DROPS
ResourceManager.getInstance().loadAtlasRegionDrawable("dirtDrop", atlas, "dirtDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("grassDrop", atlas, "grassDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("stoneDrop", atlas, "stoneDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("torchDrop", atlas, "torchDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("diamondDrop", atlas, "diamondDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("coalDrop", atlas, "coalDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("leavesDrop", atlas, "leavesDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("woodDrop", atlas, "woodDrop");
ResourceManager.getInstance().loadAtlasRegionDrawable("stickDrop", atlas, "stickDrop");
//ITEMS
ResourceManager.getInstance().loadTexturedDrawable("woodenPickaxe", "items/woodenPickaxe.png");
ResourceManager.getInstance().loadTexturedDrawable("sword", "items/sword.png");
ResourceManager.getInstance().loadTexturedDrawable("stick", "items/stick.png");
ResourceManager.getInstance().loadTexturedDrawable("seed", "items/seed.png");
ResourceManager.getInstance().loadTexturedDrawable("fish", "items/fish.png");
ResourceManager.getInstance().loadTexturedDrawable("fish_cooked", "items/fish_cooked.png");
ResourceManager.getInstance().loadTexturedDrawable("apple", "items/apple.png");
ResourceManager.getInstance().loadTexturedDrawable("coal", "items/coal.png");
//FONTS
ResourceManager.getInstance().loadFont("font", "fonts/source-sans-pro-regular.ttf", Color.WHITE, 20);
ResourceManager.getInstance().loadFont("smallFont", "fonts/source-sans-pro-regular.ttf", Color.WHITE, 12);
//SOUNDS
//SoundManager.getInstance().loadSound("buttonClick", "sounds/buttonClick.wav");
/*if (!PrefManager.stringPrefExists("levelCompleted11")) {
PrefManager.putEncodedString("levelCompleted11", "1-1");
}*/
//ItemManager.getInstance(); //LOAD THE INSTANCE
//DropManager.getInstance(); //LOAD THE INSTANCE
ScreenManager.setScreen(new MainScreen());
}
@Override
public void render() {
if (!paused) {
Timer.getInstance().update();
if (ScreenManager.getCurrent() != null)
ScreenManager.getCurrent().update();
}
if (Gdx.input.isKeyPressed(Input.Keys.BACK) && System.currentTimeMillis() - lastBack > 300) {
if (ScreenManager.getCurrent() != null) {
ScreenManager.getCurrent().onBackPressed();
}
lastBack = System.currentTimeMillis();
}
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl20.glClearColor(0f, 0f, 0f, 1);
if (ScreenManager.getCurrent() != null) {
ScreenManager.getCurrent().render(sb);
}
}
@Override
public void resize(int width, int height) {
if (ScreenManager.getCurrent() != null)
ScreenManager.getCurrent().resize(width, height);
}
@Override
public void pause() {
paused = true;
if (ScreenManager.getCurrent() != null)
ScreenManager.getCurrent().pause();
}
@Override
public void resume() {
paused = false;
if (ScreenManager.getCurrent() != null)
ScreenManager.getCurrent().resume();
}
@Override
public void dispose() {
sb.dispose();
ResourceManager.getInstance().dispose();
ThreadManager.getInstance().shutdown();
}
public static void instantiateSettings() {
Settings.addSetting("width", 800);
Settings.addSetting("height", 480);
}
}