Patch CoFH Core to not rely on Ingredient.itemStacks
This commit is contained in:
parent
eed320b055
commit
7398b48345
|
|
@ -60,6 +60,7 @@ dependencies {
|
||||||
|
|
||||||
modCompileOnly("curse.maven:supermartijncore-454372:4455391")
|
modCompileOnly("curse.maven:supermartijncore-454372:4455391")
|
||||||
modCompileOnly("vazkii.patchouli:Patchouli:1.19.2-77")
|
modCompileOnly("vazkii.patchouli:Patchouli:1.19.2-77")
|
||||||
|
modCompileOnly("curse.maven:cofhcore-69162:5374122")
|
||||||
|
|
||||||
// runtime remapping at home
|
// runtime remapping at home
|
||||||
for (extraModJar in fileTree(dir: extraModsDir, include: '*.jar')) {
|
for (extraModJar in fileTree(dir: extraModsDir, include: '*.jar')) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
package org.embeddedt.modernfix.forge.mixin.perf.faster_ingredients;
|
||||||
|
|
||||||
|
import cofh.lib.util.crafting.IngredientWithCount;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
|
import org.embeddedt.modernfix.annotation.RequiresMod;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
@Mixin(IngredientWithCount.class)
|
||||||
|
@RequiresMod("cofh_core")
|
||||||
|
public class CofhIngredientWithCountMixin extends Ingredient {
|
||||||
|
@Shadow @Final private Ingredient wrappedIngredient;
|
||||||
|
@Shadow @Final private int count;
|
||||||
|
|
||||||
|
@Unique
|
||||||
|
private ItemStack[] mfix$itemStacksWithAdjustedCount;
|
||||||
|
|
||||||
|
protected CofhIngredientWithCountMixin(Stream<? extends Value> values) {
|
||||||
|
super(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author embeddedt
|
||||||
|
* @reason reimplement in a way that doesn't rely on the itemStacks implementation detail of the wrapped ingredient
|
||||||
|
*/
|
||||||
|
@Overwrite
|
||||||
|
public ItemStack[] getItems() {
|
||||||
|
if (this.mfix$itemStacksWithAdjustedCount == null) {
|
||||||
|
ItemStack[] originalItems = this.wrappedIngredient.getItems();
|
||||||
|
var newItems = new ItemStack[originalItems.length];
|
||||||
|
for (int i = 0; i < originalItems.length; i++) {
|
||||||
|
newItems[i] = originalItems[i].copy();
|
||||||
|
newItems[i].setCount(this.count);
|
||||||
|
}
|
||||||
|
this.mfix$itemStacksWithAdjustedCount = newItems;
|
||||||
|
}
|
||||||
|
return this.mfix$itemStacksWithAdjustedCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user