125 lines
3.5 KiB
Java
Executable File
125 lines
3.5 KiB
Java
Executable File
package projectzombie;
|
|
|
|
import java.awt.Toolkit;
|
|
import java.awt.datatransfer.Clipboard;
|
|
import java.io.IOException;
|
|
import java.util.Random;
|
|
|
|
import gl_engine.MathHelpers;
|
|
import mainloop.manager.MainloopManager;
|
|
import projectzombie.audio.AudioEngine;
|
|
import projectzombie.audio.AudioSources;
|
|
import projectzombie.display.DisplayStatsEventHandler;
|
|
import projectzombie.display.DisplayWindow;
|
|
import projectzombie.entity.EntityEventHandler;
|
|
import projectzombie.entity.player.EntityPlayer;
|
|
import projectzombie.init.Entities;
|
|
import projectzombie.init.ItemModifiers;
|
|
import projectzombie.init.Items;
|
|
import projectzombie.init.LayerGenerators;
|
|
import projectzombie.init.Recipes;
|
|
import projectzombie.init.Resources;
|
|
import projectzombie.init.Sounds;
|
|
import projectzombie.init.Tasks;
|
|
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.WorkerChunks;
|
|
import projectzombie.worker.WorkerLighting;
|
|
import projectzombie.world.World;
|
|
import projectzombie.world.chunk.ChunkEventHandler;
|
|
|
|
public class Main
|
|
{
|
|
public static Clipboard clipboard;
|
|
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 WorkerLighting workerLighting;
|
|
public static WorkerChunks workerChunks;
|
|
public static boolean game_paused = false;
|
|
public static int tickrate = 10;
|
|
|
|
public static void main(String[] args) throws IOException
|
|
{
|
|
try
|
|
{
|
|
clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
|
|
workerChunks = new WorkerChunks();
|
|
workerLighting = new WorkerLighting();
|
|
|
|
workerChunks.start();
|
|
workerLighting.start();
|
|
|
|
MathHelpers.init();
|
|
Settings.init();
|
|
Environment.init(args);
|
|
Cheats.init(args);
|
|
|
|
Items.init();
|
|
ItemModifiers.init();
|
|
Entities.init();
|
|
Tasks.init();
|
|
Tiles.init();
|
|
LayerGenerators.init();
|
|
Recipes.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();
|
|
}
|
|
|
|
finally
|
|
{
|
|
// Kill the worker thread
|
|
workerLighting.kill();
|
|
workerChunks.kill();
|
|
}
|
|
}
|
|
}
|