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

plasma containers #554

Closed
Nex4rius opened this issue Jul 2, 2016 · 9 comments
Closed

plasma containers #554

Nex4rius opened this issue Jul 2, 2016 · 9 comments
Labels

Comments

@Nex4rius
Copy link

Nex4rius commented Jul 2, 2016

To handle plasma we need a special "Plasma Containment Pipe" otherwise the pipes burn but we can still put it normally into quantum tanks or cells without any drawbacks.

I think it would be cool to have a "Plasma Containment Upgrade" for quantum tanks / machines that would allow them to work with plasma while draining a bit of power otherwise -> BOOM.
It would also be cool to have new "Plasma Containment Cells" that would require power to store the plasma and when it runs out -> BOOM :)
As an additional feature these cells would allow to transport plasma or lava in your inventory without getting damage as long as they are powered.

@mura3277
Copy link
Collaborator

mura3277 commented Jul 2, 2016

I'd also like to see this happen, but I believe it's not an easy thing to do.

For machines, maybe removing/blacklisting recipes that include plasma with the plasma arc furnace being the only exception(Maybe it's recipe changed to handle plasma?) and even a special "plasma" input/output hatch that can contain plasma.

The problem with creating a new plasma cell is it's not going to stop fluid containers from other mods transporting the fluid.

@Blood-Asp
Copy link
Owner

Jep, like with the pipes, it would not work on other mods.

To make it work, it would need to be added either on the fill method for the fluid container items, or like the unification system(or extention of it) to make it trigger on interaction with GT machine or player inventory.

I will likely not make myself that much work anymore to add new features to GT. I want to finish the current ToDo list.

@leagris
Copy link
Contributor

leagris commented Jul 2, 2016

Other option if you like to make plasma an exclusive, stop registering plasma to the fluid registry and make it an immaterial stuff like EU, but transported via special conduits, special containers.
Same if Anti-matter is to become a thing. It is not going to be any kind of fluid or item you can materialize outside of confined containers and special conduits.

@Blood-Asp Blood-Asp added the Idea label Jul 3, 2016
@mura3277
Copy link
Collaborator

mura3277 commented Jul 4, 2016

So with this commit, I added a canStorePlasma abstract method to the MetaTileEntity_BasicTank class (And implemented it in the necessary classes) and that seems to stop plasma being put into any tank in a GT machine that disallows it. This of course won't stop fluid containers.

Is there a way in the drain method to get a reference of the tile entity draining the tank?

@perkinslr
Copy link
Contributor

leagris's idea is what I was going to sugges. Unless we want to be able to pour plasma out into the world, there isn't really a reason to have it registered in the fluid dictionary. Even if the drain method can get a reference to the entity doing the draining, that assumes other mods aren't just magicking out the fluid. On the one hand I don't see a reason to spend much effort supporting mods that break convention like that, on the other hand there are advantages to not registering it with the fluid dictionary beyond simply preventing other mods from accessing it, like varying temperature and pressure and composition of the plasma.

@leagris
Copy link
Contributor

leagris commented Jul 5, 2016

Thaumcraft does fine preventing other mods from storing or moving fluid aspects. Though Thaumcraft fluid aspects are registered. I have no knowledge how it is done, but possibly it dios not register any container.

@mura3277
Copy link
Collaborator

mura3277 commented Jul 5, 2016

The only thing that we can't do (That I know of, someone of course correct me) with the current system is knowing what kind of tile is trying to drain fluid from a GT machine(So we can know if it's a GT pipe). However, we can prevent the other two situations which is filling GT TileEntitys with the built in forge method(Which I think most mods use?) and filling them by placing fluid containers in the GUI.

Not being able to only allow certain tile from draining GT tanks wouldn't be that much of an issue since you would still only be able to insert plasma into machines that accepted it. It would only really circumvent GT pipes(Which a lot of players probably do anyway).

@perkinslr
Copy link
Contributor

perkinslr commented Jul 5, 2016

Yeah, I actually strongly encourage my players to avoid GT pipes just because they load the server much more than thermal dynamics fluiducts. Pressure could be handled by the pipe/tank holding the plasma, but composition and temperature can't really... On the other hand, FluidStack isn't marked final, so we might be able to do what we need by creating a custom FluidStack, assuming saving and loading work properly with that...

At the moment I'm working on writing a new fusion main tick under the assumption that temperature, pressure, and composition are all dynamic values on the plasma in the fusion chamber. If it winds up that we can't pass arbitrary plasma through pipes, I'll figure out some way to normalize it on output from the fusion chamber (staged output maybe).

Edit: Just checked, FluidStack loading from NBT returns a FluidStack regardless of the class that saved it. It does allow for a generic 'Tag' entry in the NBT, which could possibly be used, but not quite as nicely.

@Blood-Asp
Copy link
Owner

Added to idea collection

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants