Botania

Botania

133M Downloads

Mana bursts that bounce back to their originating pool render as if they hit but actually become invisible and pass through

vebyast opened this issue ยท 7 comments

commented

Version Information

Forge version: 14.23.2.2611
Botania version: r1.10-353

Other mods: Modern Skyblock 3.1.1.1

Further Information

logs/fml-server-latest.log, though this isn't a crash: https://gist.githubusercontent.com/vebyast/913d8e766b46d77fa4f7a6c716a4bd3d/raw/5ccb085770596cf0ccd3bf77729728a522a50161/fml-server-latest.log

Steps to reproduce:

  1. Construct:
    M P> H
    Where P is a mana pool, > is a pulse mana spreader facing right, M is a mana detector, and H is a hovering hourglass.
  2. Put some sand in the hourglass to make it a timer.
  3. Place a lens on the mana spreader that includes the bounce property.
  4. Activate the spreader to hit the hourglass with a mana pulse which will bounce off it to return to the pool.

What I expected to happen:

The hourglass toggles paused state.

The mana pulse hits the pool and stops.

or

The mana pulse passes through the pool the same way it passed through the spreader, bouncing back and forth between the mana detector and the hourglass.

What happened instead:

Strange behavior on paused state, precise nature depending on the lens used:

  • Bounce lens: toggles paused state as expected, but the change reverts after several seconds, leaving the hourglass in its original state.
  • Bounce-Messenger: Sometimes the hourglass does not react at all. The rest of the time the hourglass toggles between a normal paused or unpaused state and a buggy "toggling" state in which the hourglass pauses/unpauses at a constant frequency, somewhere between 1 and 2 hz, without further interaction. Hard to describe, so recording of this behavior here.

The mana burst bounces off the hourglass and returns back, passing through the spreader. It appears to hit the pool, but actually only renders that way; in reality the burst has become invisible and continues bouncing back and forth between the wall and the hourglass. This can be observed using the paused property of the hourglass and by the activation of the mana detector and by noting that no mana is deposited into the pool.

Using a bounce-messenger lens, with its faster travel and longer lifetime, should result in a pulse train from the mana detector and the hourglass repeatedly and rapidly toggling its paused state, but this this appears to be inconsistent. It may work differently if the mana detector is replaced with another solid block?

commented

I think that I have an underlying cause for this bug: The mana burst isn't stopping when it hits the mana pool behind the spreader. Instead, it continues through the pool, bounces off the wall behind the pool, comes back, passes through the pool and spreader a second time, and finally hits the hourglass and toggles it again. Repeat until the pulse runs out of distance. This is also why I was seeing what I thought was a longer-than-expected cooldown on the spreader; I think that in the gif I toggle it once without getting a burst. This would be because the pulse is still in flight. The Bounce-Messenger lens toggles faster because its burst travels faster.

commented

It looks like mana is not being deposited in the pool when the burst hits it. So this is actually a rendering bug: bursts that bounce and return to the mana pool feeding the spreader that fired them render as if they hit the mana pool but actually continue onward. I don't know if that behavior is working-as-intended or not.

Updated title and report.

commented

this is just a result of bursts running their logic on both client and server sides and there being a desync somewhere along the line. Until we get around to refactoring things so that mana system only runs server side, visual bugs like this will result, unfortunately.

commented

I can't seem to reproduce the effect in the video

commented

I was referring to the "M P> H" analogy

I also can not reproduce

commented

Can you provide screenshots instead of analogies?

commented

This issue is stale because it has been open for a while with no activity. Remove stale label or comment or this will be closed soon.