Beispiel #1
0
	def doParse(self, inStream, length, parent):
		count = readU32(inStream)
		self.data['sequences'] = []
		for i in range (0, count):
			seq = {}
			seq['name'] = readString(inStream)
			seq['start'] = readU16(inStream)
			seq['end'] = readU16(inStream)
			self.data['sequences'].append(seq)
Beispiel #2
0
	def doParse(self, inStream, length, parent):
		count = readU32(inStream)
		self.data['parts'] = []

		for i in range(0, count):
			part = {}
			part['objectIdRef'] = readU32(inStream)
			part['name'] = readString(inStream)
			self.data['parts'].append(part)
Beispiel #3
0
	def doParse(self, inStream, length, parent):
		c = self._data
		scale = readFloat(inStream)
		c['scale'] = scale
		atlasesCount = readU8(inStream)
		c['atlasesCount'] = atlasesCount
		atlases = []
		for i in range(0, atlasesCount):
			atlas = {}
			atlasId = readU32(inStream)
			atlas['atlasId'] = atlasId
			sources = readU8(inStream)
			atlas['atlasSourcesCount'] = sources
			atlas['atlasSources'] = []
			for i in range(0, sources):
				atlasSource = {}
				fileName = readString(inStream)
				atlasSource['fileName'] = fileName
				csf = readFloat(inStream)
				atlasSource['CSF'] = csf
				atlas['atlasSources'].append(atlasSource)
			atlases.append(atlas)
		c['atlases'] = atlases

		elements = []
		elementsCount = readU32(inStream)
		for i in range(0, elementsCount):
			element = {}
			element['pivot'] = readVec(inStream)
			element['origin'] = readVec(inStream)
			
			element['scale'] = readFloat(inStream)

			element['width'] = readFloat(inStream)
			element['height'] = readFloat(inStream)

			atlasIndex = readU32(inStream)
			if atlasIndex > 0:
				atlasIndex -= 1
			element['atlasIndex'] = atlasIndex

			elementAtlasIndex = readU32(inStream)
			element['elementAtlasIndex'] = elementAtlasIndex

			if self.version() >= 4:
				hasScale9Grid = readU8(inStream)
				element['hasScale9Grid'] = hasScale9Grid
				if hasScale9Grid:
					# scale9GridRect
					element['scale9Grid'] = readRect(inStream)

			elements.append(element)
		c['elements'] = elements
		self._data = c
Beispiel #4
0
	def doParse(self, inStream, length, parent):
		readU32(inStream)
		readU32(inStream)
		aabb = readRect(inStream)
		pivot = readVec(inStream)
		self.header()['pivot'] = pivot
		self.header()['frameSize'] = aabb
		hasLinkage = readU8(inStream)
		if hasLinkage:
			linkageName = readString(inStream)
		d = []
		lastTag = Tag(self)
		while type(lastTag) is not TagEnd:
			lastTag = readTag(inStream, d, self._context)
		self._data['tags'] = d
Beispiel #5
0
	def doParse(self, inStream, length, parent):
		startPos = inStream.tell()
		c = self._data
		
		count = readU32(inStream)
		c["states"] = []

		
		frameNumber = readU32(inStream)

		for i in range(0, count):
			frameState = {}
			hasChangesInDisplayList = readU8(inStream)
			hasActions = readU8(inStream)
			frameState['hasChangesInDisplayList'] = hasChangesInDisplayList
			frameState['hasActions'] = hasActions

			if hasChangesInDisplayList:
				frameState['changesInDisplayList'] = []
				numObjects = readU32(inStream)
				for j in range(0, numObjects):
					frameState['changesInDisplayList'].append(self.extractState(inStream))


			if hasActions:
				frameState['actionParams'] = []
				frameState['actionType'] = readU32(inStream)
				paramsCount = readU32(inStream)
				for i in range(0, paramsCount):
					frameState['actionParams'].append(readString(inStream))

			c["states"].append(frameState)

			#print "expected end:{1} current: {1}".format(startPos + length, inStream.tell())
			if startPos + length > inStream.tell():
				frameNumber = readU32(inStream)

		self._data = c