mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-16 08:56:04 +01:00
Implement quests
This commit is contained in:
@@ -24,6 +24,9 @@ import emu.grasscutter.data.custom.AbilityModifier.AbilityModifierAction;
|
||||
import emu.grasscutter.data.custom.AbilityModifier.AbilityModifierActionType;
|
||||
import emu.grasscutter.data.custom.AbilityModifierEntry;
|
||||
import emu.grasscutter.data.custom.OpenConfigEntry;
|
||||
import emu.grasscutter.data.custom.QuestConfig;
|
||||
import emu.grasscutter.data.custom.QuestConfigData;
|
||||
import emu.grasscutter.data.custom.QuestConfigData.SubQuestConfigData;
|
||||
import emu.grasscutter.data.custom.ScenePointEntry;
|
||||
import emu.grasscutter.game.world.SpawnDataEntry;
|
||||
import emu.grasscutter.game.world.SpawnDataEntry.SpawnGroupEntry;
|
||||
@@ -57,8 +60,9 @@ public class ResourceLoader {
|
||||
loadResources();
|
||||
// Process into depots
|
||||
GameDepot.load();
|
||||
// Load spawn data
|
||||
// Load spawn data and quests
|
||||
loadSpawnData();
|
||||
loadQuests();
|
||||
// Load scene points - must be done AFTER resources are loaded
|
||||
loadScenePoints();
|
||||
// Custom - TODO move this somewhere else
|
||||
@@ -396,6 +400,34 @@ public class ResourceLoader {
|
||||
GameData.getOpenConfigEntries().put(entry.getName(), entry);
|
||||
}
|
||||
}
|
||||
|
||||
private static void loadQuests() {
|
||||
File folder = new File(Grasscutter.getConfig().RESOURCE_FOLDER + "BinOutput/Quest/");
|
||||
|
||||
if (!folder.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (File file : folder.listFiles()) {
|
||||
QuestConfigData mainQuest = null;
|
||||
|
||||
try (FileReader fileReader = new FileReader(file)) {
|
||||
mainQuest = Grasscutter.getGsonFactory().fromJson(fileReader, QuestConfigData.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mainQuest.getSubQuests() != null) {
|
||||
for (SubQuestConfigData subQuest : mainQuest.getSubQuests()) {
|
||||
QuestConfig quest = new QuestConfig(mainQuest, subQuest);
|
||||
GameData.getQuestConfigs().put(quest.getId(), quest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Grasscutter.getLogger().info("Loaded " + GameData.getQuestConfigs().size() + " Quest Configs");
|
||||
}
|
||||
|
||||
// BinOutput configs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user