From cc17c5b0c5fd84ae9547d66f8f837eafcfc83f9d Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Thu, 13 Jun 2024 20:33:20 +0200 Subject: [PATCH] added speed powder shears --- .../items/ItemSpeedpowdershears.java | 96 ++++++++++++++++++ .../quickiemod/items/QuickieItems.java | 1 + .../assets/quickiemod/lang/de_de.json | 1 + .../assets/quickiemod/lang/en_us.json | 1 + .../models/item/speedpowdershears.json | 6 ++ .../textures/item/speedpowdershears.png | Bin 0 -> 4313 bytes .../tags/items/enchantable/durability.json | 5 + .../tags/items/enchantable/mining.json | 5 + .../recipes/tools/salpeterblock.json | 21 ++++ .../recipes/shaped_speedpowder_shears.json | 16 +++ 10 files changed, 152 insertions(+) create mode 100644 src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java create mode 100644 src/main/resources/assets/quickiemod/models/item/speedpowdershears.json create mode 100644 src/main/resources/assets/quickiemod/textures/item/speedpowdershears.png create mode 100644 src/main/resources/data/minecraft/tags/items/enchantable/durability.json create mode 100644 src/main/resources/data/minecraft/tags/items/enchantable/mining.json create mode 100644 src/main/resources/data/quickiemod/advancements/recipes/tools/salpeterblock.json create mode 100644 src/main/resources/data/quickiemod/recipes/shaped_speedpowder_shears.json diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java b/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java new file mode 100644 index 0000000..b586307 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/items/ItemSpeedpowdershears.java @@ -0,0 +1,96 @@ +package de.jottyfan.quickiemod.items; + +import java.util.Random; + +import net.minecraft.component.DataComponentTypes; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.passive.ChickenEntity; +import net.minecraft.entity.passive.CowEntity; +import net.minecraft.entity.passive.HorseEntity; +import net.minecraft.entity.passive.SheepEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.item.ShearsItem; +import net.minecraft.util.ActionResult; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Hand; +import net.minecraft.util.math.Vec3d; + +/** + * + * @author jotty + * + */ +public class ItemSpeedpowdershears extends ShearsItem { + + public ItemSpeedpowdershears() { + super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent())); + } + + @Override + public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { + Vec3d pos = entity.getPos(); + Integer amount = 3 + new Random().nextInt(4); + if (entity instanceof SheepEntity) { + SheepEntity sheep = (SheepEntity) entity; + if (sheep.isShearable()) { + sheep.setSheared(true); + sheep.playAmbientSound(); + DyeColor color = sheep.getColor(); + Item item = Items.WHITE_WOOL; + if (color.equals(DyeColor.BLACK)) { + item = Items.BLACK_WOOL; + } else if (color.equals(DyeColor.GRAY)) { + item = Items.GRAY_WOOL; + } else if (color.equals(DyeColor.LIGHT_GRAY)) { + item = Items.LIGHT_GRAY_WOOL; + } else if (color.equals(DyeColor.BROWN)) { + item = Items.BROWN_WOOL; + } else if (color.equals(DyeColor.BLUE)) { + item = Items.BLUE_WOOL; + } else if (color.equals(DyeColor.LIGHT_BLUE)) { + item = Items.LIGHT_BLUE_WOOL; + } else if (color.equals(DyeColor.GREEN)) { + item = Items.GREEN_WOOL; + } else if (color.equals(DyeColor.LIME)) { + item = Items.LIME_WOOL; + } else if (color.equals(DyeColor.CYAN)) { + item = Items.CYAN_WOOL; + } else if (color.equals(DyeColor.MAGENTA)) { + item = Items.MAGENTA_WOOL; + } else if (color.equals(DyeColor.ORANGE)) { + item = Items.ORANGE_WOOL; + } else if (color.equals(DyeColor.PINK)) { + item = Items.PINK_WOOL; + } else if (color.equals(DyeColor.PURPLE)) { + item = Items.PURPLE_WOOL; + } else if (color.equals(DyeColor.RED)) { + item = Items.RED_WOOL; + } else if (color.equals(DyeColor.YELLOW)) { + item = Items.YELLOW_WOOL; + } + user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(item, amount))); + return ActionResult.SUCCESS; + } + } else if (entity instanceof HorseEntity) { + HorseEntity horse = (HorseEntity) entity; + horse.playAmbientSound(); + user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount))); + return ActionResult.SUCCESS; + } else if (entity instanceof CowEntity) { + CowEntity cow = (CowEntity) entity; + cow.playAmbientSound(); + user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.LEATHER, amount))); + return ActionResult.SUCCESS; + } else if (entity instanceof ChickenEntity) { + ChickenEntity cow = (ChickenEntity) entity; + cow.playAmbientSound(); + user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.FEATHER, amount))); + return ActionResult.SUCCESS; + } + return ActionResult.PASS; + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java index 8fc2a0e..2106a80 100644 --- a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java +++ b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java @@ -9,6 +9,7 @@ import net.minecraft.item.Item; */ public enum QuickieItems { // @formatter:off + SPEEDPOWDERSHEARS(new ItemSpeedpowdershears(), "speedpowdershears"), ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"), CARROTSTACK(new ItemCarrotstack(), "carrotstack"), COTTON(new ItemCotton(), "cotton"), diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json index 1976c10..92ec985 100644 --- a/src/main/resources/assets/quickiemod/lang/de_de.json +++ b/src/main/resources/assets/quickiemod/lang/de_de.json @@ -5,6 +5,7 @@ "item.quickiemod.speedpowdershovel": "Fluchtpulverschaufel", "item.quickiemod.speedpowderhoe": "Fluchtpulverfeldhacke", "item.quickiemod.speedpowderwaterhoe": "bewässerte Fluchtpulverfeldhacke", + "item.quickiemod.speedpowdershears": "Fluchtpulverschere", "item.quickiemod.speedpowder": "Fluchtpulver", "item.quickiemod.quickiepowder": "Eilpulver", "item.quickiemod.quickiepowderaxe": "Eilpulveraxt", diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json index 183098b..f3cca6f 100644 --- a/src/main/resources/assets/quickiemod/lang/en_us.json +++ b/src/main/resources/assets/quickiemod/lang/en_us.json @@ -5,6 +5,7 @@ "item.quickiemod.speedpowdershovel": "speedpowder shovel", "item.quickiemod.speedpowderhoe": "speedpowder hoe", "item.quickiemod.speedpowderwaterhoe": "watered speedpowder hoe", + "item.quickiemod.speedpowdershears": "speedpowder shears", "item.quickiemod.speedpowder": "speedpowder", "item.quickiemod.quickiepowder": "hurrypowder", "item.quickiemod.quickiepowderaxe": "hurrypowder axe", diff --git a/src/main/resources/assets/quickiemod/models/item/speedpowdershears.json b/src/main/resources/assets/quickiemod/models/item/speedpowdershears.json new file mode 100644 index 0000000..41c3f15 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/speedpowdershears.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiemod:item/speedpowdershears" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/textures/item/speedpowdershears.png b/src/main/resources/assets/quickiemod/textures/item/speedpowdershears.png new file mode 100644 index 0000000000000000000000000000000000000000..23b594a072955751cea5353d800ca01a6b5419de GIT binary patch literal 4313 zcmeHKYj6|S60azC2x_mvb3^< zXPROcC`>v~LTE?~g$7EKHkc5ScnTr0Nmbmb0Z(YblY!8hjtLD3A=8)?W}tUhelf{R z$1}}8Yi6ar=YHqA=X~efJG$GvRTWd!kE#&_nd+`|R>R+E@{>6Uet&wUUpAzgeRWbb zlRzU;(Jur6Ds6}W6eI;df+Rl-d7sXIAI-aWeO9r-&;e>AxIvCf{t8(+RXr#RzoN6WLHynXnl>V@LY-d*$C-YCiv)SELtf2REE^OLg0 zmUpS69T%5YeRpGCeD?`eetyd_3>>}p&dHAB9X~n$=G}X$tw*9qXV>2U0ybV!fDKmX zSwVARNXzgd3$)2l1a=;R*p?+D47VOgC<_8Y*pA&g`5uM}yd7Ijc}P#B3^WLp%~4R( zT;=1M*K<}LTeehfOVW@a1SAGchJxW3owQ>LFAd*iGl8KBL|Sjh>O5YwOpF55s5NRy z+?5oX^w?50YK!uIy4qPjL;**3tU;0@G(jX132nll6{7({XSG@hQcvjhI7HyF4Pl8% z;^Ei=nIg^M1TiiuL?l5BqcSJMigC$~VQ?NDjxQAPct+^Mu^|Ff5IQYMghIqv zkC^0Yf+Rx$eWORr2lpva4Ps(E$^lms2ulmbQt;e}ex>*rnT!@ILs`dAxx+Du33EWEg5+8O z@>q;!6Uzb;H(5vyH=6Y+Ym|jbc zTD(C<@#ZBY0+8q7CmJ(kAiAJGzL3S=G2i|gHf50 z%R<9spsJ!DF9g{;sWzUgm58O^XBQZ`!0+5u{8)?!+>kK}f zl{T7a%2Gt?X>tr+0&{y^c2^?gaZJc9z*RqY!|+v6)0FBz1hIyCcPeZ6Kn(A0*nA>83SNV7M5kL z>8wWBW1?S5Fi}t%fI330V0$WBp^KD4J*j9mf=)C5xe8D)oHXHI7mOH6n2^tm;f!s> z*EF#yfH8**^h?{|;RVk^V&pI!(hNrMZGMJo@og@Fq7#dZOWz5(Cgd8I0^x-W@VOWSp%G*qf^3_ty) zgvQB|+vA%2arV^dTDmQJ@+Z(#?RJ*>axQV}I@NzIR(Bd}%8QHl{QCPVy{b7mV&E2{ z^QF{_KkUj=4Gubgu>zg+^iE_e(|zDj&T|Y=t