/**
*
*/
package net.cis.client.game.ui.effects;
import de.lessvoid.nifty.Nifty;
import de.lessvoid.nifty.effects.EffectImpl;
import de.lessvoid.nifty.effects.EffectProperties;
import de.lessvoid.nifty.effects.Falloff;
import de.lessvoid.nifty.elements.Element;
import de.lessvoid.nifty.elements.render.ImageRenderer;
import de.lessvoid.nifty.render.NiftyImage;
import de.lessvoid.nifty.render.NiftyRenderEngine;
import de.lessvoid.nifty.render.image.ImageModeFactory;
import de.lessvoid.nifty.render.image.ImageModeHelper;
/**
* @author SchaeckerM
*
*/
public class SpriteSwitch implements EffectImpl {
private int spriteNo;
private int spriteWidth;
private int spriteHeight;
/*
* (non-Javadoc)
*
* @see
* de.lessvoid.nifty.effects.EffectImpl#activate(de.lessvoid.nifty.Nifty,
* de.lessvoid.nifty.elements.Element,
* de.lessvoid.nifty.effects.EffectProperties)
*/
@Override
public void activate(Nifty nifty, Element element,
EffectProperties parameter) {
this.spriteNo = Integer
.parseInt(parameter.getProperty("spriteNo", "0"));
this.spriteWidth = Integer
.parseInt(parameter.getProperty("spriteWidth", "32"));
this.spriteHeight = Integer
.parseInt(parameter.getProperty("spriteHeight", "32"));
}
/*
* (non-Javadoc)
*
* @see
* de.lessvoid.nifty.effects.EffectImpl#execute(de.lessvoid.nifty.elements
* .Element, float, de.lessvoid.nifty.effects.Falloff,
* de.lessvoid.nifty.render.NiftyRenderEngine)
*/
@Override
public void execute(Element element, float effectTime, Falloff falloff,
NiftyRenderEngine r) {
NiftyImage image = element.getRenderer(ImageRenderer.class).getImage();
String areaProviderProperty = new ImageModeHelper()
.getAreaProviderProperty("sprite:" + spriteWidth + "," + spriteHeight + ","
+ spriteNo);
String renderStrategyProperty = new ImageModeHelper()
.getRenderStrategyProperty("sprite:" + spriteWidth + "," + spriteHeight
+ "," + spriteNo);
image.setImageMode(ImageModeFactory.getSharedInstance()
.createImageMode(areaProviderProperty, renderStrategyProperty));
element.getRenderer(ImageRenderer.class).setImage(image);
}
/*
* (non-Javadoc)
*
* @see de.lessvoid.nifty.effects.EffectImpl#deactivate()
*/
@Override
public void deactivate() {
// TODO Auto-generated method stub
}
}