Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

LevelData

The data stored in a dynamically created level with LevelEditor available from LevelBase. More...

Import Statement: import Felgo 3.0
Inherits:

QtObject

Properties

Detailed Description

The LevelData contains the data of a level created with LevelEditor::saveCurrentLevel() or LevelEditor::createNewLevel(). It is accessible either from LevelBase::levelData or LevelEditor::currentLevelData once the level got loaded with LevelEditor::loadSingleLevel().

See also LevelBase and LevelEditor.

Property Documentation

customData : variant

Use this optional property to store any additional data to the level that gets changed during the game.


levelMetaData : variant

This property holds the metaData of this level like the levelName, description, levelBaseName or levelBaseUrl. The levelMetaData is available before a level is actually loaded with LevelEditor::loadSingleLevel(). Thus store any information here you want to display in the LevelSelectionList.

The levelMetaData changes based on the LevelEditor::currentLevelStorageLocation. For example, a level that was published to the game community with LevelEditor::publishLevel() has more properties like avg_rating or times_downloaded, which are not existing for local levels.

This is an example for a levelMetaData from an LevelEditor::authorGeneratedLevels from the Squaby Demo:

 {
   "levelId":201,
   "levelName":"Great Level",
   "creationTime":"Fri, 03 May 2013 14:48:01 GMT",
   "lastModificationTime":"Fri, 03 May 2013 14:48:01 GMT",
   "levelBaseName":"DynamicLevel01",
   "storageLocation":"authorGenerated"
 }

These are the keys for a LevelEditor::userGeneratedLevels location for a level published for level sharing with LevelEditor::publishLevel():

 {
   "levelId": 2,
   "publishedLevelId": 6640,
   "levelName": "Level Name",
   "description": "Level description",
   "average_quality": 0,
   "average_difficulty": 0,
   "times_quality_rated": 0,
   "times_difficulty_rated": 0,
   "times_favored": 0,
   "times_downloaded": 0,
   "times_played": 0,
   "created_at": "2013-05-13T14:43:57Z",
   "updated_at": "2013-05-13T14:43:57Z",
   "rating": {
     "difficulty": 0,
     "quality": 1,
     "favored": false,
     "times_played": 0
   },
   "user": {
     "id": 8,
     "facebook_id": "asdf2",
     "profile_picture": null,
     "name": "Chris",
     "platform": "Android"
   },
   "storageLocation":"userGenerated"
 }

The user block contains information about the user who published the level, i.e. the level creator.

The rating block contains the rating for the logged in user sent with LevelEditor::rateLevel() before. If the user did not rate the level yet, this block does not exist.

Use these properties to display the level in the LevelSelectionList::levelItemDelegate. For example to show the level name, set the following as the delegate:

 import Felgo 3.0

 SimpleButton {
   height: 20
   width: levelSelectionList.width

   // the levelName is a key of levelMetaData (=modelData)
   // you can access all the properties here
   text: modelData.levelName

   onClicked: {
     levelSelectionList.levelSelected(modelData)
   }
 }// end of SimpleButton

See the Stack With Friends Demo for a full example how to customize a LevelSelectionList::levelItemDelegate.


Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded