2018-09-02 13:36:49 +02:00
|
|
|
package it.cavallium.warppi.gui.expression;
|
2017-05-05 22:27:11 +02:00
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
2018-09-02 13:36:49 +02:00
|
|
|
import it.cavallium.warppi.event.KeyboardEventListener;
|
|
|
|
import it.cavallium.warppi.gui.expression.blocks.Block;
|
|
|
|
import it.cavallium.warppi.gui.graphicengine.GraphicEngine;
|
|
|
|
import it.cavallium.warppi.gui.graphicengine.Renderer;
|
2017-05-05 22:27:11 +02:00
|
|
|
|
|
|
|
public abstract class ExtraMenu<T extends Block> implements Serializable, KeyboardEventListener {
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
private static final long serialVersionUID = -6944683477814944299L;
|
|
|
|
|
|
|
|
public ExtraMenu(T block) {
|
|
|
|
this.block = block;
|
2017-09-24 18:47:30 +02:00
|
|
|
this.location = new int[] { 0, 0 };
|
2017-05-05 22:27:11 +02:00
|
|
|
this.width = 0;
|
|
|
|
this.height = 0;
|
|
|
|
}
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
public final T block;
|
|
|
|
protected int width;
|
|
|
|
protected int height;
|
|
|
|
protected int[] location;
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
public abstract void draw(GraphicEngine ge, Renderer r, Caret caret);
|
|
|
|
|
|
|
|
public abstract void open();
|
2017-09-24 18:47:30 +02:00
|
|
|
|
2017-05-05 22:27:11 +02:00
|
|
|
public abstract void close();
|
|
|
|
|
|
|
|
public boolean beforeRender(float delta, Caret caret) {
|
2018-05-12 21:18:29 +02:00
|
|
|
final int[] l = caret.getLastLocation();
|
|
|
|
final int[] cs = caret.getLastSize();
|
2017-09-24 18:47:30 +02:00
|
|
|
location[0] = l[0] - block.getWidth() / 2 - width / 2;
|
|
|
|
location[1] = l[1] + cs[1];
|
2017-05-05 22:27:11 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|