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

#1
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
February 09, 2021, 11:20:50 AM
Good response.  The pink square issue I had was due to one of the children aging up from toddler to child stage, but for whatever reason this pawn did not take the toddler clothes off which seemed to trigger the pink square.  Other pawns in the past had automatically taken the toddler clothes off at that stage transition (even when the onesie and beanie were forced wear).  I think I may have saved the game at the precise moment of the pawn changing from toddler to child and that may have triggered the issue?

Anyway.  I do get the whole balance of playability and realism aspect.  I think after playing with the mod more I am okay with some of the silly bits of slightly unrealistic abilities at a given age.  I also totally appreciate the difficulties of the weapons interactions (I have been doing some small personal mods for myself since and have realized some of this stuff is pretty hard to plug into).

I think the main area that could really be improved would be switching the child stage limitations over to a hediff.  That way there would be no need to reload a session when a pawn transitions from crawling toddler to a short child pawn.  Additionally, hediffs are much easier to get to interact with other mods, likes Dub's hygiene which already can have settings that can be adjusted by hediff.  For instance, you could turn off hygiene and bathroom needs based on an 'infant' or 'toddler' hediff so toddlers wouldn't keep trying to shower or take a bath by themselves.  Then it would be easy for someone (me) to make a replacement 'take to bed and change diaper' and 'take to bed and wash' action in CNP for realism/difficulty/complexity in that aspect if I wanted.

I may make an attempt at the hediff myself at some point.  I too am very busy though so it might be a bit.

Edit: There is also a bug I came across where sometimes a toddler can be breastfed and sometimes in can only be fed normal meals.  I am not sure if breastfeeding is supposed to be an option for the crawling toddler stage or not, but the inconsistency seems like a possible bug.
#2
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
January 14, 2021, 08:54:45 PM
Now I am getting a pink square (no pixel art) for one of my children after shutting my computer down and loading the save again.  The hair also does not show up in the pawn picture at top of the screen for this child.  These are the log details:
Exception drawing Kiyoshi: System.ArgumentNullException: Value cannot be null.
Parameter name: source
  at (wrapper managed-to-native) UnityEngine.Material.CreateWithMaterial(UnityEngine.Material,UnityEngine.Material)
  at UnityEngine.Material..ctor (UnityEngine.Material source) [0x00007] in <5e1dfb686eb345078a588df96401afcc>:0
  at RimWorldChildren.GraphicsPreloader.AdjustMaterial (UnityEngine.Material mat, RimWorldChildren.LifecycleComp comp, Verse.Rot4 rot) [0x00000] in <1f5f58e363274a8aa94d1c13877805a5>:0
  at RimWorldChildren.GraphicsPreloader.PreloadApparelGraphic (RimWorld.Apparel apparel, Verse.Pawn pawn) [0x0020a] in <1f5f58e363274a8aa94d1c13877805a5>:0
  at RimWorldChildren.Children_Drawing.InitializeApparelDatabase (RimWorld.Apparel apparel, Verse.Pawn pawn) [0x0000f] in <1f5f58e363274a8aa94d1c13877805a5>:0
  at (wrapper dynamic-method) Verse.PawnGraphicSet.Verse.PawnGraphicSet.ResolveApparelGraphics_Patch0(Verse.PawnGraphicSet)
  at (wrapper dynamic-method) Verse.PawnGraphicSet.Verse.PawnGraphicSet.ResolveAllGraphics_Patch3(Verse.PawnGraphicSet)
  at Verse.PawnRenderer.RenderPawnAt (UnityEngine.Vector3 drawLoc, Verse.RotDrawMode bodyDrawType, System.Boolean headStump, System.Boolean invisible) [0x0000d] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.PawnRenderer.RenderPawnAt (UnityEngine.Vector3 drawLoc) [0x0002b] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.Pawn_DrawTracker.DrawAt (UnityEngine.Vector3 loc) [0x00000] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.Pawn.DrawAt (UnityEngine.Vector3 drawLoc, System.Boolean flip) [0x00006] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.Thing.Draw () [0x00007] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.ThingWithComps.Draw () [0x00000] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.DynamicDrawManager.DrawDynamicThings () [0x000d8] in <d72310b4d8f64d25aee502792b58549f>:0
Verse.Log:Error(String, Boolean)
Verse.DynamicDrawManager:DrawDynamicThings()
Verse.Map:Verse.Map.MapUpdate_Patch1(Map)
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


A picture is attached.  I have tried re-loading the game session, restarts etc.  redownloading the mod etc.  Still won't load.  The pixel art of the other 3 children in my colony are all just fine and are at the same life stage.  No clue why it is just this one child.
#3
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
January 11, 2021, 12:43:52 AM
I am not going to respond to all points, but here are some key point responses:

