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 |