Advertisement
electronic_steve

#tptscripts FFS update

May 9th, 2014
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.82 KB | None | 0 0
  1. local ESMD = elements.allocate("ESMD", "FFGE")
  2. elements.element(elements.ESMD_PT_FFGE, elements.element(tpt.element("INSL")))
  3. elements.property(elements.ESMD_PT_FFGE, "Name", "FFGE")
  4. elements.property(elements.ESMD_PT_FFGE, "Description", "Force field generator.")
  5. elements.property(elements.ESMD_PT_FFGE, "MenuVisible", 1)
  6. elements.property(elements.ESMD_PT_FFGE, "MenuSection", 2)
  7. elements.property(elements.ESMD_PT_FFGE, "Advection", 0)
  8. elements.property(elements.ESMD_PT_FFGE, "AirDrag", 0.01)
  9. elements.property(elements.ESMD_PT_FFGE, "AirLoss", 0)
  10. elements.property(elements.ESMD_PT_FFGE, "Loss", 0)
  11. elements.property(elements.ESMD_PT_FFGE, "Collision", 0)
  12. elements.property(elements.ESMD_PT_FFGE, "Gravity", 0)
  13. elements.property(elements.ESMD_PT_FFGE, "Diffusion", 0)
  14. elements.property(elements.ESMD_PT_FFGE, "Falldown", 2)
  15. elements.property(elements.ESMD_PT_FFGE, "Flammable", 0)
  16. elements.property(elements.ESMD_PT_FFGE, "Temperature", -200+273.15)
  17. elements.property(elements.ESMD_PT_FFGE, "Hardness", 0)
  18. elements.property(elements.ESMD_PT_FFGE, "HeatConduct", 0)
  19. elements.property(elements.ESMD_PT_FFGE, "Properties", TYPE_SOLID)
  20. elements.property(elements.ESMD_PT_FFGE, "Colour", 0xFF591B69)
  21. local angle =0
  22. local function ForceFieldGeneratorFunction(i, x, y, s, n)
  23. local generatortemp= math.floor(tpt.get_property("temp",i))
  24. local goforce = 1
  25. if goforce == 1 and tpt.get_property("type", x+(math.random(-3,3)),y+(math.random(-3,3))) == 15 then goforce = 2
  26. end
  27. if goforce==2 then goforce = 1
  28. if angle>=360 then angle=0 end
  29. local   z=360
  30. for angle=0,z do
  31. local x2=x+( generatortemp*(math.cos(angle/2)))
  32. local y2=y+( generatortemp*(math.sin(angle/2)))
  33. if x2<0 or x>611 or y2<0 or y2>383 then else
  34. tpt.create(x2, y2,tpt.element("fspw"))
  35. end
  36. end
  37. end
  38. end
  39. tpt.element_func(ForceFieldGeneratorFunction,tpt.element('FFGE'))
  40. local ESMD = elements.allocate("ESMD", "FSPW")
  41. elements.element(elements.ESMD_PT_FSPW, elements.element(tpt.element("QRTZ")))
  42. elements.property(elements.ESMD_PT_FSPW, "Name", "FSPW")
  43. elements.property(elements.ESMD_PT_FSPW, "Description", "Force Field Spawner")
  44. elements.property(elements.ESMD_PT_FSPW, "MenuVisible", 0)
  45. elements.property(elements.ESMD_PT_FSPW, "MenuSection", 0)
  46. elements.property(elements.ESMD_PT_FSPW, "Properties", TYPE_SOLID)
  47. elements.property(elements.ESMD_PT_FSPW, "HighPressure", 999999)
  48. elements.property(elements.ESMD_PT_FSPW, "Colour", 0xFF127BC1)
  49. local ESMD = elements.allocate("ESMD", "FOFI")
  50. elements.element(elements.ESMD_PT_FOFI, elements.element(tpt.element("DMND")))
  51. elements.property(elements.ESMD_PT_FOFI, "Name", "FOFI")
  52. elements.property(elements.ESMD_PT_FOFI, "Description", "Force field")
  53. elements.property(elements.ESMD_PT_FOFI, "MenuVisible", 0)
  54. elements.property(elements.ESMD_PT_FOFI, "MenuSection", 0)
  55. elements.property(elements.ESMD_PT_FOFI, "Properties", TYPE_SOLID)
  56. elements.property(elements.ESMD_PT_FOFI, "HighPressure", 999999)
  57. elements.property(elements.ESMD_PT_FOFI, "Colour", 0xFF127BC1)
  58. local function ForceFieldSpawner(i, x, y, s, n)
  59. if math.random(1,50000) == 2500 then tpt.delete(x,y) end
  60. local RX = x+(math.random(-3,3))
  61. local RY = y+(math.random(-3,3))
  62. if math.random(1,50) == 1 then sim.createLine(x+math.random(-3,3),y+math.random(-3,3),x+math.random(-3,3),y+math.random(-3,3),0,0,tpt.element('FOFI')) end
  63. if  tpt.get_property("type", RX,RY) == tpt.element('FOFI')  then else tpt.delete(RX,RY)  end
  64. end
  65. tpt.element_func(ForceFieldSpawner,tpt.element('FSPW'))
  66. local function ForceFieldDelete(i, x, y, s, n)
  67. if  tpt.get_property("type", RX,RY) == tpt.element('FOFI')  then else tpt.delete(RX,RY)  end
  68. if math.random(1,20) == 1 then tpt.delete(x,y) end
  69. end
  70. tpt.element_func(ForceFieldDelete,tpt.element('FOFI'))
  71.  local function glow(i, colr, colg, colb)
  72. return 1,0x0000008,255,122,153,181,255,122,153,181
  73. end
  74. tpt.graphics_func(glow,tpt.element('FOFI'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement