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 26KB

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