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. if valueIndex > lengthVis-1:
  283. own["valueIndex"] = 0
  284. if objIndex < 0:
  285. own["objIndex"] = lengthVis-2
  286. name, visible = readData.returnVisibility(objIndex, valueIndex)
  287. if name in scene.objects:
  288. try:
  289. scene.objects[name].visible = int(visible)
  290. except:
  291. pass
  292. #-----Skater Animation Name-----#
  293. own["lengthSkaterAnim"] = readData.getLengthSkaterAnim()
  294. lengthSkaterAnim = own["lengthSkaterAnim"]
  295. #print("lengthskateranim", lengthSkaterAnim)
  296. if lengthSkaterAnim:
  297. if valueIndex > lengthSkaterAnim-1:
  298. own["valueIndex"] = 0
  299. if objIndex < 0:
  300. own["objIndex"] = lengthSkaterAnim-2
  301. skater.stopAction(0)
  302. skater.stopAction(1)
  303. skater.stopAction(2)
  304. skater.stopAction(3)
  305. skater.stopAction(4)
  306. skater.stopAction(5)
  307. skater.stopAction(6)
  308. skater.stopAction(9999)
  309. bdeck.stopAction(0)
  310. bdeck.stopAction(1)
  311. bdeck.stopAction(2)
  312. bdeck.stopAction(3)
  313. bdeck.stopAction(4)
  314. bdeck.stopAction(5)
  315. bdeck.stopAction(6)
  316. bdeck.stopAction(9999)
  317. boneRecord.Playback(valueIndex)
  318. #sound_man.Playback(valueIndex)
  319. own['sndmgr'].h_Playback(valueIndex)
  320. #print(valueIndex, 'valueIndex from Record.py')
  321. #print('recorder', valueIndex)
  322. # name, skateranim = readData.returnSkaterAnim(objIndex, valueIndex)
  323. # name, PAF = readData.returnSkaterAnimF(objIndex, valueIndex)
  324. # #print(PAF)
  325. # PAF = float(PAF)
  326. # if name in scene.objects:
  327. # #print("name in")
  328. # try:
  329. # skater.stopAction(0)
  330. # skater.stopAction(1)
  331. # skater.stopAction(2)
  332. # skater.stopAction(3)
  333. # skater.stopAction(9999)
  334. # if skater != '':
  335. # skater.playAction(skateranim, PAF,PAF, layer=9999, play_mode=1, speed=1)
  336. # #print("Playing: ", skateranim, PAF)
  337. # except:
  338. # print("something is wrong")
  339. # #pass
  340. #-----Deck Animation Name-----#
  341. own["lengthDeckAnim"] = readData.getLengthDeckAnim()
  342. lengthDeckAnim = own["lengthDeckAnim"]
  343. #print("lengthDeckanim", lengthDeckAnim)
  344. if lengthDeckAnim:
  345. if valueIndex > lengthDeckAnim-1:
  346. own["valueIndex"] = 0
  347. if objIndex < 0:
  348. own["objIndex"] = lengthDeckAnim-2
  349. name, deckanim = readData.returnDeckAnim(objIndex, valueIndex)
  350. name, DAF = readData.returnDeckAnimF(objIndex, valueIndex)
  351. #print(DAF)
  352. DAF = float(DAF)
  353. if name in scene.objects:
  354. #print("name in")
  355. try:
  356. deck.stopAction(0)
  357. deck.stopAction(1)
  358. deck.stopAction(2)
  359. deck.stopAction(3)
  360. deck.stopAction(9999)
  361. #print(deckanim)
  362. # if deckanim != '':
  363. # turnList = ['a_reg_right', 'a_reg_left', 'a_fak_right', 'a_fak_left']
  364. # #print(deckanim)
  365. # if deckanim not in turnList:
  366. # deck.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  367. # trucks.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  368. # else:
  369. # #print('play a_reg')
  370. # deck.playAction(deckanim, DAF,DAF, layer=9999, play_mode=1, speed=1)
  371. # trucks.playAction('a_reg', DAF,DAF, layer=9999, play_mode=1, speed=1)
  372. #print("Playing: ", deckanim, PAF)
  373. except:
  374. print("deck something is wrong")
  375. #pass
  376. #
  377. #-----sroll-----#
  378. own["lengthSrollVol"] = readData.getLengthSrollVol()
  379. lengthSrollVol = own["lengthSrollVol"]
  380. if lengthSrollVol:
  381. if valueIndex > lengthSrollVol-1:
  382. own["valueIndex"] = 0
  383. if objIndex < 0:
  384. own["objIndex"] = lengthSrollVol-2
  385. name, srollVol = readData.returnSrollVol(objIndex, valueIndex)
  386. name, srollPitch = readData.returnSrollPitch(objIndex, valueIndex)
  387. # if name in scene.objects:
  388. # try:
  389. # cube = scene.objects["control_cube.002"]
  390. # srollVol = round(srollVol, 2)
  391. # act = cube.actuators["sroll"]
  392. # if srollVol < .12:
  393. # act.volume = srollVol
  394. # act.pitch = srollPitch
  395. # act.startSound()
  396. # except:
  397. # pass
  398. ###
  399. #
  400. #-----grind cement-----#
  401. own["lengthSgrind_cementVol"] = readData.getLengthSgrind_cementVol()
  402. lengthSgrind_cementVol = own["lengthSgrind_cementVol"]
  403. if lengthSgrind_cementVol:
  404. if valueIndex > lengthSgrind_cementVol-1:
  405. own["valueIndex"] = 0
  406. if objIndex < 0:
  407. own["objIndex"] = lengthSgrind_cementVol-2
  408. name, sgrind_cementVol = readData.returnSgrind_cementVol(objIndex, valueIndex)
  409. name, sgrind_cementPitch = readData.returnSgrind_cementPitch(objIndex, valueIndex)
  410. # if name in scene.objects:
  411. # try:
  412. # cube = scene.objects["control_cube.002"]
  413. # sgrind_cementVol = round(sgrind_cementVol, 2)
  414. # act = cube.actuators["grind_cement"]
  415. # if sgrind_cementVol < .2:
  416. # act.volume = sgrind_cementVol
  417. # act.pitch = sgrind_cementPitch
  418. # act.startSound()
  419. # except:
  420. # pass
  421. ###
  422. #
  423. #-----grind rail-----#
  424. own["lengthSgrind_railVol"] = readData.getLengthSgrind_railVol()
  425. lengthSgrind_railVol = own["lengthSgrind_railVol"]
  426. if lengthSgrind_railVol:
  427. if valueIndex > lengthSgrind_railVol-1:
  428. own["valueIndex"] = 0
  429. if objIndex < 0:
  430. own["objIndex"] = lengthSgrind_railVol-2
  431. name, sgrind_railVol = readData.returnSgrind_railVol(objIndex, valueIndex)
  432. name, sgrind_railPitch = readData.returnSgrind_railPitch(objIndex, valueIndex)
  433. # if name in scene.objects:
  434. # try:
  435. # cube = scene.objects["control_cube.002"]
  436. # sgrind_railVol = round(sgrind_railVol, 2)
  437. # act = cube.actuators["grind_rail"]
  438. # if sgrind_railVol < .2:
  439. # act.volume = sgrind_railVol
  440. # act.pitch = sgrind_railPitch
  441. # act.startSound()
  442. # #print("grindsound = ", sgrind_railVol, sgrind_railPitch)
  443. # except:
  444. # pass
  445. ###
  446. #
  447. #-----pop sound-----#
  448. own["lengthSpopsound"] = readData.getLengthSpopsound()
  449. lengthSpopsound = own["lengthSpopsound"]
  450. if lengthSpopsound:
  451. if valueIndex > lengthSpopsound-1:
  452. own["valueIndex"] = 0
  453. if objIndex < 0:
  454. own["objIndex"] = lengthSpopsound-2
  455. name, spopsound = readData.returnSpopsound(objIndex, valueIndex)
  456. # if name in scene.objects:
  457. # #act = sound_empty.actuators["pop"]
  458. # try:
  459. # #cube = scene.objects[sound_empty]
  460. # spopsound = round(spopsound, 2)
  461. # act = cube.actuators["pop"]
  462. # #act = sound_empty.actuators["pop"]
  463. # if spopsound == 1:
  464. # #act.volume_maximum = .7
  465. # #act.is3D = True
  466. # #act.distance_reference = 10.0
  467. # #act.distance_maximum = 50.0
  468. # act.volume = .6
  469. # act.startSound()
  470. # #print("grindsound = ", spopsound, sgrind_railPitch)
  471. # except:
  472. # print("sound passed")
  473. # pass
  474. ###
  475. #
  476. #-----land sound-----#
  477. own["lengthSlandsound"] = readData.getLengthSlandsound()
  478. lengthSlandsound = own["lengthSlandsound"]
  479. if lengthSlandsound:
  480. if valueIndex > lengthSlandsound-1:
  481. own["valueIndex"] = 0
  482. if objIndex < 0:
  483. own["objIndex"] = lengthSlandsound-2
  484. name, slandsound = readData.returnSlandsound(objIndex, valueIndex)
  485. if name in scene.objects:
  486. try:
  487. cube = scene.objects["control_cube.002"]
  488. # slandsound = round(slandsound, 2)
  489. # act = cube.actuators["land"]
  490. # if slandsound == 1:
  491. # act.volume = .6
  492. # act.startSound()
  493. #print("grindsound = ", slandsound, sgrind_railPitch)
  494. except:
  495. pass
  496. ###
  497. ###
  498. #
  499. #-----land sound-----#
  500. own["lengthSdeckvis"] = readData.getLengthSdeckvis()
  501. lengthSdeckvis = own["lengthSdeckvis"]
  502. if lengthSdeckvis:
  503. if valueIndex > lengthSdeckvis-1:
  504. own["valueIndex"] = 0
  505. if objIndex < 0:
  506. own["objIndex"] = lengthSdeckvis-2
  507. name, sdeckvis = readData.returnSdeckvis(objIndex, valueIndex)
  508. if name in scene.objects:
  509. try:
  510. cube = scene.objects["control_cube.002"]
  511. if sdeckvis == 1:
  512. #print('setting deck visible')
  513. deckact.visibility = True
  514. trucksact.visibility = True
  515. wheel1act.visibility = True
  516. wheel2act.visibility = True
  517. wheel3act.visibility = True
  518. wheel4act.visibility = True
  519. cont.activate(deck.actuators['Visibility'])
  520. cont.activate(trucks.actuators['Visibility'])
  521. cont.activate(wheel1.actuators['Visibility'])
  522. cont.activate(wheel2.actuators['Visibility'])
  523. cont.activate(wheel3.actuators['Visibility'])
  524. cont.activate(wheel4.actuators['Visibility'])
  525. for n in scene.objects:
  526. if 'throw_deck' in n.name and 'empty' not in n.name:
  527. n.endObject()
  528. # if 'throw_deck' in scene.objects:
  529. #print('ending td', n)
  530. cont.activate(throw_deck.actuators['end_throw_deck'])
  531. #throwdeck.visibility = False
  532. else:
  533. #print('setting deck invisible')
  534. deckact.visibility = False
  535. trucksact.visibility = False
  536. wheel1act.visibility = False
  537. wheel2act.visibility = False
  538. wheel3act.visibility = False
  539. wheel4act.visibility = False
  540. cont.activate(deck.actuators['Visibility'])
  541. cont.activate(trucks.actuators['Visibility'])
  542. cont.activate(wheel1.actuators['Visibility'])
  543. cont.activate(wheel2.actuators['Visibility'])
  544. cont.activate(wheel3.actuators['Visibility'])
  545. cont.activate(wheel4.actuators['Visibility'])
  546. #if throw_deck == None:
  547. if 'throw_deck' not in scene.objects:
  548. #print('no throwdeck')
  549. #cont.deactivate(throw_deck.actuators['end_throw_deck'])
  550. #throw_deck_empty.wordPosition.z = throw_deck_empty.wordPosition.z + 1
  551. cont.activate(throw_deck_empty.actuators['throw_dec_act'])
  552. #scene.addObject('throw_deck')
  553. #throwdeck.visibility = True
  554. throw_deck.suspendDynamics()
  555. except:
  556. pass
  557. ##
  558. #-----Position-----#
  559. own["lengthtdPos"] = readData.getLengthtdPos()
  560. lengthPos = own["lengthtdPos"]
  561. if lengthPos:
  562. if objIndex > lengthPos-1:
  563. own["objIndex"] = 0
  564. if objIndex < 0:
  565. own["objIndex"] = lengthPos-2
  566. name, position = readData.returntdPosition(objIndex, valueIndex)
  567. name = 'throw_deck'
  568. if name in scene.objects:
  569. try:
  570. scene.objects[name].worldPosition = position
  571. #print('recording tdPos', position)
  572. except:
  573. pass
  574. #-----Orientation-----#
  575. own["lengthtdOri"] = readData.getLengthtdOri()
  576. lengthOri = own["lengthtdOri"]
  577. #if lengthPos:
  578. if lengthOri:
  579. if valueIndex > lengthOri-1:
  580. own["valueIndex"] = 0
  581. if objIndex < 0:
  582. own["objIndex"] = lengthOri-2
  583. name, orientation = readData.returntdOrientation(objIndex, valueIndex)
  584. name = 'throw_deck'
  585. if name in scene.objects:
  586. oXYZ = scene.objects[name].localOrientation.to_euler()
  587. oXYZ[0] = float(orientation[0])
  588. oXYZ[1] = float(orientation[1])
  589. oXYZ[2] = float(orientation[2])
  590. try:
  591. #print('recording tdOri')
  592. scene.objects[name].localOrientation = oXYZ.to_matrix()
  593. except:
  594. pass
  595. #
  596. #-----revert sound-----#
  597. own["lengthSrevertsound"] = readData.getLengthSrevertsound()
  598. lengthSrevertsound = own["lengthSrevertsound"]
  599. if lengthSrevertsound:
  600. if valueIndex > lengthSrevertsound-1:
  601. own["valueIndex"] = 0
  602. if objIndex < 0:
  603. own["objIndex"] = lengthSrevertsound-2
  604. name, srevertsound = readData.returnSrevertsound(objIndex, valueIndex)
  605. if name in scene.objects:
  606. try:
  607. #cube = scene.objects[sound_empty]
  608. srevertsound = round(srevertsound, 2)
  609. #act = cube.actuators["revertSound"]
  610. #if srevertsound == 1:
  611. #act.startSound()
  612. #print("grindsound = ", spopsound, sgrind_railPitch)
  613. except:
  614. print("sound passed")
  615. pass
  616. def main(recording_cutoff, cc):
  617. num = 1
  618. obj = scene.objects["control_cube.002"]
  619. #own = scene.objects["Camera.003"]
  620. if num == 1:
  621. #for obj in scene.objects:
  622. if "record_position" in obj:
  623. getData.savePosition(obj, recording_cutoff)
  624. if "record_orientation" in obj:
  625. getData.saveOrientation(obj, recording_cutoff)
  626. if "record_scale" in obj:
  627. getData.saveScale(obj, recording_cutoff)
  628. if "record_color" in obj:
  629. getData.saveColor(obj, recording_cutoff)
  630. if "record_state" in obj:
  631. getData.saveState(obj, recording_cutoff)
  632. if "record_visibility" in obj:
  633. getData.saveVisibility(obj, recording_cutoff)
  634. if "record_skateranim" in obj:
  635. getData.saveSkaterAnim(obj, recording_cutoff)
  636. if "record_skateranimf" in obj:
  637. getData.saveSkaterAnimF(obj, recording_cutoff)
  638. if "record_deckanim" in obj:
  639. getData.saveDeckAnim(obj, recording_cutoff)
  640. if "record_deckanimf" in obj:
  641. getData.saveDeckAnimF(obj, recording_cutoff)
  642. #if "record_sroll_vol" in obj:
  643. getData.saveSrollVol(obj, recording_cutoff)
  644. #if "record_sroll_pitch" in obj:
  645. getData.saveSrollPitch(obj, recording_cutoff)
  646. getData.saveSgrind_cementVol(obj, recording_cutoff)
  647. getData.saveSgrind_cementPitch(obj, recording_cutoff)
  648. getData.saveSgrind_railVol(obj, recording_cutoff)
  649. getData.saveSgrind_railPitch(obj, recording_cutoff)
  650. getData.saveSpopsound(obj, recording_cutoff)
  651. getData.saveSlandsound(obj, recording_cutoff)
  652. getData.saveSdeckvis(obj, recording_cutoff)
  653. getData.savetdPosition(obj, recording_cutoff)
  654. getData.savetdOrientation(obj, recording_cutoff)
  655. getData.saveSrevertsound(obj, recording_cutoff)
  656. boneRecord.Record()
  657. own['sndmgr'].Record()
  658. #print('recording cutoff', recording_cutoff)
  659. def breakOut():
  660. num = 1
  661. obj = scene.objects["control_cube.002"]
  662. if num == 1:
  663. #for obj in scene.objects:
  664. obj.restoreDynamics()
  665. try:
  666. name, state = readData.returnState(own["objIndex"], own["valueIndex"])
  667. obj.state = state
  668. except:
  669. pass