Mithion / ArsMagica2

Ars Magica 2 Bug Tracker
127 stars 186 forks source link

Liquid Etherium not acting like a liquid. #1479

Open EraalThor opened 8 years ago

EraalThor commented 8 years ago

It just appears to be a tile with no liquid properties.

EDIT: Rolled back to the previous version and it works fine. What changed between 1.4.0.008 and 1.4.0.009 in terms of the liquid properties?

jjtParadox commented 8 years ago

A bug was in .008 where dispensers used to pick up etherium as water buckets, so a change was made so that wouldn't happen. Also, what do you mean by "liquid properties"?

jjtParadox commented 8 years ago

@EraalThor any update?

ThatOneTraitor commented 8 years ago

ive seen this on simply magic. normally when you into liquid etherium, or most liquids,the swimming mechanics will start affecting movement, and your fall damage is negated. In 009, Its treated like an air block.

ThatOneTraitor commented 8 years ago

To replicate, find/make a pool of liquid etherium, fly above it, and drop in. itll act like your falling through air

jjtParadox commented 8 years ago

I was able to replicate it, but fixing it takes a whole lot more work than I expected. The entity class is littered with checks for Material.water to test if entities are in a swimmable thing. Issue is the dispenser also checks for Material.water to see if it should pick up a water bucket. Originally etherium was defined as the water material, allowing players to swim in it but also causing the dispenser bug. It was changed to a custom etherium material, but now the player isn't in Material.water and can't swim properly in it.

Fixing that would require transforming the base minecraft in some way to allow entities to swim in etherium.

ThatOneTraitor commented 8 years ago

why not use the ways other mods like thermal foundation do? (Idk that way, just an idea)

jjtParadox commented 8 years ago

Thermal foundation uses those transformers I mentioned, and I believe buildcraft does something similar. I tried to go through their code to figure out how it was done, but I had no luck.

bookerthegeek commented 8 years ago

We could ask them.

EraalThor commented 8 years ago

Sorry for not responding. One other thing is it only looking like a tile not having any other parts in the block.

TheIcyOne commented 8 years ago

The TF fluids seem to be using the previous methods, which cause the dispenser issue, but CofHCore's dispenser utilities (https://github.com/CoFH/CoFHCore/tree/master/src/main/java/cofh/core/util/fluid) prevent it.

ThatOneTraitor commented 8 years ago

i guess maybe, with permission, it could be used in am2? im guessing that having cofhcore as a requirement isnt gonna be wanted.

TheIcyOne commented 8 years ago

https://github.com/CoFH/CoFHCore/blob/master/README.md seems to grant the necessary permissions, although it can't hurt to ask.

ThatOneTraitor commented 8 years ago

well.... @Mithion / @Kolatra poke poke. bug fix tag?

TheIcyOne commented 8 years ago

coughs I think you meant @Mithion

ThatOneTraitor commented 8 years ago

slightly stabs @Mithion

TheIcyOne commented 8 years ago

Well, that edit's making me look silly.

ThatOneTraitor commented 8 years ago

ik it is owo

Mithion commented 8 years ago

I'd rather have no dependencies on other mods if I can help it. It's not AM2's fault that the default MC code doesn't check for liquids other than water.

In fact, this is something that I would report/fix at the forge level, as they are the ones that correct the MC code to make it moddable in a simple way.

Also @mithion has been on vacation dodging grizzly bears, so your poking and stabbing are not effective :P

TheIcyOne commented 8 years ago

You underestimate the range of our poking implements.

ThatOneTraitor commented 8 years ago

hrm, Lets make a warhead of poking sticks. And the poking was effective, it got you here ;p

ThatOneTraitor commented 8 years ago

https://github.com/MinecraftForge/MinecraftForge/issues/2918 Done. If they add the feature label onto it, then this can be closed because then we have to wait on a new forge version.

TheIcyOne commented 8 years ago

Is 1.7 still supported by forge?

ThatOneTraitor commented 8 years ago

not sure if is. but still, its something good to add to forge anyways

ThatOneTraitor commented 8 years ago

actually. even if it is added to forge, am2 is being rewritten to 1.8.9 so we'd still need to add this.

ThatOneTraitor commented 8 years ago

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

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); } }

Short term fix, if someone could format this right. thanks OwO

ThatOneTraitor commented 8 years ago

maybe @jjtParadox could put this into a pull request?

jjtParadox commented 8 years ago

Took me forever to figure out what you're talking about, but I think I can do that once I fix some mana batteries.

ThatOneTraitor commented 8 years ago

it was all in the post on the forge github, Ill be joining IRC so i can actually talk

ThatOneTraitor commented 8 years ago

Its been added to forge, not in this version of minecarft, but its been added