/Tools/HowToPackager/create_resources_text_script.py

http://swingamesdk.googlecode.com/
Python | 118 lines | 101 code | 10 blank | 7 comment | 26 complexity | ab48ca79f18d181dcbf948f3a538cf7a MD5 | raw file
  1. import os
  2. import re
  3. import shutil
  4. from convert_utils import *
  5. import glob
  6. _load = ["LoadAnimationScriptNamed","LoadAnimationScript","LoadMusic","LoadMusicNamed","LoadSoundEffect","LoadSoundEffectNamed","LoadCharacter","LoadCharacterNamed","LoadBitmap","LoadBitmapWithTransparentColor","LoadBitmapNamed","LoadFont","LoadFontNamed","LoadResourceBundle","LoadResourceBundleWithProgress","LoadResourceBundleNamed","LoadTransparentBitmap","LoadTransparentBitmapNamed", "LoadPanel"]
  7. _pkg = {
  8. "TIMER":"timer",
  9. "ANIM":"animations",
  10. "LoadAnimationScriptNamed":"animations",
  11. "LoadAnimationScript":"animations",
  12. "LoadResourceBundle":"bundles",
  13. "LoadResourceBundleWithProgress":"bundles",
  14. "LoadResourceBundleNamed":"bundles",
  15. "LoadResourceBundle":"bundles",
  16. "LoadResourceBundleWithProgress":"bundles",
  17. "LoadResourceBundleNamed":"bundles",
  18. "LoadMusic":"sounds",
  19. "LoadMusicNamed":"sounds",
  20. "LoadSoundEffect":"sounds",
  21. "BITMAP":"images",
  22. "SOUND":"sounds",
  23. "MUSIC":"sounds",
  24. "LoadSoundEffectNamed":"sounds",
  25. "LoadCharacter":"images",
  26. "CHARACTER":"images",
  27. "LoadCharacterNamed":"images",
  28. "LoadBitmapNamed":"images",
  29. "LoadBitmap":"images",
  30. "LoadBitmapWithTransparentColor":"images",
  31. "LoadTransparentBitmap":"images",
  32. "LoadTransparentBitmapNamed":"images",
  33. "FONT":"fonts",
  34. "MAP":"maps",
  35. "LoadFont":"fonts",
  36. "LoadFontNamed":"fonts",
  37. "PANEL":"panels",
  38. "LoadPanel":"panels"}
  39. def get_Resources(word_list,f):
  40. # print " --> "+_pkg[word_list[0]]+'/'+word_list[-1]
  41. f.write(_pkg[word_list[0]]+'/'+word_list[-1]+'\n')
  42. if _pkg[word_list[0]] == 'bundles':
  43. # print "Bundled word "+_pkg[word_list[0]]
  44. load_Bundled_Resources(word_list, f)
  45. def get_Resources_Next(word_list, f):
  46. # print _pkg[word_list[1]]+'/'+word_list[-1]
  47. f.write(_pkg[word_list[1]]+'/'+word_list[-1]+'\n')
  48. def load_Bundled_Resources(word_list, f):
  49. bundle_file = get_test_resource_directory() + "" + _pkg[word_list[0]] + "/" + word_list[-1]
  50. bun = open(bundle_file,'r')
  51. lines_in_bundles_file = bun.readlines()
  52. for line in lines_in_bundles_file:
  53. word_list = re.findall(r"[A-Za-z_.-]+",line)
  54. if _pkg[word_list[0]] == "timer":
  55. # print "TEST word_list"+_pkg[word_list[0]]
  56. # print "TIMER FOUND -- passing"
  57. pass
  58. else:
  59. f.write(_pkg[word_list[0]].lower()+ "/" + word_list[-1]+'\n')
  60. # print _pkg[word_list[0]].lower()+ "/" + word_list[-1]
  61. def load_animation_script_resources(word_list,f):
  62. resource = []
  63. bundle_file = get_test_resource_directory() + "" + _pkg[word_list[0]] + "/" + word_list[2]
  64. bun = open(bundle_file,'r')
  65. lines_in_bundles_file = bun.readlines()
  66. for line in lines_in_bundles_file:
  67. word_list = re.findall(r"[A-Za-z_.-]+",line)
  68. if (len(word_list) > 2) and (word_list[0] == "s"):
  69. if len(resource) < 1:
  70. resource.append(word_list[2])
  71. elif resource[-1] != word_list[2]:
  72. resource.append(word_list[2])
  73. for sound in resource:
  74. f.write("sounds/"+sound+'\n')
  75. def load_panels_resources(word_list,f):
  76. bundle_file = get_test_resource_directory() + "panels/" + word_list[2]
  77. bun = open(bundle_file,'r')
  78. lines_in_bundles_file = bun.readlines()
  79. for line in lines_in_bundles_file:
  80. word_list = re.findall(r"[A-Za-z_.-]+",line)
  81. if line[0] == 'a' or line[0] == 'b' or line[0] == 'i':
  82. f.write("images/"+word_list[1]+'\n')
  83. def create_list():
  84. f = open(get_test_directory() + "HowToResources.txt",'w')
  85. dirList = glob.glob(os.path.join(get_test_directory(), "HowTo*.pas"))
  86. for fname in dirList:
  87. newFileName = os.path.basename(fname).split('.')[0]
  88. fileName = "* "+ newFileName
  89. f.write(fileName+'\n')
  90. # print " --Reading :"+fname
  91. how_to_file = open(fname,'r')
  92. lines_in_pas_file = how_to_file.readlines()
  93. for line in lines_in_pas_file:
  94. word_list = re.findall(r"[A-Za-z_0-9.-]+",line)
  95. if len(word_list) > 0:
  96. if word_list[0] in _load or (len(word_list) >= 2 and word_list[1] in _load):
  97. if (word_list[0] == _load[0]): load_animation_script_resources(word_list,f)
  98. if 'LoadPanel' in word_list: load_panels_resources(word_list,f)
  99. if word_list[0] in _pkg:
  100. get_Resources(word_list,f)
  101. elif (len(word_list) >= 2 and word_list[1] in _pkg):
  102. get_Resources_Next(word_list,f)
  103. how_to_file.close()
  104. f.close()
  105. def main():
  106. create_list()
  107. if __name__ == '__main__':
  108. main()