1. 1b57193 made all the power stuff configurable; working around power spikes when loading computer blocks (waiting for world to settle for a second before continuing execution) by Florian Nücke · 11 years ago
  2. 49ced36 computers need power to run (base level + elapsed cpu time); screens need power to change their display, different costs per operation, depends on number of 'pixels' changed; fixed distributors not balancing buffers if attached to existing network without distributor by Florian Nücke · 11 years ago
  3. 301cec0 fixed adapter's network functionality. tested with latest CC and now it actually works. what a surprise. by Florian Nücke · 11 years ago
  4. 59c953e initializing network connections in tile entities' update function now (i.e. we call Network.joinOrCreateNetwork from there if we have a node and that node isn't in a network yet). this is because on block added is somewhat unreliable, in particular when other mods start getting involved - say, RIM. which is what I tested with right now, and it actually works, i.e. computers can be moved by carriages and keep running without fail. huzzah; also removed weak keys from screen renderer cache, the timeout is enough by Florian Nücke · 11 years ago
  5. 60447a0 localizations for power supply by Florian Nücke · 11 years ago
  6. 666ab55 fixed rendering with multiple distributors in a single network by Florian Nücke · 11 years ago
  7. fd67e24 added a simple power supply that generates power out of thin air for testing by Florian Nücke · 11 years ago
  8. f4641d5 better check for whether power redistribution is needed and reduced number of network packets generated for synchronizing average buffer fill (used for display, brightness of overlay on distributor) by Florian Nücke · 11 years ago
  9. 521613f added option to make power optional; made it so that node creation is impossible for clients, since nodes are exclusively meant for server logic, this makes this more clear; underped buffer re-balancing computation and added check to stop if delta gets small by Florian Nücke · 11 years ago
  10. e420b0f moved node name from node to component, since that's where it belongs by Florian Nücke · 11 years ago
  11. 734b1bd made the node factory stuff nicer to use. the backing code has become somewhat ugly, but that's just java's fault so whatever. it is now possible to write something along the lines of api.Network.newNode(host, name, visibility).withComponent().withConnector(bufferSize).create(), which reads pretty nicely; power is back, but with a few changes. for one, the "running cost" is gone, since that was really just confusing, and would have resulted in frequent updates once the buffers are full/empty anyway (once because we'd have to check whether to fill up or not, once to check if we have enough power or not). it's just much more intuitive to just have a buffer per powered entity that can be filled/emptied as needed. also, there's no differentiation between consumers and producers anymore. producers just fill up their buffers, while consumers empty their buffers. the power distributor now simply takes care of balancing the amount of energy in all buffers connected to the same network it is connected to. multiple distributors don't need any special logic this way, either, since the first one to update simply marks all processed buffers as clean (if they were dirty due to changes); renamed PowerSupply to PowerConverter by Florian Nücke · 11 years ago
  12. f9e6439 using default pcall and xpcall again in sandbox, using a trick seen in corowatch (setting hook count to 1 on timeout) by Florian Nücke · 11 years ago
  13. d92257d fixed network messaging; pulled persist logic completely to the scala side, doing away with the boot lua script; by Florian Nücke · 11 years ago
  14. 5aad6d6 cleaned up component visibility updating; some fixes by Florian Nücke · 11 years ago
  15. 12081e5 some more "shortcut" functions in node interface, allows writing node.blah(..) instead of node.network.blah(node, ...), which, since normally a node reference is held, was way too common. by Florian Nücke · 11 years ago
  16. 730c8f0 restructuring network a bit, using messages more for "event like" stuff, thus removing the return values and simplifying the network manager in general quite a bit; removed "system messages", the manager now directly calls onConnect/onDisconnect in the nodes' environment, and said functions take now the relevant node as a parameter; component invoke is now directly called via component interface, not as a message anymore; stuff, i guess by Florian Nücke · 11 years ago
  17. fe446e9 fixed nullpointer in disconnect of powered down computers; fixed components with a visibility lower than their reachability not being added to the list of visible components in a computer by Florian Nücke · 11 years ago
  18. d886527 renamed event.wait to event.pull; removed event.fire, instead allowing generating/queuing signals from the Lua side, adding os.pushSignal and renaming os.signal to os.pullSignal. pullSignal now has no filtering capabilities, only a timeout, all filtering is done via event.pull by Florian Nücke · 11 years ago
  19. 1fd375f screw it, events are now global, i.e. they will *not* automatically be cleaned up when the program that registered them dies. instead, resort to event pulling for most cases, the nice filtering in event.wait should make that feasible for most scenarios; on the upside, waits can now be canceled (customizable via event.shouldInterrupt, queried each time os.signal returns to event.wait, defaults to ctr+alt+c being pressed), event.wait will throw an "interrupted" error in that case. this means os.sleep is also interruptable since it just calls event.wait; also updated eris to latest version by Florian Nücke · 11 years ago
  20. d52a099 less derpy environment "sandboxing" for shell.execute, instead tracking events per thread now, and removing those of dead threads; thus, programs are now run in their own coroutines, which also allows emulation of cc's yield behavior (pulling events = signals); no label = null instead of empty string now by Florian Nücke · 11 years ago
  21. 7cf9fad allow settings fs label on construction and added read-only flag (used to forbid label change on ro systems); forbid setting label on volatile systems (in particular tmpfs); added program to manipulate fs labels; added program to display disk usage by Florian Nücke · 11 years ago
  22. c51d551 cleaned up lua stuff a bit; split off unicode stuff into extra table; some fixes (fs.exists for non-existent virtual objects, `less` program, other stuff i forgot); added mount and umount programs by Florian Nücke · 11 years ago
  23. 30c2682 cleaned up LuaCallbacks a bit, passing a context and argument wrapper instead of the message itself now by Florian Nücke · 11 years ago
  24. 78a426c metric ton of fixes. somehow the number of touches files feels too low... anyway, also added option to LuaCallback annotation to mark callbacks as asynchronous (meaning they will be called directly from the executor thread) and synchronized the sh*t out of the network manager in the hopes that not all will crumble to pieces due to sending messages around while someone meddles with the network (program calls sth while player places/breaks block e.g.); oh, and we now take the memory baseline after loading the libs, meaning 32k is enough to run a computer again. also, loading libs is done asynchronously now, since it's loaded from the rom and nobody else should be able to access that anyway, meaning fast boot-times; command line program to manipulate redstone output and read input by Florian Nücke · 11 years ago
  25. a7ec5c0 things are slowly beginning to work again... it's still all a big mess, though by Florian Nücke · 11 years ago
  26. af286d1 on the ever so painful path to refactoring the api... making nodes black boxes to be created via a factory and providing previous functionality to their "environment" (owning object) via other callbacks and stuff; pretty much *nothing* is working right now, yay! by Florian Nücke · 11 years ago
  27. 24228a2 prepping for more api->java by Florian Nücke · 11 years ago
  28. c231f61 javaified a lot of the api, which means a lot of the documentation will probably be slightly off now, and there may be new bugs (yay!). also, component networking stuff is slightly more fugly now since a lot of stuff has to be manually boxed. will rework that next, i guess by Florian Nücke · 11 years ago
  29. c556f40 simplified redstone driver (just using the message source as the redstone input/output provider) by Florian Nücke · 11 years ago
  30. 1454512 pcall for event error handler; super-hacky low-level boot progress feedback (as soon as any gpu in the pc has been bound, so it'll only work after the first boot and if the hardware doesn't change between boots, but hey!); keeping leading / in absolute paths in fs.canonical; prefixing paths specified to shell.path with a / if there is none already (making them explicitly absolute); moved file handle gc to the file stream, which is more logical; increased width of minimal resolution a bit (mainly so that the lua copyright notice fits into one line :P); made more gpu driver functions return a true boolean if they were called successfully; limiting the number of open handles a single computer can have per filesystem by Florian Nücke · 11 years ago
  31. a628822 changed garbage collection of file handles a bit. although it was working, in hindsight i'm really not quite sure *how*, or rather: Lua seems to be smarter than I already gave it credit for. it apparently realized that a new reference to the object to be gc'ed was created in its finalizer, so it let it live. however, i'm not quite sure why that didn't lead to a pseudo-infinite loop. now we just keep the stream as an upvalue for the timer callback that actually closes the stream; also, removed the checks if event.timer exists. if people remove that it's really their own problem by Florian Nücke · 11 years ago
  32. 4a664bb some cleanup; automatically restarting the shell if it stops (avoids the occasional ctrl+c shutting down the computer); added os.sleep and extended event.wait to take a filter, which basically makes it similar to cc's pullEvent with an optional timeout; determining io buffer size based on current free ram and added a minimum size; some better "sandboxing" for programs (which really isn't that, just making automatic listener cleanup as consistent as possible); using error messages in (uncaught) exceptions where possible, making for some nicer error messages, for example for out of memory errors when pushing results from the host side; made difftime a lua function; properly initializing text renderer on multi-screens; added program for paged file viewing by Florian Nücke · 11 years ago
  33. a8288b2 ctrl+d for soft and ctrl+c for hard abort in term.read, resulting in 'nil' being read, signalling an eof and thus allowing the lua program to be quit that way; removed the exit() function from the lua function; added `shell.parse` for rudimentary argument parsing (anything starting with `-` is treated as an option or a list of option (each option name must be exactly one char); added key state tracking and keyboard library by Florian Nücke · 11 years ago
  34. e9f2fac cleaned up some on the lua side, moving a couple of things in to 'lib' files that they belong to (in particular io api moved over from the filesystem driver, os api reimplementation stuff and base api); switched from a set of resolutions to a maximum resolution per tier; removed the magic ram bonus that was used to avoid standard lib stuff hitting the ram requirements too much, but that got too wonky. downside is that right now we need 96k to boot a computer, will either have to bump the ram module sizes or try to reduce that. by Florian Nücke · 11 years ago
  35. 010e4cc fixed screen.fill; corrected screen aspect ratio and added code for stretched rendering by Florian Nücke · 11 years ago
  36. 95e9997 fixed two string.* functions (were still bxxx instead of uxxx); fixed tmp not being cleared properly. again; stripped some implementations from api traits, to make it easier to transition them to Java (which I think we should do in the long run, after all) by Florian Nücke · 11 years ago
  37. e6bbfdc multi-tier screens and gpus. three tiers, with increasing resolutions and (at some point) color starting with the second tierl; custom "Ordering" implementation so we can just sort screens by their coordinates one by one instead of hashing them; Tuple (and untested Seq) return values supported for driver callbacks (converted to tables); added a field called "n" to all "arrays" returned from driver calls (so also tuples and seqs) mimicking Lua's table.pack by Florian Nücke · 11 years ago
  38. a3c0ae6 define languages via pack.mcmeta (not hardcoded in proxy) by Florian Nücke · 11 years ago
  39. 519afa4 minor tweaks to alias programs by Florian Nücke · 11 years ago
  40. d25c824 multi dir ls and -l option for ls; using shell.execute for autorun; aliases for shell; fixed interval not being cleared from shell.exec'd programs; immediately show cursor blink again when moving the cursor (left, right, home, end), makes navigating easier by Florian Nücke · 11 years ago
  41. 60118f1 lua program can now be quit using 'exit()' function by Florian Nücke · 11 years ago
  42. b52cc44 eris fixes (remind me to also compile for linux later...) by Florian Nücke · 11 years ago
  43. d083f34 some more and init cleanup by Florian Nücke · 11 years ago
  44. 9785ab4 proper shell and a bunch of utility programs by Florian Nücke · 11 years ago
  45. e582fe6 changed the Persistable interface a bit to now use names "compatible" with tile entities (readFromNBT and writeToNBT) and made the overrides in the Node trait abstract. this way tile entities will *have* to implement these two functions, making it less likely to ... forget calling save on nodes. the only negative is that one still has to manually call the two different "super" implementations, the one on the tile entity explicitly (in our case usually super[Rotatable].read/write...) in addition to the usual super call. seems to work so far. by Florian Nücke · 11 years ago
  46. ccf53d6 defaulting to standard lua string functions and making unicode ones available prefixed with a u (uchar, ulen, usub, ureverse); fixed event erroring being weird; fixed wrong case check order in kernel; fixed error when netsplitting a component from a computer; fixed localization for disk drive; config for name to provide when running command in command block; increased range of keyboards; adapter blocks re-use the same addresses for the blocks attached to them to avoid computers losing track of those nodes after reloading by Florian Nücke · 11 years ago
  47. 87aa1f4 redstone, oh how i loathe ye by Florian Nücke · 11 years ago
  48. 7d73f3a slight concept change in naming: "components" are now nodes that can be seen/addressed by computers via some driver; signal when redstone input changes by Florian Nücke · 11 years ago
  49. 728b428 made screen background (non-gui) ever so slightly less pitch-black, so it doesn't look like a black hole that much... by Florian Nücke · 11 years ago
  50. b1a9ef6 split computer visibility into a separate trait, to allow more standardized dynamic changing of said visibility. only used by multi-block screens for now (so that only the origin of a multi-block screen shows up in the component list); made monitor merge algorithm (more) deterministic, to avoid possibly desyncs in server and client state (it depended on the tile entity update order before). this also guarantees screens are merged the same way after loading a previously saved game by Florian Nücke · 11 years ago
  51. 4556f37 better distance computation for screens, based on center of its bounding box and being the minimal distance to the bounding box, instead of the origin and the distance to the center of it by Florian Nücke · 11 years ago
  52. c1d2473 made some screen settings available in config; fixed monitor size limits based on config being one too small; properly sized bounding box for screen tile entity when it's a multi-block; re-added render check for screen text, this time based on player position instead of look direction by Florian Nücke · 11 years ago
  53. 0320935 progress on multi-block screens by Florian Nücke · 11 years ago
  54. efb8f29 minor refactoring moving power related stuff to its own package; made receiver trait use provider trait instead of internal distributor implementation; made some minor things more scala-ish by Florian Nücke · 11 years ago
  55. efe25b3 Merge branch 'master' of cil.li:oc by Florian Nücke · 11 years ago
  56. cbfbc2f refactored screen env into screen's companion object (same as already done with computer); keeping track of pressed keys client-side to send char on key-up (lwjgl doesn't seem to properly provide that, code and char always seem to be 0 on key up) and to send key up events for all still pressed keys when closing the gui. server will have to keep track of all key presses (and the players that did them) at some point, too, since clients may just disconnect, for example (or be malicious) by Florian Nücke · 11 years ago
  57. deb45f3 nicer native library loading (in particular nicer failure case) by Florian Nücke · 11 years ago
  58. db139a1 using slot's built-in background icon functionality in computer gui now by Florian Nücke · 11 years ago
  59. 8ed4875 disk drive and floppy disks (disk drives are mountable and act as a "proxy" for the item in them); minor refactoring; by Florian Nücke · 11 years ago
  60. 56cc2c3 updated energy distribution but not with final values by Johannes Lohrer · 11 years ago
  61. a3fa83b Merge branch 'master' of cil.li:oc by Johannes Lohrer · 11 years ago
  62. 1c8927f made traits for all possibilities by Johannes Lohrer · 11 years ago
  63. c3ae449 update method in node; adapter is a computercraft peripheral now (untested obviously since cc isn't 1.64 yet); some more access options for network cards by Florian Nücke · 11 years ago
  64. 53aff13 Merge branch 'master' of cil.li:oc by Johannes Lohrer · 11 years ago
  65. 1ca4b92 some changes (upload for pull) by Johannes Lohrer · 11 years ago
  66. 2dadc4b adapter block and driver for command block by Florian Nücke · 11 years ago
  67. 1e8d48c added textures for power blocks and reworked rendering of tile entity overlays a little (better way of ignoring lighting now) by Florian Nücke · 11 years ago
  68. 266732f new node concept: computer visibility. this allows components to be visible across the network but not pop up as components in computers (`component_added` signal), which is useful for a couple of components, such as power related stuff or the newly added network cards; network cards! kind of trivial with all the networking infrastructure already in place; renamed network.connect/disconnect to system.connect/disconnect to make the network.* "namespace" usable for network cards by Florian Nücke · 11 years ago
  69. 07719c3 some changes to power by Johannes Lohrer · 11 years ago
  70. ac833cf implemented os.tmpname and io.tmpfile (sort of as they should be) by Florian Nücke · 11 years ago
  71. 4cdc075 factory functions for file systems based on cc mounts (totally untested) by Florian Nücke · 11 years ago
  72. f0f3c96 Merge branch 'master' of cil.li:oc by Florian Nücke · 11 years ago
  73. 546a9d4 fading out text rendered on screens in the world instead of immediately cutting off when too far away by Florian Nücke · 11 years ago
  74. 6485dca introduced modification time for file systems; using that to do some checks when synchronizing a real file system with a virtual file system (won't overwrite or delete newer files anymore); cleanup up vfs implementation a little by Florian Nücke · 11 years ago
  75. ee5a8a0 fixed line buffer mode; removed term.screen, term.gpu and term.keyboard and introduced the concept of "primary" components in the component api (via component.isAvailable and component.primary) as a replacement; renamed coroutine.sleep to event.wait and changed the logic so that passing math.huge waits indefinitely (will never return); documented config entries more extensively; added basememory to kernel memory so that it's hidden from os.totalMemory; rs and gpu apis that use the primary redstone/gpu component to avoid having to pass the address everywhere by Florian Nücke · 11 years ago
  76. 89befa2 new logic for power request (no usage or production still) by Johannes Lohrer · 11 years ago
  77. db0e649 labels for disks by Florian Nücke · 11 years ago
  78. dfde3d9 fixed shell crashing when monitor was removed; fixed empty entries being added to history when monitor was removed by Florian Nücke · 11 years ago
  79. 22ae984 buffered file systems (only save data to disk when the world is saving); the data stored to disk directly is really just a copy of the data, which is also stored in the world, since we use a virtual file system for that (same as for /tmp) by Florian Nücke · 11 years ago
  80. 9459366 fixed some issues with file:seek; added a virtual file system implementation that keeps all files in memory, used for a volatile /tmp mount in computers for now (512KB of writable memory that gets wiped on reboot) by Florian Nücke · 11 years ago
  81. 14bdba9 fixed gui breaking pure servers by Florian Nücke · 11 years ago
  82. 7b4e15c redstone cards are working, both input and output. i think. mostly, anyway. by Florian Nücke · 11 years ago
  83. 67792fc hdd capacity info in tooltip only in advanced tooltips by Florian Nücke · 11 years ago
  84. e4ef181 fixed capacity adjustment when creating dirs; copy implementation; fixed bug when opening multiple files at once by Florian Nücke · 11 years ago
  85. fa2052e hard drive tooltips (if initialized; added mkdir to fs driver on lua side; fixed recursive delete (folders) by Florian Nücke · 11 years ago
  86. 2888ba5 some fixes and folder renaming; keeping the rom mounted as root now by Florian Nücke · 11 years ago
  87. acd5603 re-added clipboard pasting (now for term.read()) and fixed clipboard being sent twice (only on key down again now) by Florian Nücke · 11 years ago
  88. bc74377 Merge branch 'master' of cil.li:oc by Florian Nücke · 11 years ago
  89. 6544161 fixed option stringness check in file:read; key up is now sent; much improved input handler, available as term.read, which supports side scrolling, arbitrary length history via a passable table, cursor movement to edit in-line, and general awesomeness; using that reader as the backend for stdin's chunk reader and using io.read() in sh by Florian Nücke · 11 years ago
  90. 4489781 Merge branch 'master' of cil.li:oc by Johannes Lohrer · 11 years ago
  91. 35eae71 power calculation on merge splitting and removing nodes by Johannes Lohrer · 11 years ago
  92. d460fe9 properly returning nil when at eof when reading from files in lua; fixed binary read by Florian Nücke · 11 years ago
  93. d363d03 changed os.clock to be the actual cpu time of the computer and introduced os.uptime as the replacement of the old functionality; dofile now properly throws when loading fails; graphicscard now stores the screen its bound to in the component, which allows for the computer to display messages after it crashed (by sending a display request to neighbors -> graphicscards installed in it); fixed potential timeout in os.signal; wrappers for pcall and xpcall to enforce timeout when they return, too by Florian Nücke · 11 years ago
  94. a73ed00 fixed io.type by Florian Nücke · 11 years ago
  95. 9886e64 better lua default io lib emulation (with stdin and stdout); fixed idling to use infinite sleep instead of busy idling; some other small fixes on the lua side of things by Florian Nücke · 11 years ago
  96. 9ca87be underped derped synchronized calls by Florian Nücke · 11 years ago
  97. 4d7c960 minor renaming by Florian Nücke · 11 years ago
  98. 5c29bd9 file system cleanup; access to total and used space for capped file systems by Florian Nücke · 11 years ago
  99. 26dbecd Merge branch 'master' of cil.li:oc by Johannes Lohrer · 11 years ago
  100. 26574bf basic computer network just registering for now by Johannes Lohrer · 11 years ago