Пример #1
0
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)
Пример #2
0
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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
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
Пример #8
0
 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)
Пример #9
0
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)
Пример #10
0
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!')