MoreMcmeta / core

Animate almost any Minecraft texture with more options. Texture configuration API. 1.16-1.20
GNU Lesser General Public License v3.0
28 stars 5 forks source link

1.21 support? #85

Closed NattoRiisa closed 2 months ago

NattoRiisa commented 3 months ago

Sorry if this sounds annoying to ask, this one is rlly good for texture animating ;;

soir20 commented 3 months ago

Glad you like the mod! I don't find tracking issues for version updates annoying, unless people are demanding about it.

NattoRiisa commented 3 months ago

alright !!!

soir20 commented 3 months ago

I have released core version 1.21-4.4.7. The 1.21 version of the emissive plugin is still being worked on; I will close this issue once that is released.

magmamir commented 3 months ago

Thank you for the release!!!

soir20 commented 2 months ago

FYI, the 1.21 emissive plugin is still being worked on, but there have been substantial internal changes to Minecraft's rendering, so it requires more work to port than a typical MC version.

Virtualmachine2020 commented 2 months ago

erm... What release?

soir20 commented 2 months ago

MoreMcmeta core was released for 1.21. The emissive plugin has not been released for 1.21 yet.

Virtualmachine2020 commented 2 months ago

When is it gonna come out?

soir20 commented 2 months ago

I can't provide an ETA because it depends on what time I have to work on it and what bugs pop up. It requires more work than a typical update because of all the rendering changes.

Virtualmachine2020 commented 2 months ago

okay 🫤🫠

AuracleTech commented 2 months ago

I recommend adding the tag Alpha, I was wondering which plugin did not work I had to debug for 20 minute to find that the moremcmeta-1.21-4.4.7-fabric is not ready for 1.21 and is causing issues This issue should not be allowed to happen

soir20 commented 2 months ago

moremcmeta-1.21-4.4.7-fabric is not ready for 1.21 and is causing issues

This is not descriptive enough for me to investigate or fix an issue.

I was wondering which plugin did not work

MoreMcmeta core, which provides texture animation capabilities, has been released for 1.21. Nothing has been released that provides emissive textures for 1.21.

This issue should not be allowed to happen

I have probably spent a few hundred hours of my free time working on this mod over the years. I continue to spend hours of my free time working on a 1.21 update for the emissive plugin, despite losing power at home for over 30 hr now and being the primary oncall engineer for work for a week (where I get paged day and night to deal with production incidents). For the record, I've received a miniscule amount of rewards points compared to the time put into this project; I'd be over the moon to get anywhere near minimum wage for it.

Hence, this statement is utterly inconsiderate and just plain rude. I do care about fixing issues and not putting out buggy code, but you don't get commercial-grade support from a free hobby project that exactly one person works on, and you are certainly in no position to demand anything.

If I've put that much effort into a volunteer project that you receive for free, the least you can do is put effort into describing problems, be patient, and not be rude.

AuracleTech commented 2 months ago

I do care about fixing issues and not putting out buggy code

Next time add the Alpha tag on release.

I did some debugging, the game crashed only when I joined my world and I have the plugin, but if I remove my texture pack it works perfectly. My resourcepack is a mix of selected files from tons of resourcepacks. This is what I get when it crashes.

[22:43:47] [Render thread/ERROR]: Caught error loading resourcepacks!
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: (128, 0) outside of image bounds (128, 8192)
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?]
Caused by: java.lang.IllegalArgumentException: (128, 0) outside of image bounds (128, 8192)
    at net.minecraft.class_1011.method_4315(class_1011.java:202) ~[client-intermediary.jar:?]
    at io.github.moremcmeta.animationplugin.metadata.AnimationMetadataAnalyzer.lambda$findFrames$5(AnimationMetadataAnalyzer.java:232) ~[moremcmeta_animation_plugin-1.21-1.0.3-c107ec92dee90563.jar:?]
    at io.github.moremcmeta.animationplugin.metadata.AnimationComponentBuilder.findChangedArea(AnimationComponentBuilder.java:250) ~[moremcmeta_animation_plugin-1.21-1.0.3-c107ec92dee90563.jar:?]
    at io.github.moremcmeta.animationplugin.metadata.AnimationComponentBuilder.buildComponent(AnimationComponentBuilder.java:123) ~[moremcmeta_animation_plugin-1.21-1.0.3-c107ec92dee90563.jar:?]
    at io.github.moremcmeta.animationplugin.metadata.AnimationComponentBuilder.lambda$build$4(AnimationComponentBuilder.java:104) ~[moremcmeta_animation_plugin-1.21-1.0.3-c107ec92dee90563.jar:?]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source) ~[?:?]
    at io.github.moremcmeta.animationplugin.metadata.AnimationComponentBuilder.build(AnimationComponentBuilder.java:105) ~[moremcmeta_animation_plugin-1.21-1.0.3-c107ec92dee90563.jar:?]
    at io.github.moremcmeta.moremcmeta.impl.client.io.TextureDataAssembler.buildComponent(TextureDataAssembler.java:222) ~[moremcmeta-1.21-4.4.7-fabric.jar:?]
    at io.github.moremcmeta.moremcmeta.impl.client.io.TextureDataAssembler.assemble(TextureDataAssembler.java:122) ~[moremcmeta-1.21-4.4.7-fabric.jar:?]
    at io.github.moremcmeta.moremcmeta.impl.client.MoreMcmeta$TextureResourceReloadListener.lambda$load$2(MoreMcmeta.java:758) ~[moremcmeta-1.21-4.4.7-fabric.jar:?]
    at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source) ~[?:?]
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?]
    at io.github.moremcmeta.moremcmeta.impl.client.MoreMcmeta$TextureResourceReloadListener.lambda$load$3(MoreMcmeta.java:757) ~[moremcmeta-1.21-4.4.7-fabric.jar:?]
    ... 7 more

Looks like something is out of bound, not sure what though, I am guessing image resolution but which file?

image

Made a script that iterate through all png files, sort them by resolution, but none is over 8192, so then I have no idea what is the error about.

Thank you for your plugin, sorry if how I explained things came out wrong, I was most likely frustrated with debugging a crash.

soir20 commented 2 months ago

If you're using OptiFine animations, then there are smaller animated areas within a larger texture. I suspect the issue is one of the smaller animated areas extends beyond the bounds of the base texture. The issue here isn't the height/8192px dimension, it's the width/128px dimension. It is a bug in that the game should print a log message instead of crashing in this case, but this also very likely predates 1.21 because none of this code changed. Please open a separate GH issue for it.

soir20 commented 2 months ago

Blocks, entity, and block entity rendering are working locally on 1.21. Entity and block entity rendering were by far the most impacted by MC's rendering changes and required several iterations to get to a viable solution. It appears the new implementation may also resolve https://github.com/MoreMcmeta/emissive-plugin/issues/23.

The main outstanding changes necessary are for items and liquids.

soir20 commented 2 months ago

Items and liquids are now working, and I am doing final testing for Forge and Fabric before a release.

soir20 commented 2 months ago

The emissive plugin has been released for 1.21. Please create a new issue in the emissive plugin's issue tracker (https://github.com/MoreMcmeta/emissive-plugin/issues) for any problems you encounter in the new version.