def focus_camera_on_object(obj_id, _connection=None): manager = services.object_manager() if obj_id in manager: obj = manager.get(obj_id) else: sims4.commands.output('Object ID not in the object manager.', _connection) return if obj is not None: client = services.client_manager().get(_connection) camera.focus_on_position(obj.position, client)
def focus_on_sim(sim_info: SimInfoParam, *_, _connection=None, **__): if sim_info is None: sims4.commands.output('Could not find Sim to focus on.', _connection) return sim = sim_info.get_sim_instance() if sim is None: sims4.commands.output('Could not find Sim to focus on.', _connection) return pos = sim.position client = services.client_manager().get(_connection) camera.focus_on_position(pos, client) sims4.commands.output('focus on sim: {}'.format(sim_info), _connection)
def focus_camera_on_community_board(_connection=None): for board in services.object_manager().get_objects_with_tag_gen( BaseCivicPolicyProvider.COMMUNITY_BOARD_TAG): if not board.is_on_active_lot(): camera.focus_on_position( board.position, services.client_manager().get(_connection)) return else: sims4.commands.output( 'There are no offlot community boards in the object manager.', _connection)
def unlock_next_room(self): if self._current_room >= len(self._temple_data.rooms): return gate = self._rooms[self._current_room].gate camera.focus_on_position(gate.position) gate.set_state(TempleTuning.GATE_UNLOCK_STATE.state, TempleTuning.GATE_UNLOCK_STATE) active_sim_info = services.active_sim_info() resolver = SingleActorAndObjectResolver(active_sim_info, gate, source=self) TempleTuning.GATE_UNLOCK_LOOT.apply_to_resolver(resolver) self._current_room += 1 self.show_room(self._current_room, True)
def focus_on_position(pos: VectorParam, *_, _connection=None, **__): client = services.client_manager().get(_connection) camera.focus_on_position(pos, client) (x, y, z) = pos sims4.commands.output('focus on position: {}, {}, {}'.format(x, y, z), _connection)
def move_to_position(position): camera.focus_on_position( position, services.client_manager().get_first_client())