From 713fde35f081ea799ffacac64c00a7c99894879d Mon Sep 17 00:00:00 2001 From: LingVarr Date: Sun, 3 Mar 2024 03:40:50 +1100 Subject: [PATCH 1/3] Update ru_ru.json --- src/main/resources/assets/unicopia/lang/ru_ru.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/unicopia/lang/ru_ru.json b/src/main/resources/assets/unicopia/lang/ru_ru.json index e7a6fd77..9fd5ab76 100644 --- a/src/main/resources/assets/unicopia/lang/ru_ru.json +++ b/src/main/resources/assets/unicopia/lang/ru_ru.json @@ -228,6 +228,7 @@ "block.unicopia.spectral_fire": "Спектральный огонь", "block.unicopia.bananas": "Бананы", "block.unicopia.zapling": "Саженец зап-яблони", + "block.unicopia.potted_zapling": "Саженец зап-яблони в горшке", "block.unicopia.zap_log": "Бревно зап-яблони", "block.unicopia.zap_wood": "Зап-яблоня", "block.unicopia.stripped_zap_log": "Бревно обтёсанной зап-яблони", @@ -251,6 +252,7 @@ "block.unicopia.zap_apple": "Зап-яблоня", "block.unicopia.zap_bulb": "Недозрелая зап-яблоня", "block.unicopia.palm_sapling": "Саженец пальмы", + "block.unicopia.potted_palm_sapling": "Саженец пальмы в горшке", "block.unicopia.palm_log": "Пальмовое бревно", "block.unicopia.palm_wood": "Пальма", "block.unicopia.palm_planks": "Пальмовые доски", @@ -273,11 +275,13 @@ "block.unicopia.gold_root": "Золотой корень", "block.unicopia.golden_oak_sprout": "Росток золотого дуба", "block.unicopia.golden_oak_sapling": "Саженец золотого дуба", + "block.unicopia.potted_golden_oak_sapling": "Саженец золотого дуба в горшке", "block.unicopia.golden_oak_leaves": "Листья золотого дуба", "block.unicopia.golden_oak_log": "Бревно золотого дуба", "block.unicopia.mango": "Манго", "block.unicopia.mango_leaves": "Листья мангового дерева", "block.unicopia.mango_sapling": "Саженец мангового дерева", + "block.unicopia.potted_mango_sapling": "Саженец манго в горшке", "block.unicopia.pineapple": "Ананас", "block.unicopia.clam_shell": "Раковина моллюска", @@ -286,12 +290,15 @@ "block.unicopia.green_apple_leaves": "Листья яблони Гренни Смит", "block.unicopia.green_apple_sapling": "Саженец яблони Гренни Смит", + "block.unicopia.potted_green_apple_sapling": "Саженец яблони Гренни Смит в горшке", "block.unicopia.green_apple_sprout": "Росток яблони Гренни Смит", "block.unicopia.sweet_apple_leaves": "Листья яблони Яблочной Аллеи", "block.unicopia.sweet_apple_sapling": "Саженец яблони Яблочной Аллеи", + "block.unicopia.potted_sweet_apple_sapling": "Саженец яблони Яблочной Аллеи в горшке", "block.unicopia.sweet_apple_sprout": "Росток яблони Яблочной Аллеи", "block.unicopia.sour_apple_leaves": "Листья кислой яблони", "block.unicopia.sour_apple_sapling": "Саженец кислой яблони", + "block.unicopia.potted_sour_apple_sapling": "Саженец кислой яблони в горшке", "block.unicopia.sour_apple_sprout": "Росток кислой яблони", "block.unicopia.surface_chitin": "Поверхностный хитин", @@ -594,7 +601,7 @@ "unicopia.diet.not_edible": "Предмет не съедобен", "unicopia.diet.base_multiplier": "Базовый множитель: %s%%", "unicopia.diet.hunger.detailed": "Голода восстановлено: %s из %s (%s%%)", - "unicopia.diet.saturation.detailed": "Насыщения получено: %s (%s%%)", + "unicopia.diet.saturation.detailed": "Насыщения получено: %s из %s (%s%%)", "unicopia.diet.hunger": "Коэффициент голода: %s%%", "unicopia.diet.saturation": "Коэффициент насыщения: %s%%", @@ -617,6 +624,7 @@ "tag.unicopia.food_types.desserts": "Десерты", "tag.unicopia.food_types.fruits_and_vegetables": "Фрукты и овощи", "tag.unicopia.food_types.drinks": "Напитки", + "tag.minecraft.leaves": "Листья", "tag.unicopia.food_types.forage_edible_filling": "Крупная растительная масса", "tag.unicopia.food_types.forage_edible": "Растительная масса", @@ -1608,7 +1616,7 @@ "advancements.unicopia.juice.description": "Наконец-то нашлось применение всем этим яблокам", "advancements.unicopia.toast.title": "Он хрустящий и вкусный!", "advancements.unicopia.toast.description": "Сделать тостового компаньона", - "advancements.unicopia.burn_toast.title": "Тости НЕЕЕЕЕЕЕТ!", + "advancements.unicopia.burn_toast.title": "ТОСТИ НЕЕЕЕЕЕЕТ!", "advancements.unicopia.burn_toast.description": "Поджарь Тости", "advancements.unicopia.lucky.title": "Как на ТВ", "advancements.unicopia.lucky.description": "Сделать несколько счастливых подков из картофеля фри", From 89aeb3903f0740320aacce9d117bd79000689e4f Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 2 Mar 2024 17:08:17 +0000 Subject: [PATCH 2/3] Fix #287 --- .../particle/FollowingParticleEffect.java | 8 +--- .../particle/LightningBoltParticleEffect.java | 4 +- .../particle/ParticleFactoryHelper.java | 41 +++++++++++-------- .../particle/SphereParticleEffect.java | 4 +- .../unicopia/particle/WeakTarget.java | 4 +- .../util/serialization/PacketCodec.java | 20 +++++++++ 6 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/minelittlepony/unicopia/util/serialization/PacketCodec.java diff --git a/src/main/java/com/minelittlepony/unicopia/particle/FollowingParticleEffect.java b/src/main/java/com/minelittlepony/unicopia/particle/FollowingParticleEffect.java index 4455f7f7..42482d6a 100644 --- a/src/main/java/com/minelittlepony/unicopia/particle/FollowingParticleEffect.java +++ b/src/main/java/com/minelittlepony/unicopia/particle/FollowingParticleEffect.java @@ -36,7 +36,7 @@ public record FollowingParticleEffect ( this(type, new WeakTarget(buf), buf.readFloat(), - buf.readOptional(b -> ParticleFactoryHelper.readEffect(b)) + ParticleFactoryHelper.OPTIONAL_PARTICLE_EFFECT_CODEC.read(buf) ); } @@ -61,11 +61,7 @@ public record FollowingParticleEffect ( public void write(PacketByteBuf buf) { target.write(buf); buf.writeFloat(followSpeed); - buf.writeOptional(childEffect(), (b, child) -> { - b.writeBoolean(true); - b.writeInt(Registries.PARTICLE_TYPE.getRawId(child.getType())); - child.write(buf); - }); + ParticleFactoryHelper.OPTIONAL_PARTICLE_EFFECT_CODEC.write(buf, childEffect()); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/particle/LightningBoltParticleEffect.java b/src/main/java/com/minelittlepony/unicopia/particle/LightningBoltParticleEffect.java index 321b6114..19274a80 100644 --- a/src/main/java/com/minelittlepony/unicopia/particle/LightningBoltParticleEffect.java +++ b/src/main/java/com/minelittlepony/unicopia/particle/LightningBoltParticleEffect.java @@ -32,7 +32,7 @@ public record LightningBoltParticleEffect ( } protected LightningBoltParticleEffect(ParticleType particleType, PacketByteBuf buf) { - this(buf.readBoolean(), buf.readInt(), buf.readInt(), buf.readFloat(), buf.readOptional(ParticleFactoryHelper::readVector)); + this(buf.readBoolean(), buf.readInt(), buf.readInt(), buf.readFloat(), ParticleFactoryHelper.OPTIONAL_VECTOR_CODEC.read(buf)); } @Override @@ -46,7 +46,7 @@ public record LightningBoltParticleEffect ( buffer.writeInt(changeFrequency); buffer.writeInt(maxBranches); buffer.writeFloat(maxDeviation); - buffer.writeOptional(pathEndPoint, ParticleFactoryHelper::writeVector); + ParticleFactoryHelper.OPTIONAL_VECTOR_CODEC.write(buffer, pathEndPoint); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/particle/ParticleFactoryHelper.java b/src/main/java/com/minelittlepony/unicopia/particle/ParticleFactoryHelper.java index 7890f91f..af291232 100644 --- a/src/main/java/com/minelittlepony/unicopia/particle/ParticleFactoryHelper.java +++ b/src/main/java/com/minelittlepony/unicopia/particle/ParticleFactoryHelper.java @@ -1,6 +1,8 @@ package com.minelittlepony.unicopia.particle; import java.util.Optional; + +import com.minelittlepony.unicopia.util.serialization.PacketCodec; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; @@ -12,33 +14,38 @@ import net.minecraft.registry.Registries; import net.minecraft.util.math.Vec3d; public interface ParticleFactoryHelper { + @SuppressWarnings("deprecation") + PacketCodec PARTICLE_EFFECT_CODEC = new PacketCodec<>( + buf -> { + @SuppressWarnings("unchecked") + ParticleType type = (ParticleType)Registries.PARTICLE_TYPE.get(buf.readInt()); + return type.getParametersFactory().read(type, buf); + }, + (buf, effect) -> { + buf.writeInt(Registries.PARTICLE_TYPE.getRawId(effect.getType())); + effect.write(buf); + } + ); + PacketCodec> OPTIONAL_PARTICLE_EFFECT_CODEC = PARTICLE_EFFECT_CODEC.asOptional(); + PacketCodec VECTOR_CODEC = new PacketCodec<>( + buf -> new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()), + (buf, vector) -> { + buf.writeDouble(vector.x); + buf.writeDouble(vector.y); + buf.writeDouble(vector.z); + } + ); + PacketCodec> OPTIONAL_VECTOR_CODEC = VECTOR_CODEC.asOptional(); @SuppressWarnings("unchecked") static T read(StringReader reader) throws CommandSyntaxException { return (T)ParticleEffectArgumentType.readParameters(reader, Registries.PARTICLE_TYPE.getReadOnlyWrapper()); } - @SuppressWarnings("deprecation") - static ParticleEffect readEffect(PacketByteBuf buf) { - @SuppressWarnings("unchecked") - ParticleType type = (ParticleType)Registries.PARTICLE_TYPE.get(buf.readInt()); - return type.getParametersFactory().read(type, buf); - } - static Vec3d readVector(StringReader reader) throws CommandSyntaxException { return new Vec3d(readDouble(reader), readDouble(reader), readDouble(reader)); } - static Vec3d readVector(PacketByteBuf buffer) { - return new Vec3d(buffer.readDouble(), buffer.readDouble(), buffer.readDouble()); - } - - static void writeVector(PacketByteBuf buffer, Vec3d vector) { - buffer.writeDouble(vector.x); - buffer.writeDouble(vector.y); - buffer.writeDouble(vector.z); - } - static boolean readBoolean(StringReader reader) throws CommandSyntaxException { reader.expect(' '); return reader.readBoolean(); diff --git a/src/main/java/com/minelittlepony/unicopia/particle/SphereParticleEffect.java b/src/main/java/com/minelittlepony/unicopia/particle/SphereParticleEffect.java index 702610d4..41f95970 100644 --- a/src/main/java/com/minelittlepony/unicopia/particle/SphereParticleEffect.java +++ b/src/main/java/com/minelittlepony/unicopia/particle/SphereParticleEffect.java @@ -32,7 +32,7 @@ public record SphereParticleEffect ( } protected SphereParticleEffect(ParticleType type, PacketByteBuf buf) { - this(type, buf.readVector3f(), buf.readFloat(), buf.readFloat(), ParticleFactoryHelper.readVector(buf)); + this(type, buf.readVector3f(), buf.readFloat(), buf.readFloat(), ParticleFactoryHelper.VECTOR_CODEC.read(buf)); } public SphereParticleEffect(ParticleType type, int tint, float alpha, float rad) { @@ -61,7 +61,7 @@ public record SphereParticleEffect ( buf.writeVector3f(color); buf.writeFloat(alpha); buf.writeFloat(radius); - ParticleFactoryHelper.writeVector(buf, offset); + ParticleFactoryHelper.VECTOR_CODEC.write(buf, offset); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/particle/WeakTarget.java b/src/main/java/com/minelittlepony/unicopia/particle/WeakTarget.java index 9dd5ace2..770ea2db 100644 --- a/src/main/java/com/minelittlepony/unicopia/particle/WeakTarget.java +++ b/src/main/java/com/minelittlepony/unicopia/particle/WeakTarget.java @@ -20,7 +20,7 @@ public class WeakTarget { } public WeakTarget(PacketByteBuf buf) { - fixedPosition = ParticleFactoryHelper.readVector(buf); + fixedPosition = ParticleFactoryHelper.VECTOR_CODEC.read(buf); targetId = buf.readInt(); } @@ -49,7 +49,7 @@ public class WeakTarget { } public void write(PacketByteBuf buf) { - ParticleFactoryHelper.writeVector(buf, fixedPosition); + ParticleFactoryHelper.VECTOR_CODEC.write(buf, fixedPosition); buf.writeInt(targetId); } } diff --git a/src/main/java/com/minelittlepony/unicopia/util/serialization/PacketCodec.java b/src/main/java/com/minelittlepony/unicopia/util/serialization/PacketCodec.java new file mode 100644 index 00000000..a8f27440 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/util/serialization/PacketCodec.java @@ -0,0 +1,20 @@ +package com.minelittlepony.unicopia.util.serialization; + +import java.util.Optional; + +import net.minecraft.network.PacketByteBuf; + +public record PacketCodec(PacketByteBuf.PacketReader reader, PacketByteBuf.PacketWriter writer) { + + public T read(PacketByteBuf buf) { + return reader().apply(buf); + } + + public void write(PacketByteBuf buf, T value) { + writer().accept(buf, value); + } + + public PacketCodec> asOptional() { + return new PacketCodec<>(buf -> buf.readOptional(reader), (buf, v) -> buf.writeOptional(v, writer)); + } +} From e03fa2f5644c33c4396920d7ffcba57feb19c934 Mon Sep 17 00:00:00 2001 From: JCM Date: Fri, 30 Jun 2023 21:48:53 +0200 Subject: [PATCH 3/3] Make the Friendship Bracelet work for the Pegasus Rainboom Ability --- .../unicopia/ability/magic/spell/RainboomAbilitySpell.java | 5 ++++- .../minelittlepony/unicopia/item/FriendshipBraceletItem.java | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java index 05ce028a..1c76b216 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/magic/spell/RainboomAbilitySpell.java @@ -9,6 +9,7 @@ import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.spell.effect.*; import com.minelittlepony.unicopia.entity.damage.UDamageTypes; import com.minelittlepony.unicopia.entity.player.Pony; +import com.minelittlepony.unicopia.item.FriendshipBraceletItem; import com.minelittlepony.unicopia.particle.OrientedBillboardParticleEffect; import com.minelittlepony.unicopia.particle.ParticleSpawner; import com.minelittlepony.unicopia.particle.TargetBoundParticleEffect; @@ -59,7 +60,9 @@ public class RainboomAbilitySpell extends AbstractSpell { } } - source.findAllEntitiesInRange(RADIUS).forEach(e -> { + source.findAllEntitiesInRange(RADIUS) + .filter(e -> !FriendshipBraceletItem.isComrade(source, e)) + .forEach(e -> { e.damage(source.damageOf(UDamageTypes.RAINBOOM, source), 6); }); EFFECT_RANGE.translate(source.getOrigin()).getBlockPositions().forEach(pos -> { diff --git a/src/main/java/com/minelittlepony/unicopia/item/FriendshipBraceletItem.java b/src/main/java/com/minelittlepony/unicopia/item/FriendshipBraceletItem.java index f48e9867..8a9c2416 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/FriendshipBraceletItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/FriendshipBraceletItem.java @@ -39,7 +39,8 @@ public class FriendshipBraceletItem extends WearableItem implements DyeableItem, public TypedActionResult use(World world, PlayerEntity player, Hand hand) { ItemStack stack = player.getStackInHand(hand); - if (!isSigned(stack) && (EquinePredicates.PLAYER_UNICORN.test(player) || AmuletSelectors.PEARL_NECKLACE.test(player))) { + if (!isSigned(stack) && (EquinePredicates.PLAYER_UNICORN.test(player) || EquinePredicates.PLAYER_PEGASUS.test(player) + || AmuletSelectors.PEARL_NECKLACE.test(player))) { player.setCurrentHand(hand); ItemStack result = stack.copy();