mirror of
				https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
				synced 2024-08-15 00:43:45 +00:00 
			
		
		
		
	job duration reset during actor shift
This commit is contained in:
		
							parent
							
								
									20cecf3190
								
							
						
					
					
						commit
						ac5721df82
					
				
					 3 changed files with 33 additions and 2 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -376,6 +376,29 @@ namespace Rimworld_Animations {
 | 
				
			||||||
        public void shiftActorPositionAndRestartAnimation() {
 | 
					        public void shiftActorPositionAndRestartAnimation() {
 | 
				
			||||||
            actor = (actor == anim.actors.Count - 1 ? 0 : actor + 1);
 | 
					            actor = (actor == anim.actors.Count - 1 ? 0 : actor + 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (pawn?.story?.bodyType != null) {
 | 
				
			||||||
 | 
					                if (pawn.story.bodyType == BodyTypeDefOf.Fat && anim?.actors[actor]?.bodyTypeOffset?.Fat != null) {
 | 
				
			||||||
 | 
					                    anchor.x += anim.actors[actor].bodyTypeOffset.Fat.Value.x * (mirror ? -1f : 1f);
 | 
				
			||||||
 | 
					                    anchor.z += anim.actors[actor].bodyTypeOffset.Fat.Value.y;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if (pawn.story.bodyType == BodyTypeDefOf.Female && anim?.actors[actor]?.bodyTypeOffset?.Female != null) {
 | 
				
			||||||
 | 
					                    anchor.x += anim.actors[actor].bodyTypeOffset.Female.Value.x * (mirror ? -1f : 1f);
 | 
				
			||||||
 | 
					                    anchor.z += anim.actors[actor].bodyTypeOffset.Female.Value.y;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if (pawn.story.bodyType == BodyTypeDefOf.Male && anim?.actors[actor]?.bodyTypeOffset?.Male != null) {
 | 
				
			||||||
 | 
					                    anchor.x += anim.actors[actor].bodyTypeOffset.Male.Value.x * (mirror ? -1f : 1f);
 | 
				
			||||||
 | 
					                    anchor.z += anim.actors[actor].bodyTypeOffset.Male.Value.y;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if (pawn.story.bodyType == BodyTypeDefOf.Thin && anim?.actors[actor]?.bodyTypeOffset?.Thin != null) {
 | 
				
			||||||
 | 
					                    anchor.x += anim.actors[actor].bodyTypeOffset.Thin.Value.x * (mirror ? -1f : 1f);
 | 
				
			||||||
 | 
					                    anchor.z += anim.actors[actor].bodyTypeOffset.Thin.Value.y;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if (pawn.story.bodyType == BodyTypeDefOf.Hulk && anim?.actors[actor]?.bodyTypeOffset?.Hulk != null) {
 | 
				
			||||||
 | 
					                    anchor.x += anim.actors[actor].bodyTypeOffset.Hulk.Value.x * (mirror ? -1f : 1f);
 | 
				
			||||||
 | 
					                    anchor.z += anim.actors[actor].bodyTypeOffset.Hulk.Value.y;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            curStage = 0;
 | 
					            curStage = 0;
 | 
				
			||||||
            animTicks = 0;
 | 
					            animTicks = 0;
 | 
				
			||||||
            stageTicks = 0;
 | 
					            stageTicks = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,8 +49,7 @@ namespace Rimworld_Animations {
 | 
				
			||||||
                        AnimationSettings.rotation.Add(def.defName + curPawn.def.defName + ActorIndex, 0);
 | 
					                        AnimationSettings.rotation.Add(def.defName + curPawn.def.defName + ActorIndex, 0);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    listingStandard.Label("Name: " + curPawn.Name + " Race: " + curPawn.def.defName + " Actor Index: " + curPawn.TryGetComp<CompBodyAnimator>().ActorIndex + " Animation: " + def.label + (curPawn.TryGetComp<CompBodyAnimator>().Mirror ? " mirrored" : ""));
 | 
				
			||||||
                    listingStandard.Label("Offset for race " + curPawn.def.defName + " in actor position " + curPawn.TryGetComp<CompBodyAnimator>().ActorIndex + " for animation " + def.label + (curPawn.TryGetComp<CompBodyAnimator>().Mirror ? " mirrored" : ""));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if(curPawn.def.defName == "Human") {
 | 
					                    if(curPawn.def.defName == "Human") {
 | 
				
			||||||
                        listingStandard.Label("Warning--You generally don't want to change human offsets, only alien offsets");
 | 
					                        listingStandard.Label("Warning--You generally don't want to change human offsets, only alien offsets");
 | 
				
			||||||
| 
						 | 
					@ -82,6 +81,15 @@ namespace Rimworld_Animations {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        for(int i = 0; i < curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation.Count; i++) {
 | 
					                        for(int i = 0; i < curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation.Count; i++) {
 | 
				
			||||||
                            curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].TryGetComp<CompBodyAnimator>()?.shiftActorPositionAndRestartAnimation();
 | 
					                            curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].TryGetComp<CompBodyAnimator>()?.shiftActorPositionAndRestartAnimation();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            //reset the clock time of every pawn in animation
 | 
				
			||||||
 | 
					                            if(curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].jobs.curDriver is rjw.JobDriver_Sex) {
 | 
				
			||||||
 | 
					                                (curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].jobs.curDriver as rjw.JobDriver_Sex).ticks_left = def.animationTimeTicks;
 | 
				
			||||||
 | 
					                                (curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].jobs.curDriver as rjw.JobDriver_Sex).ticksLeftThisToil = def.animationTimeTicks;
 | 
				
			||||||
 | 
					                                (curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].jobs.curDriver as rjw.JobDriver_Sex).duration = def.animationTimeTicks;
 | 
				
			||||||
 | 
					                                (curPawn.TryGetComp<CompBodyAnimator>().actorsInCurrentAnimation[i].jobs.curDriver as rjw.JobDriver_Sex).ticks_remaining = def.animationTimeTicks;
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue