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

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