46 lines
809 B
JavaScript
46 lines
809 B
JavaScript
|
import Item from '../item';
|
||
|
|
||
|
export default class ItemBuilder {
|
||
|
constructor() {
|
||
|
this.item = new Item();
|
||
|
}
|
||
|
|
||
|
withID(ID) {
|
||
|
this.item.id = ID;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
withName(name) {
|
||
|
this.item.name = name;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
withDescription(description) {
|
||
|
this.item.description = description;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
isUsable(value) {
|
||
|
this.item.usable = value;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
isTakeable(value) {
|
||
|
this.item.takeable = value;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
withUseCallback(callback) {
|
||
|
this.item.useCallback = callback;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
withTakeCallback(callback) {
|
||
|
this.item.takeCallback = callback;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
create() {
|
||
|
return this.item;
|
||
|
}
|
||
|
}
|