Skip to content

Commit ef2bcfb

Browse files
committed
ouch oof owie my bones
compiles
1 parent 981ee14 commit ef2bcfb

37 files changed

+429
-408
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ val loaderVersion = "0.16.9"
77
val fapiVersion = "0.92.2+1.20.1"
88

99
// in-house dependencies
10-
val flywheelVersion = "1.0.0-beta-4"
11-
val ponderVersion = "1.0.24"
10+
val flywheelVersion = "1.0.0-217"
11+
val ponderVersion = "1.0.36"
1212
val registrateVersion = "1.3.79-MC1.20.1"
1313
val milkLibVersion = "1.2.60"
1414
val portLibVersion = "2.3.8+1.20.1"

src/main/java/com/simibubi/create/Create.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import java.util.Random;
44

5-
import com.simibubi.create.compat.inventorySorter.InventorySorterCompat;
6-
75
import org.slf4j.Logger;
86

97
import com.google.gson.Gson;

src/main/java/com/simibubi/create/compat/emi/CreateEmiAnimations.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import net.createmod.catnip.gui.ILightingSettings;
2323
import net.createmod.catnip.gui.UIRenderHelper;
2424
import net.createmod.catnip.gui.element.GuiGameElement;
25+
import net.createmod.catnip.render.CachedBuffers;
2526
import net.createmod.catnip.render.SpriteShiftEntry;
2627
import net.minecraft.client.Minecraft;
2728
import net.minecraft.client.gui.GuiGraphics;
@@ -182,7 +183,7 @@ public static void addBlazeBurner(WidgetHolder widgets, int x, int y, HeatLevel
182183
MultiBufferSource.BufferSource buffer = mc.renderBuffers()
183184
.bufferSource();
184185
VertexConsumer vb = buffer.getBuffer(RenderType.cutoutMipped());
185-
CachedBufferer.partial(AllPartialModels.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState())
186+
CachedBuffers.partial(AllPartialModels.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState())
186187
.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll)
187188
.light(LightTexture.FULL_BRIGHT)
188189
.renderInto(matrixStack, vb);
@@ -415,8 +416,9 @@ public static void renderSpout(GuiGraphics graphics, int offset, List<FluidStack
415416
matrices.scale(16, 16, 16);
416417
float from = 3f / 16f;
417418
float to = 17f / 16f;
418-
FluidRenderer.renderFluidBox(fluids.get(0), from, from, from, to, to, to, buffer, matrices,
419-
LightTexture.FULL_BRIGHT, false);
419+
FluidStack fluid = fluids.get(0);
420+
FluidRenderer.renderFluidBox(fluid.getFluid(), fluid.getAmount(), from, from, from, to, to, to, buffer, matrices,
421+
LightTexture.FULL_BRIGHT, false, true, fluid.getTag());
420422
matrices.popPose();
421423

422424
float width = 1 / 128f * squeeze;
@@ -426,8 +428,8 @@ public static void renderSpout(GuiGraphics graphics, int offset, List<FluidStack
426428
matrices.translate(-0.5f, 0, -0.5f);
427429
from = -width / 2 + 0.5f;
428430
to = width / 2 + 0.5f;
429-
FluidRenderer.renderFluidBox(fluids.get(0), from, 0, from, to, 2, to, buffer, matrices,
430-
LightTexture.FULL_BRIGHT, false);
431+
FluidRenderer.renderFluidBox(fluid.getFluid(), fluid.getAmount(), from, 0, from, to, 2, to, buffer, matrices,
432+
LightTexture.FULL_BRIGHT, false, true, fluid.getTag());
431433
buffer.endBatch();
432434
Lighting.setupFor3DItems();
433435
}
@@ -450,8 +452,8 @@ public static void addDrain(WidgetHolder widgets, int x, int y, FluidStack fluid
450452
matrices.scale(scale, scale, scale);
451453
float from = 2 / 16f;
452454
float to = 1f - from;
453-
FluidRenderer.renderFluidBox(fluid, from, from, from, to, 3/4f, to, buffer, matrices,
454-
LightTexture.FULL_BRIGHT, false);
455+
FluidRenderer.renderFluidBox(fluid.getFluid(), fluid.getAmount(), from, from, from, to, 3/4f, to, buffer, matrices,
456+
LightTexture.FULL_BRIGHT, false, true, fluid.getTag());
455457
buffer.endBatch();
456458
});
457459
}

