package com.ftloverdrive.model.ship;
import com.ftloverdrive.io.ImageSpec;
import com.ftloverdrive.model.AbstractOVDModel;
import com.ftloverdrive.model.NamedProperties;
import com.ftloverdrive.model.ship.ShipLayout;
import com.ftloverdrive.model.ship.ShipModel;
import com.ftloverdrive.util.OVDConstants;
public class AbstractShipModel extends AbstractOVDModel implements ShipModel {
protected NamedProperties shipProperties = new NamedProperties();
protected ShipLayout shipLayout;
protected float shipOffsetX = 0f;
protected float shipOffsetY = 0f;
protected float hullOffsetX = 0f;
protected float hullOffsetY = 0f;
protected float hullWidth = 0f;
protected float hullHeight = 0f;
protected float shieldEllipseOffsetX = 0f;
protected float shieldEllipseOffsetY = 0f;
protected float shieldEllipseSemiMajorAxis = 0f;
protected float shieldEllipseSemiMinorAxis = 0f;
protected ImageSpec baseImageSpec = null;
protected ImageSpec cloakImageSpec = null;
protected ImageSpec floorImageSpec = null;
protected ImageSpec shieldImageSpec = null;
public AbstractShipModel() {
super();
shipProperties.setInt( OVDConstants.HULL_MAX, 0 );
shipProperties.setInt( OVDConstants.HULL, 0 );
shipProperties.setInt( OVDConstants.SCRAP, 0 );
shipProperties.setInt( OVDConstants.FUEL, 0 );
shipProperties.setInt( OVDConstants.MISSILES, 0 );
shipProperties.setInt( OVDConstants.DRONE_PARTS, 0 );
shipLayout = new ShipLayout();
}
/**
* Returns a collection of arbitrarily named values.
*/
@Override
public NamedProperties getProperties() {
return shipProperties;
}
@Override
public ShipLayout getLayout() {
return shipLayout;
}
@Override
public void setShipOffset( float x, float y ) {
shipOffsetX = x;
shipOffsetY = y;
}
@Override
public float getShipOffsetX() {
return shipOffsetX;
}
@Override
public float getShipOffsetY() {
return shipOffsetY;
}
@Override
public void setHullOffset( float x, float y ) {
hullOffsetX = x;
hullOffsetY = y;
}
@Override
public float getHullOffsetX() {
return hullOffsetX;
}
@Override
public float getHullOffsetY() {
return hullOffsetY;
}
@Override
public void setHullSize( float width, float height ) {
hullWidth = width;
hullHeight = height;
}
@Override
public float getHullWidth() {
return hullWidth;
}
@Override
public float getHullHeight() {
return hullHeight;
}
@Override
public void setShieldEllipse( float x, float y, float semiMajorAxis, float semiMinorAxis ) {
shieldEllipseOffsetX = x;
shieldEllipseOffsetY = y;
shieldEllipseSemiMajorAxis = semiMajorAxis;
shieldEllipseSemiMinorAxis = semiMinorAxis;
}
@Override
public float getShieldEllipseOffsetX() {
return shieldEllipseOffsetX;
}
@Override
public float getShieldEllipseOffsetY() {
return shieldEllipseOffsetY;
}
@Override
public float getShieldEllipseSemiMajorAxis() {
return shieldEllipseSemiMajorAxis;
}
@Override
public float getShieldEllipseSemiMinorAxis() {
return shieldEllipseSemiMinorAxis;
}
@Override
public void setBaseImageSpec( ImageSpec imageSpec ) {
baseImageSpec = imageSpec;
}
@Override
public ImageSpec getBaseImageSpec() {
return baseImageSpec;
}
@Override
public void setCloakImageSpec( ImageSpec imageSpec ) {
cloakImageSpec = imageSpec;
}
@Override
public ImageSpec getCloakImageSpec() {
return cloakImageSpec;
}
@Override
public void setFloorImageSpec( ImageSpec imageSpec ) {
floorImageSpec = imageSpec;
}
@Override
public ImageSpec getFloorImageSpec() {
return floorImageSpec;
}
@Override
public void setShieldImageSpec( ImageSpec imageSpec ) {
shieldImageSpec = imageSpec;
}
@Override
public ImageSpec getShieldImageSpec() {
return shieldImageSpec;
}
}