Drag[en]gine Script Module DragonScript 1.32.1
Loading...
Searching...
No Matches
Dragengine.Utils.WeightedRandomList Class Reference

List of weighted entries for random retrieval. More...

Inheritance diagram for Dragengine.Utils.WeightedRandomList:

Classes

class  Entry
 Entry. More...
 

Public Member Functions

void add (Object object, float weight)
 Add object.
 
WeightedRandomList collect (Block ablock)
 New weighted random list with filtered elements.
 
void forEach (Block ablock)
 Visit entries with block.
 
Object getObjectAt (int index)
 Object at index.
 
float getWeightAt (int index)
 Weight at index.
 
int indexOfObject (Object object)
 Index of first object or -1 if absent.
 
WeightedRandomList new ()
 Create list.
 
WeightedRandomList new (WeightedRandomList list)
 Create copy of list.
 
Object random (float randomValue)
 Random object using random value in the range from 0 to 1.
 
void removeAll ()
 Remove all objects.
 
void removeFrom (int index)
 Remove object from index.
 
void removeObject (Object object)
 Remove first occurance of object.
 
void setWeightAt (int index, float weight)
 Set weight at index.
 

Public Attributes

bool pDirtyThresholds
 
Array pEntries
 
float pMaxThreshold
 

Protected Member Functions

bool getDirtyThresholds ()
 Threshold are dirty.
 
float getMaxThreshold ()
 Maximum threshold.
 
void updateThresholds ()
 Update thresholds.
 

Detailed Description

List of weighted entries for random retrieval.

List entries have a weight assigned representing the percentage chance of the entry to be selected. If all entries have the same weight ths list behaves the same as Array.random(). Using different weights allows to favor or disfavor certain elements.

Member Function Documentation

◆ add()

void Dragengine.Utils.WeightedRandomList.add ( Object  object,
float  weight 
)

Add object.

◆ collect()

WeightedRandomList Dragengine.Utils.WeightedRandomList.collect ( Block  ablock)

New weighted random list with filtered elements.

Block is called with arguments (Object object, float Weight) and has to return true to include the object or false to exclude the object.

◆ forEach()

void Dragengine.Utils.WeightedRandomList.forEach ( Block  ablock)

Visit entries with block.

Black is called with arguments (Object object, float weight).

◆ getDirtyThresholds()

bool Dragengine.Utils.WeightedRandomList.getDirtyThresholds ( )
protected

Threshold are dirty.

◆ getMaxThreshold()

float Dragengine.Utils.WeightedRandomList.getMaxThreshold ( )
protected

Maximum threshold.

◆ getObjectAt()

Object Dragengine.Utils.WeightedRandomList.getObjectAt ( int  index)

Object at index.

◆ getWeightAt()

float Dragengine.Utils.WeightedRandomList.getWeightAt ( int  index)

Weight at index.

◆ indexOfObject()

int Dragengine.Utils.WeightedRandomList.indexOfObject ( Object  object)

Index of first object or -1 if absent.

◆ new() [1/2]

WeightedRandomList Dragengine.Utils.WeightedRandomList.new ( )

Create list.

◆ new() [2/2]

WeightedRandomList Dragengine.Utils.WeightedRandomList.new ( WeightedRandomList  list)

Create copy of list.

◆ random()

Object Dragengine.Utils.WeightedRandomList.random ( float  randomValue)

Random object using random value in the range from 0 to 1.

Exceptions
EInvalidParamList is empty.
Version
1.30

This function is useful to create reproducible results for example game saves.

◆ removeAll()

void Dragengine.Utils.WeightedRandomList.removeAll ( )

Remove all objects.

◆ removeFrom()

void Dragengine.Utils.WeightedRandomList.removeFrom ( int  index)

Remove object from index.

◆ removeObject()

void Dragengine.Utils.WeightedRandomList.removeObject ( Object  object)

Remove first occurance of object.

◆ setWeightAt()

void Dragengine.Utils.WeightedRandomList.setWeightAt ( int  index,
float  weight 
)

Set weight at index.

◆ updateThresholds()

void Dragengine.Utils.WeightedRandomList.updateThresholds ( )
protected

Update thresholds.

Member Data Documentation

◆ pDirtyThresholds

bool Dragengine.Utils.WeightedRandomList.pDirtyThresholds

◆ pEntries

Array Dragengine.Utils.WeightedRandomList.pEntries

◆ pMaxThreshold

float Dragengine.Utils.WeightedRandomList.pMaxThreshold

The documentation for this class was generated from the following file: