package com.opticalcobra.storybear.game;
import java.util.LinkedList;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import com.opticalcobra.storybear.db.TileResult;
import com.opticalcobra.storybear.res.Ressources;
public class GameLayer extends JLayeredPane {
private IRenderer renderer;
private int step = Ressources.WINDOW.width;
private int currentView = 1; // Zahl des momentan angezeigten JLabels
private JLabel [] layer;
public GameLayer(IRenderer renderer){
super();
layer=new JLabel[3];
this.renderer=renderer;
for (int i = 0; i<3; i++){
layer[i]=new JLabel();
this.add(layer[i]);
RenderThreadWrapper.addRenderTask(renderer, layer[i]);
if (i==0){
layer[i].setBounds(0, 0, Ressources.WINDOW.width, Ressources.WINDOW.height);
} else {
layer[i].setBounds(Ressources.WINDOW.width, 0, Ressources.WINDOW.width, Ressources.WINDOW.height);
}
}
}
public GameLayer(RendererFG2 rendererfg2, LinkedList<TileResult> tileQue) {
super();
layer=new JLabel[3];
this.renderer=renderer;
for (int i = 0; i<3; i++){
layer[i]=new JLabel();
this.add(layer[i]);
RenderThreadWrapper.addRenderTask(renderer, layer[i]);
if (i==0){
layer[i].setBounds(0, 0, Ressources.WINDOW.width, Ressources.WINDOW.height);
} else {
layer[i].setBounds(Ressources.WINDOW.width, 0, Ressources.WINDOW.width, Ressources.WINDOW.height);
}
}
}
/**
* Performs a step on the current layer
*/
public void step(){
step--;
if(step < 0 ){
step = Ressources.WINDOW.width;
currentView = (currentView + 1) % 3;
RenderThreadWrapper.addRenderTask(renderer,layer[(currentView+1)%3]);
}
layer[currentView].setLocation(step, 0);
layer[(currentView+2)%3].setLocation(step-Ressources.WINDOW.width, 0);
}
public void initialize(LinkedList<TileResult> tileQue) {
}
}