001package com.fs.starfarer.api.campaign.econ;
002
003import com.fs.starfarer.api.campaign.CargoStackAPI;
004import com.fs.starfarer.api.campaign.SpecialItemData;
005import com.fs.starfarer.api.ui.TooltipMakerAPI;
006
007public interface InstallableIndustryItemPlugin {
008
009        public static enum InstallableItemDescriptionMode {
010                INDUSTRY_TOOLTIP,
011                INDUSTRY_MENU_TOOLTIP,
012                MANAGE_ITEM_DIALOG_LIST,
013                MANAGE_ITEM_DIALOG_INSTALLED,
014                CARGO_TOOLTIP,
015        }
016        
017        public SpecialItemData getCurrentlyInstalledItemData();
018        public void setCurrentlyInstalledItemData(SpecialItemData data);
019
020        public void addItemDescription(TooltipMakerAPI text, SpecialItemData data,
021                                                                   InstallableItemDescriptionMode mode);
022
023        public String getUninstallButtonText();
024        public String getMenuItemTitle();
025        
026        public String getNoItemCurrentlyInstalledText();
027        public String getSelectItemToAssignToIndustryText();
028        public String getNoItemsAvailableText();
029        public String getNoItemsAvailableTextRemote();
030
031        public boolean isInstallableItem(CargoStackAPI stack);
032
033        public String getSelectedItemInDialogSoundId(SpecialItemData data);
034        public void createMenuItemTooltip(TooltipMakerAPI tooltip, boolean expanded);
035        public boolean isMenuItemTooltipExpandable();
036        public boolean hasMenuItemTooltip();
037        public float getMenuItemTooltipWidth();
038        public boolean isMenuItemEnabled();
039
040        
041        boolean canBeInstalled(SpecialItemData data);
042
043}