<#assign licenseFirst = "/*"> <#assign licensePrefix = " * "> <#assign licenseLast = " */"> <#include "../Licenses/license-${project.license}.txt"> <#if package?? && package != ""> package ${package}; import com.jme3.export.InputCapsule; import com.jme3.export.JmeExporter; import com.jme3.export.JmeImporter; import com.jme3.export.OutputCapsule; import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; import com.jme3.scene.Spatial; import com.jme3.scene.control.AbstractControl; import com.jme3.scene.control.Control; import java.io.IOException; /** * * @author ${user} */ public class ${name} extends AbstractControl{ //Any local variables should be encapsulated by getters/setters so they //appear in the SDK properties window and can be edited. //Right-click a local variable to encapsulate it with getters and setters. @Override protected void controlUpdate(float tpf) { //TODO: add code that controls Spatial, //e.g. spatial.rotate(tpf,tpf,tpf); } @Override protected void controlRender(RenderManager rm, ViewPort vp) { //Only needed for rendering-related operations, //not called when spatial is culled. } public Control cloneForSpatial(Spatial spatial) { ${name} control = new ${name}(); //TODO: copy parameters to new Control control.setSpatial(spatial); return control; } @Override public void read(JmeImporter im) throws IOException { super.read(im); InputCapsule in = im.getCapsule(this); //TODO: load properties of this Control, e.g. //this.value = in.readFloat("name", defaultValue); } @Override public void write(JmeExporter ex) throws IOException { super.write(ex); OutputCapsule out = ex.getCapsule(this); //TODO: save properties of this Control, e.g. //out.write(this.value, "name", defaultValue); } }