bspkrs icon

New Forge Configuration Stuff

bspkrs | PRO | 07/15/14 03:43:49 PM UTC | 0 ⭐ | 516 👁️ | Never ⏰ | []
text |

8.92 KB

|

None

|

0 👍

/

0 👎

Property class - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setArrayEntryClass(java.lang.Class)
~ used to set the IArrayEntry class that will be used for an array property's array editing screen
~ could be useful for stuff like an array of strings that represent itemstacks, and so could have separate text fields for each portion of the itemstack
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setConfigEntryClass(java.lang.Class)
	~ used to set the IConfigEntry class that will be used for this property's slot on the config GUI
	~ this is useful if the modder wants to extend functionality of a provided entry class or implement a completely new entry class
	~ could be used to do things like replace the default numeric controls with the non-default slider control https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/cpw/mods/fml/client/config/GuiConfigEntries.NumberSliderEntry.html
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setIsListLengthFixed(boolean)
	~ only relevant to array properties
	~ sets whether the array length is fixed or not (the fixed length is determined by the length of the default or read array, or by the setMaxListLength method if used)
	~ when this method is called with a value of true the array editing gui will not show the buttons that allow adding new entry rows
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setMaxListLength(int)
	~ only relevant to array properties
	~ sets the max length of this array property (by default arrays do not have a max length)
	~ when this method is called the stored array will be resized if it is larger than the max value, or if getIsFixedLength() == true and the list size differs from the max size defined
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setLanguageKey(java.lang.String)
	~ everyone should use this so that their GUIs can be localized by users if desired and the GUIs have nice pretty names
	~ the key defined here is used for both the property display name and the text of the property tooltip
	~ if the key given is "mymod.config.myprop" the tooltip key expected is "mymod.config.myprop.tooltip"
	~ the language translation methods use the vanilla .lang files
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setRequiresMcRestart(boolean)
	~ sets the flag indicating that changing this property requires MC to be restarted to take effect
	~ when users modify the value of a property that has this flag set a message will be shown upon saving (when the Done button is pressed on the top-level config GUI)
	~ this flag also prevents a property from being edited while a world is currently running
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setRequiresWorldRestart(boolean)
	~ sets the flag indicating that this property should not be changed while a world is currently running
	~ when a world is running properties with this flag set will be disabled
	~ if setRequiresMcRestart(boolean) is used it is not necessary to separately call this method
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setShowInGui(boolean)
	~ sets the flag for whether or not to show this property on a config GUI (default is true)
	~ Lex asked me to add this, and it is used for one or two settings in the Forge config, but most people will probably not need to use this
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setValidationPattern(java.util.regex.Pattern)
	~ sets a Regex validation pattern object that will be used for String properties that allow keyboard input
	~ useful for String properties that require input in a certain format in order to be parsed correctly
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Property.html#setValidValues(java.lang.String[])
	~ when set for a String property the control will be a value cycling button rather than a text box
	~ useful for properties that have a limited number of strings that are valid (such as choosing a display orientation or a world type)
  ConfigCategory class - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setConfigEntryClass(java.lang.Class)
	~ used to set the IConfigEntry class that will be used for this category's slot on the config GUI
	~ this is useful if the modder wants to extend functionality of a provided entry class or implement a completely new entry class
	~ could be used to extend the CategoryEntryClass so that the list of child screen entries can be altered (such as adding custom controls)
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setLanguageKey(java.lang.String)
	~ everyone should use this so that their GUIs can be localized by users if desired and the GUIs have nice pretty names
	~ the key defined here is used for both the category display name and the text of the category tooltip
	~ if the key given is "mymod.config.myctgy" the tooltip key expected is "mymod.config.myctgy.tooltip"
	~ the language translation methods use the vanilla .lang files
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setPropertyOrder(java.util.List)
	~ used to define the order that child properties will be displayed on GUIs and written to the .cfg file
	~ provides an easy way to group together properties that make sense to be near each other if sub-categories would be overkill
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setRequiresMcRestart(boolean)
	~ basically is a faster way to flag all child properties as requiring an MC restart to take effect
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setRequiresWorldRestart(boolean)
	~ basically is a faster way to flag all child properties as unable to be edited while a world is running
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigCategory.html#setShowInGui(boolean)
	~ defaults to true
	~ gives a way to hide categories that are provided as a template for users to copy and modify when using the file config
  Configuration class - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#Configuration(java.io.File,%20java.lang.String)
	~ Configuration objects are now able to be versioned!
	~ this gives modders a way to check the version of a config file and either completely replace it or update it as needed via https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#getLoadedConfigVersion()
 - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#setCategoryConfigEntryClass(java.lang.String,%20java.lang.Class)
- https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#setCategoryLanguageKey(java.lang.String,%20java.lang.String)
- https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#setCategoryRequiresMcRestart(java.lang.String,%20boolean)
- https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#setCategoryRequiresWorldRestart(java.lang.String,%20boolean)
	~ convenience methods for setting GUI-related fields on a category similar to https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/Configuration.html#addCustomCategoryComment(java.lang.String,%20java.lang.String)
  ConfigElement class - https://dl.dropboxusercontent.com/u/20748481/Minecraft/ForgeJD/net/minecraftforge/common/config/ConfigElement.html
 - this is a completely new class that implements IConfigElement, the interface that allows the config GUI screens to read from config objects and save back to them
- might be useful to just highlight it as the bridge between Forge config classes and the FML GUI stuff

Comments