//------------------------------------------------------------------------- bool PUDoEnableComponentEventHandlerTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node ) { PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node); PUEventHandler* evt = static_cast<PUEventHandler *>(prop->parent->context); PUDoEnableComponentEventHandler* handler = static_cast<PUDoEnableComponentEventHandler*>(evt); if (prop->name == token[TOKEN_DOENABLE_COMPONENT]) { // Property: enable_component if (passValidatePropertyNumberOfValues(compiler, prop, token[TOKEN_DOENABLE_COMPONENT], 3)) { std::string componentType; std::string name; bool enabled = true; PUAbstractNodeList::const_iterator i = prop->values.begin(); if(getString(**i, &componentType)) { if (componentType == token[TOKEN_DOENABLE_EMITTER_COMPONENT]) { handler->setComponentType(CT_EMITTER); } else if (componentType == token[TOKEN_DOENABLE_AFFECTOR_COMPONENT]) { handler->setComponentType(CT_AFFECTOR); } else if (componentType == token[TOKEN_DOENABLE_OBSERVER_COMPONENT]) { handler->setComponentType(CT_OBSERVER); } else if (componentType == token[TOKEN_DOENABLE_TECHNIQUE_COMPONENT]) { handler->setComponentType(CT_TECHNIQUE); } ++i; if(getString(**i, &name)) { handler->setComponentName(name); ++i; if (getBoolean(**i, &enabled)) { handler->setComponentEnabled(enabled); return true; } } } } } return false; }
void PUDoEnableComponentEventHandler::copyAttributesTo( PUEventHandler* eventHandler ) { PUEventHandler::copyAttributesTo(eventHandler); PUDoEnableComponentEventHandler* doEnableComponentEventHandler = static_cast<PUDoEnableComponentEventHandler*>(eventHandler); doEnableComponentEventHandler->setComponentType(_componentType); doEnableComponentEventHandler->setComponentName(_componentName); doEnableComponentEventHandler->setComponentEnabled(_componentEnabled); }