Botania (Fabric/Quilt)

Botania (Fabric/Quilt)

5M Downloads

Sparks drawing too much mana from mana minecart when used with orechid

Paperweight82 opened this issue ยท 2 comments

commented

Version Information

Forge version: forge 36.1.0
Botania version: 1.16.4-414

Further Information

when an orechid is linked to a pool fed by another pool with a recessive spark, and that pool is supplied by a mana pump/minecart, the mana minecart empties after only a few blocks have been converted (6 in my test here). the same setup without sparks, and the flower linked to the pool connected to the pump, uses the expected amount of mana from the mana minecart.
Link to crash log: no crash
Steps to reproduce:

  1. link an orechid to a pool
  2. link that to a second pool with sparks, recessive on the second pool
  3. fill the recessively sparked pool with a mana pump and mana minecart until all 3 pools are full
  4. place down stone near the flower

What I expected to happen: aprox 57 conversions by the flower before the minecart pool empties (1,000,000/17,500)

What happened instead: minecart pool is empty after only 6 conversions by the orechid (i have seen different numbers in different worlds/versions, this is what i observed with only botania, patchouli, curios and JEI installed)

2021-03-24_19 33 02
2021-03-24_19 33 11

commented

so i closed this cos it was pointed out to me that mana loss is built in to the cart/pump system to stop them being chained for fast transport, but this doesn't seem like an abuse actually... the cart in the pictures could easily have come from a distant mana generation farm, for eg, and each pool in the two setups is losing the same amount of mana per operation of the flower, so id expect similar mana loss in each case? the fact that the cart pool empties so much faster with sparks makes me think there is actually an issue, so im reopening this

commented

A mana pump works this way: every tick, if it notices even 1 mana missing from the target pool, it transfers 10,000 mana.

The transfer rate is extremely fast due to the mechanical nature of the pump-- so fast that overflow is possible, which can cause up to a whole diluted pools' worth of Mana Loss.

Sparks transfer 1,000 mana per tick per connection. In your case you are losing approx. 90% of mana as the spark extracts 1k and the pump pumps 10k, wasting 9k, which matches your conversion/pool ratios. This is working as intended.

The solution is to actually buffer the mana from the pump so that you don't try to dump mana into a nearly full pool. The pump can be disabled with redstone, and comparators can read the amount of mana in a pool.