QuoteShould very much be related to chemical interest and fascination traits, both traits cause pawns to ignore drug policies "Will ignore drug policies for recreational drugs (i.e. all drugs except for penoxycyline and luciferium) regardless of chemical need. NOTE: The colonist will still respect allowed areas and will not use forbidden stacks of any drug regardless of chemical need"
I literally have no pawns in my colony with these traits (lucky!).  I do have a 'stoner' trait pawn from the Vanilla Traits Expanded mod which may cause use (although it is technically supposed to be limited only to smokeleaf, but that could be a bug with that mod, not CNP), but I have seen pawns with no chemical related traits what-so-ever using the contraceptive on occasion (based on their health status).  I will take a screenshot next time I see a pawn with this inappropriate health status.

Quotebut why wouldn't they be able to eat for themselves last time I looked they would simply eat the meal of the ground which is not outside a crawling toddler capabilities.
I use rimfridge so crawling children are reaching into the fridge.  I guess it could makes sense in the vanilla 'eat off the floor' scenario if we assume that prepaired meals really have no kind of packaging...  However,  rim fridge is one of the most popular mods so there must be some way to stop them manipulating the refrigerator.  Additionally, I don't think a 6 month old could open a packaged survival meal on their own or a canned meal (again this would be from a mod).  I think you may overestimate the strength and dexterity of six month old babies just starting to crawl.

Quote
Quote from: PlatanusO on January 10, 2021, 03:54:48 PMInfants (immobile stage) try to mediate and this takes them out of the crib and requires rescue.
Not CNP's fault and fixed if you use rimworld v1.2.2753.
I do use 1.2.2753 and I have still had this issue... I am just reporting the bugs that I have.  As for 'fault', obviously this isn't a CNP feature (the meditation that is), but, a patch could still be included in the CNP download.  Again, I will take screenshots if I see this again.

Quote
Quote from: Geese man on January 10, 2021, 11:14:28 PM
Quote from: PlatanusO on January 10, 2021, 03:54:48 PMIf the designated crib is outside the child's allowed zone then any time the child is outside of crib, an adult will take them to a random bed upon rescue (even if that bed is outside the allowed zone).
Not CNP's fault and fixed if you use rimworld v1.2.2753.
In all cases, this bed reassignment came after being the baby started meditating and needed to be rescued, that is when it became reassigned to a new bed.  Additionally, the crib could not be immediately reassigned.  The incorrect bed first had to be unassigned from the baby before the crib could be assigned again. Clearly 'buggy' behavior and I suppose it must relate specifically to the meditation issue. Perhaps it is a relation to being in a crib outside of the baby's allowed zone, as I have only had this problem (both the meditation and bed reassignment issues) when the baby is in a crib outside of the allowed zone.

Quote
Quote from: PlatanusO on January 10, 2021, 03:54:48 PMAlthough toddlers can feed themselves, if an adult pawn with childcare abilities chooses to feed a walking stage toddler, they should be fed at a table and chair if possible, if not, they should be fed anywhere. Toddlers in walking stage should not be required to be taken to bed for an adult to feed them.
the only reason they are taken to their crib or bed for feeding is cause the feeding system is based on the feed patient system from rimworld itself.
This is fine.  It may just be too difficult to change this in the code.  This is one of my lower tier gripes and I am fine leaving that feature 'as-is'.


Quote
Quote from: PlatanusO on January 10, 2021, 03:54:48 PMUpon leaving the toddler stage at age 3 (they become a short pawn), the children can be assigned tasks (but cannot use weapons 'safely' (all weapons as far as I know)).  Unfortunately the new short child pawns do not display any skill levels.  I have to close out of the game and then load back in to the game again to see the traits in the bio.  Clearly this is a bug.
For the weapon part children (age <12) can safely use pistols or melee weapons. The no skill display is caused by the fact that the child gains a new backstory at the age of 3 which removes all the "incapable of" from baby and toddler stage backstories but rimworld was not made to handle changing backstories as without mods it shouldn't happen at all thus you will have to live with reloading upon children reaching the age of 3. this could be solved by instead of changing their backstory to giving the newborn children a hediff that dissappears after 3 years (10800000 ticks) and gets less severe over time (so it would incapacitate them until they reach 2 quadrums or crawling toddler stage whilst still keeping them from having any manipulation etc.)
I suspected this would be a difficult bug to tackle. There must be a work-around somehow and someone willing to work with me on this.

