package logbook.dto; import java.util.Date; /** * 保有資材を表します * */ public final class MaterialDto extends AbstractDto implements Cloneable { /** 日付 */ private Date time = new Date(); /** 直前のイベント */ private String event; /** 燃料 */ private int fuel; /** 弾薬 */ private int ammo; /** 鋼材 */ private int metal; /** ボーキサイト */ private int bauxite; /** バーナー */ private int burner; /** 高速修復材 */ private int bucket; /** 開発資材 */ private int research; /** ねじ */ private int screw; @Override public MaterialDto clone() { try { return (MaterialDto) super.clone(); } catch (CloneNotSupportedException e) { throw new InternalError(e.toString()); } } public MaterialDto consumed(ResourceItemDto res) { this.time = new Date(); this.fuel -= res.getFuel(); this.ammo -= res.getAmmo(); this.metal -= res.getMetal(); this.bauxite -= res.getBauxite(); this.burner -= res.getBurners(); this.bucket -= res.getBuckets(); this.research -= res.getResearch(); this.screw -= res.getScrew(); return this; } public MaterialDto obtained(ResourceItemDto res) { this.time = new Date(); this.fuel += res.getFuel(); this.ammo += res.getAmmo(); this.metal += res.getMetal(); this.bauxite += res.getBauxite(); this.burner += res.getBurners(); this.bucket += res.getBuckets(); this.research += res.getResearch(); this.screw += res.getScrew(); return this; } /** * 日付を取得します。 * @return 日付 */ public Date getTime() { return this.time; } /** * 日付を設定します。 * @param time 日付 */ public void setTime(Date time) { this.time = time; } /** * 日付を取得します。 * @return 日付 */ public String getEvent() { return this.event; } /** * 日付を設定します。 * @param time 日付 */ public void setEvent(String event) { this.event = event; } /** * 燃料を取得します。 * @return 燃料 */ public int getFuel() { return this.fuel; } /** * 燃料を設定します。 * @param fuel 燃料 */ public void setFuel(int fuel) { this.fuel = fuel; } /** * 弾薬を取得します。 * @return 弾薬 */ public int getAmmo() { return this.ammo; } /** * 弾薬を設定します。 * @param ammo 弾薬 */ public void setAmmo(int ammo) { this.ammo = ammo; } /** * 鋼材を取得します。 * @return 鋼材 */ public int getMetal() { return this.metal; } /** * 鋼材を設定します。 * @param metal 鋼材 */ public void setMetal(int metal) { this.metal = metal; } /** * ボーキサイトを取得します。 * @return ボーキサイト */ public int getBauxite() { return this.bauxite; } /** * ボーキサイトを設定します。 * @param bauxite ボーキサイト */ public void setBauxite(int bauxite) { this.bauxite = bauxite; } /** * バーナーを取得します。 * @return バーナー */ public int getBurner() { return this.burner; } /** * バーナーを設定します。 * @param burner バーナー */ public void setBurner(int burner) { this.burner = burner; } /** * 高速修復材を取得します。 * @return 高速修復材 */ public int getBucket() { return this.bucket; } /** * 高速修復材を設定します。 * @param bucket 高速修復材 */ public void setBucket(int bucket) { this.bucket = bucket; } /** * 開発資材を取得します。 * @return 開発資材 */ public int getResearch() { return this.research; } /** * 開発資材を設定します。 * @param research 開発資材 */ public void setResearch(int research) { this.research = research; } /** * @return screw */ public int getScrew() { return this.screw; } /** * @param screw セットする screw */ public void setScrew(int screw) { this.screw = screw; } }