* Add cc.image.nft module, for working with nft files. (JakobDev)
* [experimental] Provide a generic peripheral for any tile entity without an existing one. We currently provide methods for working with inventories, fluid tanks and energy storage. This is disabled by default, and must be turned on in the config.
* Add configuration to control the sizes of monitors and terminals.
* Allow getting "detailed" information about an item, using `turtle.getItemDetail(slot, true)`. This will contain the same information that the generic peripheral supplies.
And several bug fixes:
* Add back config for allowing interacting with command computers.
* Add documentation to many Lua functions. This is published online at https://tweaked.cc/.
* Replace to pretty-printer in the Lua REPL. It now supports displaying functions and recursive tables. This printer is may be used within your own code through the `cc.pretty` module.
* Add `fs.getCapacity`. A complement to `fs.getFreeSpace`, this returns the capacity of the supplied drive.
* Add `fs.getAttributes`. This provides file size and type, as well as creation and modification time.
* Update Cobalt version. This backports several features from Lua 5.2 and 5.3:
- The `__len` metamethod may now be used by tables.
* Make computers' redstone input handling consistent with repeaters. Redstone inputs parallel to the computer will now be picked up.
And several bug fixes:
* Fix `turtle.compare*()` crashing the server.
* Fix Cobalt leaking threads when coroutines blocked on Java methods are discarded.
* Fix `rawset` allowing nan keys
* Fix several out-of-bounds exceptions when handling malformed patterns.
# New features in CC: Tweaked 1.82.2
* Don't tie `turtle.refuel`/the `refuel` script's limits to item stack sizes
And several bug fixes:
* Fix changes to Project:Red inputs not being detected.
* Convert non-modem peripherals to multiparts too, fixing crash with Proportional Destruction Particles
* Remove a couple of over-eager error messages
* Fix wired modems not correctly saving their attached peripherals
# New features in CC: Tweaked 1.82.1
* Make redstone updates identical to vanilla behaviour
* Update German translation
# New features in CC: Tweaked 1.82.0
* Warn when `pastebin put` potentially triggers spam protection (Lemmmy)
* Display HTTP errors on pastebin requests (Lemmmy)
* Attach peripherals on the main thread, rather than deferring to the computer thread.
* Computers may now be preemptively interrupted if they run for too long. This reduces the risk of malicious or badly written programs making other computers unusable.
* Reduce overhead of running with a higher number of computer threads.
* Set the initial multishell tab when starting the computer. This fixes the issue where you would not see any content until the first yield.
* Allow running `pastebin get|url` with the URL instead (e.g. `pastebin run https://pastebin.com/LYAxmSby`).
* Make `os.time`/`os.day` case insensitive.
* Add translations for several languages: Brazilian Portuguese (zardyh), Swedish (nothjarnan), Italian (Ale32bit), French(absolument), German (Wilma456), Spanish (daelvn)
* Improve JEI integration for turtle/pocket computer upgrades. You can now see recipes and usages of any upgrade or upgrade combination.
* Associate turtle/pocket computer upgrades with the mod which registered them. For instance, a "Sensing Turtle" will now be labelled as belonging to Plethora.
* Fire `key_up` and `mouse_up` events when closing the GUI.
* Allow limiting the amount of server time computers can consume.
* Add several new events for turtle refuelling and item inspection. Should allow for greater flexibility in add on mods in the future.
*`rednet.send` returns if the message was sent. Restores behaviour present before CC 1.6 (Luca0208)
* Add MCMP integration for wireless and ender modems.
* Make turtle crafting more consistent with vanilla behaviour.
*`commands.getBlockInfo(s)` now also includes NBT.
* Turtles will no longer reset their label when clicked with an unnamed name tag.
And several bug fixes:
* Update Cobalt (fixes `load` not unwind the stack)
* Fix `commands.collapseArgs` appending a trailing space.
* Fix leaking file descriptors when closing (see [this JVM bug!](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8220477))
* Fix NPE on some invalid URLs
* Fix pocket computer API working outside of the player inventory
* Fix printing not updating the output display state.
# New features in CC: Tweaked 1.81.1
* Fix colour.*RGB using 8-bit values, rather than 0-1 floats.
# New features in CC: Tweaked 1.81.0
* Handle connection errors on websockets (Devilholk)
* Make `require` a little more consistent with PUC Lua, passing the required name to modules and improving error messages.
* Track how long each turtle action takes within the profiling tools
* Bump Cobalt version
* Coroutines are no longer backed by threads, reducing overhead of coroutines.
* Maximum stack depth is much larger (2^16 rather than 2^8)
* Stack is no longer unwound when an unhandled error occurs, meaning `debug.traceback` can be used on dead coroutines.
* Reduce jar size by reducing how many extra files we bundle.
* Add `term.nativePaletteColo(u)r` (Lignum)
* Split `colours.rgb8` into `colours.packRGB` and `colours.unpackRGB` (Lignum)
* Printers now only accept paper and ink, rather than any item
* Allow scrolling through the multishell tab bar, when lots of programs are running. (Wilma456)
And several bug fixes:
* Fix modems not being advanced when they should be
* Fix direction of some peripheral blocks not being set
* Strip `\r` from `.readLine` on binary handles.
* Websockets handle pings correctly
* Fix turtle peripherals becoming desynced on chunk unload.
*`/computercraft` table are now truncated correctly.
# New features in CC: Tweaked 1.80pr1.14
* Allow seeking within ROM files.
* Fix not being able to craft upgraded turtles or pocket computers when Astral Sorcery was installed.
* Make several tile entities (modems, cables, and monitors) non-ticking, substantially reducing their overhead,
And several bug fixes:
* Fix cables not rendering the breaking steps
* Try to prevent `/computercraft_copy` showing up in auto-complete.
* Fix several memory leaks and other issues with ROM mounts.
# New features in CC: Tweaked 1.80pr1.13
*`websocket_message` and `.receive` now return whether a message was binary or not.
*`websocket_close` events may contain a status code and reason the socket was closed.
* Enable the `debug` library by default.
* Clean up configuration files, moving various properties into sub-categories.
* Rewrite the HTTP API to use Netty.
* HTTP requests may now redirect from http to https if the server requests it.
* Add config options to limit various parts of the HTTP API:
* Restrict the number of active http requests and websockets.
* Limit the size of HTTP requests and responses.
* Introduce a configurable timeout
*`.getResponseCode` also returns the status text associated with that status code.
And several bug fixes:
* Fix being unable to create resource mounts from individual files.
* Sync computer state using TE data instead.
* Fix `.read` always consuming a multiple of 8192 bytes for binary handles.
# New features in CC: Tweaked 1.80pr1.12
* Using longs inside `.seek` rather than 32 bit integers. This allows you to seek in very large files.
* Move the `/computer` command into the main `/computercraft` command
* Allow copying peripheral names from a wired modem's attach/detach chat message.
And several bug fixes
* Fix `InventoryUtil` ignoring the stack limit when extracting items
* Fix computers not receiving redstone inputs sent through another block.
* Fix JEI responding to key-presses when within a computer or turtle's inventory.
# New features in CC: Tweaked 1.80pr1.11
* Rename all tile entities to have the correct `computercraft:` prefix.
* Fix files not being truncated when opened for a write.
*`.read*` methods no longer fail on malformed unicode. Malformed input is replaced with a fake character.
* Fix numerous issues with wireless modems being attached to wired ones.
* Prevent deadlocks within the wireless modem code.
* Create coroutines using a thread pool, rather than creating a new thread each time. Should make short-lived coroutines (such as iterators) much more performance friendly.
* Create all CC threads under appropriately named thread groups.
# New features in CC: Tweaked 1.80pr1.10
This is just a minor bugfix release to solve some issues with the filesystem rewrite
* Fix computers not loading if resource packs are enabled
* Fix stdin not being recognised as a usable input
* Return an unsigned byte rather than a signed one for no-args `.read()`
# New features in CC: Tweaked 1.80pr1.9
* Add German translation (Vexatos)
* Add `.getCursorBlink` to monitors and terminals.
* Allow sending binary messages with websockets.
* Extend `fs` and `io` APIs
*`io` should now be largely compatible with PUC Lua's implementation (`:read("n")` is not currently supported).
* Binary readable file handles now support `.readLine`
* Binary file handles now support `.seek(whence: string[, position:number])`, taking the same arguments as PUC Lua's method.
And several bug fixes:
* Fix `repeat` program crashing when malformed rednet packets are received (gollark/osmarks)
* Reduce risk of deadlock when calling peripheral methods.
* Fix speakers being unable to play sounds.
# New features in CC: Tweaked 1.80pr1.8
* Bump Cobalt version
* Default to using little endian in string.dump
* Remove propagation of debug hooks to child coroutines
* Allow passing functions to `debug.getlocal`, al-la Lua 5.2
* Add Charset support for bundled cables
*`/computercraft` commands are more generous in allowing computer selectors to fail.
* Remove bytecode loading disabling from bios.lua.
And several bug fixes:
* Fix stack overflow when using `turtle.place` with a full inventory
* Add `.getNameLocal` to wired modems: provides the name that computer is exposed as on the network. This is mostly useful for working with Plethora's transfer locations, though could have other purposes.
* Change turtle block breaking to closer conform to how players break blocks.
* Rewrite rendering of printed pages, allowing them to be held in hand, and placed in item frames.
And several bug fixes:
* Improve formatting of `/computercraft` when run by a non-player.
* Fix pocket computer terminals not updating when being held.
* Fix a couple of minor blemishes in the GUI textures.
* Fix sign text not always being set when placed.
* Cache turtle fakeplayer, hopefully proving some minor performance improvements.
# New features in CC: Tweaked 1.80pr1.6
* Allow network cables to work with compact machines.
* A large number of improvements to the `/computercraft` command, including:
* Ensure the tables are correctly aligned
* Remove the output of the previous invocation of that command when posting to chat.
*`/computercraft track` is now per-user, instead of global.
* We now track additional fields, such as the number of peripheral calls, http requests, etc... You can specify these as an optional argument to `/computercraft track dump` to see them.
*`wget` automatically determines the filename (Luca0208)
* Allow using alternative HTTP request methods (`DELETE`, `PUT`, etc...)
* Enable Gzip compression for websockets.
* Fix monitors not rendering when optifine shaders are enabled. There are still issues (they are tinted orange during the night), but it is an improvement.
And several bug fixes:
* Fix `.isDiskPresent()` always returning true.
* Fix peripherals showing up on wired networks when they shouldn't be.
* Fix `turtle.place()` crashing the server in some esoteric conditions.
* Remove upper bound on the number of characters than can be read with `.read(n: number)`.
* Fix various typos in `keys.lua` (hugeblank)
# New features in CC: Tweaked 1.80pr1.5
* Several additional fixes to monitors, solving several crashes and graphical glitches.
* Add recipes to upgrade computers, turtles and pocket computers.
# New features in CC: Tweaked 1.80pr1.4
* Verify the action can be completed in `copy`, `rename` and `mkdir` commands.
* Add `/rom/modules` so the package path.
* Add `read` to normal file handles - allowing reading a given number of characters.
* Various minor bug fixes.
* Ensure ComputerCraft peripherals are thread-safe. This fixes multiple Lua errors and crashes with modems monitors.
* Add `/computercraft track` command, for monitoring how long computers execute for.
* Add ore dictionary support for recipes.
* Track which player owns a turtle. This allows turtles to play nicely with various claim/grief prevention systems.
* Add config option to disable various turtle actions.
* Add an API for extending wired networks.
* Add full-block wired modems.
* Several minor bug fixes.
# New features in CC: Tweaked 1.80pr1.3
* Add `/computercraft` command, providing various diagnostic tools.
* Make `http.websocket` synchronous and add `http.websocketAsync`.
* Restore binary compatibility for `ILuaAPI`.
# New features in CC: Tweaked 1.80pr1.2
* Fix `term.getTextScale()` not working across multiple monitors.
* Fix computer state not being synced to client when turning on/off.
* Provide an API for registering custom APIs.
* Render turtles called "Dinnerbone" or "Grumm" upside*down.
* Fix `getCollisionBoundingBox` not using all AABBs.
* **Experimental:** Add map-like rendering for pocket computers.
# New features in CC: Tweaked 1.80pr1.1
* Large numbers of bug fixes, stabilisation and hardening.
* Replace LuaJ with Cobalt.
* Allow running multiple computers at the same time.
* Add config option to enable Lua's debug API.
* Add websocket support to HTTP library.
* Add `/computer` command, allowing one to queue events on command computers.
* Fix JEI's handling of various ComputerCraft items.
* Make wired cables act more like multiparts.
* Add turtle and pocket recipes to recipe book.
* Flash pocket computer's light when playing a note.
# New Features in ComputerCraft 1.80pr1:
* Update to Minecraft 1.12.2
* Large number of bug fixes and stabilisation.
* Allow loading bios.lua files from resource packs.
* Fix texture artefacts when rendering monitors.
* Improve HTTP whitelist functionality and add an optional blacklist.
* Add support for completing Lua's self calls (`foo:bar()`).
* Add binary mode to HTTP.
* Use file extensions for ROM files.
* Automatically add `.lua` when editing files, and handle running them in the shell.
* Add require to the shell environment.
* Allow startup to be a directory.
* Add speaker peripheral and corresponding turtle and pocket upgrades.
* Add pocket computer upgrades.
* Allow turtles and pocket computers to be dyed any colour.
* Allow computer and monitors to configure their palette. Also allow normal computer/monitors to use any colour converting it to greyscale.
* Added settings to disable multishell, startup scripts, and tab completion on a per-computer basis. The default values for these settings can be customised in ComputerCraft.cfg
* All Computer and Turtle items except Command Computers can now be mounted in Disk Drives
*`textutils.serialiseJSON()` now takes an optional parameter allowing it to produce JSON text with unquoted object keys. This is used by all autogenerated methods in the `commands` api except for "title" and "tellraw"
* Terminal redirection now no longer uses a stack-based system. Instead: `term.current()` gets the current terminal object and `term.redirect()` replaces it. `term.restore()` has been removed.
* New shell functions: `shell.openTab()`, `shell.switchTab( [number] )`
* New event `term_resize` fired when the size of a terminal changes
* Improved rednet functions: `rednet.send()`, `rednet.broadcast()` and `rednet.receive()`now take optional protocol parameters
*`turtle.craft(0)` and `turtle.refuel(0)` now return true if there is a valid recipe or fuel item, but do not craft of refuel anything
*`turtle.suck( [limit] )` can now be used to limit the number of items picked up
* Users of `turtle.dig()` and `turtle.attack()` can now specify which side of the turtle to look for a tool to use (by default, both will be considered)
*`textutils.serialise( text )` now produces human-readable output
* Fixed a long standing bug where turtles could lose their identify if they travel too far away
* Fixed use of deprecated code, ensuring mod compatibility with the latest versions of Minecraft Forge, and world compatibility with future versions of Minecraft
* Redesigned Wireless Modems; they can now send and receive on multiple channels, independent of the computer ID. To use these features, interface with modem peripherals directly. The rednet API still functions as before
* Floppy Disks can now be dyed with multiple dyes, just like armour
* The send and receive range of wireless modems now increases with altitude, allowing long range networking from high-altitude computers (great for GPS networks)
* Right clicking a Disk Drive with a Floppy Disk or a Record when sneaking will insert the item into the Disk Drive automatically
* The default size of the computer screen has been increased
* Several stability and security fixes. LuaJ can now no longer leave dangling threads when a computer is unloaded, turtles can no longer be destroyed by tree leaves or walking off the edge of the loaded map. Computers no longer crash when used with RedPower frames.