group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
AssetCatalog.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
8
9#include <array>
10#include <glm/vec3.hpp>
11
14{
15 const char* name = "";
16 const char* filename = "";
18 glm::vec3 loadTranslation{0.0f};
19 float loadScale = 1.0f;
20 bool flipUVs = false;
21 bool decomposeCollision = false;
22 glm::vec3 renderScale{1.0f};
23 glm::vec3 renderTranslation{0.0f};
24 glm::vec3 renderRotationDegrees{0.0f};
25};
26
28 .name = "map1",
29 .filename = "maps/map1.glb",
30 .role = AssetRole::Map,
31 .loadScale = 39.3701f,
32 .flipUVs = true,
33};
34
35inline const std::array<AssetDefinition, 0> kPropAssets{};
36
38 .name = "rocket_projectile",
39 .filename = "rocket_projectile.glb", // update with rocket projectile asset
40 .role = AssetRole::Entity,
41 .loadScale = 20.0f,
42 .flipUVs = true,
43};
44
46 .name = "grenade",
47 .filename = "grenade.glb",
48 .role = AssetRole::Entity,
49 .flipUVs = true,
50 .renderScale = {20.0f, 20.0f, 20.0f},
51};
52
54 .name = "he_grenade",
55 .filename = "grenade_he.glb",
56 .role = AssetRole::Entity,
57 .flipUVs = true,
58 .renderScale = {9.0f, 9.0f, 9.0f},
59};
60
62 .name = "sticky_grenade",
63 .filename = "grenade_sticky.glb",
64 .role = AssetRole::Entity,
65 .flipUVs = true,
66 .renderScale = {0.4f, 0.4f, 0.4f},
67};
68
70 .name = "molotov",
71 .filename = "grenade_fire.glb",
72 .role = AssetRole::Entity,
73 .flipUVs = true,
74 .renderScale = {600.0f, 600.0f, 600.0f},
75};
76
78 .name = "medkit",
79 .filename = "medkit.glb",
80 .role = AssetRole::Entity,
81 .flipUVs = true,
82 .renderScale = {30.0f, 30.0f, 30.0f},
83};
84
86 .name = "shield_powerup",
87 .filename = "shield_powerup.glb",
88 .role = AssetRole::Entity,
89 .loadTranslation = {2.7208f, -3.3826f, -0.2294f},
90 .flipUVs = true,
91 .renderScale = {20.0f, 20.0f, 20.0f},
92};
93
95 .name = "damage_powerup",
96 .filename = "damage_powerup.glb",
97 .role = AssetRole::Entity,
98 .flipUVs = true,
99 .renderScale = {9.0f, 9.0f, 9.0f},
100};
101
102inline const std::array<AssetDefinition, kRenderableWeaponTypeCount> kWeaponAssets{{
103 {.name = "weapon_rifle",
104 .filename = "assault_rifle.glb",
105 .role = AssetRole::Entity,
106 .flipUVs = true,
107 .renderScale = {20.0f, 20.0f, 20.0f}},
108 {.name = "weapon_rocket",
109 .filename = "rocket_launcher.glb",
110 .role = AssetRole::Entity,
111 .flipUVs = true,
112 .renderScale = {200.0f, 200.0f, 200.0f}},
113 {.name = "weapon_railgun",
114 .filename = "rail_gun.glb",
115 .role = AssetRole::Entity,
116 .flipUVs = true,
117 .renderScale = {20.0f, 20.0f, 20.0f},
118 .renderRotationDegrees = {0.0f, 0.0f, 0.0f}},
119 {.name = "weapon_energy",
120 .filename = "energy_gun.glb",
121 .role = AssetRole::Entity,
122 .flipUVs = true,
123 .renderScale = {20.0f, 20.0f, 20.0f},
124 .renderRotationDegrees = {0.0f, 0.0f, 0.0f}},
125 {.name = "weapon_shotgun",
126 .filename = "shotgun.glb",
127 .role = AssetRole::Entity,
128 .flipUVs = true,
129 .renderScale = {20.0f, 20.0f, 20.0f},
130 .renderRotationDegrees = {0.0f, 0.0f, 0.0f}},
131}};
132
133inline const std::array<AssetDefinition, 3> kEffectAssets{{
134 {.name = "glow_sphere", .role = AssetRole::Effect},
135 {.name = "glow_sphere_movable", .role = AssetRole::Effect},
136 {.name = "glow_cylinder", .role = AssetRole::Effect},
137}};
const AssetDefinition kStickyGrenadeModel
Definition AssetCatalog.hpp:61
const std::array< AssetDefinition, 0 > kPropAssets
Definition AssetCatalog.hpp:35
const std::array< AssetDefinition, kRenderableWeaponTypeCount > kWeaponAssets
Definition AssetCatalog.hpp:102
const AssetDefinition kDamagePowerupModel
Definition AssetCatalog.hpp:94
const AssetDefinition kShieldPowerupModel
Definition AssetCatalog.hpp:85
const AssetDefinition kHEGrenadeModel
Definition AssetCatalog.hpp:53
const std::array< AssetDefinition, 3 > kEffectAssets
Definition AssetCatalog.hpp:133
const AssetDefinition kMolotovModel
Definition AssetCatalog.hpp:69
const AssetDefinition kMedkitModel
Definition AssetCatalog.hpp:77
const AssetDefinition kMapAsset
Definition AssetCatalog.hpp:27
const AssetDefinition kGrenadeModel
Definition AssetCatalog.hpp:45
const AssetDefinition kRocketProjectile
Definition AssetCatalog.hpp:37
Central registry mapping named assets to renderer model indices.
AssetRole
Describes how a registered asset should be used.
Definition AssetRegistry.hpp:22
@ Entity
Dynamic entity model (player, weapon) — drawn via EntityRenderCmd only.
Definition AssetRegistry.hpp:25
@ Map
Static world geometry — rendered in scene pass, has collision.
Definition AssetRegistry.hpp:23
@ Effect
Procedural effect (glow sphere, beam) — drawn via EntityRenderCmd only.
Definition AssetRegistry.hpp:26
Weapon state component for armed entities.
Header-authored defaults for assets registered with AssetRegistry.
Definition AssetCatalog.hpp:14
glm::vec3 renderScale
Default Renderable scale.
Definition AssetCatalog.hpp:22
const char * name
Definition AssetCatalog.hpp:15
glm::vec3 loadTranslation
World translation used when loading static scene assets.
Definition AssetCatalog.hpp:18
float loadScale
Scale used when loading/uploading the model.
Definition AssetCatalog.hpp:19
bool flipUVs
True for assets whose source UV orientation needs flipping.
Definition AssetCatalog.hpp:20
const char * filename
Definition AssetCatalog.hpp:16
bool decomposeCollision
True to run V-HACD on non-convex collision sub-meshes.
Definition AssetCatalog.hpp:21
glm::vec3 renderTranslation
Default Renderable local translation.
Definition AssetCatalog.hpp:23
AssetRole role
Definition AssetCatalog.hpp:17
glm::vec3 renderRotationDegrees
Default Renderable local rotation in degrees.
Definition AssetCatalog.hpp:24