bacommon.assets
Functionality related to cloud based assets.
1# Released under the MIT License. See LICENSE for details. 2# 3"""Functionality related to cloud based assets.""" 4 5from __future__ import annotations 6 7from dataclasses import dataclass, field 8from typing import TYPE_CHECKING, Annotated 9from enum import Enum 10 11from efro.dataclassio import ioprepped, IOAttrs 12 13if TYPE_CHECKING: 14 pass 15 16 17class AssetPackageFlavor(Enum): 18 """Flavors for asset package outputs for different platforms/etc.""" 19 20 # DXT3/DXT5 textures 21 DESKTOP = 'desktop' 22 23 # ASTC textures 24 MOBILE = 'mobile' 25 26 27class AssetType(Enum): 28 """Types for individual assets within a package.""" 29 30 TEXTURE = 'texture' 31 CUBE_TEXTURE = 'cube_texture' 32 SOUND = 'sound' 33 DATA = 'data' 34 MESH = 'mesh' 35 COLLISION_MESH = 'collision_mesh' 36 37 38@ioprepped 39@dataclass 40class AssetPackageFlavorManifest: 41 """A manifest of asset info for a specific flavor of an asset package.""" 42 43 cloudfiles: Annotated[dict[str, str], IOAttrs('cloudfiles')] = field( 44 default_factory=dict 45 ) 46 47 48@ioprepped 49@dataclass 50class AssetPackageBuildState: 51 """Contains info about an in-progress asset cloud build.""" 52 53 # Asset names still being built. 54 in_progress_builds: Annotated[list[str], IOAttrs('b')] = field( 55 default_factory=list 56 ) 57 58 # The initial number of assets needing to be built. 59 initial_build_count: Annotated[int, IOAttrs('c')] = 0 60 61 # Build error string. If this is present, it should be presented 62 # to the user and they should required to explicitly restart the build 63 # in some way if desired. 64 error: Annotated[str | None, IOAttrs('e')] = None
class
AssetPackageFlavor(enum.Enum):
18class AssetPackageFlavor(Enum): 19 """Flavors for asset package outputs for different platforms/etc.""" 20 21 # DXT3/DXT5 textures 22 DESKTOP = 'desktop' 23 24 # ASTC textures 25 MOBILE = 'mobile'
Flavors for asset package outputs for different platforms/etc.
DESKTOP =
<AssetPackageFlavor.DESKTOP: 'desktop'>
MOBILE =
<AssetPackageFlavor.MOBILE: 'mobile'>
class
AssetType(enum.Enum):
28class AssetType(Enum): 29 """Types for individual assets within a package.""" 30 31 TEXTURE = 'texture' 32 CUBE_TEXTURE = 'cube_texture' 33 SOUND = 'sound' 34 DATA = 'data' 35 MESH = 'mesh' 36 COLLISION_MESH = 'collision_mesh'
Types for individual assets within a package.
TEXTURE =
<AssetType.TEXTURE: 'texture'>
CUBE_TEXTURE =
<AssetType.CUBE_TEXTURE: 'cube_texture'>
SOUND =
<AssetType.SOUND: 'sound'>
DATA =
<AssetType.DATA: 'data'>
MESH =
<AssetType.MESH: 'mesh'>
COLLISION_MESH =
<AssetType.COLLISION_MESH: 'collision_mesh'>
@ioprepped
@dataclass
class
AssetPackageFlavorManifest:
39@ioprepped 40@dataclass 41class AssetPackageFlavorManifest: 42 """A manifest of asset info for a specific flavor of an asset package.""" 43 44 cloudfiles: Annotated[dict[str, str], IOAttrs('cloudfiles')] = field( 45 default_factory=dict 46 )
A manifest of asset info for a specific flavor of an asset package.
AssetPackageFlavorManifest( cloudfiles: Annotated[dict[str, str], <efro.dataclassio.IOAttrs object>] = <factory>)
cloudfiles: Annotated[dict[str, str], <efro.dataclassio.IOAttrs object at 0x106885c40>]
@ioprepped
@dataclass
class
AssetPackageBuildState:
49@ioprepped 50@dataclass 51class AssetPackageBuildState: 52 """Contains info about an in-progress asset cloud build.""" 53 54 # Asset names still being built. 55 in_progress_builds: Annotated[list[str], IOAttrs('b')] = field( 56 default_factory=list 57 ) 58 59 # The initial number of assets needing to be built. 60 initial_build_count: Annotated[int, IOAttrs('c')] = 0 61 62 # Build error string. If this is present, it should be presented 63 # to the user and they should required to explicitly restart the build 64 # in some way if desired. 65 error: Annotated[str | None, IOAttrs('e')] = None
Contains info about an in-progress asset cloud build.
AssetPackageBuildState( in_progress_builds: Annotated[list[str], <efro.dataclassio.IOAttrs object>] = <factory>, initial_build_count: Annotated[int, <efro.dataclassio.IOAttrs object>] = 0, error: Annotated[str | None, <efro.dataclassio.IOAttrs object>] = None)
in_progress_builds: Annotated[list[str], <efro.dataclassio.IOAttrs object at 0x1066e3fb0>]