Ludeon Forums

RimWorld => General Discussion => Topic started by: Listy on June 01, 2017, 05:00:42 AM

Title: Moisture Pump - not draining water
Post by: Listy on June 01, 2017, 05:00:42 AM
Not sure if bug or intended behaviour...

I laid out my base, on a coastal river to use some areas that are currently under shallow water. Set up my moisture pumps and got down to it.
Well apparently a moisture pump works on the ocean, but not on shallow moving water. Which came as a bit of a surprise and a bit of an embuggerance.

Anyone got a solution (Mod, file editing or Dev tool command) to this?
Title: Re: Moisture Pump - not draining water
Post by: DarthNihilus on June 01, 2017, 05:17:58 AM
IMO moisture pumps were made to drain swamps only and mb you're just getting it wrong - it's not they aren't working with shallow water and it's a bug. no . the fact that they ARE working with ocean IS an UNintended behavior and not-working with shallow water is just as intended:)
Title: Re: Moisture Pump - not draining water
Post by: ArguedPiano on June 01, 2017, 05:25:25 AM
"Very slowly removes moisture from nearby terrain, converting marshes or shallow water into dry ground. Does not affect deep water."

While it should work with shallow water it makes (logical) sense that you cannot drain a river.
Title: Re: Moisture Pump - not draining water
Post by: Listy on June 01, 2017, 05:54:19 AM
Quote from: ArguedPiano on June 01, 2017, 05:25:25 AM
"Very slowly removes moisture from nearby terrain, converting marshes or shallow water into dry ground. Does not affect deep water."

While it should work with shallow water it makes (logical) sense that you cannot drain a river.

Yet draining shallows on an ocean is very logical :p
Title: Re: Moisture Pump - not draining water
Post by: Limdood on June 01, 2017, 09:08:07 AM
Quote from: Listy on June 01, 2017, 05:00:42 AM

Anyone got a solution (Mod, file editing or Dev tool command) to this?
Dev mode, set terrain (over on the right side), soil
Title: Re: Moisture Pump - not draining water
Post by: dburgdorf on June 01, 2017, 10:39:36 AM
Quote from: Listy on June 01, 2017, 05:00:42 AMAnyone got a solution (Mod, file editing or Dev tool command) to this?

If you want to do it immediately, dev mode, as already suggested.

If you want something a bit less "cheaty," well -- shameless plug -- my "Fertile Fields" mod provides a lot of terraforming options, including converting watery terrains to something less moist, with a bit of research and some work on the part of your pawns.

There's also the possibility, of course, of just putting bridges over the offending water, if it's just a question of letting your pawns cross it easily. Either my own "Basic Bridges" or Shinzy's "Bridgello" mod will help in that respect.
Title: Re: Moisture Pump - not draining water
Post by: Listy on June 02, 2017, 02:47:17 AM
Quote from: Limdood on June 01, 2017, 09:08:07 AM
Dev mode, set terrain (over on the right side), soil


Is that a cell by cell basis, or is it an area?

I did look for that option on the dev console, but must have missed it.

Quote from: dburgdorf on June 01, 2017, 10:39:36 AM
There's also the possibility, of course, of just putting bridges over the offending water, if it's just a question of letting your pawns cross it easily. Either my own "Basic Bridges" or Shinzy's "Bridgello" mod will help in that respect.

This is part of my perimeter wall, so nope need a little more functionality there. I do wish there was more options when it comes to water instead of it being an obstacle.
Title: Re: Moisture Pump - not draining water
Post by: Limdood on June 02, 2017, 08:39:57 AM
cell by cell....time consuming, but it's nice to have the functionality if you're trying to correct a problem that would require a complete base rebuild, or size the PERFECT plot of rich soil for a casual game.
Title: Re: Moisture Pump - not draining water
Post by: Listy on June 03, 2017, 04:00:04 AM
Quote from: Limdood on June 02, 2017, 08:39:57 AM
cell by cell....time consuming, but it's nice to have the functionality if you're trying to correct a problem that would require a complete base rebuild, or size the PERFECT plot of rich soil for a casual game.

Yeah there weren't many cells needed to be changed, it was the work of moments. I switched them to marsh so I'd still need to pump them out.
Title: Re: Moisture Pump - not draining water
Post by: mumblemumble on June 03, 2017, 01:15:51 PM
I agree of having a means to build over a river in some way, but draining a river makes no sense (for the record, neither does draining a sea).

I think rivers need a means to build on, and oceans need drain immunity.
Title: Re: Moisture Pump - not draining water
Post by: jamaicancastle on June 03, 2017, 06:01:40 PM
Quote from: mumblemumble on June 03, 2017, 01:15:51 PM
I agree of having a means to build over a river in some way, but draining a river makes no sense (for the record, neither does draining a sea).
Au contraire, mon capitan!

