-
Notifications
You must be signed in to change notification settings - Fork 8
Home
To include a preset with your mod, save a preset in-game with the layout set up to include your mod's features and copy it from your Config\RimHUD\Presets to your mod's RimHUD\Presets folder. This will be automatically detected and added to RimHUD's built-in presets.
There are 5 types of custom widgets available for third-party mods as of RimHUD v1.14.0.
-
RimHUD.CustomNeedDefthis is a simple wrapper for a need bar that allows for a tooltip -
RimHUD.CustomBarDefprovides parameters to create a standard bar widget -
RimHUD.CustomValueDefprovides parameters to create a standard value widget -
RimHUD.CustomSelectorDefprovides parameters to create a standard selector widget -
RimHUD.CustomWidgetDefallows a completely custom drawn widget
All defs must provide an apiVersion field. The latest version is currently 1. Add the defs to your mod's Defs folder to have them integrate with RimHUD.
<RimHUD.CustomNeedDef>
<defName>StressWidget</defName>
<label>Stress</label>
<needDef>Stress</needDef>
<colorStyle>MainToLow</colorStyle>
<defClass>MyMod.MyStressWidget</defClass>
<apiVersion>1</apiVersion>
</RimHUD.CustomNeedDef>The unique ID for this widget.
A human-readable label for the widget. If omitted, the defName will be used instead.
The defName of the NeedDef being wrapped.
There are currently 4 styles:
-
LowToMain: This is the default and will be used if this field is omitted -
LowOnly: The bar color will be only the low color (red by default) -
MainOnly: The bar color will be only the main color (green by default) -
MainToLow: The bar color will be the main color when the value is low, and change to the low color when full
This is a link to a static class within your mod which contains the following static methods:
This will be called when the user hovers over the widget and will provide the text for the tooltip.
<RimHUD.CustomBarDef>
<defName>MyBarWidget</defName>
<label>My Bar</label>
<textStyle>Small</textStyle>
<colorStyle>MainToLow</colorStyle>
<defClass>MyMod.MyBarWidget</defClass>
<apiVersion>1</apiVersion>
</RimHUD.CustomBarDef>The unique ID for this widget.
A human-readable label for the widget. If omitted, the defName will be used instead.
This is the size of the text for this widget. Available styles are:
-
Regular(default for Bar widget) LargeSmall
There are currently 4 styles:
-
LowToMain: This is the default and will be used if this field is omitted -
LowOnly: The bar color will be only the low color (red by default) -
MainOnly: The bar color will be only the main color (green by default) -
MainToLow: The bar color will be the main color when the value is low, and change to the low color when full
This is a link to a static class within your mod which contains the following static methods:
public static (string? label, string? value, float fill, float[]? thresholds, Func<string?>? tooltip, Action? onHover, Action? onClick) GetParameters(Pawn pawn)
This will be called when the widget will be built and provide the parameters needed to display it correctly.
-
labelis the label to the left of the bar -
valueis the value shown as a string. This is commonly a percentage string of the actual value -
fillis how full the bar is (0 to 1) -
thresholdsshow thresholds on the bar if required -
tooltipprovides a tooltip if required -
onHoverwill be performed when the user hovers over the widget -
onClickwill be performed when the user clicks on the widget
<RimHUD.CustomValueDef>
<defName>MyValueWidget</defName>
<label>My Value</label>
<textStyle>Regular</textStyle>
<defClass>MyMod.MyValueWidget</defClass>
<apiVersion>1</apiVersion>
</RimHUD.CustomValueDef>The unique ID for this widget.
A human-readable label for the widget. If omitted, the defName will be used instead.
This is the size of the text for this widget. Available styles are:
RegularLarge-
Small(default for Value widget)
This is a link to a static class within your mod which contains the following static methods:
public static (string? label, string? value, Func<string?>? tooltip, Action? onHover, Action? onClick) GetParameters(Pawn pawn)
This will be called when the widget will be built and provide the parameters needed to display it correctly.
-
labelcan be null if only a value is required -
valueis text value shown -
tooltipprovides a tooltip if required -
onHoverwill be performed when the user hovers over the widget -
onClickwill be performed when the user clicks on the widget
<RimHUD.CustomSelectorDef>
<defName>MySelector</defName>
<label>My Selector</label>
<textStyle>Regular</textStyle>
<defClass>MyMod.MySelectorWidget</defClass>
<apiVersion>1</apiVersion>
</RimHUD.CustomSelectorDef>The unique ID for this widget.
A human-readable label for the widget. If omitted, the defName will be used instead.
This is the size of the text for this widget. Available styles are:
RegularLarge-
Small(default for Selector widget)
This is a link to a static class within your mod which contains the following static methods:
public static (string? label, Func<string?>? tooltip, Action? onClick, Action? onHover, Color? backColor) GetParameters(Pawn pawn)
This will be called when the widget will be built and provide the parameters needed to display it correctly.
-
labelthe label shown on the selector -
tooltipprovides a tooltip if required -
onHoverwill be performed when the user hovers over the widget -
onClickwill be performed when the user clicks on the widget
<RimHUD.CustomWidgetDef>
<defName>MyCustomWidget</defName>
<label>My Custom</label>
<defClass>MyMod.MyCustomWidget</defClass>
<apiVersion>1</apiVersion>
</RimHUD.CustomWidgetDef>The unique ID for this widget.
A human-readable label for the widget. If omitted, the defName will be used instead.
This is a link to a static class within your mod which contains the following static methods:
This will be called when the widget is ready to be drawn. The bool returned should report whether the widget was drawn (and the space used) or not.
This expects a value of the height the widget takes at its maximum. Generally this is the line height of the text.