@@ -253,23 +253,24 @@ public static void addShapedRecipe(Consumer<FinishedRecipe> provider, boolean se
253253 @ NotNull Object ... recipe ) {
254254 var builder = new ShapedRecipeBuilder (regName ).output (result );
255255 builder .isStrict (isStrict );
256- CharSet set = new CharOpenHashSet ();
256+ final CharSet tools = ToolHelper .getToolSymbols ();
257+ CharSet foundTools = new CharArraySet (9 );
257258 for (int i = 0 ; i < recipe .length ; i ++) {
258259 var o = recipe [i ];
259260 if (o instanceof String pattern ) {
260261 builder .pattern (pattern );
261- for (Character c : ToolHelper . getToolSymbols ()) {
262- if (pattern . indexOf (c ) >= 0 ) {
263- set .add (c . charValue () );
262+ for (char c : pattern . toCharArray ()) {
263+ if (tools . contains (c )) {
264+ foundTools .add (c );
264265 }
265266 }
266267 }
267268 if (o instanceof String [] pattern ) {
268269 for (String s : pattern ) {
269270 builder .pattern (s );
270- for (Character c : ToolHelper . getToolSymbols ()) {
271- if (s . indexOf (c ) >= 0 ) {
272- set .add (c . charValue () );
271+ for (char c : s . toCharArray ()) {
272+ if (tools . contains (c )) {
273+ foundTools .add (c );
273274 }
274275 }
275276 }
@@ -299,7 +300,8 @@ public static void addShapedRecipe(Consumer<FinishedRecipe> provider, boolean se
299300 }
300301 }
301302 }
302- for (Character c : set ) {
303+ for (var it = foundTools .iterator (); it .hasNext ();) {
304+ char c = it .nextChar ();
303305 builder .define (c , ToolHelper .getToolFromSymbol (c ).itemTags .get (0 ));
304306 }
305307 builder .save (provider );
@@ -347,23 +349,24 @@ public static void addShapedEnergyTransferRecipe(Consumer<FinishedRecipe> provid
347349 @ NotNull Object ... recipe ) {
348350 var builder = new ShapedEnergyTransferRecipeBuilder (regName ).output (result );
349351 builder .chargeIngredient (chargeIngredient ).overrideCharge (overrideCharge ).transferMaxCharge (transferMaxCharge );
350- CharSet set = new CharOpenHashSet ();
352+ final CharSet tools = ToolHelper .getToolSymbols ();
353+ CharSet foundTools = new CharArraySet (9 );
351354 for (int i = 0 ; i < recipe .length ; i ++) {
352355 var o = recipe [i ];
353356 if (o instanceof String pattern ) {
354357 builder .pattern (pattern );
355- for (Character c : ToolHelper . getToolSymbols ()) {
356- if (pattern . indexOf (c ) >= 0 ) {
357- set .add (c . charValue () );
358+ for (char c : pattern . toCharArray ()) {
359+ if (tools . contains (c )) {
360+ foundTools .add (c );
358361 }
359362 }
360363 }
361364 if (o instanceof String [] pattern ) {
362365 for (String s : pattern ) {
363366 builder .pattern (s );
364- for (Character c : ToolHelper . getToolSymbols ()) {
365- if (s . indexOf (c ) >= 0 ) {
366- set .add (c . charValue () );
367+ for (char c : s . toCharArray ()) {
368+ if (tools . contains (c )) {
369+ foundTools .add (c );
367370 }
368371 }
369372 }
@@ -389,7 +392,8 @@ public static void addShapedEnergyTransferRecipe(Consumer<FinishedRecipe> provid
389392 }
390393 }
391394 }
392- for (Character c : set ) {
395+ for (var it = foundTools .iterator (); it .hasNext ();) {
396+ char c = it .nextChar ();
393397 builder .define (c , ToolHelper .getToolFromSymbol (c ).itemTags .get (0 ));
394398 }
395399 builder .save (provider );
@@ -413,23 +417,24 @@ public static void addShapedFluidContainerRecipe(Consumer<FinishedRecipe> provid
413417 @ NotNull Object ... recipe ) {
414418 var builder = new ShapedFluidContainerRecipeBuilder (regName ).output (result );
415419 builder .isStrict (isStrict );
416- CharSet set = new CharOpenHashSet ();
420+ final CharSet tools = ToolHelper .getToolSymbols ();
421+ CharSet foundTools = new CharArraySet (9 );
417422 for (int i = 0 ; i < recipe .length ; i ++) {
418423 var o = recipe [i ];
419424 if (o instanceof String pattern ) {
420425 builder .pattern (pattern );
421- for (Character c : ToolHelper . getToolSymbols ()) {
422- if (pattern . indexOf (c ) >= 0 ) {
423- set .add (c . charValue () );
426+ for (char c : pattern . toCharArray ()) {
427+ if (tools . contains (c )) {
428+ foundTools .add (c );
424429 }
425430 }
426431 }
427432 if (o instanceof String [] pattern ) {
428433 for (String s : pattern ) {
429434 builder .pattern (s );
430- for (Character c : ToolHelper . getToolSymbols ()) {
431- if (s . indexOf (c ) >= 0 ) {
432- set .add (c . charValue () );
435+ for (char c : s . toCharArray ()) {
436+ if (tools . contains (c )) {
437+ foundTools .add (c );
433438 }
434439 }
435440 }
@@ -459,7 +464,8 @@ public static void addShapedFluidContainerRecipe(Consumer<FinishedRecipe> provid
459464 }
460465 }
461466 }
462- for (Character c : set ) {
467+ for (var it = foundTools .iterator (); it .hasNext ();) {
468+ char c = it .nextChar ();
463469 builder .define (c , ToolHelper .getToolFromSymbol (c ).itemTags .get (0 ));
464470 }
465471
@@ -549,8 +555,7 @@ public static ItemMaterialInfo getRecyclingIngredients(int outputCount, @NotNull
549555 while (recipe [itr ] instanceof String s ) {
550556 for (char c : s .toCharArray ()) {
551557 if (ToolHelper .getToolFromSymbol (c ) != null ) continue ; // skip tools
552- int count = inputCountMap .getOrDefault (c , 0 );
553- inputCountMap .put (c , count + 1 );
558+ inputCountMap .addTo (c , 1 );
554559 }
555560 itr ++;
556561 }
0 commit comments