Commit Graph
908 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 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.
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 2026-06-15 22:37:15 +01:00
Jonathan Coates 98f3a718fe Merge branch 'mc-1.20.x' into mc-1.21.x 2026-06-15 22:31:12 +01:00
Jonathan Coates 715d2e01db Bump CC:T to 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 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 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 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 810fdcb5ed Merge branch 'mc-1.21.x' into mc-26.1 2026-05-16 15:30:29 +01:00
Jonathan Coates 5f76d42e4d Merge branch 'mc-1.20.x' into mc-1.21.x 2026-05-16 14:57:45 +01:00
Jonathan Coates 432214f70a Bump CC:T to 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
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 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 3c583dea12 Bump CC:T to 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 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
Jonathan Coates b024d4af9a Merge branch 'mc-1.21.x' into mc-26.1 2026-04-26 18:31:12 +01:00
Jonathan Coates 6c701badc9 Merge branch 'mc-1.20.x' into mc-1.21.x 2026-04-26 18:11:59 +01:00
Jonathan Coates 2c58040ae6 Bump CC:T to 1.118.0 2026-04-26 17:39:17 +01:00
Jonathan Coates c526e9a40c Add commands.getEntity
- Add (very basic) details provider for entities.
 - Add commands.getEntity(selector) function, which gets details for all
   matching entities.

Fixes #2383
2026-04-25 18:22:06 +01:00
Jonathan Coates 813d1151c7 Add timeout to rednet.lookup
Fixes #2364
2026-04-25 17:39:07 +01:00
Jonathan Coates a624f88200 Clear terminal in edit program on resize event (#2401) 2026-04-21 18:26:07 +01:00
Jonathan Coates 451edd57ae Fix NF repositories
Apparently the root one was removed at some point, and now one must use
"/releases".
2026-04-21 18:18:47 +01:00
Jonathan Coates 8be5c28484 Update to 26.1
- Replace vanilla-extract with Fabric Loom for common mod. Now that we
   no longer have to worry about remapping, this probably makes more
   sense.

 - Switch turtle upgrades to use ItemStackTemplate. Yay, immutability! I
   think I might change up the upgrade API here a bit, but not a blocker
   for release.

 - Lots of small things. I'm very glad for our game tests — these caught
   a fair few bugs.
2026-04-13 19:06:44 +01:00