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

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