DrawLayers
A classe DrawLayers permite adicionar texturas para desenhar sobre ou atrás do edifício ao jogo, com suporte para condições e animações.
Construtor
def __init__(
self,
*,
Id:str,
SourceRect: Rectangle,
DrawPosition: Position, #use getStr() to return a valid value for this variable
Texture: Optional[str] = None,
DrawInBackground: Optional[bool] = None,
SortTileOffset: Optional[float] = 0.0,
OnlyDrawIfChestHasContents: Optional[str] = None,
FrameCount: Optional[int] = None,
FramesPerRow: Optional[int] = None,
FrameDuration: Optional[int] = None,
AnimalDoorOffset: Optional[Position] = None
)
Parâmetros
| Name | Type | Description |
|---|---|---|
Id |
(str) |
Identificação da DrawLayer |
SourceRect |
(Rectangle) |
A área de pixels dentro da textura a ser desenhada. Se a sobreposição for animada por meio de FrameCount, essa será a área do primeiro quadro. Classe usada: Rectangle |
DrawPosition |
(Position) |
A posição do ladrilho na qual será desenhado o canto superior esquerdo da textura, em relação ao ladrilho do canto superior esquerdo do edifício. Classe usada: Position |
Texture |
(str, Optional) |
Caminho do objeto da textura para ser desenhada. O padrão é a textura padrão do edifício. |
DrawInBackground |
(bool, Optional) |
Se a textura deve ser desenhada atrás do sprite do edifício (ou seja, sob a camada) em vez de sobre ele. |
SortTileOffset |
(float, Optional) |
Um deslocamento de ladrilho Y aplicado ao calcular as camadas de renderização. Por exemplo, um valor de 2,5 tratará a textura como se ela estivesse 2,5 blocos mais acima na tela para fins de disposição em camadas. |
OnlyDrawIfChestHasContents |
(str, Optional) |
O ID de um baú definido no campo Baús que deve conter itens. Se estiver vazio, essa sobreposição não será renderizada. Padrão: nenhum. |
FrameCount / FramesPerRow / FrameDuration |
(int, Optional) |
Se FrameCount for maior que um, a sobreposição do edifício será animada automaticamente. Para cada quadro, o SourceRect será deslocado por sua largura para a direita até FramesPerRow - 1 vezes e, em seguida, para baixo por sua altura. Cada quadro será renderizado na tela por milissegundos de FrameDuration antes de mudar para o próximo quadro. |
| Por exemplo, se você definir FrameCount como 6 e FramesPerRow como 3, o edifício esperará que os quadros sejam dispostos assim na planilha de sprites. | ||
AnimalDoorOffset |
(Position, Optional) |
Um deslocamento de pixel aplicado à camada de desenho quando a porta do animal está aberta. Enquanto a porta estiver se abrindo, a porcentagem de abertura é aplicada ao deslocamento (por exemplo, 50% de abertura = 50% de deslocamento). |
Exemplo
from StardewValley.Data import DrawLayers
# Usado na variavel DrawLayers dentro de uma classe BuildingsData
DrawLayers(
Id="Default_AnimalDoor",
SourceRect=Rectangle(0, 112, 16, 16),
DrawPosition=Position(32, 96),
DrawInBackground=False,
SortTileOffset=0.02,
FrameCount=1,
FramesPerRow=-1,
FrameDuration=90,
AnimalDoorOffset=Position(0, -13)
)