#26.1 Snapshots

1 messages · Page 5 of 1

visual basin
#

does client do any lightlevel prediction or is it 100% synced from chunk updates

graceful laurel
#

The client does some light computation

visual basin
#

then yeah you wouldn't waant that to differ on client and server

#

though, mojang could split it up

#

(it's not like they haven't before, look at all these shapes)

#

so you have a "light occlusion shape" which is defined the way the current one is

#

and a "render occlusion shape" which can be defined in client assets

#

(or just use one of the other shapes for light occlusion)

inner creek
#

huh I must be misremembering then

visual basin
#

no you're both right

#

the shape returned by getShape is used for both selection box and raycasts

#

there's no delegation/derivation/splitting there, there's no way to use one shape for a selection box and a different shape for raycasts (except by using the norge api that lets you manually override the selection box rendering)

#

err

#

there's also getInteractionShape but that's a special bunny

graceful laurel
#

The raycast shape can be overridden through getInteractionShape(). Only the outline rendering uses getShape() directly

visual basin
#

no no

#

getInteractionShape doesn't actually override the interaction shape

#

it's a weird bunny

#

the way it works is, whenever the game raytraces against blocks, it raytraces against getShape shapes first

#

then if it gets a hit on a block, it makes a second raytrace against that block's getInteractionShape

#

if it hits that "before" it would have hit the primary shape, it uses the normal of the getInteractionShape's hit vector, but it retains the hit position of the original raytrace

#

vanilla example, cauldrons, they override getInteractionShape to make the interior convex instead of concave

#

if you click inside the cauldron, the hit vector is still inside the cauldron, but it points UP

#

visual inforgraphic

inner creek
#

they probably do this so that you can click inside a cauldron to place a block ABOVE the cauldron

visual basin
#

the effect of which is that if you click inside the cauldron with a blockitem, it places the block above the cauldron, yeah

#

but anything that cares about the hit position will still use the inside position

graceful laurel
#

I have snapshot 7 almost compiling. A couple notes:

  • The dynamic fluid container model and almost the entirety of UnbakedElementsHelper is completely broken due to the changes related to the quad now storing which layer it renders in
  • The block submit render patches are broken, we'll need to decide whether we want to keep vanilla's approach of moving submits with any translucent geometry entirely to the translucent "feature" pass (compared to snapshot 6 vanilla still renders the quads to layer-appropriate buffers, at least for moving block and block submits, block model submits are still single-rendertype) or just the translucent parts (which is not hard to do either) like the patches currently do
  • I'm not sure I like how MutableQuad and QuadBakingVertexConsumer deal with BakedQuad.SpriteInfo now, that may need some additional helpers
  • TextureUtil.writeAsPNG() does texel decoding now to be able to export non-RGBA formats like depth, so we'll need to implement decoding for our two custom formats (not sure how exactly that needs to look)
#

I will dig into the first point properly either later tonight or tomorrow, I just need to look at something else for a bit kek

lavish trellis
#

I am very curious about how you plan to handle the block models now

inner creek
#

block models have changed? :O

lavish trellis
#

Well yes

inner creek
#

I haven't looked at all at the code changes this week

graceful laurel
lavish trellis
#

Specifically the method that returns whether the model might use translucency in any possible state without receiving any context

#

Vanilla uses that to coerce the whole model to render the feature during translucent feature rendering or to render the whole model using the translucent render type

graceful laurel
lavish trellis
#

In vanilla this works fine because an incorrect decision can only happen with a WeightedVariants, where only some of the variants use translucency, and that is not a big deal because it's a very rare case. However with custom models that depend on level state that could be an issue.

lavish trellis
#

Though level context is not available to the block submit and block model submits so I wonder if there's an easier way

#

Increasing complexity of custom models isn't great anyway

graceful laurel
# lavish trellis Increasing complexity of custom models isn't great anyway

I could do the same thing we did for selecting the block outline phase: https://github.com/neoforged/NeoForge/blob/1.21.x/src/client/java/net/neoforged/neoforge/client/ClientHooks.java#L957-L973. It's comparatively expensive for dynamic models though and still relies on the level access. A level-aware overload of hasTranslucency() on the other hand could avoid doing all the geometry generation and instead just check the minimum amount of metadata necessary to decide whether the model is translucent. Dynamic models which need level access are already effectively broken with the vanilla block model submit. The model in FramedBlocks could for example safely return false from the vanilla method since it's guaranteed to only generate cutout geometry without level access.

plucky hollow
#

