myspace / CommonLua /X /XParticle.lua
sirnii's picture
Upload 1816 files
b6a38d7 verified
raw
history blame
1.2 kB
local UIL = UIL
DefineClass.XParticle = {
__parents = { "XControl" },
properties = {
{ category = "Particle", id = "ParticleSystem", editor = "text", default = "", help="Particle system asset", },
{ category = "Particle", id = "ParticleAngle", editor = "number", default = 0, min = 0, max = 360*60 - 1, slider = true, scale = "deg", invalidate = true, },
{ category = "Particle", id = "ParticlePosition", editor = "point", default = point(0, 0, 0), help = "Position of the particle system", },
},
particle_id = -1,
}
function XParticle:SetParticleSystem(particle)
local old_particle_system = self.ParticleSystem
if old_particle_system == (particle or "") then return end
if self.particle_id >= 0 then
UIL.DeleteUIParticles(particle_id)
end
if particle and particle ~= "" then
self.particle_id = UIL.PlaceUIParticles(particle)
end
self.ParticleSystem = particle or nil
end
function XParticle:Done(parent, context)
if self.particle_id >= 0 then
UIL.DeleteUIParticles(self.particle_id)
end
end
function XParticle:DrawContent()
if DataLoaded then
UIL.DrawParticles(self.particle_id, self.ParticlePosition, self.scale:x(), self.scale:y(), self.ParticleAngle)
end
end