Kerbal Space Program  1.12.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Properties | List of all members
KSP.UI.Screens.PartCategorizer Class Reference
Inheritance diagram for KSP.UI.Screens.PartCategorizer:
KSP.UI.Screens.BasePartCategorizer

Classes

class  Category
 
class  PopupData
 

Public Types

enum  ButtonType { ButtonType.FILTER = 0, ButtonType.CATEGORY = 1, ButtonType.SUBCATEGORY = 2 }
 
enum  SelectionGroup { SelectionGroup.FILTER = 0, SelectionGroup.CATEGORY = 1 }
 

Public Member Functions

void AddPartToCustomCategoryViaPopup (AvailablePart part)
 Called from EditorPartIcon (in normal part categories) to add a part -> spawns popup More...
 
void AddSubassemblyToSelectedCategory (string st)
 Called from subassembly drop zone to add a part to a custom subassembly subcategory More...
 
void FocusSearchField ()
 
void RemovePartFromCategory (AvailablePart part)
 Called from EditorPartIcon (in custom categories) to remove a part More...
 
void RemoveSubassemblyFromSelectedCategory (string st, bool refresh)
 Called from EditorSubassemblyItem to remove a subassembly from the selected category More...
 
bool SelectedSubassemblyIsCustom ()
 
void SetAdvancedMode ()
 
void SetSimpleMode ()
 
void ShowPopup (PopupData popupData, Callback onAccept, PartCategorizerPopup.CriteriaAccept onAcceptCriteria, Callback onDelete, PartCategorizerPopup.CriteriaDelete onDeleteCriteria)
 
void ShowPopupAddPart (string partName, string partTitle, Callback< string, PartCategorizer.Category > onAccept, PartCategorizerPopupAddPart.CriteriaAccept onAcceptCriteria)
 
void UpdateCategoryNameLabel ()
 

Static Public Member Functions

static Category AddCustomFilter (string filterName, string filterdisplayName, Icon icon, Color colorButton)
 Adds a filter to the "left side" toolbar list. More...
 
static Category AddCustomSubcategoryFilter (Category mainFilter, string subFilterName, string subFilterdisplayName, Icon icon, Func< AvailablePart, bool > exclusionFilter)
 Adds a filter subcategory to the given filter which will appear on the right side of the toolbar More...
 
static PartCategorizerButton InstantiatePartCategorizerButton (string categoryName, string categorydisplayName, Icon icon, Color colorButton, Color colorIcon, bool last=false)
 
static void SetPanel_FunctionAero ()
 
static void SetPanel_FunctionCargo ()
 
static void SetPanel_FunctionCommunication ()
 
static void SetPanel_FunctionControl ()
 
static void SetPanel_FunctionCoupling ()
 
static void SetPanel_FunctionElectrical ()
 
static void SetPanel_FunctionEngine ()
 
static void SetPanel_FunctionFuelTank ()
 
static void SetPanel_FunctionGround ()
 
static void SetPanel_FunctionPayload ()
 
static void SetPanel_FunctionPods ()
 
static void SetPanel_FunctionRobotics ()
 
static void SetPanel_FunctionScience ()
 
static void SetPanel_FunctionStructural ()
 
static void SetPanel_FunctionThermal ()
 
static void SetPanel_FunctionUtility ()
 
- Static Public Member Functions inherited from KSP.UI.Screens.BasePartCategorizer
static string GeneratePartAutoTags (AvailablePart p)
 
static string[] SearchTagSplit (string terms)
 

Public Attributes

Button arrowLeft
 
Button arrowRight
 
UIRadioButton btnSearch
 
PartListCategories.BulkheadProfile[] BulkheadProfiles
 
PartCategorizerButton buttonPrefab
 
List< Categorycategories = new List<Category>()
 
Color colorCategory = new Color(0.878f, 0.831f, 0.792f, 1)
 
Color colorFilterManufacturer = new Color(1, 1, 1, 1)
 
Color colorFilterModule = new Color(0.76f, 0.682f, 0.922f, 1)
 
Color colorFilterProfile = new Color(0.537f, 0.71f, 1, 1)
 
