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;
 }
예제 #2
0
        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;
        }