Beispiel #1
0
def buildbuy_session_end(zone_id):
    services.object_manager(
        zone_id).rebuild_objects_to_ignore_portal_validation_cache()
    for obj in services.object_manager(zone_id).get_all():
        obj.on_buildbuy_exit()
    posture_graph_service = services.current_zone().posture_graph_service
    posture_graph_service.on_exit_buildbuy()
    _build_buy_exit_callbacks()
    pythonutils.try_highwater_gc()
    services.get_zone_modifier_service(
    ).check_for_and_apply_new_zone_modifiers(zone_id)
    if _sync_venue_service_to_zone_venue_type(zone_id):
        zone_director = services.venue_service().get_zone_director()
        if zone_director is not None:
            zone_director.on_exit_buildbuy()
    object_preference_tracker = services.object_preference_tracker()
    if object_preference_tracker is not None:
        object_preference_tracker.validate_objects(zone_id)
    services.business_service().on_build_buy_exit()
    services.current_zone().on_build_buy_exit()
    services.utilities_manager().on_build_buy_exit()
    services.get_reset_and_delete_service().on_build_buy_exit()
    street_service = services.street_service()
    if street_service is not None:
        street = services.current_street()
        if street is not None:
            provider = street_service.get_provider(street)
            if provider is not None:
                provider.on_build_buy_exit()
    services.object_manager().clear_objects_to_ignore_portal_validation_cache()
 def _on_zone_shutdown(self):
     street_provider = self.get_provider(services.current_street())
     if street_provider is not None:
         street_provider.on_zone_shutdown()
     current_zone = services.current_zone()
     current_zone.unregister_callback(zone_types.ZoneState.SHUTDOWN_STARTED,
                                      self._on_zone_shutdown)
     services.get_event_manager().unregister_single_event(
         self, TestEvent.SimHomeZoneChanged)
 def _save_street_eco_footprint_data(self, eco_footprint_data):
     eco_footprint_data.current_eco_footprint_state = self._curr_state_type
     eco_footprint_data.effects_are_simulated = self._simulating_eco_footprint_on_street
     street = services.street_service().get_street(self)
     if street is services.current_street(
     ) and not self._street_convergence_fully_computed:
         self._fully_compute_street_convergence()
     eco_footprint_data.convergence = self.get_street_footprint_convergence_value(
     )
Beispiel #4
0
 def finalize_startup(self, policy):
     super().finalize_startup(policy)
     if self._street is None:
         return
     if self.policy.enacted and self._street is services.current_street():
         for sim in services.sim_info_manager().instanced_sims_gen():
             self._enact_for_sim_info(sim.sim_info)
         self._register_callbacks()
     if self.policy.enacted:
         self._start_schedule()
Beispiel #5
0
def set_eco_footprint_state(state: EcoFootprintStateType,
                            update_lot_footprint_values: bool = True,
                            _connection=None):
    street_service = services.street_service()
    if street_service is None:
        sims4.commands.automation_output('Pack not loaded', _connection)
        sims4.commands.cheat_output('Pack not loaded', _connection)
        return
    street_provider = street_service.get_provider(services.current_street())
    street_provider.force_set_eco_footprint_state(state,
                                                  update_lot_footprint_values)
Beispiel #6
0
 def _setup_open_street_director(self):
     street = services.current_street()
     if street is not None and street.open_street_director is not None:
         self._open_street_director_requests.append(
             OpenStreetDirectorRequestFactory(
                 street.open_street_director,
                 priority=street.open_street_director.priority))
     self._zone_director.setup_open_street_director_manager(
         self._open_street_director_requests,
         self._prior_open_street_director_proto)
     self._open_street_director_requests = None
     self._prior_open_street_director_proto = None
 def finalize_startup(self):
     street_service = services.street_service()
     street = street_service.get_street(self)
     for (state_type, state) in self._eco_footprint_states.items():
         is_active = state_type == self._curr_state_type
         state.finalize_startup(is_active)
     if not self._is_eco_footprint_compatible:
         return
     if street is services.current_street():
         self._fully_compute_street_convergence()
         self.update_simulation_if_stale(
             street_service.enable_eco_footprint)
     elif self._simulating_eco_footprint_on_street:
         if self._persisted_convergence is not None:
             footprint_stat = self.get_street_footprint()
             footprint_stat.convergence_value = self._persisted_convergence
 def enable_eco_footprint(self, value):
     if self._enable_eco_footprint is not value:
         self._enable_eco_footprint = value
         street = services.current_street()
         provider = self.get_provider(street)
         provider.update_simulation_if_stale(self._enable_eco_footprint)
 def on_sim_removed(self, sim_info):
     street = services.current_street()
     if street in self._street_sim_removed_callbacks:
         self._street_sim_removed_callbacks[street](sim_info)
 def set_footprint_commodity_value(value):
     street_service = services.street_service()
     policy_provider = street_service.get_provider(services.current_street())
     policy_provider.commodity_tracker.set_value(eco_footprint_tuning.EcoFootprintTunables.STREET_FOOTPRINT, value)
     policy_provider.distribute_neighborhood_update()
 def get_footprint_commodity_value():
     street_service = services.street_service()
     policy_provider = street_service.get_provider(services.current_street())
     return policy_provider.commodity_tracker.get_value(eco_footprint_tuning.EcoFootprintTunables.STREET_FOOTPRINT, add=True)
Beispiel #12
0
 def get_lot_to_travel_to(cls):
     if cls is services.current_street():
         return
     import world.lot
     return world.lot.get_lot_id_from_instance_id(cls.travel_lot)
Beispiel #13
0
 def _try_and_start_festival(self):
     street = services.current_street()
     if street is not self.street:
         self._setup_end_alarm()
         return
     self._create_open_street_director_request()
Beispiel #14
0
 def get_travel_lot_id(cls, reject_same_street=False):
     if reject_same_street and cls.street is services.current_street():
         return
     if cls.travel_lot_override is not None:
         return get_lot_id_from_instance_id(cls.travel_lot_override)
     return get_lot_id_from_instance_id(cls.street.travel_lot)
Beispiel #15
0
 def is_on_festival_street(self):
     street = services.current_street()
     return street is self.street
Beispiel #16
0
 def finalize_startup(self, policy):
     super().finalize_startup(policy)
     if self.policy.enacted and self._street is services.current_street():
         self._send_parameter_update_op(self.enact_data, from_load=True)