Color colorFilterResource = new Color(1, 0.859f, 0.506f, 1)
 
Color colorFilterTech = new Color(0.537f, 0.71f, 1, 1)
 
Color colorSubassembly = new Color(0.553f, 1, 0.737f, 1)
 
Color colorVariants = new Color(0.551f, 0.923f, 1, 1)
 
EditorPartList editorPartList
 
EditorPartListFilter
< AvailablePart
filterGenericNothing = new EditorPartListFilter<AvailablePart>("FilterGenericNothing", p => false, "")
 
List< Categoryfilters = new List<Category>()
 
TMPro.TextMeshProUGUI labelCategoryName
 
PartCategorizerPopupAddPart popupAddPartPrefab
 
RectTransform popupArea
 
PartCategorizerPopup popupPrefab
 
UIList scrollListMain
 
Category subcategoryFunctionAero
 
Category subcategoryFunctionCargo
 
Category subcategoryFunctionCommunication
 
Category subcategoryFunctionControl
 
Category subcategoryFunctionCoupling
 
Category subcategoryFunctionElectrical
 
Category subcategoryFunctionEngine
 
Category subcategoryFunctionFuelTank
 
Category subcategoryFunctionGround
 
Category subcategoryFunctionPayload
 
Category subcategoryFunctionPods
 
Category subcategoryFunctionRobotics
 
Category subcategoryFunctionScience
 
Category subcategoryFunctionStructural
 
Category subcategoryFunctionThermal
 
Category subcategoryFunctionUtility
 
PartListCategories.TechTier[] TechTierCategories
 
- Public Attributes inherited from KSP.UI.Screens.BasePartCategorizer
Color colorFilterFunction = new Color(0.604f, 0.784f, 0.878f, 1)
 
Color colorIcons = new Color(1, 1, 1, 0.7f)
 
IconLoader iconLoader
 
UIList scrollListSub
 
TMPro.TMP_InputField searchField
 
float searchKeystrokeDelay = 0.25f
 

Static Public Attributes

static bool alwaysShowCargoTab = false
 Set true to always show the Cargo parts tab in the toolbox regardless if any cargo parts were loaded. More...
 
static PartCategorizer Instance
 
static bool Ready
 

Protected Member Functions

override void SearchField_OnClick (PointerEventData eventData)
 
override void SearchField_OnEndEdit (string s)
 
override void SearchFilterResult (EditorPartListFilter< AvailablePart > filter)
 
override IEnumerator SearchRoutine ()
 
override void SearchStop ()
 
- Protected Member Functions inherited from KSP.UI.Screens.BasePartCategorizer
bool PartMatchesSearch (AvailablePart part, string[] terms)
 
virtual void SearchField_OnValueChange (string s)
 
virtual void SearchStart ()
 
MatchType TagMatchType (ref string tag)
 
bool TermMatchesTag (string term, string tag)
 

Properties

bool HasCustomCategories [get]
 
bool IsTransitioning [get, set]
 

Additional Inherited Members

- Protected Types inherited from KSP.UI.Screens.BasePartCategorizer
enum  MatchType {
  MatchType.NONE, MatchType.EQUALS_ONLY, MatchType.TERM_STARTS_WITH_TAG, MatchType.TERM_ENDS_WITH_TAG,
  MatchType.TAG_STARTS_WITH_TERM, MatchType.TAG_ENDS_WITH_TERM, MatchType.EITHER_STARTS_WITH_EITHER, MatchType.EITHER_ENDS_WITH_EITHER,
  MatchType.TERM_CONTAINS_TAG, MatchType.TAG_CONTAINS_TERM, MatchType.EITHER_CONTAINS_EITHER
}
 
- Protected Attributes inherited from KSP.UI.Screens.BasePartCategorizer
EditorPartListFilter
< AvailablePart
filterAero = new EditorPartListFilter<AvailablePart>("Function_Aero", p => p.category == PartCategories.Aero, "")
 
EditorPartListFilter
< AvailablePart
filterCargo = new EditorPartListFilter<AvailablePart>("Function_Cargo", p => p.category == PartCategories.Cargo, "")
 
