From c70270758fd4624351f780dda09dc67b96509bfa Mon Sep 17 00:00:00 2001 From: jottyfan Date: Wed, 6 Jan 2021 22:13:08 +0100 Subject: [PATCH] added drill --- .../blockentity/DrillBlockEntity.java | 37 +++++++++++++++++ .../blockentity/QuickieFabricBlockEntity.java | 1 + .../quickiefabric/blocks/BlockDrill.java | 39 ++++++++++++++++++ .../quickiefabric/blocks/QuickieBlocks.java | 1 + .../quickiefabric/init/RegistryManager.java | 9 +++- .../quickiefabric/blockstates/drill.json | 7 ++++ .../assets/quickiefabric/lang/de_de.json | 1 + .../assets/quickiefabric/lang/en_us.json | 1 + .../quickiefabric/models/block/drill.json | 6 +++ .../quickiefabric/models/item/drill.json | 10 +++++ .../quickiefabric/textures/block/drill.png | Bin 0 -> 1582 bytes .../data/quickiefabric/recipes/drill.json | 20 +++++++++ 12 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blockentity/DrillBlockEntity.java create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockDrill.java create mode 100644 src/main/resources/assets/quickiefabric/blockstates/drill.json create mode 100644 src/main/resources/assets/quickiefabric/models/block/drill.json create mode 100644 src/main/resources/assets/quickiefabric/models/item/drill.json create mode 100644 src/main/resources/assets/quickiefabric/textures/block/drill.png create mode 100644 src/main/resources/data/quickiefabric/recipes/drill.json 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 0000000000000000000000000000000000000000..9d7a6f47b28a159683cfeaaf8041676b3f60730d GIT binary patch literal 1582 zcmV+}2GRM6P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+Pzm>mg6W4{bv=k1SA21NuFUA1aq%b;-f}w6CY^cN-MMov(WT-x`1#o> zz-S&qVZ&WWEben6%e+W3+Iyj$-HJDZPO9-%NcoB`npqa!E( zF?I`~C)Tc&A6`(iYVVIb?8azujK00gE&!=uj#HN_tA~LFP|BJXa4Ig3zOFOjjBv36 z^aeHy&T1$T1MNYM8f6;PS6ivVM8};KEpr9pQx-)zab0A%dD38&B+Y;emI~GcV!qiz zYu&Wgs}!+vBaCE%GQx~^r};?u%6U^X#tdB|8*f;_E}j7hGbVHMj!__l#=+DteAj92 z;>O+)D`3zsm?Ip_wrmx}(_3uG;#n}xTW9PJchYtg03xjIVGIcvuz|!=Agjzu1RNvy z$*`QoaRCG5JvTA~+z2v3Ir3Z^bClLt_PoU?Ei*MFh=Q6V8Du%<5kKl8Vkmp@&Uo*G zS08=yIY@B9hY&Q(8kJSlsn?*YQIqB<(M2Ca)EHxmIdKw{FrPwFlVVCKXDphbI%9Um zh@1--DX#buik4VX$ra&KUG+6ot+A$>8#if4{}!5>7F%k$Q%5Lu*L@FNd+e#_fmj$|wA6cU(=Duc)4r`M!x5nukYY?kmDrlAyKRE+q>uplQSF1 zIiAc-&TL{Ng=ervev;E@G6n`+C-#GG+`TdPC2z*NAMwVYF=r-qe}g$QsXNTQ=j{X5 zT3$PfEP`ehPE4%~6t=-GbHoqz`1RKOse&IVqA;6W<8Zd8ydJPuv8?x~erOCXYrC!) zx!LYtG|T+VoZOE&sm5*DNL5BiY&OuP$2zKy-EY$hM(*DHD)>%ozB>^9x80i?$uXB^ zAd&Ng6bW6n?KZGqvYfic)kPY9yEWe%NGij_vT^3;@IKdq^hxpF!G>W6zj(!IhLHL;= z!oOpHFV|x1AzVJtwr|#&H)pyFpQduJyC9gEf|r%);-LOc^{H;w1>IAkDUTK+d==rF zplYu)GRdGO*&db>)qb*@YQ9J$b9J6t-iRgYky_XfU^mulS-F6P?I+d|a5IvC z5w>yuc}09`huKcEl-d&?JUZ~;Pw;pbN2ltTKiJAX-)Zs3Zd)NTKVY7h?q8K<^B0Wy zP|VS!^~fn;QYWMqP6WrJsDglTDpY;1>ZZHI1dhi`B6 z2I=4c0004EOGiWihy@);00009a7bBm000XU000XU0RWnu7ytkO2XskIMF-^p1{4x4 zv{G^R0001KNklGM3owBN%Joy(fhv%JN=v|v zDT4t{Kn7(G*WoV^HK2o)dlQ?$?G{F;689JxJu(L--yRgbZnAD$rru0x_M9y&;qhHN g%Y4`+oWDJK0M>m4W9k#nLjV8(07*qoM6N<$f}ZBekpKVy literal 0 HcmV?d00001 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