[B18] Insulating Walls

Started by lperkins2, January 05, 2018, 12:55:19 AM

Previous topic - Next topic

lperkins2

Can you give me some more details / screenshot of your layout?  Probably easiest to find the bug if I can duplicate the setup.

FociA

#16
Works great, you should release it in the steam community to find quicker issues.

idea:
combined materials. inner - center - outer wall(one tile wall, not 3 layer of walls). gold etc inner walls for beauty. woll in the center for Insulating. titanium etc for outerwall damage.

Harry_Dicks

So I was thinking about this. Could we have a "hardcore" edition of this mod, or something that doesn't reduce temp changes for double thick rooms under mountains to only equalize @ 1%? I like the idea of insulating walls, but I may not want this drastic of a change, only slightly as much :) If it all possible, would a mod options window be possible, with some sliders for us to play with? Maybe in the future, if you plan on expanding this mod that much further.

Personally, I think it could be fun to play with all kinds of heat transfer/insulation mod options. Maybe you want to require your ice sheet map to need 3 layer thick walls, for a 50% heat transfer reduction, but only two walls will give you 25% reduction? Just some fun thoughts ;)

lperkins2

Quote from: FociA on February 04, 2018, 05:58:34 AM
Works great, you should release it in the steam community to find quicker issues.

idea:
combined materials. inner - center - outer wall(one tile wall, not 3 layer of walls). gold etc inner walls for beauty. woll in the center for Insulating. titanium etc for outerwall damage.

I have no idea how I would go about releasing it on Steam, I don't use Steam with rimworld (I don't use steam with anything that isn't absolutely necessary).  If you have some pointers on how to do that, I could possibly make it happen.

Eventually I want to support something like that, but it will take reworking a lot more internals, which isn't super easy.  The stock temperature system calculates the room map every time a wall is placed or removed, and caches it.  It then goes through the room edges, checking exactly one space out, along the principal axes, to see what it in that cell.  I'll I'm doing (so far) is changing how it reacts to finding that cell filled, adding checks to additional cells is another thing entirely.

Monodevelop lets me browse the base assembly, but lacks any sort of decent search, and can't export the decompiled source for use with grep et al.  Rider has a much nicer decompiler, but lacks a way to browse the assembly at all, and also can't export it to a greppable form.  None of the windows decompiler stuff plays nicely with mono/wine, so I'm out of luck there too.  This leaves just browsing the assembly in monodevelop and hoping to spot what needs to be overridden.

Quote from: Harry_Dicks on February 04, 2018, 10:24:57 AM
So I was thinking about this. Could we have a "hardcore" edition of this mod, or something that doesn't reduce temp changes for double thick rooms under mountains to only equalize @ 1%? I like the idea of insulating walls, but I may not want this drastic of a change, only slightly as much :) If it all possible, would a mod options window be possible, with some sliders for us to play with? Maybe in the future, if you plan on expanding this mod that much further.

Personally, I think it could be fun to play with all kinds of heat transfer/insulation mod options. Maybe you want to require your ice sheet map to need 3 layer thick walls, for a 50% heat transfer reduction, but only two walls will give you 25% reduction? Just some fun thoughts ;)

As above, checking for more than 2-thick walls is something I hope to get to with a 'phase 2' of the mod, when I have a better idea how these pieces fit together with everything else.  I may skip it entirely, and go for using a proper heat map, since I think that is the proper way to go long term, but I suspect that will have lots of little effects everywhere and I really need a good way to search for references before I can safely do that.

I picked 1% sort of arbitrarily, I may just has correctly made it 0%.  At 1%, the temperature effect on the room is dominated by the floor/ceiling ambient effect.  The idea was there is no good way to tell what the temperature change should be: it's not the outside world, since it's not an exterior wall, but it's also not the 'ambient underground temperature' (15C), so have a slight effect, but not much.  The proper thing to do is probably to look at the nearby cells and see if any of them are part of a room, and if so use that temperature, if not, the wall is at least 3 thick, and we should just use the ambient underground temperature.  We can't look more than the extra 1 tile away, or we might find our starting room, and there's no good way to know which direction to limit the search to.

As for the menu options, that's probably not a bad idea.  It would make isolating bugs simpler, since there are 3 overridden functions and disabling them at runtime would not be a bad idea.  I don't see a whole lot of point to investing time in adding sliders for fudge factor variables, and I'm not sure the mod option menu is the proper place to put per-item-type insulation settings, there would be a lot of them... 

