diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/DrillBlockEntity.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/DrillBlockEntity.java new file mode 100644 index 0000000..6fa7092 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/DrillBlockEntity.java @@ -0,0 +1,37 @@ +package de.jottyfan.minecraft.quickiefabric.blockentity; + +import net.minecraft.block.Blocks; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.util.Tickable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class DrillBlockEntity extends BlockEntity implements Tickable { + + private static final Integer MAXDRILLSTEP = 16; + private Integer drillstep; + + public DrillBlockEntity() { + super(QuickieFabricBlockEntity.DRILL); + drillstep = MAXDRILLSTEP; + } + + @Override + public void tick() { + BlockPos pos = getPos(); + World world = getWorld(); + drillstep--; + if (drillstep < 1) { + drillstep = MAXDRILLSTEP; + BlockPos down = pos.down(); + if (!world.getBlockState(down).isOf(Blocks.BEDROCK)) { + world.breakBlock(down, true); + } + } + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/QuickieFabricBlockEntity.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/QuickieFabricBlockEntity.java index 3251b13..deb55f5 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/QuickieFabricBlockEntity.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/QuickieFabricBlockEntity.java @@ -11,4 +11,5 @@ public class QuickieFabricBlockEntity { public static BlockEntityType ITEMHOARDER; public static BlockEntityType MONSTERHOARDER; public static BlockEntityType EMPTYLAVAHOARDER; + public static BlockEntityType DRILL; } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockDrill.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockDrill.java new file mode 100644 index 0000000..7d13626 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockDrill.java @@ -0,0 +1,39 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.ArrayList; +import java.util.List; + +import de.jottyfan.minecraft.quickiefabric.blockentity.DrillBlockEntity; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockState; +import net.minecraft.block.FallingBlock; +import net.minecraft.block.Material; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext.Builder; +import net.minecraft.world.BlockView; + +/** + * + * @author jotty + * + */ +public class BlockDrill extends FallingBlock implements BlockEntityProvider { + + public BlockDrill() { + super(FabricBlockSettings.of(Material.STONE).hardness(2.5f)); + } + + @Override + public BlockEntity createBlockEntity(BlockView world) { + return new DrillBlockEntity(); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + List list = new ArrayList<>(); + list.add(new ItemStack(QuickieBlocks.DRILL)); + return list; + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java index e4c14a4..75f6ba5 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java @@ -19,4 +19,5 @@ public class QuickieBlocks { public static final BlockKelpstack KELPSTACK = new BlockKelpstack(); public static final BlockCottonplant COTTONPLANT = new BlockCottonplant(); public static final BlockSulphor BLOCKSULPHOR = new BlockSulphor(); + public static final BlockDrill DRILL = new BlockDrill(); } 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 10903f7..c670e5d 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java @@ -7,6 +7,7 @@ import java.util.function.Supplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import de.jottyfan.minecraft.quickiefabric.blockentity.DrillBlockEntity; import de.jottyfan.minecraft.quickiefabric.blockentity.EmptyLavaHoarderBlockEntity; import de.jottyfan.minecraft.quickiefabric.blockentity.ItemHoarderBlockEntity; import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity; @@ -139,6 +140,7 @@ public class RegistryManager { stacks.add(new ItemStack(QuickieBlocks.MONSTERHOARDER)); stacks.add(new ItemStack(QuickieBlocks.KELPSTACK)); stacks.add(new ItemStack(QuickieBlocks.BLOCKSULPHOR)); + stacks.add(new ItemStack(QuickieBlocks.DRILL)); }).build(); private static final void registerBlock(Block block, String name) { @@ -169,6 +171,8 @@ public class RegistryManager { QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType) registerBlockEntity( "emptylavahoarderblockentity", EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER, QuickieBlocks.LAVAHOARDER); + QuickieFabricBlockEntity.DRILL = (BlockEntityType) registerBlockEntity("drillblockentity", + DrillBlockEntity::new, QuickieBlocks.DRILL); } public static final void registerBlocks() { @@ -186,6 +190,7 @@ public class RegistryManager { registerBlock(QuickieBlocks.KELPSTACK, "kelpstack"); registerBlock(QuickieBlocks.COTTONPLANT, "cottonplant"); registerBlock(QuickieBlocks.BLOCKSULPHOR, "blocksulphor"); + registerBlock(QuickieBlocks.DRILL, "drill"); } public static final void registerItems() { @@ -215,10 +220,10 @@ public class RegistryManager { registerItem(QuickieItems.BACKPACK_ORANGE, "backpack_orange"); registerItem(QuickieItems.BACKPACK_PURPLE, "backpack_purple"); registerItem(QuickieItems.BACKPACK_LIGHTBLUE, "backpack_lightblue"); - + ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTONSEED, 0.5f); ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTON, 0.75f); - + FuelRegistry.INSTANCE.add(QuickieItems.SULPHOR, 200); FuelRegistry.INSTANCE.add(QuickieBlocks.BLOCKSULPHOR, 2000); } diff --git a/src/main/resources/assets/quickiefabric/blockstates/drill.json b/src/main/resources/assets/quickiefabric/blockstates/drill.json new file mode 100644 index 0000000..d212418 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/drill.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiefabric:block/drill" + } + } +} diff --git a/src/main/resources/assets/quickiefabric/lang/de_de.json b/src/main/resources/assets/quickiefabric/lang/de_de.json index 0ced1c2..26f64bc 100644 --- a/src/main/resources/assets/quickiefabric/lang/de_de.json +++ b/src/main/resources/assets/quickiefabric/lang/de_de.json @@ -52,6 +52,7 @@ "block.quickiefabric.kelpstack": "Seegrassbündel", "block.quickiefabric.cottonplant": "Baumwollpflanze", "block.quickiefabric.blocksulphor": "Schwefelblock", + "block.quickiefabric.drill": "Bohrer", "container.quickiefabric.backpack": "Rucksack", "msg.buildingplan.start": "beginne Konstruktionsaufnahme bei %s,%s,%s", "msg.buildingplan.end": "beende Konstruktionsaufnahme bei %s,%s,%s", diff --git a/src/main/resources/assets/quickiefabric/lang/en_us.json b/src/main/resources/assets/quickiefabric/lang/en_us.json index cf2b4b5..3b33018 100644 --- a/src/main/resources/assets/quickiefabric/lang/en_us.json +++ b/src/main/resources/assets/quickiefabric/lang/en_us.json @@ -52,6 +52,7 @@ "block.quickiefabric.kelpstack": "kelp bundle", "block.quickiefabric.cottonplant": "cotton plant", "block.quickiefabric.blocksulphor": "block of sulfur", + "block.quickiefabric.drill": "drill", "container.quickiefabric.backpack": "backpack", "msg.buildingplan.start": "started recording of construction at %s,%s,%s", "msg.buildingplan.end": "finished recording of construction at %s,%s,%s", diff --git a/src/main/resources/assets/quickiefabric/models/block/drill.json b/src/main/resources/assets/quickiefabric/models/block/drill.json new file mode 100644 index 0000000..b416443 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/drill.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiefabric:block/drill" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/item/drill.json b/src/main/resources/assets/quickiefabric/models/item/drill.json new file mode 100644 index 0000000..dfb35ea --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/item/drill.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiefabric:block/drill", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/textures/block/drill.png b/src/main/resources/assets/quickiefabric/textures/block/drill.png new file mode 100644 index 0000000..9d7a6f4 Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/drill.png differ diff --git a/src/main/resources/data/quickiefabric/recipes/drill.json b/src/main/resources/data/quickiefabric/recipes/drill.json new file mode 100644 index 0000000..1806bf6 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/drill.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "sss", + "srs", + "sss" + ], + "key": { + "s": { + "item": "quickiefabric:speedpowder" + }, + "r": { + "item": "minecraft:redstone_block" + } + }, + "result": { + "item": "quickiefabric:drill", + "count": 1 + } +} \ No newline at end of file