Всё, из чего собираются спрайты, и ничего собранного. Источник истины —
assets/manifests и assets/*/catalog.yaml; PNG, .sfa и contact sheet остаются
за бортом, потому что воспроизводятся командой (docs/12-assets.md).
assets/manifests что и как рендерить: окружение, твари, агенты, предметы
assets/agents паперdoll-риг восьми направлений, каталог снаряжения
assets/monsters пять морфологий, каждая своим ригом (docs/14-monsters.md)
assets/sources исходные развёртки и импорты
assets/art_masters мастер-развёртки, по которым сверяется стиль
tools/ сборка ассетов, покрытие, генераторы, blender-скрипты
generated/ заголовки с константами SF_ASSET_*: без них игра не
соберётся, поэтому они в репозитории, хотя и производные
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
928 B
C++
28 lines
928 B
C++
/* Generated by tools/agent_assets.py sync (consolidated Blender assets). */
|
|
#pragma once
|
|
#include <cstdint>
|
|
#include "render/anim.h"
|
|
#include "sim/items.h"
|
|
|
|
constexpr uint32_t AGENT_BODY_ASSET = UINT32_C(0xC4B41EA2);
|
|
|
|
constexpr uint32_t AgentBodyAsset(AnimKind) { return AGENT_BODY_ASSET; }
|
|
|
|
constexpr uint32_t AgentArmorAsset(ItemId id, AnimKind = AnimKind::IDLE) {
|
|
switch (id) {
|
|
case ItemId::JACKET: case ItemId::VEST: case ItemId::PLATE: case ItemId::SHROUD:
|
|
return UINT32_C(0xC8F6040D);
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
constexpr uint32_t AgentWeaponAsset(ItemId id, AnimKind = AnimKind::IDLE) {
|
|
switch (id) {
|
|
case ItemId::RIFLE: case ItemId::PISTOL: case ItemId::SHOTGUN:
|
|
case ItemId::SMG: case ItemId::MAGNUM: case ItemId::BOW:
|
|
case ItemId::SABER: case ItemId::KNIFE: case ItemId::CLEAVER:
|
|
return UINT32_C(0xA68530E2);
|
|
default: return 0;
|
|
}
|
|
}
|