Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dispensers will pickup any Materal.water as a Water bucket when using a vanilla empty bucket no matter if it is indeed a water block or not #2918

Closed
ThatOneTraitor opened this issue May 27, 2016 · 12 comments
Labels
Bug This request reports or fixes a new or existing bug. Fluids This request touches or otherwise deals with the fluids system. These requests require special care. Superseded This request has a more updated, more capable, and overall better alternative.

Comments

@ThatOneTraitor
Copy link

There should be a thing that makes dispensers check for what fluid their picking up. Thermal foundation has their own dispenser utilities that let their liquid be picked up by dispensers in a fixed way. This should be added into forge so that other mods such as AM2 (The whole reason im making this post) doesn't have to worry about liquid not being handled by dispensers properly

@LexManos
Copy link
Member

Dispensors use items, and have a registry for there 'attempt to use this item'.
So if there is something that can be used to hold fluids in the dispenser, then it needs a handler to be registered.
So this has very little to do with liquids and more the items. What items are not working? The vanilla bucket picks up lava/water so it should work fine.

@williewillus
Copy link
Contributor

williewillus commented May 28, 2016

I'm gathering that this is requesting something like a dispenser use action for the universal bucket? Unified way to go bucket -> liquid and vv
@ThatOneTraitor That's not going to show up in 1.7.10 with AM2 though, it's going to be in 1.9.4+

@ThatOneTraitor
Copy link
Author

ThatOneTraitor commented May 28, 2016

yeah still, it'd be good to add. And to anser @LexManos the bucket will pick up liquid etherium but turn it into Water. there was a fix to it but then it caused the etherium tile not to act as a liquid, the long conversation is in the post that this is being refrenced to.

@TheIcyOne
Copy link

Just to note, this is the commit @ThatOneTraitor is referencing.

Mithion/ArsMagica2@0e7da1f

@LexManos
Copy link
Member

And this is why context information is important!
The OP is 'Dispensers something something fluids something something'
With your added context 'Dispensers will pickup any Materal.water as a Water bucket when using a vanilla empty bucket no matter if it is indeed a water block or not'
See how context makes things actually make sense?

@williewillus
Copy link
Contributor

So this is actually a bug of sorts.

@Actuarius
Copy link

@williewillus added labels [Bug]

@Actuarius Actuarius added the Bug This request reports or fixes a new or existing bug. label May 29, 2016
@ThatOneTraitor ThatOneTraitor changed the title [Suggestion] Make Dispensers check for liquids other than water Dispensers will pickup any Materal.water as a Water bucket when using a vanilla empty bucket no matter if it is indeed a water block or not May 29, 2016
@polyipseity
Copy link

polyipseity commented May 30, 2016

@ThatOneTraitor
I use a way to make any custom liquid with custom liquid material act as a liquid by overriding a method.

public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
{
    return null;
    // null for default
}

I override it with this :

public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
{
    if (materialIn == Material.WATER && world.getBlockState(blockpos).getBlock() == this) // Check is materialIn equals to Material.WATER
    {
        return true;
    }
    else
    {
        return super.isEntityInsideMaterial(world, blockpos, iblockstate, entity, yToTest, materialIn, testingHead);
    }
}

And it will act like as a liquid.
This is a short-term fix.
We still need to fix this bug.

@ThatOneTraitor
Copy link
Author

ty, ill put this on the AM2 issue

@Actuarius
Copy link

@mezz added labels [Fluids]

@Actuarius Actuarius added the Fluids This request touches or otherwise deals with the fluids system. These requests require special care. label Jun 4, 2016
@mezz
Copy link
Contributor

mezz commented Jun 4, 2016

I'll get started on this now

mezz added a commit to mezz/MinecraftForge that referenced this issue Jun 4, 2016
@Actuarius
Copy link

@williewillus added labels [Superseded]

@Actuarius Actuarius added the Superseded This request has a more updated, more capable, and overall better alternative. label Jun 4, 2016
mezz added a commit to mezz/MinecraftForge that referenced this issue Jun 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug This request reports or fixes a new or existing bug. Fluids This request touches or otherwise deals with the fluids system. These requests require special care. Superseded This request has a more updated, more capable, and overall better alternative.
Projects
None yet
Development

No branches or pull requests

7 participants