- 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.
- Reorganise the HTTP test code to make it a bit more extensible. Add
support for sending messages to connected websockets.
- Provide a friendlier message for too-large-payload errors.
- Return failure reason from Websocket.receive
Fixes#2149.
We remove support for multiple event listeners, and now just use a
simple event queue again. This makes the code a little simpler, and
removes the risk of race conditions where we do do something, and it
queues the event before we call pullEvent().
We removed onNeighborChange in 676fb5fb53,
on the basis that this was no longer needed for peripheral updates.
However, it *is* required for redstone updates, as MoreRed does not
trigger any block updates for bundled cables.
Fixes#2316.
90% just ResourceLocation → Identifier. Also:
- StandaloneModel now needs to detect which atlas to use, as the block
and item atlases are different.
- MultiLineLabel now always draws in white with a drop shadow, so we go
back to manual word-wrapping for now.
I do not like the flow of this page, but did not know how better to
structure it.
We really need a way to write things which use the same type syntax as
parameters. I don't like how this (and events!) are formatted so
differently. It'll do for now though.
There's some nasty hacks here around potion durations on other items.
This should get a bit cleaner in newer versions of the game, once we
switch to data components.
Fixes#2266.