// // RedBakeNodeLoader.cpp // redream_runtime // // Created by zhuge on 2023/8/10. // #include "RedBakeNodeLoader.h" #define PROPERTY_TEXTURE "texture" #define PROPERTY_BAKE_DATA_FILE "bakeDataFile" #define PROPERTY_BAKE_ANIMATION "bakeAnimation" namespace redream { RedBakeNode* RedBakeNodeLoader::createNode(cocos2d::Node * pParent, redream::REDReader * ccbReader) { auto bakeNode = RedBakeNode::create(); bakeNode->schedule(CC_SCHEDULE_SELECTOR(RedBakeNode::update), 0); return bakeNode; } void RedBakeNodeLoader::onHandlePropTypeTexture(cocos2d::Node *pNode, cocos2d::Node *pParent, const char *pPropertyName, cocos2d::Texture2D *pTexture2D, REDReader *ccbReader) { if (strcmp(pPropertyName, PROPERTY_TEXTURE) == 0) { ((RedBakeNode*)pNode)->setTexture(pTexture2D); } else { NodeLoader::onHandlePropTypeTexture(pNode, pParent, pPropertyName, pTexture2D, ccbReader); } } void RedBakeNodeLoader::onHandlePropTypeSpriteFrame(cocos2d::Node *pNode, cocos2d::Node *pParent, const char *pPropertyName, cocos2d::SpriteFrame *pSpriteFrame, REDReader *ccbReader) { if (strcmp(pPropertyName, PROPERTY_TEXTURE) == 0) { ((RedBakeNode*)pNode)->setTexture(pSpriteFrame->getTexture()); } else { NodeLoader::onHandlePropTypeSpriteFrame(pNode, pParent, pPropertyName, pSpriteFrame, ccbReader); } } void RedBakeNodeLoader::onHandlePropTypeBakeDataFile(cocos2d::Node *pNode, cocos2d::Node *pParent, const char *pPropertyName, const char *dataFile, REDReader *ccbReader) { if (strcmp(pPropertyName, PROPERTY_BAKE_DATA_FILE) == 0) { ((RedBakeNode*)pNode)->setBakeDataFile(dataFile); } else { NodeLoader::onHandlePropTypeBakeDataFile(pNode, pParent, pPropertyName, dataFile, ccbReader); } } void RedBakeNodeLoader::onHandlePropTypeBakeAnimation(cocos2d::Node *pNode, cocos2d::Node *pParent, const char *pPropertyName, const char *animationName, float elapsedTime, bool loop, REDReader *ccbReader) { if (strcmp(pPropertyName, PROPERTY_BAKE_ANIMATION) == 0) { ((RedBakeNode*)pNode)->setBakeFrame(RedBakeNodeFrame({animationName, elapsedTime, loop})); } else { NodeLoader::onHandlePropTypeBakeAnimation(pNode, pParent, pPropertyName, animationName, elapsedTime, loop, ccbReader); } } } // END NAMESPACE