Compare commits

...

2 Commits

@ -11,7 +11,7 @@ local inventory = component.inventory_controller
RESULT_SLOT = 4
-- robots inventory is 4 wide and crafting uses the top left portion
local slot_map = {
SLOT_MAP = {
1, 2, 3,
5, 6, 7,
9, 10, 11
@ -177,6 +177,20 @@ local function fetch_item(item, output_slot, count)
return false
end
---clear the 3x3 grid of any leftover items
local function clear_crafting_space()
for _, slot in ipairs(SLOT_MAP) do
if inventory.getStackInInternalSlot(slot) then
robot.select(slot)
store_item()
end
end
if inventory.getStackInInternalSlot(RESULT_SLOT) then
robot.select(RESULT_SLOT)
store_item()
end
end
---accepts a recipe table containing result and ingredients
---@param recipe table
---@param count number how many items to craft
@ -188,7 +202,7 @@ local function craft_single_recipe(recipe, count)
end
for i, ingredient in pairs(recipe.shape) do
-- print('Fetching ' .. ingredient)
if not fetch_item(ingredient, slot_map[i], count) then
if not fetch_item(ingredient, SLOT_MAP[i], count) then
print('Failed to fetch ' .. ingredient)
confirm()
end
@ -391,6 +405,8 @@ local function craft_item(search)
return false
end
clear_crafting_space()
-- proceed to crafting the things
for i, rec in ipairs(crafting_order) do
print('Step #' .. i .. ' - ' .. rec.result)

@ -221,6 +221,20 @@ return {
'minecraft:cobblestone;0', 'minecraft:redstone;0', 'minecraft:cobblestone;0',
}
},
-- Sticky Piston
['minecraft:sticky_piston;0'] = {
result = 'minecraft:sticky_piston;0',
count = 1,
requires = {
['minecraft:piston;0'] = 1,
['minecraft:slime_ball;0'] = 1,
},
shape = {
nil, 'minecraft:slime_ball;0', nil,
nil, 'minecraft:piston;0', nil,
nil, nil, nil,
}
},
-- Button
['minecraft:stone_button;0'] = {
result = 'minecraft:stone_button;0',
@ -1025,9 +1039,60 @@ return {
'minecraft:iron_ingot;0', 'opencomputers:material;4', 'minecraft:iron_ingot;0',
}
},
-- Capacitor
['opencomputers:capacitor;0'] = {
result = 'opencomputers:capacitor;0',
count = 1,
requires = {
['minecraft:iron_ingot;0'] = 4,
['opencomputers:material;6'] = 1, -- Transistor
['minecraft:gold_nugget;0'] = 2,
['minecraft:paper;0'] = 1,
['opencomputers:material;4'] = 1, -- Printed Circuit Board
},
shape = {
'minecraft:iron_ingot;0', 'opencomputers:material;6', 'minecraft:iron_ingot;0',
'minecraft:gold_nugget;0', 'minecraft:paper;0', 'minecraft:gold_nugget;0',
'minecraft:iron_ingot;0', 'opencomputers:material;4', 'minecraft:iron_ingot;0',
}
},
-----------------------------------------------------------------------------------------
-- Chunkloader Upgrade
['opencomputers:upgrade;4'] = {
result = 'opencomputers:upgrade;4;chunkloader upgrade',
count = 1,
requires = {
['minecraft:gold_ingot;0'] = 4,
['minecraft:ender_pearl;0'] = 2,
['opencomputers:material;9'] = 2, -- Microchip (Tier 3)
['minecraft:ender_eye;0'] = 1,
['minecraft:obsidian;0'] = 2,
['opencomputers:material;4'] = 1, -- Printed Circuit Board
},
shape = {
'minecraft:gold_ingot;0', 'minecraft:glass;0', 'minecraft:gold_ingot;0',
'opencomputers:material;9', 'minecraft:ender_eye;0', 'opencomputers:material;9',
'minecraft:obsidian;0', 'opencomputers:material;4', 'minecraft:obsidian;0',
}
},
-- Angel Upgrade
['opencomputers:upgrade;6'] = {
result = 'opencomputers:upgrade;6;angel upgrade',
count = 1,
requires = {
['minecraft:iron_ingot;0'] = 4,
['minecraft:ender_pearl;0'] = 2,
['opencomputers:material;7'] = 2, -- Microchip (Tier 1)
['minecraft:sticky_piston;0'] = 1,
},
shape = {
'minecraft:iron_ingot;0', 'minecraft:ender_pearl;0', 'minecraft:iron_ingot;0',
'opencomputers:material;7', 'minecraft:sticky_piston;0', 'opencomputers:material;7',
'minecraft:iron_ingot;0', 'minecraft:ender_pearl;0', 'minecraft:iron_ingot;0',
}
},
-- Crafting Upgrade
['opencomputers:upgrade;11'] = {
result = 'opencomputers:upgrade;11;crafting upgrade',
@ -1044,6 +1109,22 @@ return {
'minecraft:iron_ingot;0', 'opencomputers:material;4', 'minecraft:iron_ingot;0',
}
},
-- Experience Upgrade
['opencomputers:upgrade;15'] = {
result = 'opencomputers:upgrade;15;experience upgrade',
count = 1,
requires = {
['minecraft:gold_ingot;0'] = 4,
['opencomputers:material;8'] = 2, -- Microchip (Tier 2)
['minecraft:emerald;0'] = 1,
['opencomputers:material;4'] = 1, -- Printed Circuit Board
},
shape = {
'minecraft:gold_ingot;0', nil, 'minecraft:gold_ingot;0',
'opencomputers:material;8', 'minecraft:emerald;0', 'opencomputers:material;8',
'minecraft:gold_ingot;0', 'opencomputers:material;4', 'minecraft:gold_ingot;0',
}
},
-- Inventory Upgrade
['opencomputers:upgrade;17'] = {
result = 'opencomputers:upgrade;17;inventory upgrade',
@ -1080,6 +1161,57 @@ return {
'minecraft:gold_ingot;0', 'opencomputers:material;4', 'minecraft:gold_ingot;0',
}
},
-- Tractor Beam Upgrade
['opencomputers:upgrade;25'] = {
result = 'opencomputers:upgrade;25;tractor beam (magnet) upgrade',
count = 1,
requires = {
['minecraft:gold_ingot;0'] = 4,
['minecraft:piston;0'] = 1,
['minecraft:iron_ingot;0'] = 2,
['opencomputers:capacitor;0'] = 1,
['opencomputers:material;9'] = 1, -- Microchip (Tier 3)
},
shape = {
'minecraft:gold_ingot;0', 'minecraft:piston;0', 'minecraft:gold_ingot;0',
'minecraft:iron_ingot;0', 'opencomputers:capacitor;0', 'minecraft:iron_ingot;0',
'minecraft:gold_ingot;0', 'opencomputers:material;9', 'minecraft:gold_ingot;0',
}
},
-- Hover Upgrade (Tier 1)
['opencomputers:upgrade;27'] = {
result = 'opencomputers:upgrade;27;hover upgrade 1',
count = 1,
requires = {
['minecraft:feather;0'] = 4,
['opencomputers:material;7'] = 1, -- Microchip (Tier 1)
['minecraft:iron_nugget;0'] = 2,
['minecraft:leather;0'] = 1,
['opencomputers:material;4'] = 1, -- Printed Circuit Board
},
shape = {
'minecraft:feather;0', 'opencomputers:material;7', 'minecraft:feather;0',
'minecraft:iron_nugget;0', 'minecraft:leather;0', 'minecraft:iron_nugget;0',
'minecraft:feather;0', 'opencomputers:material;4', 'minecraft:feather;0',
}
},
-- Hover Upgrade (Tier 2)
['opencomputers:upgrade;28'] = {
result = 'opencomputers:upgrade;28;hover upgrade 2',
count = 1,
requires = {
['minecraft:end_stone;0'] = 4,
['opencomputers:material;8'] = 1, -- Microchip (Tier 2)
['minecraft:gold_nugget;0'] = 2,
['minecraft:iron_ingot;0'] = 1,
['opencomputers:material;4'] = 1, -- Printed Circuit Board
},
shape = {
'minecraft:end_stone;0', 'opencomputers:material;8', 'minecraft:end_stone;0',
'minecraft:gold_nugget;0', 'minecraft:iron_ingot;0', 'minecraft:gold_nugget;0',
'minecraft:end_stone;0', 'opencomputers:material;4', 'minecraft:end_stone;0',
}
},
-----------------------------------------------------------------------------------------

Loading…
Cancel
Save