--对某目录下所有场景中所有重复贴图自动更名 zhangy
(
	fn changeMaps item goDir= 
	(		
		if classof(item)==SubAnim and (classof item.value)==Bitmaptexture then
		(	
			local fileStr=item.filename
			local filePath=getFilenamePath fileStr
			local fileNameStr=filenameFromPath fileStr
			local fileType=getFilenameType fileStr
			local fileName=getFilenameFile fileStr
			local map2Dir=goDir+"/"
			local mapTargetName=""
			--if the bitmap already in the collection
			if (getfiles fileStr).count!=0 and (finditem bitmapCollector fileNameStr)!=0 then
				mapTargetName=fileName+"_"+maxFileName+fileType	
			else
			(	
				append bitmapCollector mapTargetName
				mapTargetName=fileName+fileType
			)

			map2Dir+=mapTargetName
			item.filename=map2Dir
			format "copy file from :% to:% \n"  fileStr map2Dir	
			copyFile fileStr map2Dir
		)
		else if item!=undefined do
		(
			subNum=item.numsubs
			if subNum>=1 do for i=1 to subNum do ChangeMaps item[i] goDir
		)
	)
	fn addmap mapfile =
	(
		local mapfileN=mapfile as name
		 append mapfiles mapfileN
	)
	fn resovlePath=
	(
		enumeratefiles addmap
		sort mapfiles
		ATSOps.selectfiles mapfiles 
		ATSOps.ResolveSelectionToAbsolute()
	)
	fn mapRename map2Dir scene2dir sceneDir=
	(
		dir_array=#(sceneDir)
		max_files=#()
		global	bitmapCollector=#()
		for i in dir_array do 
		(
			join dir_array (GetDirectories(i+"/*"))
			join max_files (getFiles(i+"/*.max"))
		)
		for i in max_files do
		(
			loadMAXFile i useFileUnits:true quiet:true
			resovlePath()
			local saveFileName=scene2dir+"/"+maxFileName
			for proMat in sceneMaterials do
				changeMaps proMat map2Dir
			saveMaxFile saveFileName
			resetMaxFile #noPrompt
			gc()
		)
		
	)
	

	mapTargetDir=""
	sceneTargetDir=""
	sceneFromDir=""
	
	FileDir=getSavePath caption:"请选择你要最终输出的贴图目录,本程序会把所有贴图都拷贝到这个目录"
	if FileDir!=Undefined do
		mapTargetDir=FileDir
	

	FileDir=getSavePath caption:"请选择max场景的另存目录，所有改好的场景都会放到哪里"
	if FileDir!=Undefined do
		sceneTargetDir=FileDir
		
	FileDir=getSavePath caption:"请选择你max场景所在位置，可以有子目录"
	if FileDir!=Undefined do
		sceneFromDir=FileDir
	/*
	mapTargetDir="d:/temp/output/images"
	sceneTargetDir="d:/temp/output"
	sceneFromDir="K:/temp/Scenes"
		*/
	if 	mapTargetDir!="" and sceneTargetDir!="" and 	sceneFromDir!="" do 
		mapRename mapTargetDir sceneTargetDir sceneFromDir
	
)