As for adjusting the wall thickness needed to achieve 50% reduction in heat transfer, that won't change.  The equation for heat transfer is (temperature difference * material_specific_number) / material_thickness.  Doubling the thickness reduces the heat transfer in half, no matter what the temperature difference is, and no matter what the material type is.  The goal of this is to improve the realism of the temperature system, so replacing the real equation with a fake one would be counter-productive.

Ruisuki

Does anyone happen to know if the mod Rainbeaus Smooth Stone walls insulate with the same efficiency as vanilla walls? Ive gotten word on outside forums(not by OP) that they are only marginally better at insulation than natural(unsmoothed) cave walls.


https://ludeon.com/forums/index.php?topic=36687.390

Harry_Dicks

#20
I would recommend checking this mod out, I think it is fantastic. It gives you a little button @ the bottom right to toggle on a heat map. Even if I still don't fully understand all of the insulation and heat dynamics, it makes things a lot easier to understand where your heat is transferring over your base. You can even customize how often it updates in the mod options, what! ;D

https://ludeon.com/forums/index.php?topic=33647.0

While we're at it, this is my other must have mod overlay, Show Me Where. It shows you where all of the different fertility zones are, so you can finally set up your grow zones on all of the proper tiles in no time flat. I remember tons of frustrations trying to mouseover all of these different cells trying to find all of the different fertile spots, frustrating. It also shows you your buildable area, perfect for swamps and just to have all around.

https://ludeon.com/forums/index.php?topic=37167.0

lperkins2

Unless Rainbeaus Smooth Stone Walls does some reflection magic, they insulate exactly the same as any other totally impassable terrain (constructed walls or natural stone).

Ruisuki

Quote from: Harry_Dicks on February 24, 2018, 09:56:17 PM
I would recommend checking this mod out, I think it is fantastic. It gives you a little button @ the bottom right to toggle on a heat map. Even if I still don't fully understand all of the insulation and heat dynamics, it makes things a lot easier to understand where your heat is transferring over your base. You can even customize how often it updates in the mod options, what! ;D

https://ludeon.com/forums/index.php?topic=33647.0

While we're at it, this is my other must have mod overlay, Show Me Where. It shows you where all of the different fertility zones are, so you can finally set up your grow zones on all of the proper tiles in no time flat. I remember tons of frustrations trying to mouseover all of these different cells trying to find all of the different fertile spots, frustrating. It also shows you your buildable area, perfect for swamps and just to have all around.

https://ludeon.com/forums/index.php?topic=37167.0
Appreciate the suggestions as always Harry. Good QOL right there. I THINK I saw Barky using this when previewing the Centralized Climate Control mod

Quote from: lperkins2 on February 25, 2018, 01:44:56 PM
Unless Rainbeaus Smooth Stone Walls does some reflection magic, they insulate exactly the same as any other totally impassable terrain (constructed walls or natural stone).
Excellent! So I can dig inside and focus smoothing without worry then. As long as I leave the outer layer reachable in order to smooth that is.

Makani

Requesting reupload of this mod.

I'm on a map that sees temperatures falling below -220. You just lose heat so fast it starts to not matter how good your heating is. Need better insulation to fight it.

Naji

Quote from: Makani on August 08, 2018, 10:06:26 AM
Requesting reupload of this mod.

I'm on a map that sees temperatures falling below -220. You just lose heat so fast it starts to not matter how good your heating is. Need better insulation to fight it.
+1

lperkins2

Alright, I just posted a link for a direct download that should stick around pretty much forever.

Makani

Quote from: lperkins2 on August 12, 2018, 05:30:54 PM
Alright, I just posted a link for a direct download that should stick around pretty much forever.

Thank you!

Makani

#27
Bug report:

This mod caused some of my rooms to reach over 1000F, and others to plummet to -400F. Only this mod was added when the problem started, though notable, I am using the centralized climate control mod too.

Here's a screenshot of the rooms:

Top right room is -450F at the time of screenshot. Top middle -300F (but the fire suggests a very rapid temperature swing). Top left 670F. Outdoors -19F.

Climate units set for 78F.

Temperature across the whole base is out of expected ranges, but these were the most extreme examples.

lperkins2

Hm, I thought I'd fixed that... I'll see if I can squeeze some time out to figure out what's causing it.

lperkins2

And the answer is I did fix it, but the link I posted was to an old version.  I've uploaded the fixed version now, go ahead and give it another try.