EditorPartListFilter
< AvailablePart
filterCommunication = new EditorPartListFilter<AvailablePart>("Function_Communication", p => p.category == PartCategories.Communication, "")
 
EditorPartListFilter
< AvailablePart
filterControl = new EditorPartListFilter<AvailablePart>("Function_Control", p => p.category == PartCategories.Control, "")
 
EditorPartListFilter
< AvailablePart
filterCoupling = new EditorPartListFilter<AvailablePart>("Function_Coupling", p => p.category == PartCategories.Coupling, "")
 
EditorPartListFilter
< AvailablePart
filterElectrical = new EditorPartListFilter<AvailablePart>("Function_Electrical", p => p.category == PartCategories.Electrical, "")
 
EditorPartListFilter
< AvailablePart
filterEngine = new EditorPartListFilter<AvailablePart>("Function_Engine", p => p.category == PartCategories.Engine || (p.category == PartCategories.Propulsion && p.moduleInfos.Exists(q => q.moduleName == "Engine")), "")
 
EditorPartListFilter
< AvailablePart
filterFuelTank = new EditorPartListFilter<AvailablePart>("Function_FuelTank", p => p.category == PartCategories.FuelTank || (p.category == PartCategories.Propulsion && !p.moduleInfos.Exists(q => q.moduleName == "Engine")), "")
 
EditorPartListFilter
< AvailablePart
filterGround = new EditorPartListFilter<AvailablePart>("Function_Ground", p => p.category == PartCategories.Ground, "")
 
EditorPartListFilter
< AvailablePart
filterPayload = new EditorPartListFilter<AvailablePart>("Function_Payload", p => p.category == PartCategories.Payload, "")
 
EditorPartListFilter
< AvailablePart
filterPods = new EditorPartListFilter<AvailablePart>("Function_Pods", p => p.category == PartCategories.Pods, "")
 
EditorPartListFilter
< AvailablePart
filterRobotics = new EditorPartListFilter<AvailablePart>("Function_Robotics", p => p.category == PartCategories.Robotics, "")
 
EditorPartListFilter
< AvailablePart
filterScience = new EditorPartListFilter<AvailablePart>("Function_Science", p => p.category == PartCategories.Science, "")
 
EditorPartListFilter
< AvailablePart
filterStructural = new EditorPartListFilter<AvailablePart>("Function_Structural", p => p.category == PartCategories.Structural, "")
 
EditorPartListFilter
< AvailablePart
filterThermal = new EditorPartListFilter<AvailablePart>("Function_Thermal", p => p.category == PartCategories.Thermal, "")
 
EditorPartListFilter
< AvailablePart
filterUtility = new EditorPartListFilter<AvailablePart>("Function_Utility", p => p.category == PartCategories.Utility, "")
 
GameObject iconLoaderPrefab
 
Image searchFieldBackground
 
PointerClickHandler searchFieldClickHandler
 
Coroutine searchRoutine
 
float searchTimer = 0f
 
- Static Protected Attributes inherited from KSP.UI.Screens.BasePartCategorizer
static string[] cargoTag = { "cargo" }
 
static string[] mannedTags = { "(crew", "(mann", "kerbal" }
 
static string[] radialTag = { "radial" }
 
static string[] size0Tags = { "0.625", ")mini", "small", "tiny", "little", "micro" }
 
static string[] size1p5Tags = { "1.875", "FL-TX", "regular", "standard", "average", "medium" }
 
static string[] size1Tags = { "1.25", "FL-T", "regular", "standard", "average", "medium" }
 
static string[] size2Tags = { "2.5", "huge", "jumbo", "large", "big" }
 
static string[] size3Tags = { "3.75", "enormous", "massive", "gigantic", "giant" }
 
static string[] size4Tags = { "5", "enormous", "massive", "gigantic", "giant" }
 
static string[] srfTags = { "surface", "attach" }
 
static string[] unmannedTags = { "(uncrew", "(unmann" }
 
static string[] xfeedTags = { "cross", "feed" }
 

Member Enumeration Documentation

