Shuvit game release repo.
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

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