Commit Graph
3125 Commits
Author SHA1 Message Date
Jonathan Coates d1802c591f Don't fall back to dirt when slot is empty
I'm sure this was required at one point, but it seems to work now, and I
haven't spotted any obvious changes in NF's code, so not sure what is
going on. I have no complaints though!
2026-07-22 13:11:43 +01:00
Jonathan Coates 64b00edd81 Bump version to 1.120.1 v26.2-1.120.1 2026-07-05 12:07:14 +01:00
Jonathan Coates 7ba8d20f55 Rename "bottom" pocket upgrade slot to "top"
With the introduction of lecterns exposing modem peripherals, the
bottom peripheral slot can be set by both upgrades and modems. Instead,
we replace the "bottom" upgrade slot with a "top" one.

This is a little more messy than I'd like. I'd originally gone for
"bottom" as it means we keep the recipe the same as before (the upgrade
above goes to the back, the upgrade below goes to the bottom). With this
change, the upgrade above now goes to the top slot, while the one below
goes to the back.

This introduces several breaking changes:
 - pocket.(un)equipBottom -> pocket.(un)equipTop.
 - There is no datafixer for this change. I'm not sure we can viably do
   it, given we're making this change inside an MC version. We can
   always write one for 26.1 -> 26.2 if needed.

Given all the versions this has been available for are in alpha, and on
relatively unpopular versions (1.21.11/26.1/26.2) I don't think it's the
end of the world. Fingers crossed.

Closes #2459.
2026-07-05 12:03:22 +01:00
Jonathan Coates 14f047c80f Deprecate ITurtleUpgrade.createKey
There's no IPocketUpgrade version of this, and I'm not actually sure it
adds much benefit.
2026-07-05 11:30:11 +01:00
Jonathan Coates eac8c13d31 Merge branch 'mc-1.21.x' into mc-26.2 2026-07-05 11:25:12 +01:00
Jonathan Coates cc147c36e4 Merge branch 'mc-1.20.x' into mc-1.21.x 2026-07-02 15:21:04 +01:00
Jonathan Coates b4805fd765 Add tests to check dynamic recipes are well-formed
- Check whether impostor recipes (and other custom shaped/shapeless
   recipes) match the "real" recipe.
 - Check whether our upgrade recipe generator generates valid recipes.
   Reasoning about left/right upgrades (and top/back ones on 26.2) is a
   bit confusing, so this should prevent any errors.
2026-07-02 15:03:00 +01:00
Jonathan Coates e7ba061f84 Replace boring List with exciting ColorCollection 2026-07-01 22:21:58 +01:00
Jonathan Coates 0e8600b10c Clarify text mode changes in 1.109
Fixes #2470.
2026-06-28 22:35:23 +01:00
Jonathan Coates 96d3f3a515 Remove redundant cast
Just Loom caching being broken, not an issue with Fabric itself.
2026-06-23 11:48:28 +01:00
Jonathan Coates d6b31c6c9a Switch to Fabric's new feature renderer API 2026-06-23 11:37:55 +01:00
Jonathan Coates d57c05a7eb Run datagen
Was somewhat blocked on neoforged/NeoForge#3228.
2026-06-17 19:16:34 +01:00
Jonathan Coates 143a5b2918 Replace 26.1 with 26.2 in issue template 2026-06-16 17:38:20 +01:00
Jonathan Coates 51c7c1ce3f Update to Minecraft 26.2
- Move block and item ids into separate API-accessible classes, to
   match vanilla.
 - Switch to Fabric's built-in permission API. We no longer need to
   optionally support fabric-permission-api, which makes things a bit
   simpler.
 - Lots of rendering changes. Crucially, switch monitor rendering back
   to using VBOs, using the new FeatureRenderer system. This currently
   requires mixins on Fabric, but there's a PR open to add an API for
   it in the future.
v26.2-1.120.0
2026-06-16 17:33:30 +01:00
Jonathan Coates 06abd03e9f Re-enable REI integration 2026-06-15 23:32:22 +01:00
Jonathan Coates 5403b7070b Merge branch 'mc-1.21.x' into mc-26.1 v26.1.2-1.120.0 2026-06-15 22:37:15 +01:00
Jonathan Coates 98f3a718fe Merge branch 'mc-1.20.x' into mc-1.21.x v1.21.1-1.120.0 2026-06-15 22:31:12 +01:00
Jonathan Coates 715d2e01db Bump CC:T to 1.120.0 v1.20.1-1.120.0 2026-06-15 22:30:32 +01:00
Jonathan Coates 3ecc17ec90 Update dependencies
- Update Loom — required for MC 26.2.
 - Update TeaVM, using the new reflection API.
2026-06-15 20:33:55 +01:00
Jonathan Coates a83385450f Add/bump foojay resolver plugin
We only have this on the 1.21 branch for some reason. Fixes #2457 once
this is merged across.
2026-06-15 18:43:40 +01:00
Jonathan Coates a76220b395 Revert redundant indexOf
I'd considered moving this into the HostRange in
27137c67f7, but eventually decided against
it. Just didn't fully revert the commit!
2026-06-15 18:39:49 +01:00
Jonathan Coates 27137c67f7 Refactor host rule code a little
Now we just use builtin INetAddress predicates or HostRange, rather than
a mix of custom predicates, sets and HostRange.

