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.
- 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
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.
- 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.
- Add (very basic) details provider for entities.
- Add commands.getEntity(selector) function, which gets details for all
matching entities.
Fixes#2383
- 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.
The shebang/interpreter program is run with the *resolved* path of the
original program. However, this path was not marked with a leading `/`,
meaning interpreters may try to resolve it again.
We now add an explicit leading `/`, to ensure the path is treated as
absolute.
- Bump CC:T Javadoc version, to fix issues with dropping newlines when
converting to Markdown. I'd originally planned to switch to
Markdown-style Javadocs, but tooling is stil a bit lacking
(Intelli's formatting of @params is entirely broken for instance).
- Force more recent ASM version, to allow Forge to run.
If a fluid uses NBT tags, then when we construct our NBT-less
FluidStack, then the fluid does not match and will not be transferred.
Instead, we search the source tank for a matching FluidStack, and use
that directly.
This is a bit limiting if a tank contains multiple versions of the fluid
with different NBT, but hopefully that's not too common.
Fixes#2355
This should avoid allocating slightly less memory *in some cases*. I
dare say there's still ways to OOM here. But also, if you want to OOM
the server, you don't need to place a sign to do it!
Closes#2365.
Post 1.21.1, MoreRed switched to using ExMachina[^1] for handling
bundled redstone connections, meaning our existing integration code
crashed. While the changes seem really cool, the documentation is
lacking, and I just haven't got the spoons to puzzle through it all. For
now, let's just remove support — PRs very much welcome to add it back!
Closes#2309
[^1]: https://github.com/Commoble/exmachina
There's definitely some more work to be done here — I need a datafixer
to move pocket upgrades from the bottom to the top — but it otherwise
seems to work.