def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) has_top_underwear_on = TurboSimUtil.Gender.is_female(sim) and ( is_underwear_outfit(get_modified_outfit(sim)[0]) and is_sim_top_underwear(sim)) has_bottom_underwear_on = is_underwear_outfit( get_modified_outfit(sim)[0]) and is_sim_bottom_underwear(sim) strip_type_top = StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE strip_type_bottom = StripType.UNDERWEAR if has_bottom_underwear_on else StripType.NUDE strip_result = strip_outfit(sim, strip_type_top=strip_type_top, strip_type_bottom=strip_type_bottom, skip_outfit_change=True) if strip_result is True: set_sim_top_naked_state(sim, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim, strip_type_bottom == StripType.NUDE) set_sim_top_underwear_state(sim, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state( sim, strip_type_bottom == StripType.UNDERWEAR) nudity_notification( text=2191667249, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance)
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) top_body_state = get_sim_body_state(sim, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_state = get_sim_body_state( sim, TurboCASUtil.BodyType.LOWER_BODY) strip_type_top = StripType.NUDE if top_body_state == BodyState.UNDERWEAR else StripType.NONE strip_type_bottom = StripType.NUDE if bottom_body_state == BodyState.UNDERWEAR else StripType.NONE strip_result = strip_outfit(sim, strip_type_top=strip_type_top, strip_type_bottom=strip_type_bottom, skip_outfit_change=True, save_original=False) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_bottom_naked_state(sim, True) set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) nudity_notification( text=3110156917, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance)
def on_interaction_start(cls, interaction_instance): target = cls.get_interaction_target(interaction_instance) if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(target) copy_outfit_to_special( target, set_special_outfit=True, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(target).nude_outfit_parts[115] }) else: copy_outfit_to_special( target, set_special_outfit=True, outfit_category_and_index=get_modified_outfit(target), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(target).nude_outfit_parts[ TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(target).nude_outfit_parts[115] }) set_sim_top_naked_state(target, True) set_sim_bottom_naked_state(target, True) set_sim_top_underwear_state(target, False) set_sim_bottom_underwear_state(target, False) return True
def on_interaction_start(cls, interaction_instance): sim = cls.get_interaction_sim(interaction_instance) target = cls.get_interaction_target(interaction_instance) strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_top_underwear_state(sim, False) force_nudity_reaction(target, sim) return True return False
def on_interaction_start(cls, interaction_instance): target = cls.get_interaction_target(interaction_instance) strip_type_top = StripType.NUDE if get_sim_body_state( target, TurboCASUtil.BodyType.UPPER_BODY ) == BodyState.UNDERWEAR else StripType.UNDERWEAR if TurboSimUtil.Gender.is_female( target) and is_underwear_outfit( get_modified_outfit(target)[0]) else StripType.NUDE strip_outfit(target, strip_type_top=strip_type_top) set_sim_top_naked_state(target, strip_type_top == StripType.NUDE) set_sim_top_underwear_state(target, strip_type_top != StripType.NUDE) return True
def _update_dress_up_after_breast_feeding_on_game_update(): if not get_nudity_setting(NuditySetting.BREAST_FEEDING_UNDRESS_STATE, variable_type=bool): return for sim in TurboManagerUtil.Sim.get_all_sim_instance_gen(humans=True, pets=False): if sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.NONE: continue if TurboSimUtil.Age.is_younger_than(sim, TurboSimUtil.Age.CHILD): continue if TurboSimUtil.Interaction.is_running_interaction( sim, BREAST_FEEDING_INTERACTIONS): return current_outfit = TurboSimUtil.CAS.get_current_outfit(sim) if not (current_outfit[0] == TurboCASUtil.OutfitCategory.SPECIAL and current_outfit[1] == 0): continue current_outfit = get_modified_outfit(sim) if sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.UNDERWEAR: set_bodytype_caspart( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), 6, get_sim_underwear_data(sim, current_outfit)[0]) set_sim_top_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif sim_ev( sim ).on_breast_feeding_outfit_state == OutfitStateBeforeBreastFeeding.OUTFIT and has_sim_outfit_top( sim, outfit_category_and_index=current_outfit): part_id = get_sim_outfit_cas_part_from_bodytype( sim, 6, outfit_category_and_index=current_outfit) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), 6, part_id) set_sim_top_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif is_sim_outfit_fullbody(sim, outfit_category_and_index=current_outfit): dress_up_outfit(sim) else: dress_up_outfit(sim) sim_ev(sim).on_breast_feeding_outfit_state = int( OutfitStateBeforeBreastFeeding.NONE)
def _undress_bottom(sim_info): has_top_underwear_on = TurboSimUtil.Gender.is_female(sim_info) and ( is_underwear_outfit(get_modified_outfit(sim_info)[0]) and is_sim_top_underwear(sim_info)) strip_type_top = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE strip_outfit(sim_info, strip_type_top=strip_type_top, strip_type_bottom=StripType.NUDE) set_sim_top_naked_state(sim_info, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state(sim_info, False)
def put_sim_underwear_on(sim_identifier, skip_outfit_change=False): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) set_sim_top_naked_state(sim_info, False) set_sim_bottom_naked_state(sim_info, False) set_sim_top_underwear_state(sim_info, True) set_sim_bottom_underwear_state(sim_info, True) top_outfit_type = StripType.UNDERWEAR if TurboSimUtil.Gender.is_female( sim_info) and get_sim_body_state( sim_info, 6) == BodyState.NUDE else StripType.NONE bottom_outfit_type = StripType.UNDERWEAR if get_sim_actual_body_state( sim_info, 7) == BodyState.NUDE else StripType.NONE strip_outfit(sim_info, strip_type_top=top_outfit_type, strip_type_bottom=bottom_outfit_type, skip_outfit_change=skip_outfit_change, save_original=False)
def _wickedwhims_strip_clothing_while_admiring_your_body(interaction_instance): interaction_guid = TurboResourceUtil.Resource.get_guid64(interaction_instance) if interaction_guid in ADMIRE_YOUR_BODY_AFFORDANCES: sim = TurboInteractionUtil.get_interaction_sim(interaction_instance) skill_level = get_sim_nudity_skill_level(sim) strip_nude = skill_level >= 3 or skill_level == 2 and TurboWorldUtil.Lot.is_sim_on_home_lot(sim) if strip_nude is True: strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE, strip_type_bottom=StripType.NUDE, save_original=False) set_sim_top_naked_state(sim, True) set_sim_bottom_naked_state(sim, True) set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) else: if not TurboSimUtil.CAS.has_outfit(sim, (TurboCASUtil.OutfitCategory.SWIMWEAR, 0)): TurboSimUtil.CAS.generate_outfit(sim, (TurboCASUtil.OutfitCategory.SWIMWEAR, 0)) TurboSimUtil.CAS.set_current_outfit(sim, (TurboCASUtil.OutfitCategory.SWIMWEAR, 0))
def on_interaction_start(cls, interaction_instance): target = cls.get_interaction_target(interaction_instance) (has_permission, _) = has_sim_permission_for_nudity(target, nudity_setting_test=True) if has_permission is False: return False if is_sim_outfit_fullbody(target): set_sim_top_underwear_state(target, False) set_sim_bottom_underwear_state(target, False) TurboSimUtil.Interaction.push_affordance( target, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT if is_sim_exhibitionist(target) else SimInteraction.WW_NATURISM_UNDRESS_OUTFIT, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, must_run_next=True, priority=TurboInteractionUtil.Priority.High) return True if get_sim_body_state(target, 6) != BodyState.NUDE: set_sim_top_underwear_state(target, False) TurboSimUtil.Interaction.push_affordance( target, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT_TOP if is_sim_exhibitionist(target) else SimInteraction.WW_NATURISM_UNDRESS_OUTFIT_TOP, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, must_run_next=True, priority=TurboInteractionUtil.Priority.High) return True if get_sim_body_state(target, 7) != BodyState.NUDE: set_sim_bottom_underwear_state(target, False) TurboSimUtil.Interaction.push_affordance( target, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT_BOTTOM if is_sim_exhibitionist(target) else SimInteraction.WW_NATURISM_UNDRESS_OUTFIT_BOTTOM, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_SCRIPT, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, must_run_next=True, priority=TurboInteractionUtil.Priority.High) return True return False
def _wickedwhims_undress_top_on_breast_feeding(interaction_instance): if not get_nudity_setting(NuditySetting.BREAST_FEEDING_UNDRESS_STATE, variable_type=bool): return interaction_guid = TurboResourceUtil.Resource.get_guid64( interaction_instance) if interaction_guid != BREAST_FEEDING_INTERACTIONS: return sim = TurboInteractionUtil.get_interaction_sim(interaction_instance) if sim_ev( sim ).on_breast_feeding_outfit_state != OutfitStateBeforeBreastFeeding.NONE: return if TurboSimUtil.Age.is_younger_than(sim, TurboSimUtil.Age.CHILD): return if has_sim_outfit_top(sim): top_body_state = get_sim_body_state(sim, 6) if top_body_state != BodyState.NUDE: strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE, allow_stripping_gloves=False) if strip_result is True: sim_ev(sim).on_breast_feeding_outfit_state = int( OutfitStateBeforeBreastFeeding. UNDERWEAR if top_body_state == BodyState. UNDERWEAR else OutfitStateBeforeBreastFeeding.OUTFIT) set_sim_top_naked_state(sim, True) set_sim_top_underwear_state(sim, False) else: sim_ev(sim).on_breast_feeding_outfit_state = int( OutfitStateBeforeBreastFeeding.NONE) else: bottom_state = StripType.UNDERWEAR if is_sim_bottom_underwear( sim) else StripType.NUDE strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE, strip_type_bottom=bottom_state) if is_sim_outfit_fullbody(sim) and strip_result is True: sim_ev(sim).on_breast_feeding_outfit_state = int( OutfitStateBeforeBreastFeeding.OUTFIT) set_sim_top_naked_state(sim, True) set_sim_top_underwear_state(sim, False) set_sim_bottom_naked_state(sim, True)
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) strip_result = strip_outfit(sim, strip_type_top=StripType.NUDE, skip_outfit_change=True, save_original=False) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_top_underwear_state(sim, False) nudity_notification( text=1357018163, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance)
def undress_sim(sim_identifier, actor_data, is_npc_only=False): sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) if is_npc_only is False: undressing_type = get_sex_setting(SexSetting.SEX_UNDRESSING_TYPE, variable_type=int) else: undressing_type = get_sex_setting(SexSetting.NPC_SEX_UNDRESSING_TYPE, variable_type=int) if undressing_type == SexUndressingLevelSetting.DISABLED: return update_nude_body_data(sim_info) top_body_state = get_sim_actual_body_state( sim_info, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_state = get_sim_actual_body_state( sim_info, TurboCASUtil.BodyType.LOWER_BODY) hands_body_state = get_sim_actual_body_state(sim_info, TurboCASUtil.BodyType.GLOVES) feet_body_state = get_sim_actual_body_state(sim_info, TurboCASUtil.BodyType.SHOES) if undressing_type == SexUndressingLevelSetting.COMPLETE: if top_body_state == BodyState.NUDE and ( bottom_body_state == BodyState.NUDE and hands_body_state == BodyState.NUDE) and feet_body_state == BodyState.NUDE: return if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(sim_info) copy_outfit_to_special( sim_info, set_special_outfit=True, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(sim_info).nude_outfit_parts[115] }) else: copy_outfit_to_special( sim_info, set_special_outfit=True, outfit_category_and_index=get_modified_outfit(sim_info), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(sim_info).nude_outfit_parts[ TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(sim_info).nude_outfit_parts[115] }) set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state(sim_info, False) return if actor_data.is_forcing_nude_hands( ) and hands_body_state != BodyState.NUDE: strip_outfit(sim_info, strip_bodytype=TurboCASUtil.BodyType.GLOVES) if actor_data.is_forcing_nude_feet() and feet_body_state != BodyState.NUDE: strip_outfit(sim_info, strip_bodytype=TurboCASUtil.BodyType.SHOES) if actor_data.get_naked_type() == SexNakedType.ALL: if top_body_state == BodyState.NUDE and bottom_body_state == BodyState.NUDE: return if strip_outfit(sim_info, strip_type_top=StripType.NUDE, strip_type_bottom=StripType.NUDE): set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state(sim_info, False) elif actor_data.get_naked_type() == SexNakedType.TOP: if top_body_state == BodyState.NUDE: return has_bottom_underwear_on = is_underwear_outfit( get_modified_outfit(sim_info)[0]) and is_sim_bottom_underwear( sim_info) strip_type_bottom = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_bottom_underwear_on else StripType.NUDE if strip_outfit(sim_info, strip_type_top=StripType.NUDE, strip_type_bottom=strip_type_bottom): set_sim_top_naked_state(sim_info, True) set_sim_bottom_naked_state(sim_info, strip_type_bottom == StripType.NUDE) set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state( sim_info, strip_type_bottom == StripType.UNDERWEAR) elif actor_data.get_naked_type() == SexNakedType.BOTTOM: if bottom_body_state == BodyState.NUDE: return has_top_underwear_on = TurboSimUtil.Gender.is_female(sim_info) and ( is_underwear_outfit(get_modified_outfit(sim_info)[0]) and is_sim_top_underwear(sim_info)) strip_type_top = StripType.NONE if not is_sim_outfit_fullbody( sim_info ) else StripType.UNDERWEAR if has_top_underwear_on else StripType.NUDE if strip_outfit(sim_info, strip_type_top=strip_type_top, strip_type_bottom=StripType.NUDE): set_sim_top_naked_state(sim_info, strip_type_top == StripType.NUDE) set_sim_bottom_naked_state(sim_info, True) set_sim_top_underwear_state(sim_info, strip_type_top == StripType.UNDERWEAR) set_sim_bottom_underwear_state(sim_info, False)
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) if get_nudity_setting( NuditySetting.COMPLETE_UNDRESSING_TYPE, variable_type=int) == CompleteUndressingTypeSetting.DEFAULT: reset_sim_bathing_outfits(sim) strip_result = copy_outfit_to_special( sim, set_special_outfit=False, outfit_category_and_index=(TurboCASUtil.OutfitCategory.BATHING, 0), override_outfit_parts={ 115: sim_ev(sim).nude_outfit_parts[115] }) else: strip_result = copy_outfit_to_special( sim, set_special_outfit=False, outfit_category_and_index=get_modified_outfit(sim), override_outfit_parts={ TurboCASUtil.BodyType.UPPER_BODY: sim_ev(sim).nude_outfit_parts[ TurboCASUtil.BodyType.UPPER_BODY], TurboCASUtil.BodyType.LOWER_BODY: sim_ev(sim).nude_outfit_parts[ TurboCASUtil.BodyType.LOWER_BODY], TurboCASUtil.BodyType.SHOES: sim_ev(sim).nude_outfit_parts[TurboCASUtil.BodyType.SHOES], TurboCASUtil.BodyType.FULL_BODY: 0, TurboCASUtil.BodyType.HAT: 0, TurboCASUtil.BodyType.CUMMERBUND: 0, TurboCASUtil.BodyType.EARRINGS: 0, TurboCASUtil.BodyType.GLASSES: 0, TurboCASUtil.BodyType.NECKLACE: 0, TurboCASUtil.BodyType.GLOVES: 0, TurboCASUtil.BodyType.WRIST_LEFT: 0, TurboCASUtil.BodyType.WRIST_RIGHT: 0, TurboCASUtil.BodyType.SOCKS: 0, TurboCASUtil.BodyType.TIGHTS: 0, 115: sim_ev(sim).nude_outfit_parts[115] }) if strip_result is True: set_sim_top_naked_state(sim, True) set_sim_bottom_naked_state(sim, True) set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) nudity_notification( text=2191667249, text_tokens=(sim, ), icon=sim, sims=(sim, ), is_autonomy=cls.get_interaction_source(interaction_instance) == TurboInteractionUtil.InteractionSource.AUTONOMY) return TurboSimUtil.CAS.get_change_outfit_element( sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), do_spin=True, interaction=interaction_instance, dirty_outfit=True)
def trigger_nudity_autonomy(sim): if is_sim_naturist(sim): if is_sim_outfit_fullbody(sim): set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_NATURISM_UNDRESS_OUTFIT, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) top_outfit_state = get_sim_actual_body_state(sim, 6) == BodyState.OUTFIT if top_outfit_state is True: set_sim_top_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_NATURISM_UNDRESS_OUTFIT_TOP, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) bottom_outfit_state = get_sim_actual_body_state(sim, 7) == BodyState.OUTFIT if bottom_outfit_state is True: set_sim_bottom_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_NATURISM_UNDRESS_OUTFIT_BOTTOM, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) return False else: if is_sim_outfit_fullbody(sim): set_sim_top_underwear_state(sim, False) set_sim_bottom_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) top_outfit_state = get_sim_actual_body_state(sim, 6) == BodyState.OUTFIT if top_outfit_state is True: set_sim_top_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT_TOP, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) bottom_outfit_state = get_sim_actual_body_state(sim, 7) == BodyState.OUTFIT if bottom_outfit_state is True: set_sim_bottom_underwear_state(sim, False) return TurboSimUtil.Interaction.push_affordance( sim, SimInteraction.WW_EXHIBITIONISM_UNDRESS_OUTFIT_BOTTOM, interaction_context=TurboInteractionUtil.InteractionContext. SOURCE_AUTONOMY, insert_strategy=TurboInteractionUtil.QueueInsertStrategy.NEXT, priority=TurboInteractionUtil.Priority.High, run_priority=TurboInteractionUtil.Priority.High, skip_if_running=True) return False
def _on_sim_towel_outfit_change(sim_info, _): if is_sim_in_towel_outfit(sim_info): set_sim_top_underwear_state(sim_info, False) set_sim_bottom_underwear_state(sim_info, False)