Shuvit game master repo. http://shuvit.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Record.py 27KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. #record
  2. import bge
  3. from bge import logic
  4. from mathutils import Vector
  5. from SortData import *
  6. import boneRecord
  7. import sound_man
  8. cont = logic.getCurrentController()
  9. own = cont.owner
  10. scene = logic.getCurrentScene()
  11. cube = scene.objects["control_cube.002"]
  12. #obj = scene.objects["control_cube.002"]
  13. #sound_empty = scene.objects['replay_sound_empty']
  14. path = logic.expandPath(own["filePath"])
  15. PAF = 0
  16. DAF = 0
  17. deck = scene.objects["b_deck"]
  18. trucks = scene.objects["b_trucks"]
  19. throw_deck_empty = scene.objects["throw_deck_empty"]
  20. wheel1 = scene.objects["wheel1"]
  21. wheel2 = scene.objects["wheel2"]
  22. wheel3 = scene.objects["wheel3"]
  23. wheel4 = scene.objects["wheel4"]
  24. try:
  25. throw_deck = scene.objects['throw_deck']
  26. except:
  27. throw_deck = None
  28. deckact = deck.actuators["Visibility"]
  29. trucksact = trucks.actuators["Visibility"]
  30. wheel1act = wheel1.actuators["Visibility"]
  31. wheel2act = wheel2.actuators["Visibility"]
  32. wheel3act = wheel3.actuators["Visibility"]
  33. wheel4act = wheel4.actuators["Visibility"]
  34. class getData:
  35. def savePosition(obj, cut):
  36. position = [Vector(obj.worldPosition)[0],
  37. Vector(obj.worldPosition)[1],
  38. Vector(obj.worldPosition)[2]]
  39. position = str(position).strip("[]")
  40. position = position.replace(", ",",")
  41. writeData.addPosition(obj, position, cut)
  42. def saveOrientation(obj, cut):
  43. orientation = [Vector(obj.localOrientation.to_euler())[0],
  44. Vector(obj.localOrientation.to_euler())[1],
  45. Vector(obj.localOrientation.to_euler())[2]]
  46. orientation = str(orientation).strip("[]")
  47. orientation = orientation.replace(", ",",")
  48. writeData.addOrientation(obj, orientation, cut)
  49. def saveScale(obj, cut):
  50. scale = [Vector(obj.localScale)[0],
  51. Vector(obj.localScale)[1],
  52. Vector(obj.localScale)[2]]
  53. scale = str(scale).strip("[]")
  54. scale = scale.replace(", ",",")
  55. writeData.addScale(obj, scale, cut)
  56. def saveColor(obj, cut):
  57. color = [Vector(obj.color)[0],
  58. Vector(obj.color)[1],
  59. Vector(obj.color)[2],
  60. Vector(obj.color)[3]]
  61. color = str(color).strip("[]")
  62. color = color.replace(", ",",")
  63. writeData.addColor(obj, color, cut)
  64. def saveState(obj, cut):
  65. state = str(obj.state)
  66. writeData.addState(obj, state, cut)
  67. def saveVisibility(obj, cut):
  68. visible = obj.visible
  69. if visible:
  70. visible = 1
  71. else:
  72. visible = 0
  73. writeData.addVisibility(obj, str(visible), cut)
  74. def saveSkaterAnim(obj, cut):
  75. import bge
  76. scene = bge.logic.getCurrentScene()
  77. skater = scene.objects["Char4"]
  78. deck = scene.objects["b_deck"]
  79. trucks = scene.objects["b_trucks"]
  80. playing_layer = 0
  81. for x in range(7):
  82. l1 = skater.isPlayingAction(x)
  83. if l1 == True:
  84. playing_layer = x
  85. #print(x)
  86. playing_action = skater.getActionName(playing_layer)
  87. playing_action_frame = skater.getActionFrame(playing_layer)
  88. PAF = playing_action_frame
  89. own['PAF'] = PAF
  90. #print(playing_action, playing_action_frame)
  91. writeData.addSkaterAnim(obj, str(playing_action), cut)
  92. def saveSkaterAnimF(obj, cut):
  93. PAF = own['PAF']
  94. writeData.addSkaterAnimF(obj, str(PAF), cut)
  95. def saveDeckAnim(obj, cut):
  96. # import bge
  97. # scene = bge.logic.getCurrentScene()
  98. # skater = scene.objects["Char4"]
  99. # deck = scene.objects["b_deck"]
  100. # trucks = scene.objects["b_trucks"]
  101. # wheel1 = scene.objects["rollen.000"]
  102. # wheel2 = scene.objects["rollen.001"]
  103. # wheel3 = scene.objects["rollen.002"]
  104. # wheel4 = scene.objects["rollen.003"]
  105. # playing_layer = 0
  106. # for x in range(7):
  107. # l1 = deck.isPlayingAction(x)
  108. # if l1 == True:
  109. # playing_layer = x
  110. # #print(x)
  111. # playing_action = deck.getActionName(playing_layer)
  112. # playing_action_frame = deck.getActionFrame(playing_layer)
  113. # DAF = playing_action_frame
  114. # own['DAF'] = DAF
  115. #print(playing_action, playing_action_frame)
  116. writeData.addDeckAnim(obj, str(1), cut)
  117. def saveDeckAnimF(obj, cut):
  118. #DAF = own['DAF']
  119. writeData.addDeckAnimF(obj, str(1), cut)
  120. def saveSrollVol(obj, cut):
  121. num = cube['sroll_vol']
  122. writeData.addSrollVol(obj, str(num), cut)
  123. def saveSrollPitch(obj, cut):
  124. num = cube['sroll_pitch']
  125. writeData.addSrollPitch(obj, str(num), cut)
  126. def saveSgrind_cementVol(obj, cut):
  127. num = cube['grindcement_vol']
  128. writeData.addSgrind_cementVol(obj, str(num), cut)
  129. def saveSgrind_cementPitch(obj, cut):
  130. num = cube['grindcement_pitch']
  131. writeData.addSgrind_cementPitch(obj, str(num), cut)
  132. def saveSgrind_railVol(obj, cut):
  133. num = cube['grindrail_vol']
  134. writeData.addSgrind_railVol(obj, str(num), cut)
  135. def saveSgrind_railPitch(obj, cut):
  136. num = cube['grindrail_pitch']
  137. writeData.addSgrind_railPitch(obj, str(num), cut)
  138. def saveSpopsound(obj, cut):
  139. num = cube['pop_sound']
  140. writeData.addSpopsound(obj, str(num), cut)
  141. def saveSlandsound(obj, cut):
  142. num = cube['land_sound']
  143. writeData.addSlandsound(obj, str(num), cut)
  144. def saveSdeckvis(obj, cut):
  145. num = cube['deckvis']
  146. writeData.addSdeckvis(obj, str(num), cut)
  147. def savetdPosition(obj, cut):
  148. try:
  149. obj = scene.objects['throw_deck']
  150. except:
  151. pass
  152. position = [Vector(obj.worldPosition)[0],
  153. Vector(obj.worldPosition)[1],
  154. Vector(obj.worldPosition)[2]]
  155. position = str(position).strip("[]")
  156. position = position.replace(", ",",")
  157. writeData.addtdPosition(obj, position, cut)
  158. def savetdOrientation(obj, cut):
  159. try:
  160. obj = scene.objects['throw_deck']
  161. except:
  162. pass
  163. orientation = [Vector(obj.localOrientation.to_euler())[0],
  164. Vector(obj.localOrientation.to_euler())[1],
  165. Vector(obj.localOrientation.to_euler())[2]]
  166. orientation = str(orientation).strip("[]")
  167. orientation = orientation.replace(", ",",")
  168. writeData.addtdOrientation(obj, orientation, cut)
  169. def saveSrevertsound(obj, cut):
  170. num = cube['revert_sound']
  171. writeData.addSrevertsound(obj, str(num), cut)
  172. def loadData():
  173. #Function for loading the data from
  174. #the disk and setting it.
  175. dict = bge.logic.globalDict
  176. objIndex = own["objIndex"]
  177. own["valueIndex"] = objIndex + 1
  178. valueIndex = own["valueIndex"]
  179. playbackSpeed = own["playbackSpeed"]
  180. loadedPosition = own["loadedPosition"]
  181. loadedOrientation = own["loadedOrientation"]
  182. loadedScale = own["loadedScale"]
  183. loadedColor = own["loadedColor"]
  184. loadedVisibility = own["loadedVisibility"]
  185. loadedSkaterAnim = own["loadedSkaterAnim"]
  186. loadedSkaterAnimf = own["loadedSkaterAnimF"]
  187. loadedDeckAnim = own["loadedDeckAnim"]
  188. loadedDeckAnimf = own["loadedDeckAnimF"]
  189. loadedSrollVol = own["loadedSrollVol"]
  190. loadedSrollPitch = own["loadedSrollPitch"]
  191. loadedSgrind_cementlVol = own["loadedSgrind_cementVol"]
  192. loadedSgrind_cementPitch = own["loadedSgrind_cementPitch"]
  193. loadedSgrind_railVol = own["loadedSgrind_railVol"]
  194. loadedSgrind_railPitch = own["loadedSgrind_railPitch"]
  195. loadedSpopsound = own["loadedSpopsound"]
  196. loadedSlandsound = own["loadedSlandsound"]
  197. loadedSdeckvis = own["loadedSdeckvis"]
  198. loadedtdPosition = own["loadedtdPosition"]
  199. loadedtdOrientation = own["loadedtdOrientation"]
  200. loadedSrevertsound = own["loadedSrevertsound"]
  201. skater = scene.objects["Char4"]
  202. deck = scene.objects["b_deck"]
  203. trucks = scene.objects["b_trucks"]
  204. bdeck = scene.objects['deck_arm']
  205. num = 1
  206. obj = scene.objects['control_cube.002']
  207. if num == 1:
  208. #for obj in scene.objects:
  209. if not "recorder" in obj:
  210. obj.state = 100
  211. obj.suspendDynamics()
  212. readData.loadAll() #Load the file!!!
  213. #-----Position-----#
  214. own["lengthPos"] = readData.getLengthPos()
  215. dict['replay_loop_end'] = own['lengthPos']
  216. #print('setting replay end', dict['replay_loop_end'])
  217. lengthPos = own["lengthPos"]
  218. if lengthPos:
  219. if objIndex > lengthPos-1:
  220. own["objIndex"] = dict['replay_loop_start']
  221. if objIndex < dict['replay_loop_start']:
  222. own["objIndex"] = lengthPos-2
  223. name, position = readData.returnPosition(objIndex, valueIndex)
  224. if name in scene.objects:
  225. try:
  226. scene.objects[name].worldPosition = position
  227. scene.objects['replay_sound_empty'].worldPosition = position
  228. #print("replay_sound_empty changing position")
  229. except:
  230. pass
  231. #-----Orientation-----#
  232. own["lengthOri"] = readData.getLengthOri()
  233. lengthOri = own["lengthOri"]
  234. #if lengthPos:
  235. if lengthOri:
  236. if valueIndex > lengthOri-1:
  237. own["valueIndex"] = 0
  238. if objIndex < 0:
  239. own["objIndex"] = lengthOri-2
  240. name, orientation = readData.returnOrientation(objIndex, valueIndex)
  241. if name in scene.objects:
  242. oXYZ = scene.objects[name].localOrientation.to_euler()
  243. oXYZ[0] = float(orientation[0])
  244. oXYZ[1] = float(orientation[1])
  245. oXYZ[2] = float(orientation[2])
  246. try:
  247. scene.objects[name].localOrientation = oXYZ.to_matrix()
  248. except:
  249. pass
  250. #-----Scale-----#
  251. own["lengthSca"] = readData.getLengthSca()
  252. lengthSca = own["lengthSca"]
  253. if lengthSca:
  254. if valueIndex > lengthSca-1:
  255. own["valueIndex"] = 0
  256. if objIndex < 0:
  257. own["objIndex"] = lengthSca-2
  258. name, scale = readData.returnScale(objIndex, valueIndex)
  259. if name in scene.objects:
  260. try:
  261. scene.objects[name].localScale = scale
  262. except:
  263. pass
  264. #-----Color-----#
  265. own["lengthCol"] = readData.getLengthCol()
  266. lengthCol = own["lengthCol"]
  267. if lengthCol:
  268. if valueIndex > lengthCol-1:
  269. own["valueIndex"] = 0
  270. if objIndex < 0:
  271. own["objIndex"] = lengthCol-2
  272. name, color = readData.returnColor(objIndex, valueIndex)
  273. if name in scene.objects:
  274. try:
  275. scene.objects[name].color = color
  276. except:
  277. pass
  278. #-----Visibility-----#
  279. own["lengthVis"] = readData.getLengthVis()
  280. lengthVis = own["lengthVis"]
  281. if lengthVis:
  282. pass
  283. # if valueIndex > lengthVis-1:
  284. # own["valueIndex"] = 0
  285. # if objIndex < 0:
  286. # own["objIndex"] = lengthVis-2
  287. # name, visible = readData.returnVisibility(objIndex, valueIndex)
  288. # if name in scene.objects:
  289. # try:
  290. # scene.objects[name].visible = int(visible)
  291. # except:
  292. # pass
  293. #-----Skater Animation Name-----#
  294. own["lengthSkaterAnim"] = readData.getLengthSkaterAnim()
  295. lengthSkaterAnim = own["lengthSkaterAnim"]
  296. #print("lengthskateranim", lengthSkaterAnim)
  297. if lengthSkaterAnim:
  298. if valueIndex > lengthSkaterAnim-1:
  299. own["valueIndex"] = 0
  300. if objIndex < 0:
  301. own["objIndex"] = lengthSkaterAnim-2
  302. skater.stopAction(0)
  303. skater.stopAction(1)
  304. skater.stopAction(2)
  305. skater.stopAction(3)
  306. skater.stopAction(4)
  307. skater.stopAction(5)
  308. skater.stopAction(6)
  309. skater.stopAction(9999)
  310. bdeck.stopAction(0)
  311. bdeck.stopAction(1)
  312. bdeck.stopAction(2)
  313. bdeck.stopAction(3)
  314. bdeck.stopAction(4)
  315. bdeck.stopAction(5)
  316. bdeck.stopAction(6)
  317. bdeck.stopAction(9999)
  318. boneRecord.Playback(valueIndex)
  319. #sound_man.Playback(valueIndex)
  320. own['sndmgr'].h_Playback(valueIndex)
  321. #print(valueIndex, 'valueIndex from Record.py')
  322. #print('recorder', valueIndex)
  323. # name, skateranim = readData.returnSkaterAnim(objIndex, valueIndex)
  324. # name, PAF = readData.returnSkaterAnimF(objIndex, valueIndex)
  325. # #print(PAF)
  326. # PAF = float(PAF)
  327. # if name in scene.objects:
  328. # #print("name in")
  329. # try:
  330. # skater.stopAction(0)
  331. # skater.stopAction(1)
  332. # skater.stopAction(2)
  333. # skater.stopAction(3)
  334. # skater.stopAction(9999)
  335. # if skater != '':
  336. # skater.playAction(skateranim, PAF,PAF, layer=9999, play_mode=1, speed=1)
  337. # #print("Playing: ", skateranim, PAF)
  338. # except:
  339. # print("something is wrong")
  340. # #pass
  341. #-----Deck Animation Name-----#
  342. own["lengthDeckAnim"] = readData.getLengthDeckAnim()
  343. lengthDeckAnim = own["lengthDeckAnim"]
  344. #print("lengthDeckanim", lengthDeckAnim)
  345. if lengthDeckAnim:
  346. if valueIndex > lengthDeckAnim-1:
  347. own["valueIndex"] = 0
  348. if objIndex < 0:
  349. own["objIndex"] = lengthDeckAnim-2
  350. name, deckanim = readData.returnDeckAnim(objIndex, valueIndex)
  351. name, DAF = readData.returnDeckAnimF(objIndex, valueIndex)
  352. #print(DAF)
  353. DAF = float(DAF)
  354. if name in scene.objects:
  355. #print("name in")
  356. try:
  357. deck.stopAction(0)
  358. deck.stopAction(1)
  359. deck.stopAction(2)
  360. deck.stopAction(3)
  361. deck.stopAction(9999)
  362. #print(deckanim)
  363. # if deckanim != '':
  364. # turnList = ['a_reg_right', 'a_reg_left', 'a_fak_right', 'a_fak_left']
  365. # #print(deckanim)
  366. # if deckanim not in turnList:
  367. # deck.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  368. # trucks.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  369. # else:
  370. # #print('play a_reg')
  371. # deck.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  372. # trucks.playAction('a_reg', DAF,DAF, layer=9999, play_mode=1, speed=1)
  373. #print("Playing: ", deckanim, PAF)
  374. except:
  375. print("deck something is wrong")
  376. #pass
  377. #
  378. #-----sroll-----#
  379. own["lengthSrollVol"] = readData.getLengthSrollVol()
  380. lengthSrollVol = own["lengthSrollVol"]
  381. if lengthSrollVol:
  382. if valueIndex > lengthSrollVol-1:
  383. own["valueIndex"] = 0
  384. if objIndex < 0:
  385. own["objIndex"] = lengthSrollVol-2
  386. name, srollVol = readData.returnSrollVol(objIndex, valueIndex)
  387. name, srollPitch = readData.returnSrollPitch(objIndex, valueIndex)
  388. # if name in scene.objects:
  389. # try:
  390. # cube = scene.objects["control_cube.002"]
  391. # srollVol = round(srollVol, 2)
  392. # act = cube.actuators["sroll"]
  393. # if srollVol < .12:
  394. # act.volume = srollVol
  395. # act.pitch = srollPitch
  396. # act.startSound()
  397. # except:
  398. # pass
  399. ###
  400. #
  401. #-----grind cement-----#
  402. own["lengthSgrind_cementVol"] = readData.getLengthSgrind_cementVol()
  403. lengthSgrind_cementVol = own["lengthSgrind_cementVol"]
  404. if lengthSgrind_cementVol:
  405. if valueIndex > lengthSgrind_cementVol-1:
  406. own["valueIndex"] = 0
  407. if objIndex < 0:
  408. own["objIndex"] = lengthSgrind_cementVol-2
  409. name, sgrind_cementVol = readData.returnSgrind_cementVol(objIndex, valueIndex)
  410. name, sgrind_cementPitch = readData.returnSgrind_cementPitch(objIndex, valueIndex)
  411. # if name in scene.objects:
  412. # try:
  413. # cube = scene.objects["control_cube.002"]
  414. # sgrind_cementVol = round(sgrind_cementVol, 2)
  415. # act = cube.actuators["grind_cement"]
  416. # if sgrind_cementVol < .2:
  417. # act.volume = sgrind_cementVol
  418. # act.pitch = sgrind_cementPitch
  419. # act.startSound()
  420. # except:
  421. # pass
  422. ###
  423. #
  424. #-----grind rail-----#
  425. own["lengthSgrind_railVol"] = readData.getLengthSgrind_railVol()
  426. lengthSgrind_railVol = own["lengthSgrind_railVol"]
  427. if lengthSgrind_railVol:
  428. if valueIndex > lengthSgrind_railVol-1:
  429. own["valueIndex"] = 0
  430. if objIndex < 0:
  431. own["objIndex"] = lengthSgrind_railVol-2
  432. name, sgrind_railVol = readData.returnSgrind_railVol(objIndex, valueIndex)
  433. name, sgrind_railPitch = readData.returnSgrind_railPitch(objIndex, valueIndex)
  434. # if name in scene.objects:
  435. # try:
  436. # cube = scene.objects["control_cube.002"]
  437. # sgrind_railVol = round(sgrind_railVol, 2)
  438. # act = cube.actuators["grind_rail"]
  439. # if sgrind_railVol < .2:
  440. # act.volume = sgrind_railVol
  441. # act.pitch = sgrind_railPitch
  442. # act.startSound()
  443. # #print("grindsound = ", sgrind_railVol, sgrind_railPitch)
  444. # except:
  445. # pass
  446. ###
  447. #
  448. #-----pop sound-----#
  449. own["lengthSpopsound"] = readData.getLengthSpopsound()
  450. lengthSpopsound = own["lengthSpopsound"]
  451. if lengthSpopsound:
  452. if valueIndex > lengthSpopsound-1:
  453. own["valueIndex"] = 0
  454. if objIndex < 0:
  455. own["objIndex"] = lengthSpopsound-2
  456. name, spopsound = readData.returnSpopsound(objIndex, valueIndex)
  457. # if name in scene.objects:
  458. # #act = sound_empty.actuators["pop"]
  459. # try:
  460. # #cube = scene.objects[sound_empty]
  461. # spopsound = round(spopsound, 2)
  462. # act = cube.actuators["pop"]
  463. # #act = sound_empty.actuators["pop"]
  464. # if spopsound == 1:
  465. # #act.volume_maximum = .7
  466. # #act.is3D = True
  467. # #act.distance_reference = 10.0
  468. # #act.distance_maximum = 50.0
  469. # act.volume = .6
  470. # act.startSound()
  471. # #print("grindsound = ", spopsound, sgrind_railPitch)
  472. # except:
  473. # print("sound passed")
  474. # pass
  475. ###
  476. #
  477. #-----land sound-----#
  478. own["lengthSlandsound"] = readData.getLengthSlandsound()
  479. lengthSlandsound = own["lengthSlandsound"]
  480. if lengthSlandsound:
  481. if valueIndex > lengthSlandsound-1:
  482. own["valueIndex"] = 0
  483. if objIndex < 0:
  484. own["objIndex"] = lengthSlandsound-2
  485. name, slandsound = readData.returnSlandsound(objIndex, valueIndex)
  486. if name in scene.objects:
  487. try:
  488. cube = scene.objects["control_cube.002"]
  489. # slandsound = round(slandsound, 2)
  490. # act = cube.actuators["land"]
  491. # if slandsound == 1:
  492. # act.volume = .6
  493. # act.startSound()
  494. #print("grindsound = ", slandsound, sgrind_railPitch)
  495. except:
  496. pass
  497. ###
  498. ###
  499. #
  500. #-----land sound-----#
  501. own["lengthSdeckvis"] = readData.getLengthSdeckvis()
  502. lengthSdeckvis = own["lengthSdeckvis"]
  503. if lengthSdeckvis:
  504. if valueIndex > lengthSdeckvis-1:
  505. own["valueIndex"] = 0
  506. if objIndex < 0:
  507. own["objIndex"] = lengthSdeckvis-2
  508. name, sdeckvis = readData.returnSdeckvis(objIndex, valueIndex)
  509. if name in scene.objects:
  510. try:
  511. cube = scene.objects["control_cube.002"]
  512. if sdeckvis == 1:
  513. #print('setting deck visible')
  514. deckact.visibility = True
  515. trucksact.visibility = True
  516. wheel1act.visibility = True
  517. wheel2act.visibility = True
  518. wheel3act.visibility = True
  519. wheel4act.visibility = True
  520. cont.activate(deck.actuators['Visibility'])
  521. cont.activate(trucks.actuators['Visibility'])
  522. cont.activate(wheel1.actuators['Visibility'])
  523. cont.activate(wheel2.actuators['Visibility'])
  524. cont.activate(wheel3.actuators['Visibility'])
  525. cont.activate(wheel4.actuators['Visibility'])
  526. for n in scene.objects:
  527. if 'throw_deck' in n.name and 'empty' not in n.name:
  528. n.endObject()
  529. # if 'throw_deck' in scene.objects:
  530. #print('ending td', n)
  531. cont.activate(throw_deck.actuators['end_throw_deck'])
  532. #throwdeck.visibility = False
  533. else:
  534. #print('setting deck invisible')
  535. deckact.visibility = False
  536. trucksact.visibility = False
  537. wheel1act.visibility = False
  538. wheel2act.visibility = False
  539. wheel3act.visibility = False
  540. wheel4act.visibility = False
  541. cont.activate(deck.actuators['Visibility'])
  542. cont.activate(trucks.actuators['Visibility'])
  543. cont.activate(wheel1.actuators['Visibility'])
  544. cont.activate(wheel2.actuators['Visibility'])
  545. cont.activate(wheel3.actuators['Visibility'])
  546. cont.activate(wheel4.actuators['Visibility'])
  547. #if throw_deck == None:
  548. if 'throw_deck' not in scene.objects:
  549. #print('no throwdeck')
  550. #cont.deactivate(throw_deck.actuators['end_throw_deck'])
  551. #throw_deck_empty.wordPosition.z = throw_deck_empty.wordPosition.z + 1
  552. cont.activate(throw_deck_empty.actuators['throw_dec_act'])
  553. #scene.addObject('throw_deck')
  554. #throwdeck.visibility = True
  555. throw_deck.suspendDynamics()
  556. except:
  557. pass
  558. ##
  559. #-----Position-----#
  560. own["lengthtdPos"] = readData.getLengthtdPos()
  561. lengthPos = own["lengthtdPos"]
  562. if lengthPos:
  563. if objIndex > lengthPos-1:
  564. own["objIndex"] = 0
  565. if objIndex < 0:
  566. own["objIndex"] = lengthPos-2
  567. name, position = readData.returntdPosition(objIndex, valueIndex)
  568. name = 'throw_deck'
  569. if name in scene.objects:
  570. try:
  571. scene.objects[name].worldPosition = position
  572. #print('recording tdPos', position)
  573. except:
  574. pass
  575. #-----Orientation-----#
  576. own["lengthtdOri"] = readData.getLengthtdOri()
  577. lengthOri = own["lengthtdOri"]
  578. #if lengthPos:
  579. if lengthOri:
  580. if valueIndex > lengthOri-1:
  581. own["valueIndex"] = 0
  582. if objIndex < 0:
  583. own["objIndex"] = lengthOri-2
  584. name, orientation = readData.returntdOrientation(objIndex, valueIndex)
  585. name = 'throw_deck'
  586. if name in scene.objects:
  587. oXYZ = scene.objects[name].localOrientation.to_euler()
  588. oXYZ[0] = float(orientation[0])
  589. oXYZ[1] = float(orientation[1])
  590. oXYZ[2] = float(orientation[2])
  591. try:
  592. #print('recording tdOri')
  593. scene.objects[name].localOrientation = oXYZ.to_matrix()
  594. except:
  595. pass
  596. #
  597. #-----revert sound-----#
  598. own["lengthSrevertsound"] = readData.getLengthSrevertsound()
  599. lengthSrevertsound = own["lengthSrevertsound"]
  600. if lengthSrevertsound:
  601. if valueIndex > lengthSrevertsound-1:
  602. own["valueIndex"] = 0
  603. if objIndex < 0:
  604. own["objIndex"] = lengthSrevertsound-2
  605. name, srevertsound = readData.returnSrevertsound(objIndex, valueIndex)
  606. if name in scene.objects:
  607. try:
  608. #cube = scene.objects[sound_empty]
  609. srevertsound = round(srevertsound, 2)
  610. #act = cube.actuators["revertSound"]
  611. #if srevertsound == 1:
  612. #act.startSound()
  613. #print("grindsound = ", spopsound, sgrind_railPitch)
  614. except:
  615. print("sound passed")
  616. pass
  617. def main(recording_cutoff, cc):
  618. num = 1
  619. obj = scene.objects["control_cube.002"]
  620. #own = scene.objects["Camera.003"]
  621. if num == 1:
  622. #for obj in scene.objects:
  623. if "record_position" in obj:
  624. getData.savePosition(obj, recording_cutoff)
  625. if "record_orientation" in obj:
  626. getData.saveOrientation(obj, recording_cutoff)
  627. if "record_scale" in obj:
  628. getData.saveScale(obj, recording_cutoff)
  629. if "record_color" in obj:
  630. getData.saveColor(obj, recording_cutoff)
  631. if "record_state" in obj:
  632. getData.saveState(obj, recording_cutoff)
  633. if "record_visibility" in obj:
  634. getData.saveVisibility(obj, recording_cutoff)
  635. if "record_skateranim" in obj:
  636. getData.saveSkaterAnim(obj, recording_cutoff)
  637. if "record_skateranimf" in obj:
  638. getData.saveSkaterAnimF(obj, recording_cutoff)
  639. if "record_deckanim" in obj:
  640. getData.saveDeckAnim(obj, recording_cutoff)
  641. if "record_deckanimf" in obj:
  642. getData.saveDeckAnimF(obj, recording_cutoff)
  643. #if "record_sroll_vol" in obj:
  644. getData.saveSrollVol(obj, recording_cutoff)
  645. #if "record_sroll_pitch" in obj:
  646. getData.saveSrollPitch(obj, recording_cutoff)
  647. getData.saveSgrind_cementVol(obj, recording_cutoff)
  648. getData.saveSgrind_cementPitch(obj, recording_cutoff)
  649. getData.saveSgrind_railVol(obj, recording_cutoff)
  650. getData.saveSgrind_railPitch(obj, recording_cutoff)
  651. getData.saveSpopsound(obj, recording_cutoff)
  652. getData.saveSlandsound(obj, recording_cutoff)
  653. getData.saveSdeckvis(obj, recording_cutoff)
  654. getData.savetdPosition(obj, recording_cutoff)
  655. getData.savetdOrientation(obj, recording_cutoff)
  656. getData.saveSrevertsound(obj, recording_cutoff)
  657. boneRecord.Record()
  658. own['sndmgr'].Record()
  659. #print('recording cutoff', recording_cutoff)
  660. def breakOut():
  661. num = 1
  662. obj = scene.objects["control_cube.002"]
  663. if num == 1:
  664. #for obj in scene.objects:
  665. obj.restoreDynamics()
  666. try:
  667. name, state = readData.returnState(own["objIndex"], own["valueIndex"])
  668. obj.state = state
  669. except:
  670. pass