From 91c41856c571c603bf3e35c870631ac4f227a2a3 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Sat, 28 Oct 2023 20:00:09 +0100 Subject: [PATCH] Add an "Incompatibilities between versions" page This is largely based on our existing wiki page. I've pruned out a couple of entries which I think are largely irrelevant (config file splitting, Java API changes). 10/10 job by me of changing nothing since 1.13. Shame to break that streak really. --- doc/reference/breaking_changes.md | 67 +++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 doc/reference/breaking_changes.md diff --git a/doc/reference/breaking_changes.md b/doc/reference/breaking_changes.md new file mode 100644 index 000000000..ce9283d3f --- /dev/null +++ b/doc/reference/breaking_changes.md @@ -0,0 +1,67 @@ +--- +module: [kind=reference] breaking_changes +--- + + + +# Incompatibilities between versions + +CC: Tweaked tries to remain as compatible between versions as possible, meaning most programs written for older version +of the mod should run fine on later versions. + +> [External peripherals][!WARNING] +> +> While CC: Tweaked is relatively stable across versions, this may not be true for other mods which add their own +> peripherals. Older programs which interact with external blocks may not work on newer versions of the game. + +However, some changes to the underlying game, or CC: Tweaked's own internals may break some programs. This page serves +as documentation for breaking changes and "gotchas" one should look out for between versions. + +## Minecraft 1.13 {#mc-1.13} + - The "key code" for [`key`] and [`key_up`] events has changed, due to Minecraft updating to LWJGL 3. Make sure you're + using the constants provided by the [`keys`] API, rather than hard-coding numerical values. + + Related to this change, the numpad enter key now has a different key code to the enter key. You may need to adjust + your programs to handle both. (Note, the `keys.numpadEnter` constant was defined in pre-1.13 versions of CC, but the + `keys.enter` constant was queued when the key was pressed) + + - Minecraft 1.13 removed the concept of item damage and block metadata (see ["The Flattening"][flattening]). As a + result `turtle.inspect` no longer provides block metadata, and `turtle.getItemDetail` no longer provides damage. + + - Block states (`turtle.inspect().state`) should provide all the same information as block metadata, but in a much + more understandable format. + + - Item and block names now represent a unique item type. For instance, wool is split into 16 separate items + (`minecraft:white_wool`, etc...) rather than a single `minecraft:wool` with each meta/damage value specifying the + colour. + + - Custom ROMs are now provided using data packs rather than resource packs. This should mostly be a matter of renaming + the "assets" folder to "data", and placing it in "datapacks", but there are a couple of other gotchas to look out + for: + + - Data packs [impose some restrictions on file names][legal_data_pack]. As a result, your programs and directories + must all be lower case. + - Due to how data packs are read by CC: Tweaked, you may need to use the `/reload` command to see changes to your + pack show up on the computer. + + See [the example datapack][datapack-example] for how to get started. + + - Turtles can now be waterlogged and move "through" water sources rather than breaking them. + +## CC: Tweaked 1.88.0 {#cc-1.88} + - Unlabelled computers and turtles now keep their ID when broken, meaning that unlabelled computers/items do not stack. + +## ComputerCraft 1.80pr1 {#cc-1.80} + - Programs run via `shell.run` are now started in their own isolated environment. This means globals set by programs + will not be accessible outside of this program. + + - Programs containing `/` are looked up in the current directory and are no longer looked up on the path. For instance, + you can no longer type `turtle/excavate` to run `/rom/programs/turtle/excavate.lua`. + +[flattening]: https://minecraft.wiki.com/w/Java_Edition_1.13/Flattening +[legal_data_pack]: https://minecraft.gamepedia.com/Tutorials/Creating_a_data_pack#Legal_characters +[datapack-example]: https://github.com/cc-tweaked/datapack-example "An example datapack for CC: Tweaked"