class Param { String name; int type; float minValue, maxValue; float value; int[] osciModes; Param(String name_, int type_, float minValue_, float maxValue_, int[] osciModes_) { name = name_; type = type_; //FLOATVAL or INTVAL minValue = minValue_; maxValue = maxValue_; osciModes = osciModes_; } } class Shader { int id; int pos; String name; ArrayList params = new ArrayList(); void getValuesFromGUI(){ try{ //problematic params = gui.bricks.get(pos).params; } catch(Exception e){} if(frameRate < 1) println("Rendering " + this + " on position " + pos + "..."); } void changeParam(int paramNo, Param newParam){ gui.bricks.get(pos).params.remove(paramNo); gui.bricks.get(pos).params.add(paramNo, newParam); gui.bricks.get(pos).exchangeSlider(paramNo, newParam); } void apply() { }; //override me }