4343import com .jme3 .util .blockparser .Statement ;
4444
4545import java .io .IOException ;
46- import java .util .ArrayList ;
47- import java .util .HashMap ;
48- import java .util .List ;
49- import java .util .Map ;
46+ import java .util .*;
5047
5148/**
5249 * This class is here to be able to load shaderNodeDefinition from both the
@@ -75,7 +72,7 @@ public class ShaderNodeLoaderDelegate {
7572 protected MaterialDef materialDef ;
7673 protected String shaderLanguage ;
7774 protected String shaderName ;
78- protected String varNames = "" ;
75+ protected Set < String > varNames = new HashSet <>() ;
7976 protected AssetManager assetManager ;
8077 protected ConditionParser conditionParser = new ConditionParser ();
8178 protected List <String > nulledConditions = new ArrayList <String >();
@@ -177,7 +174,7 @@ protected void readShaderNodeDefinition(List<Statement> statements, ShaderNodeDe
177174 shaderNodeDefinition .setDocumentation (doc );
178175 }
179176 } else if (line .startsWith ("Input" )) {
180- varNames = "" ;
177+ varNames . clear () ;
181178 for (Statement statement1 : statement .getContents ()) {
182179 try {
183180 shaderNodeDefinition .getInputs ().add (readVariable (statement1 ));
@@ -186,7 +183,7 @@ protected void readShaderNodeDefinition(List<Statement> statements, ShaderNodeDe
186183 }
187184 }
188185 } else if (line .startsWith ("Output" )) {
189- varNames = "" ;
186+ varNames . clear () ;
190187 for (Statement statement1 : statement .getContents ()) {
191188 try {
192189 if (statement1 .getLine ().trim ().equals ("None" )) {
@@ -235,11 +232,11 @@ protected ShaderNodeVariable readVariable(Statement statement) throws IOExceptio
235232 multiplicity = arr [1 ].replaceAll ("\\ ]" , "" ).trim ();
236233 }
237234
238- if (varNames .contains (varName + ";" )) {
235+ if (varNames .contains (varName )) {
239236 throw new MatParseException ("Duplicate variable name " + varName , statement );
240237 }
241238
242- varNames += varName + ";" ;
239+ varNames . add ( varName ) ;
243240
244241 final ShaderNodeVariable variable = new ShaderNodeVariable (varType , "" , varName , multiplicity );
245242 variable .setDefaultValue (defaultValue );
@@ -1139,7 +1136,7 @@ public void clear() {
11391136 materialDef = null ;
11401137 shaderLanguage = "" ;
11411138 shaderName = "" ;
1142- varNames = "" ;
1139+ varNames . clear () ;
11431140 assetManager = null ;
11441141 nulledConditions .clear ();
11451142 }
0 commit comments