def _after_sex_dress_up(sim_info): if get_sex_setting(SexSetting.OUTFIT_AUTO_DRESS_UP_AFTER_SEX_STATE, variable_type=bool): dress_up_outfit(sim_info) elif TurboSimUtil.Sim.is_npc(sim_info) and has_sim_situations( sim_info, (SimSituation.LEAVE, SimSituation.LEAVE_NOW_MUST_RUN, SimSituation.SINGLESIMLEAVE)): dress_up_outfit(sim_info)
def _wickedwhims_neutralize_sims_active_sex_data_on_zone_move(): if not has_game_loaded(): return for sex_handler in ACTIVE_SEX_HANDLERS_LIST: for sim_info in sex_handler.get_actors_sim_info_gen(): if sim_info is None: pass clear_sim_sex_extra_data(sim_info) dress_up_outfit(sim_info) reset_active_sex_handlers()
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 set_callback(dialog): global PENIS_SETTING_RANDOM, PENIS_SETTING_RANDOM_INCLUDE_DEFAULT if not dialog.accepted: open_penis_settings(sim_info) return penis_author = dialog.get_result_tags()[-1] PENIS_SETTING_RANDOM = False PENIS_SETTING_RANDOM_INCLUDE_DEFAULT = True update_basic_save_data(get_basic_penis_save_data()) sim_ev(sim_info).outfit_hard_penis_author = penis_author dress_up_outfit(sim_info) set_sim_penis_state(sim_info, False, 0) update_nude_body_data(sim_info, force_update=True) open_sim_hard_penis_picker(sim_info)
def _outfit_picker_callback(dialog): if not TurboUIUtil.ObjectPickerDialog.get_response_result(dialog): return picked_outfit = TurboUIUtil.ObjectPickerDialog.get_tag_result( dialog) dress_up_outfit(target, override_outfit_category_and_index=picked_outfit) active_sex_handler = sim_ev(target).active_sex_handler if active_sex_handler is not None: actor_data = active_sex_handler.get_animation_instance( ).get_actor( active_sex_handler.get_actor_id_by_sim_id( TurboManagerUtil.Sim.get_sim_id(target))) undress_sim(target, actor_data=actor_data)
def on_building_basic_elements(cls, interaction_instance, sequence): sim = cls.get_interaction_sim(interaction_instance) is_autonomy = cls.get_interaction_source( interaction_instance ) == TurboInteractionUtil.InteractionSource.AUTONOMY if TurboSimUtil.Sim.is_player(sim) and is_autonomy: text_tokens = [sim] if is_autonomy is True and sim_ev( sim).last_nudity_denied_permissions is not None: for denied_permission in sim_ev( sim).last_nudity_denied_permissions: if denied_permission == NudityPermissionDenied.NOT_AT_HOME: text_tokens.append(2434379342) elif denied_permission == NudityPermissionDenied.OUTSIDE: text_tokens.append(14125364) else: if denied_permission == NudityPermissionDenied.TOO_MANY_SIMS_AROUND: text_tokens.append(902300171) for _ in range(11 - len(text_tokens)): text_tokens.append(0) nudity_notification(text=2998371344, text_tokens=text_tokens, icon=sim, sims=(sim, ), is_autonomy=is_autonomy) sim_ev(sim).last_nudity_denied_permissions = None outfit_category_and_index = dress_up_outfit(sim, skip_outfit_change=True) return TurboSimUtil.CAS.get_change_outfit_element( sim, outfit_category_and_index, do_spin=True, interaction=interaction_instance, dirty_outfit=True)
def _update_dress_up_after_toilet_use_on_game_update(): global HAS_SIMS_USING_TOILET if not get_nudity_setting(NuditySetting.TOILET_USE_UNDRESS_STATE, variable_type=bool): return if HAS_SIMS_USING_TOILET is False: return has_sims_peeing = False for sim in TurboManagerUtil.Sim.get_all_sim_instance_gen(humans=True, pets=False): if sim_ev(sim).on_toilet_outfit_state == OutfitStateBeforeToiletUse.NONE: continue has_sims_peeing = True if TurboSimUtil.Age.is_younger_than(sim, TurboSimUtil.Age.CHILD): continue is_using_toilet = False for affordance_id in TOILET_USE_INTERACTIONS: if TurboSimUtil.Interaction.is_running_interaction(sim, affordance_id): is_using_toilet = True break if is_using_toilet is True: has_sims_peeing = True 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_toilet_outfit_state == OutfitStateBeforeToiletUse.UNDERWEAR: set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.LOWER_BODY, get_sim_underwear_data(sim, current_outfit)[1]) set_sim_bottom_underwear_state(sim, True) try: TurboSimUtil.CAS.refresh_outfit(sim) except: continue elif sim_ev(sim).on_toilet_outfit_state == OutfitStateBeforeToiletUse.OUTFIT and has_sim_outfit_bottom(sim, outfit_category_and_index=current_outfit): set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.LOWER_BODY, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.LOWER_BODY, outfit_category_and_index=current_outfit)) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.TIGHTS, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.TIGHTS, outfit_category_and_index=current_outfit)) set_bodytype_caspart(sim, (TurboCASUtil.OutfitCategory.SPECIAL, 0), TurboCASUtil.BodyType.SOCKS, get_sim_outfit_cas_part_from_bodytype(sim, TurboCASUtil.BodyType.SOCKS, outfit_category_and_index=current_outfit)) set_sim_bottom_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_toilet_outfit_state = int(OutfitStateBeforeToiletUse.NONE) if has_sims_peeing is False: HAS_SIMS_USING_TOILET = False
def set_callback(dialog): global PENIS_SETTING_HARD_PENIS_AUTHOR, PENIS_SETTING_RANDOM, PENIS_SETTING_RANDOM_INCLUDE_DEFAULT if not dialog.accepted: open_penis_settings(creator_sim_info) return penis_author = dialog.get_result_tags()[-1] PENIS_SETTING_HARD_PENIS_AUTHOR = penis_author PENIS_SETTING_RANDOM = False PENIS_SETTING_RANDOM_INCLUDE_DEFAULT = True update_basic_save_data(get_basic_penis_save_data()) for sim_info in TurboManagerUtil.Sim.get_all_sim_info_gen(humans=True, pets=False): if sim_info is None: continue sim_ev(sim_info).outfit_hard_penis_author = penis_author dress_up_outfit(sim_info) set_sim_penis_state(sim_info, False, 0) update_nude_body_data(sim_info, force_update=True) open_all_sims_hard_penis_picker(creator_sim_info)
def randomized_all_sims_penis_models(sim_identifier, include_default_penis=False): global PENIS_SETTING_RANDOM, PENIS_SETTING_RANDOM_INCLUDE_DEFAULT creator_sim_info = TurboManagerUtil.Sim.get_sim_info(sim_identifier) PENIS_SETTING_RANDOM = True PENIS_SETTING_RANDOM_INCLUDE_DEFAULT = include_default_penis update_basic_save_data(get_basic_penis_save_data()) penis_author_keys = get_penis_author_keys( include_default_author_key=include_default_penis) if len(penis_author_keys) == 0: open_penis_settings(creator_sim_info) return for sim_info in TurboManagerUtil.Sim.get_all_sim_info_gen(humans=True, pets=False): if sim_info is None: continue random_penis_author = random.choice(penis_author_keys) sim_ev(sim_info).outfit_soft_penis_author = random_penis_author sim_ev(sim_info).outfit_hard_penis_author = random_penis_author dress_up_outfit(sim_info) set_sim_penis_state(sim_info, False, 0) update_nude_body_data(sim_info, force_update=True) open_penis_settings(creator_sim_info)
def open_underwear_mannequin(sim=None): global UNDERWEAR_MANNEQUIN_IN_USE, UNDERWEAR_MANNEQUIN_SIM_ID, UNDERWEAR_MANNEQUIN_OBJECT_ID if sim is None: sim = TurboManagerUtil.Sim.get_active_sim() sim_is_child = TurboSimUtil.Age.get_age(sim) is TurboSimUtil.Age.CHILD if sim_is_child: if TurboSimUtil.Gender.is_male(sim): mannequin = TurboObjectUtil.GameObject.create_object( 11608346933607860892, location=TurboSimUtil.Location.get_location(sim)) else: mannequin = TurboObjectUtil.GameObject.create_object( 16793401209133712026, location=TurboSimUtil.Location.get_location(sim)) else: if TurboSimUtil.Gender.is_male(sim): mannequin = TurboObjectUtil.GameObject.create_object( 15785160026562278628, location=TurboSimUtil.Location.get_location(sim)) else: mannequin = TurboObjectUtil.GameObject.create_object( 14110242915816833432, location=TurboSimUtil.Location.get_location(sim)) mannequin_id = TurboResourceUtil.Resource.get_id(mannequin) mannequin_component = TurboObjectUtil.Mannequin.get_component(mannequin) mannequin_sim_info = TurboObjectUtil.Mannequin.get_mannequin_component_sim_info( mannequin_component) TurboObjectUtil.Mannequin.remove_mannequin_protocol_buffer(mannequin) for outfit_category in (TurboCASUtil.OutfitCategory.EVERYDAY, TurboCASUtil.OutfitCategory.FORMAL, TurboCASUtil.OutfitCategory.ATHLETIC, TurboCASUtil.OutfitCategory.SLEEP, TurboCASUtil.OutfitCategory.PARTY, TurboCASUtil.OutfitCategory.SWIMWEAR, TurboCASUtil.OutfitCategory.HOTWEATHER, TurboCASUtil.OutfitCategory.COLDWEATHER): for outfit_index in range( TurboCASUtil.OutfitCategory. get_maximum_outfits_for_outfit_category(outfit_category)): if TurboSimUtil.CAS.has_outfit(sim, (outfit_category, outfit_index)): underwear_parts = get_sim_underwear_data( sim, (outfit_category, outfit_index)) if sim_is_child: if TurboSimUtil.Gender.is_male(sim): top_body_part = get_default_nude_cas_part_id( sim, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_part = underwear_parts[ 1] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, TurboCASUtil.BodyType.LOWER_BODY) TurboSimUtil.CAS.set_outfit_parts( mannequin_sim_info, (outfit_category, outfit_index), { TurboCASUtil.BodyType.HAIR: 12348270534692886420, TurboCASUtil.BodyType.HEAD: 12348270534692886420, TurboCASUtil.BodyType.UPPER_BODY: top_body_part, TurboCASUtil.BodyType.LOWER_BODY: bottom_body_part, TurboCASUtil.BodyType.SHOES: 22018 }) else: top_body_part = underwear_parts[ 0] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, 6) bottom_body_part = underwear_parts[ 1] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, 7) TurboSimUtil.CAS.set_outfit_parts( mannequin_sim_info, (outfit_category, outfit_index), { TurboCASUtil.BodyType.HAIR: 12348270534692886420, TurboCASUtil.BodyType.HEAD: 12348270534692886420, TurboCASUtil.BodyType.UPPER_BODY: top_body_part, TurboCASUtil.BodyType.LOWER_BODY: bottom_body_part, TurboCASUtil.BodyType.SHOES: 22018 }) else: if TurboSimUtil.Gender.is_male(sim): top_body_part = get_default_nude_cas_part_id( sim, TurboCASUtil.BodyType.UPPER_BODY) bottom_body_part = underwear_parts[ 1] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, TurboCASUtil.BodyType.LOWER_BODY) TurboSimUtil.CAS.set_outfit_parts( mannequin_sim_info, (outfit_category, outfit_index), { TurboCASUtil.BodyType.HAIR: 16045584265534180326, TurboCASUtil.BodyType.HEAD: 16045584265534180326, TurboCASUtil.BodyType.UPPER_BODY: top_body_part, TurboCASUtil.BodyType.LOWER_BODY: bottom_body_part, TurboCASUtil.BodyType.SHOES: 6563 }) else: top_body_part = underwear_parts[ 0] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, 6) bottom_body_part = underwear_parts[ 1] if outfit_category != TurboCASUtil.OutfitCategory.SLEEP and outfit_category != TurboCASUtil.OutfitCategory.SWIMWEAR else get_default_nude_cas_part_id( sim, 7) TurboSimUtil.CAS.set_outfit_parts( mannequin_sim_info, (outfit_category, outfit_index), { TurboCASUtil.BodyType.HAIR: 16045584265534180326, TurboCASUtil.BodyType.HEAD: 16045584265534180326, TurboCASUtil.BodyType.UPPER_BODY: top_body_part, TurboCASUtil.BodyType.LOWER_BODY: bottom_body_part, TurboCASUtil.BodyType.SHOES: 6543 }) TurboObjectUtil.Mannequin.populate_mannequin_protocol_buffer( mannequin_component) TurboSimUtil.CAS.set_current_outfit( mannequin_sim_info, TurboSimUtil.CAS.get_current_outfit(sim)) display_notification(text=2196543455, title=712099301, information_level=TurboUIUtil.Notification. UiDialogNotificationLevel.PLAYER) UNDERWEAR_MANNEQUIN_IN_USE = True UNDERWEAR_MANNEQUIN_SIM_ID = TurboManagerUtil.Sim.get_sim_id(sim) UNDERWEAR_MANNEQUIN_OBJECT_ID = mannequin_id dress_up_outfit(sim) TurboCommandUtil.invoke_command('sims.exit2caswithmannequinid {}'.format( mannequin_id, ''))
def _wickedwhims_command_global_revert_outfits(output=None): for sim_info in TurboManagerUtil.Sim.get_all_sim_info_gen(humans=True, pets=False): dress_up_outfit(sim_info) output('Every Sim outfit has been reverted!')