diff --git a/src/modules/products.js b/src/modules/products.js index d7c632a..b859171 100644 --- a/src/modules/products.js +++ b/src/modules/products.js @@ -1,46 +1,31 @@ class Products { constructor(canvas) { - this.gridProducts = [ - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - ['','', '', '', '', '', '', '', ''], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - ['','', '', '', '', '', '', '', ''], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()], - [Product.RANDOM_FROM_REGISTRY(),'', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY(), Product.RANDOM_FROM_REGISTRY(), '', Product.RANDOM_FROM_REGISTRY()] - ]; + const { random, floor } = Math + this.gridProducts = [] this.gridProductsAmount = [] for (let i = 0; i < 20; ++i) { - const current = [] + const gridProductsColumn = [] + const gridProductsAmountColumn = [] + for (let j = 0; j < 9; ++j) { - if (j % 3 != 1) - current.push(50); - else - current.push(''); + if (j % 3 != 1) { + gridProductsColumn.push(Product.RANDOM_FROM_REGISTRY()); + gridProductsAmountColumn.push(floor(random() * 51)); + } else { + gridProductsColumn.push(''); + gridProductsAmountColumn.push(''); + } } - this.gridProductsAmount.push(current); + + this.gridProducts.push(gridProductsColumn); + this.gridProductsAmount.push(gridProductsAmountColumn); } this.ctx = canvas.getContext('2d'); this.setCanvasSize(canvas); this.update(); - } setCanvasSize (canvas) { @@ -74,21 +59,28 @@ class Products { return number; } + getJobRequest() { + + } + product(x, y, v, productsKey, productsValue) { let fontSize = 40; this.ctx.font = `900 ${fontSize}px "Font Awesome 5 Free"`; this.ctx.textAlign = "center"; - if (v <= 10){ - this.ctx.fillStyle = '#ff0000'; - } - else if(v <= 25){ - this.ctx.fillStyle = '#ffe700'; - } - else { - this.ctx.fillStyle = '#74ee15'; - } + + // make color of icon on white -> red spectrum, where + // white - full shelf + // red - empty shelf + const t = Math.cbrt + let color = Math.floor(t(v / 50) * 255).toString(16) + if (color.length == 1) + color = "0" + color + this.ctx.fillStyle = `#ff${color}${color}`; + let productsColumn = this.gridProducts[productsKey]; let prdct = productsColumn[productsValue]; + this.ctx.font = '900 40px "Font Awesome 5 Free"'; + this.ctx.textAlign = 'center'; this.ctx.fillText(prdct.icon, x+50, y+60); } @@ -103,7 +95,16 @@ class Products { } } - setProductAt(product, count, x, y) { - // TODO: Implement this function + /** + * @param {Product} incomingProduct + * @param {number} incomingAmount + * @returns {{product: Product; amount: number} | } Old shelf content + */ + exchange(x, y, incomingProduct, incomingAmount) { + const product = this.gridProducts[x][y] + const amount = this.gridProductsAmount[x][y] + this.gridProducts[x][y] = incomingProduct + this.gridProductsAmount[x][y] = incomingAmount + return { product, amount } } } \ No newline at end of file