Bug: Pump + miner combo still dont work

  • So to make sure I understand this -
    If a miner has two pumps attached, both with cells, one will start filling cells.
    With only one pump attached, loaded with cells, it gets stuck at the end of the cycle and doesn't fill a cell.
    Correct?

  • you may attach 100500 pumps at same time, BUT only one will work and it will work at constant slow speed.


    if you attach single pump it will not work at all.


    if you use diamond drill, it will not work no matter how many pumps attached.

    Unsafe.putObject(42,Unsafe.staticFieldOffset(42.getDeclaredFields()[42]),43);

  • Will you please, for gods sake, start using actual description instead of "doesnt work".


    WHAT doesn't work?
    Mining? Mining through liquids? Searching for liquids? Storing liquids via pump? etc

  • Will you please, for gods sake, start using actual description instead of "doesnt work".


    WHAT doesn't work?
    Mining? Mining through liquids? Searching for liquids? Storing liquids via pump? etc


    Description of Problem: Pump lava through the miner to a pump.


    Test Scenarios:


    Scenario 1:
    Find a large lake of lava. Place a miner in the middle of the lake 1 block above the lava. Place a pump next to said miner. Place one chest next to each said miner and pump. Power said pump and miner. Place empty cells in pump. Place scanner, pipes, and drill (drill not diamond drill) in miner. Sit and watch while pump only outputs 1 lava cell and then miner stops working. Miner & pump combination: FAIL!


    Scenario 2:
    Do scenario 1. Then take out drill from the miner. Place a second pump next to the miner. Power it, fill it with empty cells, and then place a chest next to it. Return drill to miner. Watch as only one of the pumps makes lava cells. Miner & pump combination: WIN except you have to have a second pump always attached.


    Scenario 3:
    Do scenario 2. Now remove the drill from miner. Replace said drill with a diamond drill. Watch as the pumps will only output one lava cell and then stop working again. Miner & pump combination: FAIL!

    All people dream, but not equally. Those who dream by night in
    the dusty recesses of their mind, wake in the morning to find
    that it was vanity. But the dreamers of the day are dangerous people,
    for they dream their dreams with open eyes, and make them come true.
    --T.E. Lawrence

  • Yeah, basically what icedfire said, one pump on a miner does not work properly and, rather than (I assume) the intended behavior of just mining lava very slowly it goes something like this:


    -the miner just removes one block of liquid using the initially charged pump but then proceeds to the next level down (I assume this is because when the miner wants to mine something else the pump is charging and the miner doesn't see it since it checks for "ready" pumps)
    -then when it gets to the next level the miner seems to "forget" there is a pump connected and just stops since it can't mine through liquid on its own
    -it does not proceed even when the pump is fully charged again, I guess the miner probably only checks for ready pumps after it finishes its last operation, instead of constantly (which is probably a good thing, lag reduction and all that, assuming I'm even right)


    With two pumps the miner pumps the first block but does not go to the next level prematurely, like with one pump, probably since it "sees" the second pump already charged and stays at that level. But then instead of using the second pump to pump the next liquid block it waits for the first pump to recharge, resulting in very slow pumping and with only one pump actually running at a time (and the other one just sitting there charged). I haven't checked in 1.15 but the miner only used one pump even with 4 connected in 1.00.


    All of this would be a miner with a regular drill, diamond drill miners didn't work for me even if you put pumps all over them. Also feel free to ignore my speculation because I'm probably completely wrong


    Disregard this, I did some more tests and I was wrong about some of the behavior, I'll post again when I figure it out.


  • I have a feeling you are very close with one major exception. The diamond drill does work but it will only feed each pump lava once. Basically the diamond drill is so fast that even with 4 pumps attached to it will feed each of those pumps and then be ready to mine again while the first pump is still recharging. Since it does this check and sees that all four pumps are still recharging it stops working.

    All people dream, but not equally. Those who dream by night in
    the dusty recesses of their mind, wake in the morning to find
    that it was vanity. But the dreamers of the day are dangerous people,
    for they dream their dreams with open eyes, and make them come true.
    --T.E. Lawrence

  • I have no idea what the code for the pump is like, but can't you add an If-Then statement? Something like, IF a pump has space available, THEN extract a unit of liquid. Repeat infinitum. Another possibility might be to have the Pump's send a READY signal whenever they finish working.


    Personally, I liked it better when Pumps were standalone units.

  • miner with pump attached shoud have two modes:


    1) Use pump to bypass lava and get ores.
    2) Use pump to harvest lava.


    best way to implement it - miner upgrade for mode 1 and pumps attachment for mode 2.


    in second case miner will wait pump and will skip mining operations if no pump is ready.

    Unsafe.putObject(42,Unsafe.staticFieldOffset(42.getDeclaredFields()[42]),43);

  • I have a feeling you are very close with one major exception. The diamond drill does work but it will only feed each pump lava once. Basically the diamond drill is so fast that even with 4 pumps attached to it will feed each of those pumps and then be ready to mine again while the first pump is still recharging. Since it does this check and sees that all four pumps are still recharging it stops working.


    That's what I meant by doesn't work at all (no amount of pumps will make it work correctly), anyway I made a temporary fix and have attached the modified class files. If posting them is not allowed then I can remove them right away (or you can just delete my post haha).


    As for the details, only one pump is needed for a miner with a regular drill (the cycle time is 200 for both the pump and miner, so more pumps won't do anything anyway). For a miner with a diamond drill 4 pumps will pump as fast as it mines and all of them will pump correctly. The technical details are that I changed the targeting function of the miner to target lava blocks if there are any pumps connected instead of any "ready" pumps.


    Edit: Just warning that the fix may have other effects, but when I was testing I didn't notice any.

    Files

    • reobf.zip

      (14.08 kB, downloaded 162 times, last: )
  • The idea of this change isn't bad, exspecially as the 2nd method is already avaible.
    Now the miner should, in worst case, run multiple operations without success if not enough are pumps are provided. F.e. digging 2 lava into the pumps, then digging a 3rd time (with EU consumption) without doing anything and then fill the recharged pumps on 4/5 again. Could work entirely fine, eventually, depending on the order the pump TEs are called in.


    Thanks for providing this idea ^^