openOS command line programs
This commit is contained in:
78
oc/3dprint.lua
Normal file
78
oc/3dprint.lua
Normal file
@@ -0,0 +1,78 @@
|
||||
local printer = peripheral.find "printer3d"
|
||||
|
||||
local args = {...}
|
||||
if #args < 1 then
|
||||
error("Usage: print3d FILE [count]\n")
|
||||
|
||||
end
|
||||
|
||||
if args[1] == "reset" then printer.reset() end
|
||||
|
||||
local count = 1
|
||||
if #args > 1 then
|
||||
count = assert(tonumber(args[2]), tostring(args[2]) .. " is not a valid count")
|
||||
end
|
||||
|
||||
local file = fs.open(args[1], "r")
|
||||
if not file then
|
||||
error("Failed opening file\n")
|
||||
return 1
|
||||
end
|
||||
|
||||
local rawdata = file.readAll()
|
||||
file.close()
|
||||
local data, reason = loadstring("return " .. rawdata)
|
||||
if not data then
|
||||
error("Failed loading model: " .. reason .. "\n")
|
||||
return 2
|
||||
end
|
||||
data = data()
|
||||
|
||||
io.write("Configuring...\n")
|
||||
|
||||
printer.reset()
|
||||
if data.label then
|
||||
printer.setLabel(data.label)
|
||||
end
|
||||
if data.tooltip then
|
||||
printer.setTooltip(data.tooltip)
|
||||
end
|
||||
if data.lightLevel and printer.setLightLevel then -- as of OC 1.5.7
|
||||
printer.setLightLevel(data.lightLevel)
|
||||
end
|
||||
if data.emitRedstone then
|
||||
printer.setRedstoneEmitter(data.emitRedstone)
|
||||
end
|
||||
if data.buttonMode then
|
||||
printer.setButtonMode(data.buttonMode)
|
||||
end
|
||||
if data.collidable and printer.setCollidable then
|
||||
printer.setCollidable(not not data.collidable[1], not not data.collidable[2])
|
||||
end
|
||||
for i, shape in ipairs(data.shapes or {}) do
|
||||
local result, reason = printer.addShape(shape[1], shape[2], shape[3], shape[4], shape[5], shape[6], shape.texture, shape.state, shape.tint)
|
||||
if not result then
|
||||
io.write("Failed adding shape: " .. tostring(reason) .. "\n")
|
||||
end
|
||||
end
|
||||
|
||||
io.write("Label: '" .. (printer.getLabel() or "not set") .. "'\n")
|
||||
io.write("Tooltip: '" .. (printer.getTooltip() or "not set") .. "'\n")
|
||||
if printer.getLightLevel then -- as of OC 1.5.7
|
||||
io.write("Light level: " .. printer.getLightLevel() .. "\n")
|
||||
end
|
||||
io.write("Redstone level: " .. select(2, printer.isRedstoneEmitter()) .. "\n")
|
||||
io.write("Button mode: " .. tostring(printer.isButtonMode()) .. "\n")
|
||||
if printer.isCollidable then -- as of OC 1.5.something
|
||||
io.write("Collidable: " .. tostring(select(1, printer.isCollidable())) .. "/" .. tostring(select(2, printer.isCollidable())) .. "\n")
|
||||
end
|
||||
io.write("Shapes: " .. printer.getShapeCount() .. " inactive, " .. select(2, printer.getShapeCount()) .. " active\n")
|
||||
|
||||
local result, reason = printer.commit(count)
|
||||
if result then
|
||||
io.write("Job successfully committed!\n")
|
||||
print('Printed!')
|
||||
os.sleep(3)
|
||||
else
|
||||
error("Failed committing job: " .. tostring(reason) .. "\n")
|
||||
end
|
||||
20
oc/sample/sample.3dm
Normal file
20
oc/sample/sample.3dm
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
label = "Basic Ceiling Lamp Prototype",
|
||||
tooltip = "§7Herb's Basic Ceiling Lamp Prototype.",
|
||||
lightlevel=8,
|
||||
shapes={
|
||||
|
||||
{7,10,7,9,15,9,texture="log_spruce"},
|
||||
{6,15,6,10,16,10,texture="iron_block"},
|
||||
{2,9,2,14,10,14,texture="wool_colored_red"},
|
||||
|
||||
{2,7,13,14,10,14,texture="wool_colored_red"},
|
||||
{2,7,2,14,10,3,texture="wool_colored_red"},
|
||||
|
||||
{2,7,3,3,10,14,texture="wool_colored_red"},
|
||||
{13,7,3,14,10,14,texture="wool_colored_red"},
|
||||
|
||||
{3,8,3,13,9,13,texture="glowstone"},
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user