Trans modifcation for cleaner DATA folder loading
Monkey Forums/Monkey Code/Trans modifcation for cleaner DATA folder loading| 
 | ||
| probably possible to do in other way but this is the monkey way modify src\trans\target.monkey for auto file management so build folder contains only proper files and only proper files are loaded and cached in the application 
DeleteDir dir,True
CreateDir dir
If FileType( dataPath )=FILETYPE_DIR
	CopyDir dataPath,dir,True,False
Endif
For Local file$=Eachin app.fileImports
	Local lll$ = ExtractExt( file ).ToLower()
	Select lll			
	
	'all text files in data/tetxt
	Case "txt","xml","json"
		If Not embedTextFiles 
			CopyFile file,dir+"/"+StripDir( file )
		Endif
		
	'graphic file formats in data/graphics
	Case "png","jpg","bmp"
	
		'for ios only in IOS folder
		If (ENV_TARGET = "ios")
			If (file.Contains("ios"))
				CopyFile file,dir+"/"+StripDir( file )
		'for android only in android folder		
		ElseIf (ENV_TARGET = "android")
			If (file.Contains("android"))
				CopyFile file,dir+"/"+StripDir( file )
		' other targets in desktop folder		
		Else
			If (file.Contains("desktop"))
				CopyFile file,dir+"/"+StripDir( file )
		End	
	End
	
	'audio file formats in data/sound/
	Case "wav","ogg","aac","m4a","mp4","aif","caf","mp3","wma"
		'for ios only waves
		If (ENV_TARGET = "ios" And lll = "wav")
			CopyFile file,dir+"/"+StripDir( file )
		'for android only ogg	
		ElseIf (ENV_TARGET = "android" And lll = "ogg")
			CopyFile file,dir+"/"+StripDir( file )
		'for flash copy only mp3	
		ElseIf (ENV_TARGET = "flash" And lll = "mp3")
			CopyFile file,dir+"/"+StripDir( file )
		'for other copy all of them	
		Else
			CopyFile file,dir+"/"+StripDir( file )
		End	
	End Select
Next
this is the folder structure in DATA folder I am using another tool made in .NET to generate all graphics and sounds properly from some base folder with higher base resolution for graphics DATA SOUNDS FILE.WAV FILE.OGG FILE.MP3 MUSIC FILE.WAV FILE.OGG FILE.MP3 TEXT FILE.TXT GRAPHICS IOS FILE.PNG '320x480 for iphone3 FILE@... '640x960 for iphone retina if not avaiable load normal file FILE@... '1024x768 for ipad if not available load 2x ANDROID FILE@... '240x320 -> strech the rest FILE@... '320x480 -> strech the rest FILE@... '480x800 -> strech the rest DESKTOP FILE.PNG some code for OnCreate() 'CHECK CURRENT ORIENTATION IF(DEVICE_HEIGHT > DEVICE_WIDTH) ORIENTATION = 1 IF(DEVICE_HEIGHT < DEVICE_WIDTH) ORIENTATION = 0 #TARGET = "ios" 'check device area if(DEVICE_HEIGHT*DEVICE_WIDTH = 320*480) IOS_DEVICE = 0 'iPhone if(DEVICE_HEIGHT*DEVICE_WIDTH = 640*960) IOS_DEVICE = 1 'iPhone 4 Retina if(DEVICE_HEIGHT*DEVICE_WIDTH = 1024*768) IOS_DEVICE = 2 'iPad SOUND_EXT = ".wav" IMAGE_PATH = "graphics/ios/" IF(IOS_DEVICE = 0) IMAGE_EXT = ".png" IF(IOS_DEVICE = 1) IMAGE_EXT = "@2x.png" IF(IOS_DEVICE = 2) IMAGE_EXT = "@PAD.png" #END #TARGET = "android" if(ORIENTATION = 1) if(DEVICE_WIDTH = 240) ANDROID_DEVICE = 0 if(DEVICE_WIDTH = 320) ANDROID_DEVICE = 1 if(DEVICE_WIDTH = 480) ANDROID_DEVICE = 2 End if(ORIENTATION = 0) if(DEVICE_HEIGHT = 240) ANDROID_DEVICE = 0 if(DEVICE_HEIGHT = 320) ANDROID_DEVICE = 1 if(DEVICE_HEIGHT = 480) ANDROID_DEVICE = 2 End IF(ANDROID_DEVICE = 0) IMAGE_EXT = "@240.png" 'base 240x320 -> ??? IF(ANDROID_DEVICE = 1) IMAGE_EXT = "@320.png" 'base 320x480 -> any other is widden IF(ANDROID_DEVICE = 2) IMAGE_EXT = "@480.png" 'base 480x800 -> and 480x854 is widen IMAGE_PATH = "graphics/android/" SOUND_EXT = ".ogg" #END #TARGET = "flash" IMAGE_EXT = ".png" SOUND_EXT = ".mp3" IMAGE_PATH = "graphics/desktop/" #END #TARGET = "html5" Local br# = GetBrowserName() if(br = "Chrome" or br = "Opera" or br = "Firefox") SOUND_EXT = ".ogg" if(br = "Safari" or br = "MSIE") SOUND_EXT = ".wav" IMAGE_EXT = ".png" IMAGE_PATH = "graphics/desktop/" #END to load files we can just 
'*******************************
'* LOAD SPLASH SCREEN DATA
'*******************************
Method LoadSplashScreens(backPath$)	
			
	back = LoadImage(IMAGE_PATH + backPath + IMAGE_EXT)
		
End
'*******************************
'* LOAD MUSIC AND PLAY
'*******************************
Method MusicLoadPlay:Void(file:String, flags:Int=1)
	StopMusic()
	SetMusicLevel(musicVolume)
	If file.Contains(".wav") Or file.Contains(".ogg") Or file.Contains(".mp3") Then		
		nextMusicPath = MUSIC_PATH + file
			
		if(soundsOn) return	
		musicOn = PlayMusic(nextMusicPath, flags)
	Else
		nextMusicPath = MUSIC_PATH + file + SOUND_EXT
		
		if(soundsOn) return	
		musicOn = PlayMusic(nextMusicPath, flags)
	End	
End	
multi layouts in application. Application is designed to be run for 640/960 for all game mechanics and stuff (touch pad, UI, drawing, positions). All mechanics are scaled using resX and resY variables based and all graphics are loaded with proper resolution extensions so for 320x480 resX would be 0.5 and buttonMenu@... would be loaded. '******************************* '* '******************************* Method SetupOutPutResolution(modeX#, modeY#) resX = modeX / 640.0 resY = modeY / 960.0 End '******************************* Method SetupOutPutResolution() resX = DEVICE_WIDTH / 640.0 resY = DEVICE_HEIGHT / 960.0 End |