Пример #1
0
	def _loadBuilding(self, yaml):
		id = int(yaml['id'])
		name = yaml['name'][2:]
		size_x = yaml['size_x']
		size_y = yaml['size_y']
		action_sets = yaml['actionsets']
		object = self.model.createObject(str(name), util.BUILDING_NAMESPACE)
		fife.ObjectVisual.create(object)

		main_action = 'idle'
		for action_set_id in action_sets.iterkeys():
			for action_id in self.all_action_sets[action_set_id].iterkeys():
				main_action = action_id+"_"+str(action_set_id)
				action = object.createAction(main_action)
				fife.ActionVisual.create(action)
				for rotation in self.all_action_sets[action_set_id][action_id].iterkeys():
					if rotation == 45:
						command = 'left-32,bottom+' + str(size_x * 16)
					elif rotation == 135:
						command = 'left-' + str(size_y * 32) + ',bottom+16'
					elif rotation == 225:
						command = 'left-' + str((size_x + size_y - 1) * 32) + ',bottom+' + str(size_y * 16)
					elif rotation == 315:
						command = 'left-' + str(size_x * 32) + ',bottom+' + str((size_x + size_y - 1) * 16)
					else:
						assert False, "Bad rotation for action_set %(id)s: %(rotation)s for action: %(action_id)s" % \
							   { 'id': action_set_id, 'rotation': rotation, 'action_id': action_id }
					anim = self.animationloader.loadResource(str(action_set_id)+"+"+str(action_id)+"+"+str(rotation) + ':shift:' + command)
					action.get2dGfxVisual().addAnimation(int(rotation), anim)
					action.setDuration(anim.getDuration())

		util.addBuilding(id, name, main_action)