117 lines
3.3 KiB
Java
Executable File
117 lines
3.3 KiB
Java
Executable File
package projectzombie;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Random;
|
|
|
|
import mainloop.manager.MainloopManager;
|
|
import projectzombie.audio.AudioEngine;
|
|
import projectzombie.audio.AudioSources;
|
|
import projectzombie.display.DisplayStatsEventHandler;
|
|
import projectzombie.display.DisplayWindow;
|
|
import projectzombie.display.bossbar.BossBars;
|
|
import projectzombie.entity.EntityEventHandler;
|
|
import projectzombie.entity.player.EntityPlayer;
|
|
import projectzombie.init.Entities;
|
|
import projectzombie.init.Items;
|
|
import projectzombie.init.LayerGenerators;
|
|
import projectzombie.init.Layers;
|
|
import projectzombie.init.Resources;
|
|
import projectzombie.init.Sounds;
|
|
import projectzombie.init.Tiles;
|
|
import projectzombie.input.JoystickCallback;
|
|
import projectzombie.input.KeyCallback;
|
|
import projectzombie.mainloop.MainloopEventHandler;
|
|
import projectzombie.mainloop.MainloopHelpers;
|
|
import projectzombie.menu.Menu;
|
|
import projectzombie.menu.MenuMain;
|
|
import projectzombie.settings.Cheats;
|
|
import projectzombie.settings.Environment;
|
|
import projectzombie.settings.Settings;
|
|
import projectzombie.time.GameTimer;
|
|
import projectzombie.time.NoSleep;
|
|
import projectzombie.worker.Worker;
|
|
import projectzombie.world.World;
|
|
import projectzombie.world.chunk.ChunkEventHandler;
|
|
|
|
public class Main
|
|
{
|
|
public static MainloopManager mainloop;
|
|
public static DisplayWindow window;
|
|
public static EntityPlayer player;
|
|
public static World world;
|
|
public static AudioEngine audio;
|
|
public static Random rand = new Random();
|
|
public static Menu menu;
|
|
public static Worker worker;
|
|
public static boolean game_paused = false;
|
|
public static int tickrate = 10;
|
|
|
|
public static void respawn()
|
|
{
|
|
// Reset the world and the player
|
|
Layers.init(rand.nextLong());
|
|
player = new EntityPlayer();
|
|
GameTimer.resetTime();
|
|
|
|
/*BdfCompressedFileManager bdf = new BdfCompressedFileManager("./layer.bdf");
|
|
Main.world = new World();
|
|
Main.world.BdfClassLoad(bdf);*/
|
|
|
|
BossBars.clear();
|
|
}
|
|
|
|
public static void main(String[] args) throws IOException
|
|
{
|
|
worker = new Worker();
|
|
worker.start();
|
|
|
|
// Initialize cheats, settings, and environment
|
|
Environment.init(args);
|
|
Cheats.init(args);
|
|
Settings.init();
|
|
|
|
Items.init();
|
|
Entities.init();
|
|
Tiles.init();
|
|
LayerGenerators.init();
|
|
|
|
// Create the display
|
|
window = new DisplayWindow();
|
|
window.init();
|
|
|
|
// Load the resources
|
|
Resources.loadResources();
|
|
|
|
// Initialize the sound engine
|
|
audio = new AudioEngine();
|
|
audio.init();
|
|
|
|
// Initialise the sounds
|
|
AudioSources.init();
|
|
Sounds.init();
|
|
|
|
// Initialize the gamepad
|
|
JoystickCallback.JOYSTICK_CALLBACK.init();
|
|
|
|
// Create the mainloop
|
|
mainloop = new MainloopManager(MainloopEventHandler.MAINLOOP_EVENT_HANDLER);
|
|
mainloop.register(DisplayStatsEventHandler.DISPLAY_STATS_EVENT_HANDLER);
|
|
mainloop.register(MainloopEventHandler.MAINLOOP_EVENT_HANDLER);
|
|
mainloop.register(EntityEventHandler.ENTITY_EVENT_HANDLER);
|
|
mainloop.register(ChunkEventHandler.CHUNK_EVENT_HANDLER);
|
|
mainloop.register(JoystickCallback.JOYSTICK_CALLBACK);
|
|
mainloop.register(new MainloopHelpers());
|
|
mainloop.register(new KeyCallback());
|
|
mainloop.register(new GameTimer());
|
|
mainloop.register(new NoSleep());
|
|
mainloop.register(window);
|
|
|
|
// Start the mainloop
|
|
menu = new MenuMain();
|
|
mainloop.start();
|
|
|
|
// Kill the worker thread
|
|
worker.kill();
|
|
}
|
|
}
|