Compare commits

...

6 Commits

Author SHA1 Message Date
Michael Hillcox e8b797bac3 feat: helper methods, cleanup and builder fixes 2021-05-05 18:05:24 +01:00
Michael Hillcox a7c9655586 Merge remote-tracking branch 'origin/1.16' into 1.16 2021-05-05 17:46:10 +01:00
Michael Hillcox 8edd6de4d2 feat: added wrapper for builders in recipes 2021-05-05 17:44:52 +01:00
Flanks255 785c4b7460 Finished the quartz recipes... i think...
Atomic Reconstructor...
2021-05-05 11:34:43 -05:00
Flanks255 7ef9492778 Moar recipes.... 2021-05-05 11:15:25 -05:00
Flanks255 354a118a1f More Recipes.
renamed Ethetic Quartz Blocks.
2021-05-05 10:21:00 -05:00
6 changed files with 240 additions and 47 deletions

View File

@ -9,6 +9,7 @@ public final class ActuallyTags {
public static class Items {
public static final ITag.INamedTag<Item> DRILLS = tag("drills");
public static final ITag.INamedTag<Item> COFFEE_BEANS = tag("coffee_beans");
public static final ITag.INamedTag<Item> TINY_COALS = tag("tiny_coals");
private static ITag.INamedTag<Item> tag(String name) {
return ItemTags.makeWrapperTag(String.format("%s:%s", ActuallyAdditions.MODID, name));

View File

@ -1,15 +1,18 @@
package de.ellpeck.actuallyadditions.data;
import com.google.gson.JsonObject;
import de.ellpeck.actuallyadditions.api.ActuallyTags;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
import net.minecraft.data.*;
import net.minecraft.item.Items;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.Tags;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.function.Consumer;
public class BlockRecipeGenerator extends RecipeProvider {
@ -20,41 +23,224 @@ public class BlockRecipeGenerator extends RecipeProvider {
@Override
protected void registerRecipes(Consumer<IFinishedRecipe> consumer) {
//Battery Box
ShapelessRecipeBuilder.shapelessRecipe(ActuallyBlocks.BATTERY_BOX.get())
.addIngredient(ActuallyBlocks.ENERGIZER.get())
.addIngredient(ActuallyBlocks.ENERVATOR.get())
.addIngredient(ActuallyItems.COIL.get())
.addCriterion("", hasItem(Items.AIR))
.build(consumer, new ResourceLocation(ActuallyAdditions.MODID, "battery_box"));
Recipe.shapeless(ActuallyBlocks.BATTERY_BOX.get()).ingredients(ActuallyBlocks.ENERGIZER.get(), ActuallyBlocks.ENERVATOR.get(), ActuallyItems.COIL.get()).build(consumer);
//Farmer
ShapedRecipeBuilder.shapedRecipe(ActuallyBlocks.FARMER.get())
.patternLine("ISI")
.patternLine("SCS")
.patternLine("ISI")
.key('I', ActuallyBlocks.CRYSTAL_ENORI.get())
.key('C', ActuallyBlocks.IRON_CASING.get())
.key('S', Tags.Items.SEEDS)
.addCriterion("", hasItem(Items.AIR))
.build(consumer, new ResourceLocation(ActuallyAdditions.MODID, "farmer"));
Recipe.shaped(ActuallyBlocks.FARMER.get())
.pattern("ISI", "SCS", "ISI")
.key('I', ActuallyBlocks.CRYSTAL_ENORI.get())
.key('C', ActuallyBlocks.IRON_CASING.get())
.key('S', Tags.Items.SEEDS)
.build(consumer);
//Empowerer
ShapedRecipeBuilder.shapedRecipe(ActuallyBlocks.EMPOWERER.get())
.patternLine(" R ")
.patternLine(" B ")
.patternLine("CDC")
.key('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.key('B', ActuallyItems.BATTERY_DOUBLE.get())
.key('C', ActuallyBlocks.IRON_CASING.get())
.key('D', ActuallyBlocks.DISPLAY_STAND.get())
.addCriterion("", hasItem(Items.AIR))
.build(consumer,new ResourceLocation(ActuallyAdditions.MODID, "empowerer"));
//Empowerer
Recipe.shaped(ActuallyBlocks.EMPOWERER.get())
.pattern(" R ", " B ", "CDC")
.key('R', ActuallyItems.RESTONIA_CRYSTAL.get())
.key('B', ActuallyItems.BATTERY_DOUBLE.get())
.key('C', ActuallyBlocks.IRON_CASING.get())
.key('D', ActuallyBlocks.DISPLAY_STAND.get())
.build(consumer);
//Tiny Torch
Recipe.shaped(ActuallyBlocks.TINY_TORCH.get(), 2)
.pattern("C", "S")
.key('C', ActuallyTags.Items.TINY_COALS)
.key('S', Tags.Items.RODS_WOODEN)
.build(consumer, new ResourceLocation(ActuallyAdditions.MODID, "tiny_torch"));
//Fireworks Box
Recipe.shaped(ActuallyBlocks.FIREWORK_BOX.get())
.pattern("GFG", "SAS", "CCC")
.key('G', Tags.Items.GUNPOWDER)
.key('S', Tags.Items.RODS_WOODEN)
.key('A', ActuallyBlocks.IRON_CASING.get())
.key('F', Items.FIREWORK_ROCKET)
.key('C', ActuallyItems.ENORI_CRYSTAL.get())
.build(consumer);
//Shock Suppressor
Recipe.shaped(ActuallyBlocks.SHOCK_SUPPRESSOR.get())
.pattern("OAO", "ACA", "OAO")
.key('A', ActuallyItems.VOID_EMPOWERED_CRYSTAL.get())
.key('O', Tags.Items.OBSIDIAN)
.key('C', ActuallyItems.COIL_ADVANCED.get())
.build(consumer);
//Display Stand
Recipe.shaped(ActuallyBlocks.DISPLAY_STAND.get())
.pattern(" R ", "EEE", "GGG")
.key('R', ActuallyItems.COIL_ADVANCED.get())
.key('E', ActuallyBlocks.ETHETIC_GREEN_BLOCK.get())
.key('G', ActuallyBlocks.ETHETIC_WHITE_BLOCK.get())
.build(consumer);
//Vertical Digger
Recipe.shaped(ActuallyBlocks.MINER.get())
.pattern("IRI", "RCR", "IDI")
.key('R', Tags.Items.STORAGE_BLOCKS_REDSTONE)
.key('I', ActuallyBlocks.IRON_CASING.get())
.key('C', ActuallyItems.VOID_EMPOWERED_CRYSTAL.get())
.key('D', ActuallyItems.DRILL.get())
.build(consumer);
//Black Quartz Wall
Recipe.wall(ActuallyBlocks.BLACK_QUARTZ_WALL.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Black Quartz Slab
Recipe.slab(ActuallyBlocks.BLACK_QUARTZ_SLAB.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Black Quartz Stairs
Recipe.stairs(ActuallyBlocks.BLACK_QUARTZ_STAIR.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Pillar Black Quartz Wall
Recipe.wall(ActuallyBlocks.BLACK_QUARTZ_PILLAR_WALL.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Pillar Black Quartz Slab
Recipe.slab(ActuallyBlocks.BLACK_QUARTZ_PILLAR_SLAB.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Pillar Black Quartz Stairs
Recipe.stairs(ActuallyBlocks.BLACK_QUARTZ_PILLAR_STAIR.get(), ActuallyBlocks.BLACK_QUARTZ_PILLAR_BLOCK.get(), consumer);
//Chiseled Black Quartz Wall
Recipe.wall(ActuallyBlocks.CHISELED_BLACK_QUARTZ_WALL.get(), ActuallyBlocks.CHISELED_BLACK_QUARTZ_BLOCK.get(), consumer);
//Chiseled Black Quartz Slab
Recipe.slab(ActuallyBlocks.CHISELED_BLACK_QUARTZ_SLAB.get(), ActuallyBlocks.CHISELED_BLACK_QUARTZ_BLOCK.get(), consumer);
//Chiseled Black Quartz Stairs
Recipe.stairs(ActuallyBlocks.CHISELED_BLACK_QUARTZ_STAIR.get(), ActuallyBlocks.CHISELED_BLACK_QUARTZ_BLOCK.get(), consumer);
//Ethetic White Wall
Recipe.wall(ActuallyBlocks.ETHETIC_WHITE_WALL.get(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), consumer);
//Ethetic White Slab
Recipe.slab(ActuallyBlocks.ETHETIC_WHITE_SLAB.get(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), consumer);
//Ethetic White Stairs
Recipe.stairs(ActuallyBlocks.ETHETIC_WHITE_STAIRS.get(), ActuallyBlocks.ETHETIC_WHITE_BLOCK.get(), consumer);
// Ethetic Green Wall
Recipe.wall(ActuallyBlocks.ETHETIC_GREEN_WALL.get(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), consumer);
// Ethetic Green Slab
Recipe.slab(ActuallyBlocks.ETHETIC_GREEN_SLAB.get(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), consumer);
// Ethetic Green Stairs
Recipe.stairs(ActuallyBlocks.ETHETIC_GREEN_STAIRS.get(), ActuallyBlocks.ETHETIC_GREEN_BLOCK.get(), consumer);
// Atomic Reconstructor
Recipe.shaped(ActuallyBlocks.ATOMIC_RECONSTRUCTOR.get())
.pattern("IRI", "RCR", "IRI")
.key('R', Tags.Items.DUSTS_REDSTONE)
.key('I', Tags.Items.INGOTS_IRON)
.key('C', ActuallyBlocks.IRON_CASING.get())
.build(consumer);
}
@Override
protected void saveRecipeAdvancement(DirectoryCache cache, JsonObject cache2, Path advancementJson) {
//Nope...
}
public static class Recipe {
public static Shapeless shapeless(IItemProvider result) {
return new Shapeless(result);
}
public static Shapeless shapeless(IItemProvider result, int count) {
return new Shapeless(result, count);
}
public static Shaped shaped(IItemProvider result) {
return new Shaped(result);
}
public static Shaped shaped(IItemProvider result, int count) {
return new Shaped(result, count);
}
public static void stairs(IItemProvider result, IItemProvider resource, Consumer<IFinishedRecipe> consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "Q ", "QQ ", "QQQ").build(consumer);
}
public static void wall(IItemProvider result, IItemProvider resource, Consumer<IFinishedRecipe> consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "QQQ", "QQQ").build(consumer);
}
public static void slab(IItemProvider result, IItemProvider resource, Consumer<IFinishedRecipe> consumer) {
Recipe.shaped(result).patternSingleKey('Q', resource, "QQQ").build(consumer);
}
private static class Shapeless extends ShapelessRecipeBuilder {
public Shapeless(IItemProvider result) {
this(result, 1);
}
public Shapeless(IItemProvider result, int countIn) {
super(result, countIn);
}
public Shapeless ingredients(IItemProvider... ingredients) {
Arrays.asList(ingredients).forEach(this::addIngredient);
return this;
}
@Override
public void build(Consumer<IFinishedRecipe> consumer) {
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
super.build(consumer);
}
@Override
public void build(Consumer<IFinishedRecipe> consumer, ResourceLocation location) {
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
super.build(consumer, location);
}
}
private static class Shaped extends ShapedRecipeBuilder {
public Shaped(IItemProvider resultIn) {
this(resultIn, 1);
}
public Shaped(IItemProvider resultIn, int countIn) {
super(resultIn, countIn);
}
public Shaped pattern(String line1, String line2, String line3) {
this.patternLine(line1);
this.patternLine(line2);
this.patternLine(line3);
return this;
}
public Shaped pattern(String line1, String line2) {
this.patternLine(line1);
this.patternLine(line2);
return this;
}
public Shaped patternSingleKey(char key, IItemProvider resource, String... lines) {
this.key(key, resource);
for (String line : lines) {
this.patternLine(line);
}
return this;
}
@Override
public void build(Consumer<IFinishedRecipe> consumerIn) {
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
super.build(consumerIn);
}
@Override
public void build(Consumer<IFinishedRecipe> consumerIn, ResourceLocation id) {
this.addCriterion("has_book", hasItem(ActuallyItems.ITEM_BOOKLET.get()));
super.build(consumerIn, id);
}
}
}
}

View File

@ -19,6 +19,9 @@ public class ItemTagsGenerator extends ItemTagsProvider {
protected void registerTags() {
this.getOrCreateBuilder(ActuallyTags.Items.COFFEE_BEANS)
.add(ActuallyItems.COFFEE_BEANS.get());
this.getOrCreateBuilder(ActuallyTags.Items.TINY_COALS)
.add(ActuallyItems.TINY_COAL.get())
.add(ActuallyItems.TINY_CHARCOAL.get());
// getOrCreateBuilder(ActuallyTags.Items.DRILLS).add(
// ActuallyItems.DRILL_MAIN.get(),
// ActuallyItems.DRILL_BLACK.get(), ActuallyItems.DRILL_BLACK.get(), ActuallyItems.DRILL_BLUE.get(), ActuallyItems.DRILL_BROWN.get(),

View File

@ -54,7 +54,7 @@ public final class ActuallyBlocks {
public static final RegistryObject<Block> PLAYER_INTERFACE = BLOCKS.register("player_interface", BlockPlayerInterface::new);
public static final RegistryObject<Block> ITEM_VIEWER = BLOCKS.register("item_viewer", BlockItemViewer::new);
public static final RegistryObject<Block> FIREWORK_BOX = BLOCKS.register("firework_box", BlockFireworkBox::new);
public static final RegistryObject<Block> MINER = BLOCKS.register("miner", BlockMiner::new);
public static final RegistryObject<Block> MINER = BLOCKS.register("miner", BlockVerticalDigger::new);
public static final RegistryObject<Block> ATOMIC_RECONSTRUCTOR = BLOCKS.register("atomic_reconstructor", BlockAtomicReconstructor::new);
public static final RegistryObject<Block> LASER_RELAY = BLOCKS.register("laser_relay", () -> new BlockLaserRelay(BlockLaserRelay.Type.ENERGY_BASIC));
public static final RegistryObject<Block> LASER_RELAY_ADVANCED = BLOCKS.register("laser_relay_advanced", () -> new BlockLaserRelay(BlockLaserRelay.Type.ENERGY_ADVANCED));
@ -66,14 +66,14 @@ public final class ActuallyBlocks {
public static final RegistryObject<Block> DIRECTIONAL_BREAKER = BLOCKS.register("directional_breaker", BlockDirectionalBreaker::new);
public static final RegistryObject<Block> LEAF_GENERATOR = BLOCKS.register("leaf_generator", BlockLeafGenerator::new);
public static final RegistryObject<Block> XP_SOLIDIFIER = BLOCKS.register("xp_solidifier", BlockXPSolidifier::new);
public static final RegistryObject<Block> TESTIFI_BUCKS_GREEN_WALL = BLOCKS.register("testifi_bucks_green_wall", BlockGeneric::new);
public static final RegistryObject<Block> TESTIFI_BUCKS_WHITE_WALL = BLOCKS.register("testifi_bucks_white_wall", BlockGeneric::new);
public static final RegistryObject<Block> TESTIFI_BUCKS_GREEN_STAIRS = BLOCKS.register("testifi_bucks_green_stairs", () -> new StairsBlock(() -> TESTIFI_BUCKS_GREEN_WALL.get().getDefaultState(), AbstractBlock.Properties.from(TESTIFI_BUCKS_GREEN_WALL.get())));
public static final RegistryObject<Block> TESTIFI_BUCKS_WHITE_STAIRS = BLOCKS.register("testifi_bucks_white_stairs", () -> new StairsBlock(() -> TESTIFI_BUCKS_WHITE_WALL.get().getDefaultState(), AbstractBlock.Properties.from(TESTIFI_BUCKS_WHITE_WALL.get())));
public static final RegistryObject<Block> TESTIFI_BUCKS_GREEN_SLAB = BLOCKS.register("testifi_bucks_green_slab", () -> new SlabBlock(AbstractBlock.Properties.from(TESTIFI_BUCKS_GREEN_WALL.get())));
public static final RegistryObject<Block> TESTIFI_BUCKS_WHITE_SLAB = BLOCKS.register("testifi_bucks_white_slab", () -> new SlabBlock(AbstractBlock.Properties.from(TESTIFI_BUCKS_WHITE_WALL.get())));
public static final RegistryObject<Block> TESTIFI_BUCKS_GREEN_FENCE = BLOCKS.register("testifi_bucks_green_fence", () -> new WallBlock(AbstractBlock.Properties.from(TESTIFI_BUCKS_GREEN_WALL.get())));
public static final RegistryObject<Block> TESTIFI_BUCKS_WHITE_FENCE = BLOCKS.register("testifi_bucks_white_fence", () -> new WallBlock(AbstractBlock.Properties.from(TESTIFI_BUCKS_WHITE_WALL.get())));
public static final RegistryObject<Block> ETHETIC_GREEN_BLOCK = BLOCKS.register("ethetic_green_block", BlockGeneric::new);
public static final RegistryObject<Block> ETHETIC_WHITE_BLOCK = BLOCKS.register("ethetic_white_block", BlockGeneric::new);
public static final RegistryObject<Block> ETHETIC_GREEN_STAIRS = BLOCKS.register("ethetic_green_stairs", () -> new StairsBlock(() -> ETHETIC_GREEN_BLOCK.get().getDefaultState(), AbstractBlock.Properties.from(ETHETIC_GREEN_BLOCK.get())));
public static final RegistryObject<Block> ETHETIC_WHITE_STAIRS = BLOCKS.register("ethetic_white_stairs", () -> new StairsBlock(() -> ETHETIC_WHITE_BLOCK.get().getDefaultState(), AbstractBlock.Properties.from(ETHETIC_WHITE_BLOCK.get())));
public static final RegistryObject<Block> ETHETIC_GREEN_SLAB = BLOCKS.register("ethetic_green_slab", () -> new SlabBlock(AbstractBlock.Properties.from(ETHETIC_GREEN_BLOCK.get())));
public static final RegistryObject<Block> ETHETIC_WHITE_SLAB = BLOCKS.register("ethetic_white_slab", () -> new SlabBlock(AbstractBlock.Properties.from(ETHETIC_WHITE_BLOCK.get())));
public static final RegistryObject<Block> ETHETIC_GREEN_WALL = BLOCKS.register("ethetic_green_wall", () -> new WallBlock(AbstractBlock.Properties.from(ETHETIC_GREEN_BLOCK.get())));
public static final RegistryObject<Block> ETHETIC_WHITE_WALL = BLOCKS.register("ethetic_white_wall", () -> new WallBlock(AbstractBlock.Properties.from(ETHETIC_WHITE_BLOCK.get())));
public static final RegistryObject<Block> CRYSTAL_ENORI = BLOCKS.register("crystal_enori_block", () -> new BlockCrystal(false));
public static final RegistryObject<Block> CRYSTAL_RESTONIA = BLOCKS.register("crystal_restonia_block", () -> new BlockCrystal(false));
@ -140,15 +140,18 @@ public final class ActuallyBlocks {
public static final RegistryObject<Block> FLUID_COLLECTOR = BLOCKS.register("fluid_collector", () -> new BlockFluidCollector(false));
public static final RegistryObject<Block> COFFEE_MACHINE = BLOCKS.register("coffee_machine", BlockCoffeeMachine::new);
public static final RegistryObject<Block> PHANTOM_BOOSTER = BLOCKS.register("phantom_booster", BlockPhantomBooster::new);
public static final RegistryObject<Block> QUARTZ_WALL = BLOCKS.register("quartz_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_QUARTZ_WALL = BLOCKS.register("chiseled_quartz_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> PILLAR_QUARTZ_WALL = BLOCKS.register("pillar_quartz_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> QUARTZ_STAIR = BLOCKS.register("quartz_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_QUARTZ_STAIR = BLOCKS.register("chiseled_quartz_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> PILLAR_QUARTZ_STAIR = BLOCKS.register("pillar_quartz_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> QUARTZ_SLAB = BLOCKS.register("quartz_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_QUARTZ_SLAB = BLOCKS.register("chiseled_quartz_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> PILLAR_QUARTZ_SLAB = BLOCKS.register("pillar_quartz_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_BLOCK = BLOCKS.register("black_quartz_block", BlockGeneric::new);
public static final RegistryObject<Block> BLACK_QUARTZ_PILLAR_BLOCK = BLOCKS.register("black_quartz_pillar_block", BlockGeneric::new);
public static final RegistryObject<Block> CHISELED_BLACK_QUARTZ_BLOCK = BLOCKS.register("chiseled_black_quartz_block", BlockGeneric::new);
public static final RegistryObject<Block> BLACK_QUARTZ_WALL = BLOCKS.register("black_quartz_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_BLACK_QUARTZ_WALL = BLOCKS.register("chiseled_black_quartz_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_PILLAR_WALL = BLOCKS.register("black_quartz_pillar_wall", () -> new WallBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_STAIR = BLOCKS.register("black_quartz_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_BLACK_QUARTZ_STAIR = BLOCKS.register("chiseled_black_quartz_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_PILLAR_STAIR = BLOCKS.register("black_quartz_pillar_stair", () -> new StairsBlock(() -> blockMisc.get().getDefaultState(), AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_SLAB = BLOCKS.register("black_quartz_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> CHISELED_BLACK_QUARTZ_SLAB = BLOCKS.register("chiseled_black_quartz_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static final RegistryObject<Block> BLACK_QUARTZ_PILLAR_SLAB = BLOCKS.register("black_quartz_pillar_slab", () -> new SlabBlock(AbstractBlock.Properties.from(blockMisc.get())));
public static AbstractBlock.Properties defaultPickProps(int harvestLevel, float hardness, float resistance) {
return AbstractBlock.Properties.create(Material.ROCK).harvestLevel(harvestLevel).harvestTool(ToolType.PICKAXE).hardnessAndResistance(hardness, resistance).sound(SoundType.STONE);

View File

@ -33,9 +33,9 @@ import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class BlockMiner extends DirectionalBlock.Container implements IHudDisplay {
public class BlockVerticalDigger extends DirectionalBlock.Container implements IHudDisplay {
public BlockMiner() {
public BlockVerticalDigger() {
super(ActuallyBlocks.defaultPickProps(0, 8F, 30F));
}

View File

@ -154,7 +154,7 @@ public final class InitBooklet {
new BookletChapter("lushCaves", ActuallyAdditionsAPI.entryMisc, new ItemStack(Blocks.STONE), new PageTextOnly(1), new PagePicture(2, "page_lush_caves", 0).setNoText());
new BookletChapter("crystalClusters", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyBlocks.CRYSTAL_CLUSTER_EMERALD.get()), new PageTextOnly(1).addItemsToPage(WorldGenLushCaves.CRYSTAL_CLUSTERS), new PageCrafting(2, MiscCrafting.RECIPES_CRYSTAL_SHARDS).setNoText(), new PageCrafting(3, MiscCrafting.RECIPES_CRYSTAL_SHARDS_BACK).setNoText()).setSpecial();
new BookletChapter("banners", ActuallyAdditionsAPI.entryMisc, new ItemStack(Items.BLUE_BANNER, 1), new PageTextOnly(1));
new BookletChapter("miscDecorStuffsAndThings", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyBlocks.TESTIFI_BUCKS_GREEN_WALL), new PageTextOnly(1), new PageReconstructor(2, LensRecipeHandler.recipeWhiteWall).setNoText(), new PageReconstructor(3, LensRecipeHandler.recipeGreenWall).setNoText());
new BookletChapter("miscDecorStuffsAndThings", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyBlocks.ETHETIC_GREEN_BLOCK.get()), new PageTextOnly(1), new PageReconstructor(2, LensRecipeHandler.recipeWhiteWall).setNoText(), new PageReconstructor(3, LensRecipeHandler.recipeGreenWall).setNoText());
chaptersIntroduction[3] = new BookletChapter("quartz", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyItems.itemBlackQuartz.get()), new PageTextOnly(1).addItemsToPage(new ItemStack(ActuallyBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("<lowest>", AAWorldGen.QUARTZ_MIN).addTextReplacement("<highest>", AAWorldGen.QUARTZ_MAX), new PageTextOnly(2).addItemsToPage(new ItemStack(ActuallyItems.itemBlackQuartz.get())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText());
// new BookletChapter("cloud", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyBlocks.blockSmileyCloud), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeSmileyCloud).setWildcard()).setSpecial();
new BookletChapter("coalStuff", ActuallyAdditionsAPI.entryMisc, new ItemStack(ActuallyItems.TINY_COAL.get()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeTinyCoal).setNoText(), new PageCrafting(3, ItemCrafting.recipeTinyChar).setNoText(), new PageCrafting(4, BlockCrafting.recipeBlockChar).setNoText());