From 4460c93734d72d9763fd01cabd0af92210561550 Mon Sep 17 00:00:00 2001 From: tartaric_acid Date: Thu, 3 Oct 2024 20:24:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=83=8C=E5=8C=85=E7=89=A9?= =?UTF-8?q?=E5=93=81=E6=8E=89=E8=90=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/backpack/IMaidBackpack.java | 8 ++++++++ .../entity/backpack/BigBackpack.java | 15 +-------------- .../entity/backpack/CraftingTableBackpack.java | 11 +---------- .../entity/backpack/EmptyBackpack.java | 1 + .../entity/backpack/FurnaceBackpack.java | 11 +---------- .../entity/backpack/MiddleBackpack.java | 10 +--------- .../entity/backpack/SmallBackpack.java | 6 +----- .../entity/backpack/TankBackpack.java | 11 +---------- 8 files changed, 15 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/api/backpack/IMaidBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/api/backpack/IMaidBackpack.java index fd52a37e3..d39006dda 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/api/backpack/IMaidBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/api/backpack/IMaidBackpack.java @@ -1,5 +1,6 @@ package com.github.tartaricacid.touhoulittlemaid.api.backpack; +import com.github.tartaricacid.touhoulittlemaid.entity.backpack.BackpackManager; import com.github.tartaricacid.touhoulittlemaid.entity.item.EntityTombstone; import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid; import com.github.tartaricacid.touhoulittlemaid.item.BackpackLevel; @@ -60,4 +61,11 @@ public IBackpackData getBackpackData(EntityMaid maid) { protected final void dropAllItems(EntityMaid maid) { ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.EMPTY_CAPACITY); } + + protected final void dropRelativeItems(ItemStack stack, EntityMaid maid) { + BackpackManager.findBackpack(stack).ifPresentOrElse(backpack -> { + int startIndex = backpack.getAvailableMaxContainerIndex(); + ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), startIndex); + }, () -> this.dropAllItems(maid)); + } } diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/BigBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/BigBackpack.java index 59c9c4a8f..49929e96f 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/BigBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/BigBackpack.java @@ -9,7 +9,6 @@ import com.github.tartaricacid.touhoulittlemaid.inventory.container.AbstractMaidContainer; import com.github.tartaricacid.touhoulittlemaid.inventory.container.backpack.BigBackpackContainer; import com.github.tartaricacid.touhoulittlemaid.item.BackpackLevel; -import com.github.tartaricacid.touhoulittlemaid.util.ItemsUtil; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.geom.EntityModelSet; @@ -34,19 +33,7 @@ public void onPutOn(ItemStack stack, Player player, EntityMaid maid) { @Override public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.SMALL_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_MIDDLE.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.MIDDLE_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/CraftingTableBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/CraftingTableBackpack.java index d9639c141..fb5716835 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/CraftingTableBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/CraftingTableBackpack.java @@ -9,7 +9,6 @@ import com.github.tartaricacid.touhoulittlemaid.inventory.container.AbstractMaidContainer; import com.github.tartaricacid.touhoulittlemaid.inventory.container.backpack.CraftingTableBackpackContainer; import com.github.tartaricacid.touhoulittlemaid.item.BackpackLevel; -import com.github.tartaricacid.touhoulittlemaid.util.ItemsUtil; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.geom.EntityModelSet; @@ -33,15 +32,7 @@ public void onPutOn(ItemStack stack, Player player, EntityMaid maid) { @Override public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.SMALL_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_MIDDLE.get() || item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/EmptyBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/EmptyBackpack.java index bb60c0515..b5f1211cb 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/EmptyBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/EmptyBackpack.java @@ -84,6 +84,7 @@ public ResourceLocation getBackpackTexture() { } @OnlyIn(Dist.CLIENT) + @Override public void offsetBackpackItem(PoseStack poseStack) { poseStack.translate(0, 0.625, 0.2); } diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/FurnaceBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/FurnaceBackpack.java index 352ffe8a2..9a0b0a34c 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/FurnaceBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/FurnaceBackpack.java @@ -42,16 +42,7 @@ public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { InvWrapper inv = new InvWrapper(furnaceBackpackData); ItemsUtil.dropEntityItems(maid, inv); } - - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.SMALL_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_MIDDLE.get() || item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/MiddleBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/MiddleBackpack.java index d5b80f709..d2626857a 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/MiddleBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/MiddleBackpack.java @@ -35,15 +35,7 @@ public void onPutOn(ItemStack stack, Player player, EntityMaid maid) { @Override public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.SMALL_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_MIDDLE.get() || item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/SmallBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/SmallBackpack.java index c66a16338..6084167e7 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/SmallBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/SmallBackpack.java @@ -33,11 +33,7 @@ public void onPutOn(ItemStack stack, Player player, EntityMaid maid) { @Override public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get() || item == InitItems.MAID_BACKPACK_MIDDLE.get() || item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override diff --git a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/TankBackpack.java b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/TankBackpack.java index 3604aad9a..6d96aaabb 100644 --- a/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/TankBackpack.java +++ b/src/main/java/com/github/tartaricacid/touhoulittlemaid/entity/backpack/TankBackpack.java @@ -58,16 +58,7 @@ public void onTakeOff(ItemStack stack, Player player, EntityMaid maid) { InvWrapper inv = new InvWrapper(tankBackpackData); ItemsUtil.dropEntityItems(maid, inv); } - - Item item = stack.getItem(); - if (item == InitItems.MAID_BACKPACK_SMALL.get()) { - ItemsUtil.dropEntityItems(maid, maid.getMaidInv(), BackpackLevel.SMALL_CAPACITY); - return; - } - if (item == InitItems.MAID_BACKPACK_MIDDLE.get() || item == InitItems.MAID_BACKPACK_BIG.get()) { - return; - } - this.dropAllItems(maid); + dropRelativeItems(stack, maid); } @Override