From 3ae69a775fe949bd4f2ded7b64af2511a0962087 Mon Sep 17 00:00:00 2001 From: jottyfan Date: Sun, 15 Aug 2021 15:12:16 +0200 Subject: [PATCH] added speedpowder hoe --- logs/latest.log | 0 .../tools/ToolSpeedpowderHoe.java | 100 ++++++++++++++++++ .../models/item/speedpowderhoe.json | 6 ++ .../textures/item/speedpowderhoe.png | Bin 0 -> 6016 bytes .../quickiefabric/recipes/speedpowderhoe.json | 20 ++++ 5 files changed, 126 insertions(+) create mode 100644 logs/latest.log create mode 100644 src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderHoe.java create mode 100644 src/main/resources/assets/quickiefabric/models/item/speedpowderhoe.json create mode 100644 src/main/resources/assets/quickiefabric/textures/item/speedpowderhoe.png create mode 100644 src/main/resources/data/quickiefabric/recipes/speedpowderhoe.json diff --git a/logs/latest.log b/logs/latest.log new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderHoe.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderHoe.java new file mode 100644 index 0000000..78f5407 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/tools/ToolSpeedpowderHoe.java @@ -0,0 +1,100 @@ +package de.jottyfan.minecraft.quickiefabric.tools; + +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.google.common.collect.Lists; + +import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.HoeItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.item.ToolMaterials; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3i; +import net.minecraft.util.registry.Registry; + +/** + * + * @author jotty + * + */ +public class ToolSpeedpowderHoe extends HoeItem implements ToolRangeable { + private static final Logger LOGGER = LogManager.getLogger(ToolSpeedpowderHoe.class); + public static final Integer DEFAULT_PLOW_RANGE = 4; + public HarvestRange range; + + public ToolSpeedpowderHoe() { + super(ToolMaterials.DIAMOND, 4, 2.0f, new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP)); + this.range = new HarvestRange(DEFAULT_PLOW_RANGE); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + ActionResult res = super.useOnBlock(context); + if (!ActionResult.PASS.equals(res)) { + for (int x = -this.range.getxRange(); x <= this.range.getxRange(); x++) { + for (int y = -this.range.getyRange(); y <= this.range.getyRange(); y++) { + for (int z = -this.range.getzRange(); z <= this.range.getzRange(); z++) { + BlockHitResult bhr = new BlockHitResult(context.getHitPos(), Direction.UP, + context.getBlockPos().add(new Vec3i(x, y, z)), isDamageable()); + ItemUsageContext ctx = new ItemUsageContext(context.getPlayer(), context.getHand(), bhr); + super.useOnBlock(ctx); + } + } + } + } + return res; + } + + @Override + public HarvestRange getRange(ItemStack stack) { + // TODO: get range from stack + return range; + } + + @Override + public boolean canBreakNeighbors(BlockState blockState) { + boolean result = HOE_EFFECTIVE_ON.contains(blockState.getBlock()) || checkExternalBlock(blockState.getBlock()); + if (!result) { + if (!blockState.isAir()) { + LOGGER.debug("cannot break block {} with that speedpowder hoe", Registry.BLOCK.getId(blockState.getBlock())); + } + } + return result; + } + + private boolean checkExternalBlock(Block block) { + boolean result = false; + for (Identifier externalID : HOE_EXTERNAL_EFFECTIVE_ON) { + Block registeredBlock = Registry.BLOCK.get(externalID); // may be null if mods are not available + result = result || (registeredBlock != null && registeredBlock.equals(block)); + } + return result; + } + + @Override + public List getBlockList(Block block) { + return Lists.newArrayList(block); + } + +// @Override +// public ActionResult onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) { +// CommonToolCode.onItemRightClick(worldIn, playerIn, handIn); +// return super.onItemRightClick(worldIn, playerIn, handIn); +// } +// +// @Override +// public void addInformation(ItemStack stack, World worldIn, List tooltip, ITooltipFlag flagIn) { +// CommonToolCode.addInformation(stack, worldIn, tooltip, flagIn); +// super.addInformation(stack, worldIn, tooltip, flagIn); +// } +} diff --git a/src/main/resources/assets/quickiefabric/models/item/speedpowderhoe.json b/src/main/resources/assets/quickiefabric/models/item/speedpowderhoe.json new file mode 100644 index 0000000..aeb580d --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/item/speedpowderhoe.json @@ -0,0 +1,6 @@ +{ + "parent": "item/wooden_hoe", + "textures": { + "layer0": "quickiefabric:item/speedpowderhoe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/textures/item/speedpowderhoe.png b/src/main/resources/assets/quickiefabric/textures/item/speedpowderhoe.png new file mode 100644 index 0000000000000000000000000000000000000000..87e0627d1d1625b2f73d4c1c240f0ca1a019b02a GIT binary patch literal 6016 zcmeHKdpuNm8=n%D5=ByxG31iwYKED~5Hl`QLrzsw4dq_a zMQyj0vPp?j$*#0TvJ$OA;nf9s&kU8`?QP#apLhRjKA)L$&hz^|-{<*#f6w##%}MZF z=AxlKM;(PiX|P>cUdUBT@tvfG{2KNS11Oa0yeJ=ksTUwaizOl+KMX=kBgGIJlJj{e zl>EVQztCNMrc(!NEF=?5#?7d_YJy9<=fAnKj#@{6%zfc9HmRkAHTKVp!sSR z&eUpF?y4IWkpV_O+*DQReYT+eKs2>`;PTqdHWHZ!fwgH(ecr+28?Il!^b<=p?{#2R zM<%stS?kHphTS=(DQ-LTHlNdYB5;+v-?8?rKNo%D(2mvAw;c^)I? z&+L1cxbns=S0CRluO63XFYzJ}8rc{f_JqgiH>th-6Ey0(R1UR9 zV{FAk!OZN97YU z%frb2mshB4UO2N)JwJNDvAyI?K+!JX59d4JCSrO{b6cm!8BLAtL}q4H!}ghjEwfjO zxg?wJJL8SWMbt#IGQaPCF+DL}?eXN(z~&0W>Z{ZFmG#?m^-R1{M^dl3NpI*#LHBk>q zacf?XebQ(>S&ws=m0)yjU#@c!ZLf(%{ywi?$w_OM*Jdx@eI%WSHPv0XisZEAOxS!_ zSEq8HcYPSG-Rop z<80%Sf@IH*oXX6Sh-c@2jP;yLDvvkTFtF}1w+U_4J>LD`-pafrid|ZIV$|uaek<_W zYwzee*o~;l!Jz?VYNjf=uhXNsDHu^QjL1+SIq%@#k{iww(SaO)*EruJJl8 zlWX;}$3KXVS=IxD2V)D!Tc595dnGdQ_?qQSZPfm4u9h{w8TNJQUj0e8XH(t_{oG^S zYfK;LMeJUsTIWFwIn@!h8eZ3Y9yjGi&W^K%nfZoy`=@1SBrYvb{nPHEV|i&DZ(;Do zy}2$)p?T>poc;6Ky&X-2b%%||=Vc@xv@JgLlh2&Rr{oJYPwtc~A~@O|tZ+URvXq$* z6;2;V%W~;cVfV(}9R63pEQ{F=E?v1tp6>Fk-z!PTxO+_wGN1UExNMOTXM?|~iMWIUEmsbvi1PDHrc z+nF6jTduBkdm$TQ-aeAlucKSnb0A=Q&grbSpt}O2KTn~_p4~w?_VDq2^(oItS__9K zSj$=>!U96H>w5hHJCDfgGMf%I`uF8E=B4&5nbubJ=-9nd{M+fbatynR84(e6;~aBN z-Onia9m>Hy$@A9;4Slo-XD6=iJQgLLlC`qnHmxeqeA|FTF;yDyw)4enUx3_`8$wrA5E(7Y`+#j=(;d*7Ue#KhvgHDzP z3o$JzIVHgkK3A6?^^8+L=o@_Za_g^}Ic(;xmKO73UHw7-WAtL`vySEklQtQmg~DZt zIIouBU5-h5n#lt%yP6(%8KCQ`-6)H$p;nyUCdJ@*uqCH?rbArq_UV1>n{`3ng(kL@ z_ZZR9rAaRrcEcNz=gk+9%FJfe5FVb4zn4&8jXlt7w=Qmv$(Gmq<#pLpX4p%NfZbxxOTy7Iw?w+>lf}_?<6Rw9dDBMg2vy4S@LxEPmaAHuMbt zGK`m&QC^}(Dq!S%)HyMM+*!#OR7tjX!lebw4Q$=#qPoDOQuE!!OBX0pv>yw-%%@3z z`MtkVOY3*lIh2NXcIP^;O>W+xR&-|XC9jEx?Aa&Io_RW5t4R%4v^xFb#DFf;kVgsV zn%r7op`%_lFgwP3+S5|i65oeS=>yal6sc}Sj~bOaVQW%qY1_-L!0$!Fnf(4&D&TBM zPTIWTB$OJD4Jr-`hsVYYharVYnRgh- z!y`#4BaiiQVY_>N@KMMZ#21K_9t!kWB*^`M6NgK}lo*hUhr%EMk_e126Fj~OXG3LSRzEWq7kjFNB}?@L&X-tQb5Rs6jTT~j*swI^Joy)nnJ@;h+G>inLxI} zQaRQD7T_W75J;gC$<#3v9uhv%2|(D`tQ1rrLS@6F(KrwXNd&awV#yGa4Hcwvuv9A! zkqX&>1d5G~l1i}-bO%p114F_QK3Y7(04Yx-5il@rd||l!Del_9Cvs6SOIJmTN0hEs66j*u{ewm zNj??keWCmp+!+7SqWnAev9J+urbrx#G;OfdLni!U_|E`G7~J?=NC=C*l=@i6h%95y z9VF)w8*-i@$0Pp3`8Zk@iq825KcnUL4@N+!zXka!eZR@|O|Gv};H$vjs_UCvU!}lT zfxlJP|4lCSk8jwJ5c#7gL*Ad`9g3GA@7`*hr7kQ~KXNy$O?jz_TqlcNSHdXN6m7+K z94dXk9%7s*WxG2~d@@OM3UT~3*Pckkbb-xs@S#?71GBXVExXBJ;A>58mRYv$(Kf@K z%ZF>I)M5L_&4Y&b3AwTQDpxkp)V2<1Xt@8eRi2*kuI9z=0gu#KDH`b^!8gi~kNDPe z?JI+w9(qFCw>PR37S^_LJM{GQ%m}}5Qd--&o);{xzj#yYr?xAgnQ!`b?V3%yfy$RV zrVg*!0LocQHbx<=-EMxvCyXkGvRZ@V?ngJ5uP)9i~0yx literal 0 HcmV?d00001 diff --git a/src/main/resources/data/quickiefabric/recipes/speedpowderhoe.json b/src/main/resources/data/quickiefabric/recipes/speedpowderhoe.json new file mode 100644 index 0000000..3591136 --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/speedpowderhoe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ss", + " |", + " |" + ], + "key": { + "s": { + "item": "quickiefabric:speedpowder" + }, + "|": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "quickiefabric:speedpowderhoe", + "count": 1 + } +} \ No newline at end of file