src/main/java/com/simibubi/create/compat/emi/CreateEmiPlugin.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
import com.simibubi.create.content.kinetics.millstone.MillingRecipe;
5555
import com.simibubi.create.content.kinetics.mixer.MixingRecipe;
5656
import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity;
57-
import com.simibubi.create.content.kinetics.saw.SawBlockEntity;
5857
import com.simibubi.create.content.logistics.filter.AttributeFilterScreen;
5958
import com.simibubi.create.content.logistics.filter.FilterScreen;
6059
import com.simibubi.create.content.processing.basin.BasinRecipe;
@@ -81,7 +80,6 @@
8180
import dev.emi.emi.api.widget.Bounds;
8281
import net.minecraft.core.registries.BuiltInRegistries;
8382
import net.minecraft.resources.ResourceLocation;
84-
import net.minecraft.world.Container;
8583
import net.minecraft.world.item.BlockItem;
8684
import net.minecraft.world.item.DyeItem;
8785
import net.minecraft.world.item.Item;
@@ -108,7 +106,6 @@
108106
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
109107
import net.fabricmc.fabric.api.transfer.v1.storage.Storage;
110108
import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction;
111-
import net.fabricmc.loader.api.FabricLoader;
112109

113110
import io.github.fabricators_of_create.porting_lib.fluids.FluidStack;
114111
import io.github.fabricators_of_create.porting_lib.transfer.MutableContainerItemContext;
@@ -263,13 +260,6 @@ public void register(EmiRegistry registry) {
263260
.filter(r -> !AllRecipeTypes.shouldIgnoreInAutomation(r)).toList(), "block_cutting")) {
264261
registry.addRecipe(new BlockCuttingEmiRecipe(BLOCK_CUTTING, recipe));
265262
}
266-
if (FabricLoader.getInstance().isModLoaded("druidcraft")) {
267-
for (CondensedBlockCuttingRecipe recipe : CondensedBlockCuttingRecipe
268-
.condenseRecipes(manager.getAllRecipesFor((RecipeType<Recipe<Container>>) SawBlockEntity.woodcuttingRecipeType.get())
269-
.stream().filter(r -> !AllRecipeTypes.shouldIgnoreInAutomation(r)).toList(), "block_cutting")) {
270-
registry.addRecipe(new BlockCuttingEmiRecipe(BLOCK_CUTTING, recipe));
271-
}
272-
}
273263
addAll(registry, AllRecipeTypes.COMPACTING, PackingEmiRecipe::new);
274264
for (CraftingRecipe recipe : manager.getAllRecipesFor(RecipeType.CRAFTING)) {
275265
if (!(recipe instanceof MechanicalCraftingRecipe)

src/main/java/com/simibubi/create/compat/inventorySorter/InventorySorterCompat.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/main/java/com/simibubi/create/compat/jei/CreateJEI.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,9 @@
9292
import mezz.jei.fabric.ingredients.fluid.JeiFluidIngredient;
9393
import net.createmod.catnip.config.ConfigBase;
9494
import net.minecraft.client.Minecraft;
95+
import net.minecraft.core.IdMap;
9596
import net.minecraft.core.RegistryAccess;
97+
import net.minecraft.core.registries.BuiltInRegistries;
9698
import net.minecraft.resources.ResourceLocation;
9799
import net.minecraft.world.effect.MobEffect;
98100
import net.minecraft.world.item.ItemStack;
@@ -107,6 +109,7 @@
107109
import net.minecraft.world.level.ItemLike;
108110
import net.minecraft.world.level.block.Blocks;
109111

112+
import io.github.fabricators_of_create.porting_lib.fluids.FluidStack;
110113
import io.github.fabricators_of_create.porting_lib.mixin.accessors.common.accessor.RecipeManagerAccessor;
111114

112115
@JeiPlugin
@@ -377,7 +380,7 @@ public <T> void registerFluidSubtypes(ISubtypeRegistration registration, IPlatfo
377380

378381
@Override
379382
public void registerExtraIngredients(IExtraIngredientRegistration registration) {
380-
Collection<Potion> potions = ForgeRegistries.POTIONS.getValues();
383+
IdMap<Potion> potions = BuiltInRegistries.POTION;
381384
Collection<FluidStack> potionFluids = new ArrayList<>(potions.size() * 3);
382385
Set<Set<MobEffect>> visitedEffects = new HashSet<>();
383386
for (Potion potion : potions) {
@@ -396,7 +399,7 @@ public void registerExtraIngredients(IExtraIngredientRegistration registration)
396399

397400
potionFluids.add(PotionFluid.of(1000, potion, PotionFluid.BottleType.REGULAR));
398401
}
399-
registration.addExtraIngredients(ForgeTypes.FLUID_STACK, potionFluids);
402+
registration.addExtraIngredients(FabricTypes.FLUID_STACK, CreateRecipeCategory.toJei(potionFluids));
400403
}
401404

402405
@SuppressWarnings({ "unchecked", "rawtypes" })

src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.simibubi.create.compat.jei.category;
22

3+
import java.util.Collection;
34
import java.util.List;
45
import java.util.Optional;
56
import java.util.function.Supplier;
@@ -160,7 +161,7 @@ public static List<FluidStack> fromJei(List<IJeiFluidIngredient> stacks) {
160161
return stacks.stream().map(CreateRecipeCategory::fromJei).toList();
161162
}
162163

163-
public static List<IJeiFluidIngredient> toJei(List<FluidStack> stacks) {
164+
public static List<IJeiFluidIngredient> toJei(Collection<FluidStack> stacks) {
164165
return stacks.stream().map(CreateRecipeCategory::toJei).toList();
165166
}
166167

src/main/java/com/simibubi/create/compat/jei/category/ItemDrainCategory.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder;
1212
import com.simibubi.create.foundation.gui.AllGuiTextures;
1313
import com.simibubi.create.foundation.item.ItemHelper;
14+
import com.simibubi.create.foundation.mixin.accessor.ItemStackLinkedSetAccessor;
1415

1516
import it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet;
1617
import mezz.jei.api.constants.VanillaTypes;
@@ -24,15 +25,13 @@
2425
import net.minecraft.client.gui.GuiGraphics;
2526
import net.minecraft.resources.ResourceLocation;
2627
import net.minecraft.world.item.ItemStack;
27-
import net.minecraft.world.item.ItemStackLinkedSet;
2828
import net.minecraft.world.item.Items;
2929
import net.minecraft.world.item.crafting.Ingredient;
3030

3131
import net.fabricmc.fabric.api.transfer.v1.context.ContainerItemContext;
3232
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants;
3333
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage;
3434
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
35-
import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant;
3635
import net.fabricmc.fabric.api.transfer.v1.storage.Storage;
3736

3837
import io.github.fabricators_of_create.porting_lib.fluids.FluidStack;
@@ -49,7 +48,7 @@ public ItemDrainCategory(Info<EmptyingRecipe> info) {
4948
}
5049

5150
public static void consumeRecipes(Consumer<EmptyingRecipe> consumer, IIngredientManager ingredientManager) {
52-
ObjectOpenCustomHashSet<ItemStack> emptiedItems = new ObjectOpenCustomHashSet<>(ItemStackLinkedSet.TYPE_AND_TAG);
51+
ObjectOpenCustomHashSet<ItemStack> emptiedItems = new ObjectOpenCustomHashSet<>(ItemStackLinkedSetAccessor.getTYPE_AND_TAG());
5352
for (ItemStack stack : ingredientManager.getAllIngredients(VanillaTypes.ITEM_STACK)) {
5453
if (PotionFluidHandler.isPotionItem(stack)) {
5554
FluidStack fluidFromPotionItem = PotionFluidHandler.getFluidFromPotionItem(stack);
@@ -71,10 +70,10 @@ public static void consumeRecipes(Consumer<EmptyingRecipe> consumer, IIngredient
7170
MutableContainerItemContext ctx = new MutableContainerItemContext(copy);
7271
Storage<FluidVariant> storage = ctx.find(FluidStorage.ITEM);
7372
FluidStack extracted = TransferUtil.extractAnyFluid(storage, FluidConstants.BUCKET);
74-
ItemVariant result = ctx.getItemVariant();
73+
ItemStack result = ctx.getItemVariant().toStack(ItemHelper.truncateLong(ctx.getAmount()));
7574
if (extracted.isEmpty())
7675
continue;
77-
if (result.isBlank())
76+
if (result.isEmpty())
7877
continue;
7978

8079
// There can be a lot of duplicate empty tanks (e.g. from emptying tanks with different fluids). Merge
@@ -90,7 +89,7 @@ public static void consumeRecipes(Consumer<EmptyingRecipe> consumer, IIngredient
9089
Create.asResource("empty_" + itemName.getNamespace() + "_" + itemName.getPath() + "_of_"
9190
+ fluidName.getNamespace() + "_" + fluidName.getPath())).withItemIngredients(ingredient)
9291
.withFluidOutputs(extracted)
93-
.withSingleItemOutput(result.toStack(ItemHelper.truncateLong(ctx.getAmount())))
92+
.withSingleItemOutput(result)
9493
.build());
9594
}
9695
}

src/main/java/com/simibubi/create/compat/jei/category/SpoutCategory.java

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import javax.annotation.ParametersAreNonnullByDefault;
77

8+
import com.google.common.collect.Iterators;
89
import com.simibubi.create.Create;
910
import com.simibubi.create.compat.jei.category.animations.AnimatedSpout;
1011
import com.simibubi.create.content.fluids.potion.PotionFluidHandler;
@@ -17,7 +18,6 @@
1718

1819
import mezz.jei.api.constants.VanillaTypes;
1920
import mezz.jei.api.fabric.constants.FabricTypes;
20-
import mezz.jei.api.fabric.ingredients.fluids.IJeiFluidIngredient;
2121
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
2222
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
2323
import mezz.jei.api.recipe.IFocusGroup;
@@ -30,8 +30,15 @@
3030
import net.minecraft.world.item.Items;
3131
import net.minecraft.world.item.crafting.Ingredient;
3232

33+
import net.fabricmc.fabric.api.transfer.v1.context.ContainerItemContext;
34+
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants;
35+
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage;
36+
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant;
37+
import net.fabricmc.fabric.api.transfer.v1.storage.Storage;
38+
3339
import io.github.fabricators_of_create.porting_lib.fluids.FluidStack;
34-
import io.github.fabricators_of_create.porting_lib.util.LazyOptional;
40+
import io.github.fabricators_of_create.porting_lib.transfer.MutableContainerItemContext;
41+
import io.github.fabricators_of_create.porting_lib.transfer.TransferUtil;
3542

3643
@ParametersAreNonnullByDefault
3744
public class SpoutCategory extends CreateRecipeCategory<FillingRecipe> {
@@ -43,7 +50,8 @@ public SpoutCategory(Info<FillingRecipe> info) {
4350
}
4451

4552
public static void consumeRecipes(Consumer<FillingRecipe> consumer, IIngredientManager ingredientManager) {
46-
Collection<IJeiFluidIngredient> fluidStacks = ingredientManager.getAllIngredients(FabricTypes.FLUID_STACK);
53+
Collection<FluidStack> fluidStacks = ingredientManager.getAllIngredients(FabricTypes.FLUID_STACK)
54+
.stream().map(CreateRecipeCategory::fromJei).toList();
4755
for (ItemStack stack : ingredientManager.getAllIngredients(VanillaTypes.ITEM_STACK)) {
4856
if (PotionFluidHandler.isPotionItem(stack)) {
4957
FluidStack fluidFromPotionItem = PotionFluidHandler.getFluidFromPotionItem(stack);
@@ -56,14 +64,12 @@ public static void consumeRecipes(Consumer<FillingRecipe> consumer, IIngredientM
5664
continue;
5765
}
5866

59-
LazyOptional<IFluidHandlerItem> capability =
60-
stack.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM);
61-
if (!capability.isPresent())
67+
Storage<FluidVariant> storage = ContainerItemContext.withConstant(stack).find(FluidStorage.ITEM);
68+
if (storage == null)
6269
continue;
6370

64-
var existingFluidHandler = capability.orElse(null);
65-
int numTanks = existingFluidHandler.getTanks();
66-
FluidStack existingFluid = numTanks == 1 ? existingFluidHandler.getFluidInTank(0) : FluidStack.EMPTY;
71+
int numTanks = Iterators.size(storage.iterator());
72+
FluidStack existingFluid = numTanks == 1 ? new FluidStack(storage.iterator().next()) : FluidStack.EMPTY;
6773

6874
for (FluidStack fluidStack : fluidStacks) {
6975
// Hoist the fluid equality check to avoid the work of copying the stack + populating capabilities
@@ -72,30 +78,32 @@ public static void consumeRecipes(Consumer<FillingRecipe> consumer, IIngredientM
7278
continue;
7379
}
7480
ItemStack copy = stack.copy();
75-
copy.getCapability(ForgeCapabilities.FLUID_HANDLER_ITEM)
76-
.ifPresent(fhi -> {
77-
if (!GenericItemFilling.isFluidHandlerValid(copy, fhi))
78-
return;
79-
FluidStack fluidCopy = fluidStack.copy();
80-
fluidCopy.setAmount(1000);
81-
fhi.fill(fluidCopy, FluidAction.EXECUTE);
82-
ItemStack container = fhi.getContainer();
83-
if (ItemHelper.sameItem(container, copy))
84-
return;
85-
if (container.isEmpty())
86-
return;
87-
88-
Ingredient bucket = Ingredient.of(stack);
89-
ResourceLocation itemName = CatnipServices.REGISTRIES.getKeyOrThrow(stack.getItem());
90-
ResourceLocation fluidName = CatnipServices.REGISTRIES.getKeyOrThrow(fluidCopy.getFluid());
91-
consumer.accept(new ProcessingRecipeBuilder<>(FillingRecipe::new,
92-
Create.asResource("fill_" + itemName.getNamespace() + "_" + itemName.getPath()
93-
+ "_with_" + fluidName.getNamespace() + "_" + fluidName.getPath()))
94-
.withItemIngredients(bucket)
95-
.withFluidIngredients(FluidIngredient.fromFluidStack(fluidCopy))
96-
.withSingleItemOutput(container)
97-
.build());
98-
});
81+
MutableContainerItemContext context = new MutableContainerItemContext(stack);
82+
Storage<FluidVariant> copyStorage = context.find(FluidStorage.ITEM);
83+
if (copyStorage == null)
84+
continue;
85+
86+
if (!GenericItemFilling.isFluidHandlerValid(copy, copyStorage))
87+
continue;
88+
FluidStack fluidCopy = fluidStack.copy();
89+
fluidCopy.setAmount(FluidConstants.BUCKET);
90+
TransferUtil.insertFluid(copyStorage, fluidStack);
91+
ItemStack container = context.getItemVariant().toStack(TransferUtil.truncateLong(context.getAmount()));
92+
if (ItemHelper.sameItem(container, copy))
93+
continue;
94+
if (container.isEmpty())
95+
continue;
96+
97+
Ingredient bucket = Ingredient.of(stack);
98+
ResourceLocation itemName = CatnipServices.REGISTRIES.getKeyOrThrow(stack.getItem());
99+
ResourceLocation fluidName = CatnipServices.REGISTRIES.getKeyOrThrow(fluidCopy.getFluid());
100+
consumer.accept(new ProcessingRecipeBuilder<>(FillingRecipe::new,
101+
Create.asResource("fill_" + itemName.getNamespace() + "_" + itemName.getPath()
102+
+ "_with_" + fluidName.getNamespace() + "_" + fluidName.getPath()))
103+
.withItemIngredients(bucket)
104+
.withFluidIngredients(FluidIngredient.fromFluidStack(fluidCopy))
105+
.withSingleItemOutput(container)
106+
.build());
99107
}
100108
}
101109
}

src/main/java/com/simibubi/create/compat/rei/CreateREI.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity;
5959
import com.simibubi.create.content.kinetics.press.PressingRecipe;
6060
import com.simibubi.create.content.kinetics.saw.CuttingRecipe;
61-
import com.simibubi.create.content.kinetics.saw.SawBlockEntity;
6261
import com.simibubi.create.content.processing.basin.BasinRecipe;
6362
import com.simibubi.create.content.processing.sequenced.SequencedAssemblyRecipe;
6463
import com.simibubi.create.foundation.data.recipe.LogStrippingFakeRecipes;
@@ -97,8 +96,6 @@
9796
import net.minecraft.world.level.ItemLike;
9897
import net.minecraft.world.level.block.Blocks;
9998

100-
import net.fabricmc.loader.api.FabricLoader;
101-
10299
import io.github.fabricators_of_create.porting_lib.mixin.accessors.common.accessor.RecipeManagerAccessor;
103100

104101
@SuppressWarnings("unused")
@@ -233,15 +230,6 @@ private void loadCategories() {
233230
.emptyBackground(177, 76)
234231
.build("block_cutting", BlockCuttingCategory::new),
235232

236-
woodCutting = builder(CondensedBlockCuttingRecipe.class)
237-
.enableIf(c -> c.allowWoodcuttingOnSaw.get() && FabricLoader.getInstance()
238-
.isModLoaded("druidcraft"))
239-
.addRecipes(() -> CondensedBlockCuttingRecipe.condenseRecipes(getTypedRecipesExcluding(SawBlockEntity.woodcuttingRecipeType.get(), AllRecipeTypes::shouldIgnoreInAutomation)))
240-
.catalyst(AllBlocks.MECHANICAL_SAW::get)
241-
.doubleItemIcon(AllBlocks.MECHANICAL_SAW.get(), Items.OAK_STAIRS)
242-
.emptyBackground(177, 76)
243-
.build("wood_cutting", BlockCuttingCategory::new),
244-
245233
polishing = builder(SandPaperPolishingRecipe.class)
246234
.addTypedRecipes(AllRecipeTypes.SANDPAPER_POLISHING)
247235
.catalyst(AllItems.SAND_PAPER::get)

0 commit comments

Comments
 (0)