Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/test/externalTests/furnace.js
Views: 789
const assert = require('assert')12module.exports = () => async (bot) => {3const Item = require('prismarine-item')(bot.registry)45const furnacePos = bot.entity.position.offset(2, 0, 0).floored()6const coalId = bot.registry.itemsByName.coal.id7const porkchopId = bot.registry.itemsByName.porkchop.id8const cookedPorkchopId = bot.registry.itemsByName.cooked_porkchop.id9const coalInputCount = 210const porkchopInputCount = 21112// Test setup13await bot.test.setInventorySlot(36, new Item(bot.registry.itemsByName.furnace.id, 1))14await bot.test.placeBlock(36, furnacePos)15await bot.test.setInventorySlot(37, new Item(porkchopId, porkchopInputCount))16await bot.test.setInventorySlot(38, new Item(coalId, coalInputCount)) // Get coal17if (bot.supportFeature('itemsAreAlsoBlocks')) {18assert.strictEqual(bot.blockAt(furnacePos).type, bot.registry.itemsByName.furnace.id)19} else {20assert.strictEqual(bot.blockAt(furnacePos).type, bot.registry.blocksByName.furnace.id)21}2223// Put inputs24const furnace = await bot.openFurnace(bot.blockAt(furnacePos))25assert.strictEqual(furnace.inputItem(), furnace.slots[0])26assert.strictEqual(furnace.fuelItem(), furnace.slots[1])27assert.strictEqual(furnace.outputItem(), furnace.slots[2])28assert.strictEqual(furnace.inputItem(), null)29assert.strictEqual(furnace.fuelItem(), null)30assert.strictEqual(furnace.outputItem(), null)3132await furnace.putFuel(coalId, null, coalInputCount)3334assert.strictEqual(furnace.fuelItem(), furnace.slots[1])35assert.strictEqual(furnace.fuelItem().type, coalId)36assert.strictEqual(furnace.fuelItem().count, coalInputCount)3738await furnace.putInput(porkchopId, null, porkchopInputCount)3940assert.strictEqual(furnace.inputItem(), furnace.slots[0])41assert.strictEqual(furnace.inputItem().type, porkchopId)42assert.strictEqual(furnace.inputItem().count, porkchopInputCount)4344// Wait and take the output and inputs45await bot.test.wait(500)46assert(furnace.fuel > 0 && furnace.fuel < 1)47assert(furnace.progress > 0 && furnace.progress < 1)4849await bot.test.wait(furnace.progressSeconds * 1000 + 500)50assert.strictEqual(furnace.outputItem(), furnace.slots[2])51assert.strictEqual(furnace.outputItem().type, cookedPorkchopId)52assert.strictEqual(furnace.outputItem().count, 1)5354assert.strictEqual(furnace.inputItem().type, porkchopId)55assert.strictEqual(furnace.inputItem().count, porkchopInputCount - 1)5657assert.strictEqual(furnace.fuelItem().type, coalId)58assert.strictEqual(furnace.fuelItem().count, coalInputCount - 1)5960await furnace.takeOutput()61await furnace.takeInput()62await furnace.takeFuel()63furnace.close()6465await bot.test.wait(500)6667// Check inventory68const cookedPorkchopCount = bot.inventory.count(cookedPorkchopId)69const porkchopCount = bot.inventory.count(porkchopId)70const coalCount = bot.inventory.count(coalId)7172assert.strictEqual(cookedPorkchopCount, 1)73assert.strictEqual(porkchopCount, porkchopInputCount - 1)74assert.strictEqual(coalCount, coalInputCount - 1)75}767778