elucent / eidolon

Spooky Minecraft mod.
Other
30 stars 27 forks source link

Conflict with Performant Mod #18

Closed DeliciousTea closed 3 years ago

DeliciousTea commented 3 years ago

Not sure if there's anything to be done about this, but running Performant alongside Eidolon seems to conflict with the new Witch AI that allows one to pick up the Ars Eclesia and add the Wicked Sign to it.

Removing Performant allows it to occur, but it's kind of annoying, especially on a server with multiple people.

elucent commented 3 years ago

Definitely annoying. This has been reported in the Performant repository here https://github.com/someaddons/performant_issues/issues/56. I'm still not sure if it's Eidolon's or Performant's fault, but I'm hoping the Performant dev will be better informed to answer that question.

someaddons commented 3 years ago

ye I see what the issue is, performant does not check shouldExecute each tick, but every 4 ticks like 1.12 minecraft used to do aswell. Now that works fine until you've got sth like eidolon where you got a check for entity.ticksExisted % 20 != 0 which in itself is a fine check/good idea to limit the execution rate(props for that, most mods do not do this). But since the ticksExisted keeps getting advanced we're always skipping the %20 == 0 tick for when the AI tries to start. I think the only solution is to either make performant check the goals each tick, or to adjust the Eidolon AI a bit and use a counter instead of the tickExisted % 20, could e.g. do this:


        if (--cooldown > 0 || progress > 0)
        {
            return false;
        }
        cooldown = 20;
SammySemicolon commented 3 years ago

ye I see what the issue is, performant does not check shouldExecute each tick, but every 4 ticks like 1.12 minecraft used to do aswell. Now that works fine until you've got sth like eidolon where you got a check for entity.ticksExisted % 20 != 0 which in itself is a fine check/good idea to limit the execution rate(props for that, most mods do not do this). But since the ticksExisted keeps getting advanced we're always skipping the %20 == 0 tick for when the AI tries to start. I think the only solution is to either make performant check the goals each tick, or to adjust the Eidolon AI a bit and use a counter instead of the tickExisted % 20, could e.g. do this:

        if (--cooldown > 0 || progress > 0)
        {
            return false;
        }
        cooldown = 20;

Sounds like a good way to fix this.

someaddons commented 3 years ago

btw for a temp thing you can also set the goalSelectorTickRate config in performants config to 1

DeliciousTea commented 3 years ago

Thanks very much!

elucent commented 3 years ago

This should be fixed from my end in 0.2.5.