QVariant JsonFileReader::read(const QString& fileName) { QFile f(fileName); if (!f.open(QFile::ReadOnly)) throw cxx::exception(QObject::tr("Unable to open input file %1").arg(fileName).toStdString()); QString contents = QString::fromUtf8(f.readAll()); return JsonParser(contents)(); }
WorldEntityManager::WorldEntityManager(Filesystem::path directory, int worldWidth, int minQuadWidth) : PersistenceEntityManager::PersistenceEntityManager(directory), m_player(nullptr), m_quadTree(Rectangle(0,0,worldWidth,worldWidth),minQuadWidth) { //---------------------------------------------------------------- // Register the components RegisterComponent([] {return new Components::Player();}); RegisterComponent([] {return new Components::Position();}); RegisterComponent([] {return new Components::Movement();}); RegisterComponent([] {return new Components::Collision();}); RegisterComponent([] {return new Components::Terrain();}); RegisterComponent([] {return new Components::PositionNormalTextureVBO();}); RegisterComponent([] {return new Components::PositionNormalTextureTangentColorVBO(); }); RegisterComponent([] {return new Components::Model();}); RegisterComponent([] {return new Components::Action();}); RegisterComponent([] {return new Components::Building();}); RegisterComponent([] {return new Components::Inventory();}); //---------------------------------------------------------------- // Tags RegisterDelegate([](string type) {return new Components::Tag(type);}, vector<string>{ "Water", "Tree" }); //---------------------------------------------------------------- // Parse configuration file JsonParser config = JsonParser(std::ifstream("config/WorldEntityManager.json")); m_entityRegionWidth = (unsigned int)config["EntityRegionWidth"]; JsonParser continentConfig = JsonParser(std::ifstream("config/continent.json")); m_worldWidth = (unsigned int)continentConfig["terrainMap"]["width"]; //---------------------------------------------------------------- // Event Handlers IEventManager::RegisterHandler(Entity_ComponentAdded, std::function<void(unsigned int, unsigned long)>([=](unsigned int target, unsigned long mask) { if (mask == ComponentMask("Position")) { AddEntityToRegion(target); } })); //---------------------------------------------------------------- // Cache entity regions auto regions = FindEntities(ComponentMask(vector<string>{"EntityRegion", "Position"})); m_entityRegions = std::set<EntityPtr>(regions.begin(),regions.end()); }
static void testJsonParser() { // SETTINGS FILE JsonParser test = JsonParser("Settings.json"); test.parseFile(FileType::SETTINGS); Settings settings = test.getSettingsFileContent(); std::cout << "------------- BEGINNING OF TESTING SETTINGS FILE READER -------------" << std::endl << std::endl; std::cout << "Resolution: " << settings.getResolutionString() << std::endl; std::cout << "Volume: " << settings.getVolumeString() << std::endl; std::cout << "Fullscreen: " << settings.getIsFullscreenString() << std::endl; std::cout << "Fps: " << settings.getFpsString() << std::endl; //std::cout << "Keys Mapping: " << settings.getKeysMapping() << std::endl; test.saveSettings(settings, "Settings.json"); std::cout << std::endl << "------------- END OF TESTING SETTINGS FILE READER -------------" << std::endl << std::endl; // MAP FILE std::cout << "------------- BEGINNING OF TESTING MAP FILE READER -------------" << std::endl << std::endl; test.setFilePath("Maps/TestHeatZones.json"); test.parseFile(FileType::MAP); MapInfos map = test.parseMap(); map.displayMapInfos(); std::cout << std::endl << "------------- END OF TESTING MAP FILE READER -------------" << std::endl; system("pause"); }
JsonParser DownCast( BaseHandle handle ) { return JsonParser( dynamic_cast<Internal::JsonParser*>(handle.GetObjectPtr()) ); }
JsonParser JsonParser::New(const TreeNode& tree) { Internal::JsonParser* internal = new Internal::JsonParser(tree); return JsonParser(internal); }
JsonParser JsonParser::New() { Internal::JsonParser* internal = new Internal::JsonParser(); return JsonParser(internal); }