Struct ContentDeclaration.Declared
A declared asset: where it is, what it is called, and what it is.
public struct ContentDeclaration.Declared
- Inherited Members
Fields
- SubAsset
The name of an object inside the asset, when the entry addresses one — a clip inside an
.fbx, a sprite inside an atlas. Null for a whole asset.This exists because a whole-file entry is the wrong grain for animation: the game asks for
SkillAssets.Clip(path, clipName), andAssetLibrarydocuments what loading the file instead returns —Drink Potion.fbxholds a GameObject and an AnimationClip of the same name, so the file path resolves to the model node and the clip never arrives. A bracket is also already this codebase's name for that lookup:AssetLibrary.RequireSubAssetbuilds its error address asparentAddress + "[" + objectName + "]".
- SubAssetType
The sub-asset's type, when the declaration names it (
path[Name:AnimationClip]) — the same disambiguator the runtime key uses,AssetLibrary.KeyFor(address, type)=address|TypeName.It is not decoration. A name alone is genuinely ambiguous:
Praying End.fbxholds an Animator and an AnimationClip calledPraying End, so a name match picked the Animator and the skill's clip came back null — a silent null, which is the failure this whole change exists to remove.