Quote
Quote from: PlatanusO on January 10, 2021, 03:54:48 PMToddlers in crawling stage should not be able to clothe themselves, an adult pawn should need to clothe them in appropriate toddler clothes (the onesie and beanie).
there is no dressing mechanic in rimworld (there is a mod tho) and its not like toddlers being able to put on a beanie and onesie themselves should be a issue.
I don't mean to be insulting here at all, but it is clear that you don't have or have not worked with children much.  The crawling stage in the game starts at 2 quadrums, equivalent to half a year or 6 months IRL.  This is realistic (at least for some children, crawling can start a bit latter but 6-8 months is typical).  Children IRL are typically not fully capable of dressing themselves until around the age of two or three.  There is no way on God's green earth a crawling 6 to 8 month old baby is going to be able to dress themselves, especially in a onsie.  It is utterly unrealistic.  Not saying this is something that would be easy to code, but it is something that is worth taking a shot at.  Maybe this won't be possible after all though.

Quote
For the weapon part children (age <12) can safely use pistols or melee weapons.
Being a proper gun-owning American I can assure you that a lot of 7 year olds can handle a rifle of small to moderate caliber just fine.  A handgun is actually much harder to control and most children cannot safely use a handgun.  Conversely, I can't imagine a 7 year old could effectively wield a steel mace (or a halberd if you are using other weapon mods like Vanilla weapons expanded), but a 7 year old should be able to wield a short bow (of lower draw weight) or use throwing rocks (again, Vanilla weapons expanded).  I am not sure the best way to go about this.  I will think on it.

Quote
If somebody can't handle children fighting then perhaps dont use a mod that adds them to rimworld. There is a patch that makes pirate raids never spawn children can be found in the "Patches" folder you could replicate it for other factions as well I suppose.
I personally don't care.  I fully would expect a privative tribe to use children in battle.  I just thought it would be a good feature to add if possible, however, you may have a very good point about just not adding children if someone doesn't like the idea of children fighting.  Therefore I rescind this suggestion.  Let us slaughter the child soldiers!

Quote
The no skill display is caused by the fact that the child gains a new backstory at the age of 3 which removes all the "incapable of" from baby and toddler stage backstories but rimworld was not made to handle changing backstories as without mods it shouldn't happen at all thus you will have to live with reloading upon children reaching the age of 3
This is a very inconvenient bug.  I really do think it would be worth the effort to try and find a work-around.  I think your hediff idea was much better.  Plus, this would make it easier to get compatibility with other mods like Dub's hygiene in which various hygiene features can be disabled based on particular pawn hediffs.  All in all, the hediff idea seems to be the right direction.
#4
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
January 10, 2021, 03:54:48 PM
Quote from: jager666 on January 08, 2021, 04:23:53 PM
Looks like the mod is dead in the water again.

I mean the mod works, there are just some 'bugs'.  Also quite a few improvements that could be made.

Some of the things I thought were major bugs previously were not actually bugs just not really implimented.  There are a bunch of error messages in the logger, but most of these seem pretty harmless and meaningless.

The actual bugs (which do need to be fixed at top priority) I have found so far are:


  • Infants (immobile stage) try to mediate and this takes them out of the crib and requires rescue.
  • If the designated crib is outside the child's allowed zone then any time the child is outside of crib, an adult will take them to a random bed upon rescue (even if that bed is outside the allowed zone).
  • Random adults, including men and pawns assigned to a no-drugs policy, will randomly take contraceptive.  This does not seem related to 'chemical fascination', it seems that just any adult will randomly take the contraceptive.
  • Upon leaving the toddler stage at age 3 (they become a short pawn), the children can be assigned tasks (but cannot use weapons 'safely' (all weapons as far as I know)).  Unfortunately the new short child pawns do not display any skill levels.  I have to close out of the game and then load back in to the game again to see the traits in the bio.  Clearly this is a bug.

Here is a list of features I think really need to be implemented:

  • Pawns capable of breastfeeding and assigned to childcare should prioritize breastfeeding immobile babies and not feed them regular food
  • Toddlers in crawling stage should not be able to pick up food and feed themselves. This should require a 'take to bed and feed' from a pawn assigned to childcare
  • Although toddlers can feed themselves, if an adult pawn with childcare abilities chooses to feed a walking stage toddler, they should be fed at a table and chair if possible, if not, they should be fed anywhere. Toddlers in walking stage should not be required to be taken to bed for an adult to feed them.
  • Toddlers in crawling stage should not be able to clothe themselves, an adult pawn should need to clothe them in appropriate toddler clothes (the onesie and beanie).
  • Adult pawns with childcare assignments should be able to play with toddlers in either crawling or walking stage outside of the crib/bed.  I know that toddler pawns in both stages can play with each other or can relax socially if they have access to a chair and table with the 'gathering spot' option enabled, but the 'play with baby' should not require a crib at the toddler stage.  If this is implemented, I would remove the ability for the toddler pawn to relax socially from the crawling stage, as it is unrealistic that a crawling 6 to 18 month old would be able to converse in any meaningful way with adults.  I think relaxing socially is still acceptable for walking stage toddlers.
  • We need more descriptive help lists.  It is not clear what happens at what stage or how high a young child can train their skills to.
  • There should be an option to turn off children under a certain age appearing in raids and caravans.  I know on a rimworld, tribal cultures may encourage young children to fight, but this is too upsetting to some people and should be able to be turned off.

