menu();
break;
- case GOTO_NEW_GAME:
+ case NEW_GAME:
gameProc = new GameProc();
renderer = gameProc.renderer;
Gdx.input.setInputProcessor(new InputHandlerGame(gameProc));
CaveGame.STATE = AppState.GAME_PLAY;
break;
- case GOTO_LOAD_GAME:_GAME:
+ case LOAD_GAME:
gameProc = GameSaver.load();
renderer = gameProc.renderer;
Gdx.input.setInputProcessor(new InputHandlerGame(gameProc));
CaveGame.STATE = AppState.GAME_PLAY;
break;
+ case SAVE_GAME:
+ GameSaver.save(gameProc);
+ CaveGame.STATE = AppState.MENU_MAIN;
+ break;
+
case GOTO_MENU:
renderer = menuRenderer;
Gdx.input.setInputProcessor(new InputHandlerMenu(menuRenderer));
- CaveGame.STATE = AppState.MENU_MAIN;
break;
}
renderer.render();
byte[] bytes = ByteBuffer.allocate(4).putInt(i).array();
file.writeBytes(bytes, append);
}
-
+
private static void saveMap(FileHandle file, int[][] map) {
int rl,bl;
int width = map.length;
if (x==map.length-1) rl++;
writeInt(file, rl, true);
writeInt(file, bl, true);
- System.out.printf("%d. Run:%d; Block:%s\n",y, rl, Items.BLOCKS.getKeyAt(bl));
rl=0;
bl=map[x][y];
}
for (int x=0; x<width; x+=rl) {
rl = bytesInt(data);
bl = bytesInt(data);
- System.out.printf("%d. Run:%d; Block:%s\n",y, rl, Items.BLOCKS.getKeyAt(bl));
for (int i=x; i<x+rl; i++) map[i][y] = bl;
}
}
public void buttonClicked(Button button) {
if (button.getLabel().toLowerCase().equals("new game")) {
- spriteBatch.begin();
- drawGenWorld();
- spriteBatch.end();
CaveGame.STATE = AppState.GOTO_NEW_GAME;
} else if (button.getLabel().toLowerCase().equals("load game")) {
- spriteBatch.begin();
- drawGenWorld();
- spriteBatch.end();
CaveGame.STATE = AppState.GOTO_LOAD_GAME;
} else if (button.getLabel().toLowerCase().equals("quit")) {
Gdx.app.exit();
(button.getX()+button.getWidth()/2)-Assets.getStringWidth(button.getLabel())/2,
(button.getY()+button.getHeight()/2)-Assets.getStringHeight(button.getLabel())/2);
}
-
+
private void drawMenuMain() {
for (Button button : menuMainButtons) {
if (button.getType()>0) {
}
}
- private void drawGenWorld() {
- for (int x=0; x<=getWidth()/16; x++)
- for (int y=0; y<=getHeight()/16; y++) {
- spriteBatch.draw(Items.BLOCKS.get("dirt").getTexture(), x * 16, y * 16);
- spriteBatch.draw(Assets.shade,x*16,y*16);
- }
- spriteBatch.draw(Assets.gameLogo, getWidth()/2-Assets.gameLogo.getWidth()/2, 0);
- drawString("Generating World...");
- spriteBatch.flush();
+ public void drawLabel(String str) {
+ drawString(str);
}
@Override
switch (CaveGame.STATE) {
case MENU_MAIN: drawMenuMain(); break;
+ case GOTO_NEW_GAME: case GOTO_LOAD_GAME: drawLabel("Generating World..."); break;
+ case GOTO_MENU: drawLabel("Saving Game..."); break;
}
drawString("CaveCraft "+CaveGame.VERSION,0,
getHeight()-Assets.getStringHeight("CaveCraft "+CaveGame.VERSION)*1.5f);
spriteBatch.end();
+
+ switch (CaveGame.STATE) {
+ case GOTO_NEW_GAME: CaveGame.STATE = AppState.NEW_GAME; break;
+ case GOTO_LOAD_GAME: CaveGame.STATE = AppState.LOAD_GAME; break;
+ case GOTO_MENU: CaveGame.STATE = AppState.SAVE_GAME; break;
+ }
+
}
}