|
@@ -8,15 +8,21 @@ import com.badlogic.gdx.graphics.GL20;
|
|
import com.badlogic.gdx.graphics.PerspectiveCamera;
|
|
import com.badlogic.gdx.graphics.PerspectiveCamera;
|
|
import com.badlogic.gdx.graphics.g3d.*;
|
|
import com.badlogic.gdx.graphics.g3d.*;
|
|
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
|
|
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
|
|
|
|
+import com.badlogic.gdx.graphics.g3d.shaders.DefaultShader;
|
|
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
|
|
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
|
|
import com.badlogic.gdx.math.Vector3;
|
|
import com.badlogic.gdx.math.Vector3;
|
|
|
|
+import com.badlogic.gdx.physics.bullet.Bullet;
|
|
import com.badlogic.gdx.utils.viewport.Viewport;
|
|
import com.badlogic.gdx.utils.viewport.Viewport;
|
|
|
|
+import lombok.Getter;
|
|
import org.lwjgl.opengl.GL11;
|
|
import org.lwjgl.opengl.GL11;
|
|
import xyz.tbvns.Editor.ModelsManager;
|
|
import xyz.tbvns.Editor.ModelsManager;
|
|
import xyz.tbvns.Inputs.Shortcut;
|
|
import xyz.tbvns.Inputs.Shortcut;
|
|
import xyz.tbvns.Inputs.inputManager;
|
|
import xyz.tbvns.Inputs.inputManager;
|
|
import xyz.tbvns.LWJGL3.CustomViewport;
|
|
import xyz.tbvns.LWJGL3.CustomViewport;
|
|
import xyz.tbvns.Managers.TexturesManager;
|
|
import xyz.tbvns.Managers.TexturesManager;
|
|
|
|
+import xyz.tbvns.Models.GDModel;
|
|
|
|
+import xyz.tbvns.Models.Shaders;
|
|
|
|
+import xyz.tbvns.Physics.BulletManager;
|
|
import xyz.tbvns.ui.UIManager;
|
|
import xyz.tbvns.ui.UIManager;
|
|
import xyz.tbvns.ui.Ui;
|
|
import xyz.tbvns.ui.Ui;
|
|
import xyz.tbvns.ui.Windows.LevelSelector;
|
|
import xyz.tbvns.ui.Windows.LevelSelector;
|
|
@@ -26,7 +32,7 @@ import static org.lwjgl.opengl.GL11.GL_CULL_FACE;
|
|
/** {@link com.badlogic.gdx.ApplicationListener} implementation shared by all platforms. */
|
|
/** {@link com.badlogic.gdx.ApplicationListener} implementation shared by all platforms. */
|
|
public class Main extends ApplicationAdapter {
|
|
public class Main extends ApplicationAdapter {
|
|
private ModelBatch batch;
|
|
private ModelBatch batch;
|
|
- private Camera camera;
|
|
|
|
|
|
+ @Getter static private Camera camera;
|
|
private Model worldGrid;
|
|
private Model worldGrid;
|
|
private Model levelGrid;
|
|
private Model levelGrid;
|
|
private ModelInstance worldGridInstance;
|
|
private ModelInstance worldGridInstance;
|
|
@@ -39,6 +45,8 @@ public class Main extends ApplicationAdapter {
|
|
@Override
|
|
@Override
|
|
public void create() {
|
|
public void create() {
|
|
Setup.run();
|
|
Setup.run();
|
|
|
|
+ Bullet.init();
|
|
|
|
+ BulletManager.innit();
|
|
Ui.initImGui();
|
|
Ui.initImGui();
|
|
UIManager.loadUi();
|
|
UIManager.loadUi();
|
|
UIManager.getActiveUI().put(LevelSelector.class, true);
|
|
UIManager.getActiveUI().put(LevelSelector.class, true);
|
|
@@ -51,6 +59,7 @@ public class Main extends ApplicationAdapter {
|
|
|
|
|
|
Gdx.gl.glEnable(GL11.GL_BLEND);
|
|
Gdx.gl.glEnable(GL11.GL_BLEND);
|
|
Gdx.gl.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
|
Gdx.gl.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
|
|
|
+ Gdx.gl.glEnable(GL20.GL_DEPTH_TEST);
|
|
|
|
|
|
ModelBuilder builder = new ModelBuilder();
|
|
ModelBuilder builder = new ModelBuilder();
|
|
|
|
|
|
@@ -68,6 +77,8 @@ public class Main extends ApplicationAdapter {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void render() {
|
|
public void render() {
|
|
|
|
+ BulletManager.update();
|
|
|
|
+
|
|
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
|
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
|
|
Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
|
|
Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
|
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT | (Gdx.graphics.getBufferFormat().coverageSampling ? GL20.GL_COVERAGE_BUFFER_BIT_NV : 0));
|
|
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT | (Gdx.graphics.getBufferFormat().coverageSampling ? GL20.GL_COVERAGE_BUFFER_BIT_NV : 0));
|
|
@@ -76,6 +87,7 @@ public class Main extends ApplicationAdapter {
|
|
viewport.setScreenPosition(200, 200);
|
|
viewport.setScreenPosition(200, 200);
|
|
viewport.update(Gdx.graphics.getWidth() - 200, Gdx.graphics.getHeight(), false);
|
|
viewport.update(Gdx.graphics.getWidth() - 200, Gdx.graphics.getHeight(), false);
|
|
|
|
|
|
|
|
+ //TODO: move grid rendering elsewhere
|
|
Vector3 gridPos = new Vector3(camera.position);
|
|
Vector3 gridPos = new Vector3(camera.position);
|
|
gridPos.x = Math.round(gridPos.x);
|
|
gridPos.x = Math.round(gridPos.x);
|
|
gridPos.y = -0.01f;
|
|
gridPos.y = -0.01f;
|
|
@@ -90,17 +102,22 @@ public class Main extends ApplicationAdapter {
|
|
|
|
|
|
levelGridInstance.transform.setTranslation(gridPos);
|
|
levelGridInstance.transform.setTranslation(gridPos);
|
|
|
|
|
|
-// cameraInputController.update();
|
|
|
|
batch.begin(camera);
|
|
batch.begin(camera);
|
|
if (modelCache != null) {
|
|
if (modelCache != null) {
|
|
batch.render(modelCache);
|
|
batch.render(modelCache);
|
|
}
|
|
}
|
|
- if (ModelsManager.getSelectedModel() != null) {
|
|
|
|
- batch.render(new ModelInstance(ModelsManager.getSelectedModel()));
|
|
|
|
- }
|
|
|
|
batch.render(worldGridInstance);
|
|
batch.render(worldGridInstance);
|
|
batch.render(levelGridInstance);
|
|
batch.render(levelGridInstance);
|
|
|
|
+ for (ModelInstance model : ModelsManager.getLoadedModels()) {
|
|
|
|
+ if (ModelsManager.getSelectedModelInstance() == model) {
|
|
|
|
+ Shaders.renderOutline(model);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (ModelInstance model : ModelsManager.getLoadedModels()) {
|
|
|
|
+ batch.render(model);
|
|
|
|
+ }
|
|
batch.end();
|
|
batch.end();
|
|
|
|
+
|
|
Ui.render();
|
|
Ui.render();
|
|
Shortcut.check();
|
|
Shortcut.check();
|
|
}
|
|
}
|