MineMaarten / PneumaticCraft

PneumaticCraft source
Other
84 stars 50 forks source link

Problems between PMC oil and BC oil #746

Closed Potsukin closed 8 years ago

Potsukin commented 8 years ago

I am playing PMC about a year, then tried to install BuildCraft about a week ago. BC pump doesn't recognize BC oil. I tried to fill BC oil with bucket to Thermal Expansion Creative Portable Tank, it works, then I can not fill PMC oil to Portable tank. Then I made Superflat world which do not have PMC oil lake underground, tried to make BC oil lake with WorldEdit, BC pump works, but I can not fill PMC oil to the tank, PMC gas lift do not work. It seems that

  1. if PMC oil is available in-world, BC pump will not work 2.If BC oil is available in-world, PMC gas lift will not work
Potsukin commented 8 years ago

PneumatiCraft version PneumaticCraft-1.7.10-1.11.18-140-universal, BC version 7.1.11

Potsukin commented 8 years ago

List from ID Checker: /////////////////////////////////////

Fluid List 2015/10/25 18:44:24

/////////////////////////////////////

ID,Name 1,water 2,lava 3,poison 4,hell_blood 5,honey 6,oil 7,fuel 8,redplasma 9,redstone 10,glowstone 11,ender 12,pyrotheum 13,cryotheum 14,aerotheum 15,petrotheum 16,mana 17,steam 18,coal 19,creosote 20,plantoil 21,ethanol 22,biodiesel 23,etchacid 24,plastic 25,lpg 26,kerosene 27,diesel 28,lubricant

It looks like a name conflict between BC fluid and PMC fluid

Potsukin commented 8 years ago

I was tried to re-create a world from current world. All the pneumatic oil lakes were replaced to BC oil, both PMC gas lift and BC pump are working. PMC Refinery works as well. But how can I resolve this problem with my existing world?

AEnterprise commented 8 years ago

@Potsukin look in the forge configs i think there's an option you can enable to reset the default world fluid, try that

Potsukin commented 8 years ago

@AEnterprise I can't find any fluid option in /minecraft/config/forge.cfg where is that ?

Potsukin commented 8 years ago

@AEnterprise I found DefaultFluidList with NBTExplorer at

/minecraft/saves/MY WORLD/level.dat/Forge/DefaultFluidList

There is a difference between existing world and re-created world. Re-created world (no trouble, all the PMC oil lake was filled by BC oil) : BuildCraft|Energy:oil and BuildCraft|Energy:fuel are on the list, but existing world is PneumaticCraft:oil and PneumaticCraft:fuel are on the list, not BC oil and fuel.

I was edited those to BuildCraft|Energy:oil and BuildCraft|Energy:fuel but nothing happened.

AEnterprise commented 8 years ago

hmm odd

Potsukin commented 8 years ago

Probably this is because PMC oil (and PMC fuel ) is already available in-world. DefaultFluidList is just a list, will not change items already exist in world. I expect @MineMaarten to add something like "change all the PMC oil to BC oil, PMC fuel to BC fuel " to config, may solve this kind of trouble.

MineMaarten commented 8 years ago

This is not for me to solve I'm afraid. I'm doing things right currently, and delegate these things to Forge's fluid handler. When having a new world, there should be only one oil block, whether it is BC's or PC's. PC makes sure to use BC's oil in world gen if Forge dictates it's the default oil block. When a mod gets added later to a new world the default block was set already, so it should use that default. I'm quite sure BC also treats this nicely.

It's weird that you ended up with different oil blocks, but I can't really do anything about it, changing all fluid blocks that aren't right is 1. hacky, and 2. not my responsibility, if it was really required, Forge would have to add it. But it shouldn't be...

Potsukin commented 8 years ago

Finally I was mostly fixed this issue with NBTExplorer. Deleted /minecraft/saves/MY WORLD/level.dat/Forge/ of existing world, then copy &paste minecraft/saves/NEW WORLD/level.dat/Forge/ from re-created world. This way BC oils and both BC & PC pumps works, but PC oil lake will be generated in new chunks and cannot pump. I know that this issue caused by Forge's fluid handler, but what important for me is can play without trouble in existing world.

