Skip to content

Commit

Permalink
Fix recipe type registration
Browse files Browse the repository at this point in the history
  • Loading branch information
shartte committed Aug 25, 2024
1 parent 1c0ea41 commit f568ed3
Show file tree
Hide file tree
Showing 18 changed files with 53 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ static ICraftingMachine of(Level level, BlockPos pos, Direction side) {
}

/**
* Describe how this machine is displayed & grouped in the pattern access terminal.
* Describe how this machine is displayed and grouped in the pattern access terminal.
*/
PatternContainerGroup getCraftingMachineInfo();

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/appeng/blockentity/misc/ChargerRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
import net.minecraft.world.item.crafting.RecipeHolder;
import net.minecraft.world.level.Level;

import appeng.recipes.AERecipeTypes;
import appeng.recipes.handlers.ChargerRecipe;

public class ChargerRecipes {

public static Iterable<RecipeHolder<ChargerRecipe>> getRecipes(Level level) {
return level.getRecipeManager().byType(ChargerRecipe.TYPE);
return level.getRecipeManager().byType(AERecipeTypes.CHARGER);
}

@Nullable
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/appeng/blockentity/misc/InscriberRecipes.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

import appeng.api.ids.AEComponents;
import appeng.core.definitions.AEItems;
import appeng.recipes.AERecipeTypes;
import appeng.recipes.handlers.InscriberProcessType;
import appeng.recipes.handlers.InscriberRecipe;

Expand All @@ -45,7 +46,7 @@ private InscriberRecipes() {
* Returns an unmodifiable view of all registered inscriber recipes.
*/
public static Iterable<RecipeHolder<InscriberRecipe>> getRecipes(Level level) {
return level.getRecipeManager().byType(InscriberRecipe.TYPE);
return level.getRecipeManager().byType(AERecipeTypes.INSCRIBER);
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@
import appeng.client.guidebook.document.block.recipes.LytTransformRecipe;
import appeng.libs.mdast.mdx.model.MdxJsxElementFields;
import appeng.libs.mdast.model.MdAstNode;
import appeng.recipes.handlers.ChargerRecipe;
import appeng.recipes.handlers.InscriberRecipe;
import appeng.recipes.transform.TransformRecipe;
import appeng.recipes.AERecipeTypes;
import appeng.util.Platform;

/**
Expand All @@ -38,9 +36,9 @@ public class RecipeCompiler extends BlockTagCompiler {
new RecipeTypeMapping<>(RecipeType.CRAFTING, LytCraftingRecipe::new),
new RecipeTypeMapping<>(RecipeType.SMELTING, LytSmeltingRecipe::new),
new RecipeTypeMapping<>(RecipeType.SMITHING, LytSmithingRecipe::new),
new RecipeTypeMapping<>(InscriberRecipe.TYPE, LytInscriberRecipe::new),
new RecipeTypeMapping<>(ChargerRecipe.TYPE, LytChargerRecipe::new),
new RecipeTypeMapping<>(TransformRecipe.TYPE, LytTransformRecipe::new));
new RecipeTypeMapping<>(AERecipeTypes.INSCRIBER, LytInscriberRecipe::new),
new RecipeTypeMapping<>(AERecipeTypes.CHARGER, LytChargerRecipe::new),
new RecipeTypeMapping<>(AERecipeTypes.TRANSFORM, LytTransformRecipe::new));

@Override
public Set<String> getTagNames() {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/appeng/core/AppEngBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
import java.util.Collection;
import java.util.Collections;

import appeng.recipes.AERecipeSerializers;
import appeng.recipes.AERecipeTypes;
import com.mojang.brigadier.CommandDispatcher;

import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -86,6 +84,8 @@
import appeng.init.internal.InitUpgrades;
import appeng.init.worldgen.InitStructures;
import appeng.integration.Integrations;
import appeng.recipes.AERecipeSerializers;
import appeng.recipes.AERecipeTypes;
import appeng.server.AECommand;
import appeng.server.services.ChunkLoadingService;
import appeng.server.testworld.GameTestPlotAdapter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,8 @@
import appeng.menu.me.items.CraftingTermMenu;
import appeng.menu.me.items.PatternEncodingTermMenu;
import appeng.menu.me.items.WirelessCraftingTermMenu;
import appeng.recipes.entropy.EntropyRecipe;
import appeng.recipes.AERecipeTypes;
import appeng.recipes.game.StorageCellUpgradeRecipe;
import appeng.recipes.handlers.ChargerRecipe;
import appeng.recipes.handlers.InscriberRecipe;
import appeng.recipes.transform.TransformRecipe;

@EmiEntrypoint
public class AppEngEmiPlugin implements EmiPlugin {
Expand Down Expand Up @@ -82,13 +79,13 @@ public void register(EmiRegistry registry) {
// Inscriber
registry.addCategory(EmiInscriberRecipe.CATEGORY);
registry.addWorkstation(EmiInscriberRecipe.CATEGORY, EmiStack.of(AEBlocks.INSCRIBER));
adaptRecipeType(registry, InscriberRecipe.TYPE, EmiInscriberRecipe::new);
adaptRecipeType(registry, AERecipeTypes.INSCRIBER, EmiInscriberRecipe::new);

// Charger
registry.addCategory(EmiChargerRecipe.CATEGORY);
registry.addWorkstation(EmiChargerRecipe.CATEGORY, EmiStack.of(AEBlocks.CHARGER));
registry.addWorkstation(EmiChargerRecipe.CATEGORY, EmiStack.of(AEBlocks.CRANK));
adaptRecipeType(registry, ChargerRecipe.TYPE, EmiChargerRecipe::new);
adaptRecipeType(registry, AERecipeTypes.CHARGER, EmiChargerRecipe::new);

// Special upgrade recipes
adaptSpecialRecipes(registry, StorageCellUpgradeRecipe.class, this::convertStorageCellUpgradeRecipe);
Expand All @@ -106,11 +103,11 @@ public void register(EmiRegistry registry) {
// Entropy Manipulator
registry.addCategory(EmiEntropyRecipe.CATEGORY);
registry.addWorkstation(EmiEntropyRecipe.CATEGORY, EmiStack.of(AEItems.ENTROPY_MANIPULATOR));
adaptRecipeType(registry, EntropyRecipe.TYPE, EmiEntropyRecipe::new);
adaptRecipeType(registry, AERecipeTypes.ENTROPY, EmiEntropyRecipe::new);

// In-World Transformation
registry.addCategory(EmiTransformRecipe.CATEGORY);
adaptRecipeType(registry, TransformRecipe.TYPE, EmiTransformRecipe::new);
adaptRecipeType(registry, AERecipeTypes.TRANSFORM, EmiTransformRecipe::new);

// Facades
if (AEConfig.instance().isEnableFacadeRecipesInRecipeViewer()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
import me.shedaniel.rei.api.client.gui.widgets.Tooltip;
import me.shedaniel.rei.api.client.gui.widgets.TooltipContext;
import me.shedaniel.rei.api.client.util.ClientEntryStacks;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.EntryIngredient;
Expand Down Expand Up @@ -75,13 +74,13 @@ public EntropyRecipeDisplay(RecipeHolder<EntropyRecipe> holder) {
this.outputs = List.copyOf(outputs);
}

private static EntryStack<?> makeConsumed(EntryStack<?> entryStack) {
private static <T> EntryStack<T> makeConsumed(EntryStack<T> entryStack) {
entryStack = entryStack.copy();

entryStack.tooltip(ItemModText.CONSUMED.text().withStyle(ChatFormatting.RED, ChatFormatting.BOLD));
ClientEntryStacks.setRenderer(entryStack, new EntryRenderer<EntryStack<?>>() {
entryStack.withRenderer(new EntryRenderer<>() {
@Override
public void render(EntryStack<EntryStack<?>> entry, GuiGraphics graphics, Rectangle bounds, int mouseX,
public void render(EntryStack<T> entry, GuiGraphics graphics, Rectangle bounds, int mouseX,
int mouseY, float delta) {
var baseRenderer = entry.getDefinition().getRenderer();
baseRenderer.render(entry, graphics, bounds, mouseX, mouseY, delta);
Expand All @@ -90,7 +89,7 @@ public void render(EntryStack<EntryStack<?>> entry, GuiGraphics graphics, Rectan
}

@Override
public @Nullable Tooltip getTooltip(EntryStack<EntryStack<?>> entry, TooltipContext context) {
public @Nullable Tooltip getTooltip(EntryStack<T> entry, TooltipContext context) {
var baseRenderer = entry.getDefinition().getRenderer();
return baseRenderer.getTooltip(entry, context);
}
Expand Down Expand Up @@ -148,7 +147,7 @@ private static EntryStack<?> createIngredient(Block block, Fluid fluid) {
AELog.warn("Don't know how to get the source fluid for %s", fluid);
entryStack = EntryStacks.of(fluid);
}
ClientEntryStacks.setTooltipProcessor(entryStack, EntropyRecipeDisplay::addFlowingToTooltip);
entryStack.tooltipProcessor(EntropyRecipeDisplay::addFlowingToTooltip);
return entryStack;
} else {
return EntryStacks.of(fluid);
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/appeng/integration/modules/rei/ReiPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.List;
import java.util.stream.Collectors;

import appeng.recipes.AERecipeTypes;
import net.minecraft.client.renderer.Rect2i;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
Expand Down Expand Up @@ -129,10 +130,10 @@ public void registerDisplays(DisplayRegistry registry) {
return;
}

registry.registerRecipeFiller(InscriberRecipe.class, InscriberRecipe.TYPE, InscriberRecipeDisplay::new);
registry.registerRecipeFiller(ChargerRecipe.class, ChargerRecipe.TYPE, ChargerDisplay::new);
registry.registerRecipeFiller(TransformRecipe.class, TransformRecipe.TYPE, TransformRecipeWrapper::new);
registry.registerRecipeFiller(EntropyRecipe.class, EntropyRecipe.TYPE, EntropyRecipeDisplay::new);
registry.registerRecipeFiller(InscriberRecipe.class, AERecipeTypes.INSCRIBER, InscriberRecipeDisplay::new);
registry.registerRecipeFiller(ChargerRecipe.class, AERecipeTypes.CHARGER, ChargerDisplay::new);
registry.registerRecipeFiller(TransformRecipe.class, AERecipeTypes.TRANSFORM, TransformRecipeWrapper::new);
registry.registerRecipeFiller(EntropyRecipe.class, AERecipeTypes.ENTROPY, EntropyRecipeDisplay::new);
registry.registerRecipeFiller(StorageCellUpgradeRecipe.class, RecipeType.CRAFTING,
this::convertStorageCellUpgradeRecipe);

Expand Down Expand Up @@ -209,6 +210,7 @@ public void registerCollapsibleEntries(CollapsibleEntryRegistry registry) {
}
}

@SuppressWarnings("unchecked")
@Override
public void registerExclusionZones(ExclusionZones zones) {
if (CompatLayerHelper.IS_LOADED) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,7 @@ private Collection<? extends EntryStack<?>> getCatalystForRendering(TransformRec
*/
private static EntryStack<FluidStack> makeCustomRenderingFluidEntry(Fluid fluid) {
var fluidStack = EntryStacks.of(fluid);
ClientEntryStacks.setRenderer(fluidStack, entryStack -> {
return new FluidBlockRenderer();
});
fluidStack.withRenderer(entryStack -> new FluidBlockRenderer());
return fluidStack;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.util.Optional;
import java.util.Set;

import appeng.recipes.AERecipeTypes;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -440,7 +441,7 @@ private float getPenetration(AEItemKey what) {
return 0;
}

var recipes = server.getRecipeManager().byType(MatterCannonAmmo.TYPE);
var recipes = server.getRecipeManager().byType(AERecipeTypes.MATTER_CANNON_AMMO);
for (var holder : recipes) {
var ammoRecipe = holder.value();
if (what.matches(ammoRecipe.getAmmo())) {
Expand Down
15 changes: 4 additions & 11 deletions src/main/java/appeng/recipes/AERecipeSerializers.java
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
package appeng.recipes;

import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.neoforged.neoforge.registries.DeferredRegister;

import appeng.core.AppEng;
import appeng.core.definitions.AEItems;
import appeng.items.parts.FacadeItem;
import appeng.recipes.entropy.EntropyRecipe;
import appeng.recipes.entropy.EntropyRecipeSerializer;
import appeng.recipes.game.AddItemUpgradeRecipe;
import appeng.recipes.game.AddItemUpgradeRecipeSerializer;
import appeng.recipes.game.FacadeRecipe;
import appeng.recipes.game.RemoveItemUpgradeRecipe;
import appeng.recipes.game.RemoveItemUpgradeRecipeSerializer;
import appeng.recipes.game.StorageCellUpgradeRecipe;
import appeng.recipes.game.StorageCellUpgradeRecipeSerializer;
import appeng.recipes.handlers.ChargerRecipe;
import appeng.recipes.handlers.ChargerRecipeSerializer;
import appeng.recipes.handlers.InscriberRecipe;
import appeng.recipes.handlers.InscriberRecipeSerializer;
import appeng.recipes.mattercannon.MatterCannonAmmo;
import appeng.recipes.mattercannon.MatterCannonAmmoSerializer;
import appeng.recipes.transform.TransformRecipe;
import appeng.recipes.transform.TransformRecipeSerializer;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.crafting.RecipeSerializer;
import net.neoforged.neoforge.registries.DeferredRegister;

public final class AERecipeSerializers {
private AERecipeSerializers() {
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/appeng/recipes/AERecipeTypes.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package appeng.recipes;

import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeType;
import net.neoforged.neoforge.registries.DeferredRegister;

import appeng.core.AppEng;
import appeng.recipes.entropy.EntropyRecipe;
import appeng.recipes.handlers.ChargerRecipe;
import appeng.recipes.handlers.InscriberRecipe;
import appeng.recipes.mattercannon.MatterCannonAmmo;
import appeng.recipes.transform.TransformRecipe;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.item.crafting.RecipeType;
import net.neoforged.neoforge.registries.DeferredRegister;

public final class AERecipeTypes {
private AERecipeTypes() {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/appeng/recipes/entropy/EntropyRecipe.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import java.util.Map;
import java.util.Optional;

import appeng.recipes.AERecipeTypes;
import com.google.common.collect.Maps;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
Expand Down Expand Up @@ -56,6 +55,7 @@

import appeng.core.AppEng;
import appeng.items.tools.powered.EntropyManipulatorItem;
import appeng.recipes.AERecipeTypes;

/**
* A special recipe used for the {@link EntropyManipulatorItem}.
Expand Down
16 changes: 9 additions & 7 deletions src/main/java/appeng/recipes/game/FacadeRecipe.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@

package appeng.recipes.game;

import appeng.core.definitions.AEItems;
import appeng.core.definitions.AEParts;
import appeng.core.definitions.ItemDefinition;
import appeng.items.parts.FacadeItem;
import net.minecraft.core.HolderLookup;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.CraftingBookCategory;
Expand All @@ -31,8 +27,14 @@
import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer;
import net.minecraft.world.level.Level;

import appeng.core.definitions.AEItems;
import appeng.core.definitions.AEParts;
import appeng.core.definitions.ItemDefinition;
import appeng.items.parts.FacadeItem;

public final class FacadeRecipe extends CustomRecipe {
public static RecipeSerializer<FacadeRecipe> SERIALIZER = new SimpleCraftingRecipeSerializer<>((category) -> new FacadeRecipe(category, AEItems.FACADE.get()));
public static RecipeSerializer<FacadeRecipe> SERIALIZER = new SimpleCraftingRecipeSerializer<>(
(category) -> new FacadeRecipe(category, AEItems.FACADE.get()));

private final ItemDefinition<?> anchor = AEParts.CABLE_ANCHOR;
private final FacadeItem facade;
Expand All @@ -49,9 +51,9 @@ public boolean matches(CraftingInput inv, Level level) {

private ItemStack getOutput(CraftingInput inv, boolean createFacade) {
if (inv.width() == 3 && inv.height() == 3 && inv.getItem(0).isEmpty() && inv.getItem(2).isEmpty()
&& inv.getItem(6).isEmpty() && inv.getItem(8).isEmpty()) {
&& inv.getItem(6).isEmpty() && inv.getItem(8).isEmpty()) {
if (this.anchor.is(inv.getItem(1)) && this.anchor.is(inv.getItem(3))
&& this.anchor.is(inv.getItem(5)) && this.anchor.is(inv.getItem(7))) {
&& this.anchor.is(inv.getItem(5)) && this.anchor.is(inv.getItem(7))) {
final ItemStack facades = this.facade.createFacadeForItem(inv.getItem(4), !createFacade);
if (!facades.isEmpty() && createFacade) {
facades.setCount(4);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/appeng/recipes/handlers/ChargerRecipe.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package appeng.recipes.handlers;

import appeng.recipes.AERecipeTypes;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;

Expand All @@ -18,6 +17,7 @@
import net.minecraft.world.level.Level;

import appeng.core.AppEng;
import appeng.recipes.AERecipeTypes;

public class ChargerRecipe implements Recipe<RecipeInput> {
@Deprecated(forRemoval = true, since = "1.21.1")
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/appeng/recipes/handlers/InscriberRecipe.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

import java.util.Objects;

import appeng.recipes.AERecipeTypes;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
Expand All @@ -40,6 +39,7 @@
import net.neoforged.neoforge.network.codec.NeoForgeStreamCodecs;

import appeng.core.AppEng;
import appeng.recipes.AERecipeTypes;

public class InscriberRecipe implements Recipe<RecipeInput> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

import java.util.Objects;

import appeng.recipes.AERecipeTypes;
import com.google.common.base.Preconditions;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
Expand All @@ -47,6 +46,7 @@
import net.neoforged.neoforge.common.conditions.TagEmptyCondition;

import appeng.core.AppEng;
import appeng.recipes.AERecipeTypes;

/**
* Defines a type of ammo that can be used for the {@link appeng.items.tools.powered.MatterCannonItem}.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package appeng.recipes.transform;

import appeng.recipes.AERecipeTypes;
import com.mojang.serialization.DataResult;
import com.mojang.serialization.MapCodec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
Expand All @@ -22,6 +21,7 @@
import appeng.blockentity.qnb.QuantumBridgeBlockEntity;
import appeng.core.AppEng;
import appeng.core.definitions.AEItems;
import appeng.recipes.AERecipeTypes;

public final class TransformRecipe implements Recipe<TransformRecipeInput> {
@Deprecated(forRemoval = true, since = "1.21.1")
Expand Down

0 comments on commit f568ed3

Please sign in to comment.