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(); } }