Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Elijahlorden

  1. I have gotten quite a bit of groundwork done. I am currently working on the first implementation of the page drawing code. I have decided not to use any sort double-buffering, as I don't like the high memory overhead. Instead, only portions of the page which change will be re-drawn. An early look at what I have done so far. Just a few nested frames. This already supports occlusion culling (portions of controls which are outside of their parent viewport are removed), so controls like the ListView and ScrollFrame can be implemented easily. Pages can either be loaded from XML, or created programmatically. This is the XML file used in the above image: <documentname>TestDocument</documentname> <page tier="3"> <!-- This is the root of the page DOM --> <frame id="f1" pos="1,1" size="40,10" text="High-resolution page" fcolor="00FF00" textcolor = "FFFF00"/> <frame id="f2" pos="1,11" size="40,10" text="With text"/> <frame id="f3" pos="50,2" size="40,10" text="With colored text" textcolor = "00FF00" fcolor="FF0000"/> <frame id="f4" text="Nesting" pos="10,29" size="60,20" textcolor = "BBBBBB"> <frame id="f4" pos="2,2" size="40,10" text="Nested" textcolor="00FF00"> <frame pos="2,2" size="5,5"/> </frame> </frame> </page> <!-- If multiple pages exist, the one closest to the current resolution will be used --> <page tier="2"> <frame id="f1" pos="1,1" size="30,30" text="Low-resolution page" textcolor="FF0000" fcolor="AAAAAA"/> </page> This is a very barebones XML implementation, only meant to provide a structure for pages.
  2. I just wanted to add the unicode functions to the string object, not to create a string wrapper (Although that is a good idea, it seems like alot of overhead just for convenience methods). I'll probably just add global references to the unicode functions.
  3. I am currently completely rewriting this project from the ground up. One of the larger changes coming with this is the conversion from a terminal interface to a webpage-like interface. The rewrite will include all of the features the current version does, but presented in an easier to work with format. The pesky installer issues will also be solved, as the new installer will pull files individually from the GitHub repo rather than unpacking a giant serialized table.
  4. I have attempted the following: local mt = rawget(getmetatable(''), "__index") function mt:ulen() return unicode.len(self) end But getmetatable does not return the string metatable. I am assuming this is because the string metatable is protected for some reason.
  5. The default string methods do not support unicode characters correctly (unicode.char(0x25A0):len() returns 3, for example). Is it possible to replace the default string methods so that :len() references unicode.length()? If not, is is possible to add methods for the unicode functions (perhaps :ulen(), :usub())? I looked but could not find an answer to this.
  6. I have finally gotten to the point where I feel I am capable enough to write an addon mod for OpenComputers. This addon is the result of my desire to provide useful mechanics which are gated behind OpenComputers knowledge and infrastructure. As the title of this post suggests, this addon will focus on the manipulation of matter (and energy) through the use of OpenComputers components. All machines in this addon/mod will require OpenComputers to function. This mod will not feature any GUIs, besides the interfaces OpenComputers itself provides. Planned content (may change): - A Transporter system similar to the technology of the same name seen in Star Trek. (This will be the first feature added and is currently being worked on) - A viable endgame power source (power output comparable to Mekanism's Fusion Reactor) in the form of a matter-antimatter reactor. - An Energy->Matter converter similar to the Replicator technology seen in Star Trek. Any ideas or feedback on this project is welcome! The GitHub repository for this project may be found here.
  7. @payonel Thanks for the suggestion, I'll be sure to make that change.
  8. This is correct. The installer and installdata files should be downloaded to and run from the root directory.
  9. Thanks for the responses! I think I misread the wiki. I thought there was some magic happening here that was allowing for preemptive yielding, hence my confusion. I appreciate the explanation, you saved from trying to pick through the Thread API myself!
  10. After reading through the wiki page on the OpenOS Thread API, it seems that Threads allow for preemptive yielding. What I am wondering is how this is accomplished, since (afaik) there is no way to implement preemptive yielding with normal Lua coroutines.
  11. Working on the network command rewrite, and a much-needed improvement to the terminal: https://gyazo.com/d3f8e0cdc9465aea66d0b3aa49e7e08a
  12. I am, at some point, going to rewrite the installer to automatically grab InstallData from a GitHub release.
  13. Right. I now know what's happening. Like an idiot, I did not update the pastebin files. You can grab the updated files off my StattenOS installer repo, or wait until I can update the pastebin files. My bad.
  14. Not currently at my computer, but that it looks like that error is in the recursive JSON decode. Can you open the installer and verify that OS.sleep is defined?
  15. To clarify, the program crashed before InstallData was fully read into memory? I think I need to add more tolerance, because I have used the installer multiple times without issue.
  16. I have modified and reuploaded the installer. The installer should now work correctly. This update also means that the netcode overhaul is also now present in the InstallData file. Any issues with high network traffic causing computers to freeze should now be fixed.
  17. This has been an ongoing issue. I need to modify the JSON library I use to yield during large operations.
  18. The Fusion Reactor is composed of five components. You can view these using the 'listCompAddresses' command on a StattenOS install set to the Fusion Reactor driver. The command will list the name of each device, what block it is, and what it should be connected to. Use the 'setCompAddress [name] [UUID]' command to register a component specified with the name parameter to the UUID (will accept shortened UUID string) provided with the UUID parameter.
  19. I am currently working on the OS again, and will look at the installer once I have finished the rather large amount of refactoring I have started on the network code (I found a huge optimization which should stop issues I was having with the computers locking up during times of high network traffic). What version of OpenComputers are you using? For now, if you would like to install the operating system to use it, you can always manually place the files in a filesystem (world/OpenComputers/FilesystemUUID). To do this the filesystem must have been initialized (either install OpenOS or mount it to a computer running OpenOS and edit a file onto it).
  20. Yes, I did know about that. If you look at the code in the network module you will see that I set the card's strength to max before sending a packet. I have also found on several occasions that wireless packets are sporadically not received when sent from the same location. I've had this happen multiple times when, for instance, dialing a gate ~10 blocks away from the receiving computer with one layer of bocks separating the broadcast and reception points. While it only happens sometimes, it is annoying enough for me to not use wireless networks if I am not required to.
  21. Still playing in 1.10. I'm not moving to a newer version until the Warp drive mod does. (it's still in the process of being updated to 1.10 lol) expect many drivers for WD devices.
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.