[1.0] [KV] Change Dresser (AlienRaces now supported) [ModSync]

Started by Kiame, September 15, 2017, 02:13:27 AM

Previous topic - Next topic

Kiame

Quote from: frenchiveruti on December 23, 2017, 08:58:44 PM
Hi Kiame, since the last Update my colonist won't wear neither Gloves or Boots from another mod. But apparel from other mods like helms and waist items will be worn.
I can't fallback to a previous version so I can't really check entirely. But that behavior wansn't present on previous days in the same colony-
Thanks.

Forget it, it's because Rimworld is dumb and bionic bodyparts don't have "hands" or "feets"

LOL haven't run into the problem yet! (and i do use Boots and Gloves). I think i remember seeing another mod that keeps hands and feet w/ bionic arms/legs...

edit: Looks to be only on steam though: http://steamcommunity.com/sharedfiles/filedetails/?id=1231027888
I took a look at this mod and it removes hands and feet from the shoulder/arm / legs so if a shoulder or leg is lost, if i'm reading it correctly, the hand/foot will remain. So doesn't look to be the best fix...

Kiame

Update:
-Stored Apparel can now be used in bills
-Fixed an issue where if a pawn had been assigned an outfit and then all dressers were destroyed, if the pawn drafted/undrafted they'd drop their worn apparel and be naked.

sdp0et

I use this mod along with mending and the patch that joins them.  This mod was updated today and the other two were not, so I'm starting here with this.

When I load my save there's an error while loading the map:
Exception in BreadthFirstTraverse: System.MissingMethodException: Method not found: 'ChangeDresser.Building_Dresser.Remove'.
at (wrapper dynamic-method) Mending.WorkGiver_DoBill.TryFindBestBillIngredients_Patch1 (RimWorld.Bill,Verse.Pawn,Verse.Thing,bool,Verse.Thing&) <0x001df>
at Mending.WorkGiver_DoBill.StartOrResumeBillJob (Verse.Pawn,RimWorld.IBillGiver) <0x0015b>
at Mending.WorkGiver_DoBill.JobOnThing (Verse.Pawn,Verse.Thing,bool) <0x0023f>
at


There's a similar one when I try to right click to force someone to work at the mending bench:

Method not found: 'ChangeDresser.Building_Dresser.Remove'.
at (wrapper dynamic-method) Mending.WorkGiver_DoBill.TryFindBestBillIngredients_Patch1 (RimWorld.Bill,Verse.Pawn,Verse.Thing,bool,Verse.Thing&) <0x001df>
at Mending.WorkGiver_DoBill.StartOrResumeBillJob (Verse.Pawn,RimWorld.IBillGiver) <0x0015b>
at Mending.WorkGiver_DoBill.JobOnThing (Verse.Pawn,Verse.Thing,bool) <0x0023f>
at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn,Verse.Thing,bool) <0x0001e>


My crafter is walking around wandering.  There are things that can be mended, but he won't work at the bench on his own and I can't force him.

I've deleted the bills and recreated one to see if there was a saved ingredient that wasn't valid, but the result was the same.  I don't currently have a dresser built, and to does not exist in my architect menu (even with dev mode on), so I can't build one to see it changes anything.

Would the update to Change Dresser today be related to that and does anyone have any ideas on how to deal with it?

wwWraith

