-TargetableInstance(
- const scene::Path& path,
- scene::Instance* parent,
- void* instance,
- InstanceTypeCastTable& casts,
- EntityKeyValues& entity,
- Targetable& targetable
- ) :
- SelectableInstance( path, parent, instance, casts ),
- m_entity( entity ),
- m_targeted( targetable ),
- m_renderable( m_targeting.get() ){
- m_entity.attach( *this );
- m_entity.attach( m_targeting );
-}
-~TargetableInstance(){
- m_entity.detach( m_targeting );
- m_entity.detach( *this );
-}
-
-void setTargetsChanged( const Callback<void()>& targetsChanged ){
- m_targeting.setTargetsChanged( targetsChanged );
-}
-void targetsChanged(){
- m_targeting.targetsChanged();
-}
-
-void insert( const char* key, EntityKeyValue& value ){
- if ( string_equal( key, g_targetable_nameKey ) ) {
- value.attach( TargetedEntity::TargetnameChangedCaller( m_targeted ) );
- }
-}
-void erase( const char* key, EntityKeyValue& value ){
- if ( string_equal( key, g_targetable_nameKey ) ) {
- value.detach( TargetedEntity::TargetnameChangedCaller( m_targeted ) );
- }
-}
-
-const Vector3& world_position() const {
+ TargetableInstance(
+ const scene::Path &path,
+ scene::Instance *parent,
+ void *instance,
+ InstanceTypeCastTable &casts,
+ EntityKeyValues &entity,
+ Targetable &targetable
+ ) :
+ SelectableInstance(path, parent, instance, casts),
+ m_entity(entity),
+ m_targeted(targetable),
+ m_renderable(m_targeting.get())
+ {
+ m_entity.attach(*this);
+ m_entity.attach(m_targeting);
+ }
+
+ ~TargetableInstance()
+ {
+ m_entity.detach(m_targeting);
+ m_entity.detach(*this);
+ }
+
+ void setTargetsChanged(const Callback<void()> &targetsChanged)
+ {
+ m_targeting.setTargetsChanged(targetsChanged);
+ }
+
+ void targetsChanged()
+ {
+ m_targeting.targetsChanged();
+ }
+
+ void insert(const char *key, EntityKeyValue &value)
+ {
+ if (string_equal(key, g_targetable_nameKey)) {
+ value.attach(TargetedEntity::TargetnameChangedCaller(m_targeted));
+ }
+ }
+
+ void erase(const char *key, EntityKeyValue &value)
+ {
+ if (string_equal(key, g_targetable_nameKey)) {
+ value.detach(TargetedEntity::TargetnameChangedCaller(m_targeted));
+ }
+ }
+
+ const Vector3 &world_position() const
+ {