package com.pixelmaid.dresscode.antlr.types.tree.functions;
import java.util.ArrayList;
import java.util.List;
import com.pixelmaid.dresscode.antlr.types.VarType;
import com.pixelmaid.dresscode.antlr.types.tree.DCNode;
import com.pixelmaid.dresscode.antlr.types.tree.NodeEvent;
import com.pixelmaid.dresscode.drawing.primitive2d.Drawable;
import com.pixelmaid.dresscode.events.CustomEvent;
public class DrawableNode extends NodeEvent implements DCNode {
protected List<DCNode> params;
protected int line;
public DrawableNode(List<DCNode> ps, int l) {
params = ps;
line = l;
//System.out.println("created new drawable node at line:"+line);
}
@Override
public VarType evaluate() {
ArrayList<Double> values = new ArrayList<Double>();
for(int i=0;i<params.size();i++){
VarType value = params.get(i).evaluate();
if(value.isNumber()){
values.add(value.asDouble());
}
}
Drawable d = new Drawable(values);
d.setLine(line);
this.fireDrawableEvent(CustomEvent.DRAWABLE_CREATED, d);
return new VarType(d);
//throw new RuntimeException("Illegal function call: " + this);
}
}