enum KSP.UI.Screens.PartCategorizer.ButtonType
Enumerator
FILTER 
CATEGORY 
SUBCATEGORY 
enum KSP.UI.Screens.PartCategorizer.SelectionGroup
Enumerator
FILTER 
CATEGORY 

Member Function Documentation

static Category KSP.UI.Screens.PartCategorizer.AddCustomFilter ( string  filterName,
string  filterdisplayName,
Icon  icon,
Color  colorButton 
)
inlinestatic

Adds a filter to the "left side" toolbar list.

Parameters
filterNameThe name of the filter
filterdisplayNameThe name of the filter which will appear on the tooltip
iconThe icon for the button
colorButtonThe color of the button
Returns
A reference to the Category wrapper
static Category KSP.UI.Screens.PartCategorizer.AddCustomSubcategoryFilter ( Category  mainFilter,
string  subFilterName,
string  subFilterdisplayName,
Icon  icon,
Func< AvailablePart, bool >  exclusionFilter 
)
inlinestatic

Adds a filter subcategory to the given filter which will appear on the right side of the toolbar

Parameters
mainFilterThe filter (Category) you are adding this filter to
subFilterNameThe name of the filter
subfilterdisplayNameThe name of the filter which will appear on the tooltip
iconThe icon for the button
exclusionFilterLambda expression which specifies which parts to show when this filter is active
Returns
A reference to the Category wrapper
void KSP.UI.Screens.PartCategorizer.AddPartToCustomCategoryViaPopup ( AvailablePart  part)
inline

Called from EditorPartIcon (in normal part categories) to add a part -> spawns popup

Parameters
part
void KSP.UI.Screens.PartCategorizer.AddSubassemblyToSelectedCategory ( string  st)
inline

Called from subassembly drop zone to add a part to a custom subassembly subcategory

Parameters
st
void KSP.UI.Screens.PartCategorizer.FocusSearchField ( )
inline
static PartCategorizerButton KSP.UI.Screens.PartCategorizer.InstantiatePartCategorizerButton ( string  categoryName,
string  categorydisplayName,
Icon  icon,
Color  colorButton,
Color  colorIcon,
bool  last = false 
)
inlinestatic

< (UnityEngine.Object.Instantiate(PartCategorizer.Instance.buttonPrefab) as GameObject).GetComponent<PartCategorizerButton>();

void KSP.UI.Screens.PartCategorizer.RemovePartFromCategory ( AvailablePart  part)
inline

Called from EditorPartIcon (in custom categories) to remove a part

Parameters
part
void KSP.UI.Screens.PartCategorizer.RemoveSubassemblyFromSelectedCategory ( string  st,
bool  refresh 
)
inline

Called from EditorSubassemblyItem to remove a subassembly from the selected category

Parameters
st
refresh
override void KSP.UI.Screens.PartCategorizer.SearchField_OnClick ( PointerEventData  eventData)
inlineprotectedvirtual
override void KSP.UI.Screens.PartCategorizer.SearchField_OnEndEdit ( string  s)
inlineprotectedvirtual
override void KSP.UI.Screens.PartCategorizer.SearchFilterResult ( EditorPartListFilter< AvailablePart filter)
inlineprotectedvirtual
override IEnumerator KSP.UI.Screens.PartCategorizer.SearchRoutine ( )
inlineprotectedvirtual
override void KSP.UI.Screens.PartCategorizer.SearchStop ( )
inlineprotectedvirtual
bool KSP.UI.Screens.PartCategorizer.SelectedSubassemblyIsCustom ( )
inline
void KSP.UI.Screens.PartCategorizer.SetAdvancedMode ( )
inline
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionAero ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionCargo ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionCommunication ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionControl ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionCoupling ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionElectrical ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionEngine ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionFuelTank ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionGround ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionPayload ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionPods ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionRobotics ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionScience ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionStructural ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionThermal ( )
inlinestatic
static void KSP.UI.Screens.PartCategorizer.SetPanel_FunctionUtility ( )
inlinestatic
void KSP.UI.Screens.PartCategorizer.SetSimpleMode ( )
inline
void KSP.UI.Screens.PartCategorizer.ShowPopup ( PopupData  popupData,
Callback  onAccept,
PartCategorizerPopup.CriteriaAccept  onAcceptCriteria,
Callback  onDelete,
PartCategorizerPopup.CriteriaDelete  onDeleteCriteria 
)
inline
void KSP.UI.Screens.PartCategorizer.ShowPopupAddPart ( string  partName,
string  partTitle,
Callback< string, PartCategorizer.Category onAccept,
PartCategorizerPopupAddPart.CriteriaAccept  onAcceptCriteria 
)
inline
void KSP.UI.Screens.PartCategorizer.UpdateCategoryNameLabel ( )
inline

