• Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Welcome to OpenComputers

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more!

This message will be removed once you have signed in.

  • Announcements

    • Lizzy Trickster

      Latest Stable OpenComputers Version   11/26/16

      The latest released version of OpenComputers is version 1.6.1 for MC 1.7.10, 1.8.9, 1.9.4 & 1.10.2. See more information here! Beta/Dev builds can be found at the Jenkins Build Server (ci.cil.li)

Molinko

Members
  • Content count

    162
  • Joined

  • Last visited

  • Days Won

    15

1 Follower

About Molinko

  • Rank
    Leading Member

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

299 profile views
  1. request

    ^this guy. He dunnit...
  2. Check out THIS. Everything under "What's available" is.... available to a microcontroller. It's basically the default lua environment plus the computer, component, and the unicode library. Also be aware that OpenOS appends to those default libraries so not all of what your used to in say the component library is available. i.e no component.isAvailable or component.get.
  3. request

    On vacation.. But I'll pump something out by tonight or tomorrow morning for you guys. Thanks for being patient
  4. You must have a cable connecting all screens to a computer or server. Also, OpenOS has a small issue when booting with multiple screens, it can't seem to decide which one is the main one all the time. You will also need to write code that will draw to each screen. Hope this helps
  5. local component = require "component" local modem = component.modem -- # our majestic default... local default_value = 42 -- # dont forget to open our ports... modem.open(12345) -- # response is a table of either nothing after two seconds, or a modem message. local response = table.pack(event.pull(2, "modem_message")) -- # wait 2 seconds for a modem message event -- # Done waiting.. If we got a message, assign the first user sent parameter to it. This is always a string! if response[1] == "modem_message" and response[5] ~= nil then default_value = response[5] -- # The fifth, or greater, parameters hold user set values end Hope this is clear enough to get you started
  6. Wasn't sure where or if I can get some TIS-3D help on these forums?? I'm pretty new to actually working with binary and hex and could use some help understanding the Bundled redstone modules specification. From what I gather the high byte is the channel to write to and the low byte is the value to be written. The exception being writing 0xFF as the high byte for setting the 'active' channel and the low byte being the channel to set. So... Ill try to describe my issue. stack - exec | bRedstone (stack on the left, exec module right of stack, bundled rs below exec module) #CODE MOV 0xFF00, DOWN MOV DOWN, LEFT JRO 0 #HALT FOR INSPECTION OF STACK All I see is a zero.. Mind you, I have a bundled cable leading to the module and an active lever on a white wire on said bundle.. I guess Im expecting a read of the white wire, hence the mov 0xFF00 setting the active channel to white(00). I expect to see something like either and 'F' or '255' or maybe a '0xFF' as in '0x00FF' or 255.. What gives? Thanks in advance
  7. I just woke up... No problemo
  8. I wanted to fix a small thing. Before, your program would tick every second with event.pull(1, "key_up"), currently with the code i suggested it will not. try this edit for one that update the batbox info every second.. local function main() local time = 0 local info = [[ CESU Power Levels and Controls Energy Stored : %s CESU Capacity : %s Press Enter to toggle reactor. Press Back to return to OpenOS. ]] while true do term.setCursor(1, 1) print( info:format(batbox.getStored(), batbox.getCapacity()) ) local e = table.pack(event.pull(1)) -- # resumes at least every second or on any event if e[1] == "key_up" and e[4] == keyboard.keys.enter then toggleBox() elseif e[1] == "interrupted"--[[soft interrupt]] or e[1] == "key_up" and e[4] == keyboard.keys.back then break end end term.clear() -- clean up after program. end
  9. Apparently Ctrl-C is a soft interrupt and must be pulled specifically. Also I fucked up the draw order in the first example, because of no testing....
  10. Sorry for the delay... Yeah, my first example was shit.. Im sorry for that. I've made another (tested) version. local component = require("component") local term = require("term") local side = require("sides") local keyboard = require("keyboard") local event = require("event") local rs = component.redstone local batbox = component.cesu local board = component.keyboard function toggleBox() -- # this was wonky aswell i think. rs usually goes 0 - 15 or maybe RP channels 0 - 255 ?? if rs.getOutput(side.left) > 0 then rs.setOutput(side.left, 0) else rs.setOutput(side.left, 15) end end local function main() local info = [[ CESU Power Levels and Controls Energy Stored : %s CESU Capacity : %s Press Enter to toggle reactor. Press Back to return to OpenOS. ]] while true do term.setCursor(1, 1) print( info:format(batbox.getStored(), batbox.getCapacity()) ) local e = {event.pullMultiple("key_up", "interrupted")} if e[1] == "key_up" and e[4] == keyboard.keys.enter then toggleBox() elseif e[1] == "interrupted" or e[1] == "key_up" and e[4] == keyboard.keys.back then break end end term.clear() -- # clean up after program. end term.clear() -- # clear screen before start. main() Sorry for the shit starting advice
  11. From what I can see, when the backspace is hit the program should just end (i.e breaking or ending the 'main loop'). The enter key should update the state of the box or (toggle it :p). The loop i made from your code will 1. draw the screen for initialization. 2. wait 1 second and refresh or receive a key up event. 3. depending on the event, toggleBox or set running to false. 4. in the until clause we check if the event was a terminated event (if the user pressed ctrl+C) to terminate the program. Either 'back' or the terminate event will break the loop and leave the main function thus ending the program. I hope I was clear... If not... Ask away
  12. The code looks great.. One problem stands out and that is that your keyChecker coroutine isn't being run. Also, Your main function and the keyCheck function both have a loop that will block one another if keyChecker is run within main. Try this solution out. I believe its what you're going for.... function main() local running = true local e = nil repeat -- Get the tank information, results are in table format local tInfo = batbox local cap = tonumber(batbox.getCapacity()) local fill = tonumber(batbox.getStored()) -- Output as you want... a very simple way: print("CESU Power Levels and Controls") print("Energy Stored : "..fill) print("CESU Capacity : "..cap) print("\n Press Enter to toggle reactor.") print("Press Back to return to OpenOS.") term.setCursor(1,1) e = event.pull(1, "key_up") if e == "key_up" then toggleBox() elseif e == "back" then running = false end until not running or e == "terminated" end
  13. You're very welcome . If you find the opencomputers config settings and change 'bufferChanges=true' to 'bufferChanges=false', you won't have to close minecraft every time you want to access a computers filesystem outside of MC.
  14. /../Curse/Minecraft/Instances/Custom pack/saves/Alleron Next/opencomputers/d81d5515-0d52-466a-ac35-a5d8e3ba3b7e (<- example filesystem address) **32-bit UUID is the address of the in game filesystem(computer drive) you want to save on.
  15. You are correct. I thought for some reason that was an example you inserted to say ...this model... The 'answer' var is a string returned from either term.read() or io.read() (excuse my first advice. term.read is probably better...). The line you're looking for is this.. os.execute("print3d /usr/share/models/" .. answer .. ".3dm") -- # string concatenation -- # OR os.execute(table.concat({"print3d ", "/usr/share/models/", answer, ".3dm"})) -- # Using table.concat({...})