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

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