From 021ae584f0d794ab70e1a86c8a5e6ec2dab4903f Mon Sep 17 00:00:00 2001 From: jottyfan Date: Tue, 28 Jul 2020 22:57:31 +0200 Subject: [PATCH] added blocks --- .../quickiefabric/QuickieFabric.java | 35 ++++++++ .../blocks/BlockOreNetherSulphor.java | 35 ++++++++ .../blocks/BlockOreSalpeter.java | 35 ++++++++ .../blocks/BlockOreSandSalpeter.java | 36 ++++++++ .../quickiefabric/blocks/BlockOreSulphor.java | 35 ++++++++ .../blocks/BlockSandSalpeter.java | 30 +++++++ .../quickiefabric/blocks/QuickieBlocks.java | 13 +++ .../quickiefabric/event/BlockBreakMixin.java | 7 +- .../event/BreakBlockCallback.java | 6 +- .../quickiefabric/init/RegistryManager.java | 81 ++++++++++++++++-- .../blockstates/orenethersulphor.json | 7 ++ .../blockstates/oresalpeter.json | 7 ++ .../blockstates/oresandsalpeter.json | 7 ++ .../quickiefabric/blockstates/oresulphor.json | 7 ++ .../blockstates/sandsalpeter.json | 7 ++ .../models/block/orenethersulphor.json | 6 ++ .../models/block/oresalpeter.json | 6 ++ .../models/block/oresandsalpeter.json | 7 ++ .../models/block/oresulphor.json | 6 ++ .../models/block/sandsalpeter.json | 6 ++ .../textures/block/orenethersulphor.png | Bin 0 -> 1055 bytes .../textures/block/oresalpeter.png | Bin 0 -> 435 bytes .../textures/block/oresandsalpeter.png | Bin 0 -> 1031 bytes .../textures/block/oresulphor.png | Bin 0 -> 1055 bytes .../textures/block/sandsalpeter.png | Bin 0 -> 959 bytes .../data/quickiefabric/recipes/salpeter1.json | 13 +++ .../data/quickiefabric/recipes/salpeter2.json | 13 +++ .../data/quickiefabric/recipes/salpeter3.json | 13 +++ .../data/quickiefabric/recipes/salpeter4.json | 13 +++ .../data/quickiefabric/recipes/sulfur1.json | 13 +++ .../data/quickiefabric/recipes/sulfur2.json | 13 +++ src/main/resources/fabric.mod.json | 2 +- 32 files changed, 444 insertions(+), 15 deletions(-) create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreNetherSulphor.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSalpeter.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSandSalpeter.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSulphor.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockSandSalpeter.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java create mode 100644 src/main/resources/assets/quickiefabric/blockstates/orenethersulphor.json create mode 100644 src/main/resources/assets/quickiefabric/blockstates/oresalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/blockstates/oresandsalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/blockstates/oresulphor.json create mode 100644 src/main/resources/assets/quickiefabric/blockstates/sandsalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/orenethersulphor.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/oresalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/oresandsalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/oresulphor.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/sandsalpeter.json create mode 100644 src/main/resources/assets/quickiefabric/textures/block/orenethersulphor.png create mode 100644 src/main/resources/assets/quickiefabric/textures/block/oresalpeter.png create mode 100644 src/main/resources/assets/quickiefabric/textures/block/oresandsalpeter.png create mode 100644 src/main/resources/assets/quickiefabric/textures/block/oresulphor.png create mode 100644 src/main/resources/assets/quickiefabric/textures/block/sandsalpeter.png create mode 100644 src/main/resources/data/quickiefabric/recipes/salpeter1.json create mode 100644 src/main/resources/data/quickiefabric/recipes/salpeter2.json create mode 100644 src/main/resources/data/quickiefabric/recipes/salpeter3.json create mode 100644 src/main/resources/data/quickiefabric/recipes/salpeter4.json create mode 100644 src/main/resources/data/quickiefabric/recipes/sulfur1.json create mode 100644 src/main/resources/data/quickiefabric/recipes/sulfur2.json diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java index 37c1920..75b7fd1 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java @@ -1,7 +1,16 @@ package de.jottyfan.minecraft.quickiefabric; +import java.util.ArrayList; +import java.util.List; + +import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks; import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; import net.fabricmc.api.ModInitializer; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.feature.OreFeatureConfig; /** * @@ -15,6 +24,32 @@ public class QuickieFabric implements ModInitializer { RegistryManager.registerItems(); RegistryManager.registerTools(); RegistryManager.registerEvents(); + RegistryManager.registerBlocks(); + Registry.BIOME.forEach(this::handleBiome); } + /** + * add the quickiefabric ores to the biome + * + * @param biome + * the biome + */ + private void handleBiome(Biome biome) { + if (biome.getCategory() == Biome.Category.NETHER) { + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NETHER_ORE_REPLACEABLES, QuickieBlocks.ORE_NETHER_SULPHOR, 24, 10, 0, 0, 128); + } else if (biome.getCategory() != Biome.Category.THEEND) { + } else { + List sandlike = new ArrayList<>(); + sandlike.add(Blocks.SAND.getDefaultState()); + sandlike.add(Blocks.SANDSTONE.getDefaultState()); + sandlike.add(Blocks.SANDSTONE_WALL.getDefaultState()); + sandlike.add(Blocks.CHISELED_SANDSTONE.getDefaultState()); + List dirtlike = new ArrayList<>(); + dirtlike.add(Blocks.DIRT.getDefaultState()); + RegistryManager.generateOreForBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.SAND_SALPETER, 10, 64, 196, 255); + RegistryManager.generateOreForBlocks(biome, sandlike, sandlike, sandlike, QuickieBlocks.ORE_SAND_SALPETER, 10, 64, 196, 255); + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NATURAL_STONE, QuickieBlocks.ORE_SULPHOR, 16, 4, 4, 196, 255); + RegistryManager.generateOreForTarget(biome, OreFeatureConfig.Target.NATURAL_STONE, QuickieBlocks.ORE_SALPETER, 12, 10, 4, 196, 255); + } + } } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreNetherSulphor.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreNetherSulphor.java new file mode 100644 index 0000000..17dfad3 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreNetherSulphor.java @@ -0,0 +1,35 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import de.jottyfan.minecraft.quickiefabric.items.Items; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.block.OreBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreNetherSulphor extends OreBlock { + + public BlockOreNetherSulphor() { + super(FabricBlockSettings.of(Material.STONE).hardness(2.1f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.SULPHOR) }); + } + + @Override + protected int getExperienceWhenMined(Random random) { + return random.nextInt(3); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSalpeter.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSalpeter.java new file mode 100644 index 0000000..9bb874b --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSalpeter.java @@ -0,0 +1,35 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import de.jottyfan.minecraft.quickiefabric.items.Items; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.block.OreBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreSalpeter extends OreBlock { + + public BlockOreSalpeter() { + super(FabricBlockSettings.of(Material.STONE).hardness(3.1f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.SALPETER) }); + } + + @Override + protected int getExperienceWhenMined(Random random) { + return random.nextInt(3); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSandSalpeter.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSandSalpeter.java new file mode 100644 index 0000000..1a8e2c5 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSandSalpeter.java @@ -0,0 +1,36 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import de.jottyfan.minecraft.quickiefabric.items.Items; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.Material; +import net.minecraft.block.OreBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreSandSalpeter extends OreBlock { + + public BlockOreSandSalpeter() { + super(FabricBlockSettings.of(Material.STONE).hardness(2.9f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.SALPETER), new ItemStack(Blocks.SAND) }); + } + + @Override + protected int getExperienceWhenMined(Random random) { + return random.nextInt(3); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSulphor.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSulphor.java new file mode 100644 index 0000000..15bee04 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockOreSulphor.java @@ -0,0 +1,35 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +import de.jottyfan.minecraft.quickiefabric.items.Items; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Material; +import net.minecraft.block.OreBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreSulphor extends OreBlock { + + public BlockOreSulphor() { + super(FabricBlockSettings.of(Material.STONE).hardness(1.9f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.SULPHOR) }); + } + + @Override + protected int getExperienceWhenMined(Random random) { + return random.nextInt(3); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockSandSalpeter.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockSandSalpeter.java new file mode 100644 index 0000000..6177232 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockSandSalpeter.java @@ -0,0 +1,30 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.minecraft.quickiefabric.items.Items; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.GravelBlock; +import net.minecraft.block.Material; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; + +/** + * + * @author jotty + * + */ +public class BlockSandSalpeter extends GravelBlock { + + public BlockSandSalpeter() { + super(FabricBlockSettings.of(Material.STONE).hardness(3.1f)); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(Items.SALPETER), new ItemStack(Blocks.SAND) }); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java new file mode 100644 index 0000000..717b7fc --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java @@ -0,0 +1,13 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; +/** + * + * @author jotty + * + */ +public class QuickieBlocks { + public static final BlockOreNetherSulphor ORE_NETHER_SULPHOR = new BlockOreNetherSulphor(); + public static final BlockOreSalpeter ORE_SALPETER = new BlockOreSalpeter(); + public static final BlockOreSandSalpeter ORE_SAND_SALPETER = new BlockOreSandSalpeter(); + public static final BlockOreSulphor ORE_SULPHOR = new BlockOreSulphor(); + public static final BlockSandSalpeter SAND_SALPETER = new BlockSandSalpeter(); +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BlockBreakMixin.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BlockBreakMixin.java index 3b271ab..bdb2a8b 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BlockBreakMixin.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BlockBreakMixin.java @@ -21,9 +21,10 @@ import net.minecraft.world.World; */ @Mixin(Block.class) public class BlockBreakMixin { - @Inject(method = "injectBlockBreakCallback", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)V"), cancellable = true) - private void interactOnBreak(final World world, final BlockPos blockPos, final BlockState blockState, final PlayerEntity player, final CallbackInfo info) { - ActionResult result = BreakBlockCallback.EVENT.invoker().injectBlockBreakCallback(world, blockPos, blockState, player); +// @Inject(method = "injectBlockBreakCallback", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)V"), cancellable = true) + @Inject(method = "injectBlockBreakCallback", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;onBroken(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)V"), cancellable = true) + private void interactOnBreak(final World world, final BlockPos blockPos, final BlockState blockState, final CallbackInfo info) { + ActionResult result = BreakBlockCallback.EVENT.invoker().injectBlockBreakCallback(world, blockPos, blockState); if (result == ActionResult.FAIL) { info.cancel(); } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BreakBlockCallback.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BreakBlockCallback.java index e7c82a3..811b22b 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BreakBlockCallback.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/event/BreakBlockCallback.java @@ -15,9 +15,9 @@ import net.minecraft.world.World; */ public interface BreakBlockCallback { Event EVENT = EventFactory.createArrayBacked(BreakBlockCallback.class, - (listeners) -> (world, blockPos, blockState, player) -> { + (listeners) -> (world, blockPos, blockState) -> { for (BreakBlockCallback listener : listeners) { - ActionResult result = listener.injectBlockBreakCallback(world, blockPos, blockState, player); + ActionResult result = listener.injectBlockBreakCallback(world, blockPos, blockState); if (result != ActionResult.PASS) { return result; } @@ -25,5 +25,5 @@ public interface BreakBlockCallback { return ActionResult.PASS; }); - ActionResult injectBlockBreakCallback(World world, BlockPos blockPos, BlockState blockState, PlayerEntity player); + ActionResult injectBlockBreakCallback(World world, BlockPos blockPos, BlockState blockState); } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java index 775eadf..4349c7f 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java @@ -1,16 +1,31 @@ package de.jottyfan.minecraft.quickiefabric.init; +import java.util.List; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; + +import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks; import de.jottyfan.minecraft.quickiefabric.event.BreakBlockCallback; import de.jottyfan.minecraft.quickiefabric.items.Items; import de.jottyfan.minecraft.quickiefabric.tools.Tools; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.decorator.Decorator; +import net.minecraft.world.gen.decorator.RangeDecoratorConfig; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.gen.feature.OreFeatureConfig.Target; /** * @@ -29,30 +44,80 @@ public class RegistryManager { stacks.add(new ItemStack(Items.LEVELUP)); stacks.add(new ItemStack(Items.PENCIL)); stacks.add(new ItemStack(Tools.SPEEDPOWDERAXE)); + stacks.add(new ItemStack(QuickieBlocks.ORE_NETHER_SULPHOR)); + stacks.add(new ItemStack(QuickieBlocks.ORE_SALPETER)); + stacks.add(new ItemStack(QuickieBlocks.ORE_SAND_SALPETER)); + stacks.add(new ItemStack(QuickieBlocks.ORE_SULPHOR)); + stacks.add(new ItemStack(QuickieBlocks.SAND_SALPETER)); }).build(); + private static final void registerBlock(Block block, String name) { + Registry.register(Registry.BLOCK, new Identifier(QUICKIEFABRIC, name), block); + Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, name), new BlockItem(block, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP))); + } + + private static final void registerItem(Item item, String name) { + Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, name), item); + } + + public static final void registerBlocks() { + LOGGER.debug("registering quickiefabric blocks"); + registerBlock(QuickieBlocks.ORE_NETHER_SULPHOR, "orenethersulphor"); + registerBlock(QuickieBlocks.ORE_SALPETER, "oresalpeter"); + registerBlock(QuickieBlocks.ORE_SAND_SALPETER, "oresandsalpeter"); + registerBlock(QuickieBlocks.ORE_SULPHOR, "oresulphor"); + registerBlock(QuickieBlocks.SAND_SALPETER, "sandsalpeter"); + } + public static final void registerItems() { LOGGER.debug("registering quickiefabric items"); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "speedpowder"), Items.SPEEDPOWDER); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "levelup"), Items.LEVELUP); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "pencil"), Items.PENCIL); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "salpeter"), Items.SALPETER); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "sulphor"), Items.SULPHOR); + registerItem(Items.SPEEDPOWDER, "speedpowder"); + registerItem(Items.LEVELUP, "levelup"); + registerItem(Items.PENCIL, "pencil"); + registerItem(Items.SALPETER, "salpeter"); + registerItem(Items.SULPHOR, "sulphor"); } public static final void registerTools() { LOGGER.debug("registering quickiefabric tools"); - Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, "speedpowderaxe"), Tools.SPEEDPOWDERAXE); + registerItem(Tools.SPEEDPOWDERAXE, "speedpowderaxe"); } public static final void registerEvents() { LOGGER.debug("registering quickiefabric events"); - BreakBlockCallback.EVENT.register((world, blockPos, blockState, player) -> { + BreakBlockCallback.EVENT.register((world, blockPos, blockState) -> { // TODO: add code to break the corresponding surroundings also if hand hold the right tool // return ActionResult.PASS; // if the breaking replaces another event, but this does not appear for the speedpowder tools - LOGGER.info("player %s broke block %s as %s", player.getName(), blockState.getBlock().getName(), blockPos.toString()); + LOGGER.info("broke block %s at %s", blockState.getBlock().getName(), blockPos.toString()); return ActionResult.SUCCESS; }); } + + /** + * generate ores + * + * @param biome the biome to generate the veins in + * @param target the block to be replaced + * @param block the block that is the replacement + * @param veinsize the size of the vein + * @param count the number of veins in a chunk + * @param bottomOffset the lower limit + * @param topOffset the upper limit + * @param maximum the maximum number of blocks in a vein + */ + public static void generateOreForTarget(Biome biome, Target target, Block block, int veinsize, int count, int bottomOffset, int topOffset, int maximum) { + OreFeatureConfig ofc = new OreFeatureConfig(target, block.getDefaultState(), veinsize); + RangeDecoratorConfig rdc = new RangeDecoratorConfig(count, bottomOffset, topOffset, maximum); + biome.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, Feature.ORE.configure(ofc).createDecoratedFeature(Decorator.COUNT_RANGE.configure(rdc))); + } + + public static void generateOreForBlocks(Biome biome, List placeOn, List placeIn, List placeUnder, Block block, int nrPerChunk, + int minHeight, int maxHeightBase, int maxHeight) { + // TODO +// BlockWithContextConfig config = new BlockWithContextConfig(block.getDefaultState(), placeOn, placeIn, placeUnder); +// RangeDecoratorConfig rdc = new RangeDecoratorConfig(nrPerChunk, minHeight, maxHeightBase, maxHeight); +// ConfiguredPlacement placement = Placement.COUNT_RANGE.configure(rdc); +// biome.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, Feature.SIMPLE_BLOCK.configure(config).withPlacement(placement)); + } } diff --git a/src/main/resources/assets/quickiefabric/blockstates/orenethersulphor.json b/src/main/resources/assets/quickiefabric/blockstates/orenethersulphor.json new file mode 100644 index 0000000..f3c76e5 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/orenethersulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/orenethersulphor" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/blockstates/oresalpeter.json b/src/main/resources/assets/quickiefabric/blockstates/oresalpeter.json new file mode 100644 index 0000000..657e043 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/oresalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/oresalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/blockstates/oresandsalpeter.json b/src/main/resources/assets/quickiefabric/blockstates/oresandsalpeter.json new file mode 100644 index 0000000..be087a1 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/oresandsalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/oresandsalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/blockstates/oresulphor.json b/src/main/resources/assets/quickiefabric/blockstates/oresulphor.json new file mode 100644 index 0000000..1bc53a3 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/oresulphor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/oresulphor" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/blockstates/sandsalpeter.json b/src/main/resources/assets/quickiefabric/blockstates/sandsalpeter.json new file mode 100644 index 0000000..122650e --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/sandsalpeter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/sandsalpeter" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/models/block/orenethersulphor.json b/src/main/resources/assets/quickiefabric/models/block/orenethersulphor.json new file mode 100644 index 0000000..2d56c02 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/orenethersulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiefabric:block/orenethersulphor" + } +} diff --git a/src/main/resources/assets/quickiefabric/models/block/oresalpeter.json b/src/main/resources/assets/quickiefabric/models/block/oresalpeter.json new file mode 100644 index 0000000..436403a --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/oresalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiefabric:block/oresalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/oresandsalpeter.json b/src/main/resources/assets/quickiefabric/models/block/oresandsalpeter.json new file mode 100644 index 0000000..1fe0706 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/oresandsalpeter.json @@ -0,0 +1,7 @@ +{ + "parent": "block/cube_column", + "textures": { + "end" : "minecraft:block/sandstone_top", + "side": "quickiefabric:block/oresandsalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/oresulphor.json b/src/main/resources/assets/quickiefabric/models/block/oresulphor.json new file mode 100644 index 0000000..663529c --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/oresulphor.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiefabric:block/oresulphor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/sandsalpeter.json b/src/main/resources/assets/quickiefabric/models/block/sandsalpeter.json new file mode 100644 index 0000000..fb517dd --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/sandsalpeter.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiefabric:block/sandsalpeter" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/textures/block/orenethersulphor.png b/src/main/resources/assets/quickiefabric/textures/block/orenethersulphor.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed0690ee7e928a033a2ceb524f3b9a8adcbc590 GIT binary patch literal 1055 zcmV+)1mOFLP)WFU8GbZ8()Nlj2>E@cM*00V_fR#n|&#_Hk;)r zbyG*-*1%=RDnV%q>UjvVgX4sQyW=j-JC2vdo~|yIhVM{d5$K(mWZ_8+@!ZW@WQihQUdtg8xj~cJLhDB&!SmozWX3`P z5~7x(cnra4;FFt8=#5F5Ui^)j{AbYCmTW)anw{m$xj4$yb}F8Bps|lIaVMAN4ik-s zav1+xqJMmxRg;;4D}J^{iZMNKF)B%jhYytFbeA&Z9mXA4WlLrzcYmw|64dUxO;uSL zb=$U4W4Du)naSC{J{AeFoLUD}MLTnK@Ps})3;)6jilAXKFvq@+VMm>g?yd+&YirqQ zw^MX<5qqT#VRDVX+#xQ7=aG|Zh#BcL%9@HG2)tb5rMN6fO5H?c(MCsS8K*zHhcNn( zPv3Zpq^jWZ#wp3oMRmKGT8JWUuBgD2@8^NX!}PC(=tqjN=Wpd?cMr=-fc)$nhL>gD z+|$FM-Bm2R-E_{)Vlx_OG#JseRaT}yJS7v2EA%z^P||5i-*fU`de2a2-F6u3#O(Bk=cR#i%Om2+um z2!q*#=EDB{X#j5`L7&@AJ~G$C39JS^o6{Ovocl25z=dlrYKk+t{I3U5t3hKh@I^xd Z{{xbkiLaGma&G_t002ovPDHLkV1hb1;lls` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/quickiefabric/textures/block/oresalpeter.png b/src/main/resources/assets/quickiefabric/textures/block/oresalpeter.png new file mode 100644 index 0000000000000000000000000000000000000000..0c463507da842ef9a59b10671e111dacfd5b4a86 GIT binary patch literal 435 zcmV;k0ZjghP)1Eub0EKn7g&1ytbpixv0juq{6$W!Mm%;yr#syt;@l&&cUn4!?er8 zvCG4>&BV0K#<z30013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~ z0001Oa zgpy@V11QLSrzwkgvLF&vSyolwlWpq?UdrSUM;POL5Zh2Q zUss1DIO^O6xcxjB3fnZ#C)I7FL8hr-%xl*+O0oo?>mI=S8G}JXc=;gej6n>;*Bi#@ d9>D?h9Dn=b24amU$DRNH002ovPDHLkV1m;X!n6PY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/quickiefabric/textures/block/oresandsalpeter.png b/src/main/resources/assets/quickiefabric/textures/block/oresandsalpeter.png new file mode 100644 index 0000000000000000000000000000000000000000..db9326b58b44955755c282552c24591546b11104 GIT binary patch literal 1031 zcmV+i1o-=jP)P)t-sxUg!s zt(Up7Yr3**yR&P%ua~;BcD%H1y0mq@v~9bzbiK81y|r(?w{E|;Z@ss5zqfF`w|c#| zd%m}Nz_)k9vzWiQbi1{o!MSe1xp2L?fV{S&!Mbt6x^lm|fy29Tzq*LRyLrL8g2TLd z!MuRKxv0XufW*Cf!o7pWxunCsgT%gp#J+;Wy^O-Ur@_0c#=m^Vz<&BdP0#+c2=md(Vp&BvP0$d=H@ozKXc%*MFT$ez!}wb03x(8-q1$)3^4oYBdl z(#n|9$GFtVpU}&g&&ayc%bU{6oYBmf&&j;f%$Cy3nA6Ob(aF5k%$U~6xYW&|)y|dE z&8FARo7c{q*3X#O&YsiHrPI%;(apov&!pAQrPt4>*U+WZ&cxW!oY>H)*3QDx&&Al$ zqT11-+0m)m(w)`N!`9Hm*U`z`)ScSXt=!a~+SH}h(#hP^q1@G--PEbw)u7$gqTAJ| z-PNhx)}`Imvfb9L-Pfhw)~?>yso&SG;@GC!*T&)4tKrzJ+tf*ZWL;#2d9Y_EG010qNS#tmY3ljhU3ljkVnw%H_000Mc zNliru;R+oM8XL=>RR91003B&mSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2> zE@cM*00A3GL_t&-(*Y0x@BRR#v$LLvjIxogva7DKz`(Eolv++!PDnj1Vnt6@Tce?w z04QG@8$?7pBpN3a4waZ7696)}pSd+ezy&m%1Hhc7z`y`DRZU|xhntFJ4R=aif=PV< zXJcb_HAZ=@h8%u=YI}SS09P|XFF83}Tn8LWOKwbQ4*(7&FQ>x0I4HKZ!6ra455EAv z7XfWvBep_wDSv;mlM<)^VUUfDYZ<9RDJg${okN<70B9i*AucRbY;|=NB5#0Z2>=ki zaBwaH9UW5$7PTLMX1oBes**gkP`0*GQb%+*cv+7CqK;S*P*7xqQc_1)44`sR06!|0 zI$&Uh3ZgJ^dL{sa1OTkJK7lJ92A7Fz3p=E`7`_JrVfa-dfG+?5002ovPDHLkV1ikh BI&A;| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/quickiefabric/textures/block/oresulphor.png b/src/main/resources/assets/quickiefabric/textures/block/oresulphor.png new file mode 100644 index 0000000000000000000000000000000000000000..f408b21f349618220f635c6d39f36a293aecd8ac GIT binary patch literal 1055 zcmV+)1mOFLP)zN{ph5yssL$vIo4cC%~>JzOWp- zuQ0o_3cs-(!Lkm#ura=_LABxjDqU8^^gP$F@nqxKPEpJIJ~z!oLg5xHG`JI>fm{%DW!HygS9ZM98}|%DgMd zz!A&6Ey=t-#J)Yqyhh5w6v@CM#=kbny+_2qN5j8P%Dza(!z9VUFVMgx%e-92zE#V@ zCCtA;%fCs;zgEe@InBUA#lcX^!!gIgO3T4f%)~Ot!%NP^DaXT7(8D~;!cx-2G|D-;ofrR-FoBSbLQY?<=}1T-h1ueXzAa4<>7Vf;CAQY zZ|dNE>*Q+c<$3a%Ud;di00Cl4M??UK1szBL000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2jL1G3^FZPx&#CO0013nR9JLFZ*6U5Zgc_CX>@2HM@dak zWG-a~0002WNkl5QMv`d4Yk5p@?j1VrC!+Vju>F3c@on5DfeQ@g2Ym z2%?E5f{43_sjy%mdw`AhM%&ZVFhloD)z>A26;(xJC$u3H?AQRIjGEmWpdf#KX$mFT z(pcZ%2}IepmI_a6d5mBmJXwISaxS1?JULmXj@ubJ3}9n-_!ArX%AX_$WE znRzg@Y|~;gQN12%kj}@LA+KH8TB4-@)GAA0+YZ5?^=b+8K@CA?45FOR`M?m}BRGJb Z;~$t88P4f)!2$pP002ovPDHLkV1iwO7mfe` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/quickiefabric/textures/block/sandsalpeter.png b/src/main/resources/assets/quickiefabric/textures/block/sandsalpeter.png new file mode 100644 index 0000000000000000000000000000000000000000..0cbd907dc468794e0cd0e607f8aba85b64d7c969 GIT binary patch literal 959 zcmV;w13>(VP)WFU8GbZ8()Nlj2>E@cM*00SdQL_t(I%O%s@Y9nO; zfZ_N1<}WjuWTr`zbelH2%XaG))Kx*nh4ly43-D;c>+l9V6}$mYJrG3jKm=i_C@gs3 zVv$md+iJC@N!v_1NhXu|Yv%J{@8NmG(xD ztiUpCme)(VTd%Xf_XMwAM|N(kvdCwsQo}V{{CRjxnx>RxNs$+z-N4p7UV8NrOOYd` zNjtyaS@49-u##xM*3gbrjCpD!G?muEjA*E(w; z6u#RgOB2?bJ#5WKSnm<5``p^RLy~3`i(T~6Aq=J*{e8%)zmDTL$cu|}Y};lS{L9X3 zA2XWt5mtd~?olldFl~*kJ6kx8!%6>;bQ$4!9>HWlmS@N?456^OP9(>Fd_xe7$>SKmoS_l?04C@w}Vxw zkk180yo(e9O_$_F!AkRGYPA~DG)!!51Y^*OlBd` zY>w}F9RGEMU2$l&+gumdWO<5LZDZ&Lqsf1mhJ`pf_)=A*&0zcw!@-c=<|aZ41cKWe z_Xx&g+N-Nfrc*K%q3e<;n&Uei!Z1YYrOqshs8(#=e)tJ%Hy@)dZEVM891S=RPPqvC z96aA6Nfv0!Dsfm~x8A4fy2yEYMb+0)0uF!wf_7_&<7tdWBV4mdqv_MAuhDL|sAyHP hJjQRoh&33U@IUY*Y7yvsY-9ic002ovPDHLkV1mxTy{7;G literal 0 HcmV?d00001 diff --git a/src/main/resources/data/quickiefabric/recipes/salpeter1.json b/src/main/resources/data/quickiefabric/recipes/salpeter1.json new file mode 100644 index 0000000..9aae0ae --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/salpeter1.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:dirtsalpeter" + } + ], + "result": "quickiefabric:salpeter", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiefabric/recipes/salpeter2.json b/src/main/resources/data/quickiefabric/recipes/salpeter2.json new file mode 100644 index 0000000..9cb5186 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/salpeter2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:oresalpeter" + } + ], + "result": "quickiefabric:salpeter", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiefabric/recipes/salpeter3.json b/src/main/resources/data/quickiefabric/recipes/salpeter3.json new file mode 100644 index 0000000..b7be4a9 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/salpeter3.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:oresandsalpeter" + } + ], + "result": "quickiefabric:salpeter", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiefabric/recipes/salpeter4.json b/src/main/resources/data/quickiefabric/recipes/salpeter4.json new file mode 100644 index 0000000..270c67d --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/salpeter4.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:sandsalpeter" + } + ], + "result": "quickiefabric:salpeter", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiefabric/recipes/sulfur1.json b/src/main/resources/data/quickiefabric/recipes/sulfur1.json new file mode 100644 index 0000000..8f249e6 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/sulfur1.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:orenethersulphor" + } + ], + "result": "quickiefabric:sulphor", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/data/quickiefabric/recipes/sulfur2.json b/src/main/resources/data/quickiefabric/recipes/sulfur2.json new file mode 100644 index 0000000..4af6b08 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/sulfur2.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:smelting", + "group": "ores", + "ingredient": [ + { + "item": "quickiefabric:oresulphor" + } + ], + "result": "quickiefabric:sulphor", + "count": 1, + "experience": 0.5, + "cookingtime": 200 +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index b399f11..8776446 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -23,7 +23,7 @@ ] }, "mixins": [ - "quickiefabric.mixins.json" + // "quickiefabric.mixins.json" ], "depends": { "fabricloader": ">=0.7.4",