The techniques of damming and redirecting rivers were well-known even in antiquity. (The primary problem is that it still has to go somewhere, which is probably more hydrodynamics than Tynan really wants to get into modeling.) Likewise you can easily (well not easily, but straightforwardly) pump out a section of ocean by constructing a retaining wall such as a cassion, sinking it to the bottom and anchoring it, and then pumping out the area behind the wall. That's how they build things like bridge pilings, dams, landfills, and the Netherlands.
Title: Re: Moisture Pump - not draining water
Post by: khearn on June 05, 2017, 02:07:28 PM
Yeah, but without other engineering, just sticking a pump in a river or ocean shouldn't be expected to accomplish much.
Title: Re: Moisture Pump - not draining water
Post by: O Negative on June 05, 2017, 02:53:54 PM
There are 4 types of tile for water
Stagnant
Shallow
Deep

Moving
Shallow
Deep


That said, rivers use the moving water tiles while the oceans and lakes/puddles use the stagnant water tiles.

The game just looks at ocean water like a big lake. You still can't drain the deep stuff, but you can drain the shallow stuff. A "fix" for this would be a 3rd category for water tiles (oceanic).

I don't know if the effort is necessary, but the option exists.
Title: Re: Moisture Pump - not draining water
Post by: dburgdorf on June 05, 2017, 03:35:46 PM
Quote from: O Negative on June 05, 2017, 02:53:54 PMThere are 4 types of tile for water....

Actually, there are six water tiles in a17:

WaterMovingShallow and WaterMovingDeep (river tiles)
WaterOceanShallow and WaterOceanDeep (ocean tiles)
WaterShallow and WaterDeep (other, "lake" tiles)
Title: Re: Moisture Pump - not draining water
Post by: O Negative on June 05, 2017, 04:20:33 PM
Quote from: dburgdorf on June 05, 2017, 03:35:46 PM
Actually, there are six water tiles in a17:

WaterMovingShallow and WaterMovingDeep (river tiles)
WaterOceanShallow and WaterOceanDeep (ocean tiles)
WaterShallow and WaterDeep (other, "lake" tiles)

Yes, I stand corrected
<?xml version="1.0" encoding="utf-8" ?>
<TerrainDefs>

  <TerrainDef>
    <defName>WaterDeep</defName>
    <label>deep water</label>
    <texturePath>Terrain/Surfaces/WaterDeepRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>395</RenderPrecedence>
<passability>Impassable</passability>
    <PathCost>300</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
<holdSnow>false</holdSnow>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>Water</li>
    </tags>
  </TerrainDef>

  <TerrainDef>
    <defName>WaterOceanDeep</defName>
    <label>deep ocean water</label>
    <texturePath>Terrain/Surfaces/WaterDeepRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>397</RenderPrecedence>
    <passability>Impassable</passability>
    <PathCost>300</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
    <holdSnow>false</holdSnow>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>Water</li>
    </tags>
  </TerrainDef>

  <TerrainDef>
    <defName>WaterMovingDeep</defName>
    <label>deep moving water</label>
    <texturePath>Terrain/Surfaces/WaterDeepRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>399</RenderPrecedence>
    <passability>Impassable</passability>
    <PathCost>300</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
    <holdSnow>false</holdSnow>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>River</li>
      <li>Water</li>
    </tags>
  </TerrainDef>
 
  <TerrainDef>
    <defName>WaterShallow</defName>
    <label>shallow water</label>
    <texturePath>Terrain/Surfaces/WaterShallowRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>394</RenderPrecedence>
    <PathCost>12</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
    <holdSnow>false</holdSnow>
    <driesTo>Gravel</driesTo>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>Water</li>
    </tags>
  </TerrainDef>

  <TerrainDef>
    <defName>WaterOceanShallow</defName>
    <label>shallow ocean water</label>
    <texturePath>Terrain/Surfaces/WaterShallowRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>396</RenderPrecedence>
    <PathCost>12</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
    <holdSnow>false</holdSnow>
    <driesTo>Gravel</driesTo>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>Water</li>
    </tags>
  </TerrainDef>

  <TerrainDef>
    <defName>WaterMovingShallow</defName>
    <label>shallow moving water</label>
    <texturePath>Terrain/Surfaces/WaterShallowRamp</texturePath>
    <waterDepthShader>Map/WaterDepth</waterDepthShader>
    <EdgeType>Water</EdgeType>
    <RenderPrecedence>398</RenderPrecedence>
    <PathCost>12</PathCost>
    <acceptFilth>false</acceptFilth>
    <fertility>0</fertility>
    <avoidWander>true</avoidWander>
    <changeable>false</changeable>
    <holdSnow>false</holdSnow>
    <takeSplashes>true</takeSplashes>
    <tags>
      <li>River</li>
      <li>Water</li>
    </tags>
  </TerrainDef>
 
</TerrainDefs>

Woops ::)
Title: Re: Moisture Pump - not draining water
Post by: swampslug on June 05, 2017, 05:13:55 PM
Of those 6 types, only WaterOceanShallow and WaterShallow have the <driesTo> tags. I haven't tested it but a patch to remove the node from WaterOceanShallow should prevent you from draining the ocean and adding it to WaterMovingShallow should enable the draining of river shallows.

Personally I prefer the use of bridge mods to build over water as draining a river/ocean without additional engineering to block off the area to be drained is unrealistic.