예제 #1
0
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());
}
예제 #3
0
	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");
	}
예제 #4
0
JsonParser DownCast( BaseHandle handle )
{
  return JsonParser( dynamic_cast<Internal::JsonParser*>(handle.GetObjectPtr()) );
}
예제 #5
0
JsonParser JsonParser::New(const TreeNode& tree)
{
  Internal::JsonParser* internal = new Internal::JsonParser(tree);
  return JsonParser(internal);
}
예제 #6
0
JsonParser JsonParser::New()
{
  Internal::JsonParser* internal = new Internal::JsonParser();
  return JsonParser(internal);
}