Looks like you have to update MendingPatch. With latest version of ChangeDresser (but without any dressers actually built, if it matters) it spawns errors:
Exception in Verse.AI.ThinkNode_PrioritySorter TryIssueJobPackage: System.MissingMethodException: Method not found: 'ChangeDresser.Building_Dresser.Remove'.
at (wrapper dynamic-method) Mending.WorkGiver_DoBill.TryFindBestBillIngredients_Patch1 (RimWorld.Bill,Verse.Pawn,Verse.Thing,bool,Verse.Thing&) <0x001df>
at Mending.WorkGiver_DoBill.StartOrResumeBillJob (Verse.Pawn,RimWorld.IBillGiver) <0x00160>
at Mending.WorkGiver_DoBill.JobOnThing (Verse.Pawn,Verse.Thing,bool) <0x0023f>
at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn,Verse.Thing,bool) <0x0001e>
at RimWorld.JobGiver_Work/<TryIssueJobPackage>c__AnonStorey1.<>m__0 (Verse.Thing) <0x0003d>
at Verse.GenClosest/<ClosestThingReachable>c__AnonStorey0.<>m__0 (Verse.Thing) <0x000c3>
at Verse.GenClosest.ClosestThing_Global (Verse.IntVec3,System.Collections.IEnumerable,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>) <0x0019b>
at Verse.GenClosest.ClosestThingReachable (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Collections.Generic.IEnumerable`1<Verse.Thing>,int,int,bool,Verse.RegionType,bool) <0x00295>
at (wrapper dynamic-method) RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1 (object,Verse.Pawn,Verse.AI.JobIssueParams) <0x00bee>
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0x00381>

Verse.Log:Error(String)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob_Patch1(Object, JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


It also makes some pawns to become idle while they have jobs to do.
Think about it. Think around it. Perhaps you'll get some new good idea even if it would be completely different from my words.

Kiame

grr. i need to find a way to merge the two projects so when i change one i'm alerted i broke the other. ill get i  this in in about an hour

sdp0et


Kiame

Update:
-Fixed an issue that was causing Change Dresser Mending Patch to break

You only need to update Change Dresser, the mending patch is not updated and will work again



Quote from: sdp0et on December 29, 2017, 10:52:15 PM
Confirming that removing the patch solves the issue

Just an FYI that'll resolve the issue but it will also prevent apparel from dropping from the dresser to be mended.



Sorry for the inconvenience!

frenchiveruti

Hey Kiame I don't know what you did on the last version but you broke like a lot of things, starting from "forced" apparels.
I have "infusion" mod, and I use forced apparel for certain infusions to certain pawns, and when I trade with any trader, the forced apparel gets back into the change dresser.
The other thing is when you "take out" an item from the change dresser, it doesn't actually "go out" but instead drops the item but the GUI still displays it in it.

Kiame

Quote from: frenchiveruti on December 31, 2017, 03:46:34 PM
Hey Kiame I don't know what you did on the last version but you broke like a lot of things, starting from "forced" apparels.
I have "infusion" mod, and I use forced apparel for certain infusions to certain pawns, and when I trade with any trader, the forced apparel gets back into the change dresser.
The other thing is when you "take out" an item from the change dresser, it doesn't actually "go out" but instead drops the item but the GUI still displays it in it.

I'll double check forced items staying on, i normally don't have that enabled.
--side question to forced, would it help if you could create 'assigned apparel' for custom per-pawn outfits like the original change dresser? I'll take a look at the infusion mod as i'm not sure what it does. I've been re-considering adding it back in as I think it's doable

For the other part, is it causing apparel duplication?
I'm actually playing the game - a full beginning to end - to see the state of my mods and I have not run into this but I am still in the early years - just got electricity (tribal start) so i may not have run into that issue yet.
If you're able to narrow down when it happens - when forming a caravan, when trading, when mending, etc - that'd be a huge help.

Edit: Took a look at the infusion mod and my interest is peaked. I think i will explore custom per-pawn apparel assignments.

Edit 2: Ok that's super wierd that forced apparel gets dumped when a dresser is emptied. I am super perplexed. Let me look into it

Kiame

Update
-Fixed an issue where apparel was not being properly removed from change dressers
(this should fix all the issues frenchiveruti)

Sorry about this... this is totally a dumb coding mistake on my part  :-[

frenchiveruti

#115
Hi Kiame, it wasn't causing duplications but it was causing me nightmares :P
I'll check out the newest version (Thanks ModSync!) and see how it goes with this issues.
Making per pawn apparel rules doesn't really make sense, it would be good to have some sort of "apparel that benefits <skill>" preference, but I believe a Nicer GUI should be first, because if you start creating a lot of apparel outfits, the "assing outfits" window gets stupidly hard to manage. It would be cool to have it like the one on Weapon Storage, where you select a pawn, and then assign them things.

You know what would be great? For the "manage apparel" list of all the apparels your colony has, a filter. A filter would be amazing for filtering head, torso, legs, waist, and top-layer clothing.

EDIT: There's still a "ghost" bug, if I drop anything inside the dresser, it's still in the list, but dropped, If I click on the "drop from dresser" button once again, then it gets removed from the list.

Kiame

... i know i tested dropping things and i do see the ghosting  ???

Kiame

Update
-Fixed an issue where manually dropped items were sometimes being collected again instantly

frenchiveruti

Hi Kiame, I saved a game with a pawn wearing a forced apparel, when I loaded the game by some random thing (I don't know what caused it) the item was duplicated. I know it's dupped because it's infused with 2 very rare infusions, and there's no way that item can be done twice.

Kiame

Update:
-Fixed an issue where Reset on a trade window would cause stored items to no longer be shown