summaryrefslogtreecommitdiff
path: root/core/src/org/snoopdesigns/endless/EndlessGame.java
diff options
context:
space:
mode:
authorDmitri Morozov <snoopdesigns@gmail.com>2024-02-02 18:58:12 +0100
committerue86388 <dmitrii.morozov@sbb.ch>2024-02-02 18:58:12 +0100
commite3935fe4b6ecfbe161001fc95d295f53e8520c52 (patch)
tree0cb9525d8a616674be57aa5cc90444c081fadc03 /core/src/org/snoopdesigns/endless/EndlessGame.java
parente55b03a924ab9dc02e2baca77ce49deae27dda6d (diff)
Initial commit
Diffstat (limited to 'core/src/org/snoopdesigns/endless/EndlessGame.java')
-rw-r--r--core/src/org/snoopdesigns/endless/EndlessGame.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/core/src/org/snoopdesigns/endless/EndlessGame.java b/core/src/org/snoopdesigns/endless/EndlessGame.java
new file mode 100644
index 0000000..fc72c66
--- /dev/null
+++ b/core/src/org/snoopdesigns/endless/EndlessGame.java
@@ -0,0 +1,66 @@
+package org.snoopdesigns.endless;
+
+import java.util.List;
+
+import com.badlogic.gdx.ApplicationAdapter;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.InputMultiplexer;
+import com.badlogic.gdx.utils.ScreenUtils;
+import org.snoopdesigns.endless.context.Context;
+import org.snoopdesigns.endless.context.OnInit;
+import org.snoopdesigns.endless.physics.Box2DDebugRenderer;
+import org.snoopdesigns.endless.physics.Box2DRenderer;
+import org.snoopdesigns.endless.physics.camera.CameraRenderer;
+import org.snoopdesigns.endless.renderer.CursorRenderer;
+import org.snoopdesigns.endless.renderer.DebugRenderer;
+import org.snoopdesigns.endless.renderer.Renderer;
+import org.snoopdesigns.endless.utils.ExitControllable;
+import org.snoopdesigns.endless.world.ObjectsRenderer;
+import org.snoopdesigns.endless.world.bg.BackgroundRenderer;
+
+public class EndlessGame extends ApplicationAdapter {
+
+ private final List<Renderer> renderers = List.of(
+ new BackgroundRenderer(),
+ new Box2DRenderer(),
+ new CameraRenderer(),
+ new Box2DDebugRenderer(),
+ new ObjectsRenderer(),
+ new CursorRenderer(),
+ new DebugRenderer()
+ );
+
+ private final List<OnInit> intializers = List.of(
+ new Context()
+ );
+
+ @Override
+ public void create () {
+ intializers.forEach(OnInit::create);
+
+ final InputMultiplexer inputMultiplexer = new InputMultiplexer();
+ renderers.forEach(inputMultiplexer::addProcessor);
+ inputMultiplexer.addProcessor(Context.getInstance().getPlayerShip());
+ inputMultiplexer.addProcessor(new ExitControllable());
+ Gdx.input.setInputProcessor(inputMultiplexer);
+
+ renderers.forEach(Renderer::create);
+ }
+
+ @Override
+ public void render () {
+ ScreenUtils.clear(0, 0, 0, 1);
+ renderers.forEach(Renderer::render);
+ }
+
+ @Override
+ public void resize(int width, int height) {
+ renderers.forEach(renderer ->
+ renderer.resize(width, height));
+ }
+
+ @Override
+ public void dispose() {
+ renderers.forEach(Renderer::dispose);
+ }
+}