• 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)
    • Lizzy Trickster

      README: FORUM DOWNTIME!   04/19/17

      These forums will be down from 2017-04-29 @ 1200 GMT for up-to 1 hour (1300 GMT). This is due to the host box needing a reboot to apply Kernel updates. I don't expect the update to take the full hour specified but I have allocated this timeframe in the event that stuff breaks.   Apologies for any inconvenience this causes

All Activity

This stream auto-updates   

  1. Today
  2. Hey my dudes, Im getting stuck on install. I downloaded it successfully (atleast it said i did) and im getting 50% through the installer when it stops and gives me "Failed to download br_grid_control" Thanks EDIT: I may not have read deep enough, but two tier 1 ram sticks didnt work. Swapped everything to teir 2 and it now works properly.
  3. Yesterday
  4. And with that last addition, everything is working perfectly! Thank you so much, Finger and Molinko! If anyone wants my set up for auto-harvesting Pam's Harvestcraft trees, including the prep and robot code, let me know. Until then, best of luck to you all!
  5. i cant run your beter preset bec the temperature load factor get really high and i have the chunk loaded so its no problem with that so idk what the problem can be any help ?
  6. I did get that, but I don't remember how I fixed it... Are you installing everything correctly??
  7. Since you have probably done arrays in your C/C++ tables can be explained like this: there are 2 types of tables, numerically indexed table which is like an array (except you start at array[1] rather than array[0]) and there is the hash table which contains 2 values, the key which is used to look up the value, this can be a a number, a string, any type except another table I think. Luckily for you getItemsInNetwork returns this type, so you can just loop from 1 to #essentiatable to get essentiatable. The itemstack values inside the array are hash tables though, you can think of them like structs/classes in C/C++ in this case. They have a specific format and the easiest way to find that format is just by doing what Fingercomp stated above: =component.me_controller.getItemsInNetwork()[1] I'm pretty sure it has a field named "name" so as an example if you wanted to check if the item is cobblestone then you'd do for i = 1,#essentiatable do local item = essentiatable[i] if item.name == "minecraft:cobblestone" then print(serialization.serialize(item) end end
  8. Does not work with me... Gives me "attempt to index local 'file' (a nil value)" error
  9. The Lua table can't be just printed -- you'll get the address of the table in memory. Fortunately, there's the serialization library that can serialize a table (convert it into a string). The function to use is serialization.serialize(tbl: table). Or serialization.serialize(tbl: table, math.huge) that will make the returned string way more readable. Before you can use the library in your script, you need to require() the library. local component = require("component") local serialization = require("serialization") print(serialization.serialize(component.me_controller.getItemsInNetwork(), math.huge)) But there's an easier way. In Lua interpreter (the lua program), you can put = into the beginning of the line to pretty-print the return value. Also the interpreter automatically require()'s all libraries, so you don't need to do it yourself. =component.me_controller.getItemsInNetwork()
  10. Ah, right. When robot returns to the start, it receives the redstone_changed event and immediately repeats the code. The fix is to consume this event before pulling -- this can be done with os.sleep(). while true do local e, addr, side, prev, current = event.pull("redstone_changed") if e and side == sides.back and prev == 0 then farmTrees() end os.sleep(0.25) end
  11. Forgive me if I'm making some obvious mistakes, but I've only just started playing with Lua about 6 hours ago. Had some C/C++ classes in college years ago, but still. I'm playing on a 1.7.10 single player world with OpenComputers (Feed The Beast Infinity with a couple extra mods on top). I use level emitters to turn on and off machines and processes in my base. Say, I need more of a particular Thaumcraft essentia (stored using Thaumic Energistics). The level emitter goes high, a machine starts up and produces the essentia until there is enough, then the emitter goes low again. Works great, but having all these level emitters around is driving me nuts and eating up valuable AE channels. So, I want to use a single computer with an Interface on a ME Controller and a Redstone I/O where it is needed to act as 8 to 16 (or more) level emitters. Sudo code follows. while stop=0 stop=redstone input (as soon as a redstone input is applied to the computer, break loop) essentiatable=getEssentiaInNetwork() extract data about essentiaType1 from essentiatable, write to variable Type1 if Type1>some value, then emit redstoneBundle0 true, otherwise redstoneBundle0 false extract data about essentiaType2 from essentiatable, write to variable Type2 if Type2>some value, then emit redstoneBundle1 true, otherwise redstoneBundle1 false ... extract data about essentiaType16 from essentiatable, write to variable Type16 if Type16>some value, then emit redstoneBundle15 true, otherwise redstoneBundle15 false close while loop, return to top My problem is I can't wrap my head around tables. I've tried executing print(component.me_controller.getItemsInNetwork()) a couple times on a static network (no items in or out), and get back a 16 digit string of 16 bit numbers. Each time I run it, I get back a slightly different number. I don't know how to decode it. I don't know how to extract the data I need from it. Because it is changing, even though the stacks of items in the network aren't, I can't quite be sure that it is even working correctly. So how do you turn a table into usable information? How do I make it readable? Is there a function that easily takes a table and cuts it down to just the relevant parts you want?
  12. Once again, Molinko, you're a lifesaver. The function works beautifully. I don't need it to be elegant or more condensed/complicated if it works exactly as intended, so you did wonderfully. As with all coding, the moment you think you have it all down perfectly, another bug shows up. This time, I think I'm just missing some kind of break. Right now, as soon as the robot gets a redstone signal, it'll run its farming operation. Which is fine, until it completes the operation. Instead of waiting for another redstone signal, it repeats the operation again, ignoring the signal or lack thereof. I ran a separate test trying out a "do return end" line, but that ended the program entirely, which I don't want. (A farm isn't helpful if it turns off until I manually restart it every time). Where would I need a break/return to get it back to looking for that signal, and how would it be coded? For reference, here's the code I have thus far, minus the manual pathing I put in to navigate the farm. local robot = require("robot") local sides = require("sides") local event = require("event") local component = require("component") local function forward(times) times = times or 1 local success, reason, moves = false, nil, 0 for move = 1, times do success, reason = robot.forward() if not success then break end moves = moves + 1 end end while true do local e, addr, side, prev, current = event.pull("redstone_changed") if e and side == sides.back and prev == 0 then robot.farmTrees -- # Here's where I've got a ton of manual guidance. Thanks for the random spawns, Pam -- # Right here is where I would think a break or return goes. end end Looking back, it may help to use the redstone card component to look for a signal after it's done farming... if it doesn't get any, then break the sequence. And if there is a signal, my tree farm is ready to be harvested anyway, so it'll get back to work. A simple test where the robot bounces up and down whenever it reads a signal of 1 (after Super Circuit Maker subtracts 14 from a lever's signal) confirmed that I can make it work whenever it gets a signal. The robot stopped bouncing when I flipped the lever off, dropping the signal to 0. After I get some sleep tonight, I'll try replacing the event.pull("redstone_changed") group with the code I came up with and see if I break anything. I'll leave the code for my redstone test here in case anyone from outside my timezone can help an amateur like myself out. local component = require("component") local sides = require("sides") local robot = require("robot") while true do if component.redstone.getInput(sides.back) == 1 then robot.up() robot.down() end end -- # Lever on, robot bounces like a ball. Lever off, robot stops on the floor. -- # Though for some reason Ctrl+Alt+C won't kill the command, so I have to shut down the bot to stop the .lua from running. I'll look into how the redstone card works again, but I would appreciate any help figuring out how to break out of the loop without shutting the program down entirely.
  13. What you're looking for is a function. Specifically a 'for' or while loop in a function. Here is a crude one of the former that 'could' be made way better (features n stuff)... local robot = require 'robot' local function forward( times ) times = times or 1 local success, reason, moves = false, nil, 0 for move = 1, times do success, reason = robot.forward() if not success then break end moves = moves + 1 end return success, moves, reason end -- # USAGE -- # Let's say we're moving 3 forward, on a clear path. forward( 3 ) -- # // true, 3, nil (success, moves, reasonForFailure) -- # Now we try another 3 with and obstruction 2 blocks ahead of the robot. forward( 3 ) -- # // false, 1, "path obstructed... or something like this that component.robot.move(side) returns when it fails"
  14. Last week
  15. Extra cells worked like a charm: use storage busses on turbines, use interfaces on reactors -> DONE (other way around for water)
  16. Already checked it out. Hopped into creative, set up a reactor with your program and promptly blew it up. I assume I set something wrong, but I couldn't be bothered with the risk so stuck with BR (or Extreme Reactors as it now is). Hmm.... That's a real shame. I'll give it a shot though. What about a storage bus on a Demonicly Gargantuan Drum and... Oh wait, I'd need ExtraCells 2 for that. Where are all the mods at!? Devs?
  17. Yes - back in the middle of the 1.7.10 lifespan, AE2 Fluid P2P were utterly broken - as long as the output side accepted SOME fluid, the input side took in EVERYTHING it could, destroying the difference in the process. This is going to throw off the controller. You CAN try it but i somehow doubt this has been fixed. Phantom Faces are propably your best bet.
  18. Btw - since you're going for an absurd amount of power generation - may i shamelessly advertise my draconic evolution reactor control program? https://tenyx.de/draconic_control/
  19. No problem. Another question... I saw Refined Storage causing issues before with transferring steam. Have you had any experience of ME system P2P tunnels and turbines? I always used to use tesseracts but until ThermalDynamics is done, I can't. There are other options but P2P would be nicest for me if it's capable.
  20. ...interesting.... thanks^^
  21. Cool. I'll probably aim for ~50B/t but then use 20 turbines per reactor (depending on setup difficulty). Server restarts: well that's interesting. I disconnected from the server, then went to the server console and typed "save-all" and then "stop", as I always do. I waiting 5-10 seconds and then launched it again. Connected and the computer was still on. FTB Beyond 1.5.2 with FastLeafDecay, VeinMiner and MachineMuse's Modular Powersuits added - though I don't see how they would affect it.
  22. You should avoid aiming for 50B/t and go for 40B/t - 45B/t instead because you'll be unable to maintain this 50B/t without overshooting. The controller is also going to have trouble with that tbh. Of course, aiming maximum efficiency is always better. Either way SHOULD work though as long as you give it a little headroom.
  23. Sure. I'll just test and get back to you. I imagine it will though. I left it all running last night. Just got home from work and hopped on with the computer off and needing re-calibrating. That's what prompted me to ask. Another quick question: When building an active reactor, should I build it to be most efficient at 50B/t or just able to keep up at 50B/t?
  24. Ah ok - those configs If you are playing on a FTB Beyond server, can you do me a favor? I currently have an issue where computers are turned off after a server restart. If you happen to observe this, can you tell me? I want to make sure its not just my server/setup whatever before I ... rant about that bug >_>
  25. Prepare to be disappointed... general ( # A multiplier for balancing fuel consumption. Default: 1.0 D:fuelUsageMultiplier=16.0 And this... reactor { # The maximum valid size of a reactor in the Y dimension, in blocks. Lower this if your server's players are building ginormous reactors. Bigger Y sizes have far less performance impact than X/Z sizes I:maxReactorHeight=128 # The maximum valid size of a reactor in the X/Z plane, in blocks. Lower this if your server's players are building ginormous reactors I:maxReactorSize=63 # A multiplier for balancing reactor power production. Stacks with powerProductionMultiplier. Default: 1.0 D:reactorPowerProductionMultiplier=4.0 } It's basically so that I can build mahoosive reactors until I get to the point that I actually can be bothered to work on building 20+ turbines. Going to play with RFTools Builder or perhaps go the old-fashioned route and use MFFS since that's in FTB Beyond. That's assuming you can still build things that way.
  26. Well... mods work different on a server than in single player. I can think of a few reasons why the results vary, but I have no explanation for why they do on a server and don't in single player though. The recalibration issue is going to be fixed with the next release btw. I'm also curious on what configs you tweaked. If you modified the polynomials by hand I'm going to be impressed
  27. Odd thing I've noticed... I had my world on single player for a long time and the computer was reset a few times (chunk loading issues, I assume) causing it to re-calibrate. Every single time, my reactor would output almost exactly 550kRF/t every single time (on PWM). I have tweaked the configs slightly - it's not that big of a reactor. I've since moved the world to my server to take the strain off of the client and every time it happens now, I get a different result. Initially, it carried on the same. Then it started running at 590kRF/t. Next time, it is only showing 540kRF/t. Any idea what's causing the huge variances? I would have thought tick-rate, but surely the tick rate on my SP save would have been worse - or at least more erratic - than when it's run on the server?
  28. Glad to hear you fixed it
  1. Load more activity