From b49bd6ef914cdd8a8fed7053267fe8f2dafc8b44 Mon Sep 17 00:00:00 2001 From: vemerion Date: Sun, 18 Apr 2021 09:11:33 +0200 Subject: [PATCH] Add cubozoa bucket and make fish buckets retain variant This change adds a cubozoa bucket that functions like the other types of fish buckets. In addition to that, this commit also saves the size and variant of end fish and cubozoa in the item tag when they are scooped up in a bucket, so that they retain their size/variant when they are placed again. Here is the issue from the Forge port that made me away of the issue: https://github.com/Beethoven92/BetterEndForge/issues/93 --- .../java/ru/betterend/entity/CubozoaEntity.java | 15 +++++++++++++-- .../java/ru/betterend/entity/EndFishEntity.java | 14 +++++++++++++- .../java/ru/betterend/registry/EndItems.java | 1 + .../resources/assets/betterend/lang/en_us.json | 1 + .../betterend/models/item/bucket_cubozoa.json | 6 ++++++ .../betterend/textures/item/bucket_cubozoa.png | Bin 0 -> 1633 bytes 6 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/betterend/models/item/bucket_cubozoa.json create mode 100644 src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png diff --git a/src/main/java/ru/betterend/entity/CubozoaEntity.java b/src/main/java/ru/betterend/entity/CubozoaEntity.java index 65a20bb9..71b0d548 100644 --- a/src/main/java/ru/betterend/entity/CubozoaEntity.java +++ b/src/main/java/ru/betterend/entity/CubozoaEntity.java @@ -22,7 +22,6 @@ import net.minecraft.entity.effect.StatusEffects; import net.minecraft.entity.passive.SchoolingFishEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket; import net.minecraft.server.network.ServerPlayerEntity; @@ -53,6 +52,14 @@ public class CubozoaEntity extends SchoolingFishEntity { if (EndBiomes.getFromBiome(world.getBiome(getBlockPos())) == EndBiomes.SULPHUR_SPRINGS) { this.dataTracker.set(VARIANT, (byte) 1); } + + if (entityTag != null) { + if (entityTag.contains("variant")) + this.dataTracker.set(VARIANT, entityTag.getByte("variant")); + if (entityTag.contains("scale")) + this.dataTracker.set(SCALE, entityTag.getByte("scale")); + } + this.calculateDimensions(); return data; } @@ -120,7 +127,11 @@ public class CubozoaEntity extends SchoolingFishEntity { @Override protected ItemStack getFishBucketItem() { - return new ItemStack(Items.WATER_BUCKET); + ItemStack bucket = EndItems.BUCKET_CUBOZOA.getDefaultStack(); + CompoundTag tag = bucket.getOrCreateTag(); + tag.putByte("variant", dataTracker.get(VARIANT)); + tag.putByte("scale", dataTracker.get(SCALE)); + return bucket; } @Override diff --git a/src/main/java/ru/betterend/entity/EndFishEntity.java b/src/main/java/ru/betterend/entity/EndFishEntity.java index 4b633a4d..42ed0f7e 100644 --- a/src/main/java/ru/betterend/entity/EndFishEntity.java +++ b/src/main/java/ru/betterend/entity/EndFishEntity.java @@ -46,6 +46,14 @@ public class EndFishEntity extends SchoolingFishEntity { if (EndBiomes.getFromBiome(world.getBiome(getBlockPos())) == EndBiomes.SULPHUR_SPRINGS) { this.dataTracker.set(VARIANT, (byte) (random.nextInt(VARIANTS_SULPHUR) + VARIANTS_NORMAL)); } + + if (entityTag != null) { + if (entityTag.contains("variant")) + this.dataTracker.set(VARIANT, entityTag.getByte("variant")); + if (entityTag.contains("scale")) + this.dataTracker.set(SCALE, entityTag.getByte("scale")); + } + this.calculateDimensions(); return data; } @@ -77,7 +85,11 @@ public class EndFishEntity extends SchoolingFishEntity { @Override protected ItemStack getFishBucketItem() { - return new ItemStack(EndItems.BUCKET_END_FISH); + ItemStack bucket = EndItems.BUCKET_END_FISH.getDefaultStack(); + CompoundTag tag = bucket.getOrCreateTag(); + tag.putByte("variant", dataTracker.get(VARIANT)); + tag.putByte("scale", dataTracker.get(SCALE)); + return bucket; } @Override diff --git a/src/main/java/ru/betterend/registry/EndItems.java b/src/main/java/ru/betterend/registry/EndItems.java index 4e3dc6f3..203f0e48 100644 --- a/src/main/java/ru/betterend/registry/EndItems.java +++ b/src/main/java/ru/betterend/registry/EndItems.java @@ -120,6 +120,7 @@ public class EndItems { public final static Item END_FISH_RAW = registerFood("end_fish_raw", FoodComponents.SALMON); public final static Item END_FISH_COOKED = registerFood("end_fish_cooked", FoodComponents.COOKED_SALMON); public final static Item BUCKET_END_FISH = registerItem("bucket_end_fish", new FishBucketItem(EndEntities.END_FISH, Fluids.WATER, makeItemSettings().maxCount(1))); + public final static Item BUCKET_CUBOZOA = registerItem("bucket_cubozoa", new FishBucketItem(EndEntities.CUBOZOA, Fluids.WATER, makeItemSettings().maxCount(1))); public final static Item SWEET_BERRY_JELLY = registerFood("sweet_berry_jelly", 6, 0.75F); public final static Item SHADOW_BERRY_JELLY = registerFood("shadow_berry_jelly", 7, 0.75F, new StatusEffectInstance(StatusEffects.NIGHT_VISION, 400)); public final static Item BLOSSOM_BERRY = registerFood("blossom_berry", FoodComponents.APPLE); diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 2d63c8a3..140e8f20 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -316,6 +316,7 @@ "block.betterend.quartz_lantern": "Quartz Lantern", "item.betterend.bucket_end_fish": "Bucket of End Fish", + "item.betterend.bucket_cubozoa": "Bucket of Cubozoa", "item.betterend.end_fish_cooked": "Cooked End Fish", "item.betterend.end_fish_raw": "End Fish", diff --git a/src/main/resources/assets/betterend/models/item/bucket_cubozoa.json b/src/main/resources/assets/betterend/models/item/bucket_cubozoa.json new file mode 100644 index 00000000..27e0e130 --- /dev/null +++ b/src/main/resources/assets/betterend/models/item/bucket_cubozoa.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "betterend:item/bucket_cubozoa" + } +} diff --git a/src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png b/src/main/resources/assets/betterend/textures/item/bucket_cubozoa.png new file mode 100644 index 0000000000000000000000000000000000000000..6b1e88c42bcf7b84deacfb1570d7868c63d65b05 GIT binary patch literal 1633 zcmV-n2A=teP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3yslIti8M*p*lSpoutU^$pa)!o4?e?A^2iR13- z&Rn}~a5hPLd-#<G1ZeLTOv|kGT zlA|RjzR2x%W3JRr&o2W;wCLySDR-@v&|00VOU@%xUadu)OBp>V9!RAf(>!j$htZdD zN8ABR%pg`k^T3@IMKZ{CBS(c2HL9b{lo6sc)d*T+G8lAOuwtUg06<7QZfZtsv_*l4 zu^H4X#Ae4r!*3k^G6i@p1Wjy)48P|6R(HZr?ro^GUb@(QVdn~QnO@U0>EKja8UJW@vaWS2SnEIH(uQ!&LBZ2#hms1iynsZvELRad$C zDmBztQ$wva+g#)3o3zkkOPkuF`bv#1Et>y9St@G8&D(ea0+!|Am}O?ZnW7w$bHLAvHKM_^A$PO(fti_s-s)v z-nrdSD`|YA*a4{T!k$xY8xA%o)R0U_{X6O7R{dWC_l6p~-Z94!n&@VZ`4(K$xw$ys zl4~yKH55a$x?q;NA37};_cXa#|D!@iS|P{8kuoZ-cO8B% zc;X>VRJ^ZCBjzyWY7R)uPa|p0C`J-Sj`@}|>g_c8-m2LVe=L!}?ikjTS76O0#ASxP z-p*vis98oY^jpnE`>BO6mpv?LbeM{s5jE@Z1y&`V9*LjBQa5ov!t-UtBpJW!{4w7u z>@{q}kyGcUBZVb|X8wYr6yr4A&x?F6(YqOH%~Wx)g&8V-xW!s2^HkIN zia9LHQ&231dCxVrsCVAOa7qQ*QqrAWt@m2%&T z%=D@LgLe}R?cRJNojzw1eL&;j%sNcc;3P1A2%3Bw^|u5k<)zs*gvdH_6)na$0XA9Ex1HPB5lZXe+-QM<_1UrEq7A@!$+>o@p+>iw=&pHBSD z5dIYv{JU2F0f1??Xd#zUb^rhX24YJ`L;x%RegJ_vqK}pU000SaNLh0L04^f{04^f| zc%?sf00007bV*G`2jv731~oG4ruM-A00CJ^L_t(I%dL{JPQp+WhQDHwAjnXNi9{0y zw9!SDs}oaSfz1bSGI7uca5kNM0EUh{0~2B4E_IPK>C95nffzbatOnaHOGZm=#s&>y_xr}~L1|VKWd`1y(i`Sn-RYArB z$8m677u&XBv1xL*+oj!Z)9?55O$6w4IyjC4fa|&dgkgy9`?-@V`