Example #1
0
 def _set_initial_camera_focus(self):
     client = self._client
     if camera.deserialize(client=client):
         return
     if client.active_sim is not None:
         camera.focus_on_sim(follow=True, client=client)
     else:
         camera.set_to_default()
Example #2
0
 def on_loading_screen_animation_finished(self):
     super().on_loading_screen_animation_finished()
     active_sim = services.get_active_sim()
     if active_sim is None:
         return
     if active_sim.is_on_active_lot():
         return
     camera.focus_on_sim(services.get_active_sim())
Example #3
0
 def _do_behavior(self):
     subject = self.interaction.get_participant(self.participant)
     if subject is None:
         return
     if self.participant == ParticipantType.Lot:
         focus_on_lot(lerp_time=self.time_to_position)
         return
     if subject.is_sim:
         focus_on_sim(sim=subject,
                      follow=self.follow,
                      client=subject.client)
     if subject.has_component(CAMERA_VIEW_COMPONENT):
         focus_on_object_from_position(
             obj_position=subject.position,
             camera_position=subject.get_camera_position())
Example #4
0
def start_baby_neglect(baby):
    baby._started_neglect_moment = True
    sim_info = baby.sim_info
    dialog = Baby.NEGLECT_NOTIFICATION(sim_info, SingleSimResolver(sim_info))
    dialog.show_dialog()
    neglect_effect = vfx.PlayEffect(sim_info, 's40_Sims_neglected', sims4.hash_util.hash32('_FX_'))
    neglect_effect.start()
    camera.focus_on_sim(sim_info, follow=False)
    sim_info_manager = services.sim_info_manager()
    with genealogy_caching():
        for member_id in sim_info.genealogy.get_immediate_family_sim_ids_gen():
            member_info = sim_info_manager.get(member_id)
            member_info.add_buff_from_op(Baby.NEGLECT_BUFF_IMMEDIATE_FAMILY.buff_type, Baby.NEGLECT_BUFF_IMMEDIATE_FAMILY.buff_reason)
    empty_bassinet = _replace_bassinet(sim_info)
    empty_bassinet.set_state(Baby.NEGLECT_EMPTY_BASSINET_STATE.state, Baby.NEGLECT_EMPTY_BASSINET_STATE)
    services.client_manager().get_first_client().selectable_sims.remove_selectable_sim_info(sim_info)
    services.get_persistence_service().del_sim_proto_buff(sim_info.id)
    sim_info_manager.remove_permanently(sim_info)
Example #5
0
def start_baby_neglect(baby):
    baby._started_neglect_moment = True
    sim_info = baby.sim_info
    dialog = Baby.NEGLECT_NOTIFICATION(sim_info, SingleSimResolver(sim_info))
    dialog.show_dialog()
    neglect_effect = vfx.PlayEffect(sim_info, 's40_Sims_neglected',
                                    sims4.hash_util.hash32('_FX_'))
    neglect_effect.start()
    camera.focus_on_sim(sim_info, follow=False)
    sim_info_manager = services.sim_info_manager()
    with genealogy_caching():
        for member_id in sim_info.genealogy.get_immediate_family_sim_ids_gen():
            member_info = sim_info_manager.get(member_id)
            member_info.add_buff_from_op(
                Baby.NEGLECT_BUFF_IMMEDIATE_FAMILY.buff_type,
                Baby.NEGLECT_BUFF_IMMEDIATE_FAMILY.buff_reason)
    empty_bassinet = _replace_bassinet(sim_info)
    empty_bassinet.set_state(Baby.NEGLECT_EMPTY_BASSINET_STATE.state,
                             Baby.NEGLECT_EMPTY_BASSINET_STATE)
    services.client_manager().get_first_client(
    ).selectable_sims.remove_selectable_sim_info(sim_info)
    services.get_persistence_service().del_sim_proto_buff(sim_info.id)
    sim_info_manager.remove_permanently(sim_info)
Example #6
0
 def execute_removal_moment(self, baby):
     baby.is_being_removed = True
     sim_info = baby.sim_info
     if self.notification is not None:
         dialog = self.notification(sim_info, SingleSimResolver(sim_info))
         dialog.show_dialog()
     if self.vfx is not None:
         vfx = self.vfx(baby)
         vfx.start()
     camera.focus_on_sim(baby, follow=False)
     sim_info_manager = services.sim_info_manager()
     if self.buff is not None:
         with genealogy_caching():
             for member_id in sim_info.genealogy.get_immediate_family_sim_ids_gen(
             ):
                 member_info = sim_info_manager.get(member_id)
                 if member_info.lod != SimInfoLODLevel.MINIMUM:
                     member_info.add_buff_from_op(self.buff.buff_type,
                                                  self.buff.buff_reason)
     baby.cancel_interactions_running_on_object(
         FinishingType.TARGET_DELETED,
         cancel_reason_msg='Baby is being removed.')
     empty_bassinet = replace_bassinet(sim_info, safe_destroy=True)
     if self.empty_state is not None:
         empty_bassinet.set_state(self.empty_state.state, self.empty_state)
     client = sim_info.client
     if client is not None:
         client.set_next_sim_or_none(only_if_this_active_sim_info=sim_info)
         client.selectable_sims.remove_selectable_sim_info(sim_info)
     sim_info.inject_into_inactive_zone(DeathTracker.DEATH_ZONE_ID,
                                        start_away_actions=False,
                                        skip_instanced_check=True,
                                        skip_daycare=True)
     sim_info.household.remove_sim_info(sim_info,
                                        destroy_if_empty_household=True)
     sim_info.transfer_to_hidden_household()
     sim_info.request_lod(SimInfoLODLevel.MINIMUM)
Example #7
0
 def move_to_sim(sim_identifier, follow=True):
     sim = TurboManagerUtil.Sim.get_sim_instance(sim_identifier)
     camera.focus_on_sim(
         sim=sim,
         follow=follow,
         client=services.client_manager().get_first_client())
Example #8
0
 def _do_behavior(self):
     subject = self.interaction.get_participant(self.participant)
     if subject is not None:
         focus_on_sim(sim=subject, follow=self.follow, client=subject.client)