MehVahdJukaar / amendments

Other
16 stars 14 forks source link

Pump liquids (except water and lava) out of a cauldron using the Create mod pump #81

Open MrRedstoneToGo opened 4 months ago

MrRedstoneToGo commented 4 months ago

Simply that, except that the fluid is in the fluid pipe:

2024-05-17_19 31 39

MehVahdJukaar commented 4 months ago

ill implement the capability but that might still not be enough for some machines as cauldrons can ONLY output multiples of 250 forge fluid (1 bottle)

MrRedstoneToGo commented 4 months ago

That's not a problem, after all, it's the same in the normal Create (without Amendments).

MrRedstoneToGo commented 4 months ago

If the fluid amount is not quite right, Create is to blame (https://github.com/Creators-of-Create/Create/issues/6505)

MehVahdJukaar commented 4 months ago

new version does have the capability implemented. once again it will only be able to accept in those increments. I would except that it would work for at most extracting as i dont think the pipe would like to add to it 250 fluid units in one tick, Also remember that if that doesnt work you can use supplementaries faucet in conjuction with any fluid tank. it wil act as a buffer and faucet can extract and output in bottle increments

MrRedstoneToGo commented 4 months ago

On Forge I saw that you added the fluid capability (when there is a bar with the fluid amount in Jade), but not on Fabric, keep in mind that all units in Create Fabric run via Fabric API. Anyway, you still couldn't pump the fluid out of the cauldron on both mod loaders. I think our best option is to put the Fluid Cauldron with the other Vanilla Cauldrons (see pull request above). You can also clean up some code there :)

MehVahdJukaar commented 4 months ago

I'm not that familiar with fabric fluid api, also because its pretty new. I'll add its stuff next. Stuff will be there but wether other mod pipes will like them or not will be entirely up to them as cauldron will reject anything triying to put stuff or extract fluids that are not multiple of 250 or its fabric equivalent (its diferent there as 1 bucket equals 3 bottles there thankfully, makes my life harder tho)

MrRedstoneToGo commented 4 months ago

What is the problem with fabric? All recipe viewers show the liquid in mB, but fabric calculates in drops (I don't know if that's what they're called). 1 bucket is 81000 drops. So you only have to enter 9000 drops and not a decimal number!

MehVahdJukaar commented 4 months ago

Theres no problem its just different unit.

MrRedstoneToGo commented 4 months ago

One more thing with fluid capacity: You can't mix the potions because there is no fluid for the result (yet).

MehVahdJukaar commented 4 months ago

ehm what does that mean?

MrRedstoneToGo commented 4 months ago

When I discovered the mod amendments, I first tried out all the features. Among other things, you could mix different potions, a great idea! but when I tried it now, it didn't work anymore. Whenever I put a potion in a cauldron (cauldron becomes fluid cauldron) and tried to add another one, I drank it instead of putting it in the cauldron. I think this is related to the fluid capability because there is no fluid for mixed potions yet, you would have to adjust the nbt data of the potion fluid to make this possible.

MehVahdJukaar commented 4 months ago

are you sure you are using both amendments and moonlight newest versions? btw new version has that fabric storage thing. Not exactly sure if its correct as the api for it is a bit weird but should do something at least

MrRedstoneToGo commented 4 months ago

If Amendments 1.20-1.1.30, Moonlight Lib fabric_1.20-2.11.24 and Fabric API 0.92.1+1.20.1 are the newest versions, yes.

MrRedstoneToGo commented 4 months ago

Have you ever looked there? https://fabricmc.net/wiki/tutorial:transfer-api_simpletank

MehVahdJukaar commented 4 months ago

i did but javadocs on the classes were more useful. code should work, not sure if it will accept many modded pipes as thats up to them or convert the units correctly but im pretty sure all the rest is ok

MehVahdJukaar commented 4 months ago

If Amendments 1.20-1.1.30, Moonlight Lib fabric_1.20-2.11.24 and Fabric API 0.92.1+1.20.1 are the newest versions, yes.

I cant replicate then. fluid mixing works for me

MrRedstoneToGo commented 4 months ago

How? 2024-05-20_20 55 05

Water breathing in cauldron; regeneration potion in hand

MrRedstoneToGo commented 4 months ago

I have some good news and some bad news: First the good news: In Jade, I can see the bar with the liquid at the top and potions can be mixed! They are labelled as "Uncraftable Potion", but hey! Faucets do weird things: https://github.com/MehVahdJukaar/amendments/assets/163460667/7d139649-d6f5-47fd-a30d-d9e222532a59 Honey blocks can no longer be taken from a cauldron, as this is already full from level 3 and custom fluids (in buckets) no longer go in either. In addition, fluid cauldrons always contain 0mB of fluid. But since I don't think you want to add coloured water, simply remove the fluid capability from cauldrons. Create pumps still can't pump liquids from liquid cauldrons, maybe it's in the Creators/Fabricators of Create in the code, which variable they change exactly so that you can add it. Pumping water and lava into the cauldron doesn't work for them now, so let's wait and see. Where did you find out that all bottled fluids in fabric are 333 1/3 mB? For all fluids except water, 250mB would make everything much easier.

MehVahdJukaar commented 4 months ago

so idk about the fluid mixins stuff. i tried pultiple times and it works for me. As for the unit stuff fabric uses a differnt unit. 1 bucket = 81000 units and a bottle is 1/3 of that or 27000 units. I had to change quite some things to acomodate. Now fabric version has a cauldron that goes up till layer 3 instead of 4, there bowls are equivalent to 1 bottle insteaed of 2 and buckets are 3 instead of 4

MrRedstoneToGo commented 4 months ago

No way, I play a lot of Create and simply haven't noticed this difference until now! Just one thing, honey bottles should still contain 250 mB of honey instead of 333 mB because that's what the Minecraft honey bottles to honey blocks crafting recipe says.

MehVahdJukaar commented 4 months ago

1 block Is 4 bottles and 3 bottles are 1 bucket That's how the conversion works

MrRedstoneToGo commented 4 months ago

So the honey block consists of 1333 1/3 mB and therefore cannot be produced in a cauldron, right?

MehVahdJukaar commented 4 months ago

yeah its 4 bottles and on fabric cauldron can only hold 3 bottles so you cant put it in there

MrRedstoneToGo commented 3 months ago

The whole thing doesn't make sense. I have always meant for honey bottles to be 250 mb on Fabric too but it felt silly to add a constant just for that. Maybe it would have avoided this discussion at least. 😄 (I wrote FluidConstants.)

Originally posted by @Technici4n in https://github.com/Fabricators-of-Create/Create/issues/1498#issuecomment-2136121921

So, are you going to change anything?

MehVahdJukaar commented 3 months ago

I still don't see any reason why honey in particular should be 250 given there's no other existing vanilla recipe or constant that backs it up

MrRedstoneToGo commented 3 months ago

@Technici4n is a developer of Fabric API, so he should know what is intended and what is not. If you're unsure I can also open an issue on their github repository.

If you are reading this, @technici4n, please add or override a constant for Honey Bottles or maybe put it in the javadoc as a note. You wanted to add a constant, but I haven't seen one yet.

Technici4n commented 3 months ago

Fabric API says it explicitly:

If you don't know how many droplets you should pick for a specific resource that has a block form, the convention is to use 81000 droplets for what is worth one block of that resource.

This covers honey bottles using 250 mb, and is why I did not include a specific constant for it.

MrRedstoneToGo commented 3 months ago

I haven't used this mod for a while, but now when I put Honey Bottles in a cauldron, I can't get the liquid as a bucket, block, or by pumping it out. Good job!