mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-27 23:47:38 +01:00
Merge pull request #6385 from Attack8/mc1.18/ManualOnly
Respect Manual Only Recipes
This commit is contained in:
commit
649a5936ec
3 changed files with 32 additions and 10 deletions
|
@ -143,6 +143,7 @@ public class CreateJEI implements IModPlugin {
|
||||||
|
|
||||||
smoking = builder(SmokingRecipe.class)
|
smoking = builder(SmokingRecipe.class)
|
||||||
.addTypedRecipes(() -> RecipeType.SMOKING)
|
.addTypedRecipes(() -> RecipeType.SMOKING)
|
||||||
|
.removeNonAutomation()
|
||||||
.catalystStack(ProcessingViaFanCategory.getFan("fan_smoking"))
|
.catalystStack(ProcessingViaFanCategory.getFan("fan_smoking"))
|
||||||
.doubleItemIcon(AllItems.PROPELLER.get(), Items.CAMPFIRE)
|
.doubleItemIcon(AllItems.PROPELLER.get(), Items.CAMPFIRE)
|
||||||
.emptyBackground(178, 72)
|
.emptyBackground(178, 72)
|
||||||
|
@ -152,6 +153,7 @@ public class CreateJEI implements IModPlugin {
|
||||||
.addTypedRecipesExcluding(() -> RecipeType.SMELTING, () -> RecipeType.BLASTING)
|
.addTypedRecipesExcluding(() -> RecipeType.SMELTING, () -> RecipeType.BLASTING)
|
||||||
.addTypedRecipes(() -> RecipeType.BLASTING)
|
.addTypedRecipes(() -> RecipeType.BLASTING)
|
||||||
.removeRecipes(() -> RecipeType.SMOKING)
|
.removeRecipes(() -> RecipeType.SMOKING)
|
||||||
|
.removeNonAutomation()
|
||||||
.catalystStack(ProcessingViaFanCategory.getFan("fan_blasting"))
|
.catalystStack(ProcessingViaFanCategory.getFan("fan_blasting"))
|
||||||
.doubleItemIcon(AllItems.PROPELLER.get(), Items.LAVA_BUCKET)
|
.doubleItemIcon(AllItems.PROPELLER.get(), Items.LAVA_BUCKET)
|
||||||
.emptyBackground(178, 72)
|
.emptyBackground(178, 72)
|
||||||
|
@ -257,6 +259,7 @@ public class CreateJEI implements IModPlugin {
|
||||||
.addTypedRecipes(AllRecipeTypes.DEPLOYING)
|
.addTypedRecipes(AllRecipeTypes.DEPLOYING)
|
||||||
.addTypedRecipes(AllRecipeTypes.SANDPAPER_POLISHING::getType, DeployerApplicationRecipe::convert)
|
.addTypedRecipes(AllRecipeTypes.SANDPAPER_POLISHING::getType, DeployerApplicationRecipe::convert)
|
||||||
.addTypedRecipes(AllRecipeTypes.ITEM_APPLICATION::getType, ManualApplicationRecipe::asDeploying)
|
.addTypedRecipes(AllRecipeTypes.ITEM_APPLICATION::getType, ManualApplicationRecipe::asDeploying)
|
||||||
|
.removeNonAutomation()
|
||||||
.catalyst(AllBlocks.DEPLOYER::get)
|
.catalyst(AllBlocks.DEPLOYER::get)
|
||||||
.catalyst(AllBlocks.DEPOT::get)
|
.catalyst(AllBlocks.DEPOT::get)
|
||||||
.catalyst(AllItems.BELT_CONNECTOR::get)
|
.catalyst(AllItems.BELT_CONNECTOR::get)
|
||||||
|
@ -464,6 +467,11 @@ public class CreateJEI implements IModPlugin {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CategoryBuilder<T> removeNonAutomation() {
|
||||||
|
return addRecipeListConsumer(recipes -> recipes.removeIf(recipe ->
|
||||||
|
recipe.getId().getPath().contains("_manual_only")));
|
||||||
|
}
|
||||||
|
|
||||||
public CategoryBuilder<T> catalystStack(Supplier<ItemStack> supplier) {
|
public CategoryBuilder<T> catalystStack(Supplier<ItemStack> supplier) {
|
||||||
catalysts.add(supplier);
|
catalysts.add(supplier);
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -46,9 +47,11 @@ import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
import net.minecraft.world.level.ClipContext;
|
import net.minecraft.world.level.ClipContext;
|
||||||
import net.minecraft.world.level.ClipContext.Block;
|
import net.minecraft.world.level.ClipContext.Block;
|
||||||
import net.minecraft.world.level.ClipContext.Fluid;
|
import net.minecraft.world.level.ClipContext.Fluid;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -547,8 +550,10 @@ public class DeployerBlockEntity extends KineticBlockEntity {
|
||||||
ItemStack heldItemMainhand = player.getMainHandItem();
|
ItemStack heldItemMainhand = player.getMainHandItem();
|
||||||
if (heldItemMainhand.getItem() instanceof SandPaperItem) {
|
if (heldItemMainhand.getItem() instanceof SandPaperItem) {
|
||||||
sandpaperInv.setItem(0, stack);
|
sandpaperInv.setItem(0, stack);
|
||||||
return AllRecipeTypes.SANDPAPER_POLISHING.find(sandpaperInv, level)
|
Optional<Recipe<SandPaperInv>> sandPaperRecipe = AllRecipeTypes.SANDPAPER_POLISHING.find(sandpaperInv, level);
|
||||||
.orElse(null);
|
if (sandPaperRecipe.isPresent() && !sandPaperRecipe.get().getId().getPath().endsWith("_manual_only"))
|
||||||
|
return sandPaperRecipe.get();
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
recipeInv.setItem(0, stack);
|
recipeInv.setItem(0, stack);
|
||||||
|
@ -558,13 +563,20 @@ public class DeployerBlockEntity extends KineticBlockEntity {
|
||||||
|
|
||||||
event.addRecipe(() -> SequencedAssemblyRecipe.getRecipe(level, event.getInventory(),
|
event.addRecipe(() -> SequencedAssemblyRecipe.getRecipe(level, event.getInventory(),
|
||||||
AllRecipeTypes.DEPLOYING.getType(), DeployerApplicationRecipe.class), 100);
|
AllRecipeTypes.DEPLOYING.getType(), DeployerApplicationRecipe.class), 100);
|
||||||
event.addRecipe(() -> AllRecipeTypes.DEPLOYING.find(event.getInventory(), level), 50);
|
event.addRecipe(() -> checkRecipe(AllRecipeTypes.DEPLOYING, event.getInventory(), level), 50);
|
||||||
event.addRecipe(() -> AllRecipeTypes.ITEM_APPLICATION.find(event.getInventory(), level), 50);
|
event.addRecipe(() -> checkRecipe(AllRecipeTypes.ITEM_APPLICATION, event.getInventory(), level), 50);
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.post(event);
|
MinecraftForge.EVENT_BUS.post(event);
|
||||||
return event.getRecipe();
|
return event.getRecipe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Optional<? extends Recipe<? extends Container>> checkRecipe(AllRecipeTypes type, RecipeWrapper inv, Level level) {
|
||||||
|
Optional<? extends Recipe<? extends Container>> opt = type.find(inv, level);
|
||||||
|
if (opt.isPresent() && !opt.get().getId().getPath().contains("_manual_only"))
|
||||||
|
return opt;
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
public DeployerFakePlayer getPlayer() {
|
public DeployerFakePlayer getPlayer() {
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ public class AllFanProcessingTypes {
|
||||||
public List<ItemStack> process(ItemStack stack, Level level) {
|
public List<ItemStack> process(ItemStack stack, Level level) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void spawnProcessingParticles(Level level, Vec3 pos) {
|
public void spawnProcessingParticles(Level level, Vec3 pos) {
|
||||||
}
|
}
|
||||||
|
@ -162,15 +162,17 @@ public class AllFanProcessingTypes {
|
||||||
Optional<SmeltingRecipe> smeltingRecipe = level.getRecipeManager()
|
Optional<SmeltingRecipe> smeltingRecipe = level.getRecipeManager()
|
||||||
.getRecipeFor(RecipeType.SMELTING, RECIPE_WRAPPER, level);
|
.getRecipeFor(RecipeType.SMELTING, RECIPE_WRAPPER, level);
|
||||||
|
|
||||||
if (smeltingRecipe.isPresent())
|
if (smeltingRecipe.isPresent()) {
|
||||||
return true;
|
return !smeltingRecipe.get().getId().getPath().endsWith("_manual_only");
|
||||||
|
}
|
||||||
|
|
||||||
RECIPE_WRAPPER.setItem(0, stack);
|
RECIPE_WRAPPER.setItem(0, stack);
|
||||||
Optional<BlastingRecipe> blastingRecipe = level.getRecipeManager()
|
Optional<BlastingRecipe> blastingRecipe = level.getRecipeManager()
|
||||||
.getRecipeFor(RecipeType.BLASTING, RECIPE_WRAPPER, level);
|
.getRecipeFor(RecipeType.BLASTING, RECIPE_WRAPPER, level);
|
||||||
|
|
||||||
if (blastingRecipe.isPresent())
|
if (blastingRecipe.isPresent()) {
|
||||||
return true;
|
return !blastingRecipe.get().getId().getPath().endsWith("_manual_only");
|
||||||
|
}
|
||||||
|
|
||||||
return !stack.getItem()
|
return !stack.getItem()
|
||||||
.isFireResistant();
|
.isFireResistant();
|
||||||
|
@ -390,7 +392,7 @@ public class AllFanProcessingTypes {
|
||||||
RECIPE_WRAPPER.setItem(0, stack);
|
RECIPE_WRAPPER.setItem(0, stack);
|
||||||
Optional<SmokingRecipe> recipe = level.getRecipeManager()
|
Optional<SmokingRecipe> recipe = level.getRecipeManager()
|
||||||
.getRecipeFor(RecipeType.SMOKING, RECIPE_WRAPPER, level);
|
.getRecipeFor(RecipeType.SMOKING, RECIPE_WRAPPER, level);
|
||||||
return recipe.isPresent();
|
return recipe.isPresent() && !recipe.get().getId().getPath().endsWith("_manual_only");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue