DEADSOFTWARE

Update README
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / misc / Renderer.java
index 18e077ac586e31ff158f21b7d6da1e41d7b5022f..c2577d36e4940a996468b3dbb382369b19eb000d 100644 (file)
@@ -1,28 +1,33 @@
 package ru.deadsoftware.cavedroid.misc;
 
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.InputProcessor;
 import com.badlogic.gdx.graphics.OrthographicCamera;
 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
 import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
-import ru.deadsoftware.cavedroid.GameScreen;
+import com.badlogic.gdx.math.Rectangle;
 
-public abstract class Renderer {
+public abstract class Renderer implements InputProcessor {
 
-    private OrthographicCamera camera;
+    protected final ShapeRenderer shaper;
+    protected final SpriteBatch spriter;
+    private final OrthographicCamera camera;
+    private final Rectangle mCameraViewport;
 
-    protected ShapeRenderer shaper;
-    protected SpriteBatch spriter;
-
-    public Renderer() {
-        this(GameScreen.getWidth(), GameScreen.getHeight());
+    protected Renderer() {
+        this(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
     }
 
-    public Renderer(float width, float height) {
+    protected Renderer(float width, float height) {
         camera = new OrthographicCamera();
         camera.setToOrtho(true, width, height);
         shaper = new ShapeRenderer();
         shaper.setProjectionMatrix(camera.combined);
         spriter = new SpriteBatch();
         spriter.setProjectionMatrix(camera.combined);
+
+        mCameraViewport =
+                new Rectangle(camera.position.x, camera.position.y, camera.viewportWidth, camera.viewportHeight);
     }
 
     public float getWidth() {
@@ -43,6 +48,12 @@ public abstract class Renderer {
 
     public void setCamPos(float x, float y) {
         camera.position.set(x, y, 0);
+        mCameraViewport.x = x;
+        mCameraViewport.y = y;
+    }
+
+    public Rectangle getCameraViewport() {
+        return mCameraViewport;
     }
 
     public void setFontScale(float scale) {
@@ -63,6 +74,50 @@ public abstract class Renderer {
                 getHeight() / 2 - (float) Assets.getStringHeight(str) / 2);
     }
 
-    public abstract void render();
+    public abstract void render(float delta);
+
+    @Override
+    public boolean keyDown(int keycode) {
+        return false;
+    }
 
+    @Override
+    public boolean keyUp(int keycode) {
+        return false;
+    }
+
+    @Override
+    public boolean keyTyped(char character) {
+        return false;
+    }
+
+    @Override
+    public boolean touchDown(int screenX, int screenY, int pointer, int button) {
+        return false;
+    }
+
+    @Override
+    public boolean touchUp(int screenX, int screenY, int pointer, int button) {
+        return false;
+    }
+
+    @Override
+    public boolean touchDragged(int screenX, int screenY, int pointer) {
+        return false;
+    }
+
+    @Override
+    public boolean mouseMoved(int screenX, int screenY) {
+        return false;
+    }
+
+    @Override
+    public boolean scrolled(float amountX, float amountY) {
+        return false;
+    }
+
+    @Override
+    public boolean touchCancelled(int i, int i1, int i2, int i3) {
+        return false;
+    }
 }