initial implementation and introduction of FluidInstance and FluidStackTemplate (#2967)

i have also been tinkering with a super type for the templates StackTemplate<TRaw, TStack>
but unsure how much we would actually want to introduce something like that

graceful laurel
plucky hollow
#

tbh thats actually something we should rly be doing more of
less relying on raw values and using holders

plucky hollow
graceful laurel
#

Right, nevermind, I introduced that NPE partway through my refactor facepalm

plucky hollow
wintry flower
#

It's not super fun but one should really go through ItemStack method-by-method and adjust FluidStack accordingly

plucky hollow
wintry flower
#

Ah nice then indeed FluidStack should be adjusted accordingly

plucky hollow
#

il add that to my fluidinstance pr

#

seems like a good place for it

robust pike
#

My brain is having a fun time remembering that all texture references are now materials, and all materials are now sprites

graceful laurel
#

Since textures now control the render layer of block and item models, what should we do about our named render type system? My preferred solution would be to nuke it entirely, though I can also see potential benefits of trying to hammer it into Material as an extension on top of vanilla's force_translucent flag

fresh gyro
graceful laurel
#

That's my thought as well, yeah. The vanilla solution works perfectly fine and if I do need full control over the render type then I'm probably generating the quads myself anyway

fresh gyro
#

That, but extracting the RenderType from the Texture, is what I personally always wanted

#

It is the behaviour that is the most natural

clear zinc
#

from what I saw it only allows you to push it into the translucent pass

#

what if you want to do something custom

graceful laurel
#

Custom ChunkSectionLayers have never been supported and won't be in the future either

fresh gyro
#

Yeah as XFact sait CSLs were always hardcoded to a fixed set, and any other concept was never supported by us, mojang or basically any of the rendering mods (that I am aware of). So I don't think that it would be an issue no.

clear zinc
#

weird

#

maybe I'd just used it in tandem with a custom CSL injection, can't remember what I did

paper cedar
wintry flower
#

Is everything cutout now?

agile hull
#

Cutout is things with descrete alpha variance, where as continuous is transparent

#

And solid is constant solid alpha

untold cypress
robust pike
#

Welp, I finally got through all the changes for the primer, but it's definitely not going to be released today. Most of my remaining todos is writing out the rendering changes again

graceful laurel
# wintry flower How do you configure cutout vs solid?

It's fully determined from the texture and the entry declaring it in the model:

  • If the texture entry declares "force_translucent": true, then TRANSLUCENT is used
  • If the texture has any half-transparent pixels in the area covered by the quad then TRANSLUCENT is used
  • If the texture has any fully transparent pixels in the area covered by the quad then CUTOUT is used
  • Else SOLID is used
untold cypress
#

So it's also UV aware?

graceful laurel
#

Yes

untold cypress
#

Nice

robust pike
#

Huh, I don't think the chat permissions actually validate anything serverside.

indigo venture
#

yeah its all client side

zenith dove
graceful laurel
#

Nope

robust pike
#

(Obviously don't do that)

#

Okay, leaving the twenty rendering subsections for tomorrow. I'm too tired to properly brain them out today

untold cypress
#

thonk now I'm wondering in which case you'd actually need to force translucent

graceful laurel
#

If you have two overlayed elements similar to the grass block and your "base" is translucent while the "overlay" is cutout then you need the flag to preserve the order

robust pike
#

Currently, it's applied to panes, glass, and redstone dust

inner creek
#

(alpha clipping is coded via the shader, mind you)

graceful laurel
untold cypress
inner creek
#

no that's due to batching

#

all solid and cutout are drawn first

#

translucent is drawn later and internally sorted based on a loose idea of distance from the camera

#

insert image about transparency sorting making graphics programmers cry

untold cypress
#

thonk how does forcing translucency help then, if that's the case
It just sounds like the base would always be drawn last

#

I've had race conditions with solid bases and cutout overlays before, but I always solved those by just making the overlay cube minimally bigger

inner creek
#

z-fighting is actually a rounding issue not race condition

untold cypress
#

Well, it was in my case as it worked on some restarts and wasn't consistent
unless that's not a race condition

inner creek
graceful laurel
# untold cypress <:thonk:932605815221788672> how does forcing translucency help then, if that's t...

In the simplest case you have a list of two quads, one for the translucent base and one for the cutout overlay. If the overlay is actually rendered as cutout, then it renders behind the base because all solid and cutout quads render first and then all translucent quads render. If you force the overlay into the translucent pass with that flag then both quads are rendered in the translucent pass in the order they are in the list. The quad sorting should be a stable sort, so they stay in that order

inner creek
#

the rounding depends on start and end positions, AND on view angle

#

but if you mean your polygons would be consistently in front or consistently behind, then it's weird and I have no idea why it would happen

untold cypress
untold cypress
inner creek
#

ugh too annoying typing on my phone from bed I'll just do the thing I'm supposed to be doing and try to sleep

robust pike
#

I spent way too long wondering why j25 wasn't working only to find out I need to update intellij... alot

#

Like the last time I updated it was when j21 came out

#

Good job me

zenith dove
#

has to be 2025.3 or higher for everything to work correctly, yeah. we (fabric) have it mentioned in our porting docs, would probably be worth mentioning in yours as well

robust pike
#

I can't get rid of the AI chat thing on the right sidebar...

#

Ok figured it out after disabling all the ai plugins

patent kelp
#

With Java 24+, the classfile API is finally available 🥳
I remember hearing somewhere that Fabric Mixin will remain on asm. Is that still the case?
And how will this affect neoforge transformers?

wintry flower
inner creek
paper cedar
#

i like the new ui

bitter gorge
#

classic ui only

#

the new ui is ass

inner creek
#

I dislike the new UI because it does the thing I hate of hiding UI for no reason

#

burger menu instead of a menubar, icon-only tabs, etc.

#

I have a 4k monitor I don't need to maximize my screen real estate

#

my brain works better if I see what I need

cursive lily
inner creek
#

yes I did some tweaking while bored at work one day

#

and I managed to configure everything to be mostly how I like it

#

and by that point it looked like the classic UI just a bit jankier

#

cos it was clear that I was reaching the limits of how the new UI was intended to be used

hushed canopy
#

And there's not really a nice way to support, like, some transformers using one and some using the other -- because you'd acquire a new fun cost of having to translate back and forth to bytes between the two which would be slow

#

Unless there's some way to wrap one API around the other? The APIs don't look like they'd make that nice but maybe I'm mistaken

agile hull
#

The classfile API is very immature still imo

hushed canopy
patent kelp
hushed canopy
#

Cause, well, it's fabric mixin

#

Sure, you could fork it and make a java-25-only version of mixin but that is a heck of a lot of work (basically rewriting the whole thing and then maintaining it...) for... really, very little benefit at the end of the day

agile hull
#

Doesn't classfile support older versions?

hushed canopy
#

You need to actually have the API there

agile hull
#

Ah, fair enough

#

You have to boost the java version first

#

Which a lot of legacy envs do, but not all

hushed canopy
agile hull
#

<Sends ai generates response about making a mistake/j>
-# obviously I am an ai and anything I say may be wrong, so please double check 🙂

patent kelp
hushed canopy
#

Even then, 17 and 21 will continue to be in use for a long time

#

Heck, 17 is still in LTS

agile hull
patent kelp
hushed canopy
patent kelp
#

Oh, fabric...

hushed canopy
#

Right. Which uses mixin too...

#

So either you fork mixin, completely rewrite it, practically, to use the classfile API, and have to deal with the awful double-support you'd need in mixinextras or the like... or you just keep using ASM

patent kelp
hushed canopy
#

And like. There's not really any huge downside to just sticking with ASM

#

Or you abstract all of the classfile/ASM API into something else that mixin can use and then have it use that, but... that's obviously also a lot of work for marginal gain

patent kelp
#

Let's just rewrite Mixin to classfile api using AI /s

agile hull
#

<segfaults>

wintry flower
#

turns out it's not so bad

jagged ridge
#

On the other hand it appears Bus has gotten a whole one behavioral change since early 2024, so that might not be much work

wintry flower
#

correct, it's extremely stable

hushed canopy
plucky hollow
#

Pack news in Minecraft 26.1 Snapshot 7 include new data-driven mob sound variants and new capabilities for block models. Here's a showcase video! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial upd...

▶ Play video
robust pike
graceful laurel
graceful laurel
#

I have simplified the block submit patches to the bare minimum of allowing dynamic block models to control the pass they render in via the level-aware hasTranslucency() overload I added. Extended block model submits are gone for now, though in hindsight I'm likely gonna re-implement them with the necessary additional context.
Snapshot 7 almost compiles now, the only remaining issue is format decoding in TextureUtil.writeAsPNG(). Vanilla now decodes non-RGBA formats into something that produces a useful visual output such as a grayscale image for depth32:

IntUnaryOperator decodeTexel = switch (texture.getFormat()) {
    case RED8 -> byteOffset -> {
        int luminance = Byte.toUnsignedInt(data.get(byteOffset));
        return ARGB.color(luminance, luminance, luminance);
    };
    case RED8I -> byteOffset -> {
        int luminance = data.get(byteOffset) + 128;
        return ARGB.color(luminance, luminance, luminance);
    };
    case RGBA8 -> byteOffset -> data.getInt(byteOffset);
    case DEPTH32 -> byteOffset -> {
        float depth = data.getFloat(byteOffset);
        int luminance = ARGB.as8BitChannel(depth);
        return ARGB.color(luminance, luminance, luminance);
    };
};

The byteOffset is the index of the start of a texel according to the format's pixel size. For depth32-stencil8 this means I should be able to just reuse the depth32 decoder. As far as I understand, depth24-stencil8 uses a 24bit integer for depth instead of a float, so I assume I'd have to read the value as an int, mask off the top 8 bit (the stencil mask), reverse the bytes if it's a big-endian system and then shift it down by 16 bit to get it into the 0-255 range for an RGBA color channel (or, a bit more clever, read it as an int and then pull out the first or third byte if it's a big endian or little endian system respectively). @gray frigate does this sound correct or am I on the completely wrong path here?

gray frigate
#

im, not sure if the packed depth/stencil formats can unpacked like this

#

AFAIK, implementations are free to pack a D24S8 in either order

#

D32F_S8 is also free to be done as either two framebuffers, or interleaved with 3 wasted bytes, afaik

graceful laurel
#

So, in other words, I'm better off either producing an empty image or throwing an exception

gray frigate
#

personally, id throw an exception for it

graceful laurel
#

That would be my preference as well

gray frigate
#

if someone really needs to visualize the buffers, there are valid ways to get it by attaching the buffers to a shader and drawing to a dedicated depth, uint, unorm, stecil, whatever image and reading that back out

graceful laurel
#

Wouldn't <preferred graphics debugger> also allow looking at these?

gray frigate
#

yes

#

also, referencing the VK spec (same hardware, same behavior), for D32F_S8, its pretty clear that the impl can do either

VK_FORMAT_D32_SFLOAT_S8_UINT specifies a two-component format that has 32 signed float bits in the depth component and 8 unsigned integer bits in the stencil component. There are optionally 24 bits that are unused.
#

"optionally 24 bits that are unused" means that there may (interleaved) or may not (two buffers) be that wasted memory, up to the implementation, its allowed to do either

#

D24S8 will be interleaved but what the layout is past that isn't defined like it is for all other pack formats

graceful laurel
#

Makes sense

gray frigate
#

mostly likely, the stencil would be put in the high-order byte (3rd byte), because it has a 24bit int immediately, but theoretically it doesn't have to be

sick crystal
graceful laurel
#

What does non-standard mean in this case?

sick crystal
#

In this particular instance, crossblock. Both tinted and non tinted

#

I haven't tested others

graceful laurel
#

I assume you mean the block/cross parent model. That doesn't make any sense though considering vanilla itself uses that parent and it works just fine for them

sick crystal
#

So that right there is straight up. blockModels.createCrossBlock("TheBlock", PlantType.NOT_TINTED)

#

I had to make a custom passthrough with MultiVariant model = plainVariant(PlantType.NOT_TINTED.getCross().extend().renderType("cutout").build().create(block.get(), PlantType.NOT_TINTED.getTextureMapping(block.get()), blockModels.modelOutput)); blockModels.blockStateOutput.accept(createSimpleBlock(block.get(), model));

#

I agree though, it should just work because saplings, flowers, heck grass

#

What's crazy is it worked for the item

graceful laurel
#

Items only render with cutout or translucent, never with solid

sick crystal
#

Ah TIL

#

I guess that makes sense though

lethal onyx
inner creek
#

Snapfrog

rain herald
#

im hoping for a nuke today

#

something big and dramatic

#

something teased on bluesky beforehand like the dimension stuff was

#

we're nearing the end of the snapshot cycle so not much more time to get stuff into 26.1, which is where i will be stuck for the year

lyric bobcat
#

you get 1 baby mob and a few mysterious rendering refractors, take it or leave it

rain herald
#

as long as the rendering refactors r dramatic

#

and potentially troublesome

strong wing
rain herald
#

ah yes, the minors and miners drop

steady heath
#

Data-driven fluids thinkiedown

rain herald
#

can we get bearable fluids first

paper cedar
#

Milk Fluid?

rain herald
#

fluids without the hair ripping

paper cedar
#

And Honey 🙂

rain herald
#

fluids without the stacks of patches

#

they probably will do data driven fluids at some point but we'll be able to predict it like we have items via code changes to prep for it

lethal onyx
rain herald
#

one change i want is the potions in cauldrons thing from bedrock

untold cypress
#

was about to write that kek

#

but there's also the dye stuff

rain herald
#

that requires a refactoring of the cauldron and an addition of a potion fluid

#

would be nice

#

i have a feeling nobody wants to touch fluids rn tho

untold cypress
#

minecraft:potion_cauldron and done

rain herald
#

itd have to be a BE

untold cypress
#

sure, where's the problem with that?

rain herald
#

meh kinda separates it from the rest of the cauldrons, ig its not required but i'd prefer a single CauldronBlock with a BE handling fluid and all that

untold cypress
#

well, lava is already different

rain herald
#

is it?

untold cypress
#

it's minecraft:lava_cauldron iirc

rain herald
#

yeah

#

there r 3 cauldrons

#

it should just be 2 for empty and filled

cursive lily
#

4, if I remember correctly. Empty, water, lava, powder snow.

rain herald
#

wut

untold cypress
#

right, powder snow is also cauldronable kek

rain herald
#

powdered snow has a cauldron?

#

interesting

untold cypress
#

yeah, that's how you can get it without it spawning naturally

#

place a cauldron in a snow biome

rain herald
#

hmm so we'd need to turn powdered snow into a fluid as well

untold cypress
#

like you get water during rain, you get powered snow during snow

rain herald
#

which would be excellent!

#

AND

#

AND

untold cypress
rain herald
#

powdered snow fluid could be the path to lava logging and snow logging!

#

mojang im cooking

#

we need a fluids drop

untold cypress
#

how would that help with the blockstate mess kek

rain herald
#

waterlogged becomes fluidlogged?

#

what is that state used for rn

untold cypress
#

it determines if getFluidState should return nothing or water

rain herald
#

ew

#

ok that should be changed

untold cypress
#

mek's lava logging uses an int property so 0 nothing, 1 water, 2 lava

rain herald
#

ew

untold cypress
rain herald
#

fluidstate should be stored with blockstate in the chunk

#

so basically the entire logging system needs redone

untold cypress
#

they just need more trees in that one, so they can call it "logging and logs"

rain herald
#

i feel bad for the 1.13 devs

#

they were cooking the water update of all time but backwards compat stood in their way

indigo venture
inner creek
#

not double

rain herald
#

meh if u use getOrDefault it'll only be an issue if you waterlog every single block

inner creek
#

I mean with the current world format

#

the array contains AT LEAST 4 bits per entry

#

so it would likely be double

rain herald
#

does the block state map store air currently

inner creek
#

the way the storage works

#

is that each subchunk gets a 16x16x16 (4096) entry array

#

this array contains numbers from a blocsktate palette specific to the section

rain herald
#

ah right

#

so more efficient but takes more space

inner creek
#

if you have a subchunk that is 100% air, it is omitted

#

but if it is 100% stone, it still takes up 4 bits per entry

rain herald
#

well if theyre working on world storage now is the time to improve it

inner creek
#

1..16 states -> 4 bits
17 .. 32 -> 5 bits
and so on

rain herald
#

I still think universal logging would be epic, or at least blocks that arent full

inner creek
#

yes

#

I considered implementing it myself into forge (before the fork)

rain herald
#

mm that's a gameplay change

#

and would require a lot of patches no?

#

seems better for a mod

inner creek
#

yes

#

the main issue is that a lot of calls to getFluidState do NOT go through level

#

but rather call block#getFluidState directly

rain herald
#

ah

inner creek
#

if I remember I counted some > 100 references to block

#

and many of them were in places that do NOT have level+pos context

#

that was around 1.15-1.16 mind you

#

the number could have changed a lot

#

for the better or worse

rain herald
#

oof the stone age

inner creek
#

over 100 hits on blockstate.getFluidState()

#

in 1.21.1

#

I'm at work so that's all I have at hand

mental thorn
untold cypress
paper cedar
#

powered snow sounds like a typical typo you'd see in minecraft already when refering to powdered snow 😛

zenith dove
# paper cedar powered snow sounds like a typical typo you'd see in minecraft already when refe...

powdered snow is also a typo
https://minecraft.wiki/w/Powder_Snow

Minecraft Wiki

Powder snow is a non-solid block found in snowy slopes and groves, or collected from snowfall using cauldrons. It slows down and deals freezing damage to most entities within it. Wearing any leather armor prevents freezing, and worn leather boots allow powder snow to be walked on and climbed through. It can only be obtained using a bucket and me...

untold cypress
old pier
#

Powered snow but you use it to make a super snow golem that fires like a machine gun and can damage all mobs

untold cypress
#

with the powered creeper effect?

inner creek
#

powdered snow golem should be a golem that can draw stuff into itself and consume it through freezing

#

instead of shooting snowballs

untold cypress
#

but we're talking about a powered snow golem, not a powdered snow golem

plucky hollow
#

wh.. why are we all talking about powdered snow?
its snapshot day, we should have pixfrog's on our brains not snow

untold cypress
#

well, you see, it started with fluids

plucky hollow
#

mojang, please

mental thorn
plucky hollow
#

another reason to port it over

untold cypress
#

well yes, that was part of the conversation harold

plucky hollow
#

version parity

#

also while implementing potion cauldrons they should just move cauldrons from being 1 block per contained liquid
to a single block/BE that stores the fluid on the BE

#

that or they introduce data attachements in vanilla and attach fluid data to the cauldron block

zenith dove
agile hull
plucky hollow
#

well less "block" more "block pos" so basiclly yeah

agile hull
#

Hmm

#

Like a map stored alongside the level / chunk,or something different?

#

I should read it lol scratch that, the docs only mention b.e.s, entities, levels, and chunks

plucky hollow
#

but the whole potion cauldron part i had to do some jank iirc to get working

#

and wouldnt be suprised if breaks when other potion cauldron mods are installed

plucky hollow
#

its up to you to handle block changes and such

agile hull
#

Ah

#

Okay, so not simple 🙂

#

Would be interesting to have a native impl, but I suppose you probably want more granular control of when the attachments are invalidated

untold oyster
untold cypress
#

double, double toil and trouble fire burn and cauldron bubble …

zenith dove
steady heath
#

No snapshot?

plucky hollow
#

too early still got an hour

untold cypress
plucky hollow
#

<t:1771344000:R>

#

yall are too early

plucky hollow
#

so given that snapshot-7 compiled and got the greencheck should we merge into the main porting branch and push out a quick build before snapshot-8?

steady heath
#

...

quartz spadeBOT
#

New version detected: 26.1-snapshot-8.

plucky hollow
#

Minecraft 26.1 Snapshot 8 brings us the last baby mob revamps and stone cutting of deepslate to cobbles! Check out all the news here! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video th...

▶ Play video

Minecraft 26.1 Snapshot 8 introduced minor pack versions with some smaller news and fixes. Here's a showcase video! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that aims to be the ...

▶ Play video
next harness
visual basin
#

final gameplay features
now all they have left to add is the new bugs

cursive lily
#

on it

shy valve
#

did i miss something. is this drop just baby mobs, the goldelion, and.... that's it?

visual basin
#

there's backend changes too

strong wing
#

Quite a few Rendering Changes

obsidian perch
#

IME SUPPORT

old pier
#

Dang. That is a little disappointing even for a drop.

zenith dove
obsidian perch
#

Also borderless fullscreen

#

I think

sleek perch
#

Or IME "support"?

plucky hollow
shy valve
obsidian perch
sleek perch
#

Input Method Editors (IME) candidates will now be shown in-game (on supported platforms, currently Windows and macOS) above currently edited text field

#

Oh neat

obsidian perch
#

Which on Windows at least is great news

sleek perch
#

Can we ask for an example screenshot?

strong wing
sleek perch
#

Being an IME user

#

Or, maybe, let me try to download the latest snapshot

obsidian perch
#

Yeah I'm curious to try it out too

visual basin
sleek perch
#

Yeah good luck

zenith dove
zenith dove
quartz spadeBOT
#

Get ready to meet the last baby mobs waddling into testing! This week's snapshot brings you the final gameplay features of our upcoming drop. Happy mining!ChangesUpdated the visuals of more baby mobsAdult horse's blackdot markings have been updated to be v...

sleek perch
#

You're late

obsidian perch
plucky hollow
#

oh fun, entity fluid interactions moved to its own class now

sleek perch
#

I am downloading the latest snap rn

#

Servers be slow

obsidian perch
#

The old IME setup was so bad man. It wouldn't follow UI scale

strong wing
sleek perch
#

Someone might be DDoSing Mojang lol

#

With all those snapshot downloads

obsidian perch
plucky hollow
#

that goof got fixed

graceful laurel
#

👌

obsidian perch
#

@sleek perch Looks pretty good

graceful laurel
obsidian perch
#

And it has proper UI scale

plucky hollow
obsidian perch
#

Like, it scales the OS window to match the game

sleek perch
untold cypress
obsidian perch
sleek perch
#

It breaks when you press space

sleek perch
obsidian perch
#

What the

plucky hollow
#

new cobbled type for those who use the block family system in datagen

sleek perch
#

This might help

obsidian perch
#

It works for me

#

I'm also in full screen

#

Well, not full screen, but maximised

sleek perch
#

After pressing space

#

And after confirming

#

So yes

obsidian perch
#

Yeah space completely breaks it

sleek perch
#

So yes, it's still quite broken

obsidian perch
#

But then after confirming, it works

sleek perch
#

Well yes

#

Except you know

#

I'd rather not confirm blind

obsidian perch
#

Yeah...

plucky hollow
#

ooh a nice debug flag for us linux guys

sleek perch
#

The fuck am I writing now?

obsidian perch
#

Yeah...

sleek perch
#

Sure though

#

Lots of cumulonimbus clouds over here

#

I think that's their name

obsidian perch
#

I'm not surprised that it's a bit broken though. The Windows docs on this stuff are... not great

sleek perch
#

I think it's not because of Windows though

lucid tree
#

Whats IME do exactly?

visual basin
#

it's for typing characters that aren't on your keyboard

plucky hollow
#

2 partial ticks

obsidian perch
#

Lets you type more complex languages with a latin keyboard

untold cypress
obsidian perch
#

Ah, it's in GLFW

high sonnet
#

So did we get a new snapshot?

visual basin
#

yes

high sonnet
#

Did they do anything useful?

untold cypress
plucky hollow
tawny spireBOT
#
sleek perch
modern coyote
sleek perch
#

All Japanese streamers just go full ローマ字

visual basin
sleek perch
#

Which LWJGL BTW?

obsidian perch
sleek perch
#

With or without FFI backend?

modern coyote
#

3.4.1, seemingly(?) with FFI

sleek perch
#

Oh neato

modern coyote
#

wayland is explicitly forced off unless DEBUG_PREFER_WAYLAND is on in SharedConstants

#

and a GL debug context is always requested

plucky hollow
sleek perch
obsidian perch
#

Idk which is more common tbh

sleek perch
#

I like drawing cats

modern coyote
#

it requests window hint 131088 be set to 1

#

that doesn't match up with any window hint in the GLFW.h

obsidian perch
#

Wait, since when does music not pause when you pause the game?

modern coyote
#

Found it

#

it's a hidden window hint in LWJGL!

#

GLFW_SOFT_FULLSCREEN

#

seems to be for that IME to work

high sonnet
obsidian perch
#

Yeah, it's like a weird non-exclusive, but non-borderless hybrid

modern coyote
#

i found the code for it

#
// On Win32, the window behaves in a special way when the window covers the screen exactly.
    // In this case, the window is a strong exclusive exceeding HWND_TOPMOST and it doen't
    // display OS notifications such as the sound volumn changed.
    // This behavior can be deactivated by shifting the size slightly.
    // This is especially necessary for the IME(Input Method Editor/Engine) to display properly.
    // This can also effect transparency to fullscreen.```
visual basin
#

// This behavior can be deactivated by shifting the size slightly.
concern

modern coyote
#

it's beautiful

obsidian perch
#

Lol so it's one pixel taller than the screen

#

Lovely

modern coyote
#

On X11, softFullscreen does something completely different

#

setting NET_WM_BYPASS_COMPOSITOR to 2 (compositing forcefully enabled)

modern coyote
#

turns out this affected the reporting lol

plucky hollow
modern coyote
#

the image is perfectly scaled

zenith dove
west thorn
#

I'll say I'm not happy with state of that IME GLFW PR that got merged. It's jank, not fixable from game and more importantly can't be disabled, so had to implement all of that instead of going back to root input method

modern coyote
#

i mean

strong wing
modern coyote
#

if it has the unintentional side effect of removing the windows "optimization" for fullscreen, that sounds like a win to me too

modern coyote
#

though I don't know how bad that is these days

zenith dove
west thorn
#

full screen is ok-ish, but rest of that PR makes me worried

zenith dove
visual basin
#

you melt cobblestone into stone in a furnace

west thorn
#

I'm pretty sure that candidate window popping under screen is their bug, since it works once you cancel once (and minimized game)

modern coyote
#

honestly, I have no clue what they're trying to do for macOS with soft fullscreen

#
 if (_glfw.hints.window.softFullscreen)
            [NSApp setPresentationOptions:NSApplicationPresentationHideDock |
                                          NSApplicationPresentationHideMenuBar];
        else
            [window->ns.object setLevel:NSMainMenuWindowLevel + 1];```
west thorn
#

Also, when reporting IME bugs, please be clear about what it affects. We don't control candidate window, but if there is something wrong with preedit, it might be us

modern coyote
#

instead of putting the window above the dock/menubar, they hide both, which sounds like... something that should have been done to begin with?

west thorn
#

Also, we had to downgrade fron char+mod input callback to just char because they just forgot other one existed

modern coyote
#

The cobblestone change has now been marked as intentional (in the changelog) seemingly

obsidian perch
untold cypress
steady heath
#

yes

strong wing
#

thinkies til

patent kelp
# modern coyote ```objc if (_glfw.hints.window.softFullscreen) [NSApp setPresentati...

Minecraft works terribly in fullscreen on macOS aolgroove
Instead of creating a new desktop space and expanding there (like the green button does), it just becomes huge on the current one, making it very hard to manage the rest of the Mac. But if you fullscreen Minecraft using the green button, everything works fine, so I have no idea what the in-game fullscreen option is even for

visual basin
robust pike
#

My brain broke for a second. A blaze3d class is implementing an interface from minecraft

#

DeviceTracker for those curious

steady heath
coral lion
sleek perch
robust pike
#

What does GLFWpreeditfun do? I'm having trouble finding any information

#

It seems like a snapshot feature as I don't see it in 3.4

robust pike
#

Awesome thanks

west thorn
#

but we can't postpone LWJGL update anymore (it complaints a lot about Java 25), sooo, well, we roll

west thorn
obsidian perch
#

One other thing that might be nice is if the text appeared in the text box instead of having a separate completion window

#

Like it does in non-graphical applications

sleek perch
#

That's UX that can be handled later I assume

obsidian perch
#

Fair

sleek perch
#

I haven't tested how the IME handles kana switching in the middle of inputs

#

But I assume it shouldn't matter

west thorn
#

would on-the-spot input be nice? yes
do we have time right now to work on 3 different text input widgets, all which are quite fragile, to handle 2nd and 3rd kind of suggestions? not really

#

hence, over-the-spot

sleek perch
#

2nd and 3rd kind?

west thorn
#

preedit has two styles

#

ok, that one is less of an issue

#

but having to line break preedit suggestion in multine line edit? deepest of backlogs

sleek perch
#

As a mere user of an IME, this fascinates me; I assume it's the input, and then the text selection

west thorn
#

API gives to us parts of text as groups, one of which is focused. It also gives us cursor position.
When window is active, all inputs go through it, so we can only react to those events until user confirms input

runic anchor
# cursive lily ~~on it~~

Can you merge a bug to invert dinnerbone behavior so all mobs are upside down except for dinnerbone mobs

west thorn
#

It's doable, don't get me wrong, after all pretty much every editor handles it
but they don't have to work with janky sign edit code. Or book and quill

sleek perch
#

Hehe, that's fair

#

Legacy is legacy

#

Still... I'm impressed by the integration

obsidian perch
#

Does someone at Mojang use IME?

west thorn
#

at least now I can type in aesthetics

sleek perch
#

I once enabled it by mistake and I spent an entire hour typing like that because I couldn't figure out how to get it off

obsidian perch
#

What I hate is half-width katakana. It hurts my head

west thorn
#

I apologise for any international incidents this might cause

#

wouldn't be our first time, though

sleek perch
sleek perch
#

Congrats

west thorn
#

*don't

obsidian perch
#

Halfwidth does literally give me a mild headache when trying to read it :P

west thorn
#

I can say "zażółć gęślą jaźń" though

obsidian perch
#

Is that Swedish?

visual basin
#

polish

untold cypress
robust pike
sleek perch
#

The face in the middle really makes it hard to see word boundaries

robust pike
#

yep yep

#

Okay time for lunch. I can get back to scouring the glfw docs for number constants afterwards

paper cedar
#

Fullscreen no longer uses exclusive mode
Excellent

plucky hollow
paper cedar
#

ah, just go ahead and merge it in, imho

plucky hollow
#

26.1.0.0-alpha.12+snapshot-7 - latest 26.1 porting version

lethal onyx
untold oyster
sleek perch
#

The fluffy white clouds

sleek perch
untold oyster
#

yea, fluffy white clouds are cumulus clouds

#

thank you GIF picker for having this exact line

untold cypress
#

No cirrocumulus 😔

lethal onyx
untold oyster
#

IIRC, cirrus are those feathery clouds

#

but anyway

untold cypress
#

That chart doesn't show height which is kinda important

#

I held a whole presentation about how to get that data from satellite images kek

untold oyster
#

there was a better image which had heights, but I only found it a few moments after I sent that one

untold cypress
#

Nimbostratus can be higher/bigger too, but yes

rain herald
#

i dont get the difference in fullscreen

#

it feels the same

inner creek
#

difference of?

#

you mean Fullscreen no longer uses exclusive mode?

#

do you have more than one monitor?

rain herald
#

not atm

inner creek
#

there are two things that happen when you use exclusive mode fullscreen instead of borderless maximized

#

first is that alt-tabbing to another program forces the program to minimize because it forces the desktop to regain control of the monitor

#

second is that while fullscreen exclusive is enabled, you can't move the mouse outside of the current monitor and into other monitors

#

borderless instead just uses a capability Windows has to do pseudo-fullscreen

#

other windows can be in front, and the mouse can move to other monitors, but the taskbar is allowed to be behind

sick crystal
#

Latest snapshot actually fixed the transparency issues I was having

zenith dove
#

same here, it's a major improvement

untold cypress
#

transparency issues? thinkies

sick crystal
#

#1445764870564745228 message

untold cypress
#

ah, that

wintry flower
#

@plucky hollow you can start the port as well

#

Hopefully the new porting docs make the process quite clear

#

I see you were able to tag the release, that's very nice

plucky hollow
#

just started eating dinner and was then gonna work on porting my mods to snap7 after

#

my mods are fairly simple tho so if no one else has started by then sure il give it a go

wintry flower
zenith dove
plucky hollow
#

quick import and my model gen is screaming, i use the static helpers everywhere
TextureMapping.getBlockTexture used to return Identifier
but now it returns Material

so now i cant do things like the following where i get a base and everything is withSuffix'd from that
since thats a Identifier method

var baseTexturePath = TextureMapping.getBlockTexture(block);
var textures = TextureMapping.particle(baseTexturePath.withSuffix("_particle"))
        .put(TextureSlot.create("cup"), baseTexturePath)
        .put(TextureSlot.create("fluid"), baseTexturePath.withSuffix("_tint"));
#
var textures = TextureMapping.particle(TextureMapping.getBlockTexture(block, "_particle"))
        .put(TextureSlot.create("cup"), TextureMapping.getBlockTexture(block, "_particle"))
        .put(TextureSlot.create("fluid"), TextureMapping.getBlockTexture(block, "_tint"));
#

simple change but ughh thats my whole model gen screaming like that

plucky hollow
# plucky hollow # 26.1 Snapshot 8 - **Primer**: <https://github.com/ChampionAsh5357/neoforged-g...

Minecraft 26.1 Snapshot 8 brings us the last baby mob revamps and stone cutting of deepslate to cobbles! Check out all the news here! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video th...

▶ Play video
wintry flower
#

Looks about right 👍

plucky hollow
#

the only part that confused me was [below], neoform_version is set to 1 currently wasnt sure what to update it to

Update neoform_version in the gradle.properties file.
took a look at xfacts PR and they left it at 1 so i did the same

wintry flower
#

Yeah it's what comes after the last -

#

So indeed it will often just be 1

plucky hollow
#

submitNameTag submitNameDisplay in EntityRenderer now submits 2 nametags
the actual nametag and scoreText should both of those be ran through RenderNameTagEvent.DoRender?

went ahead and applied to patch to both of the nametags, if that was incorrect lmk

plucky hollow
#

fluid changes in entity seem like they are going to be fun
alot of the fluid logic moved to EntityFluidInteraction which looks to be constructed with a set of fluid tags to apply fluid interaction for
vanilla creates it with WATER and LAVA tags

but the fun part looks to be gutting all our FluidType stuff from Entity
and moving all that into EntityFluidInteraction?

#

also ive pushed the changes ive done, applied most rejects
2 remain
Options which is to apply a sound device equality check which looking at the reject im not sure we need anymore?
and Entity which is mostly fluid refjects cause of EntityFluidInteraction

round spear
#

Previously it was just an int representing an index of an array of supported types

graceful laurel
plucky hollow
#

thats what i was thinking but wanted someone else to confirm
with that removed that leaves the Entity reject with all its fluid shenanigans

rain herald
#

new snapshot

quartz spadeBOT
#

New version detected: 26.1-snapshot-9.

untold cypress
#

thinkies which critical bug did they have to fix

empty night
#

<@&1067092163520909374> 21.6-snapshot-9 is coming, brace

rain herald
#

i assume that includes the player

untold cypress
#

ah nice, the IME one got fixed thinkies

cursive lily
rain herald
#

this is the elytra nerf we have been waiting for

empty night
untold cypress
empty night
#

The cats just kept y'all up, didn't they

rain herald
#

what happened to realism mojang

#

my cats repeatedly meow and poke me in the face when i sleep where's that update

lucid tree
#

They should add "Chatty" cats

#

Which are cats that meow way more often. :>

empty night
#

Mod in your noisy cats if you want, I want datapack items done

#

I wanna turn a snowball into a fire charge and vice-versa. Confuse everyone.

untold cypress
#

thonk can't you already do that?

#

Or do you want snowmen to fire fire charges?

quartz spadeBOT
#

A snapshot on a Wednesday, how very nostalgic! We're releasing 26.1 Snapshot 9 today to address two issues introduced in yesterday's snapshot - in particular, a crash that would occur when any entity traveled outside of the vertical boundaries of the world...

empty night
#

But yeah imagine my tab over to bsky and slicedlime posts about ss9 "30 seconds ago" nervous

sick crystal
#

I mean if they are keeping both and letting you switch between that should make any porting easier

snow island
plucky hollow
sick crystal
#

It will probably be 27.1 by the time its "stable"

untold cypress
sick crystal
#

Complete pseudo code. But the way I see them doing it is every place the do someOpenGLCall() there will be an if for a config check and it will have both options for a while

#

They will slowly but surely move things over similar to how entity rendering went, and then block rendering, and block entities

untold cypress
#

But hey, the FAQ from VV server is now answered

gray frigate
sick crystal
#

Oh no no I know

gray frigate
sick crystal
#

googles cinnabar

untold cypress
#

Mercury sulfide kek

gray frigate
untold cypress
#

that's why you got hired

robust pike
#

Wait... does this mean I'll need to document Cinnabar in the primer?

gray frigate
#

no

#

Cinnabar isn't being merged into Vanilla

sleek perch
#

yet

robust pike
#

I mean, that's a pretty smart way to get basic documentation for free

plucky hollow
# empty night # 26.1 Snapshot 9 - **Primer**: <https://github.com/ChampionAsh5357/neoforged-g...

Minecraft 26.1 Snapshot 9 fixes crashes and shadows... and maybe does something with kitten purrs! Check out all the news here! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that aim...

▶ Play video
lucid tree
#

Whats VK?

#

Ah Vulkan

robust pike
#

Why does it take so long to download a language pack? I'm only trying to test out the IME support

#

looking at you windows

plucky hollow
#

your first mistake there was using windows blobxd /j

robust pike
#

I like how EntityRenderer#submitNameDisplay (previously submitNameTag) can now take in the y position but calls it the offset

inner creek
#

Players will be able to toggle between OpenGL and Vulkan while we are in the testing period, and we will stay in the testing period until we’re confident that the Vulkan implementation is stable, performant and ready.
interesting.

robust pike
#

I guess it's technically true since the posestack is scaled to the name tag location initially, but that could be more explicit

plucky hollow
untold cypress
inner creek
#

if Cinnabar is comparable at all with the future vanilla implementation,

#

it's some 20-30% faster in my computer :P

#

but the number isn't very significative

#

because it's in the 300-350fps range

#

for reference I got around 500fps with sodium doing its dark magic

gray frigate
#

VK isn't just free performance

robust pike
#

Japanese

#

Honestly, any IME language would've worked, but it's the one I'm the most familiar with

sleek perch
#

そうですね

untold cypress
robust pike
#

Oh hey, CauldronInteractions is now an id mapper instead of a map

#

Actually, it seems like there are different dispatchers depending on the cauldron state

plucky hollow
#

i mean theres always been different maps depending on the contained fluid
i have one for my potion cauldron

robust pike
#

Has there? My memory is murky since I haven't seen interactions come up in the primers in a while

#

Though they are codecable now, which makes me wonder why not datapack

#

Well sort of codecable

robust pike
#

Huh cool

rain herald
#

thinkies u still use snowman

plucky hollow
#

ofc great for looking at vanilla code and its changes

plucky hollow
#

and someway to mutate and existing interaction as in my mod im having to mutate a vanilla interaction
to allow potion bottles to insert potion fluid rather than water
since the "water bottle" is a "empty potion" bottle

robust pike
#

The only annoying wrinkle in that is you need to subcase whether the interaction applies to an item or tag, since that's now supported

plucky hollow
#

oh tags are supported now intresting

#

i remember it being based on ItemLike or something

robust pike
#

Yep, they're checked before the item

plucky hollow
#

which was my biggest issue getting potion supported

#

since all potions are the same item (even water bottles)

#

so i just

map.put(Items.POTION, any(InteractionResult.TRY_WITH_EMPTY_HAND,
                // vanilla (Water Bottle -> Water Cauldron)
                PotionCauldronInteractions::waterBottle2WaterCauldron,
                // ours (Potion -> Potion Cauldron)
                PotionCauldronInteractions::cauldron2PotionCauldron
        ));
#

replace vanilla with a wrapper delegating back to it for water

#

and call mine for potions

robust pike
#

I mean, I think you still need to do that

rain herald
robust pike
#

There's no ItemPredicate to determine the components

robust pike
plucky hollow
#

cause unobf

#

snowman goes all the way back to 1.14.4 (with snapshots)

rain herald
#

that emoji feels so passive aggressive I dont like that its the default for the emoticon

rain herald
plucky hollow
#

no different from you running and generating locally

#

just wrapped in a webapp to do the generation for you

robust pike
#

Well, that's an interesting way of doing it

zenith dove
#

if mojang wants mcsrc to stop working all they have to do is switch off CORS

midnight lake
#

there's no redistribution going on

#

it downloads the jars, runs it through vineflower and then displays it

zenith dove
#

mcsrc downloads the jar straight from mojang's servers, decompiles it on your machine with vineflower, and then shows it to you

robust pike
#

Yes, I understand

untold cypress
#

So it's basically the same as cloning snowblower and letting that run thinkies

plucky hollow
#

basiclly yeah but also only supports versions released with unobf mappings

#

which is why it only has 26.1 snapshots currently

robust pike
#

Makes sense

zenith dove
robust pike
#

...ah, right, the test one

untold cypress
robust pike
#

Oh, it's a partial fluid rewrite

#

Time to change it again

untold cypress
#

👀 where?

robust pike
#

It moved some of the fluid code to a separate EntityFluidInteraction class

#

Mostly the standard entity movement

#

May be more, but I'm not there yet

plucky hollow
#

it also is constructed with tags marking what fluids it supports from what i saw
so im intrested to see how we patch that to support modded fluids
make the field non final and allow people creating a new instance in their entities with a different set of tags?

robust pike
#

The field doesn't need to be non-final since the map itself isn't immutable

untold cypress
#

this again reminds me that I should go through and check which tags I should add to my blocks/items kek

plucky hollow
#

fluidInteraction.map.put(...) in ctor sounds fun

robust pike
#

You could probably just make an event to add a tracker to the fluid map on entity creation

plucky hollow
#

that would prob be the route end up going yeah

robust pike
#

tbh, I actually like this route since we could extend the $Tracker logic to work similarly to FluidType

#

Though, I'm not sure whether we still want to pursue the 'fluid' ideal

#

Wait... the EntityFluidInteraction#update method does look suspiciously similar to the neo implementation

#

No, I'm just crazy

agile hull
#

Electric boogaloo tag 2: els rewrite try two

robust pike
#

Okay, I understand how the IME works now after seeing it in game. Only the basic overlay input is displayed while the actual substitutions are handled by the OS

plucky hollow
# plucky hollow # 26.1 Snapshot 9 - **Primer**: <https://github.com/ChampionAsh5357/neoforged-g...

Minecraft 26.1 Snapshot 9 fixes crashes and shadows... and maybe does something with kitten purrs! Check out all the news here! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that aim...

▶ Play video
paper cedar
#

and we know it’s going to also bring some challenges for our modding community and for some of our players.
I actually think the current system changes have already reduced the raw opengl calls to such a minimum in modding code that it's less of a problem

agile hull
#

except for the few modders that insist on using open raw gl for stablility reasons

#

or because they are too lazy to learn b3d

paper cedar
#

Their opportunity to even use raw opengl in the current architecture is greatly diminished

lyric bobcat
obsidian perch
round spear
#

Rogue succumbed to the pipeline

cursive lily
steady heath
hardy crest
#

still yet to go through the 10x modder to lazy mojang dev onboarding harold

steady heath
gray frigate
runic anchor
#

Trust me, you do not want Claude to take over Minecraft development

high sonnet
#

AI is only good for writing lines of code I already know how to write just have a headache and don't want to type. Any time I tried to use it on for any project that has new or novel ideas... It craps itself and makes a mess. So no I wouldn't want it to write MC code

untold cypress
#

Yeah, like the line completion thingy in IntelliJ is fine for that, since it's just advanced auto complete and if I don't like its suggestion I just don't use it

obsidian perch
agile hull
plucky hollow
#

so has anyone else took a look at the snap8/9 port?
as im unsure how to handle the entity fluid changes since mojang has moved it to its own class now
unsure how the fluid extensions work in entity and how would go about migrating them to the new class

#

that looks to be all that remains for the port
or well its the only error that comes up when i tell idea to build the project

jagged ridge
plucky hollow
#

so places like this, im good to revert to vanilla and add a marker to try call our patched in method
-# that failed to be patched in cause fluid changes

#

well this is for sure gonna need someone else to look at, apprently i have no opengl context when launching neo client, base client launches fine but thats expected since its vanilla

jagged ridge
plucky hollow
#

oh i get it everytime i try launch neoforge - client

#

could be cause im linux/nvidia gpu?

jagged ridge
#

the fact that it segfaults is suspicious

plucky hollow
#

i also have this lingering window even after gradle has quit

#

have to force close it

#

[01:42:29] [main/WARN] [EARLYDISPLAY/]: Failed to set window icon: [0x1000C] Wayland: The platform does not support setting the window icon
doube its that but that also logs

#

surely a icon shouldnt cause this

jagged ridge
#

happened to me for years in various MC instances

plucky hollow
plucky hollow
#

looks to be ELS specific, if i disable via config/fml.toml->earlyWindowControl = false
the game launches fine, but enable it again i get the same error above

#

also yeah fluids do need looking into, you cant swim in lava/water rn

#

its like half there, you float down but cant float up
pressing jump only works if your on the sea floor and that does a regular jump
holding jump does nothing but repeat jumping

#

but im unsure how we want to handle the fluid changes
so im leaving that for someone else rn

#

also i noticed we still have the add(ItemStack, String) methods in LanguageProvider
since ItemStack can no longer be used in datagen due to components not being bound
should we go ahead and remove those methods

or should swap them out for templates? would do what the current impl does now
where it asks the item for the translation key

wintry flower
#

Templates I guess

plucky hollow
#

https://github.com/ApexModder/NeoForge/commit/a0f28c070fe3b7d951605c4c94cc271f53233917
fixes fluids so that they are swimmable again and adds the Entity fluid extensions to EntityFluidInteraction

said extensions on Entity have also been marked as @ApiStatus.NonExtendable and updated to delegate to the fluid interaction
i did this rather than removing as i am too lazy to update all places we are using the fluid extensions soarynLOL

pushed to different branch as im not sold on this implementation with how i hacked in FluidType support for interactions, would like someone to look over this before merging it into the main porting branch

to track FluidTypes fluidInteraction.track(FluidType, TagKey<Fluid>) must be called for each supported FluidType
this registers a FluidType->TagKey<Fluid> binding, which should be prioritized when the vanilla getTrackerFor(Fluid) method is used
FluidState lookups should also prioritize FluidType over TagKey<Fluid>

#

i also noticed vanilla is obv using their tags new EntityFluidInteraction(Set.of(FluidTags.WATER, FluidTags.LAVA))
but we have Tags.Fluids.WATER and Tags.Fluids.LAVA
should we update this to use our common tags?

zenith dove
#

probably shouldn't, the common fluid tags shouldn't generally be used to change vanilla behaviour

paper cedar
#

Swimming is overrated

untold oyster
#

common tags ought to be purely for categorization, with specific namespaced tags for behavioral additions or changes (which allows for better control of those behaviors, independent from changing common tags)

runic anchor
plucky hollow
# plucky hollow # 26.1 Snapshot 8 - **Primer**: <https://github.com/ChampionAsh5357/neoforged-g...

Minecraft 26.1 Snapshot 8 introduced minor pack versions with some smaller news and fixes. Here's a showcase video! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that aims to be the ...

▶ Play video
graceful laurel
robust pike
#

Item stack translations? I don't see why they are needed since the ITEM_NAME is functionally the component stored on it, of which the translation key is passed in. That key could be stored elsewhere, unless I'm missing something

plucky hollow
#

I believe they used to be useful before components were a thing and the getDescriptionId took in the stack
But yeah now with components not all that necessary anymore, so do we just go ahead and yeet them

graceful laurel
#

Yeah, I would say just yeet them

lavish trellis
#

Do the model extensions allow a custom block model to force a chunk layer even if the current blockstate is ItemBlockRenderTypes.forceOpaque?

robust pike
#

In vanilla? The force opaque is applied during the render phase, meaning it supersedes all settings, at least through BlockFeatureRenderer and SectionCompiler

#

Though, if you want to ignore it, then you can simply use something other thanLeavesBlock

lavish trellis
#

What if I am modifying the leaves model to apply a cutout overlay to it?

robust pike
#

Like I said, as long as it's a LeavesBlock, then it will be affected by force opaque

#

All JSON settings are superceded

#

It quite literally ignores the quad layer settings

lavish trellis
#

Then the answer to my question is no

graceful laurel
# lavish trellis Do the model extensions allow a custom block model to force a chunk layer even i...

Nope, there's no way to influence the chunk layer on forced-opaque blocks in a custom model. Our patches in SectionCompiler were reduced to "fixing" the random source, providing level context and dealing with "additional geometry renderers", the rest of the patches were made obsolete by vanilla. I don't think it's feasible for us to work around this.
I do hope that this gets improved in vanilla in the future because the current solution is also a major pain to deal with in custom models that aren't associated with a LeavesBlock, in FramedBlocks I have to post-process all leaves quads on the fly to replace their ChunkSectionLayer in order to ensure my blocks with leaves applied look the same as actual leaves.

lavish trellis
#

I see

#

I am asking because I am dealing with this in FRAPI as well but due to the nature of that API it is feasible to support this use case by effectively inlining that on the fly post-processing into the default model code path instead of having it in the model renderer

#

What's wrong with the random source?

graceful laurel
#

Vanilla uses the "default" RandomSource which uses atomics for its internal state instead of using SingleThreadedRandomSource which stores its state in primitive fields. The unnecessary use of atomics is visible in a profiler

lavish trellis
#

Ah

#

I'm not actually sure if Indigo fixes that because I remember being pretty strict about reusing as many vanilla values as possible

#

I'll add that to the port if not

steady heath
#

Snapshot day?

inner creek
#

maybe pre1, since last snapshot made the drop feature complete?

lethal onyx
#

oh today is pixfrog day

arctic sierra
#

"A birth of mobs", which is an alternative variant, might be called as the title of next spring drop.
I mean, they could finally craft a nametag and could dedicate baby mobs like "first name"

lethal onyx
north berry
#

Pre1 may or may not happen today, given that prereleases usually don't do weekly anymore iirc

#

So we may also get it tomorrow or so

untold oyster
#

again, I must profess my brief confusion at you two chatting next to each other

inner creek
#

Schihhli

lethal onyx
untold oyster
#

but close enough to fool anyone on a quick glance

#

particularly for those who first recognize by vague shape and color

#

(me)

#

that's also why I have trouble using Discord's compact mode for chat, because I rely on the avatar

north berry
#

Pattern recognition when the patterns are too similar:

plucky hollow
#

Soon™ ~<t:1771948800:R>, what we all thinking snapshot-10 or pre1?

zenith dove
#

with the lack of frogs, a pre1 if anything

lethal onyx
zenith dove
#

really i'm just waiting for a panorama, it's taken a weirdly long time

plucky hollow
#

-# just preparing stuff ahead of time for either snap10/pre1

untold oyster
#

i'd assume the latter link

#

and yes, that version should be correct

zenith dove
#

nvm, there's the frogs

plucky hollow
#

Minecraft 26.1 Snapshot 10 shrinks the head of zombie babies and gives us particle improvements for golden dandelions! Check out all the news here! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial u...

▶ Play video

Minecraft 26.1 Snapshot 10 introduced minor pack versions with new particles and un-cursed armor stands. Here's a quick showcase! #minecraftemployee

slicedlime works as a Technical Director for Minecraft at Mojang, but the YouTube and Twitch channels are personal projects run entirely in his spare time. This is an unofficial update video that a...

▶ Play video
#

not pre1

#

ok

untold oyster
#

habemus snapshot

north berry
#

ribbit

next harness
#

r

untold oyster
#

good, they added particle effects when using golden dandelions

#

I was wondering why those didn't exist in the first place

#

Striders now correctly inherit the warmth of the Strider they are standing on, matching Bedrock
thinkies

untold cypress
#

no more freezing baby striders

untold oyster
#

the snapshot's not yet in the manifest thinkies

quartz spadeBOT
#

New version detected: 26.1-snapshot-10.

lethal onyx
#

there it is

rain herald
#

smol 🙁

untold oyster
#

the pre-release is comin'

quartz spadeBOT
#

Another Tuesday, another snapshot! This week's release brings you some helpful new particles designed to better tell if your golden dandelion is keeping your mobs young or if you're about to reintroduce the concept of aging into their blocky lives. We've a...

lethal onyx
#

a lot more behind the scenes changes than thought

plucky hollow
#

uhh, i can think of quite a few people that used the EmptyBlockAndTintGetter
@round spear being one for their block outline shenaigans iirc

#

to collect the block model parts without needing to pass level iirc

robust pike
#

This looks like a lot of moving

heady hamlet
#

No end update?

plucky hollow
lethal onyx
plucky hollow
#

alot of RandomSource.create -> RandomSource.createThreadLocalInstance

visual basin
plucky hollow
#

nice to renamed this to match the BlockIds rename in a previous snapshot

#

i mean they started removing it previously now its just gone

rain herald
lethal onyx
plucky hollow
visual basin
#

MovingBlockRenderState is a mojang hack whereby they passed a level into a rendersttate

#

as of snapshot 7:

plucky hollow
#

oh wait the class wasnt located where i thought it was

#

under client.renderer.block i thought it was client.renderer.state which just has BlockBreakingRenderstate changed

#

but yeah we extracting light information now it seems

#

not deferring that to level for later?

#

btw this is where BlockAndTintGetter moved to

#

unsure if it was before but its now also marked as OnlyIn(CLIENT)

#

extends the new common BlockAndLightGetter

visual basin
#

so block tints are now only gettable clientside thinkies

plucky hollow
#

i mean that was always the case no?

#

i mean BlockColors has only been on Minecraft afaik

#

if anything server would have returned -1

#

but anyways block models got a pretty big change, they are extractable now im similar vein of ItemStack
BlockModelResolver BlockModelRenderState

inner creek
#

oh thank fuck

#

they were WAY too big

#

I would have reduced all humanoids though

visual basin
#

they forgot to turn Big Head Mode off thinkies

paper cedar
#

Anything sxy?

#

In technical terms

plucky hollow
#

block model rendering works similar to item stack rendering now

#

track a BlockModelRenderState and use BlockModelResolverer to update it

visual basin
plucky hollow
#

then you submit the BlockModelRenderState to node collector

#

example: enderman rendering the carried block state

paper cedar
#

Interesting to see how that impacts UI rendering blocks

plucky hollow
#

i mean nothing change in ui for block rendering
but mojang iirc has always rendered itemstacks when they wanted blocks in uis so far
so ablobshrug

#

uhh mojang are we limited to tint indices 0,1,2?

#

cause i swear that wasnt the case before and feel like some mods have gone above 2

visual basin
#

hold on lemme count

#

I have 21 tintindices in some of my blocks

plucky hollow
#

looks like yeah we might be limited 2 tint indices

robust pike
#

Interesting. I think the section compiler now more directly relies on world coords for render position

plucky hollow
robust pike
#

Rather than operating on some pose stack

plucky hollow
#

render state also created with small array

#

guess thats something we may need to patch to allow more tint indices?

visual basin
#

IClientBlockExtensions#getTintLayerCount?

robust pike
#

That's not even mentioned in the snapshot, which makes sense

#

There's no data facing system for block model tints

plucky hollow
rain herald
#

honestly is sounds like a mojangism

#

Bootstap my beloved

visual basin
#

yeah I assumed that was mojang's typo, not yours harold

rain herald
#

i had to check the screenshot lmao

visual basin
rain herald
#

yeah definitely needs some patching to allow more than 3

robust pike
#

I wonder why it can't be similarly done to the ItemStackRenderState, which just constructs the tint layers size dynamically

visual basin
#

I could theoretically rework those into custom model baking but it would be nice if I didn't have to

rain herald
#

any mojangstas peeping fix plz smileyboi

#

that kind of hardcoding is just icky in general

#

as soon as they add a block that needs 4 theyre cooked

visual basin
#

well, for mojang it makes sense

#

if they do add a bblock that needs 4 they can just change the 2 to a 4

lavish trellis
#

Block models should define a tint provider for each index like item models do but maybe Mojang doesn't want to break the format

visual basin
#

they don't need to store 21 ints in every renderstate

rain herald
#

meh it works but its not the best solution to hardcode a number

plucky hollow
round spear
#

Unsure if some sort of level context has been added since I initially implemented it to the render highlight event

rain herald
#

wait mojang got rid of ItemColors but not BlockColors?

plucky hollow
# round spear I use the client level

ah maybe it was xfact then, i know one of you doing your dyanmic block hitbox shenanigans
was passing a empty blocktint getter when collecting block model parts

plucky hollow
#

the new item json tint stuff

robust pike
round spear
rain herald
#

hmm so maybe blocks need a refactor to be more in line with client items

#

we need block data components 😔

#

yeah they just gotta bring over the ItemTintSource to blocks and let the jsons define colors geeked

deft rune
#

BlockEntity. That is literally a block with datacomponents soarynLOL

rain herald
#

in blockstate ig would be enough

deft rune
#

Other blocks are not per block instnaced data

plucky hollow
#

yeah i can see a ClientBlock coming tracking the tint source and other client sided properties

#

and using that to build tint layers and such like items

deft rune
#

All blocks are the same instance

rain herald
#

yeah but so are items

deft rune
#

But you are interacting with an itemstack typically

rain herald
#

itd just be giving BlockState a DataComponentMap

deft rune
#

Not the item

rain herald
#

itd be a good replacement for block properties, tho something would have to be done to ensure performance isnt tanked i suppose

robust pike
#

I mean, blocks can have data components now

rain herald
#

?!

#

oh

#

the holders can

robust pike
#

Yep

rain herald
#

yeah im excited to see how that develops

#

eventually everything will just be data components

plucky hollow
#

technically everything can have components now
since the default components are bound to holders

which gets fun when you remember Holder<DataComponentType> is a thing

#

components on components [on components ....]

graceful laurel
robust pike
#

I like how vanilla now has a hardcoded map of fluid to chunk section layer

graceful laurel
#

That had always been the case, it just moved now with the removal of ItemBlockRenderTypes

plucky hollow
robust pike
#

Though I have no idea why the map is needed now

#

It literally pulls the data from the atlas sprite and computes the chunk layer using it

lavish trellis
#

The new map is better because it actually dynamically checks the sprite translucency