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

Leaderboard


Popular Content

Showing content with the highest reputation since 12/17/16 in all areas

  1. Krutoy242

    MagicaVoxel .vox converter for print3d

    Sorry for my English, im just Russian. http://codepen.io/Krutoy242/full/xGOgJG/ This converter allows you to open .vox files from awesome MagicaVoxel program and convert them to format for print3d program. Usage Download and open MagicaVoxel. Make model of your dreams. Save it. Open file in my converter written on JavaScript, and it will instantly generate chunks from model and show result, ready to copy-past in OC file for printing. Converter have options: Split to states will split your model in two by X coordinate (to right), if it will be more then 16 voxels length, and will make second state from this model. Use this to make two-stated prints, like buttons of trapdoors. Label, tooltip, redstone, button mode and light level just add this fields to model. You can determine textures and tint colors in table for each color, used in MagicaVoxel. Program slightly optimized, but sometime human brain can make model with 2-3 less chunks. Result in minecraft: Please, write here if you want some additional features or if you found bugs.
    1 Points
  2. terraria2512

    [1.10.2] [WIP] OC Hard Light

    funfact the wii has the same gpu as the gamecube
    1 Points
  3. Fingercomp

    Best way to autorun a program on boot?

    Creating a script in /boot is a poor idea unless the program must be run only when computer starts. Boot scripts are intended to initialize the system. Using /home/.shrc is preferred (this will run the program each time the shell boots, though). @novotd00 I'd just put resolution <x> <y> to /home/.shrc. That's much better than adding code to a file with a completely different purpose (in your case the purpose is to initialize the rc system). By the way, payonel listed the ways to make a program run automatically here.
    1 Points
  4. wylderhoads1809

    Help with Computronics chatbox

    A: I honestly don't know how to use event.listen. I messed around with it some but couldn't figure it out. B: That's the whole program and it still prints all the text from the picture anytime it pulls the event.
    1 Points
  5. Molinko

    Help with Computronics chatbox

    A. Have you called event.listen with a handler that prints in a previous program or the lua prompt?? B. Can I see your code for the program if your problem doesn't extend from A?
    1 Points
  6. XyFreak

    Big Reactors Grid Control

    WARNING! This post is long and contains math! Continue at your own risk! There's also a TL;DR! Once upon a time, XyFreak tried to came up with ideas how to predict the energy/steam output of a Big Reactor. His test reactor was a small 7x7x2 reactor. He played around with some settings and thought "cool! If I pull out the rods by 10, the output goes up by roughly 10%. There HAS to be a linear correlation!". Not knowing what he's doing, he just went on and wrote some code for his Big Reactors Grid Control program. In his attempts to make BRGC work out of the box, he came up with a way to figure out the sweet spot of passive reactors. He knew that with really unbalanced reactors the algorithm may have some issues but...who uses unbalanced reactors anyways, right? His ideas seemed to work perfectly. He and his friends used his program with many different actively cooled generators and everything worked as intended. Time passed, Minecraft 1.7.10 was nearing the end of its lifespan. Minecraft 1.10.2 emerged! Suddenly, "Gelid Cryotheum" was gone! Reactors have become a lot less balanced and many people emerged that found actively cooled reactors to be a hassle. But there was a problem: For some reason, less balanced reactors didn't quite work as intended. "Yeah right... I'm an idiot.", XyFreak thought. His past lazyness came to bite him in the a**. He opened up his Visual Studio Code (Use it! It's great!) and started reworking his algorithm. But something was not right. For some reason, all his attempts to improve the algorithm failed! Either the controller undershoots the power target or overshoots it by... a lot. He looked at the calibration data of his (now bigger) test reactor and saw a value twice as large as it should've been (again, http://br.sidoh.org is your friend). And this is where the tale of advanced mathematics begins for real. And this is also where I stop writing in story telling mode So, I told you above that I assumed the reactors output (be it energy or steam) to be linear in regards to the rod level. Well... for actively cooled reactors this is true (or at least a near perfect approximation). And since I mostly used actively cooled reactors (both in my real playthroughs and my test worlds) everything worked fine. And since my passive test reactor was so small and well balanced, it worked there as well. Now.... look at this image here: This graph shows the energy output plotted against the (inverse) rod level. Doesn't look linear, does it? It's not linear at all! I assumed the energy production to be linear, but the fuel consumption would go up dramaticaly as heat increases. Turns out it is the other way around! (Stupid me!) Fuel consumption is linear with rod level but energy production decreases greatly as heat increases. So... if it's not linear, what is it? Well... a polynomial 3rd degree seems to fit extremely well. But how do you get such a polynomial? "Heh! Easy! We did this at high school!" you may think and that's what I thought as well. <MATH WARNING!> If you have N samples for x and f(x) you can easily create a polynomial of degree N-1. There're a couple of different methods to do it. Now.. I don't have 4 samples, I have 17! "Easy! Just leave out some!". Yeah right.... I tried that and all polynomials sucked. Also, the polynomial libreoffice calculated seemed to fit perfectly. I wanna do that too! After a while it struck me: It's a linear optimization problem (Of course it is! But it's been a while since I last worked with those, sorry.) So...how to solve it?... ... ... QR decomposition... Great! Now I'll have to do linear algebra in lua. I always wanted to avoid using advanced math in brgc and now I have to work with matrices... great! So...what do I need first? Right... matrices in lua. So I wrote a small library to work with matrices and the operations (and only those) I'm going to need to get QR decomposition working. Next up? QR decomposition! But how does it work again? It's been a while since I last did something with that (at least 4 years). Fortunately, Google is your friend (I'll append the links to the end of this post in case you're interested). After 4 hours of implementation and debugging, everything worked. Well that was easy...not. Next up: We're going to have to work with polynomials. So we need a library for that as well, right? 10 Minutes later: done. I fed everything with my sample reactor values aaaaand....perfect! Now...we got a nice way to interpolate functions. Maybe we can use it for the optimization as well? Let's see... Let the reactors efficiency denoted by E(p) = O(p) / C(p) Where p is the percentage of the inverted rod insertion level, O(p) is a function that gives us the energy generation for rod level p and C(p) gives us the fuel _c_onsumption for rod level p. O(p) is a polynomial of degree 3 and C(p) is of form C(p) = a * p. So we just devide two polynomials, right? How bad can it be. I'll spare you the details, it's not worth it. The result is NOT a polynomial (well duh!). BUT! Turns out we can use polynomial interpolation if we feed the interpolator the rod level and the efficiency values as samples (we already got those from the calibration). Now we have a polynomial that describes the reactors efficiency! (We want to figure out the peak of that little mountaint) For optimization purposes we're interested in the local maxima of that polynomial between 0 and 1 (0 = reactor off, 1 = reactor max). Thankfully, this is easy! Thanks to the QR decomposition, the numerical calulus lecture was still on my mind and we did that stuff as well. And when I'm saying "easy" I mean it. Take this code: function polynomial.converge(polynomial, x, iterations) local df1 = polynomial:derivate() local df2 = df1:derivate() local dx = 0 - df1:eval(x) / df2:eval(x) for i=1, iterations do x = x - df1:eval(x) / df2:eval(x) end return x end That's the code. Here's some background, if you like: https://en.wikipedia.org/wiki/Newton%27s_method_in_optimization DONE! Does everything work? Hell yes it does! This time I tested it with multiple designs and on 1.7.10 and 1.10.2. TL;DR XyFreak assumed stuff about reactors that's complete bullshit. It never came to light because his testing sucked. Magic (math) happened. Stuff now works perfectly fine. Optimization-mode is gone. Everything is awesome. Also: I'd like to mention that I've now officially used more university knowledge to develop Big Reactors Grid Control than I've ever used in my day job. So kids...keep this in mind: Pay attention in school! You may not need it in real life. But you may need it in Minecraft someday! If you read everything, thanks for staying with me -XyFreak QR decomposition links (german) http://www.math.uni-frankfurt.de/~numerik/lehre/Seminare/ProSem_MA_SS11/qrzerlegung.pdf http://numerik.uni-hd.de/~lehre/SS12/numerik0/12-la-5.pdf http://www.mathematik.uni-muenchen.de/~lerdos/SS08/Num/trans4.pdf
    1 Points
  7. I can't get the adapter to give me any AE component. I'm just using the components command. It shows the noteblock or my battery just fine, but no matter what I do nothing from AE. I've tried every possible combination with controller, interface, import- or export-bus. I've tried older versions and the latest ones from both mods. I made a creative world to see if anything in my world/network/computer is wrong, but even in the most bare setup there's no component from AE in the list. I see in other codes what I should get, but no me_interface for me. Any ideas? Is there any card I have to put in the computer so it can see AE? Is there anything special that has to be in the AE system? Does it work for you? Regards
    1 Points
  8. XyFreak

    Big Reactors Grid Control

    Ok, while I wasn't able to gather the exact reactor design from what you described, I managed to build a somewhat similar reactor that triggers something that I believe is the same issue. I can't believe I've overlooked that >_>. I dunno how long this is going to take me to fix but i'm working on it.
    1 Points
  9. Lizzy Trickster

    OpenComputers v1.6.1 (+ hotfix)

    OpenComputers version 1.6.1 released for MC 1.7.10, 1.8.9, 1.9.4 & 1.10.2 As always, remember to make a backup of your world. Got an issue? Post it on the GitHub Issue Tracker or the support section of the forums. Download on Curse. Changes in this release: Added: Made wrenching an Adapter's side turn it off. (Vexatos) Added: metadata-ignoring fuzzy option to robot.compare. (Vexatos) Added: SignChangeEvent to sign upgrade (makkarpov) Added: whitelisting of debug card owners. (makkarpov) Added: [MC1.8.9+] Robots, Inventory Controller Upgrades, Transposers, etc. now support blocks and inventories with IItemHandler capabilities (Vexatos) Added: [MC1.10] Scoreboard class modification functions to the debug card (RussellLong) Added: [MC1.10] Re-added EnderIO integration and added Bundled Redstone support for EnderIO's Insulated Redstone Conduits (Vexatos) Changed: Allow multiple environment providers to return environments for the same block (Vexatos) Changed: massively major OpenOS update (payonel) Changed: Updated Russian translation (MoonlightOwl) Fixed: Allow draining dynamic liquid blocks if they're "full" Fixed: bit32.lrotate and bit32.rrotate (fingercomp) Fixed: broken c and e time formatting flags (gamax92) Fixed: Check if the world is remote before killing the drone (joserobjr) Fixed: disable fs.remove of devfs files (payonel) Fixed: Don't consume XP items when upgrade is at max level. Fixed: incompatibility with Sponge in robot movement logic. (Vexatos) Fixed: kernel naming in LuaJ (gamax92) Fixed: Make Machine.signal less picky about the types of maps it accepts. Fixed: Methods in ItemInventoryControl not doing what they are supposed to (Vexatos) Fixed: NPE when other mods request tooltips before font renderer is ready Fixed: os.time and os.date affected by host timezone (gamax92) Fixed: Power mountables without requiring them to be connected to the outside. Fixed: RedLogic redstone input reading. (Vexatos) Fixed: Validate NBT address of FileSystems (gamax92) Fixed: [MC1.8.9+] Newly placed cases having zero energy buffer capacity. Hotfix 1 fixes: Fixed: already existing adapters in the world having their sides closed. Not really important, except if you use the adapter for anything... critical. But who'd do that?
    1 Points
  10. Michiyo

    Some quick questions from an OC noob

    RE: Editing files outside of the game, open the OC Config and find the option "bufferchanges" set it to false, then files will update in game as soon as you save out of (and vice versa)
    1 Points
  11. Fingercomp

    MagicaVoxel .vox converter for print3d

    Some 3D print features: They can glow (unfortunately, the light can't be toggled). They can act as switch, lever, or whatever else, emitting the redstone signal in active state. A 3D print can consist of two states (well, one "3D print" block can actually have two different 3D models), toggled by clicking. A lot of things can be created already! And, well, chairs. There is a 3D print of chair. It was created by Krutoy242. The bottom part can be toggled by clicking. Stand on the seat, click on it, and, tada, you're "sitting" on the chair. { label = "Крутое кресло", tooltip = "Для работы за крутым компьютером", buttonMode=true, shapes = { { 0,0,7,2,2,9,texture = "coal_block" }, { 7,0,0,9,2,2,texture = "coal_block" }, { 7,0,14,9,2,16,texture = "coal_block" }, { 14,0,7,16,2,9,texture = "coal_block" }, { 1,2,7,15,3,9,texture = "iron_block", tint = 0xc4dbee }, { 7,2,1,9,3,15,texture = "iron_block", tint = 0xc4dbee }, { 6,3,7,10,8,9,texture = "coal_block" }, { 7,3,6,9,8,10,texture = "coal_block" }, { 7,8,7,9,12,9,texture = "coal_block" }, { 1,12,7,2,14,14,texture = "iron_block", tint = 0xc4dbee }, { 2,12,2,6,14,14,texture = "coal_block" }, { 4,12,0,6,14,14,texture = "coal_block" }, { 6,12,0,10,14,14,texture = "wool_colored_white", tint = 0x00c3ff }, { 10,12,0,12,14,14,texture = "coal_block" }, { 12,12,2,14,14,14,texture = "coal_block" }, { 14,12,7,15,14,14,texture = "iron_block", tint = 0xc4dbee }, { 0,14,12,1,16,14,texture = "coal_block" }, { 1,14,12,2,16,14,texture = "iron_block", tint = 0xc4dbee }, { 2,14,12,14,16,15,texture = "coal_block" }, { 14,14,12,15,16,14,texture = "iron_block", tint = 0xc4dbee }, { 15,14,12,16,16,14,texture = "coal_block" }, { 0,0,0,16,7,16,texture = "iron_block", tint = 0xc4dbee , state=true}, } }, { label = "Крутое кресло", tooltip = "Для работы за крутым компьютером", shapes = { { 1,0,11,2,4,13,texture = "iron_block", tint = 0xc4dbee }, { 1,0,13,2,2,14,texture = "iron_block", tint = 0xc4dbee }, { 2,0,12,6,5,14,texture = "coal_block" }, { 6,0,12,10,5,14,texture = "wool_colored_white", tint = 0x00c3ff }, { 10,0,12,14,5,14,texture = "coal_block" }, { 14,0,11,15,4,13,texture = "iron_block", tint = 0xc4dbee }, { 14,0,13,15,2,14,texture = "iron_block", tint = 0xc4dbee }, { 1,2,4,2,4,13,texture = "iron_block", tint = 0xc4dbee }, { 2,2,14,6,12,15,texture = "coal_block" }, { 6,2,14,10,11,15,texture = "wool_colored_white", tint = 0x00c3ff }, { 10,2,14,14,12,15,texture = "coal_block" }, { 14,2,4,15,4,13,texture = "iron_block", tint = 0xc4dbee }, { 0,3,4,2,4,11,texture = "iron_block", tint = 0xc4dbee }, { 15,3,4,16,4,11,texture = "iron_block", tint = 0xc4dbee }, { 0,4,4,2,5,11,texture = "coal_block" }, { 14,4,4,16,5,11,texture = "coal_block" }, { 2,5,13,6,12,15,texture = "coal_block" }, { 6,5,13,10,11,15,texture = "wool_colored_white", tint = 0x00c3ff }, { 10,5,13,14,12,15,texture = "coal_block" }, { 4,12,13,12,15,15,texture = "coal_block" }, { 5,15,13,11,16,15,texture = "coal_block" }, } } By the way, Lizzy is a forum administrator. The author of the mod is Sangar.
    1 Points
  12. JuhaJGamer

    Help with colors in an Lua program

    I have no idea how to implement color mid-print but color is achieved by these commands EDIT: Remember that you have to do the gpu getting at the first lines of the program(before anything else happens in the code) --Get GPU local c = require("component") local gpu = c.gpu --Set Foreground(text color), or Background(Background color) --Background color only changes for the places BEHIND THE TEXT PRINTED AFTER THIS gpu.setForeground(0x444444) - set text to gray gpu.setBackground(0x33DBFF) - set background to light blue
    1 Points
  13. Lyra

    Titan BIOS - HTTP booting

    This is a small (obviously) custom BIOS, the chief feature of which is booting over HTTP. This is quite handy when writing a custom operating system as the edit process there tends to be a bit tedious moving hard drives and files around and such. With this, you can do something like: Install the BIOS to an EEPROM, and set the EEPROM data to something like "http://localhost/init.lua" Run an HTTP server on your local machine, and point it at your files Configure OpenComputers to permit making HTTP requests to 127.0.0.1 (disclaimer: this is a very bad idea in multiplayer) Boot your testing computer directly from the files you're editing It can also boot off of any available disks (with OpenOS compatibility and "short" disk addresses), present a pleasant editable menu, print out useful error messages when things break, and behave in general like a proper bootloader. There is room at the top to hardcode a list of boot targets, if that's more convenient than EEPROM data for some reason, and disable the menu if you don't want that. It is in total a little bit over 3kb so there's still a little room for extras. (Network booting and a Lua shell would be interesting.) It may or may not be good with memory depending on exactly how closures work in OpenComputer's Lua implementation, not really sure. Memory usage seems to be difficult or impossible to measure properly. Installation goes something like this, from a working computer: $ wget http://... titanbios.lua $ flash -q titanbios.lua "Titan BIOS" $ lua > component.eeprom.setData("http://localhost:8000/init.lua") Download here. No guarantees: it appears to work so far, but there's probably a bug or two left. So I guess that's sort of useful, maybe, to some people? Oh well. And here's a picture of a bootloader, because those are exciting:
    1 Points
  14. gollark

    MineOS - beautiful GUI to standard shell.

    The Terms and Conditions displayed in the installer state that your computer can be remotely locked by the OS developer. This is completely unacceptable for the majority of players. OS owners should not have that level of control over computers running their OS. Not only is it never going to help with anything, but the dev can now hold players' computers to ransom.
    1 Points