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!
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.
- 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.
- 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.
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.
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!).
- 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.
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.