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

AdditionalWallpaperFlooringData

A classe AdditionalWallpaperFlooringData é usada para adicionar pisos e paredes extras ao jogo.

Construtor

def __init__(
    self, 
    key: str, 
    Id: str, 
    Texture: str, 
    IsFlooring: bool, 
    Count: int
)

Parâmetros

Name Type Description
key (str) Identificação do item
Id (str) Identificação do item
Texture (str) ID respectivo à textura do item
IsFlooring (bool) Se o item é piso, se não, parede
Count (int) Quantidade de pisos ou paredes no tilesheet

Comportamento

Instâncias de AdditionalWallpaperFlooringData são projetadas para serem usadas dentro do campo Entries de uma ação EditData. Quando você deseja adicionar um novo objeto ou substituir completamente os dados de um objeto existente. Ao criar um objeto AdditionalWallpaperFlooringData 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/AdditionalWallpaperFlooring. Essa abordagem estruturada ajuda os desenvolvedores a evitar erros comuns associados a arquivos JSON manuais. Criando um novo objeto usando AdditionalWallpaperFlooringData Para criar um novo objeto, você primeiro instancia a classe AdditionalWallpaperFlooringData com todos os detalhes necessários para o novo item. Em seguida, você usa esta instância AdditionalWallpaperFlooringData dentro do dicionário Entries de uma ação EditData, mapeando a chave do AdditionalWallpaperFlooringData para sua representação JSON obtida via novo_item.getJson(). A ação EditData deve ter Data/AdditionalWallpaperFlooring como alvo (Target).

Criando um novo objeto

ModEntry.py

from StardewValley import Manifest, EditData
from StardewValley.helper import Helper
from StardewValley.Data import AdditionalWallpaperFlooringData


# Carregando a textura
self.content.registryContentData(
    Load(
        LogName="NovoItem_texture",
        Target=f"Mods/{self.content.Manifest.UniqueID}/NovoItem_texture",
        FromFile="assets/NovoItem_texture.png"
    )
)

# Criando o objeto AdditionalWallpaperFlooringData
novo_item = AdditionalWallpaperFlooringData(
    key = "author.modName_NomeItem",
    Id = "author.modName_NomeItem",
    Texture = f"Mods/{self.content.Manifest.UniqueID}/NovoItem_texture",
    IsFlooring = True, # True para piso, False para paredes
    Count = 1
)

# Registrando o objeto através do EditData
self.content.registryContentData(
    EditData(
        LogName="Criando um novo piso/parede",
        Target="Data/AdditionalWallpaperFlooring",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            novo_item.key: novo_item.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:

piso_parede.py

from StardewValley.Data import AdditionalWallpaperFlooringData
from StardewValley.helper import Helper


class NovoPisoParede(AdditionalWallpaperFlooringData):
    def __init__(self, mod: Helper):
        self.key = f"{mod.content.Manifest.UniqueID}_NovoPisoParede"
        self.Id = f"{mod.content.Manifest.UniqueID}_NovoPisoParede"
        self.Texture = f"Mods/{mod.content.Manifest.UniqueID}/NovoPisoParede"
        self.IsFlooring = True # True para piso, False para paredes
        self.Count = 1

ModEntry.py

from StardewValley import Manifest, EditData
from StardewValley.helper import Helper
from piso_parede import NovoPisoParede # Importando classe personalizada

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

novo_piso_parede = NovoPisoParede(self)
self.content.registryContentData(
    EditData(
        LogName="Criando um novo piso/parede",
        Target="Data/AdditionalWallpaperFlooring",
        Entries={
            # Mapeia a chave do seu objeto para a representação JSON do objeto
            novo_piso_parede.key: novo_piso_parede.getJson()
        }
    )
)