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

BundlesData

A classe BundlesData é usada para editar pacotes (bundles) do jogo.

Arquivo de conteúdo alvo: Data/Bundles

Construtor

def __init__(
        self, 
        roomID: str,
        spriteIndex:str,
        bundle_name: str,
        reward: Reward,
        requirements: list[Requirements],
        color: JunimoNoteColor,
        item_count: int,
        display_name: str
    )

Parâmetros

Name Type Description
roomID str Identificação da localização da sala onde está o pacote.
spriteIndex str Índice do sprite do pacote no objeto LooseSprites/JunimoNote. Usado junto com roomID para formar a chave única do pacote.
bundle_name str O nome interno do pacote.
reward Reward O objeto ou estrutura de dados que define a recompensa concedida ao completar o pacote.
requirements list[Requirements] Uma lista de objetos que definem os itens e/ou condições necessárias para completar o pacote.
color JunimoNoteColor Cor do caderno de Junimos. Valores validos: JunimoNoteColor.Green, JunimoNoteColor.Purple, JunimoNoteColor.Orange, JunimoNoteColor.Yellow, JunimoNoteColor.Red, JunimoNoteColor.Blue, JunimoNoteColor.Teal
item_count int O número de itens distintos necessários para completar o pacote, ou em branco para corresponder ao número de itens necessários. Pode ser um valor entre 1 e 12 (números maiores quebrarão o layout da interface).
Por exemplo, se você tiver seis entradas no campo "requisitos" e definir como 4, o jogador precisará preencher o pacote com quaisquer quatro dos seis itens necessários.
display_name str O nome de exibição do pacote, conforme visto pelo jogador no jogo.

Comportamento

Instâncias de BundlesData são projetadas para serem usadas dentro do campo Entries de uma ação EditData.

O dados devem ser escritos no arquivo alvo Data/Bundles.

Criando um novo objeto

ModEntry.py:

from StardewValley import Manifest, EditData, Helper
from StardewValley.Data import BundlesData, Reward, Requirements
from StardewValley.Data.GameData import ItemType, JunimoNoteColor

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

bundle=Bundles(
    roomID="Pantry",
    spriteIndex=0,
    bundle_name="Spring Crops",
    reward=Reward(
        itemType=ItemType.Object,
        itemID="472",
        count=20
    ),
    requirements=[
        Requirements("24", 1, 0),
        Requirements("188", 1, 0),
        Requirements("190", 1, 0),
        Requirements("192", 1, 0)
    ],
    color=JunimoNoteColor.Green,
    item_count=4,
    display_name="Spring Crops"
)

self.content.registryContentData(
    EditData(
        LogName="Editando bundle",
        Target="Data/Bundles",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            bundle.key: bundle.getJson()
        }
    )
)

Criando um novo objeto através de uma classe personalizada

Para usar uma classe personalizada, você pode criar um novo arquivo ou no mesmo arquivo criar uma classe:

Um novo arquivo.py:

bundle.py

from StardewValley import Helper
from StardewValley.Data import BundlesData, Reward, Requirements
from StardewValley.Data.GameData import ItemType, JunimoNoteColor

class SpringCropsBundle(BundlesData):
    def __init__(self, mod: Helper):
        self.roomID="Pantry"
        self.spriteIndex=0
        self.bundle_name="Spring Crops"
        self.reward=Reward(
            itemType=ItemType.Object,
            itemID="472",
            count=20
        ),
        self.requirements=[
            Requirements("24", 1, 0),
            Requirements("188", 1, 0),
            Requirements("190", 1, 0),
            Requirements("192", 1, 0)
        ],
        color=JunimoNoteColor.Green,
        item_count=4,
        display_name="Spring Crops"

ModEntry.py

from StardewValley import Manifest, EditData, Helper
from bundle import SpringCropsBundle# Importando classe personalizada

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

self.content.registryContentData(
    EditData(
        LogName="Editando bundle",
        Target="Data/Bundles",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            bundle.key: bundle.getJson()
        }
    )
)