From cc1b91de2048ab8940b2336fdb672f9db9355ca9 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 30 Sep 2022 00:54:09 +0200 Subject: [PATCH] Added apple pie slices --- .../unicopia/block/PieBlock.java | 29 ++++++++++++++++-- .../unicopia/block/UBlocks.java | 2 +- .../minelittlepony/unicopia/item/UItems.java | 1 + .../unicopia/item/toxin/UFoodComponents.java | 4 +-- .../resources/assets/unicopia/lang/en_us.json | 1 + .../unicopia/models/item/apple_pie_slice.json | 6 ++++ .../unicopia/textures/item/apple_pie.png | Bin 2142 -> 2211 bytes .../textures/item/apple_pie_slice.png | Bin 0 -> 2335 bytes 8 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/assets/unicopia/models/item/apple_pie_slice.json create mode 100644 src/main/resources/assets/unicopia/textures/item/apple_pie_slice.png diff --git a/src/main/java/com/minelittlepony/unicopia/block/PieBlock.java b/src/main/java/com/minelittlepony/unicopia/block/PieBlock.java index b4f029ce..e8c9372f 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/PieBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/PieBlock.java @@ -12,6 +12,7 @@ import net.minecraft.fluid.FluidState; import net.minecraft.fluid.Fluids; import net.minecraft.item.*; import net.minecraft.particle.ParticleTypes; +import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.state.StateManager; @@ -45,9 +46,12 @@ public class PieBlock extends Block implements Waterloggable { }; } - public PieBlock(Settings settings) { + private final ItemConvertible sliceItem; + + public PieBlock(Settings settings, ItemConvertible sliceItem) { super(settings); setDefaultState(getDefaultState().with(STOMPED, false).with(WATERLOGGED, false)); + this.sliceItem = sliceItem; } @Deprecated @@ -62,6 +66,11 @@ public class PieBlock extends Block implements Waterloggable { ItemStack itemStack = player.getStackInHand(hand); if (world.isClient) { + + if (itemStack.getItem() == Items.SHEARS) { + return ActionResult.SUCCESS; + } + if (tryEat(world, pos, state, player).isAccepted()) { return ActionResult.SUCCESS; } @@ -71,6 +80,14 @@ public class PieBlock extends Block implements Waterloggable { } } + if (itemStack.getItem() == Items.SHEARS) { + SoundEmitter.playSoundAt(player, SoundEvents.BLOCK_BEEHIVE_SHEAR, SoundCategory.NEUTRAL, 1, 1); + removeSlice(world, pos, state, player); + SoundEmitter.playSoundAt(player, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.NEUTRAL, 0.5F, world.getRandom().nextFloat() * 0.1F + 0.9F); + Block.dropStack(world, pos, sliceItem.asItem().getDefaultStack()); + return ActionResult.SUCCESS; + } + return tryEat(world, pos, state, player); } @@ -80,7 +97,7 @@ public class PieBlock extends Block implements Waterloggable { } player.incrementStat(Stats.EAT_CAKE_SLICE); player.getHungerManager().add(state.get(STOMPED) ? 1 : 2, 0.1f); - int bites = state.get(BITES); + world.emitGameEvent(player, GameEvent.EAT, pos); SoundEmitter.playSoundAt(player, SoundEvents.ENTITY_GENERIC_EAT, 0.5F, world.getRandom().nextFloat() * 0.1F + 0.9F); if (world instanceof World ww && (!player.canConsume(false) || world.getRandom().nextInt(10) == 0)) { @@ -89,13 +106,19 @@ public class PieBlock extends Block implements Waterloggable { }, 5); } + removeSlice(world, pos, state, player); + return ActionResult.SUCCESS; + } + + protected void removeSlice(WorldAccess world, BlockPos pos, BlockState state, PlayerEntity player) { + int bites = state.get(BITES); + if (bites < MAX_BITES) { world.setBlockState(pos, state.with(BITES, bites + 1), Block.NOTIFY_ALL); } else { world.removeBlock(pos, false); world.emitGameEvent(player, GameEvent.BLOCK_DESTROY, pos); } - return ActionResult.SUCCESS; } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index 082eeed1..8ef9805a 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -66,7 +66,7 @@ public interface UBlocks { Block SOUR_APPLE = register("sour_apple", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.GREEN).sounds(BlockSoundGroup.WOOD), Direction.DOWN, SOUR_APPLE_LEAVES, FruitBlock.DEFAULT_SHAPE)); Block SOUR_APPLE_SPROUT = register("sour_apple_sprout", new SproutBlock(0xE5FFCC88, () -> UItems.SOUR_APPLE_SEEDS, () -> UTreeGen.SOUR_APPLE_TREE.sapling().map(Block::getDefaultState).get())); - Block APPLE_PIE = register("apple_pie", new PieBlock(FabricBlockSettings.of(Material.CAKE, MapColor.ORANGE).strength(0.5F).sounds(BlockSoundGroup.WET_GRASS))); + Block APPLE_PIE = register("apple_pie", new PieBlock(FabricBlockSettings.of(Material.CAKE, MapColor.ORANGE).strength(0.5F).sounds(BlockSoundGroup.WET_GRASS), () -> UItems.APPLE_PIE_SLICE)); SegmentedCropBlock OATS = register("oats", SegmentedCropBlock.create(11, 5, AbstractBlock.Settings.copy(Blocks.WHEAT), () -> UItems.OAT_SEEDS, null, () -> UBlocks.OATS_STEM)); SegmentedCropBlock OATS_STEM = register("oats_stem", OATS.createNext(5)); diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index efb0e35a..1fb1049a 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -84,6 +84,7 @@ public interface UItems { Item JUICE = register("juice", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).recipeRemainder(Items.GLASS_BOTTLE).maxCount(1).food(UFoodComponents.JUICE))); Item BURNED_JUICE = register("burned_juice", new DrinkableItem(new Item.Settings().group(ItemGroup.FOOD).recipeRemainder(Items.GLASS_BOTTLE).maxCount(1).food(UFoodComponents.BURNED_JUICE))); Item APPLE_PIE = register("apple_pie", new BlockItem(UBlocks.APPLE_PIE, new Item.Settings().group(ItemGroup.FOOD).maxCount(1))); + Item APPLE_PIE_SLICE = register("apple_pie_slice", new Item(new Item.Settings().group(ItemGroup.FOOD).maxCount(16).food(UFoodComponents.PIE))); Item GOLDEN_FEATHER = register("golden_feather", new Item(new Item.Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.MATERIALS))); Item GOLDEN_WING = register("golden_wing", new Item(new Item.Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.MATERIALS))); diff --git a/src/main/java/com/minelittlepony/unicopia/item/toxin/UFoodComponents.java b/src/main/java/com/minelittlepony/unicopia/item/toxin/UFoodComponents.java index 98cbf1d8..eebe89b2 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/toxin/UFoodComponents.java +++ b/src/main/java/com/minelittlepony/unicopia/item/toxin/UFoodComponents.java @@ -15,10 +15,10 @@ public interface UFoodComponents { FoodComponent DAFODIL_DAISY_SANDWICH = builder(3, 2).build(); FoodComponent HAY_BURGER = builder(7, 1.4F).build(); FoodComponent HAY_FRIES = builder(4, 2).build(); - FoodComponent SALAD = builder(3, 1).build(); + FoodComponent PIE = builder(3, 1.26F).build(); FoodComponent CIDER = builder(2, 1.7F).alwaysEdible().build(); - FoodComponent JUICE = builder(2, 2).alwaysEdible().build(); + FoodComponent JUICE = builder(2, 1.8F).alwaysEdible().build(); FoodComponent BURNED_JUICE = builder(3, 1).build(); FoodComponent RANDOM_FOLIAGE = builder(2, 1).build(); diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 9418f035..48071ded 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -63,6 +63,7 @@ "item.unicopia.green_apple_seeds": "Granny Smith Apple Seeds", "item.unicopia.sweet_apple_seeds": "Sweet Apple Seeds", "item.unicopia.sour_apple_seeds": "Sour Apple Seeds", + "item.unicopia.apple_pie_slice": "Slice Of Apple Pie", "item.unicopia.oats": "Oats", "item.unicopia.imported_oats": "Fancy Imported Oats", diff --git a/src/main/resources/assets/unicopia/models/item/apple_pie_slice.json b/src/main/resources/assets/unicopia/models/item/apple_pie_slice.json new file mode 100644 index 00000000..b2cfc3bb --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/apple_pie_slice.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/apple_pie_slice" + } +} diff --git a/src/main/resources/assets/unicopia/textures/item/apple_pie.png b/src/main/resources/assets/unicopia/textures/item/apple_pie.png index 01520a723f03f929dc76b71ca563b91165bb6892..ef4e81f792d0e3c9c05301d1875fa6a256f44a47 100644 GIT binary patch delta 2172 zcmV-?2!r?D5Tg;0BLW7RktH90TaqLx4*cg7djuo|h~w}y+Z*ih*9k;qc6Zr)%uHfg zK@uP&x$9AG{_nrb{RbZ=W+yRgDk*txR}f=-t+(N`|NiLbyVlTu1)JU8Emacy zlgy}V$}_{p2FHZwSi;EoM$Gdw3WoaXyCd<#ci%8N6=Dj0kG)C5 zT7A2SVEy$K^kUvH(Dq_~*nhDLfY7=;ijRZu`27Q5Aw;liyIEmi_3emgkv`lC?g2Vr zW5iR=;XF(LT!gzLl%W6we4-F3kLZSB`dD9^3qjSeNlT*b-!TtCvty{8X0N; z%srS1HeJ-PobwfbK|7tqjTsPQAt0VN0w6SR%)F8aZ{*y@%oj#fM241egEMF&1_Wgi z$3-u8ALRbP%^~jpE^hpdoZHa-8_2m0-4Dq9iQ5mTjh)~7jzf>cw!?5c)dz&%98)W6 zUDe|@;^#;8oa!@$HzkrpV6`74-KR70PSbd1x_z}5gXi^syu@~J|5+k!_uY85M=dGT z=bD|NF>$z%bUhcsDJ*t1l_Mk7ByyxM`7?>2^3k;r(Gd(D(bpeJsfE?QGq6%P4ioQ!uY+nK1-LUUX7iv_zin19M zFA0X7uI2=QY|)5tJzY35=wqk_+TWeTF} zyr42v*4-~=v+uoo_gvOcLd_6=$>OyiJ|p(jc$^S_c!#X3CZx1*t)!2~%7(f<%kfXw;ad@R)Vzd|QcG{g{sB{GJbrB`;x}@%G#VkA1F6?%>S7}` z%{}SyS5l!_#s#6~?ytkW)@HFIK!>ir-EFU?a^x4nUFL*7BhsS97DaOaTS7>|8v`zV z98&gw0SB>VFT2Ecqc~K5y`nRoowJ7051+XSBT0oP`nfG>VWQnS5TuFTW~6U!%Bbg9 z=}3U`I{co{lw9)1lp%>tOJQ_S=kByMIyl7Qleu^(+9`{xuI<_F_I9Y|4NUQA9ngH- zm>p+k>YA&)Sb%AF31r&%Tn12kUKOwlvf7D%09;qgpqor*IqY1=#omH-B(&kds28;NQz05iVd=*QzNwbQQZa+3uq`781RZNp5|%~<|DqoUG2>W_11Esw~8ch zX>%v<7;c`~%?Q68!!md7;O*rc#O4ggyVG2l0Z78}miOVUb|@HZv6Jw_g1i#vnl6<~ zaSOcW8>VWth2I|K2D9D{BHWha1M+Txs(WiCSWXPA21sq`G09w~$aP?nyPAi$06t{6f z>-Tn6=EM~J?SUFuiAt8k8@=7!t_#^x{Ns_GA#r=WZN{5zxm|^>mi6`S=Rm)Wg?D$! z-yRalD_j@zDSi=s8QTnGwhn=Ri)3`RDDv+ARip#ZpkhpM0005RNklqi-lCitBoWXFwby;Qa>3qz%YsD-Pajut zGn&EJ&}yH7SWqsVlP*}OZTBvD&Wv2Lh0x`GwL;b25D=WugQaj#kd%msE! zY;C(MmkQo)m25c-Sbw-oyM4$ciXnvr2gebVPMAaqVUS_v&LW?hJvv9H)L!*O0T5e! zSLl7~GPT0zW5bue!SfY=!ygIzUk&Yk%G9K^Iz86!miay$&n#rJf}e$j#WH8j7R$GM zY-$;tPf*HbZAtS>ua~_}Y9hb_pa5K(vKj`MkzuY_#&;~4zyonnj>2&rwARec7g@Sp zAWkB*wKD}%6yAdsyk>{&YK5bN6fG`=l3+x^Bqkerpo!s delta 2103 zcmV-72*~%N5#A7xBLW4~ktH90S(4=_4E*O5a|DnCh~r?Eh`GTWe-b0?s_N?Qn8mL5 z%#&H9%#@(q`0LN<{=h{(dnYk#Dk*tfQlwBtL;ZUVdlv8KY70KWY~kq@+@}|(6>xuN zCp;NX-o|G=UK8<$0qJ>$@9ZIdvGcPGeey`pM1=dJy#R!dm%g7lyH3P^>{f57l7LUL zpiU@v3mq>2!}qX+JL414&i7q#tFOMfAin$NFWfDZK!N=X5_+g%hH*bzXmC+zP{xy} z5#KiDOobYI4lIs^B}~d(xU({GqrnU-J-&o{-EuG2f@0ww(31it3m9?V?lk`E{q00^ zwgpi@^am^WMYL!L3q@Xk-{=KG!aO>PH^ArqdVyF>BIvbXRs>l6wWqjZc(ujuCYsSP z;wgJ@?lu7+!rBqe1O@{>1&$#FpNVn^z)`_Zh3CXh=mG^HM(XgAggJp6rL{K37i;D$Ip&me)?9K` zR?(6%9mc{stxjK(qc<3H*KX= z*Qs-t9((G!YcIWyFd(HNBaSrk&{0O6klN%aGtM;g)LCYISi4zupE&!GxnHvuj5QGE zZq5Xq4r?&ye5MG0tDMBe85ko8U_37dAZS{gc?}}8m~)FWUkF(d30}rUP7jMQFeoEX zoZ;c_W$p*w9P<9(@`-z76*!1%CHhLb2el@QqL1Pg7L69xq&4{gkV_Bm2xz%zv^Hozi)?Yu} z&pYHi?^cpnri^~CHpsW*E9$^{PoaPp&FsLyJ0Xu zy6A!7f#Z^mhPKhT_l?(N9ho7u`xP&jTz_0@ePabbmaoU|H<@-K z(+|64udWYQ_Nu6+Zo{@Cu9jDP<|&j{{FJg+9udWb;H`NwC2`l+U(=M^4mV?~V*)u~ zq!;p|fmMY~Mw&PFsWe?lyL+~`=c8mbmQrX++t_?G3c?undZbm>n@iDtw~qt|(<6@t>S$&KtRttwFVJ#E^dro6Gh8E7-|n5 z@S=ZZ7LnK#D2F==ukiqI3UtJFJc?Tvzi zZaQLW2hS&+=3OB_<&!z<#oP~MpfXk4Bjm~0B$gCXrW4r!YJf;yy>d97%JTHGU(|YQ z$sBE{!}+Y^{6S96B-L9CIC$FHWXbdHb}gLLwZw8TrX$-O*eX7qta5Q_h+x~nbU^KY zYKcE;IA8a8hxZt$8m*qUi_|un5@xg#hdOnDu@W!Z9tWgu`f;e=^_31rPb5#@iKN~F zBpt--;IksTd@(%T0rV+*sT~R6-z5Ab8=|u!f6PA|%x#6T1zuc0M(&t#UaFqWIZt0} zFw|!?VxS)23^-32q1d;MF8n)Udy(gVpD5sGXO&rP^L4XaEMGV3XSSHE-aVy1S@I#R zj&l5F4V9zVUYkzYUfCljT_F7S`_q>DUyf_Pp9lv|Y!2>k1a0I>^(rf50006-Nklr> zBA5G2Ivt_4wHb($Ovc&R*lc{lwm6xLbM5#gF(Lqn2wPXQR$FJ#kKP?qvvV0nhQ|XB zJ}pi#apt=8#5KlOShiq{qR9>fz6idru&jWX%?s+{cXjnZ0S!w;q` zTn93FA(Ib8mL+8KLgs7Gk9HIQ0uRDr7ZFIr+tFI_c6k+Jgswys$JS(5Rsq=A(T?j_ zEG!iWHBT}$^dJDlVr>ZE)eK?RCY6lQWNSR%;8?oeS3Doz2tPc7F~Z}i69M4Z#8q=Q^;{m*~l#q{Zhl*OYeU1+T^MyOOg0KToS hVB4A_{kQoq^%LO+?1MF+xQYM(002ovPDHLkV1fov4xa!3 diff --git a/src/main/resources/assets/unicopia/textures/item/apple_pie_slice.png b/src/main/resources/assets/unicopia/textures/item/apple_pie_slice.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6d7c93a8a68e73532f6c293fb694b9670de94a GIT binary patch literal 2335 zcmV+)3E=jLP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b@k}N9<{qHJf2?8p*96uvw2ebS+rkK_DcF&8r zZ(e0rr)eSr=Kz+Q|M~ZF|H6k!y$exuDk*tQSHg(Nr$5@@kXks(=FI!_VI@@oq{`<7?BP8k~yf+Q1^5mr2xyMzDt z`cctZeTRtP{f!muV%{*&j-u@UkOCmIE|209;Cuc40kBXKAhpAs;b8UcsA!Qs+!FTy zEf9>jhqG9RDL{y@cZ4w{K)@%GNQt~MD-q(Dflr0yEG}>Z1Qa6=Sjj;o0i4WxZ>&*z zWI6JgMhXFlC`lC16sf=}gcyr^WlB+9R1i2bZDq31O zS2uXb2qTU(bmUP+oistE8D^Ym>ddpux^t8CJ#(&Y+DL5Db$z zE_$*1AomS7hrIv0xbauy+=lL-K+bLGen9R!Za<(lc75+V4?POoPQx8kFGxQK%v?D` zg8%I9{&d0LS2WGWo|~`Fq?ZZr_ptRqIa0tM2-)=+MzoGS6TR17%QMtgQ@XQ%eRuy` zKy^K%6k=Inj%T;YzAviBp3;|ocP%}Vq5D#wnL_!P1yIs66NHXxrqca!V}+`H!9BO% zz&)F<<-1|Y+@vzHwq}+o^{L?qLBVuUkC>D>sh)?#sp9n>qJx>Ku#2y$>v63Rn0{>3 z;!=3cnZ0<8?Yv2468hTNQY&Nk9*;FJ>|%u~k`7ibF6pVhe#r47p$g|_A@vC9kn@0| z&E@DrbJk-cvaUIECPhTR3`8tDp#Pe6|FKc^s)yQfRie&vsa_B=kP|F>hAv)b&^tvPYgD zp^{~wVA015B>vef?%4N!{0}TM29p{h-o5EFvZaql<3jN`PeBGryRVuI=6YjI$+8gh z&GD6CUr$(K&P|MHeHQblR_V&ed9b!8W40hhQ_FJWQV1uTvs|@wgv?TTanN20>Y6=Q zp=r!}Xv9Z@n;tD-ay0sE>RnEj4xOnQRS;~8Blmoh&c8M~-|mze?~6ah1~lsy91w4M zQxiK1e6cWl$$9B61_*XrLhM)WXYVyo9l$;-3ag3Dmx(6S`Mel?1u)+DK0|kN@OdgF z+(faZK3ozZ2W_YWNhqby8$meIcY?bO6QY#kB@3&03keo~K$~5Va%fQJDM?13$Y!ec z-j|bTgdti=!!X_btdDk;kEyMX*9Lt-YpIuf=cRx&4}ilD3>H#*K1Ae4KZ1i`xXtLlrG>4+|$CBOn`88If#J;%bv;mKd{ z2z)YvBAh3w5w=^~KqR$b?>t1B1|vex_;FM$(I;v)YU`qGus5_Nr8%sZAw4Hku(Zg- zuas`rmpS|Apy2GJK*my>zoNO4q3bM4B5XNPDE(x=WM{_;WE@yuivflm3Ii|D%=eo0(uAYybcPX-PyuR5;76lTSz# zaTLctGdr`hGrO+q>iXZP4w4d9C>0?{N)Snf(7#)BGYFwpqC-$CfUbK`bPxCy zI6CaE-xg%^0<$2HCGhFf^!9eU3L=p(xq{=Oy)uQSyLkN?tPaECeF~N!XWD#PGVyB) z*?bF*nEPCSNDj=6STJMUIF0QwIQC5Pf!(9OD5S!TR+*o@#+;G-Z?-# zzV+u{nCWl+4G_A}N1;%prY3~ftFXDXhN8%Hca8I3;ybm4;tBQd2vPt5002ovPDHLk FV1m9YXg~k} literal 0 HcmV?d00001