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 - FuriouslyEloquent

#1
Bugs / Code Error in StorageSettings.ExposeData()
May 30, 2018, 01:54:17 PM
Checked over Mantis, did not see this error. There is a subtle code error in the StorageSettings.ExposeData() method with the arguments to the ThingFilter's constructor.

In the StorageSettings() constructor, you see that the ThingFilter is created with a callback to TryNotifyChanged()
public StorageSettings()
{
this.filter = new ThingFilter(new Action(this.TryNotifyChanged));
}


But when the StorageSettings is serialized, it does not pass this callback to its ThingFilter.
public void ExposeData()
{
Scribe_Values.Look<StoragePriority>(ref this.priorityInt, "priority", StoragePriority.Unstored, false);
Scribe_Deep.Look<ThingFilter>(ref this.filter, "filter", new object[0]);
}


I discovered this error when I was attempted to wrap ThingFilter.settingsChangedCallback and I discovered that the original value was null once the StorageSettings had been re-loaded. I expect this is having certain very subtle effects, and it may be why it takes a few ticks after changing a zone's filter before it is fillable.
#2
After some thoughts, I decided to post my proof of concept extension of Incidents into Problems (hence the ITIL joke). I've add several additional components and am trying several new approaches to scenario creation. My primary inspiration for this is Crusader Kings 2 (yeah I'm sick, but we both play RimWorld so ...) and their event style, which I will be attempting to bolt onto RimWorld. Lets see ...

GitHub Link

Description
A hacker sets up camp outside your base, sending threats of extortion backed by hacking your turrets. This cycle continues until you pay, develop countermeasures, or eliminate the threat.

Dependencies

  • Harmony - Included

Features

  • Creation of an ProblemWorker that extends IncidentWorker, but provides access to a persistent copy with storage. Its a thin wrapper and interface in one ...
  • StorytellerComp_Problem and ProblemManager to manage problems
  • DynamicCommManager - Add new CommConsole options/Faction dialog options, as well as tie ins to the LetterManager
  • DynamicComponentManager - Add/remove stateful ThingComps onto Things
  • ResearchTaskManager - Be notified when research completes. Lock/unlock and reset research progress. Useful to create repeatable research based tasks
  • Some additional dialog work
  • Dynamic jobs related to this scenario

At this time I have not balanced anything at all, not message delays or anything else. Presently I launch this Incident entirely via developer menu. Be forewarned, this will continue until the hacker is destroyed, and it is possible that later cycles of hacking coincide with raids. Or during peaceful trader visits ...

As another note, you should be able to remove this mod if things get too hairy and you'll be left with a bunch of red logs but your game should continue.

Wishlist

  • Add mystery, and have players investigate to find identity of hacked ally base
  • Expand searching for the hacker. Maybe some event if players approach hidden site on world?
  • Creation of ambush on hacker with allied base
  • Additional taunts if hacker kills pawn/animals
  • Make hacker have an actual camp with tent from Camping mod if it is installed

Really this is just to see how far I can take things. I have a few more grounded ideas that I will probably move onto before this is complete.
#3
Advanced Stocking

Description
Enables additional features for shelving storage, including max shelf weight. Allows overstacking and racking items up to 20x depending on the storage settings.

License
MIT License. Go wild and blame me for it.

Updates

  • Bugfixes
  • Steam release

Feature List - v0.7

  • Ability to stack larger than normal stacks on shelfs. Stack sizes do not change but are bypassed for shelves
  • Ability to rack multiple items on the same cell
  • Weight capacity stat, uses quality, shelf stuff, and floor type
  • FULLY CUSTOMIZABLE stackLimits by slider
  • Overstack/rack limits based on storage filter and weight capacity
  • Forbidden mode. Auto-forbid any item placed on this shelf, and allow it be stocked with forbidden items
  • Updated Storage copy/paste for stocking. Will also allow copying StorageSettings between zones and shelves
  • Compatible with RimFridge, with a special modified release

Dependencies

  • SaveGamePatches - for compatibility with existing saved games
  • ZoneInspectData - not a true dependency, but is very nice when you have 16 items on your shelf ... all my screenshots are taken with it
  • RimFridge! - Not a dependency, but grab this modified version to having Advanced Stocking features on your RimFridges.

Download
https://github.com/CBornholdt/AdvancedStocking/releases

If you need body parts to live


You too can have shelves with stacks of guns.
#4
Unfinished / [B18]Work Area Automation - RELEASED
May 11, 2018, 10:00:21 AM
This is a multi component mod that I'm working on, with the goal of automating task priorities based upon Area.

Motivating Use Cases (more to follow)

  • Having your pawns clean your hospital/kitchen first
  • Enable harvesting/sowing to be prioritized to certain areas
  • Prioritize locations for caravan loading

This will involve at least 2 components, one to manage the actual Area assignments for work prioritization and another to dynamically compose Areas. Both are in various stages of work and will be detailed here until complete.
#5
My personal shelf automation mod has reached a reasonable point of completeness, worth a testing release I think. This will detail my current progress until I feel this is ready for full release. After some thought I've removed several features and streamlined others.

License: MIT
Release: Advanced Stocking@Github
Requirements: Harmony lib (included), SaveGamePatches for save game compatiblity

If you want to test this mod on an existing game, you will need to also install my SaveGamePatches to allow this mod to patch your game upon load. Load order for the SaveGamePatches mod does not matter.

Features

  • Ability to overstack items on shelves, dependent on the item weight and item types allowed in the Filter
  • Ability to overlay items on shelves and to interact to each item via right click menu
  • An additional Stock tab for configuration
  • Can set shelves to auto forbid items when placed, as well as to be stocked by forbidden items. Good for drugs or stockpiling caravan food


TODO

  • Work on stock pushing
  • Larger shelves

DESIGN GOALS

  • Centralize item storage, probably in the area of 10:1 to 12:1
  • Ability to place multiple items in the same space
  • Support a condensed storage system for equipment sorting
#6
Tools / [B18][Mod]SaveGamePatches
April 13, 2018, 12:01:44 PM
While working on a mod for a new work type, I ran into issues with save game backwards compatibility. After some thought and significant stubbornness, I've created a small Mod that extends the Mod system allowing for save game patching upon load. This functions similarly to the existing mod Def patching, using the PatchOperation syntax and reading all mod ./SaveGamePatches/ directories.

V 1.1 Updated to only apply patches for newly loaded mods.

License: MIT
Requirements: Harmony Lib
Release: SaveGamePatches
Versions: Currently working with B18, might work with older versions but I haven't checked.