Пример #1
0
 def on_reset_get_interdependent_reset_records(self, reset_reason,
                                               reset_records):
     super().on_reset_get_interdependent_reset_records(
         reset_reason, reset_records)
     relevant_sims = self.get_users(sims_only=True)
     for sim in relevant_sims:
         if self.reset_reason() == ResetReason.BEING_DESTROYED:
             reset_records.append(
                 ResetRecord(sim, ResetReason.RESET_EXPECTED, self,
                             'In use list of object being destroyed.'))
         else:
             body_target_part_owner = sim.posture_state.body.target
             if body_target_part_owner is not None:
                 if body_target_part_owner.is_part:
                     body_target_part_owner = body_target_part_owner.part_owner
             transition_controller = sim.queue.transition_controller
             if not body_target_part_owner is self:
                 if not transition_controller is None:
                     if not transition_controller.will_derail_if_given_object_is_reset(
                             self):
                         reset_records.append(
                             ResetRecord(sim, ResetReason.RESET_EXPECTED,
                                         self, 'Transitioning To or In.'))
             reset_records.append(
                 ResetRecord(sim, ResetReason.RESET_EXPECTED, self,
                             'Transitioning To or In.'))
Пример #2
0
 def on_reset_get_interdependent_reset_records(self, reset_reason,
                                               reset_records):
     super().on_reset_get_interdependent_reset_records(
         reset_reason, reset_records)
     for child in set(self.get_all_children_gen()):
         reset_records.append(
             ResetRecord(child, ResetReason.RESET_EXPECTED, self, 'Child'))
 def on_reset_component_get_interdependent_reset_records(
         self, reset_reason, reset_records):
     owner_users = self.owner.get_users()
     for obj in self.get_linked_objects_gen():
         if self._has_active_link(owner_users, obj):
             reset_records.append(
                 ResetRecord(obj, ResetReason.RESET_EXPECTED, self,
                             'Linked object reset'))
Пример #4
0
 def add_interdependent_reset_records(self, sim, records):
     work_entry = self._active_work.get(sim, None)
     if work_entry is None:
         return records
     for other_sim in work_entry.resources:
         if other_sim is not sim:
             records.append(
                 ResetRecord(other_sim, ResetReason.RESET_EXPECTED, sim,
                             'Work entry resource:{}'.format(work_entry)))
Пример #5
0
 def on_reset_component_get_interdependent_reset_records(
         self, reset_reason, reset_records):
     if self.is_shared_inventory:
         return
     if reset_reason == ResetReason.BEING_DESTROYED:
         for obj in self:
             reset_records.append(
                 ResetRecord(obj, reset_reason, self, 'In inventory'))
         self._storage.discard_all_objects()
         self._hidden_storage.discard_all_objects()
Пример #6
0
 def on_reset_get_interdependent_reset_records(self, reset_reason,
                                               reset_records):
     self.on_reset_component_get_interdependent_reset_records(
         reset_reason, reset_records)
     for interaction in list(self.interaction_refs):
         if reset_reason != ResetReason.BEING_DESTROYED:
             transition_controller = interaction.sim.queue.transition_controller
             if transition_controller is not None and transition_controller.will_derail_if_given_object_is_reset(
                     self):
                 pass
         while interaction.should_reset_based_on_pipeline_progress:
             self.interaction_refs.remove(interaction)
             reset_records.append(
                 ResetRecord(
                     interaction.sim, ResetReason.RESET_EXPECTED, self,
                     'Actor in interaction targeting source. {}, {}'.format(
                         interaction, interaction.pipeline_progress)))
Пример #7
0
 def on_reset_get_interdependent_reset_records(self, reset_reason, reset_records):
     self.on_reset_component_get_interdependent_reset_records(reset_reason, reset_records)
     if self._interaction_refs is None:
         return
     for interaction in tuple(self._interaction_refs):
         sim = None
         if reset_reason != ResetReason.BEING_DESTROYED:
             sim = interaction.sim
             transition_controller = sim.queue.transition_controller if sim is not None else None
             if transition_controller is not None and transition_controller.will_derail_if_given_object_is_reset(self):
                 continue
         elif interaction.should_reset_based_on_pipeline_progress:
             self.remove_interaction_reference(interaction)
             sim = sim or interaction.sim
             if sim is None:
                 continue
             reset_records.append(ResetRecord(sim, ResetReason.RESET_EXPECTED, self, 'Actor in interaction targeting source. {}, {}'.format(interaction, interaction.pipeline_progress)))