Guest User

Untitled

a guest
May 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. Index: hologram.lua
  2. ===================================================================
  3. --- hologram.lua (revision 2045)
  4. +++ hologram.lua (working copy)
  5. @@ -595,14 +595,82 @@
  6.  
  7. /******************************************************************************/
  8.  
  9. +local function holoModelAny_rescale(Holo, scaletable)
  10. + local maxval = wire_holograms_size_max:GetInt() * 12.04
  11. + local minval = -maxval
  12. +
  13. + local scale = Vector(scaletable[1],scaletable[2],scaletable[3])
  14. + local tempvec = (Holo.ent:OBBMaxs() - Holo.ent:OBBMins())
  15. + local vec = Vector(tempvec.x*scale.x,tempvec.y*scale.y,tempvec.z*scale.z)
  16. +
  17. + if (math.abs(vec.x) > maxval) then
  18. + --scale.x = maxval/tempvec.x
  19. + local maxval2 = tempvec.x*maxval
  20. + scale.x = math.Clamp(maxval/tempvec.x,-maxval2,maxval2)
  21. + end
  22. + if (math.abs(vec.y) > maxval) then
  23. + --scale.y = maxval/tempvec.y
  24. + local maxval2 = tempvec.y*maxval
  25. + scale.y = math.Clamp(maxval/tempvec.y,-maxval2,maxval2)
  26. + end
  27. + if (math.abs(vec.z) > maxval) then
  28. + --scale.z = maxval/tempvec.z
  29. + local maxval2 = tempvec.z*maxval
  30. + scale.z = math.Clamp(maxval/tempvec.z,-maxval2,maxval2)
  31. + end
  32. +
  33. + if Holo.scale ~= scale then
  34. + table.insert(scale_queue, { Holo, scale })
  35. + Holo.scale = scale
  36. + end
  37. +end
  38. +
  39. +e2function void holoScale( number index, vector scale )
  40. + local Holo = CheckIndex( self, index )
  41. + if !Holo then return end
  42. +
  43. + if (Holo.ent.modelany) then
  44. + holoModelAny_rescale( Holo, scale ) -- my rescale
  45. + else
  46. + rescale( Holo, scale ) -- normal rescale
  47. + end
  48. +end
  49. +
  50. +e2function void holoScaleUnits( number index, vector size )
  51. + local Holo = CheckIndex( self, index )
  52. + if !Holo then return end
  53. +
  54. + local propsize = Holo.ent:OBBMaxs() - Holo.ent:OBBMins()
  55. + x = size[1] / propsize.x
  56. + y = size[2] / propsize.y
  57. + z = size[3] / propsize.z
  58. +
  59. + if (Holo.ent.modelany) then
  60. + holoModelAny_rescale( Holo, Vector(x,y,z) ) -- my rescale
  61. + else
  62. + rescale( Holo, Vector(x,y,z) ) -- normal rescale
  63. + end
  64. +end
  65. +
  66. +e2function void holoModelAny( number index, string model )
  67. + local Holo = CheckIndex( self, index )
  68. + if !Holo then return end
  69. +
  70. + Holo.ent.modelany = true -- remember to set this to false when using holoModel (to change back to a normal model)
  71. + Holo.ent:SetModel( Model(model) )
  72. + holoModelAny_rescale( Holo, { 1, 1, 1} )
  73. +end
  74. +
  75. +/***********************************************************************************************************************************************************************************************************************************/
  76. +
  77. __e2setcost(5) -- temporary
  78.  
  79. -e2function void holoScale(index, vector scale)
  80. +/*e2function void holoScale(index, vector scale)
  81. local Holo = CheckIndex(self, index)
  82. if not Holo then return end
  83.  
  84. rescale(Holo, scale)
  85. -end
  86. +end*/
  87.  
  88. e2function vector holoScale(index)
  89. local Holo = CheckIndex(self, index)
  90. @@ -611,7 +679,7 @@
  91. return Holo.scale or {0,0,0} -- TODO: maybe {1,1,1}?
  92. end
  93.  
  94. -e2function void holoScaleUnits(index, vector size)
  95. +/*e2function void holoScaleUnits(index, vector size)
  96. local Holo = CheckIndex(self, index)
  97. if not Holo then return end
  98.  
  99. @@ -621,7 +689,7 @@
  100. z = size[3] / propsize.z
  101.  
  102. rescale(Holo, Vector(x, y, z))
  103. -end
  104. +end*/
  105.  
  106. e2function vector holoScaleUnits(index)
  107. local Holo = CheckIndex(self, index)
Add Comment
Please, Sign In to add comment