autocrafting improvements
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
local Util = require('util')
|
||||
|
||||
local Adapter = { }
|
||||
|
||||
function Adapter.wrap(args)
|
||||
@@ -7,43 +5,46 @@ function Adapter.wrap(args)
|
||||
--'refinedAdapter',
|
||||
'chestAdapter18',
|
||||
|
||||
-- adapters for version 1.7
|
||||
'meAdapter',
|
||||
'chestAdapter',
|
||||
}
|
||||
|
||||
if args and args.side and args.facing and not args.direction then
|
||||
args = Util.shallowCopy(args)
|
||||
local horz = { top = 'down', bottom = 'up' }
|
||||
args.direction = horz[args.side]
|
||||
|
||||
if not args.direction then
|
||||
local sides = {
|
||||
front = 0,
|
||||
back = 2,
|
||||
right = 1,
|
||||
left = 3,
|
||||
}
|
||||
-- pretty sure computer/turtle have sides reversed
|
||||
local cards = {
|
||||
east = 0,
|
||||
south = 1,
|
||||
west = 2,
|
||||
north = 3,
|
||||
}
|
||||
local icards = {
|
||||
[ 0 ] = 'west',
|
||||
[ 1 ] = 'north',
|
||||
[ 2 ] = 'east',
|
||||
[ 3 ] = 'south',
|
||||
}
|
||||
args.direction = icards[(cards[args.facing] + sides[args.side]) % 4]
|
||||
end
|
||||
end
|
||||
|
||||
for _,adapterType in ipairs(adapters) do
|
||||
local adapter = require(adapterType)(args)
|
||||
|
||||
if adapter:isValid() then
|
||||
|
||||
-- figure out which direction to push/pull items from an inventory
|
||||
-- based on the side the inventory is attached and which way the
|
||||
-- turtle/computer is facing
|
||||
if args and args.facing and adapter.side and not adapter.direction then
|
||||
local horz = { top = 'down', bottom = 'up' }
|
||||
adapter.direction = horz[adapter.side]
|
||||
|
||||
if not adapter.direction then
|
||||
local sides = {
|
||||
front = 0,
|
||||
right = 1,
|
||||
back = 2,
|
||||
left = 3,
|
||||
}
|
||||
-- pretty sure computer/turtle have sides reversed
|
||||
local cards = {
|
||||
east = 0,
|
||||
south = 1,
|
||||
west = 2,
|
||||
north = 3,
|
||||
}
|
||||
local icards = {
|
||||
[ 0 ] = 'west',
|
||||
[ 1 ] = 'north',
|
||||
[ 2 ] = 'east',
|
||||
[ 3 ] = 'south',
|
||||
}
|
||||
adapter.direction = icards[(cards[args.facing] + sides[adapter.side]) % 4]
|
||||
end
|
||||
end
|
||||
return adapter
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,23 +1,33 @@
|
||||
local JSON = require('json')
|
||||
local TableDB = require('tableDB')
|
||||
|
||||
local fs = _G.fs
|
||||
|
||||
local NAME_DIR = '/usr/etc/names'
|
||||
|
||||
local nameDB = TableDB()
|
||||
|
||||
function nameDB:load()
|
||||
|
||||
local blocks = JSON.decodeFromFile('usr/etc/blocks.json')
|
||||
local files = fs.list(NAME_DIR)
|
||||
table.sort(files)
|
||||
|
||||
if not blocks then
|
||||
error('Unable to read usr/etc/blocks.json')
|
||||
end
|
||||
for _,file in ipairs(files) do
|
||||
local mod = file:match('(%S+).json')
|
||||
local blocks = JSON.decodeFromFile(fs.combine(NAME_DIR, file))
|
||||
|
||||
for strId, block in pairs(blocks) do
|
||||
strId = 'minecraft:' .. strId
|
||||
if type(block.name) == 'string' then
|
||||
self.data[strId .. ':0'] = block.name
|
||||
else
|
||||
for nid,name in pairs(block.name) do
|
||||
self.data[strId .. ':' .. (nid-1)] = name
|
||||
if not blocks then
|
||||
error('Unable to read ' .. fs.combine(NAME_DIR, file))
|
||||
end
|
||||
|
||||
for strId, block in pairs(blocks) do
|
||||
strId = string.format('%s:%s', mod, strId)
|
||||
if type(block.name) == 'string' then
|
||||
self.data[strId .. ':0'] = block.name
|
||||
else
|
||||
for nid,name in pairs(block.name) do
|
||||
self.data[strId .. ':' .. (nid-1)] = name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -23,13 +23,13 @@ local turtle = _G.turtle
|
||||
multishell.setTitle(multishell.getCurrent(), 'Resource Manager')
|
||||
|
||||
local config = {
|
||||
computerFacing = 'north',
|
||||
computerFacing = 'north', -- direction turtle is facing
|
||||
|
||||
inventory = 'back',
|
||||
craftingChest = 'top',
|
||||
inventory = 'top',
|
||||
craftingChest = 'bottom',
|
||||
controller = 'none',
|
||||
|
||||
trashDirection = 'up', -- trash /chest in relation to chest
|
||||
trashDirection = 'up', -- trash/chest in relation to inventory
|
||||
monitor = 'type/monitor',
|
||||
}
|
||||
|
||||
@@ -49,7 +49,6 @@ if device.workbench then
|
||||
[ 'left' ] = 'right',
|
||||
[ 'right' ] = 'left',
|
||||
}
|
||||
|
||||
local duckAntennaSide = oppositeSide[device.workbench.side]
|
||||
duckAntenna = peripheral.wrap(duckAntennaSide)
|
||||
if not duckAntenna or not duckAntenna.getAllStacks then
|
||||
@@ -57,11 +56,16 @@ if device.workbench then
|
||||
end
|
||||
end
|
||||
|
||||
local STATUS_INFO = 'info'
|
||||
local STATUS_WARNING = 'warning'
|
||||
local STATUS_ERROR = 'error'
|
||||
|
||||
local RESOURCE_FILE = 'usr/config/resources.db'
|
||||
local RECIPES_FILE = 'usr/config/recipes.db'
|
||||
|
||||
local craftingPaused = false
|
||||
local canCraft = not not duckAntenna or turtleChestAdapter
|
||||
local canCraft = not not (turtle and turtle.craft)
|
||||
local canLearn = not not duckAntenna or not not turtleChestAdapter
|
||||
local userRecipes = Util.readTable(RECIPES_FILE) or { }
|
||||
local jobList
|
||||
local resources
|
||||
@@ -188,6 +192,7 @@ local function addCraftingRequest(item, craftList, count)
|
||||
craftList[key] = request
|
||||
end
|
||||
request.count = request.count + count
|
||||
return request
|
||||
end
|
||||
|
||||
local function craftItem(recipe, items, originalItem, craftList, count)
|
||||
@@ -199,6 +204,7 @@ local function craftItem(recipe, items, originalItem, craftList, count)
|
||||
if not isGridClear() then
|
||||
if not clearGrid() then
|
||||
originalItem.status = 'Grid obstructed'
|
||||
originalItem.statusCode = STATUS_ERROR
|
||||
return 0
|
||||
end
|
||||
end
|
||||
@@ -207,7 +213,7 @@ local function craftItem(recipe, items, originalItem, craftList, count)
|
||||
local toCraft = Craft.getCraftableAmount(recipe, count, items, missing)
|
||||
if missing.name then
|
||||
originalItem.status = string.format('%s missing', itemDB:getName(missing.name))
|
||||
originalItem.statusCode = 'missing'
|
||||
originalItem.statusCode = STATUS_WARNING
|
||||
end
|
||||
|
||||
local crafted = 0
|
||||
@@ -222,9 +228,15 @@ local function craftItem(recipe, items, originalItem, craftList, count)
|
||||
if count > 0 and items then
|
||||
local ingredients = Craft.getResourceList4(recipe, items, count)
|
||||
for _,ingredient in pairs(ingredients) do
|
||||
--if not ingredient.recipe and ingredient.count < 0 then
|
||||
if ingredient.need > 0 then
|
||||
addCraftingRequest(ingredient, craftList, ingredient.need)
|
||||
local item = addCraftingRequest(ingredient, craftList, ingredient.need)
|
||||
if Craft.findRecipe(item) then
|
||||
item.status = string.format('%s missing', itemDB:getName(ingredient))
|
||||
item.statusCode = STATUS_WARNING
|
||||
else
|
||||
item.status = 'no recipe'
|
||||
item.statusCode = STATUS_ERROR
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -278,7 +290,6 @@ local function forceCraftItem(inRecipe, items, originalItem, craftList, inCount)
|
||||
local c = sumItems(summedItem.recipe, need) -- 4
|
||||
craftable = math.min(craftable, math.floor((used + c) / iqty))
|
||||
summedItem.craftable = summedItem.craftable + c
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -296,9 +307,14 @@ local function forceCraftItem(inRecipe, items, originalItem, craftList, inCount)
|
||||
if count < inCount then
|
||||
for _,ingredient in pairs(summed) do
|
||||
if ingredient.need > 0 then
|
||||
addCraftingRequest(ingredient, craftList, ingredient.need)
|
||||
originalItem.status = string.format('%s missing', itemDB:getName(ingredient))
|
||||
originalItem.statusCode = 'missing'
|
||||
local item = addCraftingRequest(ingredient, craftList, ingredient.need)
|
||||
if Craft.findRecipe(item) then
|
||||
item.status = string.format('%s missing', itemDB:getName(ingredient))
|
||||
item.statusCode = STATUS_WARNING
|
||||
else
|
||||
item.status = '(no recipe)'
|
||||
item.statusCode = STATUS_ERROR
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -306,43 +322,59 @@ local function forceCraftItem(inRecipe, items, originalItem, craftList, inCount)
|
||||
end
|
||||
|
||||
local function craftItems(craftList, allItems)
|
||||
for _,key in pairs(Util.keys(craftList)) do
|
||||
local item = craftList[key]
|
||||
local recipe = Craft.recipes[key]
|
||||
if recipe then
|
||||
item.status = nil
|
||||
item.statusCode = nil
|
||||
if item.forceCrafting then
|
||||
item.crafted = forceCraftItem(recipe, allItems, item, craftList, item.count)
|
||||
else
|
||||
item.crafted = craftItem(recipe, allItems, item, craftList, item.count)
|
||||
|
||||
-- turtle crafting
|
||||
if canCraft then
|
||||
for _,key in pairs(Util.keys(craftList)) do
|
||||
local item = craftList[key]
|
||||
local recipe = Craft.recipes[key]
|
||||
if recipe then
|
||||
item.status = nil
|
||||
item.statusCode = nil
|
||||
if item.forceCrafting then
|
||||
item.crafted = forceCraftItem(recipe, allItems, item, craftList, item.count)
|
||||
else
|
||||
item.crafted = craftItem(recipe, allItems, item, craftList, item.count)
|
||||
end
|
||||
allItems = listItems() -- refresh counts
|
||||
if not allItems then
|
||||
break
|
||||
end
|
||||
elseif not controllerAdapter then
|
||||
item.status = '(no recipe)'
|
||||
item.statusCode = STATUS_ERROR
|
||||
end
|
||||
allItems = listItems() -- refresh counts
|
||||
if not allItems then
|
||||
break
|
||||
end
|
||||
elseif item.rsControl then
|
||||
item.status = 'Activated'
|
||||
end
|
||||
end
|
||||
|
||||
for key,item in pairs(craftList) do
|
||||
if not Craft.recipes[key] and not item.rsControl then
|
||||
if not controllerAdapter then
|
||||
item.status = '(no recipe)'
|
||||
else
|
||||
-- redstone control
|
||||
for _,item in pairs(craftList) do
|
||||
if item.rsControl then
|
||||
item.status = '(activated)'
|
||||
item.statusCode = STATUS_INFO
|
||||
end
|
||||
end
|
||||
|
||||
-- controller
|
||||
if controllerAdapter then
|
||||
for key,item in pairs(craftList) do
|
||||
if not Craft.recipes[key] and not item.rsControl then
|
||||
if controllerAdapter:isCrafting(item) then
|
||||
item.status = '(crafting)'
|
||||
item.statusCode = STATUS_INFO
|
||||
else
|
||||
local count = item.count
|
||||
while count >= 1 do -- try to request smaller quantities until successful
|
||||
local s = pcall(function()
|
||||
item.status = '(no recipe)'
|
||||
item.statusCode = STATUS_ERROR
|
||||
if not controllerAdapter:craft(item, count) then
|
||||
item.status = '(missing ingredients)'
|
||||
item.statusCode = STATUS_WARNING
|
||||
error('failed')
|
||||
end
|
||||
item.status = '(crafting)'
|
||||
item.statusCode = STATUS_INFO
|
||||
end)
|
||||
if s then
|
||||
break -- successfully requested crafting
|
||||
@@ -353,6 +385,15 @@ local function craftItems(craftList, allItems)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not controllerAdapter and not canCraft then
|
||||
for _,item in pairs(craftList) do
|
||||
if not item.rsControl then
|
||||
item.status = 'Invalid setup'
|
||||
item.statusCode = STATUS_INFO
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function jobMonitor()
|
||||
@@ -395,11 +436,11 @@ local function jobMonitor()
|
||||
end
|
||||
|
||||
function jobList.grid:getRowTextColor(row, selected)
|
||||
if row.status == '(no recipe)' then
|
||||
if row.statusCode == STATUS_ERROR then
|
||||
return colors.red
|
||||
elseif row.statusCode == 'missing' then
|
||||
elseif row.statusCode == STATUS_WARNING then
|
||||
return colors.yellow
|
||||
elseif row.statusCode == 'success' then
|
||||
elseif row.statusCode == STATUS_INFO then
|
||||
return colors.lime
|
||||
end
|
||||
return UI.Grid:getRowTextColor(row, selected)
|
||||
@@ -580,12 +621,14 @@ local itemPage = UI.Page {
|
||||
},
|
||||
help = 'Ignore NBT of item'
|
||||
},
|
||||
--[[
|
||||
[6] = UI.Button {
|
||||
x = 2, y = -2, width = 10,
|
||||
formLabel = 'Redstone',
|
||||
event = 'show_rs',
|
||||
text = 'Configure',
|
||||
},
|
||||
]]
|
||||
infoButton = UI.Button {
|
||||
x = 2, y = -2,
|
||||
event = 'show_info',
|
||||
@@ -779,10 +822,10 @@ local listingPage = UI.Page {
|
||||
grid = UI.Grid {
|
||||
y = 2, ey = -2,
|
||||
columns = {
|
||||
{ heading = 'Name', key = 'displayName' , width = 22 },
|
||||
{ heading = 'Qty', key = 'count' , width = 5 },
|
||||
{ heading = 'Min', key = 'low' , width = 4 },
|
||||
{ heading = 'Max', key = 'limit' , width = 4 },
|
||||
{ heading = 'Name', key = 'displayName' },
|
||||
{ heading = 'Qty', key = 'count' , width = 4 },
|
||||
{ heading = 'Min', key = 'low' , width = 4 },
|
||||
{ heading = 'Max', key = 'limit' , width = 4 },
|
||||
},
|
||||
sortColumn = 'displayName',
|
||||
},
|
||||
@@ -802,6 +845,7 @@ local listingPage = UI.Page {
|
||||
text = 'A',
|
||||
},
|
||||
},
|
||||
notification = UI.Notification(),
|
||||
accelerators = {
|
||||
r = 'refresh',
|
||||
q = 'quit',
|
||||
@@ -864,10 +908,18 @@ function listingPage:eventHandler(event)
|
||||
self.grid:draw()
|
||||
|
||||
elseif event.type == 'learn' then
|
||||
UI:setPage('learn')
|
||||
if canLearn then
|
||||
UI:setPage('learn')
|
||||
else
|
||||
self.notification:error('Missing a crafting chest\nCheck configuration')
|
||||
end
|
||||
|
||||
elseif event.type == 'craft' or event.type == 'grid_select_right' then
|
||||
UI:setPage('craft', self.grid:getSelected())
|
||||
if Craft.findRecipe(self.grid:getSelected()) then
|
||||
UI:setPage('craft', self.grid:getSelected())
|
||||
else
|
||||
self.notification:error('No recipe defined')
|
||||
end
|
||||
|
||||
elseif event.type == 'forget' then
|
||||
local item = self.grid:getSelected()
|
||||
@@ -885,7 +937,7 @@ function listingPage:eventHandler(event)
|
||||
saveResources()
|
||||
end
|
||||
|
||||
self.statusBar:timedStatus('Forgot: ' .. item.name, 3)
|
||||
self.notification:info('Forgot: ' .. item.name)
|
||||
self:refresh()
|
||||
self.grid:draw()
|
||||
end
|
||||
@@ -957,7 +1009,7 @@ local function learnRecipe(page)
|
||||
local ingredients = getTurtleInventory()
|
||||
if ingredients then
|
||||
turtle.select(1)
|
||||
if canCraft and turtle.craft() then
|
||||
if canLearn and turtle.craft() then
|
||||
local results = getTurtleInventory()
|
||||
if results and results[1] then
|
||||
clearGrid()
|
||||
@@ -1029,7 +1081,7 @@ local function learnRecipe(page)
|
||||
local displayName = itemDB:getName(recipe)
|
||||
|
||||
listingPage.statusBar.filter:setValue(displayName)
|
||||
listingPage.statusBar:timedStatus('Learned: ' .. displayName, 3)
|
||||
listingPage.notification:success('Learned: ' .. displayName)
|
||||
listingPage.filter = displayName
|
||||
listingPage:refresh()
|
||||
listingPage.grid:draw()
|
||||
@@ -1037,10 +1089,10 @@ local function learnRecipe(page)
|
||||
return true
|
||||
end
|
||||
else
|
||||
page.statusBar:timedStatus('Failed to craft', 3)
|
||||
listingPage.notification:error('Failed to craft', 3)
|
||||
end
|
||||
else
|
||||
page.statusBar:timedStatus('No recipe defined', 3)
|
||||
listingPage.notification:error('No recipe defined', 3)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1208,7 +1260,9 @@ function craftPage:eventHandler(event)
|
||||
end
|
||||
|
||||
loadResources()
|
||||
clearGrid()
|
||||
if canCraft then
|
||||
clearGrid()
|
||||
end
|
||||
|
||||
UI:setPages({
|
||||
listing = listingPage,
|
||||
|
||||
@@ -19,7 +19,7 @@ multishell.setTitle(multishell.getCurrent(), 'Crafter')
|
||||
|
||||
local config = {
|
||||
computerFacing = 'north',
|
||||
monitor = 'monitor',
|
||||
monitor = 'type/monitor',
|
||||
}
|
||||
Config.load('crafter', config)
|
||||
|
||||
|
||||
50
apps/namedb.lua
Normal file
50
apps/namedb.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
_G.requireInjector()
|
||||
|
||||
local itemDB = require('itemDB')
|
||||
local json = require('json')
|
||||
local Util = require('util')
|
||||
|
||||
local args = { ... }
|
||||
local mod = args[1] or error('Syntax: namedb MOD')
|
||||
|
||||
--[[
|
||||
"double_plant": {
|
||||
"name": ["Sunflower",
|
||||
"Lilac",
|
||||
"Double Tallgrass",
|
||||
"Large Fern",
|
||||
"Rose Bush",
|
||||
"Peony"],
|
||||
},
|
||||
--]]
|
||||
|
||||
local list = { }
|
||||
|
||||
for _,v in pairs(itemDB.data) do
|
||||
local t = Util.split(v.name, '(.-):')
|
||||
|
||||
if t[1] == mod then
|
||||
local name = t[2]
|
||||
local damage = v.damage or 0
|
||||
local entry = list[name]
|
||||
if not entry then
|
||||
entry = { }
|
||||
list[name] = entry
|
||||
end
|
||||
if not entry.name and damage == 0 then
|
||||
entry.name = v.displayName
|
||||
else
|
||||
if not entry.name then
|
||||
entry.name = { }
|
||||
elseif type(entry.name) == 'string' then
|
||||
entry.name = { entry.name }
|
||||
end
|
||||
while #entry.name < damage do
|
||||
entry.name[#entry.name + 1] = ''
|
||||
end
|
||||
entry.name[damage + 1] = v.displayName
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
json.encodeToFile(string.format('usr/etc/names/%s.json', mod), list)
|
||||
@@ -14,15 +14,17 @@ local version = "Version 1.1.6"
|
||||
-- Original code by Bomb Bloke
|
||||
-- Modified to integrate with opus os
|
||||
|
||||
requireInjector(getfenv(1))
|
||||
_G.requireInjector()
|
||||
|
||||
local Util = require('util')
|
||||
|
||||
local multishell = _ENV.multishell
|
||||
local os = _G.os
|
||||
|
||||
local recTerm, oldTerm, arg, showInput, skipLast, lastDelay, curInput = {}, Util.shallowCopy(multishell.term), {...}, false, false, 2, ""
|
||||
local curBlink, oldBlink, tTerm, buffer, colourNum, xPos, yPos, oldXPos, oldYPos, tCol, bCol, xSize, ySize = false, false, {}, {}, {}, 1, 1, 1, 1, colours.white, colours.black, oldTerm.getSize()
|
||||
local greys, buttons = {["0"] = true, ["7"] = true, ["8"] = true, ["f"] = true}, {"l", "r", "m"}
|
||||
local charW, charH, chars, resp
|
||||
local filename
|
||||
|
||||
local calls = { }
|
||||
local curCalls = { delay = 0 }
|
||||
@@ -39,7 +41,7 @@ end
|
||||
|
||||
for i = #arg, 1, -1 do
|
||||
local curArg = arg[i]:lower()
|
||||
|
||||
|
||||
if curArg == "-i" then
|
||||
showInput, ySize = true, ySize + 1
|
||||
table.remove(arg, i)
|
||||
@@ -108,23 +110,23 @@ end
|
||||
|
||||
local function safeString(text)
|
||||
local newText = {}
|
||||
|
||||
|
||||
for i = 1, #text do
|
||||
local val = text:byte(i)
|
||||
newText[i] = (val > 31 and val < 127) and val or 63
|
||||
end
|
||||
|
||||
|
||||
return string.char(unpack(newText))
|
||||
end
|
||||
|
||||
local function safeCol(text, subst)
|
||||
local newText = {}
|
||||
|
||||
|
||||
for i = 1, #text do
|
||||
local val = text:sub(i, i)
|
||||
newText[i] = greys[val] and val or subst
|
||||
end
|
||||
|
||||
|
||||
return table.concat(newText)
|
||||
end
|
||||
|
||||
@@ -147,7 +149,7 @@ end
|
||||
|
||||
local tabId = multishell.getCurrent()
|
||||
|
||||
multishell.addHotkey('control-p', function()
|
||||
_G.device.keyboard.addHotkey('control-p', function()
|
||||
os.queueEvent('recorder_stop')
|
||||
end)
|
||||
|
||||
@@ -185,7 +187,7 @@ while true do
|
||||
end
|
||||
end
|
||||
|
||||
multishell.removeHotkey('control-p')
|
||||
_G.device.keyboard.removeHotkey('control-p')
|
||||
|
||||
for k,fn in pairs(oldTerm) do
|
||||
multishell.term[k] = fn
|
||||
@@ -206,18 +208,18 @@ print(string.format("Encoding %d frames...", #calls))
|
||||
|
||||
do
|
||||
local callListCount, tempCalls, blink, oldBlink, curBlink, blinkDelay = 1, {}, false, false, true, 0
|
||||
|
||||
|
||||
for i = 1, #calls - 1 do
|
||||
curCalls = calls[i]
|
||||
tempCalls[callListCount] = curCalls
|
||||
for j = 1, #curCalls do if curCalls[j][1] == "setCursorBlink" then blink = curCalls[j][2] end end
|
||||
|
||||
|
||||
if blink then
|
||||
if blinkDelay == 0 then
|
||||
curCalls[#curCalls + 1] = {"toggleCur", curBlink}
|
||||
blinkDelay, curBlink = 0.4, not curBlink
|
||||
end
|
||||
|
||||
|
||||
while tempCalls[callListCount].delay > blinkDelay do
|
||||
local remainder = tempCalls[callListCount].delay - blinkDelay
|
||||
tempCalls[callListCount].delay = blinkDelay
|
||||
@@ -225,19 +227,19 @@ do
|
||||
tempCalls[callListCount] = {{"toggleCur", curBlink}, ["delay"] = remainder}
|
||||
blinkDelay, curBlink = 0.4, not curBlink
|
||||
end
|
||||
|
||||
|
||||
blinkDelay = blinkDelay - tempCalls[callListCount].delay
|
||||
else
|
||||
if oldBlink then curCalls[#curCalls + 1] = {"toggleCur", false} end
|
||||
blinkDelay = (curCalls.delay - blinkDelay) % 0.4
|
||||
end
|
||||
|
||||
|
||||
callListCount, oldBlink = callListCount + 1, blink
|
||||
end
|
||||
|
||||
|
||||
tempCalls[callListCount] = calls[#calls]
|
||||
tempCalls[callListCount][#tempCalls[callListCount] + 1] = {"toggleCur", false}
|
||||
|
||||
|
||||
calls, curCalls = tempCalls, nil
|
||||
end
|
||||
|
||||
@@ -298,33 +300,33 @@ if showInput then for x = 1, xSize do buffer[ySize][x][3] = colourNum[colours.li
|
||||
|
||||
tTerm.blit = function(text, fgCol, bgCol)
|
||||
if xPos > xSize or xPos + #text - 1 < 1 or yPos < 1 or yPos > ySize then return end
|
||||
|
||||
|
||||
if not _HOST then text = safeString(text) end
|
||||
|
||||
|
||||
if not term.isColour() then
|
||||
fgCol = safeCol(fgCol, "0")
|
||||
bgCol = safeCol(bgCol, "f")
|
||||
end
|
||||
|
||||
|
||||
if xPos < 1 then
|
||||
text = text:sub(2 - xPos)
|
||||
fgCol = fgCol:sub(2 - xPos)
|
||||
bgCol = bgCol:sub(2 - xPos)
|
||||
xPos = 1
|
||||
end
|
||||
|
||||
|
||||
if xPos + #text - 1 > xSize then
|
||||
text = text:sub(1, xSize - xPos + 1)
|
||||
fgCol = fgCol:sub(1, xSize - xPos + 1)
|
||||
bgCol = bgCol:sub(1, xSize - xPos + 1)
|
||||
end
|
||||
|
||||
|
||||
for x = 1, #text do
|
||||
buffer[yPos][xPos + x - 1][1] = text:sub(x, x)
|
||||
buffer[yPos][xPos + x - 1][2] = fgCol:sub(x, x)
|
||||
buffer[yPos][xPos + x - 1][3] = bgCol:sub(x, x)
|
||||
end
|
||||
|
||||
|
||||
xPos = xPos + #text
|
||||
end
|
||||
|
||||
@@ -335,21 +337,21 @@ end
|
||||
|
||||
tTerm.clearLine = function()
|
||||
local oldXPos = xPos
|
||||
|
||||
|
||||
xPos = 1
|
||||
tTerm.write(string.rep(" ", xSize))
|
||||
|
||||
|
||||
xPos = oldXPos
|
||||
end
|
||||
|
||||
tTerm.clear = function()
|
||||
local oldXPos, oldYPos = xPos, yPos
|
||||
|
||||
|
||||
for y = 1, ySize do
|
||||
xPos, yPos = 1, y
|
||||
tTerm.write(string.rep(" ", xSize))
|
||||
end
|
||||
|
||||
|
||||
xPos, yPos = oldXPos, oldYPos
|
||||
end
|
||||
|
||||
@@ -376,7 +378,7 @@ end
|
||||
tTerm.scroll = function(lines)
|
||||
if math.abs(lines) < ySize then
|
||||
local oldXPos, oldYPos = xPos, yPos
|
||||
|
||||
|
||||
for y = 1, ySize do
|
||||
if y + lines > 0 and y + lines <= ySize then
|
||||
for x = 1, xSize do
|
||||
@@ -388,7 +390,7 @@ tTerm.scroll = function(lines)
|
||||
tTerm.clearLine()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
xPos, yPos = oldXPos, oldYPos
|
||||
else tTerm.clear() end
|
||||
end
|
||||
@@ -400,12 +402,12 @@ end
|
||||
tTerm.newInput = function(input)
|
||||
local oldTC, oldBC, oldX, oldY = tCol, bCol, xPos, yPos
|
||||
tCol, bCol, xPos, yPos, ySize, input = colours.grey, colours.lightGrey, 1, ySize + 1, ySize + 1, input .. " "
|
||||
|
||||
|
||||
while #curInput + #input + 1 > xSize do curInput = curInput:sub(curInput:find(" ") + 1) end
|
||||
curInput = curInput .. input .. " "
|
||||
tTerm.clearLine()
|
||||
tTerm.write(curInput)
|
||||
|
||||
|
||||
tCol, bCol, xPos, yPos, ySize = oldTC, oldBC, oldX, oldY, ySize - 1
|
||||
end
|
||||
|
||||
@@ -422,18 +424,18 @@ local image = {["width"] = xSize * charW, ["height"] = ySize * charH}
|
||||
for i = 1, #calls do
|
||||
local xMin, yMin, xMax, yMax, oldBuffer, curCalls, changed = xSize + 1, ySize + 1, 0, 0, {}, calls[i], false
|
||||
calls[i] = nil
|
||||
|
||||
|
||||
for y = 1, ySize do
|
||||
oldBuffer[y] = {}
|
||||
for x = 1, xSize do oldBuffer[y][x] = {buffer[y][x][1], buffer[y][x][2], buffer[y][x][3], buffer[y][x][4]} end
|
||||
end
|
||||
|
||||
|
||||
snooze()
|
||||
|
||||
|
||||
if showInput then ySize = ySize - 1 end
|
||||
for j = 1, #curCalls do if tTerm[curCalls[j][1]] then tTerm[curCalls[j][1]](unpack(curCalls[j], 2)) end end
|
||||
if showInput then ySize = ySize + 1 end
|
||||
|
||||
|
||||
if i > 1 then
|
||||
for yy = 1, ySize do for xx = 1, xSize do if buffer[yy][xx][1] ~= oldBuffer[yy][xx][1] or (buffer[yy][xx][2] ~= oldBuffer[yy][xx][2] and buffer[yy][xx][1] ~= " ") or buffer[yy][xx][3] ~= oldBuffer[yy][xx][3] then
|
||||
changed = true
|
||||
@@ -443,7 +445,7 @@ for i = 1, #calls do
|
||||
if yy > yMax then yMax = yy end
|
||||
end end end
|
||||
else xMin, yMin, xMax, yMax, changed = 1, 1, xSize, ySize, true end
|
||||
|
||||
|
||||
if oldBlink and (xPos ~= oldXPos or yPos ~= oldYPos or not curBlink) and oldXPos > 0 and oldYPos > 0 and oldXPos <= xSize and oldYPos <= ySize then
|
||||
changed = true
|
||||
if oldXPos < xMin then xMin = oldXPos end
|
||||
@@ -452,7 +454,7 @@ for i = 1, #calls do
|
||||
if oldYPos > yMax then yMax = oldYPos end
|
||||
buffer[oldYPos][oldXPos][4] = false
|
||||
end
|
||||
|
||||
|
||||
if curBlink and (xPos ~= oldXPos or yPos ~= oldYPos or not oldBlink) and xPos > 0 and yPos > 0 and xPos <= xSize and yPos <= ySize then
|
||||
changed = true
|
||||
if xPos < xMin then xMin = xPos end
|
||||
@@ -461,9 +463,9 @@ for i = 1, #calls do
|
||||
if yPos > yMax then yMax = yPos end
|
||||
buffer[yPos][xPos][4] = true
|
||||
end
|
||||
|
||||
|
||||
oldBlink, oldXPos, oldYPos = curBlink, xPos, yPos
|
||||
|
||||
|
||||
local thisFrame = {
|
||||
["xstart"] = (xMin - 1) * charW,
|
||||
["ystart"] = (yMin - 1) * charH,
|
||||
@@ -472,18 +474,18 @@ for i = 1, #calls do
|
||||
["delay"] = curCalls.delay,
|
||||
["disposal"] = 1
|
||||
}
|
||||
|
||||
|
||||
for y = 1, (yMax - yMin + 1) * charH do
|
||||
local row = {}
|
||||
for x = 1, (xMax - xMin + 1) * charW do row[x] = " " end
|
||||
thisFrame[y] = row
|
||||
end
|
||||
|
||||
|
||||
snooze()
|
||||
|
||||
|
||||
for yy = yMin, yMax do
|
||||
local yBump = (yy - yMin) * charH
|
||||
|
||||
|
||||
for xx = xMin, xMax do if buffer[yy][xx][1] ~= oldBuffer[yy][xx][1] or (buffer[yy][xx][2] ~= oldBuffer[yy][xx][2] and buffer[yy][xx][1] ~= " ") or buffer[yy][xx][3] ~= oldBuffer[yy][xx][3] or buffer[yy][xx][4] ~= oldBuffer[yy][xx][4] or i == 1 then
|
||||
local thisChar, thisT, thisB, xBump = chars[buffer[yy][xx][1]:byte()], buffer[yy][xx][2], buffer[yy][xx][3], (xx - xMin) * charW
|
||||
if thisChar then
|
||||
@@ -500,35 +502,35 @@ end
|
||||
for y = 1, charH do for x = 1, charW do if thisChar[y][x] then thisFrame[y + yBump][x + xBump] = thisT end end end
|
||||
end
|
||||
end end
|
||||
|
||||
|
||||
for y = yBump + 1, yBump + charH do
|
||||
local skip, chars, row = 0, {}, {}
|
||||
|
||||
|
||||
for x = 1, #thisFrame[y] do
|
||||
if thisFrame[y][x] == " " then
|
||||
if #chars > 0 then
|
||||
row[#row + 1] = table.concat(chars)
|
||||
chars = {}
|
||||
end
|
||||
|
||||
|
||||
skip = skip + 1
|
||||
else
|
||||
if skip > 0 then
|
||||
row[#row + 1] = skip
|
||||
skip = 0
|
||||
end
|
||||
|
||||
|
||||
chars[#chars + 1] = thisFrame[y][x]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if #chars > 0 then row[#row + 1] = table.concat(chars) end
|
||||
thisFrame[y] = row
|
||||
end
|
||||
|
||||
|
||||
snooze()
|
||||
end
|
||||
|
||||
|
||||
if changed then
|
||||
image[#image + 1] = thisFrame
|
||||
else
|
||||
|
||||
@@ -20,7 +20,7 @@ local changedPage = UI.Page {
|
||||
grid = UI.Grid {
|
||||
ey = -6,
|
||||
columns = {
|
||||
{ heading = 'Qty', key = 'count', width = 5 },
|
||||
{ heading = 'Qty', key = 'count', width = 6 },
|
||||
{ heading = 'Change', key = 'change', width = 6 },
|
||||
{ heading = 'Rate', key = 'rate', width = 6 },
|
||||
{ heading = 'Name', key = 'displayName' },
|
||||
@@ -64,6 +64,7 @@ function changedPage.grid:getDisplayValues(row)
|
||||
|
||||
row.change = ind .. Util.toBytes(row.change)
|
||||
row.count = Util.toBytes(row.count)
|
||||
row.rate = Util.toBytes(row.rate)
|
||||
|
||||
return row
|
||||
end
|
||||
|
||||
592
etc/names/appliedenergistics2.json
Normal file
592
etc/names/appliedenergistics2.json
Normal file
@@ -0,0 +1,592 @@
|
||||
{
|
||||
"smooth_sky_stone_block": {
|
||||
"name": "Sky Stone Block"
|
||||
},
|
||||
"fluix_block": {
|
||||
"name": "Fluix Block"
|
||||
},
|
||||
"charger": {
|
||||
"name": "Charger"
|
||||
},
|
||||
"network_tool": {
|
||||
"name": "Network Tool"
|
||||
},
|
||||
"wireless_terminal": {
|
||||
"name": [
|
||||
"Wireless Terminal"
|
||||
]
|
||||
},
|
||||
"certus_quartz_cutting_knife": {
|
||||
"name": "Certus Quartz Cutting Knife"
|
||||
},
|
||||
"storage_cell_16k": {
|
||||
"name": "16k ME Storage Cell"
|
||||
},
|
||||
"grindstone": {
|
||||
"name": "Quartz Grindstone"
|
||||
},
|
||||
"material": {
|
||||
"name": [
|
||||
"Certus Quartz Crystal",
|
||||
"Charged Certus Quartz Crystal",
|
||||
"Certus Quartz Dust",
|
||||
"Nether Quartz Dust",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Fluix Crystal",
|
||||
"Fluix Dust",
|
||||
"Fluix Pearl",
|
||||
"Pure Certus Quartz Crystal",
|
||||
"Pure Nether Quartz Crystal",
|
||||
"Pure Fluix Crystal",
|
||||
"Inscriber Calculation Press",
|
||||
"",
|
||||
"",
|
||||
"Printed Calculation Circuit",
|
||||
"Printed Engineering Circuit",
|
||||
"Printed Logic Circuit",
|
||||
"",
|
||||
"Printed Silicon",
|
||||
"",
|
||||
"Logic Processor",
|
||||
"Calculation Processor",
|
||||
"Engineering Processor",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Advanced Card",
|
||||
"",
|
||||
"Acceleration Card",
|
||||
"",
|
||||
"2³ Spatial Component",
|
||||
"16³ Spatial Component",
|
||||
"128³ Spatial Component",
|
||||
"1k ME Storage Component",
|
||||
"4k ME Storage Component",
|
||||
"16k ME Storage Component",
|
||||
"64k ME Storage Component",
|
||||
"ME Storage Housing",
|
||||
"",
|
||||
"Wireless Receiver",
|
||||
"Wireless Booster",
|
||||
"Formation Core",
|
||||
"Annihilation Core",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Blank Pattern"
|
||||
]
|
||||
},
|
||||
"controller": {
|
||||
"name": "ME Controller"
|
||||
},
|
||||
"quartz_glass": {
|
||||
"name": "Quartz Glass"
|
||||
},
|
||||
"quartz_growth_accelerator": {
|
||||
"name": "Crystal Growth Accelerator"
|
||||
},
|
||||
"energy_acceptor": {
|
||||
"name": "Energy Acceptor"
|
||||
},
|
||||
"part": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Glass Cable - Fluix",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Cable Anchor",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Quartz Fiber",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Illuminated Panel",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Storage Bus",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Annihilation Plane",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Pattern Terminal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Crafting Terminal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Terminal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ME Interface"
|
||||
]
|
||||
},
|
||||
"dense_energy_cell": {
|
||||
"name": "Dense Energy Cell"
|
||||
},
|
||||
"drive": {
|
||||
"name": "ME Drive"
|
||||
},
|
||||
"crafting_unit": {
|
||||
"name": "Crafting Unit"
|
||||
},
|
||||
"interface": {
|
||||
"name": "ME Interface"
|
||||
},
|
||||
"energy_cell": {
|
||||
"name": "Energy Cell"
|
||||
},
|
||||
"wireless_access_point": {
|
||||
"name": "ME Wireless Access Point"
|
||||
},
|
||||
"condenser": {
|
||||
"name": "Matter Condenser"
|
||||
},
|
||||
"nether_quartz_wrench": {
|
||||
"name": "Nether Quartz Wrench"
|
||||
},
|
||||
"crank": {
|
||||
"name": "Wooden Crank"
|
||||
},
|
||||
"molecular_assembler": {
|
||||
"name": "Molecular Assembler"
|
||||
},
|
||||
"chest": {
|
||||
"name": "ME Chest"
|
||||
},
|
||||
"security_station": {
|
||||
"name": "ME Security Terminal"
|
||||
},
|
||||
"sky_stone_block": {
|
||||
"name": "Sky Stone"
|
||||
},
|
||||
"crafting_storage_64k": {
|
||||
"name": "64k Crafting Storage"
|
||||
},
|
||||
"inscriber": {
|
||||
"name": "Inscriber"
|
||||
},
|
||||
"crystal_seed": {
|
||||
"name": [
|
||||
"Nether Quartz Seed"
|
||||
]
|
||||
}
|
||||
}
|
||||
20
etc/names/computercraft.json
Normal file
20
etc/names/computercraft.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"peripheral": {
|
||||
"name": [
|
||||
"Disk Drive",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Advanced Monitor"
|
||||
]
|
||||
},
|
||||
"advanced_modem": {
|
||||
"name": "Ender Modem"
|
||||
},
|
||||
"pocket_computer": {
|
||||
"name": [
|
||||
"",
|
||||
"Advanced Pocket Computer"
|
||||
]
|
||||
}
|
||||
}
|
||||
226
etc/names/enderio.json
Normal file
226
etc/names/enderio.json
Normal file
@@ -0,0 +1,226 @@
|
||||
{
|
||||
"blockSolarPanel": {
|
||||
"name": [
|
||||
"Photovoltaic Cell",
|
||||
"Advanced Photovoltaic Cell",
|
||||
"Vibrant Photovoltaic Cell"
|
||||
]
|
||||
},
|
||||
"blockFusedQuartz": {
|
||||
"name": [
|
||||
"Fused Quartz",
|
||||
"Quite Clear Glass",
|
||||
"Enlightened Fused Quartz",
|
||||
"",
|
||||
"Dark Fused Quartz",
|
||||
"Dark Clear Glass"
|
||||
]
|
||||
},
|
||||
"blockVacuumChest": {
|
||||
"name": [
|
||||
"Vacuum Chest"
|
||||
]
|
||||
},
|
||||
"itemExtractSpeedUpgrade": {
|
||||
"name": "Item Conduit Speed Upgrade"
|
||||
},
|
||||
"blockPainter": {
|
||||
"name": "Painting Machine"
|
||||
},
|
||||
"blockTransceiver": {
|
||||
"name": "Dimensional Transceiver"
|
||||
},
|
||||
"darkSteel_chestplate": {
|
||||
"name": "Dark Plate"
|
||||
},
|
||||
"blockSliceAndSplice": {
|
||||
"name": "Slice'N'Splice"
|
||||
},
|
||||
"itemConduitFacade": {
|
||||
"name": "Conduit Facade"
|
||||
},
|
||||
"itemBasicFilterUpgrade": {
|
||||
"name": [
|
||||
"Basic Item Filter",
|
||||
"Advanced Item Filter",
|
||||
"Counting Item Filter"
|
||||
]
|
||||
},
|
||||
"blockExperienceObelisk": {
|
||||
"name": "Experience Obelisk"
|
||||
},
|
||||
"itemLiquidConduit": {
|
||||
"name": [
|
||||
"Fluid Conduit",
|
||||
"Pressurized Fluid Conduit",
|
||||
"Ender Fluid Conduit"
|
||||
]
|
||||
},
|
||||
"blockFarmStation": {
|
||||
"name": "Farming Station"
|
||||
},
|
||||
"blockEndermanSkull": {
|
||||
"name": [
|
||||
"Enderman Head",
|
||||
"",
|
||||
"Tormented Enderman Head"
|
||||
]
|
||||
},
|
||||
"blockAlloySmelter": {
|
||||
"name": "Alloy Smelter"
|
||||
},
|
||||
"itemRedstoneConduit": {
|
||||
"name": "Redstone Conduit"
|
||||
},
|
||||
"itemPowerConduit": {
|
||||
"name": [
|
||||
"Energy Conduit",
|
||||
"Enhanced Energy Conduit",
|
||||
"Ender Energy Conduit"
|
||||
]
|
||||
},
|
||||
"itemTravelStaff": {
|
||||
"name": "Staff of Traveling"
|
||||
},
|
||||
"blockSagMill": {
|
||||
"name": [
|
||||
"SAG Mill (Configured)"
|
||||
]
|
||||
},
|
||||
"itemItemConduit": {
|
||||
"name": "Item Conduit"
|
||||
},
|
||||
"itemConduitProbe": {
|
||||
"name": "Conduit Probe"
|
||||
},
|
||||
"itemPowderIngot": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Enderium Base"
|
||||
]
|
||||
},
|
||||
"blockBuffer": {
|
||||
"name": [
|
||||
"Item Buffer"
|
||||
]
|
||||
},
|
||||
"blockPoweredSpawner": {
|
||||
"name": "Powered Spawner"
|
||||
},
|
||||
"itemBasicCapacitor": {
|
||||
"name": [
|
||||
"Basic Capacitor",
|
||||
"Double-Layer Capacitor",
|
||||
"Octadic Capacitor",
|
||||
"Modified Power Holding Device"
|
||||
]
|
||||
},
|
||||
"blockCapBank": {
|
||||
"name": [
|
||||
"",
|
||||
"Basic Capacitor Bank",
|
||||
"Capacitor Bank",
|
||||
"Vibrant Capacitor Bank"
|
||||
]
|
||||
},
|
||||
"blockTank": {
|
||||
"name": [
|
||||
"Fluid Tank (Configured)"
|
||||
]
|
||||
},
|
||||
"blockKillerJoe": {
|
||||
"name": [
|
||||
"Killer Joe"
|
||||
]
|
||||
},
|
||||
"blockWirelessCharger": {
|
||||
"name": "Wireless Charger"
|
||||
},
|
||||
"darkSteel_sword": {
|
||||
"name": [
|
||||
"The Ender"
|
||||
]
|
||||
},
|
||||
"blockVat": {
|
||||
"name": [
|
||||
"The Vat"
|
||||
]
|
||||
},
|
||||
"itemBrokenSpawner": {
|
||||
"name": "Broken Spawner"
|
||||
},
|
||||
"blockSoulBinder": {
|
||||
"name": "Soul Binder"
|
||||
},
|
||||
"itemMachinePart": {
|
||||
"name": [
|
||||
"Machine Chassis",
|
||||
"Basic Gear"
|
||||
]
|
||||
},
|
||||
"itemYetaWrench": {
|
||||
"name": "Yeta Wrench"
|
||||
},
|
||||
"itemAlloy": {
|
||||
"name": [
|
||||
"Electrical Steel",
|
||||
"Energetic Alloy",
|
||||
"Vibrant Alloy",
|
||||
"Redstone Alloy",
|
||||
"Conductive Iron",
|
||||
"Pulsating Iron",
|
||||
"Dark Steel",
|
||||
"Soularium"
|
||||
]
|
||||
},
|
||||
"itemXpTransfer": {
|
||||
"name": "Experience Rod"
|
||||
},
|
||||
"itemFrankenSkull": {
|
||||
"name": [
|
||||
"Zombie Electrode",
|
||||
"Z-Logic Controller",
|
||||
"Frank'N'Zombie",
|
||||
"Ender Resonator",
|
||||
"Sentient Ender",
|
||||
"Skeletal Contractor"
|
||||
]
|
||||
},
|
||||
"blockReservoir": {
|
||||
"name": "Reservoir"
|
||||
},
|
||||
"itemSoulVessel": {
|
||||
"name": [
|
||||
"Soul Vial",
|
||||
"Soul Vial"
|
||||
]
|
||||
},
|
||||
"itemMaterial": {
|
||||
"name": [
|
||||
"Silicon",
|
||||
"Conduit Binder",
|
||||
"Binder Composite",
|
||||
"Pulsating Iron Nugget",
|
||||
"Vibrant Alloy Nugget",
|
||||
"Pulsating Crystal",
|
||||
"Vibrant Crystal",
|
||||
"",
|
||||
"Ender Crystal",
|
||||
"Enticing Crystal",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Grains of the End",
|
||||
"",
|
||||
"Precient Crystal",
|
||||
"",
|
||||
"",
|
||||
"Plant clippings and trimmings"
|
||||
]
|
||||
}
|
||||
}
|
||||
35
etc/names/exnihiloadscensio.json
Normal file
35
etc/names/exnihiloadscensio.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"blockDust": {
|
||||
"name": "Dust"
|
||||
},
|
||||
"blockBarrel1": {
|
||||
"name": "Stone Barrel"
|
||||
},
|
||||
"hammerStone": {
|
||||
"name": "Stone Hammer"
|
||||
},
|
||||
"itemMaterial": {
|
||||
"name": [
|
||||
"",
|
||||
"Porcelain Clay",
|
||||
"Silkworm",
|
||||
"Ancient Spores",
|
||||
"Grass Seeds"
|
||||
]
|
||||
},
|
||||
"blockCrucible": {
|
||||
"name": [
|
||||
"Unfired Crucible",
|
||||
"Crucible"
|
||||
]
|
||||
},
|
||||
"itemMesh": {
|
||||
"name": [
|
||||
"",
|
||||
"String Mesh",
|
||||
"Flint Stiffened Mesh",
|
||||
"Iron Stiffened Mesh",
|
||||
"Diamond Stiffened Mesh"
|
||||
]
|
||||
},
|
||||
}
|
||||
70
etc/names/extrautils2.json
Normal file
70
etc/names/extrautils2.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"resonator": {
|
||||
"name": "Resonator"
|
||||
},
|
||||
"endershard": {
|
||||
"name": "Ender Shard"
|
||||
},
|
||||
"glasscutter": {
|
||||
"name": "Glass Cutter"
|
||||
},
|
||||
"decorativesolid": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"Polished Stone",
|
||||
"Stoneburnt"
|
||||
]
|
||||
},
|
||||
"passivegenerator": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Water Mill",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Manual Mill"
|
||||
]
|
||||
},
|
||||
"pipe": {
|
||||
"name": "Transfer Pipe"
|
||||
},
|
||||
"user": {
|
||||
"name": "Mechanical User"
|
||||
},
|
||||
"trashcan": {
|
||||
"name": "Trash Can"
|
||||
},
|
||||
"ingredients": {
|
||||
"name": [
|
||||
"Resonating Redstone Crystal",
|
||||
"Redstone Gear",
|
||||
"Eye of Redstone",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Upgrade Speed",
|
||||
"",
|
||||
"",
|
||||
"Upgrade Base",
|
||||
"Drop of Evil"
|
||||
]
|
||||
},
|
||||
"drum": {
|
||||
"name": [
|
||||
"",
|
||||
"Iron Drum"
|
||||
]
|
||||
},
|
||||
"grocket": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"Transfer Node (Fluids)",
|
||||
"",
|
||||
"Retrieval Node (Fluids)"
|
||||
]
|
||||
}
|
||||
}
|
||||
22
etc/names/ironchest.json
Normal file
22
etc/names/ironchest.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"goldDiamondUpgrade": {
|
||||
"name": "Gold to Diamond Chest Upgrade"
|
||||
},
|
||||
"BlockIronChest": {
|
||||
"name": [
|
||||
"Iron Chest",
|
||||
"Gold Chest",
|
||||
"Diamond Chest",
|
||||
"",
|
||||
"",
|
||||
"Crystal Chest",
|
||||
"Obsidian Chest"
|
||||
]
|
||||
},
|
||||
"woodIronUpgrade": {
|
||||
"name": "Wood to Iron Chest Upgrade"
|
||||
},
|
||||
"ironGoldUpgrade": {
|
||||
"name": "Iron to Gold Chest Upgrade"
|
||||
}
|
||||
}
|
||||
37
etc/names/rftools.json
Normal file
37
etc/names/rftools.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"crafter1": {
|
||||
"name": "Crafter Tier 1"
|
||||
},
|
||||
"modular_storage": {
|
||||
"name": "Modular Storage"
|
||||
},
|
||||
"crafter3": {
|
||||
"name": "Crafter Tier 3"
|
||||
},
|
||||
"machine_frame": {
|
||||
"name": "Machine Frame"
|
||||
},
|
||||
"storage_module": {
|
||||
"name": [
|
||||
"Storage Module Tier 1",
|
||||
"Storage Module Tier 2",
|
||||
"Storage Module Tier 3",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Remote Storage Module"
|
||||
]
|
||||
},
|
||||
"crafter2": {
|
||||
"name": "Crafter Tier 2"
|
||||
},
|
||||
"machine_base": {
|
||||
"name": "Machine Base"
|
||||
},
|
||||
"remote_storage": {
|
||||
"name": "Remote Storage"
|
||||
},
|
||||
"timer_block": {
|
||||
"name": "Timer"
|
||||
}
|
||||
}
|
||||
33
etc/names/storagedrawers.json
Normal file
33
etc/names/storagedrawers.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"compDrawers": {
|
||||
"name": "Compacting Drawer"
|
||||
},
|
||||
"upgradeTemplate": {
|
||||
"name": "Upgrade Template"
|
||||
},
|
||||
"controller": {
|
||||
"name": "Drawer Controller"
|
||||
},
|
||||
"basicDrawers": {
|
||||
"name": [
|
||||
"Basic Drawer",
|
||||
"",
|
||||
"Basic Drawers 2x2"
|
||||
]
|
||||
},
|
||||
"upgradeVoid": {
|
||||
"name": "Void Upgrade"
|
||||
},
|
||||
"upgradeStorage": {
|
||||
"name": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Storage Upgrade (V)"
|
||||
]
|
||||
},
|
||||
"controllerSlave": {
|
||||
"name": "Controller Slave"
|
||||
}
|
||||
}
|
||||
36
etc/names/tconstruct.json
Normal file
36
etc/names/tconstruct.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"materials": {
|
||||
"name": [
|
||||
"Seared Brick",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Necrotic Bone"
|
||||
]
|
||||
},
|
||||
"pattern": {
|
||||
"name": "Blank Pattern"
|
||||
},
|
||||
"cast": {
|
||||
"name": "Blank Cast"
|
||||
},
|
||||
"casting": {
|
||||
"name": "Casting Table"
|
||||
},
|
||||
"soil": {
|
||||
"name": "Grout"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,28 @@
|
||||
{
|
||||
[ "exnihiloadscensio:blockBarrel1:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:stone:0",
|
||||
[ 9 ] = "minecraft:stone:0",
|
||||
[ 10 ] = "minecraft:stone_slab:0",
|
||||
[ 11 ] = "minecraft:stone:0",
|
||||
[ 3 ] = "minecraft:stone:0",
|
||||
[ 5 ] = "minecraft:stone:0",
|
||||
[ 7 ] = "minecraft:stone:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "exnihiloadscensio:blockCrucible:0" ] = {
|
||||
ingredients = {
|
||||
"exnihiloadscensio:itemMaterial:1",
|
||||
[ 9 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
[ 10 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
[ 11 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
[ 3 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
[ 5 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
[ 7 ] = "exnihiloadscensio:itemMaterial:1",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "exnihiloadscensio:hammerStone:0" ] = {
|
||||
maxCount = 1,
|
||||
ingredients = {
|
||||
@@ -9,4 +33,11 @@
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "exnihiloadscensio:itemMaterial:1" ] = {
|
||||
ingredients = {
|
||||
"minecraft:dye:15",
|
||||
"minecraft:clay_ball:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
}
|
||||
@@ -1,9 +1,24 @@
|
||||
{
|
||||
[ "extrautils2:user:0" ] = {
|
||||
[ "extrautils2:decorativesolid:2" ] = {
|
||||
ingredients = {
|
||||
"minecraft:dropper:0",
|
||||
"extrautils2:ingredients:0",
|
||||
[ 5 ] = "minecraft:lever:0",
|
||||
"minecraft:stonebrick:0",
|
||||
"minecraft:stonebrick:0",
|
||||
[ 5 ] = "minecraft:stonebrick:0",
|
||||
[ 6 ] = "minecraft:stonebrick:0",
|
||||
},
|
||||
count = 4,
|
||||
},
|
||||
[ "extrautils2:drum:1" ] = {
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:heavy_weighted_pressure_plate:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:heavy_weighted_pressure_plate:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:cauldron:0",
|
||||
[ 7 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
@@ -18,4 +33,136 @@
|
||||
maxCount = 1,
|
||||
count = 8,
|
||||
},
|
||||
[ "extrautils2:grocket:2" ] = {
|
||||
ingredients = {
|
||||
"minecraft:redstone:0",
|
||||
"extrautils2:pipe:0",
|
||||
"minecraft:redstone:0",
|
||||
[ 5 ] = "minecraft:stone:0",
|
||||
[ 6 ] = "minecraft:bucket:0",
|
||||
[ 7 ] = "minecraft:stone:0",
|
||||
},
|
||||
count = 4,
|
||||
},
|
||||
[ "extrautils2:grocket:4" ] = {
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:ender_pearl:0",
|
||||
[ 2 ] = "minecraft:ender_pearl:0",
|
||||
[ 5 ] = "extrautils2:grocket:2",
|
||||
[ 6 ] = "minecraft:diamond:0",
|
||||
[ 7 ] = "extrautils2:grocket:2",
|
||||
},
|
||||
count = 2,
|
||||
},
|
||||
[ "extrautils2:ingredients:0" ] = {
|
||||
ingredients = {
|
||||
"extrautils2:endershard:0",
|
||||
"enderio:itemAlloy:3",
|
||||
"enderio:itemAlloy:3",
|
||||
[ 5 ] = "enderio:itemAlloy:3",
|
||||
[ 6 ] = "enderio:itemAlloy:3",
|
||||
[ 7 ] = "enderio:itemAlloy:3",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:ingredients:1" ] = {
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone_torch:0",
|
||||
[ 2 ] = "minecraft:redstone_torch:0",
|
||||
[ 5 ] = "minecraft:redstone_torch:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
[ 7 ] = "minecraft:redstone_torch:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:ingredients:6" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"extrautils2:ingredients:9",
|
||||
"minecraft:gold_ingot:0",
|
||||
[ 5 ] = "minecraft:redstone_block:0",
|
||||
},
|
||||
maxCount = 4,
|
||||
},
|
||||
[ "extrautils2:miner:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:dropper:0",
|
||||
"extrautils2:ingredients:0",
|
||||
[ 5 ] = "minecraft:iron_pickaxe:*",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:passivegenerator:3" ] = {
|
||||
ingredients = {
|
||||
"extrautils2:decorativesolid:3",
|
||||
"extrautils2:decorativesolid:3",
|
||||
"extrautils2:decorativesolid:3",
|
||||
[ 9 ] = "extrautils2:decorativesolid:3",
|
||||
[ 10 ] = "extrautils2:decorativesolid:3",
|
||||
[ 11 ] = "extrautils2:decorativesolid:3",
|
||||
[ 5 ] = "extrautils2:ingredients:1",
|
||||
[ 6 ] = "extrautils2:ingredients:0",
|
||||
[ 7 ] = "extrautils2:ingredients:1",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:passivegenerator:7" ] = {
|
||||
ingredients = {
|
||||
[ 7 ] = "extrautils2:decorativesolid:2",
|
||||
[ 2 ] = "extrautils2:ingredients:1",
|
||||
[ 5 ] = "extrautils2:decorativesolid:2",
|
||||
[ 6 ] = "extrautils2:ingredients:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:pipe:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:stone_slab:0",
|
||||
"minecraft:stone_slab:0",
|
||||
"minecraft:stone_slab:0",
|
||||
[ 9 ] = "minecraft:stone_slab:0",
|
||||
[ 10 ] = "minecraft:stone_slab:0",
|
||||
[ 11 ] = "minecraft:stone_slab:0",
|
||||
[ 5 ] = "minecraft:glass:0",
|
||||
[ 6 ] = "minecraft:redstone:0",
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
count = 64,
|
||||
},
|
||||
[ "extrautils2:resonator:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:redstone:0",
|
||||
"minecraft:coal_block:0",
|
||||
"minecraft:redstone:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "extrautils2:ingredients:0",
|
||||
[ 7 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:trashcan:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:stone:0",
|
||||
"minecraft:stone:0",
|
||||
"minecraft:stone:0",
|
||||
[ 9 ] = "minecraft:cobblestone:0",
|
||||
[ 10 ] = "minecraft:cobblestone:0",
|
||||
[ 11 ] = "minecraft:cobblestone:0",
|
||||
[ 5 ] = "minecraft:cobblestone:0",
|
||||
[ 6 ] = "minecraft:chest:0",
|
||||
[ 7 ] = "minecraft:cobblestone:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "extrautils2:user:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:dropper:0",
|
||||
"extrautils2:ingredients:0",
|
||||
[ 5 ] = "minecraft:lever:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
}
|
||||
114
etc/recipes/ironchest.db
Normal file
114
etc/recipes/ironchest.db
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
[ "ironchest:BlockIronChest:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:chest:0",
|
||||
[ 7 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:BlockIronChest:1" ] = {
|
||||
ingredients = {
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
[ 9 ] = "minecraft:gold_ingot:0",
|
||||
[ 10 ] = "minecraft:gold_ingot:0",
|
||||
[ 11 ] = "minecraft:gold_ingot:0",
|
||||
[ 5 ] = "minecraft:gold_ingot:0",
|
||||
[ 6 ] = "ironchest:BlockIronChest:0",
|
||||
[ 7 ] = "minecraft:gold_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:BlockIronChest:2" ] = {
|
||||
ingredients = {
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
[ 9 ] = "minecraft:glass:0",
|
||||
[ 10 ] = "minecraft:glass:0",
|
||||
[ 11 ] = "minecraft:glass:0",
|
||||
[ 5 ] = "minecraft:diamond:0",
|
||||
[ 6 ] = "ironchest:BlockIronChest:1",
|
||||
[ 7 ] = "minecraft:diamond:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:BlockIronChest:5" ] = {
|
||||
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 ] = "ironchest:BlockIronChest:2",
|
||||
[ 7 ] = "minecraft:glass:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:BlockIronChest:6" ] = {
|
||||
ingredients = {
|
||||
"minecraft:obsidian:0",
|
||||
"minecraft:obsidian:0",
|
||||
"minecraft:obsidian:0",
|
||||
[ 9 ] = "minecraft:obsidian:0",
|
||||
[ 10 ] = "minecraft:obsidian:0",
|
||||
[ 11 ] = "minecraft:obsidian:0",
|
||||
[ 5 ] = "minecraft:obsidian:0",
|
||||
[ 6 ] = "ironchest:BlockIronChest:2",
|
||||
[ 7 ] = "minecraft:obsidian:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:goldDiamondUpgrade:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
"minecraft:glass:0",
|
||||
[ 9 ] = "minecraft:glass:0",
|
||||
[ 10 ] = "minecraft:glass:0",
|
||||
[ 11 ] = "minecraft:glass:0",
|
||||
[ 5 ] = "minecraft:diamond:0",
|
||||
[ 6 ] = "minecraft:gold_ingot:0",
|
||||
[ 7 ] = "minecraft:diamond:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:ironGoldUpgrade:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
"minecraft:gold_ingot:0",
|
||||
[ 9 ] = "minecraft:gold_ingot:0",
|
||||
[ 10 ] = "minecraft:gold_ingot:0",
|
||||
[ 11 ] = "minecraft:gold_ingot:0",
|
||||
[ 5 ] = "minecraft:gold_ingot:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
[ 7 ] = "minecraft:gold_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "ironchest:woodIronUpgrade:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:iron_ingot:0",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:iron_ingot:0",
|
||||
[ 6 ] = "minecraft:planks:0",
|
||||
[ 7 ] = "minecraft:iron_ingot:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
}
|
||||
@@ -1,4 +1,20 @@
|
||||
{
|
||||
[ "minecraft:flint_and_steel:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
"minecraft:flint:0",
|
||||
"minecraft:iron_ingot:0",
|
||||
},
|
||||
maxCount = 1,
|
||||
},
|
||||
[ "minecraft:glass_bottle:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:glass:0",
|
||||
[ 6 ] = "minecraft:glass:0",
|
||||
[ 3 ] = "minecraft:glass:0",
|
||||
},
|
||||
count = 3,
|
||||
},
|
||||
[ "minecraft:writable_book:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:book:0",
|
||||
|
||||
126
etc/recipes/rftools.db
Normal file
126
etc/recipes/rftools.db
Normal file
@@ -0,0 +1,126 @@
|
||||
{
|
||||
[ "rftools:crafter1:0" ] = {
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone_torch:0",
|
||||
[ 2 ] = "minecraft:redstone_torch:0",
|
||||
[ 5 ] = "minecraft:crafting_table:0",
|
||||
[ 6 ] = "rftools:machine_frame:0",
|
||||
[ 7 ] = "minecraft:crafting_table:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:crafter2:0" ] = {
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone_torch:0",
|
||||
[ 2 ] = "minecraft:redstone_torch:0",
|
||||
[ 5 ] = "minecraft:crafting_table:0",
|
||||
[ 6 ] = "rftools:crafter1:0",
|
||||
[ 7 ] = "minecraft:crafting_table:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:crafter3:0" ] = {
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone_torch:0",
|
||||
[ 2 ] = "minecraft:redstone_torch:0",
|
||||
[ 5 ] = "minecraft:crafting_table:0",
|
||||
[ 6 ] = "rftools:crafter2:0",
|
||||
[ 7 ] = "minecraft:crafting_table:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:machine_frame:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:iron_ingot:0",
|
||||
"minecraft:dye:4",
|
||||
"minecraft:iron_ingot:0",
|
||||
[ 9 ] = "minecraft:iron_ingot:0",
|
||||
[ 10 ] = "minecraft:dye:4",
|
||||
[ 11 ] = "minecraft:iron_ingot:0",
|
||||
[ 5 ] = "minecraft:gold_nugget:0",
|
||||
[ 7 ] = "minecraft:gold_nugget:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:modular_storage:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:redstone:0",
|
||||
"minecraft:chest:0",
|
||||
"minecraft:redstone:0",
|
||||
[ 9 ] = "minecraft:redstone:0",
|
||||
[ 10 ] = "minecraft:quartz:0",
|
||||
[ 11 ] = "minecraft:redstone:0",
|
||||
[ 5 ] = "minecraft:quartz:0",
|
||||
[ 6 ] = "rftools:machine_frame:0",
|
||||
[ 7 ] = "minecraft:quartz:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:storage_module:2" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone_block:0",
|
||||
[ 11 ] = "minecraft:quartz_block:1",
|
||||
[ 2 ] = "minecraft:chest:0",
|
||||
[ 5 ] = "minecraft:gold_block:0",
|
||||
[ 6 ] = "rftools:storage_module:1",
|
||||
[ 7 ] = "minecraft:gold_block:0",
|
||||
[ 9 ] = "minecraft:quartz_block:1",
|
||||
},
|
||||
maxCount = 1,
|
||||
},
|
||||
[ "rftools:remote_storage:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:ender_pearl:0",
|
||||
"minecraft:chest:0",
|
||||
"minecraft:ender_pearl:0",
|
||||
[ 9 ] = "minecraft:ender_pearl:0",
|
||||
[ 10 ] = "minecraft:quartz:0",
|
||||
[ 11 ] = "minecraft:ender_pearl:0",
|
||||
[ 5 ] = "minecraft:quartz:0",
|
||||
[ 6 ] = "rftools:machine_frame:0",
|
||||
[ 7 ] = "minecraft:quartz:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "rftools:storage_module:0" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone:0",
|
||||
[ 11 ] = "minecraft:quartz:0",
|
||||
[ 2 ] = "minecraft:chest:0",
|
||||
[ 5 ] = "minecraft:gold_nugget:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
[ 7 ] = "minecraft:gold_nugget:0",
|
||||
[ 9 ] = "minecraft:quartz:0",
|
||||
},
|
||||
maxCount = 1,
|
||||
},
|
||||
[ "rftools:storage_module:1" ] = {
|
||||
count = 1,
|
||||
ingredients = {
|
||||
[ 10 ] = "minecraft:redstone:0",
|
||||
[ 11 ] = "minecraft:quartz:0",
|
||||
[ 2 ] = "minecraft:chest:0",
|
||||
[ 5 ] = "minecraft:gold_ingot:0",
|
||||
[ 6 ] = "rftools:storage_module:0",
|
||||
[ 7 ] = "minecraft:gold_ingot:0",
|
||||
[ 9 ] = "minecraft:quartz:0",
|
||||
},
|
||||
maxCount = 1,
|
||||
},
|
||||
[ "rftools:storage_module:6" ] = {
|
||||
ingredients = {
|
||||
"minecraft:ender_pearl:0",
|
||||
"minecraft:chest:0",
|
||||
"minecraft:ender_pearl:0",
|
||||
[ 9 ] = "minecraft:quartz:0",
|
||||
[ 10 ] = "minecraft:redstone:0",
|
||||
[ 11 ] = "minecraft:quartz:0",
|
||||
[ 5 ] = "minecraft:gold_nugget:0",
|
||||
[ 6 ] = "minecraft:iron_ingot:0",
|
||||
[ 7 ] = "minecraft:gold_nugget:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
}
|
||||
@@ -1,17 +1,19 @@
|
||||
{
|
||||
[ "storagedrawers:basicDrawers:0:b85f006d9f6aa0e06184f8931d4e85c1" ] = {
|
||||
[ "storagedrawers:upgradeStorage:4" ] = {
|
||||
ingredients = {
|
||||
"minecraft:planks:0",
|
||||
"minecraft:planks:0",
|
||||
"minecraft:planks:0",
|
||||
[ 9 ] = "minecraft:planks:0",
|
||||
[ 10 ] = "minecraft:planks:0",
|
||||
[ 11 ] = "minecraft:planks:0",
|
||||
[ 6 ] = "minecraft:chest:0",
|
||||
"minecraft:emerald:0",
|
||||
"minecraft:stick:0",
|
||||
"minecraft:emerald:0",
|
||||
[ 9 ] = "minecraft:emerald:0",
|
||||
[ 10 ] = "minecraft:stick:0",
|
||||
[ 11 ] = "minecraft:emerald:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "storagedrawers:upgradeTemplate:0",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
},
|
||||
count = 1,
|
||||
},
|
||||
[ "storagedrawers:upgradeTemplate:0" ] = {
|
||||
[ "storagedrawers:upgradeVoid:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:stick:0",
|
||||
"minecraft:stick:0",
|
||||
@@ -19,10 +21,10 @@
|
||||
[ 9 ] = "minecraft:stick:0",
|
||||
[ 10 ] = "minecraft:stick:0",
|
||||
[ 11 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:stick:0",
|
||||
[ 6 ] = "storagedrawers:basicDrawers:0:b85f006d9f6aa0e06184f8931d4e85c1",
|
||||
[ 7 ] = "minecraft:stick:0",
|
||||
[ 5 ] = "minecraft:obsidian:0",
|
||||
[ 6 ] = "storagedrawers:upgradeTemplate:0",
|
||||
[ 7 ] = "minecraft:obsidian:0",
|
||||
},
|
||||
count = 2,
|
||||
count = 1,
|
||||
},
|
||||
}
|
||||
@@ -19,4 +19,18 @@
|
||||
},
|
||||
count = 4,
|
||||
},
|
||||
[ "tconstruct:soil:0" ] = {
|
||||
ingredients = {
|
||||
"minecraft:gravel:0",
|
||||
"minecraft:sand:0",
|
||||
"minecraft:gravel:0",
|
||||
[ 9 ] = "minecraft:gravel:0",
|
||||
[ 10 ] = "minecraft:sand:0",
|
||||
[ 11 ] = "minecraft:gravel:0",
|
||||
[ 5 ] = "minecraft:sand:0",
|
||||
[ 6 ] = "minecraft:clay:0",
|
||||
[ 7 ] = "minecraft:sand:0",
|
||||
},
|
||||
count = 8,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user