Rivmun / FootprintParticle

A simple Minecraft mod that adds footprint for mobs.
GNU General Public License v3.0
7 stars 0 forks source link

Incompatibility with Alex's Mobs Anaconda Parts #69

Open BodhiSmith13 opened 2 months ago

BodhiSmith13 commented 2 months ago

On MC 1.20.1 with Forge 47.2.19, this mod is unable to produce foot print particles for the alexsmobs:anaconda_part entity, while also being able to produce footprints for the alexsmobs:anaconda entity. This produces the visual of an anaconda producing a track only with its head, which is jarring and strange. I was wondering if you would be able to look into this issue. Even if you have no interest in fixing it, an explanation would be useful in case I wander into a similar issue later.

Video of issue

Rivmun commented 2 months ago

This code will cause incompatibility, I guess... https://github.com/AlexModGuy/AlexsMobs/blob/e1e9942a19e097b256da2d8da11b34ab1e904da1/src/main/java/com/github/alexthe666/alexsmobs/entity/EntityAnacondaPart.java#L100 In Alex's Mobs, the 'anaconda_part' has its velocity set to zero in every tick, which causes the 'footprintparticle' to perceive that the 'anaconda_part' has never moved. Footprints will not generate for entities that are stationary, so this issue occurred.

BodhiSmith13 commented 2 months ago

Okay, thank you. Any chance of you or Alex making a fix?

Rivmun commented 2 months ago

It may be unrealistic to expect Alex fix this for me... I would make a fix but have no idea how to. It's a problem about how to rework basic condition of footprint generator, to gen footprint for unmoving entities...

BodhiSmith13 commented 2 months ago

Is there a way you could allow this mod to detect changing x and z coordinates on its own instead of relying on Minecraft's own system?

Rivmun commented 2 months ago

Lately I try to record entity position by custom value to detect entity moving but anaconda_part still gen no print. After a several test and code digging, I guess the second reason is: anaconda_part has no physic so it can't get a 'onGround' status in vanilla tick(), which is necessary condition of print generator. At same time, no physics means anaconda_part's hitbox can go through the ground, which make print may gen underground, or in air. The latter will make print die instantly in next particle tick.