[1.3] [KV] Change Mirror [ModSync RW]

Started by Kiame, May 19, 2018, 10:00:27 PM

Previous topic - Next topic

Kiame

This is a stand alone version of Change Mirror from the Change Dresser mod.

To Build a Change Mirror:
-20 steel
-20 wood/stone/metal

Allows a pawn to change:

  • Hair Style
  • Hair Color
  • Body Type
  • Body Color
  • Head Type
  • Gender
  • Biological & Chronological Age
  • Apparel Color

Note: Unlike in Change Dresser, apparel color will not persist as pawns change apparel.
As in the apparel itself will stay the color but the new piece of apparel a pawn replaced it with will not change color automatically.

Steam

Direct Download:
1.3

B18
B19
1.0
1.2

Github: https://github.com/KiameV/rimworld-changemirror


Thank you translators!
Vaniat - Chinese Simplified and Traditional
Proxyer - Japanese
Ɲơɴɑɱɛ - German
Gidreess - Russian
Boundir - French


Like my mods? Consider supporting me!














WolfgangPolska

I have no idea how, but it works!!!

Kiame

It is on my to-do list. This is a scaled down version from Change Dresser which can be used in the mean time
https://ludeon.com/forums/index.php?topic=41483.0


Ruisuki

Thats very thoughtful of you. Most modders wouldnt do this, i been hoping the author of More Furniture would take out the redundant furnishings added by vanilla (dresser and end tables) or add it as a standalone. I dig it.


GIGAVETER

Thank you so much from me! For two days I was continuously searching for these opportunities, I was exhausted! Now my soul soars in bliss - I wish you all the best in life!  :)
Google Translate

ertzuiop

Hi getting this error, but no mirror after construction

Exception in JobDriver tick for pawn Delphine driver=_JobDriver_ConstructFinishFrame (toilIndex=1) driver.job=(FinishFrame (Job_599236) A=Thing_Frame_ChangeMirror297259) lastJobGiver=Verse.AI.ThinkNode_QueuedJob
System.ArgumentNullException: Argument cannot be null.
Parameter name: type
at System.Activator.CheckType (System.Type) <0x00095>
at System.Activator.CreateInstance (System.Type,bool) <0x00027>
at System.Activator.CreateInstance (System.Type) <0x0001e>
at (wrapper dynamic-method) Verse.ThingMaker.MakeThing_Patch1 (Verse.ThingDef,Verse.ThingDef) <0x00373>
at RimWorld.Frame.CompleteConstruction (Verse.Pawn) <0x00309>
at RimWorld.JobDriver_ConstructFinishFrame/<MakeNewToils>c__Iterator0/<MakeNewToils>c__AnonStorey1.<>m__1 () <0x00396>
at (wrapper dynamic-method) Verse.AI.JobDriver.DriverTick_Patch1 (object) <0x004c8>

Verse.Log:Error(String, Boolean)
Verse.AI.JobUtility:TryStartErrorRecoverJob(Pawn, String, Exception, JobDriver)
Verse.AI.JobDriver:DriverTick_Patch1(Object)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick_Patch2(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
ZombieLand.Verse_TickManager_TickManagerUpdate_Patch:SingleTick(TickManager, Int32)
Verse.TickManager:TickManagerUpdate_Patch1(Object)
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Kiame

Update:
Fixed support for Alien Races
Added option to share hair styles between genders (alien races can limit this)

Simstu

Howdy! Question: ,,Is it possible to replace the original mod with this without destroying the mirrors I currently have in game? They are decorated with art and I wouldn't like to loose them."

Kiame

Yes the def names did not change so existing mirrors will still be there

Simstu

#11
Thanks, will try.  ;)
EDIT: Works, thx.

Kiame

Updated for 1.1 - https://github.com/KiameV/rimworld-changemirror/releases/download/1.1/ChangeMirror.zip

I have not had a chance to test this against alien races. Please let me know if it works =)

SonicTHI

So about a year ago i posted on this mods github, havent really played since then but got back into it now and since you havent checked that i thought i d try here.
There is an issue with share hair styles option - even with it enabled, a female pawn with mop hair (tagged MaleUsually) will get her hair reset to the first female hair in the menu. Most likely a problem within SelectionWidgetDTO.

The second thing i wanted is to have another row of presets. Since your code is very clear this is real easy to do.
Just up the ColorPresetsDTO.ColorPresets to 10 and make some changes in WidgetUtil:


            if (presetsDto != null)
            {
                GUI.BeginGroup(new Rect(5, colorPickerRect.yMax, (ColorPreset.width + 4) * presetsDto.Count, 2*ColorPreset.height + 10));
                float l = 0;
                float k = 0;
                for (int i = 0; i < presetsDto.Count; ++i)
                {
                    GUI.color = presetsDto[i];

                    l += ColorPreset.width + 4;
                    //NewRow
                    if (i == 5)
                    {
                        k = ColorPreset.height + 5;
                        l = ColorPreset.width + 4;
                    }

                    Rect presetRect = new Rect(l, k, ColorPreset.width, ColorPreset.height);

Could also do it with mod or div if you ever want to add a rows option.

Kiame

Fixing an issue where alien races could spawn w/o heads.

There _may_ be an error that comes up when loading a save using the previous version of this mod. That error can be ignored and will not appear again after a new save.