Here is a list of features I would like to see to have better compatibility with Dub's Hygiene mod, which I use.  Implementing these features will likely require work on both mods:

  • Immobile babies should not create bedpans.
  • Pawns assigned to childcare should be able to wash babies, it should not require doctoring to be assigned.
  • Crawling toddlers should not be able wash themselves.  I think it is okay for toddlers in walking stage to wash themselves, but crawling toddlers should create a childcare work driver for 'take to bed and wash', which must be done by an adult pawn assigned to childcare.
  • All baby stages, from immobile through walking toddler, should not use toilets.  Adult pawns assigned to childcare should have a 'take to bed and change diaper' Workdef.  Once a child reaches the age of three, they should start using toilets (I think doing a potty training thing would be way outside of the scope of the game so no need for that level of minutia)

Finally, at some point, I think it would be interesting to implement something along the lines of the old Children and School mod, but I don't think this ought to be a priority.  I have some C# knowledge, but I have been having trouble compiling my code so I really think someone with more advanced knowledge would need to help me make some of these fixes and changes.
#5
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
January 05, 2021, 07:37:59 PM
Okay,

I am getting this error in the debugger:

Exception in JobDriver tick for pawn Marjot driver=JobDriver_PlayWithBaby (toilIndex=3) driver.job=(error)
System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorldChildren.JobDriver_PlayWithBaby.<MakeNewToils>b__7_1 () [0x000c3] in <1f5f58e363274a8aa94d1c13877805a5>:0
  at (wrapper dynamic-method) Verse.AI.JobDriver.Verse.AI.JobDriver.DriverTick_Patch1(Verse.AI.JobDriver)
Verse.Log:Warning(String, Boolean)
Verse.AI.JobUtility:Verse.AI.JobUtility.TryStartErrorRecoverJob_Patch0(Pawn, String, Exception, JobDriver)
Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch1(JobDriver)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Verse.Pawn.Tick_Patch1(Pawn)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


And this:

Isabel threw exception in WorkGiver TakeBabyToCrib: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorldChildren.WorkGiver_TakeBabyToCrib.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x0001e] in <1f5f58e363274a8aa94d1c13877805a5>:0
  at RimWorld.JobGiver_Work+<>c__DisplayClass3_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.GenClosest+<>c__DisplayClass2_0.<ClosestThingReachable>b__0 (Verse.Thing t) [0x00034] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.GenClosest.<ClosestThing_Global>g__Process|5_0 (Verse.Thing t, Verse.GenClosest+<>c__DisplayClass5_0& ) [0x00047] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.GenClosest.ClosestThing_Global (Verse.IntVec3 center, System.Collections.IEnumerable searchSet, System.Single maxDistance, System.Predicate`1[T] validator, System.Func`2[T,TResult] priorityGetter) [0x0008d] in <d72310b4d8f64d25aee502792b58549f>:0
  at Verse.GenClosest.ClosestThingReachable (Verse.IntVec3 root, Verse.Map map, Verse.ThingRequest thingReq, Verse.AI.PathEndMode peMode, Verse.TraverseParms traverseParams, System.Single maxDistance, System.Predicate`1[T] validator, System.Collections.Generic.IEnumerable`1[T] customGlobalSearchSet, System.Int32 searchRegionsMin, System.Int32 searchRegionsMax, System.Boolean forceAllowGlobalSearch, Verse.RegionType traversableRegionTypes, System.Boolean ignoreEntirelyForbiddenRegions) [0x0014e] in <d72310b4d8f64d25aee502792b58549f>:0
  at (wrapper dynamic-method) RimWorld.JobGiver_Work.RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)
Verse.Log:Error(String, Boolean)
RimWorld.JobGiver_Work:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1(JobGiver_Work, Pawn, JobIssueParams)
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(ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Verse.Pawn.Tick_Patch1(Pawn)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
#6
Releases / Re: [1.2] Children and Pregnancy - v3.5.2
January 01, 2021, 10:36:05 PM
So I have a problem with the toddlers not being able to play when outside of the crib.  It is extremely hard to get them in the crib to play with them once they start crawling around.  plus, once you do get them in bed they fall asleep before you can get a pawn to play with them. I think it is due to this bit in Driver_PlayWithBaby.cs on line 80:

        protected override IEnumerable<Toil> MakeNewToils() {
            this.FailOnDespawnedNullOrForbidden(TargetIndex.A);
            this.FailOn(() => !Baby.InBed() || !Baby.Awake());
            if (Chair != null) {
                this.FailOnDespawnedNullOrForbidden(TargetIndex.B);
            }


I have very limited abilities in C#.  Does anyone know how to make it so toddlers do not have to be in the crib to play with them?