The Wild Mod [Fabric]

The Wild Mod [Fabric]

658k Downloads

Catalyst Active phase is too long

MerpisMe opened this issue ยท 7 comments

commented

Sculk Catalysts' "active" phase lasts for slightly too long, which causes the "bloom" animation to overflow and play again. This contrasts the behaviour seen in bedrock and MC Live. Ideally, the duration of the phase should be 5 ticks, but at the moment it's somewhere around 10.

commented

This isn't the actual problem, it happens regardless of how long the active phase is. It's a problem with how block animations work in MC, it has a global timer instead of a timer for each specific block- I'd assume this tremendously helps with performance.

commented

This isn't the actual problem, it happens regardless of how long the active phase is. It's a problem with how block animations work in MC, it has a global timer instead of a timer for each specific block- I'd assume this tremendously helps with performance.

huh. then how'd they manage to do it??
it definitely doesn't use the global timer in bedrock and in what they've showcased

commented

This isn't the actual problem, it happens regardless of how long the active phase is. It's a problem with how block animations work in MC, it has a global timer instead of a timer for each specific block- I'd assume this tremendously helps with performance.

Setting the active time to 5 never allows to full animation to play, whereas setting it to 11 allows to full animation to play, if you happen to get it when the timer is at the right spot.
I highly doubt we can really do anything about it.

commented

This isn't the actual problem, it happens regardless of how long the active phase is. It's a problem with how block animations work in MC, it has a global timer instead of a timer for each specific block- I'd assume this tremendously helps with performance.

huh. then how'd they manage to do it?? it definitely doesn't use the global timer in bedrock and in what they've showcased

It's entirely possible they made some new kind of rendering method/overlay for blocks, maybe like how Grass blocks have a gray overlay that gets tinted based on the biome. If that's the case, I have no clue how to do it

commented

maybe we could make the frames of the animation dependent on a blockstate? there are 8 frames, so we could give the catalyst a numerical "animationprogress" blockstate and have it range from 0 to 7, and then give each stage of the blockstate its own model with a different texture. we would simply set it to 0 every time it gets activated and increase it every other tick
it's an absolutely horrendous workaround but it's a small price to pay for it looking better. it hopefully shouldn't have any performance overhead

"it's an absolutely horrendous workaround" but the only way to do it, once I have enough time to do stuff that isn't small tweaks I'll see if I can do it

woo, i'll work on setting up the models later

commented

This isn't the actual problem, it happens regardless of how long the active phase is. It's a problem with how block animations work in MC, it has a global timer instead of a timer for each specific block- I'd assume this tremendously helps with performance.

huh. then how'd they manage to do it?? it definitely doesn't use the global timer in bedrock and in what they've showcased

It's entirely possible they made some new kind of rendering method/overlay for blocks, maybe like how Grass blocks have a gray overlay that gets tinted based on the biome. If that's the case, I have no clue how to do it

maybe we could make the frames of the animation dependent on a blockstate? there are 8 frames, so we could give the catalyst a numerical "animationprogress" blockstate and have it range from 0 to 7, and then give each stage of the blockstate its own model with a different texture. we would simply set it to 0 every time it gets activated and increase it every other tick

it's an absolutely horrendous workaround but it's a small price to pay for it looking better. it hopefully shouldn't have any performance overhead

commented

maybe we could make the frames of the animation dependent on a blockstate? there are 8 frames, so we could give the catalyst a numerical "animationprogress" blockstate and have it range from 0 to 7, and then give each stage of the blockstate its own model with a different texture. we would simply set it to 0 every time it gets activated and increase it every other tick

it's an absolutely horrendous workaround but it's a small price to pay for it looking better. it hopefully shouldn't have any performance overhead

"it's an absolutely horrendous workaround" but the only way to do it, once I have enough time to do stuff that isn't small tweaks I'll see if I can do it