public void AssignFavourite( WorkFavourite favourite ) { for ( int hour = 0; hour < GenDate.HoursPerDay; hour++ ) { foreach ( var worktype in DefDatabase<WorkTypeDef>.AllDefsListForReading ) { if ( !pawn.story.WorkTypeIsDisabled( worktype ) ) priorities[hour][worktype] = favourite.worktypePriorities.priorities[hour][worktype]; } } currentFavourite = favourite; }
private void ApplyAndClose() { // create favourite WorkFavourite favourite = new WorkFavourite( pawn, label, "UI/Icons/Various/" + textureChooser.Choice.name, dwarfTherapistMode ); // add to list MapComponent_Favourites.Instance.favourites.Add( favourite ); // assign to pawn if ( dwarfTherapistMode ) pawn.workgiverPriorities().AssignFavourite( favourite ); else pawn.worktypePriorities().AssignFavourite( favourite ); // done! Close(); }
public void SetPriority( WorkTypeDef worktype, int priority, int hour ) { if ( pawn.story.WorkTypeIsDisabled( worktype ) ) return; // set priority priorities[hour][worktype] = priority; // notify pawn that it should update pawn.workSettings.Notify_UseWorkPrioritiesChanged(); // mark our partial assignment cache dirty _cacheDirty[worktype] = true; // clear current favourite currentFavourite = null; }