1 #insert scripts\shared\shared.gsh;
3 #insert scripts\shared\ai\systems\blackboard.gsh;
9 Assert( IsDefined( entity.__blackboard ),
"Blackboard - No blackboard has been created for this entity." );
10 Assert( !IsDefined( entity.__blackboard[attributeName] ),
"BlackBoard - Attribute " + attributeName +
" already registered." );
12 if( IsDefined( getterFunction ) )
16 Assert( IsFunctionPtr( getterFunction ) );
18 entity.__blackboard[attributeName] = getterFunction;
23 if( !IsDefined( defaultAttributeValue ) )
25 defaultAttributeValue = undefined;
28 entity.__blackboard[attributeName] = defaultAttributeValue;
34 if( IsFunctionPtr( entity.__blackboard[attributeName] ) )
36 getterFunction = entity.__blackboard[attributeName];
37 attributeValue = entity [[getterFunction]]();
40 if( IsActor( entity ) )
41 entity updatetrackedblackboardattribute( attributeName );
44 return attributeValue;
49 if( IsActor( entity ) )
50 entity updatetrackedblackboardattribute( attributeName );
52 return entity.__blackboard[attributeName];
58 if ( IsDefined( entity.__blackboard[attributeName] ) )
60 if ( !IsDefined( attributeValue ) && IsFunctionPtr( entity.__blackboard[attributeName] ) )
66 Assert( !IsFunctionPtr( entity.__blackboard[attributeName] ),
"Blackboard - Attribute value can not be set explicitly, as it has a getterFunction." );
69 entity.__blackboard[attributeName] = attributeValue;
72 if ( IsActor( entity ) )
73 entity updatetrackedblackboardattribute( attributeName );
79 if( !IsDefined( entity.__blackboard ) )
81 entity.__blackboard = [];
84 if( !IsDefined( level._setBlackboardAttributeFunc ) )