EdwinMindcraft / ArsMagica2

Ars Magica 2 Bug Tracker
13 stars 9 forks source link

1.9 rework #20

Closed esotericist closed 7 years ago

esotericist commented 7 years ago

This, near as I can tell, actually fixes #6.

Adds getUpdateTag() implementations in the two places that probably need it (the crystal markers definitely do and I suspect it's a good idea to have in the AM Power class), and yanks the markAndNotifyBlock() calls in the most painful places. We probably don't want them anywhere, but I'm frankly kinda exhausted with chasing down the proper way to do this.

I still insist I am not a java programmer.

BTW, you probably want to revert the mimicstate stuff from a0673b2, since that breaks the rendering of the crafting altar when it's in a validated state. I actually spent a while trying to figure out what I broke with the crafting altar before I realized that it hasn't worked from 2.0.7 onward, and I just hadn't actually HAD a valid crafting altar since 2.0.6. :p

Also, I got tired of doing chmod +x gradlew every time I synced. :D

esotericist commented 7 years ago

Or... maybe a0673b2 is okay? in my AM2-alone world, your 2.0.7 and 2.0.8 releases have a broken texture for the crafting altar, but in my survival world with like 150 mods, it works now? I don't understand :(

esotericist commented 7 years ago

... grr. crystal markers render in the right place, but their hitboxes are in the default 'up' position...

esotericist commented 7 years ago

Looks like my failure to include a getUpdateTag() in the inscription table causes it to sometimes crash the server.

There's probably others I missed; I forgot they didn't all descend from AMPower, and so me having one there didn't help the inscription table.

Easy to fix. Still haven't figured out the hitbox problem for the crystal markers.

EdwinMindcraft commented 7 years ago

I'll merge this after my next commit

EdwinMindcraft commented 7 years ago

The crystal marker issue was an issue due to the fact that you removed the te-block sync code.

esotericist commented 7 years ago

If by 'te-block sync code' you mean markAndNotifyBlock() that HAS to go. It, itself, is THE cause of the FPS issue due to constant chunk update churning. I checked a bunch of other mods, and basically nobody uses it, and what little I could find in the minecraftforge forums indicated it's considered a bad idea.

The stuff I added with getUpdateTag() is how it appears to be intended to implement TE synchronization in 1.9+

esotericist commented 7 years ago

as mentioned in one of my commit notes, williewillus put some more information here. https://gist.github.com/williewillus/7945c4959b1142ece9828706b527c5a4

EdwinMindcraft commented 7 years ago

nah i meant the setBlockState part, just with an added check

esotericist commented 7 years ago

Ah, Okay. ... I didn't realize I removed that.

EdwinMindcraft commented 7 years ago

yay that's no problem, fixed it :p

esotericist commented 7 years ago

(still not a java programmer)