Member Data Documentation

bool KSP.UI.Screens.PartCategorizer.alwaysShowCargoTab = false
static

Set true to always show the Cargo parts tab in the toolbox regardless if any cargo parts were loaded.

Button KSP.UI.Screens.PartCategorizer.arrowLeft
Button KSP.UI.Screens.PartCategorizer.arrowRight
UIRadioButton KSP.UI.Screens.PartCategorizer.btnSearch
PartListCategories.BulkheadProfile [] KSP.UI.Screens.PartCategorizer.BulkheadProfiles
PartCategorizerButton KSP.UI.Screens.PartCategorizer.buttonPrefab
List<Category> KSP.UI.Screens.PartCategorizer.categories = new List<Category>()
Color KSP.UI.Screens.PartCategorizer.colorCategory = new Color(0.878f, 0.831f, 0.792f, 1)
Color KSP.UI.Screens.PartCategorizer.colorFilterManufacturer = new Color(1, 1, 1, 1)
Color KSP.UI.Screens.PartCategorizer.colorFilterModule = new Color(0.76f, 0.682f, 0.922f, 1)
Color KSP.UI.Screens.PartCategorizer.colorFilterProfile = new Color(0.537f, 0.71f, 1, 1)
Color KSP.UI.Screens.PartCategorizer.colorFilterResource = new Color(1, 0.859f, 0.506f, 1)
Color KSP.UI.Screens.PartCategorizer.colorFilterTech = new Color(0.537f, 0.71f, 1, 1)
Color KSP.UI.Screens.PartCategorizer.colorSubassembly = new Color(0.553f, 1, 0.737f, 1)
Color KSP.UI.Screens.PartCategorizer.colorVariants = new Color(0.551f, 0.923f, 1, 1)
EditorPartList KSP.UI.Screens.PartCategorizer.editorPartList
EditorPartListFilter<AvailablePart> KSP.UI.Screens.PartCategorizer.filterGenericNothing = new EditorPartListFilter<AvailablePart>("FilterGenericNothing", p => false, "")
List<Category> KSP.UI.Screens.PartCategorizer.filters = new List<Category>()
PartCategorizer KSP.UI.Screens.PartCategorizer.Instance
static
TMPro.TextMeshProUGUI KSP.UI.Screens.PartCategorizer.labelCategoryName
PartCategorizerPopupAddPart KSP.UI.Screens.PartCategorizer.popupAddPartPrefab
RectTransform KSP.UI.Screens.PartCategorizer.popupArea
PartCategorizerPopup KSP.UI.Screens.PartCategorizer.popupPrefab
bool KSP.UI.Screens.PartCategorizer.Ready
static
UIList KSP.UI.Screens.PartCategorizer.scrollListMain
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionAero
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionCargo
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionCommunication
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionControl
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionCoupling
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionElectrical
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionEngine
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionFuelTank
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionGround
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionPayload
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionPods
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionRobotics
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionScience
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionStructural
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionThermal
Category KSP.UI.Screens.PartCategorizer.subcategoryFunctionUtility
PartListCategories.TechTier [] KSP.UI.Screens.PartCategorizer.TechTierCategories

Property Documentation

bool KSP.UI.Screens.PartCategorizer.HasCustomCategories
get
bool KSP.UI.Screens.PartCategorizer.IsTransitioning
getset

The documentation for this class was generated from the following file: