require("scripts/class")
local class=CreateClass(...)
function class:CreateObject(model)
local object=self.super:CreateObject(model)
--Create light
object.light=CreatePointLight(4,model)
object.light:SetColorf(1,0.6,0.25,1,1)
object.light:SetPositionf(0,1.2,0,0)
object.light:SetShadowOffset(0,0.91,0)
object.fire=CreateEmitter(100,100,Vec3(0,1,0),0,object.model)
object.fire:SetPositionf(0,0.5,0,0)
object.fire:Paint(LoadMaterial('abstract::candleflame.mat'),0)
object.fire:SetRadius(0.02,0.02)
object.fire:SetColorf(0.2,0.2,0.2,1,1)
object.fire:SetWaver(0)
object.fire:SetVelocity(Vec3(0,0.01,0),Vec3(0,0.01,0))
--Declare initial values
object.fluctuation=1.0
object.smoothedfluctuation=1.0
function object:SetKey(key,value)
if key=="color" then
elseif key=="intensity" then
else
return self.super:SetKey(key,value)
end
return 1
end
function object:GetKey(key,value)
if key=="color" then
elseif key=="intensity" then
else
return self.super:GetKey(key,value)
end
return value
end
function object:Render()
self.fluctuation=self.fluctuation+math.random(-100,100)/1000.0*AppSpeed()
self.fluctuation=math.min(1.0,self.fluctuation)
self.fluctuation=math.max(0.2,self.fluctuation)
self.smoothedfluctuation=Curve(self.fluctuation,self.smoothedfluctuation,5.0/AppSpeed())
self.light:SetColorf(1.0*self.smoothedfluctuation,0.6*self.smoothedfluctuation,0.25*self.smoothedfluctuation,1,0)
end
end