#1.21.4 Snapshots

2129 messages · Page 3 of 3 (latest)

quick cairn
#

Currently have something like this for a basic geometry loader replacement primer. Not sure all of it is accurate given the state of the kits branch

fleet hatch
#

Two things stand out as incorrect:

  • ItemModels don't wholesale replace custom loaders for items, they are just a better option in certain circumstances
  • ExtendedUnbakedModel doesn't declare the enhanced bake method, it only turns the delegation around so that implementors only have to implement the enhanced one and not the vanilla one. The method is declared in IUnbakedModelExtension
white plume
#

Fabric will likely add a similar system soon, if I get to it soon enough and the next snapshot doesn't refactor everything again

fleet hatch
#

Patches done. One thing we still need to find a good way to reintroduce is IItemExtension#shouldCauseReequipAnimation(), which is a bit of a pain due to the similar but severely less powerful vanilla feature in ClientItem.Properties

radiant field
#

What's less powerful about vanilla's?

fleet hatch
# radiant field What's less powerful about vanilla's?

It only supports playing the reequip animation either always or never (including on slot change). Particularly the detail about the flag disabling the animation on slot change (i.e. scrolling) makes it subpar (this is ignoring the fact that the feature is entirely broken anyway as the animation is still played, the only difference is that the rendered stack is swapped immediately instead of at the low end of the animation - yes, I validated this with an RP in vanilla 21.4 RC3 harold).

#

To be frank, I'm really not sure how this feature is useful

quick thunder
#

Items who data changes constantly don’t keep bobbing like mad

fleet hatch
#

Except that's not what the vanilla flag achieves (our hook which is currently broken does and I'm using it for that myself) because it applies to any case where the target item is the one specifying the flag in its model

quick thunder
#

Thonk

radiant field
#

I guess the cleanest solution will be to (a) patch the vanilla bug and (b) replace all checks of the property with our extension which by default delegates to the property?

fleet hatch
#

Yeah, just deciding how exactly to inject the hook is the slightly painful part, particularly because ClientHooks.shouldCauseReequipAnimation() currently does a few additional checks before calling the item extension and may make the vanilla flag no-op for certain cases, so it might need some careful adjustments as well

#

@royal solar while updating FramedBlocks to the latest version of the port I noticed a flaw in your model loader solution: if a custom loader tries to deserialize a nested model, it can only deserialize BlockModels but not UnbakedModels which makes nesting custom loaders impossible (unless you take the JsonObject representing the nested model, convert it to stringified JSON and put that through UnbakedModelParser.parse() with a StringReader, which is ridiculous). We need to either add an overload of UnbakedModelParser.parse() that takes a JsonObject or go back to the type adapter

deft kindle
#

i dont think this is intended

#

is there a mojira issue on it

thin dawn
#

That link is broken for me on github

#

Ah found the patch

#

That seems fine could be a broken patch

#

Unsure

royal solar
#

I'll add an overload I think it's the best option

#

Ah I just noticed that we need to parse the Transformation in obj loader

#

Not sure what is best then

hidden ravine
#

The issue with the hand swap animation seems to be due to the attackStrengthTicker in Player

thin dawn
#

@royal solar I used the TypeAdapter / JsonDeserializer API to solve the issues with respect to how UnbakedModels are handled when they are declared on an inner level, you can work around that by patching the BlockModel parser, but it was an ugly patch.

I personally think the TypeOf parameters and the fact that you have to use a JsonElement initially are not really a problem at all..... But I guess opinions can vary about it and since the parser when I implemented it only used the interface as a delegate target replacing it would have been pretty easy.

royal solar
#

So I reintroduced an interface with a T read(JsonObject, JsonDeserializationContext) method

#

But now I changed it to read(JsonObject) and if you need to deserialize a vanilla type you use BlockModel.GSON directly... And I'm having second thoughts about this

#

At least with a custom interface we get the chance to document things a bit more which is always nice

royal solar
#

I added back the JsonDeserializerContext parameter but did move everything to vanilla's Gson

#

the patch is still quite short

royal solar
#

it's squashing time now

royal solar
#

a few rejects when updating to rc3

royal solar
#

I'd appreciate it if some folks could test the PR publication with both MDG and NG MDKs to make sure everything works 🙂

ashen cedar
#

datagen seems broken

#

or well

#

not fully ran thinkies

#

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/generated/resources/pack.mcmeta

royal solar
#

yeah I forgot to rerun it in rc3 and the pack version changed I think

swift linden
#

oh i see the port pr is now a thing
i assume that means a all the model reworking and such is done?

time to port my condition builder pr & vanilla data gen prs to 21.4
have been waiting for the model api changes to finalize before porting the data gen pr

royal solar
#

model loading is done

#

model datagen is a big harold moment

swift linden
#

as for the condition builder encouragement pr
should i update the main pr to 21.4 or open a new one
(would it be merged into 21.3 at some point?)

royal solar
#

I don't see a reason to deviate from the usual policy

#

so in any case it would have to be merged in 21.4 first

#

I don't think that backporting to 21.3 brings any value... after all, modders who are on 21.3 should be quick to update 😛

swift linden
#

