package com.lucasdnd.ags.gameplay.market;
import org.newdawn.slick.SpriteSheet;
/**
* This is the representation of an Asset on the market (size, usable tiles, level of awesome,
* prices, etc).
* It's the model to create the Assets (furniture, consoles, vending machines, etc).
* @author tulio
*
*/
public abstract class MarketAsset extends Product {
private int xSize; // x Size, in Tiles
private int ySize; // y Size, in Tiles
private int[] usableXTiles; // Which Tiles are usable, in the x axis
private int[] usableYTiles; // Which Tiles are usable, in the y axis
private SpriteSheet spriteSheet; // The sprite sheet
protected int maxOrganizationLevel; // Max organization
/**
* Constructor for Assets that take space on the Map (Tables, Shelves)
* @param id
* @param spriteSheet
* @param name
* @param price
* @param releaseDate
* @param xSize
* @param ySize
* @param usableXTiles
* @param usableYTiles
*/
public MarketAsset(int id, SpriteSheet spriteSheet, String name, int price,
long releaseDate, int xSize, int ySize, int[] usableXTiles, int[] usableYTiles, int maxOrganizationLevel) {
// Super Constructor for basic attributes
super(id, name, price, releaseDate);
// Specific attributes for Assets only
this.spriteSheet = spriteSheet;
this.xSize = xSize;
this.ySize = ySize;
this.usableXTiles = usableXTiles;
this.usableYTiles = usableYTiles;
this.maxOrganizationLevel = maxOrganizationLevel;
}
public int getxSize() {
return xSize;
}
public void setxSize(int xSize) {
this.xSize = xSize;
}
public int getySize() {
return ySize;
}
public void setySize(int ySize) {
this.ySize = ySize;
}
public int[] getUsableXTiles() {
return usableXTiles;
}
public void setUsableXTiles(int[] usableXTiles) {
this.usableXTiles = usableXTiles;
}
public int[] getUsableYTiles() {
return usableYTiles;
}
public void setUsableYTiles(int[] usableYTiles) {
this.usableYTiles = usableYTiles;
}
public SpriteSheet getSpriteSheet() {
return spriteSheet;
}
public void setSpriteSheet(SpriteSheet spriteSheet) {
this.spriteSheet = spriteSheet;
}
public int getMaxOrganizationLevel() {
return maxOrganizationLevel;
}
public void setMaxOrganizationLevel(int maxOrganizationLevel) {
this.maxOrganizationLevel = maxOrganizationLevel;
}
}