MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / diskLoadEntity

Method diskLoadEntity

source/game/StarEntityFactory.cpp:123–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121}
122
123EntityPtr EntityFactory::diskLoadEntity(EntityType type, Json const& diskStore) const {
124 RecursiveMutexLocker locker(m_mutex);
125
126 if (type == EntityType::Player) {
127 return m_playerFactory->diskLoadPlayer(diskStore);
128 } else if (type == EntityType::Monster) {
129 return m_monsterDatabase->diskLoadMonster(diskStore);
130 } else if (type == EntityType::Object) {
131 return m_objectDatabase->diskLoadObject(diskStore);
132 } else if (type == EntityType::Plant) {
133 return make_shared<Plant>(diskStore);
134 } else if (type == EntityType::ItemDrop) {
135 return make_shared<ItemDrop>(diskStore);
136 } else if (type == EntityType::Npc) {
137 return m_npcDatabase->diskLoadNpc(diskStore);
138 } else if (type == EntityType::Stagehand) {
139 return make_shared<Stagehand>(diskStore);
140 } else if (type == EntityType::Vehicle) {
141 return m_vehicleDatabase->diskLoad(diskStore);
142 } else {
143 throw EntityFactoryException::format("Don't know how to create entity type '{}' from disk store", EntityTypeNames.getRight(type));
144 }
145}
146
147Json EntityFactory::loadVersionedJson(VersionedJson const& versionedJson, EntityType expectedType) const {
148 RecursiveMutexLocker locker(m_mutex);

Callers 2

PlayerStorageMethod · 0.80
loadPlayerMethod · 0.80

Calls 6

diskLoadPlayerMethod · 0.80
diskLoadMonsterMethod · 0.80
diskLoadObjectMethod · 0.80
diskLoadNpcMethod · 0.80
formatFunction · 0.50
diskLoadMethod · 0.45

Tested by

no test coverage detected