1. dff73c9 basic animation logic stuff. added fake block that is used as a robot's "afterimage" when it moves, to ensure proper collision bound handling; fixed breaking pause when activating computer blocks; by Florian Nücke · 11 years ago
  2. 9ee52a6 and checking for unbreakable blocks (such as bedrock...) via negative hardness and some cleanup by Florian Nücke · 11 years ago
  3. 5ffe425 more configurable stuffs; added a wrapper layer for the config class when fetching values to make defining settings less verbose, and to make it easier to switch to some other backend implementation in case config really goes away in 1.7; less direct use of IDs; now checking if a robot can actually break a block with the currently equipped tool via ForgeHooks. so now they cannot break obsidian anymore unless they have a diamond pickaxe, for example by Florian Nücke · 11 years ago
  4. 3324371 get a move on. robots can now move. there's no animation yet and accordingly collision bounds aren't interpolated either, but movement basically works. in a very... simple manner, I must say (re-uses existing tile entity, on both server and client); cleaned up delegate class a bit (the node.remove in block break should be redundant since we do this in the environment tile entity base class) by Florian Nücke · 11 years ago
  5. 827344b moved timed pause logic to computer class and improved it a bit (i.e. less bugs); startup delay is now realized via pause; not consuming power while paused anymore (also not while rebooting); fixed computers being incorrectly initialized (regression that slipped in while working on robots); added start, pause stop callbacks to computer interface passed to callbacks; checking for obstruction coordinates in carriage component when movement fails, now by Florian Nücke · 11 years ago
  6. 7f61070 minor refactoring of utils by Florian Nücke · 11 years ago
  7. 1614966 setting pitch and yaw of fake player for robots based on which face they try to interact with (deals with issues when trying to use some items such as buckets); wrapped special handling for stuff like pistons a bit nicer by Florian Nücke · 11 years ago
  8. ba1f66e added setting to emulate CC turtle placing behavior (allow placing blocks in thin air, without any reference point - and no, the bot itself doesn't count!); properly ensuring placement is only possible on existing blocks for robot.place() (if the setting is false); robot Lua library wrapping the low level callbacks a bit by Florian Nücke · 11 years ago
  9. 358328d cleaned up durability restoration; removed onItemUseFirst setting - we have a winner! buildcraft needs it for wrenches, e.g., so now we just check hard-core whether the used item is a portal gun... may add a whitelist/blacklist some time. also not using any portal guns that are not the first one, because when triggered like this it'll always be a default portal by Florian Nücke · 11 years ago
  10. 698d68c not damaging players if configured accordingly; fixed a null pointer by Florian Nücke · 11 years ago
  11. bade1b5 applying weapon bonus damage to robot player for properly calculated damage on swing; applying tool durability reduction on attack, too; simulating a click for swing and use now via raytracing, falling back to simple use when that fails (basically like player click block vs player click air), which means stuff like using bone meal now also properly works; better feedback on what happened when a tool was used; added callback to query current tool's durability; building list of pre-break items earlier to allow detecting items generated in other callbacks than harvest (e.g. for redstone in motion blocks) by Florian Nücke · 11 years ago
  12. 942027d made the collision hack for robots less hacky, now just failing any collision ray traces that originate inside the robot by Florian Nücke · 11 years ago
  13. 3867395 added some more checks as to what blocks robots may break (e.g. fluids... which don't seem to have any particular checks, they just normally can't be broken because players can't target them) and added a (somewhat hacky) workaround for raytrace checks initiated by robots, e.g. when using buckets, so now they can fill and empty buckets - well, emptying only works if they look at a wall, though. by Florian Nücke · 11 years ago
  14. 2c9c142 immediately picking up drops from broken blocks. kinda glitchy on the client because he won't know this right away, so it'll look like the closest nearby player will pick up the item (he doesn't though, and there's no duping or anything, just a graphical glitch) by Florian Nücke · 11 years ago
  15. fbdac07 expanded fake player class a bit to avoid weird things happening (such as the robots opening GUIs - hint: fun time!); added options on whether robots may activate blocks (levers, buttons) and whether onItemUseFirst should be called (disabled per default to get portal guns to work). the latter is a setting because it may cause issues in mods that actually use it by Florian Nücke · 11 years ago
  16. cf6a3e3 only allowing to pick up items into the inventory of robots (not into equipment slots); added logic for placing blocks and using tools/items by Florian Nücke · 11 years ago
  17. 50f09c8 suck it. robots can now pick up items lying around on the ground, and there's a fake player class for robots (with a fake inventory, which is used for that and just dispatches to the robot tile entity's inventory - allows emulating actual player behavior pretty nicely) by Florian Nücke · 11 years ago
  18. b1d96a3 synchronizing selected slot in robots to client and rendering a selection marker in the gui by Florian Nücke · 11 years ago
  19. efe89e0 more inventory interaction for robots by Florian Nücke · 11 years ago
  20. 5f6a9cf made computers self-aware; added some basic interaction of robots with their inventory and the world (select, detect, compare, drop); generalized item dropping from containers on destruction; some redstone "fixes" for problems that kinda didn't exist before: output is now stored as "local", i.e. it is converted to global as needed, which makes changing the rotation of a block with redstone info a non-issue (computers could be rotated, where that problem also existed, sorta, just didn't think about it like this before) by Florian Nücke · 11 years ago
  21. 9b4476a moved gui updating/closing logic in screens to parent class (environment) and moved it to the tileentity package; larger robot inventory by Florian Nücke · 11 years ago
  22. f135d86 made power distributor logic a component to be re-usable in robots; general shuffling for robot stuff, now building an "internal" network for each robot that is *not* connected to the outside world. this will limit some cards installed in the robot (e.g. gpus won't work with external screens) but makes it much easier to re-use components without having the issue that they interfere with external stuff (also, it makes robots less of a complete replacement for normal computers, which they should not be, they have a very specific role, after all); reworked how stuff gets saved a bit more, nodes are now generally saved by their host - in particular the base tile entity we use (Environment) will now only automatically save its `node` if it is that node's host by Florian Nücke · 11 years ago
  23. 6e1ba98 some redstone fixes (again); restructured a bit: computer, buffer (screen) and keyboard now hold their own node, which for the normal blocks is just re-used as that te's node, but this way they can be directly re-used in robots which have to have multiple nodes in one te; more gui stuff for robots; moved gameregistry stuff out of individual classes into the registry singletons; fixed guis being opened twice; mostly got "built-in" components for robot working (it's basically like a case with a built-in screen, fixed gpu and ram, for now) by Florian Nücke · 11 years ago
  24. 077bc98 fleshing out the robot block a bit, adding the gui and inventory by Florian Nücke · 11 years ago
  25. c8bcc59 messed with synchronization of network a bit, mostly removing the synchronizations, meaning using the network in direct lua callbacks is *not safe* anymore. consuming / producing power however should be, that's synchronized (and hopefully won't deadlock, unless I forgot some case); fixed opengl errors when moving screens using RIM by checking if a display list is currently being compiled, and not trying to compile again if so, but simple rendering what we currently have. also reduced the keep-alive time of the cache a bit. by Florian Nücke · 11 years ago
  26. 5faedd2 moved some more stuff from case to computer superclass by Florian Nücke · 11 years ago
  27. 34a9270 underped dedicated server a bit by Florian Nücke · 11 years ago
  28. e286fb7 added new concept for LuaCallback annotation: limited direct calls. this allows defining the number of times a method may be called directly per tick, to limit the load Lua programs can but on the game, for example if the method has to use some expensive resource or generates network traffic. used for gpus, to allow different tiers to be updated with different speeds: set/fill/copy are now direct until they hit the limit. this makes for a much more responsive experience while still making sure Lua cannot completely blow the net traffic off the charts; also made some more getter methods in filesystem direct (in particular `size` which slowed down ls -l way too much); fixed a deadlock, possibly; screens now consume a constant amount of power and will stop displaying stuff when unpowered (won't lose the buffer, though) by Florian Nücke · 11 years ago
  29. 1b7eebf fixed redstone program always setting bundled output; now reading input from isolated red alloy wires (redlogic); general clean up; triggering persistable.save/load form environment class now (our base tile entity class); by Florian Nücke · 11 years ago
  30. f5da4e6 made power supply configurable by Florian Nücke · 11 years ago
  31. 6c5b172 fixed rednet interop; reduced powersupply output by Florian Nücke · 11 years ago
  32. 6570d88 fixed converter not filling up global buffers by Florian Nücke · 11 years ago
  33. 1aa60d2 made analyzer localizable; removed buffer from most components - only producers (converter, power supply) and a new block, the capacitor now have a buffer; tweaked power values a bit (I even made a spreadsheet!); file i/o now needs power (i.e. reading and writing files, all the "info" stuff doesn't); multi-block screens now require more power the larger they are by Florian Nücke · 11 years ago
  34. e68aab6 changed power model to an overflow based one instead of averaging all buffers (buffers across the network will be emptied / filled one after the other, regardless from where the power delta came) by Florian Nücke · 11 years ago
  35. 0eb6ef4 minor refactoring (moved driver implementations to sub-packages); catching errors when parsing network packets and logging those errors (malicious packets could otherwise crash servers by triggering an exception); directly returning the number when running a command on the command block by Florian Nücke · 11 years ago
  36. ac72c27 world breaker! weeeee. massive renaming of stuff that I waited for to accumulate to do all in one big change, since it breaks my test world due to id changes. also a bit of refactoring here and there, e.g. the block previously called computer is now called case. computer is now the base class which will hopefully be generic enough to be re-used for bots. hopefully didn't break anything... by Florian Nücke · 11 years ago
  37. 584cec0 cables; changed things around a bit with regards to tile entities: environment is now the tile entity whereas rotatable is now a trait. this makes a lot of things less redundant in tile entities, in particular after cleaning up tile entity connect/disconnect logic (disconnect now purely via invalidate/onUnload); fixed default case for shouldSideBeRendered in special block; by Florian Nücke · 11 years ago
  38. f1ed542 added a new interface to the api that allows tile entity environments to add more information when the analyzer tool is used on them; removed check for analyzer in delegator block, must be sneaking for some blocks to use it now (screen, computer, disk drive) and keep control pressed in addition to sneaking to copy the address to the clipboard (hardcoded keys, yay... may make it configurable some day... or not); rotation was kinda working but not fully (could not change yaw for blocks that faced up or down), now it works for all cases (probably); forcing render update when rotating blocks (computer block didn't re-render, for example) by Florian Nücke · 11 years ago
  39. b466887 limiting length of power display of analyzer by Florian Nücke · 11 years ago
  40. b1ac3e8 updated eris; increased screen buffer size because tier 3 screens failed to clear way too often; displaying power state of nodes via analyzer; fixed power getting lost when changing multi-screens (screens were cleared via same functions as those called from Lua, now they're cleared directly) by Florian Nücke · 11 years ago
  41. b169748 updated eris version by Florian Nücke · 11 years ago
  42. 2be5daf Merge branch 'master' of cil.li:oc by Florian Nücke · 11 years ago
  43. 0c8347d more color screen stuff; made advanced screen 4 bit, pro screen 8 bit (which is actually pretty much for a pseudo computer in a game with 16x16 textures...); depth can be dynamically changed; colors are always provided as 32bit rgb from the lua side to make things easier, so it's ok to call these even on a color-less gpu+screen; added vertical gap between chars in char texture to avoid bleeding when interpolating due to downscaling; made some programs use colors (sh, lua and ls); screw scanlines, aliasing is too much of a pain by Florian Nücke · 11 years ago
  44. 4ee76b1 working on color screens by Florian Nücke · 11 years ago
  45. 39b2c97 added analyzer tool: right click on a block show its address. for computers it also shows the last error message, if any (if the computer crashed). for multi screens it always shows the address of the origin. shift-rightclick copies the address to the clipboard. by Florian Nücke · 11 years ago
  46. e885faf added analyzer tool: right click on a block show its address. for computers it also shows the last error message, if any (if the computer crashed). for multi screens it always shows the address of the origin. shift-rightclick copies the address to the clipboard. by Florian Nücke · 11 years ago
  47. a7d2119 r-tree for wireless networks; type in time formatter; label abstraction for more flexible label editing (e.g. for computercraft disks); allow mounting computercraft disks in disk drive; dependencies on mods for apis by Florian Nücke · 11 years ago
  48. 1c34cdb sending wireless network messages now costs power based on the used signal strength and range per power is configurable, as is the power buffer size of wireless network cards by Florian Nücke · 11 years ago
  49. 35d8e07 computer no longer uses power based on cpu time, since this caused massive power spikes when loading (and possible when the world lagged a lot), because the worker thread runs on low priority and could therefore be stalled by the host os for a while if something else takes priority; managed item environments now get their container passed along (usually the tile entity with the inventory they reside in), used by redstone card from now on to determine the block to read/write from/to (instead of the message sender, which should always be that same block, but it's clearer like this). also used for the new wireless network cards so they know where they are; added wireless network cards. they act as an upgrade to normal network cards, i.e. they still send "normal" network messages in addition to looking for receivers in range. the signal strength for sending can be adjusted via the api, the higher the further we look for receivers, but the more power it will cost (this isn't in, yet). in addition we sample a few blocks between sender and receiver to check if the signal may have been blocked. by Florian Nücke · 11 years ago
  50. bccee0c added basic "ownership" implementation: computers now have a list of users, and only users can perform direct operations on the computer, such as typing, changing the inventory and breaking the computer block. this does not apply to operators or in single player mode; added a new network message for computers `computer.checked_signal`, which expects an `EntityPlayer` as the first parameter and checks if the player is a user before pushing the signal. used by the keyboard for now; finally added custom implementation of 'mergeItemStack' that properly respects a slot's item validity (Slot.isItemValid) so shift clicking now inserts components into the right slots for computers; some small changes to Lua shell lib; added -b option to redstone Lua program to allow reading/setting bundled input and output; added programs to manage users from the shell by Florian Nücke · 11 years ago
  51. 9098d00 moved key tracking to keyboard companion object by Florian Nücke · 11 years ago
  52. 9948879 tracking pressed keys on server to send key up signals when a player disconnects / changes dimension / dies by Florian Nücke · 11 years ago
  53. 2a48cb2 fixed timers firing continuously after setting the time to a future date; fixed date stuff after realizing /time set sets world time absolutely (too used to nei by far...); added proper os.date implementation; by Florian Nücke · 11 years ago
  54. eb3a8e1 added bundled redstone support, only support for immibis' RedLogic mod for now by Florian Nücke · 11 years ago
  55. bb7684a cleaned up included apis some, removing all the unnecessary interfaces; made carriage component completely async; reworked state logic in computer some, probably broke something along the way; made startup delay after loading a setting; by Florian Nücke · 11 years ago
  56. ce69b1c removed some unnecessary api stuff and unused jnlua classes by Florian Nücke · 11 years ago
  57. 8395814 added @Optional for ic2, bc and cc interfaces by Florian Nücke · 11 years ago
  58. e9bc088 upgraded forge version and added API annotation to api package by Florian Nücke · 11 years ago
  59. 59ab876 minor cleanup by Florian Nücke · 11 years ago
  60. 2a2785e cleaned up RIM reflection into a helper singleton; cleaned up and extended RIM component a bit; extended arguments class with type testing methods; documented arguments class; linearly increasing screen buffer size per tier (copy would fail for advanced screens...) by Florian Nücke · 11 years ago
  61. 43d9365 renamed LuaCallback.asynchronous to LuaCallback.direct by Florian Nücke · 11 years ago
  62. 7d907fd checking direction validity in carriage.move synchronously by Florian Nücke · 11 years ago
  63. ed458f9 added driver for RIM's carriage controller block and fixed some issues with blocks being moved by Florian Nücke · 11 years ago
  64. e99eebf fixed lighting bug in dynamic inventory renderer by Florian Nücke · 11 years ago
  65. ab785eb forbid access to string metatable for sandbox; minor restructuring of libraries (mostly sorting by name); saving managed environments attached to an adapter. this is not very reliable, sadly, since there are way too many ways neighbors can change outside our control (chunks only partially loaded, types removed across games due to other mod changes, mods that move blocks such as RIM, ...); making some effort to re-attach peripherals using their previous address; removed connection code on chunk load in network manager, since this is also handled by the check in the tile entities' update function by Florian Nücke · 11 years ago
  66. fcdb75e rudimentary driver for computercraft peripherals: it emulates a computer that is the whole network and does not provide a lua context which may cause nullpointers. good enough to allow accessing cc disk drives and read/write floppies in them. by Florian Nücke · 11 years ago
  67. 3c6d3f3 less nullpointers in buildcraft power logic; handling weird cases where the computer may not have run yet but we have to recompute the amount of memory and there is no ram; removed dead rotation logic from block activate, all handled via rotateblock; fixed computers possibly stopping after loading due to bad sleep value by Florian Nücke · 11 years ago
  68. 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
  69. 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
  70. 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
  71. 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
  72. 60447a0 localizations for power supply by Florian Nücke · 11 years ago
  73. 666ab55 fixed rendering with multiple distributors in a single network by Florian Nücke · 11 years ago
  74. fd67e24 added a simple power supply that generates power out of thin air for testing by Florian Nücke · 11 years ago
  75. 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
  76. 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
  77. e420b0f moved node name from node to component, since that's where it belongs by Florian Nücke · 11 years ago
  78. 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
  79. 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
  80. 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
  81. 5aad6d6 cleaned up component visibility updating; some fixes by Florian Nücke · 11 years ago
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. a7ec5c0 things are slowly beginning to work again... it's still all a big mess, though by Florian Nücke · 11 years ago
  93. 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
  94. 24228a2 prepping for more api->java by Florian Nücke · 11 years ago
  95. 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
  96. c556f40 simplified redstone driver (just using the message source as the redstone input/output provider) by Florian Nücke · 11 years ago
  97. 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
  98. 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
  99. 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
  100. 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