def _ui_metadata_gen(self): if GardeningTuning.is_spliced(self.owner): fruit_names = self.get_root_stock_names() description = LocalizationHelperTuning.get_comma_separated_list( *fruit_names) plant_name = GardeningTuning.SPLICED_PLANT_NAME() else: unidentified_overrides = self._unidentified_overrides if unidentified_overrides is not None and GardeningTuning.is_unidentified( self.owner): description = unidentified_overrides.unidentified_description plant_name = unidentified_overrides.unidentified_name else: if self.is_shoot and self.root_stock is not None: description = LocalizationHelperTuning.get_name_value_pair( GardeningTuning.SHOOT_DESCRIPTION_STRING, LocalizationHelperTuning.get_object_name( self.root_stock.main_spawner.definition)) else: description = LocalizationHelperTuning.get_object_description( self.owner.definition) plant_name = LocalizationHelperTuning.get_object_name( self.owner.definition) yield ('recipe_name', plant_name) yield ('recipe_description', description) subtext = self.owner.get_state_strings() if subtext is not None: yield ('subtext', subtext)
def _ui_metadata_gen(self): additional_information = self._get_additional_information() if additional_information and self.show_gardening_details(): additional_information.sort() object_info_names = [] object_info_descriptions = [] bullet_points = [] for (_, name, value) in additional_information: object_info_names.append(name) object_info_descriptions.append(value) bullet_point = LocalizationHelperTuning.get_name_value_pair(name, value) bullet_points.append(bullet_point) description = LocalizationHelperTuning.get_bulleted_list(None, *bullet_points) plant_name = LocalizationHelperTuning.get_object_name(self.owner.definition) else: object_info_names = None object_info_descriptions = None if GardeningTuning.is_spliced(self.owner): description = self._spliced_description plant_name = GardeningTuning.SPLICED_PLANT_NAME() else: if GardeningTuning.is_shoot(self.owner) and self.root_stock is not None: description = LocalizationHelperTuning.get_object_name(self.root_stock.main_spawner) else: description = LocalizationHelperTuning.get_object_description(self.owner.definition) plant_name = LocalizationHelperTuning.get_object_name(self.owner.definition) subtext = self.owner.get_state_strings() yield ('object_info_names', object_info_names) yield ('object_info_descriptions', object_info_descriptions) yield ('recipe_name', plant_name) yield ('recipe_description', description) if subtext is not None: yield ('subtext', subtext)
def _get_entry_tooltip(self, entry_def): return EntryTooltip( HovertipStyle.HOVER_TIP_DEFAULT, { TooltipFields.recipe_name: LocalizationHelperTuning.get_object_name(entry_def), TooltipFields.recipe_description: LocalizationHelperTuning.get_object_description(entry_def) })
def get_definition_notebook_data(self, ingredient_cache=()): definition_manager = services.definition_manager() fruit_definition = definition_manager.get( self.entry_object_definition_id) if fruit_definition is None: return gardening_tuned_values = fruit_definition.cls._components.gardening._tuned_values plant_definition = gardening_tuned_values.plant sub_list_data = [] sub_list_data.append( SubListData(None, 0, 0, True, False, self.entry_text_value(fruit_definition.price / 5), None, None)) season_service = services.season_service() if season_service is not None: season_text = GardeningTuning.get_seasonality_text_from_plant( plant_definition) if season_text is None: season_text = GardeningTuning.PLANT_SEASONALITY_TEXT( GardeningTuning.SEASONALITY_ALL_SEASONS_TEXT) sub_list_data.append( SubListData(None, 0, 0, True, False, season_text, None, None)) sub_list_data.append( SubListData( None, 0, 0, True, False, LocalizationHelperTuning.get_object_description( plant_definition), None, None)) for (splice_fruit, splice_fruit_result ) in gardening_tuned_values.splicing_recipies.items(): sub_list_data.append( SubListData( None, 0, 0, True, False, self.entry_text_splicing(splice_fruit, splice_fruit_result), None, None)) gardening_collection_data = ObjectCollectionData.get_collection_data( CollectionIdentifier.Gardening) for obj_data in itertools.chain( gardening_collection_data.object_list, gardening_collection_data.bonus_object_list): if obj_data.collectable_item is fruit_definition: rarity_text = ObjectCollectionData.COLLECTION_RARITY_MAPPING[ obj_data.rarity].text_value sub_list_data.append( SubListData(None, 0, 0, True, False, self.entry_text_rarity(rarity_text), None, None)) break entry_data = EntryData( LocalizationHelperTuning.get_object_name(fruit_definition), IconInfoData(obj_def_id=fruit_definition.id), None, sub_list_data, None) return entry_data
def _run_interaction_gen(self, timeline): target_name_component = self.target.name_component def on_response(dialog): if not dialog.accepted: return name = dialog.text_input_responses.get(self.TEXT_INPUT_NEW_NAME) description = dialog.text_input_responses.get( self.TEXT_INPUT_NEW_DESCRIPTION) target = self.target if target is not None: if name is not None: target.set_custom_name(name, actor_sim_id=self._sim.id) if description is not None: target.set_custom_description(description) self._update_ui_metadata(target) sequence = self._build_outcome_sequence() services.time_service().sim_timeline.schedule( element_utils.build_element(sequence)) text_input_overrides = {} (template_name, template_description ) = target_name_component.get_template_name_and_description() if target_name_component.allow_name: text_input_overrides[self.TEXT_INPUT_NEW_NAME] = None if self.target.has_custom_name(): text_input_overrides[ self. TEXT_INPUT_NEW_NAME] = lambda *_, **__: LocalizationHelperTuning.get_object_name( self.target) elif template_name is not None: text_input_overrides[self.TEXT_INPUT_NEW_NAME] = template_name if target_name_component.allow_description: text_input_overrides[self.TEXT_INPUT_NEW_DESCRIPTION] = None if self.target.has_custom_description(): text_input_overrides[ self. TEXT_INPUT_NEW_DESCRIPTION] = lambda *_, **__: LocalizationHelperTuning.get_object_description( self.target) elif template_description is not None: text_input_overrides[ self.TEXT_INPUT_NEW_DESCRIPTION] = template_description dialog = self.rename_dialog(self.sim, self.get_resolver()) dialog.show_dialog(on_response=on_response, text_input_overrides=text_input_overrides) return True yield
def _ui_metadata_gen(self): additional_information = self._get_additional_information() if additional_information and self.show_gardening_details(): additional_information.sort() object_info_names = [] object_info_descriptions = [] bullet_points = [] for (_, name, value) in additional_information: object_info_names.append(name) object_info_descriptions.append(value) bullet_point = LocalizationHelperTuning.get_name_value_pair( name, value) bullet_points.append(bullet_point) description = LocalizationHelperTuning.get_bulleted_list( None, *bullet_points) plant_name = LocalizationHelperTuning.get_object_name( self.owner.definition) else: object_info_names = None object_info_descriptions = None if GardeningTuning.is_spliced(self.owner): description = self._spliced_description plant_name = GardeningTuning.SPLICED_PLANT_NAME() else: if GardeningTuning.is_shoot( self.owner) and self.root_stock is not None: description = LocalizationHelperTuning.get_object_name( self.root_stock.main_spawner) else: description = LocalizationHelperTuning.get_object_description( self.owner.definition) plant_name = LocalizationHelperTuning.get_object_name( self.owner.definition) subtext = self.owner.get_state_strings() yield ('object_info_names', object_info_names) yield ('object_info_descriptions', object_info_descriptions) yield ('recipe_name', plant_name) yield ('recipe_description', description) if subtext is not None: yield ('subtext', subtext)
def _run_interaction_gen(self, timeline): target_name_component = self.target.name_component def on_response(dialog): if not dialog.accepted: return name = dialog.text_input_responses.get(self.TEXT_INPUT_NEW_NAME) description = dialog.text_input_responses.get(self.TEXT_INPUT_NEW_DESCRIPTION) target = self.target if target is not None: if name is not None: target.set_custom_name(name) if description is not None: target.set_custom_description(description) self._update_ui_metadata(target) sequence = self._build_outcome_sequence() services.time_service().sim_timeline.schedule(element_utils.build_element(sequence)) text_input_overrides = {} (template_name, template_description) = target_name_component.get_template_name_and_description() if target_name_component.allow_name: text_input_overrides[self.TEXT_INPUT_NEW_NAME] = None if self.target.has_custom_name(): text_input_overrides[self.TEXT_INPUT_NEW_NAME] = lambda *_, **__: LocalizationHelperTuning.get_object_name(self.target) elif template_name is not None: text_input_overrides[self.TEXT_INPUT_NEW_NAME] = template_name if target_name_component.allow_description: text_input_overrides[self.TEXT_INPUT_NEW_DESCRIPTION] = None if self.target.has_custom_description(): text_input_overrides[self.TEXT_INPUT_NEW_DESCRIPTION] = lambda *_, **__: LocalizationHelperTuning.get_object_description(self.target) elif template_description is not None: text_input_overrides[self.TEXT_INPUT_NEW_DESCRIPTION] = template_description dialog = self.rename_dialog(self.sim, self.get_resolver()) dialog.show_dialog(on_response=on_response, text_input_overrides=text_input_overrides) return True