123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package eu.tankernn.game;
- import static eu.tankernn.game.Settings.DUDV_MAP;
- import static eu.tankernn.game.Settings.NIGHT_TEXTURE_FILES;
- import static eu.tankernn.game.Settings.NORMAL_MAP;
- import static eu.tankernn.game.Settings.TEXTURE_FILES;
- import java.io.FileNotFoundException;
- import org.lwjgl.util.vector.Vector3f;
- import eu.tankernn.gameEngine.GameLauncher;
- import eu.tankernn.gameEngine.TankernnGame3D;
- import eu.tankernn.gameEngine.entities.Entity3D;
- import eu.tankernn.gameEngine.entities.Light;
- import eu.tankernn.gameEngine.entities.Player;
- import eu.tankernn.gameEngine.entities.PlayerCamera;
- import eu.tankernn.gameEngine.loader.textures.TerrainTexturePack;
- import eu.tankernn.gameEngine.loader.textures.Texture;
- import eu.tankernn.gameEngine.particles.ParticleMaster;
- import eu.tankernn.gameEngine.particles.ParticleSystem;
- import eu.tankernn.gameEngine.particles.ParticleTexture;
- import eu.tankernn.gameEngine.postProcessing.PostProcessor;
- import eu.tankernn.gameEngine.renderEngine.MasterRenderer;
- import eu.tankernn.gameEngine.renderEngine.water.WaterMaster;
- import eu.tankernn.gameEngine.renderEngine.water.WaterTile;
- import eu.tankernn.gameEngine.terrains.TerrainPack;
- import eu.tankernn.gameEngine.util.InternalFile;
- import eu.tankernn.gameEngine.util.MousePicker;
- public class Game extends TankernnGame3D {
- public Game() {
- super(Settings.GAME_NAME, TEXTURE_FILES, NIGHT_TEXTURE_FILES, new Light(new Vector3f(1, 1000, 1000), new Vector3f(1f, 1f, 1f)));
-
- try {
- setupTerrain();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
-
- player = new Player(loader.getModel(0), new Vector3f(0, 0, 0), new Vector3f(0, 0, 0), 1, loader.getBoundingBox(0), terrainPack);
-
- entities.add(player);
- camera = new PlayerCamera(player, terrainPack);
-
- renderer = new MasterRenderer(loader, camera, sky);
- try {
- waterMaster = new WaterMaster(loader, loader.loadTexture(DUDV_MAP), loader.loadTexture(NORMAL_MAP), camera);
- setupWater();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- particleMaster = new ParticleMaster(loader, camera.getProjectionMatrix());
- try {
- ParticleSystem system = new ParticleSystem(new ParticleTexture(Texture.newTexture(new InternalFile("particles/particleAtlas.png")).create(), 4, false), 10, 20, 1, 2);
- system.setPosition(new Vector3f(10, 10, 10));
- particleMaster.addSystem(system);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
-
- entities.add(new Entity3D(loader.getModel(2), new Vector3f(10, 10, 10), new Vector3f(0, 0, 0), 1, loader.getBoundingBox(1)));
-
- entities.add(new Entity3D(loader.getModel(3), new Vector3f(10, 10, 10), new Vector3f(0, 0, 0), 1, loader.getBoundingBox(1)));
-
- postProcessor = new PostProcessor(loader);
- picker = new MousePicker(camera, camera.getProjectionMatrix(), entities, guiMaster.getGuis());
- }
-
- private void setupTerrain() throws FileNotFoundException {
- Texture backgroundTexture = loader.loadTexture("textures/grassy.png");
- Texture rTexture = loader.loadTexture("textures/dirt.png");
- Texture gTexture = loader.loadTexture("textures/pinkFlowers.png");
- Texture bTexture = loader.loadTexture("textures/path.png");
-
- TerrainTexturePack texturePack = new TerrainTexturePack(backgroundTexture, rTexture, gTexture, bTexture);
- Texture blendMap = loader.loadTexture("textures/blendMap.png");
-
- terrainPack = new TerrainPack(loader, texturePack, blendMap, 1235);
- }
-
- private void setupWater() {
- WaterTile water = new WaterTile(50, 50, 0, 50);
- waterMaster.addWaterTile(water);
- }
-
- public void update() {
- super.update();
- //TODO Check if there is a water tile above
- if (camera.getPosition().y < 0 && postProcessor.blurFactor < 2)
- postProcessor = new PostProcessor(loader, true);
- else if (camera.getPosition().y > 0 && postProcessor.blurFactor > 0)
- postProcessor = new PostProcessor(loader, false);
- if (picker.getCurrentTerrainPoint() != null) {
- entities.get(1).setPosition(picker.getCurrentTerrainPoint());
- }
- }
-
- public static void main(String[] args) {
- GameLauncher.init(Settings.GAME_NAME, 1600, 900);
- GameLauncher.launch(new Game());
- }
- }
|