4 * Copyright 2020 Elias Fleckenstein <eliasfleckenstein@web.de>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
23 dragonblocks.Craftfield = class extends dragonblocks.Inventory{
24 constructor(width, height){
25 super(width * height, width);
29 this.resultfield = new dragonblocks.Itemstack();
30 this.resultfield.action = out => {
31 out.add(self.resultfield) && self.reduce();
33 this.addUpdateListener(_ => {
38 return super.calculateWidth() + dragonblocks.settings.inventory.scale * 1.1 * 2;
41 if (!super.draw(parent, x, y))
43 dragonblocks.Inventory.drawStack(this.getDisplay(), dragonblocks.settings.inventory.scale * 0.1 + (this.width + 1) * dragonblocks.settings.inventory.scale * 1.1, dragonblocks.settings.inventory.scale * 0.1 + (this.height / 2 - 0.5) * dragonblocks.settings.inventory.scale * 1.1, this.resultfield)
46 for(let stack of this.list){
47 let vstack = dragonblocks.createItemstack();
53 this.resultfield.parse("");
54 for(let recipe of dragonblocks.recipes){
55 if(recipe.match(this))
56 return this.resultfield.parse(recipe.result);