From 7a9021790f25f3e7edbe8bc63753e648b495576c Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Fri, 20 Jun 2025 23:17:35 +0200 Subject: [PATCH] added quickiepowder shears --- gradle.properties | 2 +- .../quickiemod/block/BlockMonsterhoarder.java | 2 +- .../quickiemod/identifier/ModIdentifiers.java | 1 + .../de/jottyfan/quickiemod/item/ModItems.java | 3 + .../item/ToolQuickiepowderShears.java | 102 ++++++++++++++++++ .../item/ToolSpeedpowderShears.java | 9 +- .../quickiemod/items/quickiepowdershears.json | 6 ++ .../assets/quickiemod/lang/de_de.json | 1 + .../assets/quickiemod/lang/en_us.json | 1 + .../models/item/quickiepowdershears.json | 6 ++ .../textures/item/quickiepowdershears.png | Bin 0 -> 4768 bytes .../recipe/shaped_quickiepowder_shears.json | 14 +++ 12 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShears.java create mode 100644 src/main/resources/assets/quickiemod/items/quickiepowdershears.json create mode 100644 src/main/resources/assets/quickiemod/models/item/quickiepowdershears.json create mode 100644 src/main/resources/assets/quickiemod/textures/item/quickiepowdershears.png create mode 100644 src/main/resources/data/quickiemod/recipe/shaped_quickiepowder_shears.json diff --git a/gradle.properties b/gradle.properties index 07bdf26..91b5683 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ yarn_mappings=1.21.6+build.1 loader_version=0.16.14 # Mod Properties -mod_version=1.21.6.0 +mod_version=1.21.6.1 maven_group=de.jottyfan.quickiemod archives_base_name=quickiemod diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java index 5e7d4a1..673660c 100644 --- a/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockMonsterhoarder.java @@ -34,7 +34,7 @@ import net.minecraft.world.tick.OrderedTick; */ public class BlockMonsterhoarder extends Block { - private static final IntProperty SUCKRADIUS = IntProperty.of("suckradius", 1, 15); + private static final IntProperty SUCKRADIUS = IntProperty.of("suckradius", 2, 20); public BlockMonsterhoarder(Identifier identifier) { super(AbstractBlock.Settings.create().hardness(2.5f).luminance(state -> state.get(BlockMonsterhoarder.SUCKRADIUS)) diff --git a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java index 6efffe8..bfcc191 100644 --- a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java +++ b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java @@ -39,6 +39,7 @@ public class ModIdentifiers { public static final Identifier TOOL_QUICKIEPOWDERPICKAXE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderpickaxe"); public static final Identifier TOOL_QUICKIEPOWDERSHOVEL = Identifier.of(Quickiemod.MOD_ID, "quickiepowdershovel"); public static final Identifier TOOL_QUICKIEPOWDERWATERHOE = Identifier.of(Quickiemod.MOD_ID, "quickiepowderwaterhoe"); + public static final Identifier TOOL_QUICKIEPOWDERSHEARS = Identifier.of(Quickiemod.MOD_ID, "quickiepowdershears"); public static final Identifier BLOCK_QUICKIEPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockquickiepowder"); public static final Identifier BLOCK_SPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockspeedpowder"); diff --git a/src/main/java/de/jottyfan/quickiemod/item/ModItems.java b/src/main/java/de/jottyfan/quickiemod/item/ModItems.java index 16051c1..3b4285e 100644 --- a/src/main/java/de/jottyfan/quickiemod/item/ModItems.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ModItems.java @@ -75,6 +75,8 @@ public class ModItems { new ToolQuickiepowderShovel(ModIdentifiers.TOOL_QUICKIEPOWDERSHOVEL)); public static final Item TOOL_QUICKIEPOWDERWATERHOE = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERWATERHOE, new ToolQuickiepowderWaterHoe(ModIdentifiers.TOOL_QUICKIEPOWDERWATERHOE)); + public static final Item TOOL_QUICKIEPOWDERSHEARS = registerItem(ModIdentifiers.TOOL_QUICKIEPOWDERSHEARS, + new ToolSpeedpowderShears(ModIdentifiers.TOOL_QUICKIEPOWDERSHEARS)); private static final Item registerItem(Identifier identifier, Item item) { return Registry.register(Registries.ITEM, identifier, item); @@ -112,6 +114,7 @@ public class ModItems { items.add(TOOL_QUICKIEPOWDERSHOVEL); items.add(TOOL_QUICKIEPOWDERHOE); items.add(TOOL_QUICKIEPOWDERWATERHOE); + items.add(TOOL_QUICKIEPOWDERSHEARS); return items; } } diff --git a/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShears.java b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShears.java new file mode 100644 index 0000000..2caf898 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolQuickiepowderShears.java @@ -0,0 +1,102 @@ +package de.jottyfan.quickiemod.item; + +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.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.ActionResult; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Vec3d; + +/** + * + * @author jotty + * + */ +public class ToolQuickiepowderShears extends ShearsItem { + + public ToolQuickiepowderShears(Identifier identifier) { + super(new Item.Settings().component(DataComponentTypes.TOOL, ShearsItem.createToolComponent()).useItemPrefixedTranslationKey().registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier))); + } + + @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(); + horse.setBaby(true); + 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(); + cow.setBaby(true); + 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 chicken = (ChickenEntity) entity; + chicken.playAmbientSound(); + chicken.setBaby(true); + 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/item/ToolSpeedpowderShears.java b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java index 170c56a..8cfd055 100644 --- a/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java +++ b/src/main/java/de/jottyfan/quickiemod/item/ToolSpeedpowderShears.java @@ -36,7 +36,7 @@ public class ToolSpeedpowderShears extends ShearsItem { @Override public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { Vec3d pos = entity.getPos(); - Integer amount = 3 + new Random().nextInt(4); + Integer amount = 1 + new Random().nextInt(4); if (entity instanceof SheepEntity) { SheepEntity sheep = (SheepEntity) entity; if (sheep.isShearable()) { @@ -81,16 +81,19 @@ public class ToolSpeedpowderShears extends ShearsItem { } else if (entity instanceof HorseEntity) { HorseEntity horse = (HorseEntity) entity; horse.playAmbientSound(); + horse.setBaby(true); 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(); + cow.setBaby(true); 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(); + ChickenEntity chicken = (ChickenEntity) entity; + chicken.playAmbientSound(); + chicken.setBaby(true); user.getWorld().spawnEntity(new ItemEntity(user.getWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(Items.FEATHER, amount))); return ActionResult.SUCCESS; } diff --git a/src/main/resources/assets/quickiemod/items/quickiepowdershears.json b/src/main/resources/assets/quickiemod/items/quickiepowdershears.json new file mode 100644 index 0000000..461e59c --- /dev/null +++ b/src/main/resources/assets/quickiemod/items/quickiepowdershears.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickiemod:item/quickiepowdershears" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json index e211fb9..e33a19a 100644 --- a/src/main/resources/assets/quickiemod/lang/de_de.json +++ b/src/main/resources/assets/quickiemod/lang/de_de.json @@ -13,6 +13,7 @@ "item.quickiemod.quickiepowdershovel": "Eilpulverschaufel", "item.quickiemod.quickiepowderhoe": "Eilpulverfeldhacke", "item.quickiemod.quickiepowderwaterhoe": "bewässerte Eilpulverfeldhacke", + "item.quickiemod.quickiepowdershears": "Eilpulverschere", "item.quickiemod.sulphor": "Schwefel", "item.quickiemod.salpeter": "Salpeter", "item.quickiemod.construction0": "leerer Bauplan", diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json index a5b3ef0..ea8d350 100644 --- a/src/main/resources/assets/quickiemod/lang/en_us.json +++ b/src/main/resources/assets/quickiemod/lang/en_us.json @@ -13,6 +13,7 @@ "item.quickiemod.quickiepowdershovel": "hurrypowder shovel", "item.quickiemod.quickiepowderhoe": "hurrypowder hoe", "item.quickiemod.quickiepowderwaterhoe": "watered hurrypowder hoe", + "item.quickiemod.quickiepowdershears": "hurrypowder shears", "item.quickiemod.sulphor": "sulfur", "item.quickiemod.salpeter": "salpeter", "item.quickiemod.construction0": "empty building plan", diff --git a/src/main/resources/assets/quickiemod/models/item/quickiepowdershears.json b/src/main/resources/assets/quickiemod/models/item/quickiepowdershears.json new file mode 100644 index 0000000..6a3dfea --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/quickiepowdershears.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiemod:item/quickiepowdershears" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/textures/item/quickiepowdershears.png b/src/main/resources/assets/quickiemod/textures/item/quickiepowdershears.png new file mode 100644 index 0000000000000000000000000000000000000000..d53204087d7f184fe87bcc97c7d69f1b75c9511c GIT binary patch literal 4768 zcmeHLYj6|S6<+bML4M#2Hnc!H%i0;R$!Z_kU1`^r0b2$sSVqVyg@hQdcCX}(t%s$x zC3^z6U>HK6C27(Cr4(A1c8Ft|OjBG)c{nbZNgz%FfjCW}h9RUaxO6;W2yN+I$ja}y-E#0)rJs2K}_)?NUX>2d@}tlH1+&6jF#_Slb|`u@W54)>vw4s#iq zAr$t_v@}klUf;FsP%hPR=wkOG{ST_<=|6sU-`{hdD?3rt)N;A5<OPI1x*zP|!q3iaNi#wR@8`~GpzS8Snc6_~@$Fj+Uf_04YVMx>UU!ym+xgv<=z|-~rsF+eb;^fl&b^5sx-Cj^ zvD02$JeUv6V(+@=Ew;B7ePhd&gHM;_rPpWFb~z`XGUQ?H7xFR>6#Xjei8}Ik{Y$If z-`Ub`*0)Vg-Z0~pbi?_hLc4zB)oELgU2VCEJ-Yto%qKcyXKJVQt?PUHlW3EZFrNF% z)`@!pKmJTEdgsQ<&h7JPk;9Igm<^^+TA~=wt3ZKzkTif z)2;H;oj>ec@tqHH*LF3whX2&t`qC?{4a@)C5vo{Q(JQ<|^XOi0be{{l?d~l)t@EgCm`AGMXv^8svFko8yA9YFlQa^g}sa)H#`I$|3 zjb9v`)4d_3zqN5)^}cKUx-REom+9oGxumP*Z|qN_(Ia17jfZl9*CYV}*LOAS`Z81@kq&+`OH6EuxO z3p~;gP{kM?h-7OJ2@ETUNMR+UD!~A%VTzt$ooc}_s7D9m^M@RcA^1RKfCb105feiM zWgrQ^pBU*8QA_F}$Us0}=@D_mK_y%u608eLprjrI)a;QEvNYr$steb|(~%_t)Bry; zjlf;0QClvxJDfuv8U;SZABuZHvPW5}ig%c-QL$;7cse5kf$l@NqpSyWj~hcPheNOi zr8+G|T>KLW}gh^S&f z0vZ$qHz*K?r$mmF%q;F@XcA|DWX8=jFyaiyFhDdKDca~60kJ%+z^)W)Mn>oQhxc0U{Le#T6Ri!eXc0 zg3$(YSmLY^RWEd~V5Lf+E;g)iD}GR}iW-}gi6t4DNd`9q2H+mi2t1tG zt~@JaoMel-BT_}l_&KV^7SW~a%+D6t^;dUICV2@L0=z2U9hI)^_)u8eg65P zou$~s>gSQIV%PqbDKChGi%yzKX8w9s%0|c3%I|fjK9+v@7C?}LWQx-G>dAhHj@V1e KtZhY=8~+1Nmx43^ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/quickiemod/recipe/shaped_quickiepowder_shears.json b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowder_shears.json new file mode 100644 index 0000000..154f7db --- /dev/null +++ b/src/main/resources/data/quickiemod/recipe/shaped_quickiepowder_shears.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "tools", + "pattern": [ + " #", + "# " + ], + "key": { + "#": "quickiemod:quickieingot" + }, + "result": { + "id": "quickiemod:quickiepowdershears" + } +} \ No newline at end of file