+ wool stairs

+ wool slabs
This commit is contained in:
Glitchlabs
2026-07-10 21:13:52 +02:00
parent 534f56b870
commit 414e64a5da
267 changed files with 7280 additions and 5 deletions
@@ -4,6 +4,8 @@ import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SlabBlock;
import net.minecraft.world.level.block.StairBlock;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.registries.DeferredBlock;
@@ -17,6 +19,88 @@ public class ModBlocks {
public static final DeferredRegister.Blocks BLOCKS =
DeferredRegister.createBlocks(Ornamentum.MODID);
// WOOL STAIRS AND SLABS
public static final DeferredBlock<StairBlock> WHITE_WOOL_STAIRS = registerBlock("white_wool_stairs",
() -> new StairBlock(Blocks.WHITE_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.WHITE_WOOL)));
public static final DeferredBlock<SlabBlock> WHITE_WOOL_SLAB = registerBlock("white_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WHITE_WOOL)));
public static final DeferredBlock<StairBlock> ORANGE_WOOL_STAIRS = registerBlock("orange_wool_stairs",
() -> new StairBlock(Blocks.ORANGE_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.ORANGE_WOOL)));
public static final DeferredBlock<SlabBlock> ORANGE_WOOL_SLAB = registerBlock("orange_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.ORANGE_WOOL)));
public static final DeferredBlock<StairBlock> MAGENTA_WOOL_STAIRS = registerBlock("magenta_wool_stairs",
() -> new StairBlock(Blocks.MAGENTA_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.MAGENTA_WOOL)));
public static final DeferredBlock<SlabBlock> MAGENTA_WOOL_SLAB = registerBlock("magenta_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MAGENTA_WOOL)));
public static final DeferredBlock<StairBlock> LIGHT_BLUE_WOOL_STAIRS = registerBlock("light_blue_wool_stairs",
() -> new StairBlock(Blocks.LIGHT_BLUE_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.LIGHT_BLUE_WOOL)));
public static final DeferredBlock<SlabBlock> LIGHT_BLUE_WOOL_SLAB = registerBlock("light_blue_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LIGHT_BLUE_WOOL)));
public static final DeferredBlock<StairBlock> YELLOW_WOOL_STAIRS = registerBlock("yellow_wool_stairs",
() -> new StairBlock(Blocks.YELLOW_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.YELLOW_WOOL)));
public static final DeferredBlock<SlabBlock> YELLOW_WOOL_SLAB = registerBlock("yellow_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.YELLOW_WOOL)));
public static final DeferredBlock<StairBlock> LIME_WOOL_STAIRS = registerBlock("lime_wool_stairs",
() -> new StairBlock(Blocks.LIME_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.LIME_WOOL)));
public static final DeferredBlock<SlabBlock> LIME_WOOL_SLAB = registerBlock("lime_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LIME_WOOL)));
public static final DeferredBlock<StairBlock> PINK_WOOL_STAIRS = registerBlock("pink_wool_stairs",
() -> new StairBlock(Blocks.PINK_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.PINK_WOOL)));
public static final DeferredBlock<SlabBlock> PINK_WOOL_SLAB = registerBlock("pink_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PINK_WOOL)));
public static final DeferredBlock<StairBlock> GRAY_WOOL_STAIRS = registerBlock("gray_wool_stairs",
() -> new StairBlock(Blocks.GRAY_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.GRAY_WOOL)));
public static final DeferredBlock<SlabBlock> GRAY_WOOL_SLAB = registerBlock("gray_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GRAY_WOOL)));
public static final DeferredBlock<StairBlock> LIGHT_GRAY_WOOL_STAIRS = registerBlock("light_gray_wool_stairs",
() -> new StairBlock(Blocks.LIGHT_GRAY_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.LIGHT_GRAY_WOOL)));
public static final DeferredBlock<SlabBlock> LIGHT_GRAY_WOOL_SLAB = registerBlock("light_gray_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LIGHT_GRAY_WOOL)));
public static final DeferredBlock<StairBlock> CYAN_WOOL_STAIRS = registerBlock("cyan_wool_stairs",
() -> new StairBlock(Blocks.CYAN_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CYAN_WOOL)));
public static final DeferredBlock<SlabBlock> CYAN_WOOL_SLAB = registerBlock("cyan_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CYAN_WOOL)));
public static final DeferredBlock<StairBlock> PURPLE_WOOL_STAIRS = registerBlock("purple_wool_stairs",
() -> new StairBlock(Blocks.PURPLE_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.PURPLE_WOOL)));
public static final DeferredBlock<SlabBlock> PURPLE_WOOL_SLAB = registerBlock("purple_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PURPLE_WOOL)));
public static final DeferredBlock<StairBlock> BLUE_WOOL_STAIRS = registerBlock("blue_wool_stairs",
() -> new StairBlock(Blocks.BLUE_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.BLUE_WOOL)));
public static final DeferredBlock<SlabBlock> BLUE_WOOL_SLAB = registerBlock("blue_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BLUE_WOOL)));
public static final DeferredBlock<StairBlock> BROWN_WOOL_STAIRS = registerBlock("brown_wool_stairs",
() -> new StairBlock(Blocks.BROWN_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.BROWN_WOOL)));
public static final DeferredBlock<SlabBlock> BROWN_WOOL_SLAB = registerBlock("brown_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BROWN_WOOL)));
public static final DeferredBlock<StairBlock> GREEN_WOOL_STAIRS = registerBlock("green_wool_stairs",
() -> new StairBlock(Blocks.GREEN_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.GREEN_WOOL)));
public static final DeferredBlock<SlabBlock> GREEN_WOOL_SLAB = registerBlock("green_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GREEN_WOOL)));
public static final DeferredBlock<StairBlock> RED_WOOL_STAIRS = registerBlock("red_wool_stairs",
() -> new StairBlock(Blocks.RED_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.RED_WOOL)));
public static final DeferredBlock<SlabBlock> RED_WOOL_SLAB = registerBlock("red_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.RED_WOOL)));
public static final DeferredBlock<StairBlock> BLACK_WOOL_STAIRS = registerBlock("black_wool_stairs",
() -> new StairBlock(Blocks.BLACK_WOOL.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.BLACK_WOOL)));
public static final DeferredBlock<SlabBlock> BLACK_WOOL_SLAB = registerBlock("black_wool_slab",
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BLACK_WOOL)));
public static final DeferredBlock<Block> MESH_IRON = registerBlock("mesh_iron",
() -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BLOCK)
.strength(5.0f, 6.0f)
@@ -190,6 +274,8 @@ public class ModBlocks {
return toReturn;
}
private static <T extends Block> void registerBlockItem(String name, DeferredBlock<T> block) {
ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties()));
}
@@ -45,6 +45,40 @@ public class ModBlockLootTableProvider extends BlockLootSubProvider {
dropSelf(ModBlocks.MAGENTA_GLOW_BLOCK.get());
dropSelf(ModBlocks.PINK_GLOW_BLOCK.get());
dropSelf(ModBlocks.WHITE_WOOL_STAIRS.get());
dropSelf(ModBlocks.ORANGE_WOOL_STAIRS.get());
dropSelf(ModBlocks.MAGENTA_WOOL_STAIRS.get());
dropSelf(ModBlocks.LIGHT_BLUE_WOOL_STAIRS.get());
dropSelf(ModBlocks.YELLOW_WOOL_STAIRS.get());
dropSelf(ModBlocks.LIME_WOOL_STAIRS.get());
dropSelf(ModBlocks.PINK_WOOL_STAIRS.get());
dropSelf(ModBlocks.GRAY_WOOL_STAIRS.get());
dropSelf(ModBlocks.LIGHT_GRAY_WOOL_STAIRS.get());
dropSelf(ModBlocks.CYAN_WOOL_STAIRS.get());
dropSelf(ModBlocks.PURPLE_WOOL_STAIRS.get());
dropSelf(ModBlocks.BLUE_WOOL_STAIRS.get());
dropSelf(ModBlocks.BROWN_WOOL_STAIRS.get());
dropSelf(ModBlocks.GREEN_WOOL_STAIRS.get());
dropSelf(ModBlocks.RED_WOOL_STAIRS.get());
dropSelf(ModBlocks.BLACK_WOOL_STAIRS.get());
dropSelf(ModBlocks.WHITE_WOOL_SLAB.get());
dropSelf(ModBlocks.ORANGE_WOOL_SLAB.get());
dropSelf(ModBlocks.MAGENTA_WOOL_SLAB.get());
dropSelf(ModBlocks.LIGHT_BLUE_WOOL_SLAB.get());
dropSelf(ModBlocks.YELLOW_WOOL_SLAB.get());
dropSelf(ModBlocks.LIME_WOOL_SLAB.get());
dropSelf(ModBlocks.PINK_WOOL_SLAB.get());
dropSelf(ModBlocks.GRAY_WOOL_SLAB.get());
dropSelf(ModBlocks.LIGHT_GRAY_WOOL_SLAB.get());
dropSelf(ModBlocks.CYAN_WOOL_SLAB.get());
dropSelf(ModBlocks.PURPLE_WOOL_SLAB.get());
dropSelf(ModBlocks.BLUE_WOOL_SLAB.get());
dropSelf(ModBlocks.BROWN_WOOL_SLAB.get());
dropSelf(ModBlocks.GREEN_WOOL_SLAB.get());
dropSelf(ModBlocks.RED_WOOL_SLAB.get());
dropSelf(ModBlocks.BLACK_WOOL_SLAB.get());
//dropSelf(ModBlocks.OBSIDIAN_BRICKS.get());
dropWhenSilkTouch(ModBlocks.LIME_GLOW_STAINED_GLASS.get());
dropWhenSilkTouch(ModBlocks.WHITE_GLOW_STAINED_GLASS.get());
@@ -64,6 +64,78 @@ public class ModBlockStateProvider extends BlockStateProvider {
blockWithItem(ModBlocks.MAGENTA_GLOW_STAINED_GLASS);
blockWithItem(ModBlocks.PINK_GLOW_STAINED_GLASS);
// WOOL STAIRS & SLABS (use vanilla wool textures)
createWoolStairsAndSlab(ModBlocks.WHITE_WOOL_STAIRS, ModBlocks.WHITE_WOOL_SLAB, "white_wool");
createWoolStairsAndSlab(ModBlocks.ORANGE_WOOL_STAIRS, ModBlocks.ORANGE_WOOL_SLAB, "orange_wool");
createWoolStairsAndSlab(ModBlocks.MAGENTA_WOOL_STAIRS, ModBlocks.MAGENTA_WOOL_SLAB, "magenta_wool");
createWoolStairsAndSlab(ModBlocks.LIGHT_BLUE_WOOL_STAIRS, ModBlocks.LIGHT_BLUE_WOOL_SLAB, "light_blue_wool");
createWoolStairsAndSlab(ModBlocks.YELLOW_WOOL_STAIRS, ModBlocks.YELLOW_WOOL_SLAB, "yellow_wool");
createWoolStairsAndSlab(ModBlocks.LIME_WOOL_STAIRS, ModBlocks.LIME_WOOL_SLAB, "lime_wool");
createWoolStairsAndSlab(ModBlocks.PINK_WOOL_STAIRS, ModBlocks.PINK_WOOL_SLAB, "pink_wool");
createWoolStairsAndSlab(ModBlocks.GRAY_WOOL_STAIRS, ModBlocks.GRAY_WOOL_SLAB, "gray_wool");
createWoolStairsAndSlab(ModBlocks.LIGHT_GRAY_WOOL_STAIRS, ModBlocks.LIGHT_GRAY_WOOL_SLAB, "light_gray_wool");
createWoolStairsAndSlab(ModBlocks.CYAN_WOOL_STAIRS, ModBlocks.CYAN_WOOL_SLAB, "cyan_wool");
createWoolStairsAndSlab(ModBlocks.PURPLE_WOOL_STAIRS, ModBlocks.PURPLE_WOOL_SLAB, "purple_wool");
createWoolStairsAndSlab(ModBlocks.BLUE_WOOL_STAIRS, ModBlocks.BLUE_WOOL_SLAB, "blue_wool");
createWoolStairsAndSlab(ModBlocks.BROWN_WOOL_STAIRS, ModBlocks.BROWN_WOOL_SLAB, "brown_wool");
createWoolStairsAndSlab(ModBlocks.GREEN_WOOL_STAIRS, ModBlocks.GREEN_WOOL_SLAB, "green_wool");
createWoolStairsAndSlab(ModBlocks.RED_WOOL_STAIRS, ModBlocks.RED_WOOL_SLAB, "red_wool");
createWoolStairsAndSlab(ModBlocks.BLACK_WOOL_STAIRS, ModBlocks.BLACK_WOOL_SLAB, "black_wool");
}
private void createWoolStairsAndSlab(DeferredBlock<?> stairsDeferred, DeferredBlock<?> slabDeferred, String vanillaTextureName) {
// textures come from vanilla namespace (minecraft:block/<vanillaTextureName>)
String tex = "block/" + vanillaTextureName;
// SLAB MODELS
String slabPath = slabDeferred.getId().getPath();
String slabTopPath = slabPath + "_top";
String doublePath = "double_" + slabPath;
ModelFile slab = models().withExistingParent(slabPath, mcLoc("block/slab"))
.texture("bottom", mcLoc(tex))
.texture("top", mcLoc(tex))
.texture("side", mcLoc(tex));
ModelFile slabTop = models().withExistingParent(slabTopPath, mcLoc("block/slab_top"))
.texture("bottom", mcLoc(tex))
.texture("top", mcLoc(tex))
.texture("side", mcLoc(tex));
ModelFile doubleSlab = models().withExistingParent(doublePath, mcLoc("block/cube_all"))
.texture("all", mcLoc(tex));
// STAIRS MODELS
String stairsPath = stairsDeferred.getId().getPath();
String stairsInnerPath = stairsPath + "_inner";
String stairsOuterPath = stairsPath + "_outer";
ModelFile stairs = models().withExistingParent(stairsPath, mcLoc("block/stairs"))
.texture("bottom", mcLoc(tex))
.texture("top", mcLoc(tex))
.texture("side", mcLoc(tex));
ModelFile stairsInner = models().withExistingParent(stairsInnerPath, mcLoc("block/inner_stairs"))
.texture("bottom", mcLoc(tex))
.texture("top", mcLoc(tex))
.texture("side", mcLoc(tex));
ModelFile stairsOuter = models().withExistingParent(stairsOuterPath, mcLoc("block/outer_stairs"))
.texture("bottom", mcLoc(tex))
.texture("top", mcLoc(tex))
.texture("side", mcLoc(tex));
// Generate slabBlock blockstate with all variants
slabBlock((net.minecraft.world.level.block.SlabBlock) slabDeferred.get(), slab, slabTop, doubleSlab);
// Generate stairsBlock blockstate with all variants (straight, inner, outer)
stairsBlock((net.minecraft.world.level.block.StairBlock) stairsDeferred.get(), stairs, stairsInner, stairsOuter);
// slabBlock() and stairsBlock() only generate blockstates/blockmodels, NOT item models.
// Register the item models manually, pointing at the already-generated block models.
itemModels().withExistingParent(slabPath, modLoc("block/" + slabPath));
itemModels().withExistingParent(stairsPath, modLoc("block/" + stairsPath));
}
private void blockWithItem(DeferredBlock<?> deferredBlock) {
@@ -62,6 +62,40 @@ public class ModLanguageProvider extends LanguageProvider {
add(ModBlocks.MESH_IRON.get(), "Mesh Iron");
add(ModBlocks.WHITE_WOOL_STAIRS.get(), "White Wool Stairs");
add(ModBlocks.ORANGE_WOOL_STAIRS.get(), "Orange Wool Stairs");
add(ModBlocks.MAGENTA_WOOL_STAIRS.get(), "Magenta Wool Stairs");
add(ModBlocks.LIGHT_BLUE_WOOL_STAIRS.get(), "Light Blue Wool Stairs");
add(ModBlocks.YELLOW_WOOL_STAIRS.get(), "Yellow Wool Stairs");
add(ModBlocks.LIME_WOOL_STAIRS.get(), "Lime Wool Stairs");
add(ModBlocks.PINK_WOOL_STAIRS.get(), "Pink Wool Stairs");
add(ModBlocks.GRAY_WOOL_STAIRS.get(), "Gray Wool Stairs");
add(ModBlocks.LIGHT_GRAY_WOOL_STAIRS.get(), "Light Gray Wool Stairs");
add(ModBlocks.CYAN_WOOL_STAIRS.get(), "Cyan Wool Stairs");
add(ModBlocks.PURPLE_WOOL_STAIRS.get(), "Purple Wool Stairs");
add(ModBlocks.BLUE_WOOL_STAIRS.get(), "Blue Wool Stairs");
add(ModBlocks.BROWN_WOOL_STAIRS.get(), "Brown Wool Stairs");
add(ModBlocks.GREEN_WOOL_STAIRS.get(), "Green Wool Stairs");
add(ModBlocks.RED_WOOL_STAIRS.get(), "Red Wool Stairs");
add(ModBlocks.BLACK_WOOL_STAIRS.get(), "Black Wool Stairs");
add(ModBlocks.WHITE_WOOL_SLAB.get(), "White Wool Slab");
add(ModBlocks.ORANGE_WOOL_SLAB.get(), "Orange Wool Slab");
add(ModBlocks.MAGENTA_WOOL_SLAB.get(), "Magenta Wool Slab");
add(ModBlocks.LIGHT_BLUE_WOOL_SLAB.get(), "Light Blue Wool Slab");
add(ModBlocks.YELLOW_WOOL_SLAB.get(), "Yellow Wool Slab");
add(ModBlocks.LIME_WOOL_SLAB.get(), "Lime Wool Slab");
add(ModBlocks.PINK_WOOL_SLAB.get(), "Pink Wool Slab");
add(ModBlocks.GRAY_WOOL_SLAB.get(), "Gray Wool Slab");
add(ModBlocks.LIGHT_GRAY_WOOL_SLAB.get(), "Light Gray Wool Slab");
add(ModBlocks.CYAN_WOOL_SLAB.get(), "Cyan Wool Slab");
add(ModBlocks.PURPLE_WOOL_SLAB.get(), "Purple Wool Slab");
add(ModBlocks.BLUE_WOOL_SLAB.get(), "Blue Wool Slab");
add(ModBlocks.BROWN_WOOL_SLAB.get(), "Brown Wool Slab");
add(ModBlocks.GREEN_WOOL_SLAB.get(), "Green Wool Slab");
add(ModBlocks.RED_WOOL_SLAB.get(), "Red Wool Slab");
add(ModBlocks.BLACK_WOOL_SLAB.get(), "Black Wool Slab");
add("creativetab.ornamentum.ornamentum", "Ornamentum");
// Items
@@ -27,6 +27,8 @@ public class ModRecipeProvider extends RecipeProvider {
Map<ItemLike, ItemLike> glowGlassRecipes = new LinkedHashMap<>();
Map<ItemLike, ItemLike> grateRecipes = new LinkedHashMap<>();
Map<ItemLike, ItemLike> stairRecipes = new LinkedHashMap<>();
Map<ItemLike, ItemLike> slabRecipes = new LinkedHashMap<>();
glowGlassRecipes.put(Items.WHITE_STAINED_GLASS, ModBlocks.WHITE_GLOW_STAINED_GLASS.get());
glowGlassRecipes.put(Items.ORANGE_STAINED_GLASS, ModBlocks.ORANGE_GLOW_STAINED_GLASS.get());
@@ -45,6 +47,41 @@ public class ModRecipeProvider extends RecipeProvider {
glowGlassRecipes.put(Items.RED_STAINED_GLASS, ModBlocks.RED_GLOW_STAINED_GLASS.get());
glowGlassRecipes.put(Items.BLACK_STAINED_GLASS, ModBlocks.BLACK_GLOW_STAINED_GLASS.get());
// Wool stairs & slabs
stairRecipes.put(Items.WHITE_WOOL, ModBlocks.WHITE_WOOL_STAIRS.get());
stairRecipes.put(Items.ORANGE_WOOL, ModBlocks.ORANGE_WOOL_STAIRS.get());
stairRecipes.put(Items.MAGENTA_WOOL, ModBlocks.MAGENTA_WOOL_STAIRS.get());
stairRecipes.put(Items.LIGHT_BLUE_WOOL, ModBlocks.LIGHT_BLUE_WOOL_STAIRS.get());
stairRecipes.put(Items.YELLOW_WOOL, ModBlocks.YELLOW_WOOL_STAIRS.get());
stairRecipes.put(Items.LIME_WOOL, ModBlocks.LIME_WOOL_STAIRS.get());
stairRecipes.put(Items.PINK_WOOL, ModBlocks.PINK_WOOL_STAIRS.get());
stairRecipes.put(Items.GRAY_WOOL, ModBlocks.GRAY_WOOL_STAIRS.get());
stairRecipes.put(Items.LIGHT_GRAY_WOOL, ModBlocks.LIGHT_GRAY_WOOL_STAIRS.get());
stairRecipes.put(Items.CYAN_WOOL, ModBlocks.CYAN_WOOL_STAIRS.get());
stairRecipes.put(Items.PURPLE_WOOL, ModBlocks.PURPLE_WOOL_STAIRS.get());
stairRecipes.put(Items.BLUE_WOOL, ModBlocks.BLUE_WOOL_STAIRS.get());
stairRecipes.put(Items.BROWN_WOOL, ModBlocks.BROWN_WOOL_STAIRS.get());
stairRecipes.put(Items.GREEN_WOOL, ModBlocks.GREEN_WOOL_STAIRS.get());
stairRecipes.put(Items.RED_WOOL, ModBlocks.RED_WOOL_STAIRS.get());
stairRecipes.put(Items.BLACK_WOOL, ModBlocks.BLACK_WOOL_STAIRS.get());
slabRecipes.put(Items.WHITE_WOOL, ModBlocks.WHITE_WOOL_SLAB.get());
slabRecipes.put(Items.ORANGE_WOOL, ModBlocks.ORANGE_WOOL_SLAB.get());
slabRecipes.put(Items.MAGENTA_WOOL, ModBlocks.MAGENTA_WOOL_SLAB.get());
slabRecipes.put(Items.LIGHT_BLUE_WOOL, ModBlocks.LIGHT_BLUE_WOOL_SLAB.get());
slabRecipes.put(Items.YELLOW_WOOL, ModBlocks.YELLOW_WOOL_SLAB.get());
slabRecipes.put(Items.LIME_WOOL, ModBlocks.LIME_WOOL_SLAB.get());
slabRecipes.put(Items.PINK_WOOL, ModBlocks.PINK_WOOL_SLAB.get());
slabRecipes.put(Items.GRAY_WOOL, ModBlocks.GRAY_WOOL_SLAB.get());
slabRecipes.put(Items.LIGHT_GRAY_WOOL, ModBlocks.LIGHT_GRAY_WOOL_SLAB.get());
slabRecipes.put(Items.CYAN_WOOL, ModBlocks.CYAN_WOOL_SLAB.get());
slabRecipes.put(Items.PURPLE_WOOL, ModBlocks.PURPLE_WOOL_SLAB.get());
slabRecipes.put(Items.BLUE_WOOL, ModBlocks.BLUE_WOOL_SLAB.get());
slabRecipes.put(Items.BROWN_WOOL, ModBlocks.BROWN_WOOL_SLAB.get());
slabRecipes.put(Items.GREEN_WOOL, ModBlocks.GREEN_WOOL_SLAB.get());
slabRecipes.put(Items.RED_WOOL, ModBlocks.RED_WOOL_SLAB.get());
slabRecipes.put(Items.BLACK_WOOL, ModBlocks.BLACK_WOOL_SLAB.get());
grateRecipes.put(Items.IRON_BLOCK, ModBlocks.IRON_GRATE.get());
grateRecipes.put(Items.GOLD_BLOCK, ModBlocks.GOLD_GRATE.get());
grateRecipes.put(Items.DIAMOND_BLOCK, ModBlocks.DIAMOND_GRATE.get());
@@ -57,6 +94,12 @@ public class ModRecipeProvider extends RecipeProvider {
glowGlassRecipes.forEach((input, result) ->
createGlowGlassRecipe(output, input, result));
stairRecipes.forEach((input, result) ->
createStairsRecipe(output, input, result));
slabRecipes.forEach((input, result) ->
createSlabRecipe(output, input, result));
}
private void createGlowGlassRecipe(RecipeOutput output,
@@ -92,4 +135,32 @@ public class ModRecipeProvider extends RecipeProvider {
.unlockedBy("has_iron_bars", has(Items.IRON_BARS))
.save(output);
}
private void createStairsRecipe(RecipeOutput output, ItemLike input, ItemLike result) {
ShapedRecipeBuilder.shaped(
RecipeCategory.BUILDING_BLOCKS,
result,
4
)
.pattern("# ")
.pattern("## ")
.pattern("###")
.define('#', input)
.group("wool_stairs")
.unlockedBy("has_input", has(input))
.save(output);
}
private void createSlabRecipe(RecipeOutput output, ItemLike input, ItemLike result) {
ShapedRecipeBuilder.shaped(
RecipeCategory.BUILDING_BLOCKS,
result,
6
)
.pattern("###")
.define('#', input)
.group("wool_slabs")
.unlockedBy("has_input", has(input))
.save(output);
}
}
@@ -67,6 +67,40 @@ public class ModCreativeModeTabs {
output.accept(ModBlocks.MAGENTA_GLOW_BLOCK);
output.accept(ModBlocks.PINK_GLOW_BLOCK);
output.accept(ModBlocks.WHITE_WOOL_STAIRS);
output.accept(ModBlocks.ORANGE_WOOL_STAIRS);
output.accept(ModBlocks.MAGENTA_WOOL_STAIRS);
output.accept(ModBlocks.LIGHT_BLUE_WOOL_STAIRS);
output.accept(ModBlocks.YELLOW_WOOL_STAIRS);
output.accept(ModBlocks.LIME_WOOL_STAIRS);
output.accept(ModBlocks.PINK_WOOL_STAIRS);
output.accept(ModBlocks.GRAY_WOOL_STAIRS);
output.accept(ModBlocks.LIGHT_GRAY_WOOL_STAIRS);
output.accept(ModBlocks.CYAN_WOOL_STAIRS);
output.accept(ModBlocks.PURPLE_WOOL_STAIRS);
output.accept(ModBlocks.BLUE_WOOL_STAIRS);
output.accept(ModBlocks.BROWN_WOOL_STAIRS);
output.accept(ModBlocks.GREEN_WOOL_STAIRS);
output.accept(ModBlocks.RED_WOOL_STAIRS);
output.accept(ModBlocks.BLACK_WOOL_STAIRS);
output.accept(ModBlocks.WHITE_WOOL_SLAB);
output.accept(ModBlocks.ORANGE_WOOL_SLAB);
output.accept(ModBlocks.MAGENTA_WOOL_SLAB);
output.accept(ModBlocks.LIGHT_BLUE_WOOL_SLAB);
output.accept(ModBlocks.YELLOW_WOOL_SLAB);
output.accept(ModBlocks.LIME_WOOL_SLAB);
output.accept(ModBlocks.PINK_WOOL_SLAB);
output.accept(ModBlocks.GRAY_WOOL_SLAB);
output.accept(ModBlocks.LIGHT_GRAY_WOOL_SLAB);
output.accept(ModBlocks.CYAN_WOOL_SLAB);
output.accept(ModBlocks.PURPLE_WOOL_SLAB);
output.accept(ModBlocks.BLUE_WOOL_SLAB);
output.accept(ModBlocks.BROWN_WOOL_SLAB);
output.accept(ModBlocks.GREEN_WOOL_SLAB);
output.accept(ModBlocks.RED_WOOL_SLAB);
output.accept(ModBlocks.BLACK_WOOL_SLAB);
output.accept(ModBlocks.POOL_TILES);
output.accept(ModBlocks.POOL_TILES1);