blobthumbsup il push to the main pr then and rebase that for 21.4

fleet hatch
swift linden
#

yeah can do, tbh tho i was maybe just gonna start that one over on 21.4

#

not seen alot of the changes yet tho
just assumed yall changed model stuff that much
would be easier to just start over

fleet hatch
#

That's true, yeah.

swift linden
#

am i blind or did mojang remove the skipAutoItemBlock feature from BlockModelGenerators in 21.4?

#

that means any block model/state generated using the vanilla provider
will always generate a matching item model now

fleet hatch
#

Kinda looks like they removed automatic item models entirely

#

Wait, nevermind

swift linden
#

i mean my test block just does
blockModels.createTrivialCube(block.value());
which as far as i can see just generates rhe block model and block state
but yet it has a item model too

#

ah no i see model copying is now a thing instead
ModelProvider.ItemInfoCollector.copy
unless thats invoked for a given block item
a plain generic model will be generated

which means its less of a "skip this item" more of a "copy this other model" instead

fleet hatch
#

One important detail is also that they switched from iterating the block registry and checking Item.BY_BLOCK (which would for example return the torch item for a wall torch block) to iterating the item registry and checking instanceof BlockItem which avoids finding an item for a block that doesn't actually have a dedicated item

swift linden
#

well anyways thats the provider made accessible for modded usage
just now needs any additional changes to support our model extensions
and building a model from scratch

fleet hatch
#

One thing that might be nice is to make ModelProvider.ItemInfoCollector#register() public and pull it up into ItemModelOutput to allow mods to specify non-default ClientItem.Properties (it's only a single flag at the moment, but still)

swift linden
#

https://github.com/neoforged/NeoForge/pull/1725
model provider & equipment asset provider have been exposed for modded usage

model generation may still require more patches to support our model extensions
and generating models from scratch

ashen cedar
#

<@&1067092163520909374>

rich rune
#

ono

sand vine
dark bison
#

oooooo

sand vine
#

or not

swift linden
#

The Garden Awakens Drop is Minecraft 1.21.4 with the Pale Garden, Pale Wood, the Creaking, Eyeblossoms, Resin and many more features and improvements. Here's a a comprehensive guide to all the news! #minecraftemployee

This guide was made for Minecraft Java Edition. Many new features and some smaller changes also apply to Bedrock Edition.

slice...

▶ Play video
old bramble
#

uh thanks??

teal patrolBOT
#

New version detected: 1.21.4.

old bramble
royal solar
#

ok just waiting for neoform 😄

supple sky
# old bramble uh thanks??

Mostly likely for content creators / players who want to immediately explore the new content (and haven't been keeping up with the snapshots)

teal patrolBOT
#

Shh! I'm writing this changelog from behind a Pale Oak tree – and I have to be very quiet because the Garden Awakens drop is finally here – and Creakings are spawning in Pale Gardens all across the Overworld! The Garden Awakens brings with it an eerie biom...

swift linden
royal solar
#

on it...

#

pushed, let's see

deft kindle
#

14 bugs fixed

#

.5??

#

Some broken DFU changes afaict

#

So we may be getting a hotfix

royal solar
#

nah it says Future Update not Future Hotfix

supple sky
#

Yep, likely next release cycle stuff

fossil raven
#

Recipe minecraft:mangrove_chest_boat can't be placed due to empty ingredients and will be ignored
Is this normal?

royal solar
#

we probably messed up something in the item->tag replacement

shut storm
#

soooooooooooo
when will @junior epoch close this thread?
/jk

royal solar
#

please open an issue

fossil raven
#

ok

royal solar
#

ok the build succeeded

#

omw to speedrun a blog post now

junior epoch
#

Amint az első stabil verziója a neofotge-nak kijön

supple sky
shut storm
shut storm
supple sky
fossil raven
#

Is this PR open or closed?

rich ferry
#

closed, a new branch was created for 1.21.3 and the PR was merged to .x

deft kindle
#

So is datagen completely working then

#

Or still a wip

royal solar
#

@thin dawn is this correct in NG, at a glance?

thin dawn
#

Is clientData a runtype in the userdev? then no

#

simply change the outer data block to clientData

#

as a name

#

By default it infers from the name

#

If the name should stay "data" then yeah

#

That is the way to do it

#

But that is not what I would recommend

fleet hatch
# deft kindle So is datagen completely working then

What existed previously still works. The only issues are that the CompositeModelBuilder currently disagrees with the respective loader and the new ItemModel system is not supported by Neo's custom model generators. We're still experimenting with nuking the custom providers entirely and instead patching the necessary functionality into the vanilla providers

thin dawn
#

As depending on the convention setup of the user, it will generate a clientData then anyway

royal solar
#

ok better to change the name to clientData then

thin dawn
#

Yep

#

That is what I would do

#

Because it matches more with the way runs are supposed to be used

#

The example you show there is for advanced users that want to have custom runs with custom functionality and names

#

Basically:

runs {
  clientData {
  }
}
``` should suffice
#

If the user does not have any runs configured, but uses conventions, which most do, then it will be named clientData automatically

royal solar
#

alright

fossil raven