Potsukin commented 8 years ago

@MineMaarten 1.No one think if you add something like "change all the PMC oil to BC oil, PMC fuel to BC fuel " to config for a troubleshooting.

  1. If you do not choose a same fluid name as BC fluids it shouldn't happen. It's your responsibility.

I think that not many people use NTBExplorer. What are you going to say if same issue was happened to those people? " Do not install BC after PMC" or "Make new world if you would like to use both PC and BC"?

XFactHD commented 8 years ago

@MineMaarten two solutions I could think of would be to either only register your oil if BC is not loaded (Loader.isModLoaded("Buildcraft|Energy")) or you force PC to load after BC by putting "after:Buildcraft|Energy" into the dependencies.

MineMaarten commented 8 years ago

If you do not choose a same fluid name as BC fluids it shouldn't happen. It's your responsibility

Forge intends to support multiple fluids with the same name, to make them interchangeable. I'm making use of this feature, and I'm relying on forge to do this correctly.

I think that not many people use NTBExplorer. What are you going to say if same issue was happened to those people?

It shouldn't have happened anyway. I've tested myself with creating worlds and sequences of adding BC and PC into the instance (after the fluid handling rewrite I did recently), and it worked great!

And if it does happen, then people would have to live with redundant oil and possibly having to spawn in oil as replacement. Doable for private servers, for larger servers the server owner should be able to use tools like NBTExplorer like you.

I'm sorry if I sound like a dick atm, but creating something that changes every oil block into another is just very time consuming and hacky, and it should be useless as well, as this problem shouldn't occur.

@XFactHD Doesn't matter if the default fluid is already set in Forge's save.

XFactHD commented 8 years ago

My suggestion wouldn't fix existing worlds but it would probably fix compatibility problems with the BC pump.

AEnterprise commented 8 years ago

@XFactHD nope that would only make it worse, say somone first plays with PC and only adds BC to the instance later, then all PC oil would simply vanish from the world because the oil isn't registered anymore

Potsukin commented 8 years ago

It shouldn't have happened anyway. I've tested myself with creating worlds and sequences of adding BC and PC into the instance (after the fluid handling rewrite I did recently), and it worked great!

OK I write exactly what I did: 1.Pumped PC oil with PC gas lift - worked

  1. Installed BC
  2. Tried to fill BC oil with bucket to Thermal Expansion Creative Portable Tank ( in creative mode) , it worked, then I can not fill PMC oil to Portable tank
  3. I found BC oil fountain in the ocean so tried to use BC pump- not worked
  4. So tried to use PC gas lift, doesn't worked

Both BC pump and PC gas lift stopped to work

And if it does happen, then people would have to live with redundant oil and possibly having to spawn in oil as replacement. Doable for private servers, for larger servers the server owner should be able to use tools like NBTExplorer like you.

I am not a server owner. Now I can pump BC oil with both BC pump and PC gas lift , but PC oil lake with PC oil still show up when I explore new chunks which can not pump. Any idea to solve them?

MineMaarten commented 8 years ago
  1. I fould BC oil fountain in the ocean so tried to use BC pump- not worked
  2. So tried to use PC gas lift, doesn't worked

Indicates to me the PC oil was used as default oil fluid, which it should be, as you said you added BC later. Now what happened in my tests is when BC is added later, the BC worldgen uses PC oil, making sure there is only one oil fluid block. PC does the other way around when PC is added later, meaning PC worldgen will use BC oil when BC oil is decided to be the default (and the one that works for pumps).

Both BC pump and PC gas lift stopped to work

Yes, both stopped to work on invalid oil. Nothing wrong with either pump though.

Now I can pump BC oil with both BC pump and PC gas lift , but PC oil lake with PC oil still show up when I explore new chunks which can not pump.

That simply is not possible in normal circumstances, as the ability whether to be able to pump a fluid or not is only dependent whether or not the fluid is default, and PC also grabs the default fluid to generate with.

As a workaround, simply disable the PC worldgen.

XFactHD commented 8 years ago

@AEnterprise only if you use the first option. If you use the second you would simply force PC to load after BC to make BC oil the preffered fluid in a new world.