Railcraft

Railcraft

34M Downloads

[Enhancement] Steam Pipes

abculatter2 opened this issue ยท 8 comments

commented

It would be nice if there were a way to carry steam around in vanilla railcraft, without having to rely on tank carts, which are slow at this task and also not very thematic. Ideally, this would be lossy, so as to encourage people to make centralized power stations (and prevent excessively long steam lines) which, from what I understand, is a significant theme in the mod's power system.

As for more specific suggestions on how this could work;

I propose three types of pipes, each with iron and steel versions and made in a rolling machine with iron/steel plates. All of these pipes would have a percentage loss for every meter of pipe that they have to go through, 0.5% loss/block for iron, and 1% loss for steel.

Regular pipes, made with 6 plates in a = shape yielding 3 pipes, would have enough throughput to accept the full output of their tier's respective max-sized boiler. For iron, this would of course be 360mb/t, and for steel 720mb/t.

Half-pipes, made with 6 plates in a trapdoor recipe shape yielding 6 pipes, would have half the throughput of a regular pipe, so 180mb/t for iron, and 360mb/t for steel.

Small pipes, made with 3 steel plates in a slab-shape recipe yielding 6 pipes, would have a quarter of the throughput of a regular pipe, 90mb/t for iron and 180mb/t for steel.

I'm also debating on whether or not the pipes could use a slimeball or two in their respective recipes, though I'm not sure on the matter, so I'll just leave the idea here. If it does get implemented, I suggest a slimeball in the recipe for every 3 pipes.

commented

I can't believe I've never seen this issue before. Immediately got some ideas for this.

  • Every x block there is a joint in the pipe, where segments are held together by bolts
  • Each x tick while there is steam inside the pipes a joint has a chance to start leaking, loosing some steam every tick, and need to be interacted with to make it stop
  • Iron pipes have x change to start leaking per tick, steel pipes have y chance
  • Add pipe wrench for interacting with pipes, because using a crowbar would feel wrong.

Don't really think it needs to be more complex than that. Longer pipes will have more joins, and thus more points of failure which should discourage long pipelines and encourage short segments or direct connections.

I would probably make the pipes have the same capacity, and thus being able to use the same models with different colorization. Making the value of making steel pipes the decreased maintenance required.

commented

Some form of Steam pipes has been on the todo list for a long time.

Same size, yes, but steel should be able to handle higher pressure (steam is a highly compressible fluid).
http://www.engineeringtoolbox.com/steam-pipes-sizes-d_258.html

I wanted to do something overpressurization events and relief valves, etc... but I always struggled with making that work from a gameplay perspective. Mostly because there is no system for generating pressure events.

commented

And for what it's worth, I can use basically copy the render code from the wires and tweak the dimensions a bit. So that shouldn't be an issue.

commented

My take on steam pipe design:

Make steam pipes work just like Buildcraft pipes (separate TileEntities which are mini tanks filling each other), but make their capacity and exchange rate infinite.

Define a mathematical relation between mB stored to pressure, dependent on pipe cross-section and gas properties (this could be used for other gases too, not just steam). Gas exchange amount between neighboring pipes would depend on pressure differential not just raw mB.

Finally, pipes would have a certain chance per tick (based on their material and type) to suffer failure as a function of their pressure. They should have a safe pressure threshold below which pipes will never fail (to make unattended setups possible), and a certain doom threshold where they will instantly and completely fail. Between the two, the chance to suffer failure would gradually rise.
In fact failure itself could be multi-staged, with the first failure being only visual, then the pipe would start leaking and losing gas each tick, with the final stage possibly being an explosion, and neighboring pipes venting all their content at the fracture until replaced. Non-fatal failures could be repaired by hitting the pipe with a wrench or something like that.
So you could take it easy and respect the pipe's safe pressure, or exceed normal limits and tackle failures as they crop up.

Something like this wouldn't be too hard to implement, is pretty realistic, and - depending on the complexity of the pressure formula - still fun enough to use.

commented

So...that's all well and good, but you failed to address one key piece of the puzzle....where does pressure come from? Are they a black hole that sucks up steam until they explode? Is something pushing steam into the pipes (again...where is the limiter function to prevent constant pressure buildup)?

The details of implementation are far less important than the design of the gameplay. We need a complete picture from source to sink.

It was never the pipes themselves that I found unworkable, but more the points where they interact with other blocks in meaningful intuitive fashion.

commented

I'd prefer if it was kept simple in the way described, perhaps with the addition of having the iron pipes transfer rate match that of low pressure production and steel pipes match that of high pressure.

commented

Hmmm... right, I see what you mean. If they just accept steam as an IFluidHandler, then everything is an infinite-pressure source. If only special pump tiles can insert steam at constant pressure, then what you get is functionally equivalent to existing pipes, just with different numbers under the hood.

It would only be meaningful if there are machines that output steam at variables pressure (so basically, realistic turbines), but I'm not sure the mental overhead of such a system would qualify as "fun" anymore.

commented

Flax beards steam power has an interesting steam based pipe steam you might be able to pull ideas from?