From 69ec2bea0b08fc7404483406e538ce65d882b889 Mon Sep 17 00:00:00 2001 From: Vos Date: Tue, 11 Nov 2025 00:04:27 -0600 Subject: [PATCH] kaupen bow and ashes --- .../acesbs/models/item/infernal_ashes.json | 6 +++ .../acesbs/datagen/ModModelProvider.java | 1 + .../acesbs/item/ModItemGroups.java | 5 +- .../acethewildfire/acesbs/item/ModItems.java | 26 ++++++++- .../acesbs/item/custom/Wand.java | 4 +- .../AbstractClientPlayerEntityMixin.java | 39 ++++++++++++++ .../acesbs/util/ModModelPredicates.java | 17 ++++++ src/main/resources/acesbs.mixins.json | 21 ++++---- .../resources/assets/acesbs/lang/en_us.json | 18 ++++--- .../assets/acesbs/models/item/kaupen_bow.json | 50 ++++++++++++++++++ .../models/item/kaupen_bow_pulling_0.json | 6 +++ .../models/item/kaupen_bow_pulling_1.json | 6 +++ .../models/item/kaupen_bow_pulling_2.json | 6 +++ .../acesbs/textures/item/infernal_ashes.png | Bin 0 -> 4633 bytes .../acesbs/textures/item/kaupen_bow.png | Bin 0 -> 379 bytes .../textures/item/kaupen_bow_pulling_0.png | Bin 0 -> 1720 bytes .../textures/item/kaupen_bow_pulling_1.png | Bin 0 -> 1707 bytes .../textures/item/kaupen_bow_pulling_2.png | Bin 0 -> 1691 bytes 18 files changed, 184 insertions(+), 21 deletions(-) create mode 100644 src/main/generated/assets/acesbs/models/item/infernal_ashes.json create mode 100644 src/main/java/com/acethewildfire/acesbs/mixin/AbstractClientPlayerEntityMixin.java create mode 100644 src/main/resources/assets/acesbs/models/item/kaupen_bow.json create mode 100644 src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_0.json create mode 100644 src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_1.json create mode 100644 src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_2.json create mode 100644 src/main/resources/assets/acesbs/textures/item/infernal_ashes.png create mode 100644 src/main/resources/assets/acesbs/textures/item/kaupen_bow.png create mode 100644 src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_0.png create mode 100644 src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_1.png create mode 100644 src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_2.png diff --git a/src/main/generated/assets/acesbs/models/item/infernal_ashes.json b/src/main/generated/assets/acesbs/models/item/infernal_ashes.json new file mode 100644 index 0000000..ac59bd9 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/infernal_ashes.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/infernal_ashes" + } +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index b64416c..7ffc59a 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -53,6 +53,7 @@ public class ModModelProvider extends FabricModelProvider { itemModelGenerator.register(ModItems.ORACLE_LEMON, Models.GENERATED); itemModelGenerator.register(ModItems.GREEN_BRICKS, Models.GENERATED); itemModelGenerator.register(ModItems.STABLE_ENTROPY, Models.GENERATED); + itemModelGenerator.register(ModItems.INFERNAL_ASHES, Models.GENERATED); // itemModelGenerator.register(ModItems.WAND, Models.HANDHELD_ROD); itemModelGenerator.register(ModItems.PRISMA_STEEL, Models.GENERATED); itemModelGenerator.register(ModItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index ac42003..0d80a34 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -22,8 +22,8 @@ public class ModItemGroups { entries.add(ModItems.ORACLE_LEMON); entries.add(ModItems.RAW_ENTROPY); entries.add(ModItems.STABLE_ENTROPY); + entries.add(ModItems.INFERNAL_ASHES); entries.add(ModItems.GREEN_BRICKS); - entries.add(ModItems.WAND); entries.add(ModItems.PRISMA_STEEL); entries.add(ModItems.PRISMA_SMITHING_TEMPLATE); }) @@ -69,6 +69,7 @@ public class ModItemGroups { entries.add(ModItems.PRISMA_STEEL_CHESTPLATE); entries.add(ModItems.PRISMA_STEEL_LEGGINGS); entries.add(ModItems.PRISMA_STEEL_BOOTS); + entries.add(ModItems.KAUPEN_BOW); }) @@ -80,7 +81,7 @@ public class ModItemGroups { .icon(() -> new ItemStack(ModItems.PRISMA_STEEL_PICKAXE)) .displayName(Text.translatable("itemgroup.acesbs.tools")) .entries((displayContext, entries) -> { - entries.add(ModItems.PRISMA_STEEL); + entries.add(ModItems.WAND); entries.add(ModItems.PRISMA_STEEL_SHOVEL); entries.add(ModItems.PRISMA_STEEL_PICKAXE); entries.add(ModItems.PRISMA_STEEL_HAMMER); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java index 538c947..79a5cc5 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java @@ -29,13 +29,14 @@ public class ModItems { public static final Item WAND = registerItem("wand", new Wand(new Item.Settings().maxDamage(32))); public static final Item RAW_ENTROPY = registerItem("raw_entropy", new Item(new Item.Settings())); public static final Item STABLE_ENTROPY = registerItem("stable_entropy", new Item(new Item.Settings())); + public static final Item INFERNAL_ASHES = registerItem("infernal_ashes", new Item(new Item.Settings())); public static final Item LEMON = registerItem("lemon", new Item(new Item.Settings().food(ModFoodComponent.LEMON))); public static final Item COOKED_LEMON = registerItem("cooked_lemon", new Item(new Item.Settings().food(ModFoodComponent.COOKED_LEMON))); public static final Item GREEN_BRICKS = registerItem("green_bricks", new Item(new Item.Settings()) { @Override public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { - if(Screen.hasShiftDown()){ - tooltip.add(Text.translatable("tooltip.acesbs.green_bricks.shift_down")); + if(!Screen.hasShiftDown()){ + tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_up")); } else { tooltip.add(Text.translatable("tooltip.acesbs.green_bricks")); @@ -91,6 +92,27 @@ public class ModItems { public static final Item PRISMA_SMITHING_TEMPLATE = registerItem("prisma_armor_trim_smithing_template", SmithingTemplateItem.of(Identifier.of(AcesBS.MOD_ID, "prisma"), FeatureFlags.VANILLA)); + public static final Item KAUPEN_BOW = registerItem("kaupen_bow", + new BowItem(new Item.Settings().maxDamage(500)) { + @Override + public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { + + if(!Screen.hasShiftDown()){ + tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_up")); + } + else { + tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow")); + tooltip.add(Text.translatable("tooltip.acesbs.kaupen_bow_2")); + } + + + + super.appendTooltip(stack, context, tooltip, type); + } + }); + + + private static Item registerItem(String name, Item item){ return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item); } diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/Wand.java b/src/main/java/com/acethewildfire/acesbs/item/custom/Wand.java index a70932b..6ce8c78 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/custom/Wand.java +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/Wand.java @@ -57,8 +57,8 @@ public class Wand extends Item { @Override public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { - if(Screen.hasShiftDown()) { - tooltip.add(Text.translatable("tooltip.acesbs.wand.shift_down")); + if(!Screen.hasShiftDown()){ + tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_up")); } else { tooltip.add(Text.translatable("tooltip.acesbs.wand")); } diff --git a/src/main/java/com/acethewildfire/acesbs/mixin/AbstractClientPlayerEntityMixin.java b/src/main/java/com/acethewildfire/acesbs/mixin/AbstractClientPlayerEntityMixin.java new file mode 100644 index 0000000..53955d3 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/mixin/AbstractClientPlayerEntityMixin.java @@ -0,0 +1,39 @@ +package com.acethewildfire.acesbs.mixin; + +import com.acethewildfire.acesbs.item.ModItems; +import com.mojang.authlib.GameProfile; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +// With help from https://github.com/Globox1997/MedievalWeapons/blob/1.21/src/main/java/net/medievalweapons/mixin/client/AbstractClientPlayerEntityMixin.java +// Under MIT License! +@Mixin(AbstractClientPlayerEntity.class) +public abstract class AbstractClientPlayerEntityMixin extends PlayerEntity { + public AbstractClientPlayerEntityMixin(World world, BlockPos pos, float yaw, GameProfile gameProfile) { + super(world, pos, yaw, gameProfile); + } + + @Inject(method = "getFovMultiplier", at = @At(value = "TAIL"), locals = LocalCapture.CAPTURE_FAILSOFT, cancellable = true) + private void getFovMultiplierMixin(CallbackInfoReturnable info, float f) { + Item item = this.getActiveItem().getItem(); + ItemStack itemStack = this.getActiveItem(); + if (this.isUsingItem() && itemStack.isOf(ModItems.KAUPEN_BOW)) { + int i = this.getItemUseTime(); + float g = (float)i / 20.0f; + g = g > 1.0f ? 1.0f : g * g; + f *= 1.0f - g * 0.15f; + info.setReturnValue(MathHelper.lerp(MinecraftClient.getInstance().options.getFovEffectScale().getValue().floatValue(), 1.0f, f)); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/util/ModModelPredicates.java b/src/main/java/com/acethewildfire/acesbs/util/ModModelPredicates.java index 804b5c6..f54d5c6 100644 --- a/src/main/java/com/acethewildfire/acesbs/util/ModModelPredicates.java +++ b/src/main/java/com/acethewildfire/acesbs/util/ModModelPredicates.java @@ -4,6 +4,8 @@ import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.component.ModDataComponentTypes; import com.acethewildfire.acesbs.item.ModItems; import net.minecraft.client.item.ModelPredicateProviderRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.Items; import net.minecraft.util.Identifier; public class ModModelPredicates { @@ -12,6 +14,21 @@ public class ModModelPredicates { ModelPredicateProviderRegistry.register(ModItems.WAND, Identifier.of(AcesBS.MOD_ID, "used"), (stack, world, entity, seed) -> stack.get(ModDataComponentTypes.COORDINATES) != null ? 1f : 0f); + registerCustomBow(ModItems.KAUPEN_BOW); + } + private static void registerCustomBow(Item item){ + ModelPredicateProviderRegistry.register(item, Identifier.ofVanilla("pull"), (stack, world, entity, seed) -> { + if (entity == null) { + return 0.0F; + } else { + return entity.getActiveItem() != stack ? 0.0F : (stack.getMaxUseTime(entity) - entity.getItemUseTimeLeft()) / 20.0F; + } + }); + ModelPredicateProviderRegistry.register( + item, + Identifier.ofVanilla("pulling"), + (stack, world, entity, seed) -> entity != null && entity.isUsingItem() && entity.getActiveItem() == stack ? 1.0F : 0.0F + ); } } diff --git a/src/main/resources/acesbs.mixins.json b/src/main/resources/acesbs.mixins.json index 25d66bc..728356e 100644 --- a/src/main/resources/acesbs.mixins.json +++ b/src/main/resources/acesbs.mixins.json @@ -1,11 +1,14 @@ { - "required": true, - "package": "com.acethewildfire.acesbs.mixin", - "compatibilityLevel": "JAVA_21", - "mixins": [ - "ExampleMixin" - ], - "injectors": { - "defaultRequire": 1 - } + "required": true, + "package": "com.acethewildfire.acesbs.mixin", + "compatibilityLevel": "JAVA_21", + "mixins": [ + "ExampleMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "client": [ + "AbstractClientPlayerEntityMixin" + ] } \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index fc6c4ba..0017205 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -2,6 +2,7 @@ "item.acesbs.oracle_lemon.effect.blindness": "Oracle of Lemon", "item.acesbs.raw_entropy": "Raw Entropy", "item.acesbs.stable_entropy": "Stabilized Entropy", + "item.acesbs.infernal_ashes": "Infernal Ashes", "item.acesbs.lemon": "Odd Lemon", "item.acesbs.cooked_lemon": "Cooked Odd Lemon", "item.acesbs.green_bricks": "Green Bricks", @@ -26,6 +27,11 @@ "item.acesbs.prisma_steel_boots": "Prisma Steel Boots", "item.acesbs.prisma_armor_trim_smithing_template": "Prisma Smithing Template", + "item.acesbs.kaupen_bow": "Kaupen Bow", + + "trim_material.acesbs.prisma_steel": "Prisma Steel Material", + "trim_pattern.acesbs.prisma": "Prisma Armor Pattern", + "block.acesbs.entropy_block": "Block of Raw Entropy", "block.acesbs.prisma_steel_block": "Block of Prisma Steel", "block.acesbs.entropy_ore": "Entropic Ore", @@ -51,14 +57,14 @@ "itemgroup.acesbs.combat": "Ace's BS Combat", "itemgroup.acesbs.tools": "Ace's BS Tools", + "tooltip.acesbs.generic.shift_up": "Hold §eShift§r for item description.", + "tooltip.acesbs.entropy_block.tooltip": "Exerts an §o§4uncertain force§r when stepped on.", "tooltip.acesbs.stable_entropy_block.tooltip": "Exerts an §o§2upward force§r of 4.5 blocks when stepped on.", - "tooltip.acesbs.green_bricks.shift_down": "§o§7Useless Item§r", - "tooltip.acesbs.green_bricks": "Hold §eShift§r for item description.", + "tooltip.acesbs.green_bricks": "§o§7Useless Item§r", "tooltip.acesbs.entropy_block.tooltip2": "Has a 1/20 chance of turning an apple into a lemon.", - "tooltip.acesbs.wand.shift_down": "Changes blocks using Entropy", - "tooltip.acesbs.wand": "Hold §eShift§r for item description.", + "tooltip.acesbs.wand": "Changes blocks using Entropy", - "trim_material.acesbs.prisma_steel": "Prisma Steel Material", - "trim_pattern.acesbs.prisma": "Prisma Armor Pattern" + "tooltip.acesbs.kaupen_bow": "§7§oThanks to §1Modding by Kaupenjoe§r", + "tooltip.acesbs.kaupen_bow_2": "§7§oYou made minecraft modding easy.§r" } \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/models/item/kaupen_bow.json b/src/main/resources/assets/acesbs/models/item/kaupen_bow.json new file mode 100644 index 0000000..b6c18d9 --- /dev/null +++ b/src/main/resources/assets/acesbs/models/item/kaupen_bow.json @@ -0,0 +1,50 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "acesbs:item/kaupen_bow" + }, + "display": { + "thirdperson_righthand": { + "rotation": [ -80, 260, -40 ], + "translation": [ -1, -2, 2.5 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "thirdperson_lefthand": { + "rotation": [ -80, -280, 40 ], + "translation": [ -1, -2, 2.5 ], + "scale": [ 0.9, 0.9, 0.9 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 25 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -25 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 0.68, 0.68, 0.68 ] + } + }, + "overrides": [ + { + "predicate": { + "pulling": 1 + }, + "model": "acesbs:item/kaupen_bow_pulling_0" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.65 + }, + "model": "acesbs:item/kaupen_bow_pulling_1" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.9 + }, + "model": "acesbs:item/kaupen_bow_pulling_2" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_0.json b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_0.json new file mode 100644 index 0000000..5d5802d --- /dev/null +++ b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_0.json @@ -0,0 +1,6 @@ +{ + "parent": "acesbs:item/kaupen_bow", + "textures": { + "layer0": "acesbs:item/kaupen_bow_pulling_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_1.json b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_1.json new file mode 100644 index 0000000..dd5e6cc --- /dev/null +++ b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_1.json @@ -0,0 +1,6 @@ +{ + "parent": "acesbs:item/kaupen_bow", + "textures": { + "layer0": "acesbs:item/kaupen_bow_pulling_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_2.json b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_2.json new file mode 100644 index 0000000..93c1613 --- /dev/null +++ b/src/main/resources/assets/acesbs/models/item/kaupen_bow_pulling_2.json @@ -0,0 +1,6 @@ +{ + "parent": "acesbs:item/kaupen_bow", + "textures": { + "layer0": "acesbs:item/kaupen_bow_pulling_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/acesbs/textures/item/infernal_ashes.png b/src/main/resources/assets/acesbs/textures/item/infernal_ashes.png new file mode 100644 index 0000000000000000000000000000000000000000..721b66d3e072ab57eafea9581e4ed61d12d42ca6 GIT binary patch literal 4633 zcmeHKdsGu=77s;16S0=6i0B$aE7m&6&!UA>90|MuV-U6XjDi7Y(#lFdUyvlII5D&A{QOJO$#Kchq=4Z4c{{g9-hQ-J z6x^0ys|&tyC9hq}@5~$a=E(uIy8GVe zRPU}>|3%2z=uG3Jr)5W>znjN*J!J(4z3R=$+~%JxR9yx=J$E+Rqg+3nKCt_e%%}&{{>$sM=Mqj=N%m(ezx3e zy;se!m4#)c4A12(*fHuUAI? zIZlI~8@O!TeqlvN?f#~nhor&LVN+tpj34=a=;U^|eDtKBWLXIx$WI1vh3^;bQne=q$H3Ah%VyoYsrwB|(ji!^{qFmIzPH_x8Y3|wU=I8Wu-yaWmBNLW*ep>7;O=vIBgSp z#cX8|XQ;q~i-2dhSR~+kOxVm&!EA$(uchq-UnZ0ZVJON;WlIEMT)xJRlSsTSx(5Qh zg$goQ)`o~g4u?bNkP2ygx=5^6t3|LxB#}VC0%BZN7Ii{aCfE(pjiDnL%ud-@inj9I zn5c=K%Z3UBK+k^>pT%Y{^uk-29u@!}A}4ASiG{GpViEQAVA!Z^0MZlCZ+b8ZU`R#r z1VhiYV?`4d5M1+~J08<96Dt=|j7`?&R>*1y#owC?GUV!XZ zELnphQy2I1!LIv*i5uC;-9PvEDB&?tSEA;=QMsXT0A-RYaHWaFARJfYkPI^^AvLKK zL%1BpNLVH&aV747!Z9S8wp&n8PRfF&6C#^6-J@_5jzk#sp#q5zekn1UQI-S_U>oW1`$A6rMl&enDiXyc7(|!|43a5O0#d;+2`NmZN+Bl263{9h7JAVc znq(cQorp*WJOZvjgL=5)PwXkxd#~C%G6;7a0A-L^4E3Q*AnHk0jFEWsCO&u;S0q2d;WUr@Ov)7=l3u2TKx9Y)lb)JG4NW({oU11*K0BG zTE_j|^?##_`|>bFSiu*N100p4N80PaG0Vp^Ek?)b;(W`wI_?a47f1%%Vv`vThxfMo z^5U#78U=*DtlkjidzZ%>s0@m@-FX6>rEB%Nhy>NCJ*%qe_^jba!y85~Y2CCt@tmRz zH8#)UwmK(F7;1{erWbVtnGt!`?!m%Gp~y$I=!<9r_C2_^+QfIZ?E`flM!E#ek(CBvCFcpVEG8C z;KPa2%i9(%Ib84`ChO>@OGDtrsSO00Tj<+Z7MPXlG(}&}osd(x_}IF_X5Pd3_lleR z&O9pK>nmth?ycW7K1^b&+o(GG-CIE^#{>2z9z2lucHu44(}MgU|BS7JQck5k@q+@h zk|j+|GuBs^izWVDar*^F??VaWniPkr2du!nNj<#BP|5lQjnl!qi9CwuTh7jE~!K>hWj$POiRxu&t=bFJ(*e zj;8ahCd{wmx zw0y&yJA;dD(vALKR=>Mtc;%$354zee|MJEp@s9l3IhsmPWR5;6PWNqO+M@pgQvbg_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/kaupen_bow.png b/src/main/resources/assets/acesbs/textures/item/kaupen_bow.png new file mode 100644 index 0000000000000000000000000000000000000000..db936dacc52435713a180f119fe778160f40a522 GIT binary patch literal 379 zcmV->0fhdEP)LlD|vCP!xr~Ck1f~DRpqO7;G{*iJL+c7tu*db_XZt zfh_e6#2bVF^k3lWZLHkUg!W)?7o7l51oCD0nX;cPb8k_?in-UF-xkN#O^Id71&7h0B7EBMmv!^ALih z&kCLft--aG;iQm(<)uboh=yc{MvzSvQJLieKtmgWPY`X`^$+_oRN!sccC(9g$yLBF zI9n93t)s>x|E?zXyU=3IED8zZpY??Fu1c} zeod1Zf`~*ShKSK1DL#U-TCF+XHp1IYld~2|q!P5m8nqCIVb1WZ#@-dobBtF~LM${`2(dmu$f6HJQ*LCcq@big!B9J6Tnm?rsS#C; z6**Ajuwl?KvBYQLo;|Qc z8}S23`XAw5f~k^Mi?9l?`=Gb(noa~%p3v)X$qwS5CdSWhtJx$RHUfQ_YC&+5YGOcy zolAi&s;%r}2|?228i(CecJOf5d$pDJf=~PNa_o5Tv^>i^yACoi%HBy`O0{cXXh2 zBclbQs2Dmil6&RK+(hAAMrOeaSwCPo`(v+<<-WM{O!xJLW7GFnoSwYAc=q>&iNk0n zl8(-G#*imZjd#4!<^H^|`d8tzqX%kFzC?7daJCoy<_;Wtuqb@|X0WZB$uFR$m@iJ} zH=5+BnYQNQ%p(J5&ZE7r zP4|sNXZ8h#rS-$T!lAwmwdkrHmrB+hSox;2vgF#AC)0_N7JskS`btY6Hg+`o(Q}pe z%?*{OAx`aEc~{;?gPyUSRi3QTpPnhHzVt!=?!Y69H?GFU`R~4YduIB_@AsFt&qmig zzkAD?$M>A;W%pgk-}>^!$&S^n6YYN$jq^Q&zGt^kt1dtG?sLcKDaNFjj|_AkJQeG3 v{XA5E6{P(91J?(!3T0v65 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_1.png b/src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fa384ef1ec0fc5946acd6506052a8ffe1c7ea18c GIT binary patch literal 1707 zcmbVN4NTlr952od??qptU@$`lvPAkUT6gd8UQVl?82r$8pTjabYbfq9LcF}5R|-K z8ffUM^$T6C0wZD-@Mts~l65xf!s5IvoSWMOhQ=XAs|%|%1)_~y9qLvz zfHD>m7f8~I(u_qQDbgOG9!4pWvJoUjkPJ>bS<1;;?P%h{pg2uzX6rp`62johg#`^m zWeFk@iC7{wi=wpj^(Wj}cK`C9D?Gv?&f0g%nP0*FtgOqCkKU2m{&BA=aA0szJq2^q}%D)Tz(c z34p%kxRi`VbqR-4B6Op=1DcU=$f9W7->Cwk9_UKDCV=V=sAiFAjmo+;z#EF@SCmjP zQgum{QOa(yp{v(RvZzG#2d_B*JiGy1m>D&kbl_IfZ*{PgopmrJB*l{C0+drkskw7e zD9zgK*Fj;;W6&-3dv z36>Tgx@jJ>;LMa@y^;=t)tRV>2GEw6g(Nhd1uQR^+3msvGps>&PWV*J}RHJgOPMqo};EeI}BO$^Aeb7`TQTGduJ1J3k)TzwhmjyzQkEBVV4pYKxVZs?0B&zn$%$?l1A4ugE>} zT;A5+JxA&u+Hlus)>1xg({SP7?%nk)`uS61`+K8Dmmp6czNgOief~_*>ef{k>aG2g zmyZ`;3hMVwo+?;d{K}i%ufP1&w&D3dFZnYfcRaAO`%(AM>7Kc{9~+e|w=YGCcln%! zIk{U)W~xfwnn?fRK=$Pk$I!;U(b?^Tj`ue8|FwBw&)V&=@#?0%-g6~m_OJW)>BO2x z@ZN*5ruoPHzb&cR7R`pZbvx3}KGURiOoG6>7p+sTofx>~{hE7``|q3?9&%?NQ|;qv z8NbdRMUWRin{Dg9a^aKQH+qS?KNOsY22UEJS={NV@)1|r^rr(Ei2U=RW$X_B82IM! hR2CYG&28K=z4CW*r~sjQ_L{#FUv;hLovLSh{sxzgL*M`a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_2.png b/src/main/resources/assets/acesbs/textures/item/kaupen_bow_pulling_2.png new file mode 100644 index 0000000000000000000000000000000000000000..25c670cd3201dc1e844f8a371ceaa0d038a6084a GIT binary patch literal 1691 zcmbVNe@q)y96y9CT_=Ohh`$oKTn8JG>s^o1_AVS)D6VBIYoH6rvV`m1YkRi$V|T|| zNXXm|jiO*+EdJO?oP(ICQ4CuUr`bPZj2Rk?aq8S3i#q0}EYrkgW*NRKZL=A4ahJS% z@7?>n&-eHDo)5KdF19{wMG&Mo;P5_y>!=NqLA43Q zMSq_L+WT6=d|!g61+1YStxGeIKmrDbrlq8;Giesf@G@|1ekL$912GaT<~0SPoxu>= zq-X%8?Ig~Vqyu%+cAlh2XN0OoDUzxoNQxk7oOCgii*Y#7?1MpZnh<5$d{1PB!5xdm z4MSxJB9%(nQ#E!)ixCc*rcDlt!XX0Jdu4-5Gg?!NFp z?{CvYSXx~2u6fLYGgE@`i#iNeZ?+=Z!LIBoDWaJyU^w2)ZWiOsumSma6nabhZQdfOaf55UcYdy7@MhsN#qo)qpM=ZaSZ}G4 zigui^TrC-&T(^e)YJ8@=d$@A8V&C}cUmE=tU6wB|4Sif<8`-;eY;4SZWp2?LI33Yz zwio&jMD8iokBxQ|3=pxGZ~isabqINU>bnDN11(iotuMLG%s;ZNdt&63>GJvC{wzS; zGsQm*m2W!#P-kLG9ospJ9vxmh&Yikec>TR|i9P4~-?I2u-PkZan~V-mFAV&wy?Xwm zg|5WNy=&he?by0_e`w~z&Btne7tUVSpBvucPkpcMd_dV>A|8MCgOi`N`MUd#hF<^C zgJG7?p86jazWAJ)n@MY@E4va6Ysrg)8`ljydXV&2KYgg>(@RIJk(Nn%z)#|>LnV`; zw|AZGpV