Also add some other ranges from the reserved list, and link to that list
to make it a bit easier to find stuff in the future.
2026-06-08 13:47:29 +01:00
Jonathan Coates 57ea451d60 Fix a few small typos
Well, mostly my inability to spell.
2026-06-06 11:39:29 +01:00
Jonathan Coates d1bfb2571d Block RFC 8215-style addresses too.
I don't konw if this actually matters, but better safe than sorry.
Everything here confuses me — my understanding of RFC 6052 was that
private IP addresses cannot be used with NAT64, but AWS apparently
allows it? Not sure if I or Amazon is wrong (or both!).
2026-06-05 09:42:41 +01:00
Jonathan Coates 6e28099379 Fix typo in startup docs 2026-06-02 21:44:53 +01:00
Jonathan Coates 8f8e22a06f Some documentation on startup files
Fixes #2233, closes #1069. I don't love this (and the examples are a
massive hack!), but it's better than nothing.
2026-05-28 17:05:14 +01:00
Jonathan Coates 53f7fbd03f Document internal exception protocol 2026-05-28 12:47:40 +01:00
Jonathan Coates 95d4b99b13 Support Fabric's getCreatorNamespace
Whoops, only a year late. I'd forgotten this got merged.
2026-05-27 12:23:52 +01:00
Ruby H 15a5e776cb Support spawning new parallel functions (#2263)
- Split implementation of `parallel.waitFor{All,Any}` up. Their
   implementations are now sufficiently complicated it doesn't make
   sense to share the core.

 - Support spawning new functions from within `parallel.waitForAll`.

 - Flesh out the `parallel.waitForAll` docs a little.
2026-05-26 14:13:07 +00:00
Jonathan Coates 3e7ce15ba6 Link /computercraft queue and computer_command docs 2026-05-18 15:21:04 +01:00
Jonathan Coates 810fdcb5ed Merge branch 'mc-1.21.x' into mc-26.1 v26.1.2-1.119.0 2026-05-16 15:30:29 +01:00
Jonathan Coates 5f76d42e4d Merge branch 'mc-1.20.x' into mc-1.21.x v1.21.1-1.119.0 2026-05-16 14:57:45 +01:00
Jonathan Coates 432214f70a Bump CC:T to 1.119.0 v1.20.1-1.119.0 2026-05-16 14:57:17 +01:00
Jonathan Coates 585b6d4d39 Block NAT64 addresses 2026-05-16 14:41:37 +01:00
Jonathan Coates 87916cf342 Prohibit specifying interface in IPv6 addresses 2026-05-16 14:37:21 +01:00
Jonathan Coates 39aab8c384 Add cc.base64 module
Don't love the API here, but really trying to overthink *everything*.

Closes #1960.
2026-05-15 14:30:48 +01:00
Jonathan Coates 2f78973159 Update Cobalt to 0.9.9
Closes #2361
2026-05-14 18:53:50 +01:00
sircfenner b23ac67702 Fix min & sec field defaults in os.time (#2436)
These defaults are wrongly set to 12. They should be 0 for parity with
stock Lua.
2026-05-09 10:55:07 +01:00
Jonathan Coates defb713483 Add commands.getDimension()
Debated "commands.getBlockDimension()" instead, to match
getBlockPosition, but I think this is fine.

Fixes #1866.
2026-05-07 13:36:05 +01:00
Jonathan Coates 3abbb4ff4b Remove Fabric Create integration
This hasn't updated to 1.21.1. A separate mod (Create Fly) adds support
for 1.21.1/26.1, but has an incompatible API with normal Fabric, so
wait to see what happens rather than jumping to one or the other.
2026-05-05 11:01:32 +01:00
Jonathan Coates 663ffed433 Stop using our fork of TeaVM
0.14.0 is in maven central, which has all the patches we need.
2026-05-02 17:32:53 +01:00
Jonathan Coates 39a12893e3 Fix handling of integer indexes in CobaltLuaTable
- Add a new LuaTable.get(int) overload to handle getting an integer key
   instead.
 - Update CobaltLuaMachine for more sensible Java->LuaValue conversion
   for looking up keys.
 - Add some tests for our two LuaTable implementations.
 - Randomly reformat two files because spotless is ???

Fixes #2430
2026-05-02 13:50:58 +01:00
Jonathan Coates 5be300dcb8 Update dependencies 2026-04-29 12:18:44 +01:00
Jonathan Coates 3c583dea12 Bump CC:T to 1.118.1 v26.1.2-1.118.1 2026-04-29 12:02:30 +01:00
Jonathan Coates abe3d3410f Remove pathWithExtension
This doesn't actually do anything: paths will never have a trailing
slash, so it's just equivalent to `x..".lua"`.
2026-04-29 11:42:56 +01:00
Jonathan Coates 83eddb01d8 Update supported versions 2026-04-28 16:21:01 +01:00
Jonathan Coates 5adb1aa0d9 Reshuffle shaped recipe code to work with JEI
This still does a bunch of "instanceof ShapedRecipe" rather than relying
on DisplayInfo, so didn't work with our custom recipes.
2026-04-28 11:13:28 +01:00
Jonathan Coates 332fcae244 Update JEI to MC 26.1.2 version
Unfortunately it's entirely broken with our custom recipes — JEI is
hard-coded to only work with vanilla's ShapedRecipe, even if a recipe
returns a ShapedCraftingRecipeDisplay.
2026-04-28 10:26:43 +01:00
Jonathan Coates 4edd30c8c4 Transform breaking overlay to match turtle's rotation 2026-04-28 09:46:26 +01:00
Jonathan Coates d7b115c68a Reorgainse recipe serialisers
- Use a fixed instance for colour/uncolour recipes. This prevents
   issues where StreamCodec.unit gets a different instance than what it
   was created with.

   Fixes #2423.

 - Move RecipeSerializer instances to the recipe class, rather than in
   the mod registry. This matches vanilla's structure.
2026-04-28 09:42:35 +01:00