From dd57456e60047edda27d098efa17def10681b1ce Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Thu, 7 Mar 2024 12:41:20 +0300 Subject: [PATCH] Add chicken kiev advancement --- CHANGELOG | 1 + .../advancements/new_soviet/chicken_kiev.json | 58 +++++++++++++++++++ .../advancements/new_soviet/sickle_kill.json | 15 ----- .../a71/new_soviet/datagen/Advancements.java | 18 +++++- .../assets/new_soviet/lang/en_us.json | 2 + 5 files changed, 78 insertions(+), 16 deletions(-) create mode 100644 src/main/generated/data/minecraft/advancements/new_soviet/chicken_kiev.json diff --git a/CHANGELOG b/CHANGELOG index dd6e618..bc139dd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -74,6 +74,7 @@ Due to sheer amount of changes, some may be undocumented. We hope you enjoy this * Now uses screwdriver to change sound * Sound names now translated * Added a questionable sound option +* At least 1 new advancement * Bug fixes * Stone-cutting recipe for slabs now gives 2 blocks * Fixed typos in Russian translation diff --git a/src/main/generated/data/minecraft/advancements/new_soviet/chicken_kiev.json b/src/main/generated/data/minecraft/advancements/new_soviet/chicken_kiev.json new file mode 100644 index 0000000..d49cfc4 --- /dev/null +++ b/src/main/generated/data/minecraft/advancements/new_soviet/chicken_kiev.json @@ -0,0 +1,58 @@ +{ + "parent": "minecraft:new_soviet/sickle_kill", + "criteria": { + "kill": { + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "minecraft:chicken" + } + } + ], + "killing_blow": { + "source_entity": { + "equipment": { + "mainhand": { + "enchantments": [ + { + "enchantment": "minecraft:fire_aspect" + } + ], + "items": [ + "new_soviet:sickle" + ] + } + } + } + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "background": "minecraft:textures/gui/advancements/backgrounds/adventure.png", + "description": { + "translate": "advancement.new_soviet.chicken_kiev.desc" + }, + "frame": "task", + "hidden": false, + "icon": { + "item": "new_soviet:sickle", + "nbt": "{Damage:0}" + }, + "show_toast": true, + "title": { + "translate": "advancement.new_soviet.chicken_kiev.name" + } + }, + "requirements": [ + [ + "kill" + ] + ], + "sends_telemetry_event": true +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancements/new_soviet/sickle_kill.json b/src/main/generated/data/minecraft/advancements/new_soviet/sickle_kill.json index c38bfe6..71c82cf 100644 --- a/src/main/generated/data/minecraft/advancements/new_soviet/sickle_kill.json +++ b/src/main/generated/data/minecraft/advancements/new_soviet/sickle_kill.json @@ -1,18 +1,6 @@ { "parent": "minecraft:new_soviet/sickle", "criteria": { - "got_sickle": { - "conditions": { - "items": [ - { - "items": [ - "new_soviet:sickle" - ] - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, "kill": { "conditions": { "entity": [ @@ -55,9 +43,6 @@ } }, "requirements": [ - [ - "got_sickle" - ], [ "kill" ] diff --git a/src/main/java/su/a71/new_soviet/datagen/Advancements.java b/src/main/java/su/a71/new_soviet/datagen/Advancements.java index 78ff1f2..4bdc569 100644 --- a/src/main/java/su/a71/new_soviet/datagen/Advancements.java +++ b/src/main/java/su/a71/new_soviet/datagen/Advancements.java @@ -6,6 +6,7 @@ import net.minecraft.advancement.AdvancementFrame; import net.minecraft.advancement.criterion.InventoryChangedCriterion; import net.minecraft.advancement.criterion.OnKilledCriterion; import net.minecraft.advancement.criterion.UsingItemCriterion; +import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.EntityType; import net.minecraft.item.Items; import net.minecraft.predicate.NumberRange; @@ -13,6 +14,7 @@ import net.minecraft.predicate.entity.DamageSourcePredicate; import net.minecraft.predicate.entity.EntityEquipmentPredicate; import net.minecraft.predicate.entity.EntityPredicate; import net.minecraft.predicate.entity.PlayerPredicate; +import net.minecraft.predicate.item.EnchantmentPredicate; import net.minecraft.predicate.item.ItemPredicate; import net.minecraft.stat.Stats; import net.minecraft.text.Text; @@ -70,10 +72,24 @@ public class Advancements implements Consumer> { false // Hidden ) .parent(sickle) - .criterion("got_sickle", InventoryChangedCriterion.Conditions.items(NSE_Items.SICKLE)) .criterion("kill", OnKilledCriterion.Conditions.createPlayerKilledEntity(EntityPredicate.Builder.create(), DamageSourcePredicate.Builder.create().sourceEntity(EntityPredicate.Builder.create().equipment(EntityEquipmentPredicate.Builder.create().mainhand(ItemPredicate.Builder.create().items(NSE_Items.SICKLE).build()).build())))) .build(consumer, NewSoviet.MOD_ID + "/sickle_kill"); + // Kill a chicken with a sickle that has fire aspect + Advancement chicken_kiev = Advancement.Builder.create() + .display( + NSE_Items.SICKLE, + Text.translatable("advancement.new_soviet.chicken_kiev.name"), + Text.translatable("advancement.new_soviet.chicken_kiev.desc"), + new Identifier("textures/gui/advancements/backgrounds/adventure.png"), + AdvancementFrame.TASK, + true, // Toast + true, // Announcement + false // Hidden + ) + .parent(sickle_kill) + .criterion("kill", OnKilledCriterion.Conditions.createPlayerKilledEntity(EntityPredicate.Builder.create().type(EntityType.CHICKEN), DamageSourcePredicate.Builder.create().sourceEntity(EntityPredicate.Builder.create().equipment(EntityEquipmentPredicate.Builder.create().mainhand(ItemPredicate.Builder.create().items(NSE_Items.SICKLE).enchantment(new EnchantmentPredicate(Enchantments.FIRE_ASPECT, NumberRange.IntRange.ANY)).build()).build())))) + .build(consumer, NewSoviet.MOD_ID + "/chicken_kiev"); // Throw a die 100 times Advancement gambler = Advancement.Builder.create() diff --git a/src/main/resources/assets/new_soviet/lang/en_us.json b/src/main/resources/assets/new_soviet/lang/en_us.json index 4fe8c83..fcdb89a 100644 --- a/src/main/resources/assets/new_soviet/lang/en_us.json +++ b/src/main/resources/assets/new_soviet/lang/en_us.json @@ -546,6 +546,8 @@ "advancement.new_soviet.sickle.desc": "Acquire a sickle", "advancement.new_soviet.sickle_kill.name": "Kolkhoz Warrior", "advancement.new_soviet.sickle_kill.desc": "Kill someone with a sickle", + "advancement.new_soviet.chicken_kiev.name": "Chicken Kiev", + "advancement.new_soviet.chicken_kiev.desc": "Kill a chicken with a fiery sickle", "advancement.new_soviet.gambler.name": "Gambler", "advancement.new_soviet.gambler.desc": "Roll dice 100 times", "advancement.new_soviet.serious_addiction.name": "Serious addiction",