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

Topics - lperkins2

#1
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.
#2
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. 
#3
Support / Wrong IP Address on forums
August 16, 2018, 02:52:49 PM
So I noticed today that an IP address is shown at the bottom right corner of all my posts.  That's fine, but I say 'an IP address' instead of 'my IP address' because it isn't my IP address.  I have a static IP, so it should always be the same, and should start with 63.227, but it doesn't (it isn't the same for all my posts, and it isn't correct in any of them). 

I don't think it's actually particularly important (certainly not to me), but it might have implications for IP-banning malicious users or auto-detecting compromised accounts.  Anyone else notice a similar issue? (You can check your external IP by visiting ip.dnsexit.com )
#4
Outdated / [B18] Insulating Walls
January 05, 2018, 12:55:19 AM
Insulating Walls

Description:
Makes the material type used for double thick walls matter.  Higher HP walls insulate better.  Walls beneath overhead mountain count as 10khp walls.

Details:
The temperature system in RimWorld is kinda wonky, this is the start of an effort to fix it. 

Walls provide the same insulation value, no matter their material type.  Further, walls more than 1 tile thick magically equalize temperature with the outside world, at half the normal rate, even if they are deep inside a mountain. 

This partially fixes both.  Double walled rooms inside overhead mountain will move toward the outside temperature at 1% the normal speed.  Unless the outside temperature is extremely high or extremely low, this will be swamped out by the area heating from the floor/ceiling.

Double walled rooms without overhead mountain insulate depending on the current HP of the outer tile.  The material type of the inner wall still doesn't matter.  Likewise, material type of one thick walls doesn't matter.

Upcoming versions will check the material type of the inner wall, and check further out for nearby rooms to exchange heat.  The eventual goal is to implement a crude heat map, with temperature not calculated by room, but that will require in depth related changes.

Author/Mod Team
lperkins2

Download
See attachment

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

[attachment deleted by admin: too old]

'Permenant' location: https://lp-programming.com/rwtemperature.zip
#5
Tools / Mod Timing
November 27, 2017, 04:22:33 AM
So, I've been having a bit of lag in a heavily modded colony, and decided to try to investigate.  Unfortunately, rimworld doesn't expose any sort of timing data to help figure out what the issue is, so I decided to add some.  Unfortunately, I've run out of time to get it working, but maybe someone more talented can figure it out.

I started by making Hugslib report when a mod's OnTick, or OnUpdate takes more than 0.2 ms to run.  It works fine, but none of the mods seem to be taking too long on global updates. 

There are two other areas I wanted to add timing info, as they seem most likely to be causing lag with badly written mods.  The first is the job system: jobgivers, workgivers, and jobdrivers.  Lots of time lag spikes are from pawns getting assigned jobs which immediately get invalidated, causing an AI loop of picking new jobs.  My thinking was to catch when that happens and log what the failed job was and anything possible about why it failed.

The second is diverted code.  Harmony can give a list of methods that have been patched, and the patches attached to them.  My thinking was to patch the patch methods, noting down the start time and then tabulating how much time is spent in each method.  While this seems to work in a test project, I can't get Harmony to let me patch anything in rimworld, I think because I managed to break mono. 

As I said, I've run out of time to work on it, especially since I can't get even the basic demo for harmony to work.  If I get some spare time, and manage to fix that, I'll come back to this.  If anyone can see a better way to go about this, or a reason it won't work, I'm all ears.  If anyone with a fully working dev environment wants to implement this, that'd be great.