new DataManager(parent [, eventEmitter])
Parameters:
Name | Type | Argument | Description |
---|---|---|---|
parent |
object | The object that this DataManager belongs to. |
|
eventEmitter |
Phaser.Events.EventEmitter |
<optional> |
The DataManager's event emitter. |
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 19)
Members
-
count :number
-
Return the total number of entries in this Data Manager.
Type:
- number
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 673)
-
events :Phaser.Events.EventEmitter
-
The DataManager's event emitter.
Type:
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 48)
-
freeze :boolean
-
Gets or sets the frozen state of this Data Manager. A frozen Data Manager will block all attempts to create new values or update existing ones.
Type:
- boolean
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 651)
-
list :Object.<string, *>
-
The data list.
Type:
- Object.<string, *>
- Since: 3.0.0
- Default Value:
-
- {}
- Source: src/data/DataManager.js (Line 62)
-
parent :*
-
The object that this DataManager belongs to.
Type:
- *
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 39)
-
values :Object.<string, *>
-
The public values list. You can use this to access anything you have stored in this Data Manager. For example, if you set a value called
gold
you can access it via:this.data.values.gold;
You can also modify it directly:
this.data.values.gold += 1000;
Doing so will emit a
setdata
event from the parent of this Data Manager.Do not modify this object directly. Adding properties directly to this object will not emit any events. Always use
DataManager.set
to create new items the first time around.Type:
- Object.<string, *>
- Since: 3.10.0
- Default Value:
-
- {}
- Source: src/data/DataManager.js (Line 72)
Methods
-
destroy()
-
Destroy this data manager.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 634)
-
each(callback [, context] [, args])
-
Passes all data entries to the given callback.
Parameters:
Name Type Argument Description callback
DataEachCallback The function to call.
context
* <optional>
Value to use as
this
when executing callback.args
* <optional>
<repeatable>
Additional arguments that will be passed to the callback, after the game object, key, and data.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 415)
Returns:
This DataManager object.
-
get(key)
-
Retrieves the value for the given key, or undefined if it doesn't exist.
You can also access values via the
values
object. For example, if you had a key calledgold
you can do either:this.data.get('gold');
Or access the value directly:
this.data.values.gold;
You can also pass in an array of keys, in which case an array of values will be returned:
this.data.get([ 'gold', 'armor', 'health' ]);
This approach is useful for destructuring arrays in ES6.
Parameters:
Name Type Description key
string | Array.<string> The key of the value to retrieve, or an array of keys.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 116)
Returns:
The value belonging to the given key, or an array of values, the order of which will match the input array.
- Type
- *
-
getAll()
-
Retrieves all data values in a new object.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 167)
Returns:
All data values.
- Type
- Object.<string, *>
-
has(key)
-
Determines whether the given key is set in this Data Manager.
Please note that the keys are case-sensitive and must be valid JavaScript Object property strings. This means the keys
gold
andGold
are treated as two unique values within the Data Manager.Parameters:
Name Type Description key
string The key to check.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 577)
Returns:
Returns
true
if the key exists, otherwisefalse
.- Type
- boolean
-
inc(key [, data])
-
Increase a value for the given key. If the key doesn't already exist in the Data Manager then it is increased from 0.
When the value is first set, a
setdata
event is emitted.Parameters:
Name Type Argument Description key
string | object The key to increase the value for.
data
* <optional>
The value to increase for the given key.
- Since: 3.23.0
- Source: src/data/DataManager.js (Line 282)
Fires:
- Phaser.Data.Events#event:SET_DATA
- Phaser.Data.Events#event:CHANGE_DATA
- Phaser.Data.Events#event:CHANGE_DATA_KEY
Returns:
This DataManager object.
-
merge(data [, overwrite])
-
Merge the given object of key value pairs into this DataManager.
Any newly created values will emit a
setdata
event. Any updated values (see theoverwrite
argument) will emit achangedata
event.Parameters:
Name Type Argument Default Description data
Object.<string, *> The data to merge.
overwrite
boolean <optional>
true Whether to overwrite existing data. Defaults to true.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 447)
Fires:
- Phaser.Data.Events#event:SET_DATA
- Phaser.Data.Events#event:CHANGE_DATA
- Phaser.Data.Events#event:CHANGE_DATA_KEY
Returns:
This DataManager object.
-
pop(key)
-
Retrieves the data associated with the given 'key', deletes it from this Data Manager, then returns it.
Parameters:
Name Type Description key
string The key of the value to retrieve and delete.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 549)
Fires:
Returns:
The value of the given key.
- Type
- *
-
query(search)
-
Queries the DataManager for the values of keys matching the given regular expression.
Parameters:
Name Type Description search
RegExp A regular expression object. If a non-RegExp object obj is passed, it is implicitly converted to a RegExp by using new RegExp(obj).
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 190)
Returns:
The values of the keys matching the search string.
- Type
- Object.<string, *>
-
remove(key)
-
Remove the value for the given key.
If the key is found in this Data Manager it is removed from the internal lists and a
removedata
event is emitted.You can also pass in an array of keys, in which case all keys in the array will be removed:
this.data.remove([ 'gold', 'armor', 'health' ]);
Parameters:
Name Type Description key
string | Array.<string> The key to remove, or an array of keys to remove.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 480)
Fires:
Returns:
This DataManager object.
-
reset()
-
Delete all data in this Data Manager and unfreeze it.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 613)
Returns:
This DataManager object.
-
set(key, data)
-
Sets a value for the given key. If the key doesn't already exist in the Data Manager then it is created.
data.set('name', 'Red Gem Stone');
You can also pass in an object of key value pairs as the first argument:
data.set({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 });
To get a value back again you can call
get
:data.get('gold');
Or you can access the value directly via the
values
property, where it works like any other variable:data.values.gold += 50;
When the value is first set, a
setdata
event is emitted.If the key already exists, a
changedata
event is emitted instead, along an event named after the key. For example, if you updated an existing key calledPlayerLives
then it would emit the eventchangedata-PlayerLives
. These events will be emitted regardless if you use this method to set the value, or the directvalues
setter.Please note that the data keys are case-sensitive and must be valid JavaScript Object property strings. This means the keys
gold
andGold
are treated as two unique values within the Data Manager.Parameters:
Name Type Description key
string | object The key to set the value for. Or an object or key value pairs. If an object the
data
argument is ignored.data
* The value to set for the given key. If an object is provided as the key this argument is ignored.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 215)
Fires:
- Phaser.Data.Events#event:SET_DATA
- Phaser.Data.Events#event:CHANGE_DATA
- Phaser.Data.Events#event:CHANGE_DATA_KEY
Returns:
This DataManager object.
-
setFreeze(value)
-
Freeze or unfreeze this Data Manager. A frozen Data Manager will block all attempts to create new values or update existing ones.
Parameters:
Name Type Description value
boolean Whether to freeze or unfreeze the Data Manager.
- Since: 3.0.0
- Source: src/data/DataManager.js (Line 595)
Returns:
This DataManager object.
-
toggle(key)
-
Toggle a boolean value for the given key. If the key doesn't already exist in the Data Manager then it is toggled from false.
When the value is first set, a
setdata
event is emitted.Parameters:
Name Type Description key
string | object The key to toggle the value for.
- Since: 3.23.0
- Source: src/data/DataManager.js (Line 321)
Fires:
- Phaser.Data.Events#event:SET_DATA
- Phaser.Data.Events#event:CHANGE_DATA
- Phaser.Data.Events#event:CHANGE_DATA_KEY
Returns:
This DataManager object.