"""Tooltips for the UI."""

from rizomuvbridge_ultimate import constants

TOOLTIPS = {
    "rizom_path": "Path to the Rizom executable",
    "data_path": "Path to the user data directory where the addon stores intermediary files",
    "addon_tab_name": "Name of the tab the addon UI docks under",
    "livelink_allowed": "Internal property used to block access to livelink, not user facing",
    "attempt_livelink": "Attempt to use the RizomUVLink module for connecting to RizomUV",
    "remote_actions": "RizomUV script presets that can be executed remotely from Blender",
    "export_actions": "RizomUV script presets which can be automatically executed upon export",
    "confirm_export": (
        "Show a confirmation dialog before running the export operator, avoiding accidental "
        "overwrites"
    ),
    "apply_modifiers": "Apply any modifiers objects have when they are exported",
    "apply_to_all_uvmaps_action": (
        "Apply RizomUV script preset to all UV maps rather than just the selected one"
    ),
    "exclude_clones": "Do not export multiple instances of the same object (shared data blocks)",
    "export_format": "The file format to export or load",
    "apply_rizom_settings": "Sync the RizomUV settings with those set in the addon UI",
    "mark_seams": "Mark seams using the UV island boundaries",
    "mark_sharp": "Mark sharp edges using the UV island boundaries",
    "replace_objects": (
        "Delete the original objects and replace them with the ones imported from RizomUV, "
        "rather than just transfer UV data"
    ),
    "reveal_hidden": "If any imported objects are hidden, reveal them in the viewport",
    "delete_uvsets": (
        "If there are any UV sets on your Blender objects not present in RizomUV, delete them"
    ),
    "add_uvsets": (
        "If there are any UV sets not present on your Blender objects that exist in RizomUV, "
        "create them"
    ),
    "triangulate": "Triangulate your objects before export",
    "fix_names": (
        "If any objects have names using characters that cause problems with OBJ/USD format, "
        "automatically rename them so they can be exported"
    ),
    "margin": "The empty space left on the UV tiles edge",
    "padding": "The empty space left between UV islands",
    "map_res": "The horizontal resolution of the texture map",
    "td_unit": "The texel density display unit",
    "td_target": "Target texel density",
    "prevent_overlaps": (
        "When active, Unfold and Optimize avoid creation of self border intersections. PLEASE "
        "NOTE: This can significantly increase the unwrapping or optimizing calculation time"
    ),
    "prevent_flips": (
        "When set to active, running Unfold and Optimize avoid the creation of triangle flips. "
        "PLEASE NOTE: This can significantly increase the unwrapping or optimizing calculation time"
    ),
    "fill_holes": (
        "When active, Unfold and Optimize fill the mesh's gaps by adding invisible, temporary "
        "polygons to the model, so when an unwrap or optimize occurs, it prevents the hole from "
        "collapsing on various types of unwraps. Use this on eyes, mouths, nostrils, clothing and "
        "hard edge openings like the gap on top of a tank or non-square windows"
    ),
    "accuracy": "Packing algorithm accuracy, high values take longer to compute",
    "iterations": "Maximum number of trials to find the best solution",
    "orientation": "Reorient islands before packing",
    "step_angle": "Step angle for finding the best packing orientation",
    "weld_before_autoseams": "Weld all UV seams before running autoseams preset",
    "stretch_quality": "High values give less stretching but more islands",
    "link_gaps": "Cut links between gaps",
    "cut_handles": "Cut handles",
    "open_cylinders": "Cut the caps of cylinders and one cap's link",
    "sharp_angle": (
        "Edges that have their polygons' normals with a greater angle than this will be cut"
    ),
    "mosaic_force": "Higher values will lead to more segments",
    "pelt_trunk": "Cut trunk sections",
    "pelt_branch": "Cut branch sections",
    "pelt_leaf": "Cut leaf sections",
    "texture_path": (
        "Path to a texture file which will be automatically "
        "displayed on your objects inside Rizom.\n"
        f"Accepted formats: {', '.join(constants.TEXTURE_FORMATS)}"
    ),
    "use_seams": "Use Blender seams to unwrap before sending to RizomUV",
}
