import net.sf.jirr.*;

public class CirclingLight extends BaseObject
{
  protected ISceneNode node = null;
  protected vector3df rotation = null;
  
  public CirclingLight()
  {
    
  }
  
  public void startupCirclingLight(vector3df centre, vector3df offset, vector3df rotation, SColorf color)
  {
    super.startupGameObject();
    
    this.rotation = rotation;
    
    // create light
    
    node = EngineManager.getInstance().getSceneManager().addEmptySceneNode();
    node.setPosition(centre);
    
    ISceneNode light = EngineManager.getInstance().getSceneManager().addLightSceneNode(
      node, 
      offset,
      color,
      1000.0f);
  
    // attach billboard to light
  
    ISceneNode billboard = EngineManager.getInstance().getSceneManager().addBillboardSceneNode(
        light, 
        new dimension2df(55));
    billboard.setMaterialFlag(E_MATERIAL_FLAG.EMF_LIGHTING, false);
    billboard.setMaterialType(E_MATERIAL_TYPE.EMT_TRANSPARENT_ADD_COLOR);
    billboard.setMaterialTexture(0, EngineManager.getInstance().getVideoDriver().getTexture("particlewhite.bmp"));

  }
  
  public void shutdown()
  {
    node.remove();
    node = null;
    
    super.shutdown();    
  }
  
  public void enterFrame(double dt)
  {
    vector3df currentRotation = node.getRotation();
    vector3df newRotation = new vector3df();
    newRotation.set(
        currentRotation.getX() + rotation.getX() (float)dt,
        currentRotation.getY() + rotation.getY() (float)dt,
        currentRotation.getZ() + rotation.getZ() (float)dt);
    node.setRotation(newRotation);
  }
}