package com.opticalcobra.storybear.game;
import java.awt.Component;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.sql.SQLException;
import com.opticalcobra.storybear.db.Database;
import com.opticalcobra.storybear.main.ILevelAppearance;
import com.opticalcobra.storybear.res.Imagelib;
import com.opticalcobra.storybear.res.Ressources;
public class RenderHint implements ILevelAppearance {
/**
*
*/
private static final long serialVersionUID = 3391484487924232956L;
private int block;
private int occurance; //if the same group comes several times, the importance increases
private int renderHint;
private static transient Imagelib il = Imagelib.getInstance();
private static transient Database db = new Database();
public static final int RENDERHINT_NONE = -1;
public static final int RENDERHINT_FOREST = 0;
public static final int RENDERHINT_CITY = 1;
public static final int RENDERHINT_VILLAGE = 2;
public static final int RENDERHINT_CASTLE = 3;
public static final int RENDERHINT_LANDSCAPE = 4;
public static final int WORDGROUP_LENGTH = 3;
public static final String[] WORDGROUP_CITY = {"Stadt"};
public static final String[] WORDGROUP_VILLAGE = {"Hof","Dorf"};
public static final String[] WORDGROUP_CASTLE = {"Schloss","Burg"};
public static final String[] WORDGROUP_FOREST = {"Wald","Baum"};
public static final String[] WORDGROUP_LANDSCAPE = {"Land","Feld","Wiese"};
public RenderHint(int block, int hint, int importance){
this.block = block;
this.renderHint = hint;
this.occurance = importance;
}
public int getRenderHint(){
return this.renderHint;
}
public void setBlock(int block){
this.block = block;
}
@Override
public int getBlock() {
return this.block;
}
@Override
public void render(Graphics2D g, int tileTypeId, int layerID, Component toBeNamed) {
if (layerID == Ressources.LAYERMIDDLEGROUND){
Point position = db.getObjectPosMiddleground(tileTypeId, Ressources.CONTAINERLANDSCAPEID);
int image_id;
String searchWord = "";
switch (this.renderHint){
case 0:
searchWord = "Wald";
break;
case 1:
searchWord = "Stadt";
break;
case 2:
searchWord = "Dorf";
break;
case 3:
searchWord = "Schloss";
break;
case 4:
searchWord = "Land";
break;
default:
break;
}
try {
image_id = db.queryNumberResultOnly("SELECT IMAGE_ID FROM MIDDLEGROUND_OBJECT WHERE WORD = '" + searchWord + "';")[0];
BufferedImage image = il.loadObjectPic(image_id, "lmg");
g.drawImage(image,(((block*Ressources.RASTERSIZE*4))% Ressources.WINDOW.width)+position.x,position.y, null);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public int getImportance() {
return occurance;
}
public void setImportance(int importance) {
this.occurance = importance;
}
}