public CCBReader(CCBReader reader) { mCurrentByte = -1; mCurrentBit = -1; mLoadedSpriteSheets = reader.mLoadedSpriteSheets; mCCNodeLoaderLibrary = reader.mCCNodeLoaderLibrary; mCCBMemberVariableAssigner = reader.mCCBMemberVariableAssigner; mCCBSelectorResolver = reader.mCCBSelectorResolver; mCCNodeLoaderListener = reader.mCCNodeLoaderListener; }
public CCBReader(CCNodeLoaderLibrary nodeLoaderLibrary, ICCBMemberVariableAssigner memberVariableAssigner, ICCBSelectorResolver selectorResolver, ICCNodeLoaderListener nodeLoaderListener) { mCurrentByte = -1; mCurrentBit = -1; mLoadedSpriteSheets = new List <string>(); mCCNodeLoaderLibrary = nodeLoaderLibrary; mCCBMemberVariableAssigner = memberVariableAssigner; mCCBSelectorResolver = selectorResolver; mCCNodeLoaderListener = nodeLoaderListener; }
public CCBReader(CCBReader reader) { _currentByte = -1; _currentBit = -1; _loadedSpriteSheets = reader._loadedSpriteSheets; _nodeLoaderLibrary = reader._nodeLoaderLibrary; _CCBMemberVariableAssigner = reader._CCBMemberVariableAssigner; _CCBSelectorResolver = reader._CCBSelectorResolver; _nodeLoaderListener = reader._nodeLoaderListener; _ownerCallbackNames = reader._ownerCallbackNames; _ownerCallbackNodes = reader._ownerCallbackNodes; _ownerOutletNames = reader._ownerOutletNames; _ownerOutletNodes = reader._ownerOutletNodes; _CCBRootPath = reader.CCBRootPath; Init(); }
public CCBReader(CCNodeLoaderLibrary nodeLoaderLibrary, ICCBMemberVariableAssigner memberVariableAssigner, ICCBSelectorResolver selectorResolver, ICCNodeLoaderListener nodeLoaderListener) { _currentByte = -1; _currentBit = -1; _loadedSpriteSheets = new List<string>(); _nodeLoaderLibrary = nodeLoaderLibrary; _CCBMemberVariableAssigner = memberVariableAssigner; _CCBSelectorResolver = selectorResolver; _nodeLoaderListener = nodeLoaderListener; Init(); }
public CCBReader(CCNodeLoaderLibrary nodeLoaderLibrary, ICCBMemberVariableAssigner memberVariableAssigner, ICCBSelectorResolver selectorResolver) : this(nodeLoaderLibrary, memberVariableAssigner, selectorResolver, null) { }
public CCBReader(CCNodeLoaderLibrary nodeLoaderLibrary, ICCBMemberVariableAssigner memberVariableAssigner) : this(nodeLoaderLibrary, memberVariableAssigner, null, null) { }
private CCNode ReadNodeGraph(CCNode parent) { /* Read class name. */ string className = ReadCachedString(); string _jsControlledName = null; if (_jsControlled) { _jsControlledName = ReadCachedString(); } // Read assignment type and name var memberVarAssignmentType = (CCBTargetType)ReadInt(false); string memberVarAssignmentName = String.Empty; if (memberVarAssignmentType != CCBTargetType.None) { memberVarAssignmentName = ReadCachedString(); } CCNodeLoader ccNodeLoader = _nodeLoaderLibrary.GetCCNodeLoader(className); if (ccNodeLoader == null) { CCLog.Log("no corresponding node loader for {0}", className); return(null); } CCNode node = ccNodeLoader.LoadCCNode(parent, this); // Set root node if (_actionManager.RootNode == null) { _actionManager.RootNode = node; } // Assign controller if (_jsControlled && node == _actionManager.RootNode) { _actionManager.DocumentControllerName = _jsControlledName; } // Read animated properties var seqs = new Dictionary <int, Dictionary <string, CCBSequenceProperty> >(); _animatedProps.Clear(); int numSequence = ReadInt(false); for (int i = 0; i < numSequence; ++i) { int seqId = ReadInt(false); var seqNodeProps = new Dictionary <string, CCBSequenceProperty>(); int numProps = ReadInt(false); for (int j = 0; j < numProps; ++j) { var seqProp = new CCBSequenceProperty(); seqProp.Name = ReadCachedString(); seqProp.Type = (CCBPropertyType)ReadInt(false); _animatedProps.Add(seqProp.Name); int numKeyframes = ReadInt(false); for (int k = 0; k < numKeyframes; ++k) { CCBKeyframe keyframe = ReadKeyframe(seqProp.Type); seqProp.Keyframes.Add(keyframe); } seqNodeProps.Add(seqProp.Name, seqProp); } seqs.Add(seqId, seqNodeProps); } if (seqs.Count > 0) { _actionManager.AddNode(node, seqs); } // Read properties ccNodeLoader.ParseProperties(node, parent, this); bool isCCBFileNode = node is CCBFile; // Handle sub ccb files (remove middle node) if (isCCBFileNode) { var ccbFileNode = (CCBFile)node; CCNode embeddedNode = ccbFileNode.FileNode; embeddedNode.Position = ccbFileNode.Position; embeddedNode.RotationX = ccbFileNode.RotationX; embeddedNode.RotationY = ccbFileNode.RotationY; embeddedNode.ScaleX = ccbFileNode.ScaleX; embeddedNode.ScaleY = ccbFileNode.ScaleY; embeddedNode.Tag = ccbFileNode.Tag; embeddedNode.Visible = true; //embeddedNode.IgnoreAnchorPointForPosition = ccbFileNode.IgnoreAnchorPointForPosition; _actionManager.MoveAnimationsFromNode(ccbFileNode, embeddedNode); ccbFileNode.FileNode = null; node = embeddedNode; } #if CCB_ENABLE_JAVASCRIPT /* * if (memberVarAssignmentType && memberVarAssignmentName && ![memberVarAssignmentName isEqualToString:@""]) * { * [[JSCocoa sharedController] setObject:node withName:memberVarAssignmentName]; * }*/ #else if (memberVarAssignmentType != CCBTargetType.None) { if (!_jsControlled) { object target = null; if (memberVarAssignmentType == CCBTargetType.DocumentRoot) { target = _actionManager.RootNode; } else if (memberVarAssignmentType == CCBTargetType.Owner) { target = _owner; } if (target != null) { var targetAsCCBMemberVariableAssigner = target as ICCBMemberVariableAssigner; bool assigned = false; if (memberVarAssignmentType != CCBTargetType.None) { if (targetAsCCBMemberVariableAssigner != null) { assigned = targetAsCCBMemberVariableAssigner.OnAssignCCBMemberVariable(target, memberVarAssignmentName, node); } if (!assigned && _CCBMemberVariableAssigner != null) { _CCBMemberVariableAssigner.OnAssignCCBMemberVariable(target, memberVarAssignmentName, node); } } } } else { if (memberVarAssignmentType == CCBTargetType.DocumentRoot) { _actionManager.AddDocumentOutletName(memberVarAssignmentName); _actionManager.AddDocumentOutletNode(node); } else { _ownerOutletNames.Add(memberVarAssignmentName); _ownerOutletNodes.Add(node); } } } // Assign custom properties. if (ccNodeLoader.CustomProperties.Count > 0) { bool customAssigned = false; if (!_jsControlled) { Object target = node; if (target != null) { ICCBMemberVariableAssigner targetAsCCBMemberVariableAssigner = target as ICCBMemberVariableAssigner; if (targetAsCCBMemberVariableAssigner != null) { var pCustomPropeties = ccNodeLoader.CustomProperties; foreach (var pElement in pCustomPropeties) { customAssigned = targetAsCCBMemberVariableAssigner.OnAssignCCBCustomProperty(target, pElement.Key, pElement.Value); if (!customAssigned && _CCBMemberVariableAssigner != null) { customAssigned = _CCBMemberVariableAssigner.OnAssignCCBCustomProperty(target, pElement.Key, pElement.Value); } } } } } } #endif // CCB_ENABLE_JAVASCRIPT _animatedProps.Clear(); /* Read and add children. */ int numChildren = ReadInt(false); for (int i = 0; i < numChildren; i++) { CCNode child = ReadNodeGraph(node); node.AddChild(child); } if (!isCCBFileNode) { // Call onNodeLoaded var nodeAsCCNodeLoaderListener = node as ICCNodeLoaderListener; if (nodeAsCCNodeLoaderListener != null) { nodeAsCCNodeLoaderListener.OnNodeLoaded(node, ccNodeLoader); } else if (_nodeLoaderListener != null) { _nodeLoaderListener.OnNodeLoaded(node, ccNodeLoader); } } return(node); }