package de.frajul.endlessroll.rendering; import android.content.Context; import android.view.View; import de.frajul.endlessroll.entities.textures.TexturePack; import de.frajul.endlessroll.main.GameActivity; import de.frajul.endlessroll.main.game.Scene; import de.frajul.endlessroll.main.game.Timer; import de.frajul.endlessroll.rendering.renderer.GameRenderer; /** * Created by Julian on 26.11.2015. */ public abstract class Rendering<S extends Scene> { protected S scene; private GameActivity gameActivity; private boolean alreadyInitiated = false; public Rendering(GameActivity gameActivity, GameRenderer gameRenderer) { this.gameActivity = gameActivity; gameRenderer.addRenderTarget(this); } public void initiate(TexturePack texturePack, Timer timer) { this.scene = init(texturePack, timer, !alreadyInitiated); alreadyInitiated = true; } protected abstract S init(TexturePack texturePack, Timer timer, boolean isFirstTime); public abstract void update(); public abstract void onTouch(float x, float y); public void setScreenSize(int width, int height) { if (scene != null) scene.setScreenSize(width, height); } public Scene getScene() { return scene; } public Context getContext() { return gameActivity; } }