Peoplemon  0.1.0
Peoplemon 3 game source documentation
Resources.cpp
Go to the documentation of this file.
1 #include <Core/Resources.hpp>
2 
3 #include <BLIB/Logging.hpp>
4 #include <Core/Properties.hpp>
6 
7 namespace core
8 {
9 namespace res
10 {
11 namespace
12 {
13 const std::string BundlePath = "data";
14 } // namespace
15 
17  TilesetManager::installLoader<TilesetDevLoader>();
18  MapManager::installLoader<MapDevLoader>();
19  ConversationManager::installLoader<ConversationDevLoader>();
20  NpcManager::installLoader<NpcDevLoader>();
21  TrainerManager::installLoader<TrainerDevLoader>();
22  ItemDbManager::installLoader<ItemDBDevLoader>();
23  MoveDbManager::installLoader<MoveDBDevLoader>();
24  PeoplemonDbManager::installLoader<PeoplemonDBDevLoader>();
25  WalkAnimationManager::installLoader<WalkAnimationLoader>();
26  RunWalkAnimationManager::installLoader<RunWalkAnimationLoader>();
27 }
28 
30  if (!bl::resource::FileSystem::useBundle(BundlePath)) {
31  BL_LOG_CRITICAL << "Unable to mount resource bundles";
32  std::exit(1);
33  }
34 
35  TilesetManager::installLoader<TilesetProdLoader>();
36  MapManager::installLoader<MapProdLoader>();
37  ConversationManager::installLoader<ConversationProdLoader>();
38  NpcManager::installLoader<NpcProdLoader>();
39  TrainerManager::installLoader<TrainerProdLoader>();
40  ItemDbManager::installLoader<ItemDBProdLoader>();
41  MoveDbManager::installLoader<MoveDBProdLoader>();
42  PeoplemonDbManager::installLoader<PeoplemonDBProdLoader>();
43  WalkAnimationManager::installLoader<WalkAnimationLoader>();
44  RunWalkAnimationManager::installLoader<RunWalkAnimationLoader>();
45 }
46 
47 bool createBundles() {
48  using namespace bl::resource;
49  constexpr auto BundleAllFiles = bundle::BundleSource::BundleAllFiles;
50  constexpr auto BundleForEachRecurse =
51  bundle::BundleSource::CreateBundleForEachContainedRecursive;
52  constexpr auto BundleEachTopLevel = bundle::BundleSource::CreateBundleForEachContained;
53 
54  Bundler bundler(
55  bundle::Config(BundlePath)
56  .addBundleSource({"Resources/Animations/Battle", BundleAllFiles})
57  .addBundleSource(
58  {"Resources/Animations/Moves",
59  BundleEachTopLevel,
60  ".*((Front)|(Back))[\\/\\\\]((foreground\\.anim)|(background\\.anim)|(.*\\.png))"})
61 
62  .addBundleSource({"Resources/Audio/Playlists", BundleForEachRecurse})
63  .addBundleSource({"Resources/Audio/Music", BundleAllFiles})
64  .addBundleSource({"Resources/Audio/Sounds", BundleAllFiles})
65 
66  .addBundleSource({"Resources/Maps/Maps", BundleForEachRecurse})
67  .addBundleSource({"Resources/Maps/Tilesets", BundleForEachRecurse})
68  .addBundleSource({"Resources/Characters/Trainers", BundleAllFiles})
69  .addBundleSource({"Resources/Characters/NPCs", BundleAllFiles})
70  .addBundleSource({"Resources/Characters/Animations", BundleAllFiles})
71 
72  .addBundleSource({"Resources/Config", BundleAllFiles})
73  .addBundleSource({"Resources/Scripts", BundleAllFiles})
74  .addBundleSource({"Resources/Fonts", BundleAllFiles})
75 
76  .addBundleSource({"Resources/Images/Menus", BundleEachTopLevel})
77  .addBundleSource({"Resources/Images/Weather", BundleAllFiles})
78  .addBundleSource({"Resources/Images/Battle", BundleAllFiles})
79  .addBundleSource({"Resources/Images/Peoplemon", BundleAllFiles})
80  .addBundleSource({"Resources/Images/Spritesheets", BundleAllFiles})
81  .addBundleSource({"Resources/Images", BundleAllFiles})
82 
83  .addFileHandler<bundle::AnimationHandler>(".*\\.anim")
84  .addFileHandler<bundle::PlaylistHandler>(".*\\.plst", true)
85  .addFileHandler<PeoplemonBundleHandler<file::ItemDB>>(".*items\\.db")
86  .addFileHandler<PeoplemonBundleHandler<file::MoveDB>>(".*moves\\.db")
87  .addFileHandler<PeoplemonBundleHandler<file::PeoplemonDB>>(".*peoplemon\\.db")
88  .addFileHandler<PeoplemonBundleHandler<file::Conversation>>(".*\\.conv")
89  .addFileHandler<PeoplemonBundleHandler<file::NPC>>(".*\\.npc")
90  .addFileHandler<PeoplemonBundleHandler<file::Trainer>>(".*\\.tnr")
91  .addFileHandler<PeoplemonBundleHandler<map::Map>>(".*\\.map")
92  .addFileHandler<PeoplemonBundleHandler<map::Tileset>>(".*\\.tlst")
93 
94  .withCatchAllDirectory("Resources")
95  .build());
96  return bundler.createBundles();
97 }
98 
99 } // namespace res
100 } // namespace core
bool createBundles()
Creates the resource bundles.
Definition: Resources.cpp:47
void installProdLoaders()
Sets up the BLIB resource managers in prod mode and mounts the resource bundles.
Definition: Resources.cpp:29
void installDevLoaders()
Sets up the BLIB resource managers in dev mode.
Definition: Resources.cpp:16
Core classes and functionality for both the editor and game.
Generic handler for peoplemon files when being bundled. Performs format conversion and registers depe...