ProjectZombie/src/projectzombie/Main.java

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