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 Object ActionForCallbackChannel(CCBSequenceProperty channel) { float lastKeyframeTime = 0; var actions = new List <CCFiniteTimeAction>(); var keyframes = channel.Keyframes; int numKeyframes = keyframes.Count; for (int i = 0; i < numKeyframes; ++i) { CCBKeyframe keyframe = keyframes[i]; float timeSinceLastKeyframe = keyframe.Time - lastKeyframeTime; lastKeyframeTime = keyframe.Time; if (timeSinceLastKeyframe > 0) { actions.Add(new CCDelayTime(timeSinceLastKeyframe)); } var keyVal = (List <CCBValue>)keyframe.Value; string selectorName = keyVal[0].GetStringValue(); CCBTargetType selectorTarget = (CCBTargetType)int.Parse(keyVal[1].GetStringValue()); if (_jsControlled) { string callbackName = string.Format("{0}:{1}", selectorTarget, selectorName); CCCallFunc callback = (CCCallFunc)_keyframeCallFuncs[callbackName].Copy(); if (callback != null) { actions.Add(callback); } } else { Object target = null; if (selectorTarget == CCBTargetType.DocumentRoot) { target = _rootNode; } else if (selectorTarget == CCBTargetType.Owner) { target = _owner; } if (target != null) { if (selectorName.Length > 0) { Action <CCNode> selCallFunc = null; ICCBSelectorResolver targetAsCCBSelectorResolver = target as ICCBSelectorResolver; if (targetAsCCBSelectorResolver != null) { selCallFunc = targetAsCCBSelectorResolver.OnResolveCCBCCCallFuncSelector(target, selectorName); } if (selCallFunc == null) { CCLog.Log("Skipping selector {0} since no CCBSelectorResolver is present.", selectorName); } else { CCCallFuncN callback = new CCCallFuncN(selCallFunc); actions.Add(callback); } } else { CCLog.Log("Unexpected empty selector."); } } } } if (actions.Capacity < 1) { return(null); } return(new CCSequence(actions.ToArray())); }
protected virtual BlockCCControlData ParsePropTypeBlockCcControl(CCNode node, CCNode parent, CCBReader reader) { string selectorName = reader.ReadCachedString(); var selectorTarget = (CCBTargetType)reader.ReadInt(false); var controlEvents = (CCControlEvent)reader.ReadInt(false); if (selectorTarget != CCBTargetType.None) { object target = null; if (selectorTarget == CCBTargetType.DocumentRoot) { target = reader.AnimationManager.RootNode; } else if (selectorTarget == CCBTargetType.Owner) { target = reader.Owner; } if (target != null) { if (selectorName.Length > 0) { Action <object, CCControlEvent> selCCControlHandler = null; var targetAsCCBSelectorResolver = target as ICCBSelectorResolver; if (targetAsCCBSelectorResolver != null) { selCCControlHandler = targetAsCCBSelectorResolver.OnResolveCCBCCControlSelector(target, selectorName); } if (selCCControlHandler == null) { ICCBSelectorResolver ccbSelectorResolver = reader.SelectorResolver; if (ccbSelectorResolver != null) { selCCControlHandler = ccbSelectorResolver.OnResolveCCBCCControlSelector(target, selectorName); } } if (selCCControlHandler == null) { CCLog.Log("Skipping selector '{0}' since no CCBSelectorResolver is present.", selectorName); } else { var blockCCControlData = new BlockCCControlData(); blockCCControlData.mSELCCControlHandler = selCCControlHandler; blockCCControlData.mTarget = target; blockCCControlData.mControlEvents = controlEvents; return(blockCCControlData); } } else { CCLog.Log("Unexpected empty selector."); } } else { CCLog.Log("Unexpected NULL target for selector."); } } return(null); }
protected virtual BlockData ParsePropTypeBlock(CCNode node, CCNode parent, CCBReader reader) { string selectorName = reader.ReadCachedString(); var selectorTarget = (CCBTargetType)reader.ReadInt(false); if (selectorTarget != CCBTargetType.None) { object target = null; if (selectorTarget == CCBTargetType.DocumentRoot) { target = reader.AnimationManager.RootNode; } else if (selectorTarget == CCBTargetType.Owner) { target = reader.Owner; /* Scripting specific code because selector function is common for all callbacks. * So if we had 1 target and 1 selector function, the context (callback function name) * would get lost. Hence the need for a new target for each callback. */ if (reader.hasScriptingOwner) { var proxy = (ICCBScriptOwnerProtocol)reader.Owner; if (proxy != null) { target = proxy.CreateNew() as object; } } } if (target != null) { if (selectorName.Length > 0) { Action <object> selMenuHandler = null; var targetAsCCBSelectorResolver = target as ICCBSelectorResolver; if (targetAsCCBSelectorResolver != null) { selMenuHandler = targetAsCCBSelectorResolver.OnResolveCCBCCMenuItemSelector(target, selectorName); } if (selMenuHandler == null) { ICCBSelectorResolver ccbSelectorResolver = reader.SelectorResolver; if (ccbSelectorResolver != null) { selMenuHandler = ccbSelectorResolver.OnResolveCCBCCMenuItemSelector(target, selectorName); } } if (selMenuHandler == null) { CCLog.Log("Skipping selector '%s' since no CCBSelectorResolver is present.", selectorName); } else { var blockData = new BlockData(); blockData.mSELMenuHandler = selMenuHandler; blockData.mTarget = target; return(blockData); } } else { CCLog.Log("Unexpected empty selector."); } } else { CCLog.Log("Unexpected NULL target for selector."); } } return(null); }