Skip to content
🚧 Esta documentação ainda está em desenvolvimento e pode conter informações incompletas.

BootsData

A classe BootsData é usada para editar dados de botas no jogo. É uma das classes especiais fornecidas pela biblioteca para auxiliar na modificação de dados existentes ou na adição de novas entradas aos arquivos do jogo. Especificamente, BootsData é usada para editar o arquivo Data/Boots. Ela permite modificar ou adicionar novas entradas aos arquivos do jogo de forma segura e controlada [1].

BootsData herda de modelsData que fornece a estrutura base e integração com o Content Patcher [4].

Construtor

def __init__(
    self,
    *,
    key:int,
    Name:str,
    Description:str,
    AddedDefense:int,
    AddedImmunity:int,
    ColorIndex:int,
    DisplayName:str,
    ColorTexture:Optional[str]=None,
    SpriteIndex:Optional[int]=None,
    Texture:Optional[str]=None
)

Parâmetros

Name Type Description
key (int) O id das botas.
Name (str) O nome interno botas e também o DisplayName delas.
Description (str) A descrição do item traduzida mostrada no jogo.
AddedDefense (int) Um bônus de defesa aplicado ao jogador enquanto equipado.
AddedImmunity (int) Um bônus de imunidade aplicado ao jogador enquanto equipado.
ColorIndex (int) O índice de cores das botas dentro da Textura de Cor, onde 0 é o conjunto superior esquerdo, se presente, caso contrário, a planilha Characters/Farmer/shoeColors.
DisplayName (str) O nome do item traduzido mostrado no jogo (somente para recursos em outros idiomas).
ColorTexture (Optional[str], default=None) O nome do ativo para a textura que contém o sprite da cor das botas.
SpriteIndex (Optional[int], default=None) O índice do sprite das botas dentro da Textura, onde 0 é o conjunto superior esquerdo.
Texture (Optional[str], default=None) O nome do recurso para a textura que contém o sprite das botas.

Comportamento

Instâncias de BootsData são projetadas para serem usadas dentro do campo Entries de uma ação EditData. Quando você deseja adicionar um novo peixe ao aquário. Ao criar um objeto BootsData com os parâmetros desejados e fornecer sua representação JSON (getJson()) como um valor no dicionário Entries (usando a chave do objeto), você instrui o Content Patcher a escrever esses dados no arquivo Data/Boots. Essa abordagem estruturada ajuda os desenvolvedores a evitar erros comuns associados a arquivos JSON manuais. Criando um novo objeto: usando BootsData Para criar uma nova bota, você primeiro instancia a classe BootsData com todos os detalhes necessários para o novo item. Em seguida, você usa esta instância BootsData dentro do dicionário Entries de uma ação EditData, mapeando a chave do BootsData para sua representação JSON obtida via bota_nova.getJson(). A ação EditData deve ter Data/Boots como alvo (Target).

Exemplo Simples

ModEntry.py:

from StardewValley import Manifest, EditData
from StardewValley.contentpatcher import ContentPatcher
from StardewValley.Data import BootsData

# ... (dentro de um método como contents(self) na sua classe de mod)

# Primeiro criando um objeto da classe BootsData _> valores fictícios.
bota_nova = BootsData(
    key=f"{self.content.Manifest.UniqueID}_bota_nova",
    Name=f"{self.content.Manifest.UniqueID}_bota_nova",
    Description="{{i18n:bota_nova: bota_nova.description}}", #usando traducao do stardew valley com a pasta i18n
    AddedDefense=0,
    AddedImmunity=0,
    ColorIndex=0,
    DisplayName="{{i18n:bota_nova: bota_nova.displayname}}",
    ColorTexture=f"LooseSprites/{self.content.Manifest.UniqueID}_bota_nova",
    SpriteIndex=0,
    Texture=f"LooseSprites/{self.content.Manifest.UniqueID}_bota_nova"
)

# Registrando a ação EditData para adicionar a nova bota
self.content.registryContentData(
    EditData(
        LogName=f"{self.content.Manifest.UniqueID}_bota_nova",
        Target="Data/Boots",
        Entries={
            bota_nova.key: bota_nova.getJson()
        }
    )
)

Exemplo com classe Personalizada

BotaNova.py

from StardewValley import BootsData
from StardewValley.helper import Helper

class BotaNova(BootsData, mod: Helper):
    def __init__(self, mod: Helper):
        self.key=f"{mod.content.Manifest.UniqueID}_bota_nova"
        self.Name=f"{mod.content.Manifest.UniqueID}_bota_nova"
        self.Description="{{i18n:bota_nova: bota_nova.description}}" #usando traducao do stardew valley com a pasta i18n
        self.AddedDefense=0
        self.AddedImmunity=0
        self.ColorIndex=0
        self.DisplayName="{{i18n:bota_nova: bota_nova.displayname}}"
        self.ColorTexture=f"LooseSprites/{mod.content.Manifest.UniqueID}_bota_nova"
        self.SpriteIndex=0
        self.Texture=f"LooseSprites/{mod.content.Manifest.UniqueID}_bota_nova"

ModEntry.py

from StardewValley import Manifest, EditData
from StardewValley.Helper import Helper
from BotaNova import BotaNova

# no registryContetData
botaNova=BotaNova(self)
self.content.registryContentData(
    EditData(
        LogName=f"{self.content.Manifest.UniqueID}_bota_nova",
        Target="Data/Boots",
        Entries={
            botaNova.key: botaNova.getJson()
        }
    )
)