Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - lperkins2

#1
Releases / Re: [1.0] Lockable Doors EX
January 17, 2019, 09:11:28 PM
That's not the one.  That one broken colonists will still go through a door they shouldn't be able to access.  I did find the one I wanted: Clutter Doors.  It doesn't do per colonist access, but does let you hard lock a door so it must be broken down unless specifically flicked to unlocked.
#2
JetBrains Rider seems to do a good job for exploring assemblies, but it's kinda spendy.  I used it for the 30 day trial, and wish they had a community version like for their other IDEs.

On the topic of mono versions, I've taken to invoking mcs with -notstdlib, and then listing the specific system libraries I want used (RimWorld/RimWorldLinux_Data/Managed/System.dll et cetera).  This seems to be the most stable way to get the right versions of things (3.5 for RimWorld, 4.something for MonoGame projects). 

The full command is something like
mcs -nostdlib -target:library -out:../Assemblies/ModName.dll `find . | grep cs$` `for f in $Reference/*dll; do echo -r:$f; done;`

Where Reference points to the Managed folder (or wherever the appropriate mono system libraries are located).
#3
Releases / [1.0] Lockable Doors EX
January 15, 2019, 08:05:54 PM
Back in the day (<=0.17)  there was a mod called Lockable Doors ( https://github.com/khell/RimworldLockableDoors ) which would let you lock doors to restrict who is allowed entry. 

I just recompiled it against 1.0 (after adding a single unimplemented method and updating the XML Defs).

This old mod would actually prevent colonists with mental breaks from going through the doors, as well as prevent prisoners from slipping out (without breaking down the door first).  It's a little fiddly, and I don't like that you can magically lock a door without a colonist needing to visit the door, but it's solid and actually works.  (Of note, the interface and idea behind the Locks mod I think is better, but colonists suffering mental breaks get to go through all doors). 

Anyway, since the license on the mod is permissive, I'm making the patched, compiled version available for download here:  https://lp-programming.com/LockableDoors.zip

P.S.  In B18, there was another mod that provided flickable locking, with a locked door unpassable by anyone, but I cannot remember which it was.  If anyone has the name, I'd appreciate a mention, I may see if I can get it running on 1.0.
#4
Mods / Re: [Mod Update Request] RT Quantum Storage
December 30, 2018, 03:22:10 PM
And it's done.  I used a big hammer approach to fixing the spawning-after-load issue.  GenSpawn.Spawn is preempted when loading, which may cause issues with other mods that also want to modify that method.  A proper fix would be to use the transpiler to add just the respawningAfterLoad checks, but since none of the mods I'm running mess with GenSpawn.Spawn, I don't care to do the extra work. 

You can get the 'fixed' version at https://lp-programming.com/rtqs.zip

If anyone cares to do a proper delicate version, with a transpiler patch, I'm happy to compile/test/host the better version.
#5
Mods / Re: [Mod Update Request] RT Quantum Storage
December 30, 2018, 01:02:37 PM
It's GPL 3.0, so no need to ask permission.  It will take changes beyond just upping the version number.  It's on steam under the name Quantum Storage 1.0, but is currently non-functional.  I'm checking to see if it's got the source included on steam.  If not, I'll ask the uploader for the source and see if I can fix it.
#6
Quote from: N7Huntsman on November 16, 2018, 08:50:17 PM
I'd say that's saying an awful lot--the dev is still 11 open tasks/issues to deal with to meet the 1.0, including testing transpilers (some of which remain either untested or currently broken), which tend to fail silently. I do not recommend trying to run CE on 1.0 at the moment--wait for a stable, or at bare minimum, a test release.

Most of those open issues relate to balance issues.  There is one transpiler patch untested, which pertains to the loadout system.  There is one transpiler patch which fails, which pertains to GUI layout, and causes a minor graphics glitch. 

As for the balance changes, they certainly are needed for this to be back to normal.  Currently, combat is a lot closer to 'vanilla' behaviour than B18 CE, where pawns can soak massive injuries before collapsing.  Still a noticeable improvement though. 

Bottom line is if you're like me, and can't stand playing without the weapon/ammo changes from CE, and don't care if you have to restart due to game exploding bugs, it functions (about 12 hours of gameplay so far, without said explosions, unless you count boomrats).
#7
The development branch on github compiles and runs fine in 1.0.  I believe the precompiled assemblies are also up to date and should function.  There's significant balance changes still needed, since 1.0 changed lots of things.  If you decide to grab it, please don't pester the devs with lots of bug reports, they mostly know about them.
#8
Outdated / Re: [B18] Insulating Walls
November 08, 2018, 07:00:55 PM
Not really, but it's pretty simple. 

This mod just makes double thick walls not magically equalize temperature with the outside world.  This makes the temperature change in rooms pretty much depend only on the roof/floor temperature change.  Overhead mountain makes the temperature tend toward 15C, no matter what.  Thin rock and manufactured roof make the indoor temperature tend toward the outdoor temperature.  It doesn't really change the core mechanics at all.

HeatMap uses a 2D heat map to calculate the temperature.  This means that temperatures vary within a room, not just between rooms.  The biggest 'problem' is if you have insufficient heat to have a warm enough room, your colonists won't seek the spaces by a fire to warm up (or cool down if the opposite is true).  In practice, this isn't really any worse than the vanilla behavior, where the entire room would be too cold, and is often much better since you can simply light a campfire outdoors or stand near steam vents to warm people up when you lack buildings. 

This one could be extended a bit, for example, the temperature at the external wall cell could be queried, it would give the temperature of the next room over (or outside) if the wall is only 2 thick.  The problem is that 3-thick walls will count as outdoor, and thus insulate worse than 2-thick walls underground.  I haven't come up with a good solution for that problem.

In summary:
This mod:

  • Negligible impact on performance
  • No change to the core mechanics
  • Walls insulate more based on HP of outer wall, but effect is negligible in practice
  • Underground rooms tend toward 15C, no matter the temperature outside
  • Configuration only possible by recompiling

Heat Map:

  • Low impact on performance.  Might be an issue if you run on oversized maps, or with a computer that struggles to run the game already.
  • Bit of a learning curve.

    • Heat transfers diagonally
    • Large rooms might need distributed heat, 4 fires in one corner don't work well
  • Mountains act as heat 'tanks', their temperature changes very slowly, but will tend toward average ambient temperature.
  • Configurable

    • Heat transfer rates can be tweaked
    • Defaults should work fine on temperate or cold maps, limited testing in deserts
  • The mod that adds larger doors don't work right
  • Possible odd interactions with other mods

Both mods are safe to add and remove mid-game (by safe, I mean the game won't crash or similar, your freezer might need a redesign).

Since I don't run this mod myself anymore, I'm unlikely to add new features to it, but I will probably keep working on HeatMap from time to time.
#9
Outdated / Re: [B18] Insulating Walls
November 01, 2018, 04:39:05 PM
So, I'd love to make insulation depend properly on material, but doing so in a way that will work with arbitrary wall materials from other mods is non-trivial. 

That said, it's non obvious that an arbitrary wooden wall will insulate better than an arbitrary steel wall.  K for wood is around .16, for stainless, it's around 16.  So, for an equally air tight wall, of equal thickness, the steel will transfer heat about 100 times as fast as the wood.  But I am not convinced that the walls should be treated as equally built.  The total thickness is the same, but for the wooden walls to stop bullets, and considering the construction time, and the use of raw rather than processed wood, I always figured they're basically log walls, which do not insulate anywhere near as well as wooden sheeting with an air gap.  Meanwhile, the relatively low HP on the steel walls means they're probably hollow. 

All that aside, I'd happily make wooden walls better insulators if I could think of a good way to do it without breaking things with other mods.

As for single walls mattering, that is not possible with this mod.  Each room tracks a list of cells 2 away, it does not track the cells that comprise its wall.  You can see this in the debug viewer in the game.  It would have to go back to the room definition itself and work out the walls of the room, and would probably require larger changes to make it work right (and run fast enough). 

I mentioned a few posts earlier that I rewrote this mod to use a 2d heatmap, which better handles wall materials (hp% matters, maxhp does not), and properly handles single thick walls.  It's also configurable, but does take a slightly more powerful computer (it's not bad, but if RW doesn't run well for you as is, it certainly won't help).
#10
Outdated / Re: [B18] Insulating Walls
November 01, 2018, 01:14:55 PM
Fair enough, I just recompiled it against version 19, which should work on version 1.0 too.
https://lp-programming.com/rwtemperature19.zip
#11
Outdated / Re: [B18] Insulating Walls
October 29, 2018, 02:02:58 AM
Have you checked out my rewrite of this, which implements the advanced features I mentioned here?  I can probably upload an update to this in the next day or two, but the other version is configurable, and tracks temperature per cell. 

It's at https://lp-programming.com/heatmap19.zip
#12
Releases / Re: [B18] Combat Extended Compatibility Patches
September 01, 2018, 01:06:36 AM
I just finished writing a compatibility patch for CE and Misc. Item's turret base.  It let's you mount any standard CE weapon in the base, and man/reload the turret like any other CE turret. 

You're welcome to link to the download here, or totally appropriate the work if you want to host it on your github.  Or I can start a mod thread for it, but that seems like more hassle than it's worth.  I'll probably list it on steam too.

Anyway, it's available here:  https://lp-programming.com/miscturrets_ce.zip
#13
Releases / Re: [1.0] Mod Announcements Thread
August 22, 2018, 04:44:12 PM
Quote from: Orion on August 09, 2018, 09:28:22 AM
So 1.0 or 0.19?
Since 1.0 is delayed, I'm assuming 0.19 for now. 

Heat Map
https://ludeon.com/forums/index.php?topic=43417
https://steamcommunity.com/sharedfiles/filedetails/?id=1489345036

Changes temperature calculations to be per-cell instead of per-room.
#14
Releases / [B18 | B19] Heat Map
August 22, 2018, 02:25:30 AM
Heat Map

Description:
Heat Map uses a simple 2d heat map for calculating temperatures on the map.  Temperature look-ups are per cell (room temperatures report an average of all contained cells).

Author/Mod Team
Logan Perkins (lperkins2)

Download
https://lp-programming.com/heatmap.zip
https://lp-programming.com/heatmap19.zip -- for RW B19 (only difference is about.xml)


How to install:
- Unzip the contents and place them in your RimWorld/Mods folder.
- Activate the mod in the mod menu in the game.

Compatibility:
Should be compatible with most other mods.  Anything else which touches temperature calculations may have odd interactions.

Works with RedistHeat and similar mods.

Issues:
Pawns don't reliably figure out where to go to seek safe temperatures.  This mostly comes up if you have a campfire 'outside' or similar.
Please report any other issues that arise. 
#15
Help / Re: Harmony Question
August 18, 2018, 12:18:49 PM
I'm not sure where you're getting that
int a {get {return b }};
int b;

doesn't get inlined.  It doesn't in debug builds, since JIT inlining is disabled, but for release builds it does (assuming the getter's opcodes are less than 32 bytes long.

You can test if this is happening by patching the getter on some commonly used property with harmony (RoomGroup.Temperature is a good choice).  Have it log a message when called, the messages will never show.