Skip to content

Commit d66170c

Browse files
authored
fix: Schematicannon request wrong blocks (#5830)
* fix: schematics request tall grass block which is unobtainable (#5814) * fix: give large ferns the same treatment * remove unused imports * comments * fix requirement for farmers delight rich soil
1 parent efb3cf4 commit d66170c

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/main/java/com/simibubi/create/content/schematics/requirement/ItemRequirement.java

+11
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import java.util.stream.Collectors;
77
import java.util.stream.Stream;
88

9+
import com.simibubi.create.foundation.data.recipe.Mods;
910
import com.simibubi.create.foundation.utility.NBTProcessors;
1011

12+
import net.minecraft.core.Registry;
1113
import net.minecraft.world.entity.Entity;
1214
import net.minecraft.world.entity.decoration.ArmorStand;
1315
import net.minecraft.world.entity.decoration.ItemFrame;
@@ -94,10 +96,19 @@ private static ItemRequirement defaultOf(BlockState state, BlockEntity be) {
9496
if (block instanceof SnowLayerBlock)
9597
return new ItemRequirement(ItemUseType.CONSUME, new ItemStack(item, state.getValue(SnowLayerBlock.LAYERS)
9698
.intValue()));
99+
// FD's rich soil extends FarmBlock so this is to make sure the cost is correct (it should be rich soil not dirt)
100+
if (block == Registry.BLOCK.get(Mods.FD.asResource("rich_soil_farmland")))
101+
return new ItemRequirement(ItemUseType.CONSUME, Registry.ITEM.get(Mods.FD.asResource("rich_soil")));
97102
if (block instanceof FarmBlock || block instanceof DirtPathBlock)
98103
return new ItemRequirement(ItemUseType.CONSUME, Items.DIRT);
99104
if (block instanceof AbstractBannerBlock && be instanceof BannerBlockEntity bannerBE)
100105
return new ItemRequirement(new StrictNbtStackRequirement(bannerBE.getItem(), ItemUseType.CONSUME));
106+
// Tall grass doesnt exist as a block so use 2 grass blades
107+
if (block == Blocks.TALL_GRASS)
108+
return new ItemRequirement(ItemUseType.CONSUME, new ItemStack(Items.GRASS, 2));
109+
// Large ferns don't exist as blocks so use 2 ferns instead
110+
if (block == Blocks.LARGE_FERN)
111+
return new ItemRequirement(ItemUseType.CONSUME, new ItemStack(Items.FERN, 2));
101112

102113
return new ItemRequirement(ItemUseType.CONSUME, item);
103114
}

0 commit comments

Comments
 (0)