Line 1,128: |
Line 1,128: |
| |} | | |} |
| | | |
− | ==Clothing== | + | ==Pants== |
− | Clothing consists of cosmetic items that can be equipped in the player's [[Tailoring|pants and shirt]] slots.
| |
| | | |
− | They have their data in <samp>Data/ClothingInformation</samp>, their in-game sprites in <samp>Characters/Farmer/pants</samp> & <samp>Characters/Farmer/shirts</samp>, and their code in <samp>StardewValley.Objects.Clothing</samp>.
| + | You can now create/edit [[Tailoring#Pants|pants]] by editing the new <samp>Data/Pants</samp> asset, which replaces <samp>Data/clothingInformation</samp>. This consists of a string → model lookup, where... |
| + | * The key is the unqualified [[#Custom items|item ID]]. |
| + | * The value is a model with the fields listed below. |
| | | |
| ===Data format=== | | ===Data format=== |
− | The clothing data in <samp>Data/ClothingInformation</samp> consists of an integer→string dictionary with entries like this:
| |
| | | |
− | <syntaxhighlight lang="json">
| + | ====Basic pants data==== |
− | "1282": "Tomato Shirt/Tomato Shirt/A shirt that answers the big question: 'Tomatoes are'... (but the rest is smudged)./282/-1/50/255 0 0/false/Shirt/Sleeveless"
| + | {| class="wikitable" |
− | </syntaxhighlight> | + | |- |
| + | ! field |
| + | ! purpose |
| + | |- |
| + | | <samp>Name</samp> |
| + | | ''(Optional)'' The internal name for the item. Default <samp>Pants</samp>. |
| + | |- |
| + | | <samp>DisplayName</samp><br /><samp>Description</samp> |
| + | | ''(Optional)'' A [[Modding:Tokenizable strings|tokenizable string]] for the item's in-game display name and description. Defaults to the generic pants text (''Pants'' and ''A wearable pair of pants''). |
| + | |- |
| + | | <samp>Price</samp> |
| + | | ''(Optional)'' The default price when the item is sold to the player in a shop. Default 50. |
| + | |} |
| | | |
− | For each entry in the data asset, the key is the item's <samp>ParentSheetIndex</samp> (offset by 1000 for shirts) and the value is a slash-delimited string with these fields:
| + | ====Appearance==== |
| + | {| class="wikitable" |
| + | |- |
| + | ! field |
| + | ! purpose |
| + | |- |
| + | | <samp>Texture</samp> |
| + | | The asset name for the texture containing the pants' sprite. Defaults to <samp>Characters/Farmer/pants</samp>. |
| + | |- |
| + | | <samp>SpriteIndex</samp> |
| + | | The pants' sprite index within the <samp>Texture</samp>, where 0 is the top-left set. |
| + | |- |
| + | | <samp>DefaultColor</samp> |
| + | | ''(Optional)'' The dye color to apply to the sprite when the player hasn't [[dyeing|dyed]] it yet, if any. See [[#Color fields|color format]]. Default <samp>255 235 203</samp> (which matches the color of the cloth item). |
| + | |- |
| + | | <samp>CanBeDyed</samp> |
| + | | ''(Optional)'' Whether the player can [[dyeing|dye]] these pants. Default false. |
| + | |- |
| + | | <samp>IsPrismatic</samp> |
| + | | ''(Optional)'' Whether the pants continuously shift colors. This overrides <samp>DefaultColor</samp> and <samp>CanBeDyed</samp> if set. Default false. |
| + | |} |
| | | |
| + | ====Other==== |
| {| class="wikitable" | | {| class="wikitable" |
| |- | | |- |
− | ! index
| |
| ! field | | ! field |
− | ! effect | + | ! purpose |
| |- | | |- |
− | | 0 | + | | <samp>CanChooseDuringCharacterCustomization</samp> |
− | | name | + | | ''(Optional)'' Whether these pants can be selected on the character customization screen (e.g. when creating a character). Default false. |
− | | The internal item name (and display name in English).
| |
| |- | | |- |
− | | 1 | + | | <samp>CustomFields</samp> |
− | | display name | + | | The [[#Custom data fields|custom fields]] for this entry. |
− | | The translated item name shown in-game. | + | |} |
| + | |
| + | ==Shirts== |
| + | |
| + | ===Data format=== |
| + | |
| + | You can now create/edit [[Tailoring#Shirts|shirts]] by editing the new <samp>Data/Shirts</samp> asset, which replaces <samp>Data/clothingInformation</samp>. This consists of a string → model lookup, where... |
| + | * The key is the unqualified [[#Custom items|item ID]]. |
| + | * The value is a model with the fields listed below. |
| + | |
| + | ====Basic shirt data==== |
| + | {| class="wikitable" |
| + | |- |
| + | ! field |
| + | ! purpose |
| |- | | |- |
− | | 2 | + | | <samp>Name</samp> |
− | | description
| + | | ''(Optional)'' The internal name for the item. Default <samp>Shirt</samp>. |
− | | The translated item description shown in-game. | |
| |- | | |- |
− | | 3 | + | | <samp>DisplayName</samp><br /><samp>Description</samp> |
− | | male index | + | | ''(Optional)'' A [[Modding:Tokenizable strings|tokenizable string]] for the item's in-game display name and description. Defaults to the generic shirt text (''Shirt'' and ''A wearable shirt''). |
− | | The sprite index in the clothing spritesheet for male characters. | |
| |- | | |- |
− | | 4 | + | | <samp>Price</samp> |
− | | female index
| + | | ''(Optional)'' The default price when the item is sold to the player in a shop. Default 50. |
− | | The sprite index in the clothing spritesheet for female characters, or <samp>-1</samp> to use the male index.
| + | |} |
| + | |
| + | ====Appearance==== |
| + | {| class="wikitable" |
| |- | | |- |
− | | 5
| + | ! field |
− | | price
| + | ! purpose |
− | | The price when purchased from shops.
| |
| |- | | |- |
− | | 6 | + | | <samp>Texture</samp> |
− | | default color
| + | | The asset name for the texture containing the shirt's sprite. Defaults to <samp>Characters/Farmer/shirts</samp>. |
− | | The default color, specified in space-delimited RGB with each channel being an integer from 0 (no color) to 255 (full color). For example, <samp>255 0 0</samp> for full red. | |
| |- | | |- |
− | | 7 | + | | <samp>SpriteIndex</samp> |
− | | dyeable
| + | | The shirt's sprite index within the <samp>Texture</samp>, where 0 is the top-left set. |
− | | Whether the clothing can be [[Dyeing|dyed]] (<samp>true</samp> or <samp>false</samp>).
| |
| |- | | |- |
− | | 8 | + | | <samp>DefaultColor</samp> |
− | | Type
| + | | ''(Optional)'' The dye color to apply to the sprite when the player hasn't [[dyeing|dyed]] it yet, if any. See [[#Color fields|color format]]. Default none. |
− | | The clothing type. One of <samp>Pants</samp>, <samp>Shirt</samp>, or <s><samp>Accessory</samp></s> (unimplemented).
| |
| |- | | |- |
− | | 9 | + | | <samp>CanBeDyed</samp> |
− | | extra data | + | | ''(Optional)'' Whether the player can [[dyeing|dye]] this shirt. Default false. |
− | | A comma-delimited list of tags attached to the item (unrelated to [[#Context tags|context tags]]). The values recognized by the game are <samp>Prismatic</samp> (adds a shifting rainbow effect) and <samp>Sleeveless</samp> (disables drawing the sleeve color over the player's arms).
| + | |- |
| + | | <samp>IsPrismatic</samp> |
| + | | ''(Optional)'' Whether the shirt continuously shifts colors. This overrides <samp>DefaultColor</samp> and <samp>CanBeDyed</samp> if set. Default false. |
| + | |- |
| + | | <samp>HasSleeves</samp> |
| + | | ''(Optional)'' Whether to draw shirt sleeves. Default true. |
| |} | | |} |
| + | |
| + | ====Other==== |
| + | {| class="wikitable" |
| + | |- |
| + | ! field |
| + | ! purpose |
| + | |- |
| + | | <samp>CanChooseDuringCharacterCustomization</samp> |
| + | | ''(Optional)'' Whether this shirt can be selected on the character customization screen (e.g. when creating a character). Default false. |
| + | |- |
| + | | <samp>CustomFields</samp> |
| + | | The [[#Custom data fields|custom fields]] for this entry. |
| + | |} |
| + | |
| | | |
| ==Furniture== | | ==Furniture== |