1.7 fixes
This commit is contained in:
@@ -412,16 +412,16 @@ function blockTypeDB:load()
|
||||
{ 5, nil, 0, 'north-block' },
|
||||
{ 6, nil, 0, 'east-block' },
|
||||
{ 7, nil, 0, 'west-block' },
|
||||
{ 8, nil, 0, 'south-block' },
|
||||
{ 9, nil, 0, 'north-block' },
|
||||
{ 10, nil, 0, 'east-block' },
|
||||
{ 11, nil, 0, 'west-block' },
|
||||
{ 12, nil, 0, 'south-block' },
|
||||
{ 13, nil, 0, 'north-block' },
|
||||
{ 14, nil, 0, 'east-block' },
|
||||
{ 15, nil, 0, 'west-block' },
|
||||
{ 8, nil, 0, 'south' },
|
||||
{ 9, nil, 0, 'north' },
|
||||
{ 10, nil, 0, 'east' },
|
||||
{ 11, nil, 0, 'west' },
|
||||
{ 12, nil, 0, 'south' },
|
||||
{ 13, nil, 0, 'north' },
|
||||
{ 14, nil, 0, 'east' },
|
||||
{ 15, nil, 0, 'west' },
|
||||
})
|
||||
blockTypeDB:addTemp('piston', { -- piston placement is broken in 1.7 -- need to add work around
|
||||
blockTypeDB:addTemp('piston', {
|
||||
{ 0, nil, 0, 'piston-down' },
|
||||
{ 1, nil, 0, 'piston-up' },
|
||||
{ 2, nil, 0, 'piston-north' },
|
||||
|
||||
@@ -1,41 +1,36 @@
|
||||
local class = require('class')
|
||||
local Util = require('util')
|
||||
local itemDB = require('itemDB')
|
||||
local Peripheral = require('peripheral')
|
||||
local Util = require('util')
|
||||
|
||||
local MEProvider = class()
|
||||
local MEAdapter = class()
|
||||
|
||||
function MEProvider:init(args)
|
||||
function MEAdapter:init(args)
|
||||
local defaults = {
|
||||
items = { },
|
||||
name = 'ME',
|
||||
jobList = { },
|
||||
direction = 'up',
|
||||
wrapSide = 'bottom',
|
||||
auto = false,
|
||||
}
|
||||
Util.merge(self, defaults)
|
||||
Util.merge(self, args)
|
||||
|
||||
if self.side then
|
||||
local mep = peripheral.wrap('bottom')
|
||||
if mep then
|
||||
Util.merge(self, mep)
|
||||
end
|
||||
else
|
||||
if self.auto then
|
||||
local mep = Peripheral.getByMethod('getAvailableItems')
|
||||
if mep then
|
||||
Util.merge(self, mep)
|
||||
end
|
||||
else
|
||||
local mep = peripheral.wrap(self.wrapSide)
|
||||
if mep then
|
||||
Util.merge(self, mep)
|
||||
end
|
||||
end
|
||||
|
||||
local sides = {
|
||||
top = 'down',
|
||||
bottom = 'up',
|
||||
east = 'west',
|
||||
west = 'east',
|
||||
north = 'south',
|
||||
south = 'north',
|
||||
}
|
||||
self.oside = sides[self.direction or self.side]
|
||||
end
|
||||
|
||||
function MEProvider:isValid()
|
||||
function MEAdapter:isValid()
|
||||
return self.getAvailableItems and self.getAvailableItems()
|
||||
end
|
||||
|
||||
@@ -74,7 +69,7 @@ local function convertItem(item)
|
||||
item.displayName = safeString(item.displayName)
|
||||
end
|
||||
|
||||
function MEProvider:refresh()
|
||||
function MEAdapter:refresh()
|
||||
self.items = self.getAvailableItems('all')
|
||||
for _,v in pairs(self.items) do
|
||||
Util.merge(v, v.item)
|
||||
@@ -83,34 +78,103 @@ function MEProvider:refresh()
|
||||
return self.items
|
||||
end
|
||||
|
||||
function MEProvider:listItems()
|
||||
function MEAdapter:listItems()
|
||||
self:refresh()
|
||||
return self.items
|
||||
end
|
||||
|
||||
function MEProvider:getItemInfo(name, damage)
|
||||
|
||||
for key,item in pairs(self.items) do
|
||||
if item.name == name and item.damage == damage then
|
||||
function MEAdapter:getItemInfo(item)
|
||||
for key,i in pairs(self.items) do
|
||||
if item.name == i.name and item.damage == i.damage and item.nbtHash == i.nbtHash then
|
||||
return item
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MEProvider:craft(name, damage, count)
|
||||
|
||||
function MEAdapter:isCPUAvailable()
|
||||
local cpus = self.getCraftingCPUs() or { }
|
||||
local available = false
|
||||
|
||||
for cpu,v in pairs(cpus) do
|
||||
if not v.busy then
|
||||
available = true
|
||||
elseif not self.jobList[cpu] then -- something else is crafting something (don't know what)
|
||||
return false -- return false since we are in an unknown state
|
||||
end
|
||||
end
|
||||
return available
|
||||
end
|
||||
|
||||
function MEAdapter:craft(item, count)
|
||||
|
||||
if not self:isCPUAvailable() then
|
||||
return false
|
||||
end
|
||||
|
||||
self:refresh()
|
||||
|
||||
local item = self:getItemInfo(name, damage)
|
||||
|
||||
local item = self:getItemInfo(item)
|
||||
if item and item.is_craftable then
|
||||
|
||||
self.requestCrafting({ id = name, dmg = damage }, count)
|
||||
return true
|
||||
local cpus = self.getCraftingCPUs() or { }
|
||||
for cpu,v in pairs(cpus) do
|
||||
if not v.busy then
|
||||
self.requestCrafting({
|
||||
id = item.name,
|
||||
dmg = item.damage,
|
||||
nbt_hash = item.nbtHash,
|
||||
},
|
||||
qty or 1,
|
||||
cpu
|
||||
)
|
||||
|
||||
os.sleep(0) -- tell it to craft, yet it doesn't show busy - try waiting a cycle...
|
||||
cpus = self.getCraftingCPUs() or { }
|
||||
if not cpus[cpu].busy then
|
||||
-- print('sleeping again')
|
||||
os.sleep(.1) -- sigh
|
||||
cpus = self.getCraftingCPUs() or { }
|
||||
end
|
||||
|
||||
-- not working :(
|
||||
if cpus[cpu].busy then
|
||||
self.jobList[cpu] = {
|
||||
name = item.name,
|
||||
damage = item.damage,
|
||||
nbtHash = item.nbtHash,
|
||||
count = count,
|
||||
}
|
||||
return true
|
||||
end
|
||||
break -- only need to try the first available cpu
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function MEProvider:craftItems(items)
|
||||
function MEAdapter:getJobList()
|
||||
local cpus = self.getCraftingCPUs() or { }
|
||||
for cpu,v in pairs(cpus) do
|
||||
if not v.busy then
|
||||
self.jobList[cpu] = nil
|
||||
end
|
||||
end
|
||||
|
||||
return self.jobList
|
||||
end
|
||||
|
||||
function MEAdapter:isCrafting(item)
|
||||
for _,v in pairs(self:getJobList()) do
|
||||
if v.name == item.name and
|
||||
v.damage == item.damage and
|
||||
v.nbtHash == item.nbtHash then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MEAdapter:craftItems(items)
|
||||
local cpus = self.getCraftingCPUs() or { }
|
||||
local count = 0
|
||||
|
||||
@@ -130,28 +194,36 @@ function MEProvider:craftItems(items)
|
||||
end
|
||||
end
|
||||
|
||||
function MEProvider:provide(item, count, slot)
|
||||
function MEAdapter:provide(item, count, slot, direction)
|
||||
return pcall(function()
|
||||
self.exportItem({
|
||||
id = item.name,
|
||||
dmg = item.damage
|
||||
}, self.oside, count, slot)
|
||||
while count > 0 do
|
||||
local qty = math.min(count, 64)
|
||||
local s, m = self.exportItem({
|
||||
id = item.name,
|
||||
dmg = item.damage
|
||||
}, direction or self.direction, qty, slot)
|
||||
|
||||
if not s or s.size ~= qty then
|
||||
break
|
||||
end
|
||||
count = count - 64
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function MEProvider:insert(slot, count)
|
||||
local s, m = pcall(function() self.pullItem(self.oside, slot, count) end)
|
||||
function MEAdapter:insert(slot, count)
|
||||
local s, m = pcall(function() self.pullItem(self.direction, slot, count) end)
|
||||
if not s and m then
|
||||
print('MEProvider:pullItem')
|
||||
print('MEAdapter:pullItem')
|
||||
print(m)
|
||||
sleep(1)
|
||||
s, m = pcall(function() self.pullItem(self.oside, slot, count) end)
|
||||
s, m = pcall(function() self.pullItem(self.direction, slot, count) end)
|
||||
if not s and m then
|
||||
print('MEProvider:pullItem')
|
||||
print('MEAdapter:pullItem')
|
||||
print(m)
|
||||
read()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return MEProvider
|
||||
return MEAdapter
|
||||
|
||||
@@ -5,6 +5,7 @@ local Config = require('config')
|
||||
local Craft = require('turtle.craft')
|
||||
local Event = require('event')
|
||||
local itemDB = require('itemDB')
|
||||
local MEAdapater = require('meAdapter')
|
||||
local Peripheral = require('peripheral')
|
||||
local RefinedAdapter = require('refinedAdapter')
|
||||
local Terminal = require('terminal')
|
||||
@@ -21,20 +22,42 @@ multishell.setTitle(multishell.getCurrent(), 'Resource Manager')
|
||||
local config = {
|
||||
trashDirection = 'up', -- trash /chest in relation to chest
|
||||
inventoryDirection = { direction = 'north', wrapSide = 'back' },
|
||||
chestDirection = { direction = 'down', wrapSide = 'top' },
|
||||
chestDirection = { direction = 'down', wrapSide = 'top' },
|
||||
}
|
||||
|
||||
Config.load('chestManager', config)
|
||||
|
||||
local controller = RefinedAdapter()
|
||||
if not controller:isValid() then
|
||||
-- error('Refined storage controller not found')
|
||||
controller = nil
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------- FIX ME
|
||||
local inventoryAdapter = ChestAdapter(config.inventoryDirection)
|
||||
local turtleChestAdapter = ChestAdapter(config.chestDirection)
|
||||
local duckAntenna
|
||||
|
||||
local controller = RefinedAdapter()
|
||||
if not controller:isValid() then
|
||||
controller = MEAdapater(config.inventoryDirection)
|
||||
if not controller:isValid() then
|
||||
controller = nil
|
||||
else
|
||||
inventoryAdapter = controller -- ME functions as inventory and crafting
|
||||
end
|
||||
end
|
||||
|
||||
if device.workbench then
|
||||
|
||||
local oppositeSide = {
|
||||
[ 'left' ] = 'right',
|
||||
[ 'right' ] = 'left',
|
||||
}
|
||||
|
||||
local duckAntennaSide = oppositeSide[device.workbench.side]
|
||||
duckAntenna = peripheral.wrap(duckAntennaSide)
|
||||
if not duckAntenna or not duckAntenna.getAllStacks then
|
||||
duckAntenna = nil
|
||||
end
|
||||
end
|
||||
|
||||
local canCraft = not not duckAntenna or turtleChestAdapter:isValid()
|
||||
|
||||
---------------------------------------------------------------------- FIX ME
|
||||
|
||||
local RESOURCE_FILE = 'usr/config/resources.db'
|
||||
local RECIPES_FILE = 'usr/etc/recipes.db'
|
||||
@@ -194,7 +217,7 @@ end
|
||||
|
||||
local function craftItem(recipe, items, originalItem, craftList, count)
|
||||
|
||||
if craftingPaused or not device.workbench or not isGridClear() then
|
||||
if craftingPaused or not canCraft or not isGridClear() then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -315,7 +338,7 @@ local function getAutocraftItems()
|
||||
for _,res in pairs(resources) do
|
||||
|
||||
if res.auto then
|
||||
res.count = 4 -- this could be higher to increase autocrafting speed
|
||||
res.count = 64 -- this could be higher to increase autocrafting speed
|
||||
local key = uniqueKey(res)
|
||||
craftList[key] = res
|
||||
end
|
||||
@@ -361,7 +384,7 @@ local function watchResources(items)
|
||||
end
|
||||
|
||||
if res.limit and item.count > res.limit then
|
||||
inventoryAdapter:provide(
|
||||
local s, m = inventoryAdapter:provide(
|
||||
{ name = item.name, damage = item.damage },
|
||||
item.count - res.limit,
|
||||
nil,
|
||||
@@ -587,8 +610,6 @@ local listingPage = UI.Page {
|
||||
sortColumn = 'displayName',
|
||||
},
|
||||
statusBar = UI.StatusBar {
|
||||
--backgroundColor = colors.gray,
|
||||
width = UI.term.width,
|
||||
filterText = UI.Text {
|
||||
x = 2,
|
||||
value = 'Filter',
|
||||
@@ -720,6 +741,20 @@ function listingPage:applyFilter()
|
||||
end
|
||||
|
||||
local function getTurtleInventory()
|
||||
|
||||
if duckAntenna then
|
||||
local list = duckAntenna.getAllStacks(false)
|
||||
for k,v in pairs(list) do
|
||||
v.name = v.id
|
||||
v.damage = v.dmg
|
||||
v.displayName = v.display_name
|
||||
v.count = v.qty
|
||||
v.maxDamage = v.max_dmg
|
||||
v.maxCount = v.max_size
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
local inventory = { }
|
||||
for i = 1,16 do
|
||||
local qty = turtle.getItemCount(i)
|
||||
@@ -747,7 +782,7 @@ local function learnRecipe(page)
|
||||
local ingredients = getTurtleInventory()
|
||||
if ingredients then
|
||||
turtle.select(1)
|
||||
if device.workbench and turtle.craft() then
|
||||
if canCraft and turtle.craft() then
|
||||
recipe = getTurtleInventory()
|
||||
if recipe and recipe[1] then
|
||||
clearGrid()
|
||||
|
||||
29
apps/mwm.lua
29
apps/mwm.lua
@@ -14,6 +14,7 @@ local processes = { }
|
||||
local parentTerm = term.current()
|
||||
local configFile = args[1] or syntax()
|
||||
local defaultEnv = Util.shallowCopy(getfenv(1))
|
||||
local running
|
||||
local monitor
|
||||
local exitSession
|
||||
|
||||
@@ -170,16 +171,26 @@ end
|
||||
|
||||
function Process:drawSizers(showSizers)
|
||||
|
||||
local sizeChars = {
|
||||
'\135', '\139', '\141', '\142'
|
||||
}
|
||||
|
||||
if Util.getVersion() < 1.8 then
|
||||
sizeChars = {
|
||||
'#', '#', '#', '#'
|
||||
}
|
||||
end
|
||||
|
||||
self.showSizers = showSizers
|
||||
|
||||
self.container.setBackgroundColor(colors.black)
|
||||
self.container.setTextColor(colors.white)
|
||||
|
||||
if self.showSizers then
|
||||
write(self.container, 1, 1, '\135')
|
||||
write(self.container, self.width, 1, '\139')
|
||||
write(self.container, 1, self.height, '\141')
|
||||
write(self.container, self.width, self.height, '\142')
|
||||
write(self.container, 1, 1, sizeChars[1])
|
||||
write(self.container, self.width, 1, sizeChars[2])
|
||||
write(self.container, 1, self.height, sizeChars[3])
|
||||
write(self.container, self.width, self.height, sizeChars[4])
|
||||
|
||||
self.container.setTextColor(colors.yellow)
|
||||
write(self.container, 1, 3, '+')
|
||||
@@ -250,7 +261,11 @@ function Process:resume(event, ...)
|
||||
if not self.filter or self.filter == event or event == "terminate" then
|
||||
term.redirect(self.terminal)
|
||||
|
||||
local previous = running
|
||||
running = self -- stupid shell set title
|
||||
local ok, result = coroutine.resume(self.co, event, ...)
|
||||
running = previous
|
||||
|
||||
self.terminal = term.current()
|
||||
if ok then
|
||||
self.filter = result
|
||||
@@ -269,7 +284,7 @@ function defaultEnv.multishell.getFocus()
|
||||
end
|
||||
|
||||
function defaultEnv.multishell.setFocus(uid)
|
||||
local process, key = Util.find(processes, 'uid', uid)
|
||||
local process = Util.find(processes, 'uid', uid)
|
||||
|
||||
if process then
|
||||
if processes[#processes] ~= process then
|
||||
@@ -296,8 +311,8 @@ function defaultEnv.multishell.setTitle(uid, title)
|
||||
end
|
||||
|
||||
function defaultEnv.multishell.getCurrent()
|
||||
if #processes > 0 then
|
||||
return processes[#processes].uid
|
||||
if running then
|
||||
return running.uid
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ local Util = require('util')
|
||||
|
||||
local storage = RefinedAdapter()
|
||||
if not storage:isValid() then
|
||||
storage = MEAdapter()
|
||||
storage = MEAdapter({ auto = true })
|
||||
if not storage:isValid() then
|
||||
storage = ChestAdapter()
|
||||
end
|
||||
|
||||
412
etc/recipes.db
412
etc/recipes.db
@@ -159,17 +159,6 @@
|
||||
[ 7 ] = "minecraft:stained_glass:8",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_glass_pane:9" ] = {
|
||||
count = 16,
|
||||
ingredients = {
|
||||
"minecraft:stained_glass:9",
|
||||
"minecraft:stained_glass:9",
|
||||
"minecraft:stained_glass:9",
|
||||
[ 5 ] = "minecraft:stained_glass:9",
|
||||
[ 6 ] = "minecraft:stained_glass:9",
|
||||
[ 7 ] = "minecraft:stained_glass:9",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_slab:2" ] = {
|
||||
count = 6,
|
||||
ingredients = {
|
||||
@@ -192,6 +181,13 @@
|
||||
[ 7 ] = "minecraft:redstone:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:light_weighted_pressure_plate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:quartz_block:1" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -199,11 +195,15 @@
|
||||
[ 6 ] = "minecraft:stone_slab:7",
|
||||
},
|
||||
},
|
||||
[ "minecraft:light_weighted_pressure_plate:0" ] = {
|
||||
count = 1,
|
||||
[ "minecraft:stained_glass_pane:9" ] = {
|
||||
count = 16,
|
||||
ingredients = {
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:stained_glass:9",
|
||||
"minecraft:stained_glass:9",
|
||||
"minecraft:stained_glass:9",
|
||||
[ 5 ] = "minecraft:stained_glass:9",
|
||||
[ 6 ] = "minecraft:stained_glass:9",
|
||||
[ 7 ] = "minecraft:stained_glass:9",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dye:11" ] = {
|
||||
@@ -234,15 +234,12 @@
|
||||
[ 6 ] = "minecraft:end_stone:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dark_oak_fence_gate:0" ] = {
|
||||
count = 1,
|
||||
[ "minecraft:wooden_slab:0" ] = {
|
||||
count = 6,
|
||||
ingredients = {
|
||||
"minecraft:stick:0",
|
||||
"minecraft:planks:5",
|
||||
"minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "minecraft:planks:5",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:planks:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
[ 7 ] = "minecraft:planks:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stonebrick:3" ] = {
|
||||
@@ -261,12 +258,15 @@
|
||||
[ 6 ] = "minecraft:netherbrick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_slab:0" ] = {
|
||||
count = 6,
|
||||
[ "minecraft:dark_oak_fence_gate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:planks:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
[ 7 ] = "minecraft:planks:0",
|
||||
"minecraft:stick:0",
|
||||
"minecraft:planks:5",
|
||||
"minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "minecraft:planks:5",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_slab:5" ] = {
|
||||
@@ -321,6 +321,13 @@
|
||||
[ 7 ] = "minecraft:brick_block:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:1" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
"minecraft:wool:1",
|
||||
"minecraft:wool:1",
|
||||
},
|
||||
},
|
||||
[ "minecraft:cobblestone_wall:0" ] = {
|
||||
count = 6,
|
||||
ingredients = {
|
||||
@@ -426,15 +433,11 @@
|
||||
[ 6 ] = "minecraft:stick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:jungle_fence_gate:0" ] = {
|
||||
[ "minecraft:wool:2" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:stick:0",
|
||||
"minecraft:planks:3",
|
||||
"minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "minecraft:planks:3",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:dye:13",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:lapis_block:0" ] = {
|
||||
@@ -451,13 +454,6 @@
|
||||
[ 7 ] = "minecraft:dye:4",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:2" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:dye:13",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:8" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -465,6 +461,13 @@
|
||||
[ 6 ] = "minecraft:dye:7",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:4" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:dye:11",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:12" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
@@ -484,13 +487,6 @@
|
||||
[ 6 ] = "minecraft:wool:15",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:8" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:8",
|
||||
[ 6 ] = "minecraft:wool:8",
|
||||
},
|
||||
},
|
||||
[ "minecraft:red_sandstone:2" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
@@ -500,6 +496,13 @@
|
||||
[ 6 ] = "minecraft:red_sandstone:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:8" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:8",
|
||||
[ 6 ] = "minecraft:wool:8",
|
||||
},
|
||||
},
|
||||
[ "minecraft:birch_stairs:0" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
@@ -511,13 +514,6 @@
|
||||
[ 6 ] = "minecraft:planks:2",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:4" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:dye:11",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:gold_block:0" ] = {
|
||||
count = 63,
|
||||
ingredients = {
|
||||
@@ -532,6 +528,13 @@
|
||||
[ 7 ] = "minecraft:gold_block:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:10" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:10",
|
||||
[ 6 ] = "minecraft:wool:10",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stone:5" ] = {
|
||||
count = 2,
|
||||
ingredients = {
|
||||
@@ -539,11 +542,15 @@
|
||||
"minecraft:cobblestone:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:10" ] = {
|
||||
count = 3,
|
||||
[ "minecraft:jungle_fence_gate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:10",
|
||||
[ 6 ] = "minecraft:wool:10",
|
||||
"minecraft:stick:0",
|
||||
"minecraft:planks:3",
|
||||
"minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "minecraft:planks:3",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:noteblock:0" ] = {
|
||||
@@ -654,6 +661,20 @@
|
||||
[ 7 ] = "minecraft:stained_glass:6",
|
||||
},
|
||||
},
|
||||
[ "minecraft:sea_lantern:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:prismarine_shard:0",
|
||||
"minecraft:prismarine_crystals:0",
|
||||
"minecraft:prismarine_shard:0",
|
||||
[ 9 ] = "minecraft:prismarine_shard:0",
|
||||
[ 10 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 11 ] = "minecraft:prismarine_shard:0",
|
||||
[ 5 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 6 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 7 ] = "minecraft:prismarine_crystals:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:spruce_fence_gate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -665,13 +686,6 @@
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:6" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:0",
|
||||
[ 6 ] = "minecraft:dye:9",
|
||||
},
|
||||
},
|
||||
[ "minecraft:quartz_block:2" ] = {
|
||||
count = 2,
|
||||
ingredients = {
|
||||
@@ -687,26 +701,19 @@
|
||||
[ 7 ] = "minecraft:planks:4",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:6" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:0",
|
||||
[ 6 ] = "minecraft:dye:9",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_button:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:sea_lantern:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:prismarine_shard:0",
|
||||
"minecraft:prismarine_crystals:0",
|
||||
"minecraft:prismarine_shard:0",
|
||||
[ 9 ] = "minecraft:prismarine_shard:0",
|
||||
[ 10 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 11 ] = "minecraft:prismarine_shard:0",
|
||||
[ 5 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 6 ] = "minecraft:prismarine_crystals:0",
|
||||
[ 7 ] = "minecraft:prismarine_crystals:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stone:4" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
@@ -716,6 +723,14 @@
|
||||
[ 6 ] = "minecraft:stone:3",
|
||||
},
|
||||
},
|
||||
[ "minecraft:purpur_slab:0" ] = {
|
||||
count = 6,
|
||||
ingredients = {
|
||||
"minecraft:purpur_block:0",
|
||||
"minecraft:purpur_block:0",
|
||||
"minecraft:purpur_block:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:lever:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -771,15 +786,13 @@
|
||||
[ 7 ] = "minecraft:dye:15",
|
||||
},
|
||||
},
|
||||
[ "minecraft:iron_door:0" ] = {
|
||||
count = 3,
|
||||
[ "minecraft:brick_block:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
"minecraft:brick:0",
|
||||
"minecraft:brick:0",
|
||||
[ 5 ] = "minecraft:brick:0",
|
||||
[ 6 ] = "minecraft:brick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:2" ] = {
|
||||
@@ -800,6 +813,17 @@
|
||||
[ 6 ] = "minecraft:stonebrick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:iron_door:0" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_glass:6" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
@@ -828,15 +852,6 @@
|
||||
[ 7 ] = "minecraft:cobblestone:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:brick_block:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:brick:0",
|
||||
"minecraft:brick:0",
|
||||
[ 5 ] = "minecraft:brick:0",
|
||||
[ 6 ] = "minecraft:brick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:planks:0" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
@@ -949,13 +964,6 @@
|
||||
[ 7 ] = "minecraft:planks:3",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:6" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:6",
|
||||
[ 6 ] = "minecraft:wool:6",
|
||||
},
|
||||
},
|
||||
[ "minecraft:paper:0" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
@@ -964,6 +972,13 @@
|
||||
"minecraft:reeds:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:6" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:wool:6",
|
||||
[ 6 ] = "minecraft:wool:6",
|
||||
},
|
||||
},
|
||||
[ "minecraft:birch_fence_gate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -1094,6 +1109,17 @@
|
||||
[ 7 ] = "minecraft:planks:1",
|
||||
},
|
||||
},
|
||||
[ "minecraft:bow:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:string:0",
|
||||
"minecraft:stick:0",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
[ 9 ] = "minecraft:string:0",
|
||||
[ 10 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:string:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_glass:15" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
@@ -1115,28 +1141,17 @@
|
||||
[ 6 ] = "minecraft:stone_slab:1",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_pressure_plate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:planks:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:planks:3" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:log:3",
|
||||
},
|
||||
},
|
||||
[ "minecraft:bow:0" ] = {
|
||||
[ "minecraft:wooden_pressure_plate:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:string:0",
|
||||
"minecraft:stick:0",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
[ 9 ] = "minecraft:string:0",
|
||||
[ 10 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:string:0",
|
||||
[ 5 ] = "minecraft:planks:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wooden_door:0" ] = {
|
||||
@@ -1182,6 +1197,12 @@
|
||||
[ 6 ] = "minecraft:wool:5",
|
||||
},
|
||||
},
|
||||
[ "minecraft:planks:1" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:log:1",
|
||||
},
|
||||
},
|
||||
[ "minecraft:enchanting_table:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -1194,12 +1215,6 @@
|
||||
[ 9 ] = "minecraft:obsidian:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:planks:1" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:log:1",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:13" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -1423,15 +1438,15 @@
|
||||
[ 7 ] = "minecraft:hardened_clay:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:quartz_stairs:0" ] = {
|
||||
[ "minecraft:acacia_stairs:0" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
"minecraft:quartz_block:0",
|
||||
[ 9 ] = "minecraft:quartz_block:0",
|
||||
[ 10 ] = "minecraft:quartz_block:0",
|
||||
[ 11 ] = "minecraft:quartz_block:0",
|
||||
[ 5 ] = "minecraft:quartz_block:0",
|
||||
[ 6 ] = "minecraft:quartz_block:0",
|
||||
"minecraft:planks:4",
|
||||
[ 9 ] = "minecraft:planks:4",
|
||||
[ 10 ] = "minecraft:planks:4",
|
||||
[ 11 ] = "minecraft:planks:4",
|
||||
[ 5 ] = "minecraft:planks:4",
|
||||
[ 6 ] = "minecraft:planks:4",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stone_slab:7" ] = {
|
||||
@@ -1442,15 +1457,15 @@
|
||||
[ 7 ] = "minecraft:quartz_block:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:acacia_stairs:0" ] = {
|
||||
[ "minecraft:quartz_stairs:0" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
"minecraft:planks:4",
|
||||
[ 9 ] = "minecraft:planks:4",
|
||||
[ 10 ] = "minecraft:planks:4",
|
||||
[ 11 ] = "minecraft:planks:4",
|
||||
[ 5 ] = "minecraft:planks:4",
|
||||
[ 6 ] = "minecraft:planks:4",
|
||||
"minecraft:quartz_block:0",
|
||||
[ 9 ] = "minecraft:quartz_block:0",
|
||||
[ 10 ] = "minecraft:quartz_block:0",
|
||||
[ 11 ] = "minecraft:quartz_block:0",
|
||||
[ 5 ] = "minecraft:quartz_block:0",
|
||||
[ 6 ] = "minecraft:quartz_block:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dye:7" ] = {
|
||||
@@ -1722,18 +1737,11 @@
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_glass:13" ] = {
|
||||
count = 8,
|
||||
[ "minecraft:wool:15" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
[ 9 ] = "minecraft:glass:0",
|
||||
[ 10 ] = "minecraft:glass:0",
|
||||
[ 11 ] = "minecraft:glass:0",
|
||||
[ 5 ] = "minecraft:glass:0",
|
||||
[ 6 ] = "minecraft:dye:2",
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
[ 5 ] = "minecraft:dye:0",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_hardened_clay:9" ] = {
|
||||
@@ -1797,11 +1805,15 @@
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:trapped_chest:0" ] = {
|
||||
count = 1,
|
||||
[ "minecraft:jungle_door:0" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:chest:0",
|
||||
[ 6 ] = "minecraft:tripwire_hook:0",
|
||||
"minecraft:planks:3",
|
||||
"minecraft:planks:3",
|
||||
[ 9 ] = "minecraft:planks:3",
|
||||
[ 10 ] = "minecraft:planks:3",
|
||||
[ 5 ] = "minecraft:planks:3",
|
||||
[ 6 ] = "minecraft:planks:3",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dye:9" ] = {
|
||||
@@ -1822,22 +1834,25 @@
|
||||
[ 7 ] = "minecraft:stained_glass:7",
|
||||
},
|
||||
},
|
||||
[ "minecraft:wool:15" ] = {
|
||||
[ "minecraft:trapped_chest:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 5 ] = "minecraft:dye:0",
|
||||
[ 6 ] = "minecraft:wool:0",
|
||||
[ 5 ] = "minecraft:chest:0",
|
||||
[ 6 ] = "minecraft:tripwire_hook:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:jungle_door:0" ] = {
|
||||
count = 3,
|
||||
[ "minecraft:stained_glass:13" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
"minecraft:planks:3",
|
||||
"minecraft:planks:3",
|
||||
[ 9 ] = "minecraft:planks:3",
|
||||
[ 10 ] = "minecraft:planks:3",
|
||||
[ 5 ] = "minecraft:planks:3",
|
||||
[ 6 ] = "minecraft:planks:3",
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
[ 9 ] = "minecraft:glass:0",
|
||||
[ 10 ] = "minecraft:glass:0",
|
||||
[ 11 ] = "minecraft:glass:0",
|
||||
[ 5 ] = "minecraft:glass:0",
|
||||
[ 6 ] = "minecraft:dye:2",
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:carpet:3" ] = {
|
||||
@@ -1858,24 +1873,6 @@
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:anvil:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:iron_block:0",
|
||||
"minecraft:iron_block:0",
|
||||
"minecraft:iron_block:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:pumpkin_seeds:0" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:pumpkin:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stained_hardened_clay:0" ] = {
|
||||
count = 8,
|
||||
ingredients = {
|
||||
@@ -1890,6 +1887,24 @@
|
||||
[ 7 ] = "minecraft:hardened_clay:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:pumpkin_seeds:0" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
[ 6 ] = "minecraft:pumpkin:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:anvil:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:iron_block:0",
|
||||
"minecraft:iron_block:0",
|
||||
"minecraft:iron_block:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dye:10" ] = {
|
||||
count = 2,
|
||||
ingredients = {
|
||||
@@ -1972,6 +1987,17 @@
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:birch_door:0" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
"minecraft:planks:2",
|
||||
"minecraft:planks:2",
|
||||
[ 9 ] = "minecraft:planks:2",
|
||||
[ 10 ] = "minecraft:planks:2",
|
||||
[ 5 ] = "minecraft:planks:2",
|
||||
[ 6 ] = "minecraft:planks:2",
|
||||
},
|
||||
},
|
||||
[ "minecraft:dye:15" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
@@ -1987,17 +2013,6 @@
|
||||
[ 6 ] = "minecraft:string:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:birch_door:0" ] = {
|
||||
count = 3,
|
||||
ingredients = {
|
||||
"minecraft:planks:2",
|
||||
"minecraft:planks:2",
|
||||
[ 9 ] = "minecraft:planks:2",
|
||||
[ 10 ] = "minecraft:planks:2",
|
||||
[ 5 ] = "minecraft:planks:2",
|
||||
[ 6 ] = "minecraft:planks:2",
|
||||
},
|
||||
},
|
||||
[ "minecraft:redstone_lamp:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
@@ -2119,6 +2134,15 @@
|
||||
[ 6 ] = "minecraft:dye:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:purpur_block:0" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
"minecraft:chorus_fruit_popped:0",
|
||||
"minecraft:chorus_fruit_popped:0",
|
||||
[ 5 ] = "minecraft:chorus_fruit_popped:0",
|
||||
[ 6 ] = "minecraft:chorus_fruit_popped:0",
|
||||
},
|
||||
},
|
||||
[ "minecraft:stick:0" ] = {
|
||||
count = 4,
|
||||
ingredients = {
|
||||
|
||||
Reference in New Issue
Block a user