From d3781f6f4873abe17462fadaecaac8aab971c224 Mon Sep 17 00:00:00 2001 From: DakotaPride Date: Mon, 16 Oct 2023 12:30:15 -0500 Subject: [PATCH] v1.1 --- .../garnished/item/MoltenStewFoodItem.java | 10 + .../garnished/item/hatchet/HatchetUtils.java | 355 ++++++++++++++++++ .../garnished/mixin/LivingEntityMixin.java | 43 ++- .../garnished/registry/GarnishedFoods.java | 3 + .../garnished/registry/GarnishedItems.java | 6 + .../assets/garnished/lang/en_ca.json | 8 +- .../assets/garnished/lang/en_us.json | 8 +- .../resources/assets/garnished/lang/lzh.json | 8 +- .../assets/garnished/lang/zh_cn.json | 98 ++--- .../garnished/models/item/molten_remnant.json | 6 + .../garnished/models/item/molten_stew.json | 6 + .../textures/item/enflamed_mandible.png | Bin 242 -> 253 bytes .../textures/item/molten_remnant.png | Bin 0 -> 247 bytes .../garnished/textures/item/molten_stew.png | Bin 0 -> 293 bytes .../data/garnished/recipes/molten_stew.json | 23 ++ 15 files changed, 503 insertions(+), 71 deletions(-) create mode 100644 src/main/java/net/dakotapride/garnished/item/MoltenStewFoodItem.java create mode 100644 src/main/java/net/dakotapride/garnished/item/hatchet/HatchetUtils.java create mode 100644 src/main/resources/assets/garnished/models/item/molten_remnant.json create mode 100644 src/main/resources/assets/garnished/models/item/molten_stew.json create mode 100644 src/main/resources/assets/garnished/textures/item/molten_remnant.png create mode 100644 src/main/resources/assets/garnished/textures/item/molten_stew.png create mode 100644 src/main/resources/data/garnished/recipes/molten_stew.json diff --git a/src/main/java/net/dakotapride/garnished/item/MoltenStewFoodItem.java b/src/main/java/net/dakotapride/garnished/item/MoltenStewFoodItem.java new file mode 100644 index 00000000..c9bd692f --- /dev/null +++ b/src/main/java/net/dakotapride/garnished/item/MoltenStewFoodItem.java @@ -0,0 +1,10 @@ +package net.dakotapride.garnished.item; + +import net.dakotapride.garnished.registry.GarnishedFoods; +import net.minecraft.world.item.Item; + +public class MoltenStewFoodItem extends Item implements IGarnishedItem { + public MoltenStewFoodItem(Properties properties) { + super(properties.food(GarnishedFoods.MOLTEN_STEW).stacksTo(1)); + } +} diff --git a/src/main/java/net/dakotapride/garnished/item/hatchet/HatchetUtils.java b/src/main/java/net/dakotapride/garnished/item/hatchet/HatchetUtils.java new file mode 100644 index 00000000..e4845f81 --- /dev/null +++ b/src/main/java/net/dakotapride/garnished/item/hatchet/HatchetUtils.java @@ -0,0 +1,355 @@ +package net.dakotapride.garnished.item.hatchet; + +import org.spongepowered.asm.mixin.Unique; + +import net.dakotapride.garnished.registry.GarnishedEnchantments; +import net.dakotapride.garnished.registry.GarnishedItems; +import net.dakotapride.garnished.registry.GarnishedTags; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.util.RandomSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; + +@SuppressWarnings("unused") +public class HatchetUtils { + // Information + // Maximum Level: 2 + // Minimum Level: 1 + // + // Grants additional drops depending on the level + static Enchantment salvaging = GarnishedEnchantments.SALVAGING.get(); + // Information + // Maximum Level: 1 + // Minimum Level: 1 + // + // Grants the player PVE/PVP benefits depending on the situation + static Enchantment ravaging = GarnishedEnchantments.RAVAGING.get(); + // random shit + public static final RandomSource random = RandomSource.create(); + + public HatchetUtils() {} + + public static void getDrops(LivingEntity entity, LivingEntity attacker) { + int singleCount = 1; + int count = singleCount + random.nextInt(2); + String mob = "Unavailable"; + String enchant = "Unavailable"; + + // Salvaging Loot Drops + if (hasSalvaging(attacker)) { + enchant = "Salvaging"; + + if (MobHelper.isFish(entity)) { + mob = "Fish"; + + int fishBoneDropChance = 0; + int additionalDropChance = 0; + + if (isCorrectEnchantmentLevel(salvaging, attacker, 1)) { + fishBoneDropChance = random.nextInt(6); + additionalDropChance = random.nextInt(20); + } else if (isCorrectEnchantmentLevel(salvaging, attacker, 2)) { + fishBoneDropChance = random.nextInt(3); + additionalDropChance = random.nextInt(8); + } + + if (fishBoneDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.BONE, count)); + } else if (additionalDropChance == 1 && isCorrectEnchantmentLevel(salvaging, attacker, 2)) { + int fishCount = singleCount + random.nextInt(2); + int tropicalFishCount = singleCount + random.nextInt(3); + + if (MobHelper.isSalmon(entity)) { + entity.spawnAtLocation(new ItemStack(Items.SALMON, fishCount)); + } else if (MobHelper.isCod(entity)) { + entity.spawnAtLocation(new ItemStack(Items.COD, fishCount)); + } else if (MobHelper.isPufferfish(entity)) { + entity.spawnAtLocation(new ItemStack(Items.PUFFERFISH, singleCount)); + } else if (MobHelper.isTropicalFish(entity)) { + entity.spawnAtLocation(new ItemStack(Items.TROPICAL_FISH, tropicalFishCount)); + } + } + } + + if (MobHelper.isSquidOrSimilar(entity)) { + mob = "SquidOrSimilar"; + + int additionalDropChance = 0; + int lichenDropChance = 0; + + if (isCorrectEnchantmentLevel(salvaging, attacker, 1)) { + additionalDropChance = random.nextInt(6); + lichenDropChance = random.nextInt(8); + } else if (isCorrectEnchantmentLevel(salvaging, attacker, 2)) { + additionalDropChance = random.nextInt(4); + lichenDropChance = random.nextInt(6); + } + + if (additionalDropChance == 1) { + int sacCount = singleCount + random.nextInt(3); + + if (MobHelper.isSquid(entity)) { + entity.spawnAtLocation(new ItemStack(Items.INK_SAC, sacCount)); + } else if (MobHelper.isGlowSquid(entity)) { + entity.spawnAtLocation(new ItemStack(Items.GLOW_INK_SAC, sacCount)); + } + } else if (lichenDropChance == 1 && MobHelper.isGlowSquid(entity)) { + int lichenDropCount = singleCount + random.nextInt(2); + + entity.spawnAtLocation(new ItemStack(Items.GLOW_LICHEN, lichenDropCount)); + } + } + + if (MobHelper.isFrog(entity)) { + mob = "Frog"; + + int magmaCreamDropChance = random.nextInt(28); + int moltenRemnantDropChance = 0; + + if (isCorrectEnchantmentLevel(salvaging, attacker, 1)) { + moltenRemnantDropChance = random.nextInt(60); + } else if (isCorrectEnchantmentLevel(salvaging, attacker, 2)) { + moltenRemnantDropChance = random.nextInt(40); + } + + if (magmaCreamDropChance == 1) { + int magmaCreamCount = singleCount + random.nextInt(2); + + entity.spawnAtLocation(new ItemStack(Items.MAGMA_CREAM, magmaCreamCount)); + } + + if (moltenRemnantDropChance == 1) { + int moltenRemnantCount = singleCount + random.nextInt(1); + + entity.spawnAtLocation(new ItemStack(GarnishedItems.MOLTEN_REMNANT.get(), moltenRemnantCount)); + } + } + } + + // Ravaging Loot Drops + if (hasRavaging(attacker)) { + enchant = "Ravaging"; + + if (MobHelper.isMagmaCube(entity)) { + mob = "MagmaCube"; + + int additionalDropChance = random.nextInt(8); + int additionalDropCount = singleCount + random.nextInt(3); + int moltenRemnantDropChance = random.nextInt(12); + int moltenRemnantDropCount = singleCount + random.nextInt(2); + int froglightDropChance = random.nextInt(16); + int froglightVariant = random.nextInt(3); + + if (additionalDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.MAGMA_CREAM, additionalDropCount)); + } else if (moltenRemnantDropChance == 1) { + entity.spawnAtLocation(new ItemStack(GarnishedItems.MOLTEN_REMNANT.get(), moltenRemnantDropCount)); + } + + if (froglightDropChance == 1) { + if (froglightVariant == 0) { + entity.spawnAtLocation(new ItemStack(Items.OCHRE_FROGLIGHT, singleCount)); + } else if (froglightVariant == 1) { + entity.spawnAtLocation(new ItemStack(Items.VERDANT_FROGLIGHT, singleCount)); + } else if (froglightVariant == 2) { + entity.spawnAtLocation(new ItemStack(Items.PEARLESCENT_FROGLIGHT, singleCount)); + } + } + } + + if (MobHelper.isBlaze(entity)) { + mob = "Blaze"; + + int additionalDropChance = random.nextInt(6); + int additionalDropCount = singleCount + random.nextInt(3); + int powderDropChance = random.nextInt(10); + int powderDropCount = singleCount + random.nextInt(2); + int mandibleDropChance = random.nextInt(16); + + if (additionalDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.BLAZE_ROD, additionalDropCount)); + } else if (powderDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.BLAZE_POWDER, powderDropCount)); + } + + if (mandibleDropChance == 1) { + entity.spawnAtLocation(new ItemStack(GarnishedItems.ENFLAMED_MANDIBLE.get(), singleCount)); + } + } + + if (MobHelper.isGhast(entity)) { + mob = "Ghast"; + + int additionalDropChance = random.nextInt(8); + int additionalDropCount = singleCount + random.nextInt(3); + int ghastTearDropChance = random.nextInt(12); + int ghastTearDropCount = singleCount + random.nextInt(2); + + if (additionalDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.GUNPOWDER, additionalDropCount)); + } else if (ghastTearDropChance == 1) { + entity.spawnAtLocation(new ItemStack(Items.GHAST_TEAR, ghastTearDropCount)); + } + } + } + + DevAssistance.printLootTableToConsole(enchant, mob); + } + + + public static boolean isAffectedByRavaging(Entity entity) { + return entity.getType().is(GarnishedTags.IS_AFFECTED_BY_RAVAGING); + } + + public static boolean isAffectedBySalvaging(Entity entity) { + return entity.getType().is(GarnishedTags.IS_AFFECTED_BY_SALVAGING); + } + + public static boolean hasRavaging(LivingEntity entity) { + return hasEnchantment(ravaging, entity); + } + + public static boolean hasSalvaging(LivingEntity entity) { + return hasEnchantment(salvaging, entity); + } + + public static boolean canApplyRavagingEffects(LivingEntity entity) { + return entity.getMainHandItem().is(GarnishedTags.HATCHETS_TAG) && hasEnchantment(ravaging, entity) && entity.getHealth() <= 10; + } + + + + @Unique + private static boolean hasEnchantment(Enchantment enchantment, LivingEntity entity) { + return EnchantmentHelper.getEnchantmentLevel(enchantment, entity) > 0; + } + + @Unique + private static boolean isCorrectEnchantmentLevel(Enchantment enchantment, LivingEntity entity, int level) { + return EnchantmentHelper.getEnchantmentLevel(enchantment, entity) == level; + } + + + public static class MobHelper { + public MobHelper() {} + + public static boolean isPhantom(Entity entity) { + return entity.getType() == EntityType.PHANTOM; + } + + public static boolean isWitherBoss(Entity entity) { + return entity.getType() == EntityType.WITHER; + } + + public static boolean isWitherSkeleton(Entity entity) { + return entity.getType() == EntityType.WITHER_SKELETON; + } + + public static boolean isSkeletonHorse(Entity entity) { + return entity.getType() == EntityType.SKELETON_HORSE; + } + + public static boolean isSkeleton(Entity entity) { + return entity.getType() == EntityType.SKELETON; + } + + public static boolean isSkeletonOrSimilar(Entity entity) { + return isWitherBoss(entity) || isWitherSkeleton(entity) || isSkeleton(entity) || isSkeletonHorse(entity) || isPhantom(entity); + } + + public static boolean isHusk(Entity entity) { + return entity.getType() == EntityType.HUSK; + } + + public static boolean isZombie(Entity entity) { + return entity.getType() == EntityType.ZOMBIE; + } + + public static boolean isZombieHorse(Entity entity) { + return entity.getType() == EntityType.ZOMBIE_HORSE; + } + + public static boolean isZombieOrSimilar(Entity entity) { + return isZombie(entity) || isHusk(entity) || isZombieHorse(entity); + } + + public static boolean isUndead(Entity entity) { + return isZombieOrSimilar(entity) || isSkeletonOrSimilar(entity); + } + + public static boolean isGhast(Entity entity) { + return entity.getType() == EntityType.GHAST; + } + + public static boolean isMagmaCube(Entity entity) { + return entity.getType() == EntityType.MAGMA_CUBE; + } + + public static boolean isBlaze(Entity entity) { + return entity.getType() == EntityType.BLAZE; + } + + public static boolean isSalmon(Entity entity) { + return entity.getType() == EntityType.SALMON; + } + + public static boolean isCod(Entity entity) { + return entity.getType() == EntityType.COD; + } + + public static boolean isPufferfish(Entity entity) { + return entity.getType() == EntityType.PUFFERFISH; + } + + public static boolean isTropicalFish(Entity entity) { + return entity.getType() == EntityType.TROPICAL_FISH; + } + + public static boolean isFish(Entity entity) { + return isSalmon(entity) || isCod(entity) || isPufferfish(entity) || isTropicalFish(entity); + } + + public static boolean isSquid(Entity entity) { + return entity.getType() == EntityType.SQUID; + } + + public static boolean isGlowSquid(Entity entity) { + return entity.getType() == EntityType.GLOW_SQUID; + } + + public static boolean isSquidOrSimilar(Entity entity) { + return isSquid(entity) || isGlowSquid(entity); + } + + public static boolean isFrog(Entity entity) { + return entity.getType() == EntityType.FROG; + } + + public static boolean isTadpole(Entity entity) { + return entity.getType() == EntityType.TADPOLE; + } + + public static boolean isFrogOrSimilar(Entity entity) { + return isFrog(entity) || isTadpole(entity); + } + + public static boolean isAllay(Entity entity) { + return entity.getType() == EntityType.ALLAY; + } + } + + public static class DevAssistance { + + public static void printLootTableToConsole(String enchant, String mob) { + if (FabricLoader.getInstance().isDevelopmentEnvironment()) { + System.out.println("[Create: Garnished] " + enchant + " Loot Tables Loaded (MobHelper.is" + mob + "(entity))"); + } + } + } + +} diff --git a/src/main/java/net/dakotapride/garnished/mixin/LivingEntityMixin.java b/src/main/java/net/dakotapride/garnished/mixin/LivingEntityMixin.java index a2c1fca6..2aca55b8 100644 --- a/src/main/java/net/dakotapride/garnished/mixin/LivingEntityMixin.java +++ b/src/main/java/net/dakotapride/garnished/mixin/LivingEntityMixin.java @@ -1,5 +1,9 @@ package net.dakotapride.garnished.mixin; +import net.dakotapride.garnished.item.hatchet.HatchetUtils; + +import net.minecraft.world.effect.MobEffectInstance; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -43,27 +47,20 @@ public LivingEntityMixin(EntityType entityType, Level level) { if (entity.hasEffect(MobEffects.BLINDNESS)) entity.removeEffect(MobEffects.BLINDNESS); } - } - @Unique - private boolean isEnchantmentLevelHigherThan(Enchantment enchantment, int level) { - return EnchantmentHelper.getEnchantmentLevel(enchantment, entity) > level; + if (HatchetUtils.canApplyRavagingEffects(entity)) { + entity.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 200, 1)); + } } @Inject(method = "dropCustomDeathLoot", at = @At("HEAD")) private void dropsFromHatchet$dropFromLootTable(DamageSource source, int looting, boolean hitByPlayer, CallbackInfo ci) { - LivingEntity attacker = (LivingEntity) source.getEntity(); + // LivingEntity attacker = (LivingEntity) source.getEntity(); - if (attacker instanceof Player player) { + if (source.getEntity() instanceof LivingEntity attacker && attacker instanceof Player player) { if (player.getMainHandItem().is(GarnishedTags.HATCHETS_TAG)) { - if (isEnchantmentLevelHigherThan(GarnishedEnchantments.SALVAGING.get(), 0) - && entity.getType().is(GarnishedTags.IS_AFFECTED_BY_SALVAGING)) { - // added loot table goes here - } - - if (isEnchantmentLevelHigherThan(GarnishedEnchantments.RAVAGING.get(), 0) - && entity.getType().is(GarnishedTags.IS_AFFECTED_BY_RAVAGING)) { - // added loot table goes here + if (HatchetUtils.hasSalvaging(attacker) || HatchetUtils.hasRavaging(attacker)) { + HatchetUtils.getDrops(entity, attacker); } } } @@ -71,16 +68,18 @@ private boolean isEnchantmentLevelHigherThan(Enchantment enchantment, int level) @Inject(method = "getDamageAfterMagicAbsorb", at = @At("HEAD")) private void spiritedResistanceThorns$getDamageAfterMagicAbsorb(DamageSource source, float amount, CallbackInfoReturnable cir) { - LivingEntity attacker = (LivingEntity) source.getEntity(); + // LivingEntity attacker = (LivingEntity) source.getEntity(); - boolean isSkeleton = attacker instanceof Skeleton; - boolean isWitherSkeleton = attacker instanceof WitherSkeleton; - boolean isWither = attacker instanceof WitherBoss; - boolean isGhast = attacker instanceof Ghast; + if (source.getEntity() instanceof LivingEntity attacker) { + boolean isSkeleton = attacker instanceof Skeleton; + boolean isWitherSkeleton = attacker instanceof WitherSkeleton; + boolean isWither = attacker instanceof WitherBoss; + boolean isGhast = attacker instanceof Ghast; - if (entity.hasEffect(GarnishedEffects.SPIRITED_RESISTANCE)) { - if (isSkeleton || isWitherSkeleton || isWither || isGhast) { - attacker.hurt(source, amount * 1.336745F); + if (entity.hasEffect(GarnishedEffects.SPIRITED_RESISTANCE)) { + if (isSkeleton || isWitherSkeleton || isWither || isGhast) { + attacker.hurt(source, amount * 1.336745F); + } } } } diff --git a/src/main/java/net/dakotapride/garnished/registry/GarnishedFoods.java b/src/main/java/net/dakotapride/garnished/registry/GarnishedFoods.java index 77f1ab7a..6ca1fe77 100644 --- a/src/main/java/net/dakotapride/garnished/registry/GarnishedFoods.java +++ b/src/main/java/net/dakotapride/garnished/registry/GarnishedFoods.java @@ -90,6 +90,9 @@ public class GarnishedFoods implements IGarnishedItem { public static final FoodProperties MULCH = new FoodProperties.Builder().nutrition(5).saturationMod(0.3F).build(); public static final FoodProperties MUD_PIE = new FoodProperties.Builder().nutrition(9).saturationMod(0.2F).build(); + // Snare & Tear + public static final FoodProperties MOLTEN_STEW = new FoodProperties.Builder().nutrition(12).saturationMod(0.6F).build(); + // Farmer's Delight Foods public static final FoodProperties PECAN_PIE_SLICE = new FoodProperties.Builder().nutrition(3).saturationMod(0.4F).build(); public static final FoodProperties PHANTOM_BURGER = new FoodProperties.Builder().nutrition(14).saturationMod(0.9F).build(); diff --git a/src/main/java/net/dakotapride/garnished/registry/GarnishedItems.java b/src/main/java/net/dakotapride/garnished/registry/GarnishedItems.java index fb1b0f67..c39ef646 100644 --- a/src/main/java/net/dakotapride/garnished/registry/GarnishedItems.java +++ b/src/main/java/net/dakotapride/garnished/registry/GarnishedItems.java @@ -393,6 +393,12 @@ public class GarnishedItems { public static final ItemEntry MUD_PIE = REGISTRATE.item("mud_pie", MudPieFoodItem::new).register(); + // Garnished v1.1: Snare & Tear + public static final ItemEntry MOLTEN_REMNANT = + REGISTRATE.item("molten_remnant", Item::new).register(); + public static final ItemEntry MOLTEN_STEW = + REGISTRATE.item("molten_stew", MoltenStewFoodItem::new).register(); + // Hatchets public static final ItemEntry WOODEN_HATCHET = REGISTRATE.item("wooden_hatchet", WoodenHatchetToolItem::new).register(); diff --git a/src/main/resources/assets/garnished/lang/en_ca.json b/src/main/resources/assets/garnished/lang/en_ca.json index 0986ca23..b0d8ac12 100644 --- a/src/main/resources/assets/garnished/lang/en_ca.json +++ b/src/main/resources/assets/garnished/lang/en_ca.json @@ -213,7 +213,7 @@ "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Tipped Arrow of Blindness", - "item.garnished.bottled_ender_jelly": "Bottle of Ender Jelly", + "item.garnished.ender_jelly_bottle": "Bottle of Ender Jelly", "item.garnished.chorus_cocktail": "Chorus Cocktail", "item.garnished.cosmic_brew": "Cosmic Brew", "item.garnished.desolate_stew": "Desolate Stew", @@ -234,6 +234,8 @@ "block.garnished.ender_jelly_block": "Block of Ender Jelly", "block.garnished.ungarnished_nut_block": "Block of Ungarnished Nuts", "block.garnished.garnished_nut_block": "Block of Garnished Nuts", + "block.garnished.small_chorus_plant": "Small Chorus Plant", + "block.garnished.barren_roots": "Barren Roots", "effect.garnished.cognate": "Cognate", "effect.garnished.flagrant": "Flagrant", "item.minecraft.potion.effect.flagrant": "Potion of Flagrance", @@ -250,6 +252,9 @@ "enchantment.garnished.salvaging": "Salvaging", "enchantment.garnished.ravaging": "Ravaging", + "item.garnished.molten_remnant": "Molten Remnant", + "item.garnished.molten_stew": "Molten Stew", + "block.garnished.peanut_sack": "Compacted Nut Sack", "block.garnished.cashew_sack": "Compacted Nut Sack", "block.garnished.almond_sack": "Compacted Nut Sack", @@ -267,6 +272,7 @@ "block.garnished.macadamia_leaves": "Nut Leaves", "block.garnished.pistachio_leaves": "Nut Leaves", "block.garnished.hazelnut_leaves": "Nut Leaves", + "block.garnished.pecan_leaves": "Nut Leaves", "item.garnished.garnish_bucket": "Bucket of Garnish", "item.garnished.apple_cider_bucket": "Bucket of Apple Cider", diff --git a/src/main/resources/assets/garnished/lang/en_us.json b/src/main/resources/assets/garnished/lang/en_us.json index ed31d6d8..a958c2af 100644 --- a/src/main/resources/assets/garnished/lang/en_us.json +++ b/src/main/resources/assets/garnished/lang/en_us.json @@ -213,7 +213,7 @@ "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Tipped Arrow of Blindness", - "item.garnished.bottled_ender_jelly": "Bottle of Ender Jelly", + "item.garnished.ender_jelly_bottle": "Bottle of Ender Jelly", "item.garnished.chorus_cocktail": "Chorus Cocktail", "item.garnished.cosmic_brew": "Cosmic Brew", "item.garnished.desolate_stew": "Desolate Stew", @@ -234,6 +234,8 @@ "block.garnished.ender_jelly_block": "Block of Ender Jelly", "block.garnished.ungarnished_nut_block": "Block of Ungarnished Nuts", "block.garnished.garnished_nut_block": "Block of Garnished Nuts", + "block.garnished.small_chorus_plant": "Small Chorus Plant", + "block.garnished.barren_roots": "Barren Roots", "effect.garnished.cognate": "Cognate", "effect.garnished.flagrant": "Flagrant", "item.minecraft.potion.effect.flagrant": "Potion of Flagrance", @@ -250,6 +252,9 @@ "enchantment.garnished.salvaging": "Salvaging", "enchantment.garnished.ravaging": "Ravaging", + "item.garnished.molten_remnant": "Molten Remnant", + "item.garnished.molten_stew": "Molten Stew", + "block.garnished.peanut_sack": "Compacted Nut Sack", "block.garnished.cashew_sack": "Compacted Nut Sack", "block.garnished.almond_sack": "Compacted Nut Sack", @@ -267,6 +272,7 @@ "block.garnished.macadamia_leaves": "Nut Leaves", "block.garnished.pistachio_leaves": "Nut Leaves", "block.garnished.hazelnut_leaves": "Nut Leaves", + "block.garnished.pecan_leaves": "Nut Leaves", "item.garnished.garnish_bucket": "Bucket of Garnish", "item.garnished.apple_cider_bucket": "Bucket of Apple Cider", diff --git a/src/main/resources/assets/garnished/lang/lzh.json b/src/main/resources/assets/garnished/lang/lzh.json index 9cccd623..ba220b3e 100644 --- a/src/main/resources/assets/garnished/lang/lzh.json +++ b/src/main/resources/assets/garnished/lang/lzh.json @@ -213,7 +213,7 @@ "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Tipped Arrow of Blindness", - "item.garnished.bottled_ender_jelly": "Bottle of Ender Jelly", + "item.garnished.ender_jelly_bottle": "Bottle of Ender Jelly", "item.garnished.chorus_cocktail": "Chorus Cocktail", "item.garnished.cosmic_brew": "Cosmic Brew", "item.garnished.desolate_stew": "Desolate Stew", @@ -234,6 +234,8 @@ "block.garnished.ender_jelly_block": "Block of Ender Jelly", "block.garnished.ungarnished_nut_block": "Block of Ungarnished Nuts", "block.garnished.garnished_nut_block": "Block of Garnished Nuts", + "block.garnished.small_chorus_plant": "Small Chorus Plant", + "block.garnished.barren_roots": "Barren Roots", "effect.garnished.cognate": "Cognate", "effect.garnished.flagrant": "Flagrant", "item.minecraft.potion.effect.flagrant": "Potion of Flagrance", @@ -250,6 +252,9 @@ "enchantment.garnished.salvaging": "Salvaging", "enchantment.garnished.ravaging": "Ravaging", + "item.garnished.molten_remnant": "Molten Remnant", + "item.garnished.molten_stew": "Molten Stew", + "block.garnished.peanut_sack": "Compacted Nut Sack", "block.garnished.cashew_sack": "Compacted Nut Sack", "block.garnished.almond_sack": "Compacted Nut Sack", @@ -267,6 +272,7 @@ "block.garnished.macadamia_leaves": "Nut Leaves", "block.garnished.pistachio_leaves": "Nut Leaves", "block.garnished.hazelnut_leaves": "Nut Leaves", + "block.garnished.pecan_leaves": "Nut Leaves", "item.garnished.garnish_bucket": "Bucket of Garnish", "item.garnished.apple_cider_bucket": "Bucket of Apple Cider", diff --git a/src/main/resources/assets/garnished/lang/zh_cn.json b/src/main/resources/assets/garnished/lang/zh_cn.json index ba7eb0b7..1fb2a8b6 100644 --- a/src/main/resources/assets/garnished/lang/zh_cn.json +++ b/src/main/resources/assets/garnished/lang/zh_cn.json @@ -19,7 +19,7 @@ "text.garnished.cider.bitter": "苦涩[按住SHIFT]", "text.garnished.cider.cryptic.desc": "这款苹果西打酒会提供给客户", "text.garnished.cider.cryptic.desc.secondary": "力量或者缓慢效果之一", - "text.garnished.cider.cryptic.desc.third": "50比50的可能性,你会喝它吗?", + "text.garnished.cider.cryptic.desc.third": "五五开的概率,你会喝它吗?", "text.garnished.cider.cryptic.desc.wither": "在被喝掉时消除饮用者的凋零效果", "text.garnished.peanut_oil.desc.poison": "在被喝掉时消除饮用者的中毒效果", "text.garnished.cashew_fruit.poisoning": "你会吃它吗?", @@ -30,8 +30,8 @@ "item.garnished.pecan_pie_slice": "美国山核桃派切片", "item.garnished.phantom_beef_patty": "魂影肉饼", "item.garnished.phantom_burger": "魂影汉堡", - "item.garnished.glow_ink_roll": "Glow Ink Roll", // - "item.garnished.glow_ink_roll_slice": "Glow Ink Roll Slice", // + "item.garnished.glow_ink_roll": "荧光墨囊卷", + "item.garnished.glow_ink_roll_slice": "荧光墨囊卷切片", "text.garnished.integration.farmersdelight.missing": "请下载农夫乐事!", "item.garnished.cashew": "腰果", @@ -206,49 +206,54 @@ "item.garnished.incomplete_senile_sweet_basalt": "衰糖(半成品)", "item.garnished.incomplete_senile_sweet_scoria": "衰糖(半成品)", "item.garnished.incomplete_senile_sweet_scorchia": "衰糖(半成品)", - "item.garnished.nut_nacho": "加坚果的烤干酪辣味玉米片", - "item.garnished.nut_nacho_bowl": "加坚果的烤干酪辣味玉米片碗", - "item.minecraft.potion.effect.blindness": "Potion of Blindness", // - "item.minecraft.splash_potion.effect.blindness": "Splash Potion of Blindness", // - "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", // - "item.minecraft.tipped_arrow.effect.blindness": "Tipped Arrow of Blindness", // + "item.garnished.nut_nacho": "墨西哥坚果玉米片", + "item.garnished.nut_nacho_bowl": "碗装墨西哥坚果玉米片", + "item.minecraft.potion.effect.blindness": "失明药水", + "item.minecraft.splash_potion.effect.blindness": "喷溅型失明药水", + "item.minecraft.lingering_potion.effect.blindness": "滞留型失明药水", + "item.minecraft.tipped_arrow.effect.blindness": "失明之箭", - "item.garnished.bottled_ender_jelly": "Bottle of Ender Jelly", // - "item.garnished.chorus_cocktail": "Chorus Cocktail", // - "item.garnished.cosmic_brew": "Cosmic Brew", // - "item.garnished.desolate_stew": "Desolate Stew", // - "item.garnished.ethereal_concoction": "Ethereal Concoction", // - "item.garnished.void_mixture": "Void Mixture", // - "item.garnished.chorus_bowl": "Chorus Bowl", // - "item.garnished.chorus_cookie": "Chorus Cookie", // - "item.garnished.ender_jelly": "Ender Jelly", // - "item.garnished.illuminating_cocktail": "Illuminating Cocktail", // - "item.garnished.void_dust": "Void Dust", // - "item.garnished.chorus_tuft": "Chorus Tuft", // - "item.garnished.hollowed_chorus_fruit": "Hollowed Chorus Fruit", // - "item.garnished.ethereal_compound": "Ethereal Compound", // - "item.garnished.cosmic_powder": "Cosmic Powder", // - "item.garnished.mulch": "Mulch", // - "item.garnished.mud_pie": "Mud Pie", // - "item.garnished.desolate_spread": "Desolate Spread", // - "block.garnished.ender_jelly_block": "Block of Ender Jelly", // - "block.garnished.ungarnished_nut_block": "Block of Ungarnished Nuts", // - "block.garnished.garnished_nut_block": "Block of Garnished Nuts", // - "effect.garnished.cognate": "Cognate", // - "effect.garnished.flagrant": "Flagrant", // - "item.minecraft.potion.effect.flagrant": "Potion of Flagrance", // - "item.minecraft.splash_potion.effect.flagrant": "Splash Potion of Flagrance", // - "item.minecraft.lingering_potion.effect.flagrant": "Lingering Potion of Flagrance", // - "item.minecraft.tipped_arrow.effect.flagrant": "Tipped Arrow of Flagrance", // + "item.garnished.ender_jelly_bottle": "末影果冻瓶", + "item.garnished.chorus_cocktail": "紫颂鸡尾酒", + "item.garnished.cosmic_brew": "寰宇煮", + "item.garnished.desolate_stew": "荒芜炖", + "item.garnished.ethereal_concoction": "以太混剂", + "item.garnished.void_mixture": "虚空混合物", + "item.garnished.chorus_bowl": "紫颂碗", + "item.garnished.chorus_cookie": "紫颂曲奇", + "item.garnished.ender_jelly": "末影果冻", + "item.garnished.illuminating_cocktail": "明亮鸡尾酒", + "item.garnished.void_dust": "虚空尘", + "item.garnished.chorus_tuft": "紫颂簇", + "item.garnished.hollowed_chorus_fruit": "中空紫颂果", + "item.garnished.ethereal_compound": "以太混合物", + "item.garnished.cosmic_powder": "寰宇粉", + "item.garnished.mulch": "护根", + "item.garnished.mud_pie": "泥派", + "item.garnished.desolate_spread": "荒芜酱", + "block.garnished.ender_jelly_block": "块状末影果冻", + "block.garnished.ungarnished_nut_block": "块状未装食坚果", + "block.garnished.garnished_nut_block": "块状装食坚果", + "block.garnished.small_chorus_plant": "小型紫颂植株", + "block.garnished.barren_roots": "贫瘠根须", + "effect.garnished.cognate": "同类", + "effect.garnished.flagrant": "臭名昭著", + "item.minecraft.potion.effect.flagrant": "臭名昭著药水", + "item.minecraft.splash_potion.effect.flagrant": "喷溅型臭名昭著药水", + "item.minecraft.lingering_potion.effect.flagrant": "滞留型臭名昭著药水", + "item.minecraft.tipped_arrow.effect.flagrant": "臭名昭著之箭", - "item.garnished.wooden_hatchet": "Wooden Hatchet", // - "item.garnished.stone_hatchet": "Stone Hatchet", // - "item.garnished.iron_hatchet": "Iron Hatchet", // - "item.garnished.golden_hatchet": "Golden Hatchet", // - "item.garnished.diamond_hatchet": "Diamond Hatchet", // - "item.garnished.netherite_hatchet": "Netherite Hatchet", // - "enchantment.garnished.salvaging": "Salvaging", // - "enchantment.garnished.ravaging": "Ravaging", // + "item.garnished.wooden_hatchet": "木短柄斧", + "item.garnished.stone_hatchet": "石短柄斧", + "item.garnished.iron_hatchet": "铁短柄斧", + "item.garnished.golden_hatchet": "金短柄斧", + "item.garnished.diamond_hatchet": "钻石短柄斧", + "item.garnished.netherite_hatchet": "下界合金短柄斧", + "enchantment.garnished.salvaging": "回收", + "enchantment.garnished.ravaging": "破裂", + + "item.garnished.molten_remnant": "Molten Remnant", // + "item.garnished.molten_stew": "Molten Stew", // "block.garnished.peanut_sack": "压实坚果袋", "block.garnished.cashew_sack": "压实坚果袋", @@ -267,6 +272,7 @@ "block.garnished.macadamia_leaves": "坚果树叶", "block.garnished.pistachio_leaves": "坚果树叶", "block.garnished.hazelnut_leaves": "坚果树叶", + "block.garnished.pecan_leaves": "坚果树叶", "item.garnished.garnish_bucket": "装食桶", "item.garnished.apple_cider_bucket": "苹果西打桶", @@ -288,7 +294,7 @@ "item.garnished.garnish_compound": "装食混合物", "item.garnished.garnish_powder": "粉状装食", - "death.attack.garnished.mulch_munching": "%s munched on too much mulch", // + "death.attack.garnished.mulch_munching": "%s啃了太多护根", "advancement.garnished.nut_tree.title": "广袤荒野", "advancement.garnished.nut_tree.description": "通过探索世界获得未装食的坚果", @@ -316,7 +322,7 @@ "advancement.garnished.apple_cider.description": "将平锅、水、粉碎坚果和装食混合物混合到一起制成苹果西打", "advancement.garnished.cryptic_apple_cider.title": "豪赌", "advancement.garnished.cryptic_apple_cider.description": "将花放到苹果西打瓶中", - "advancement.garnished.ina_buhg.title": "这是个巴格", + "advancement.garnished.ina_buhg.title": "这是花僧", "advancement.garnished.ina_buhg.description": "获得花生的一些变种", "advancement.garnished.walnut_brownie.title": "别发飙啦", "advancement.garnished.walnut_brownie.description": "获得核桃布朗尼", diff --git a/src/main/resources/assets/garnished/models/item/molten_remnant.json b/src/main/resources/assets/garnished/models/item/molten_remnant.json new file mode 100644 index 00000000..0c9645ad --- /dev/null +++ b/src/main/resources/assets/garnished/models/item/molten_remnant.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "garnished:item/molten_remnant" + } +} diff --git a/src/main/resources/assets/garnished/models/item/molten_stew.json b/src/main/resources/assets/garnished/models/item/molten_stew.json new file mode 100644 index 00000000..5848640a --- /dev/null +++ b/src/main/resources/assets/garnished/models/item/molten_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "garnished:item/molten_stew" + } +} diff --git a/src/main/resources/assets/garnished/textures/item/enflamed_mandible.png b/src/main/resources/assets/garnished/textures/item/enflamed_mandible.png index 0a7249803652195124f2ffad7fe3f37a98b091a0..d2710d64c59ceb405d4c0504c0ae72e29b0ca308 100644 GIT binary patch delta 196 zcmeyw_?K~lW4&B}Pl)TEX$%)D82(??`2WNG|NoZNrHtJsj5&r3@l1>i3=9q(X*@uR zt0c%T_&*FVY&xTJ9w^FL;1OBOz`%DHgc*e;Iz<`6(S$y|Bc*^(NzG*SSWH9$SPCHCz?RN_ONk*Pr~0 n+sO8i%s(g5gZ~@vvd-ie^I~sI4ww)DG@ilJ)z4*}Q$iB}Ym`h} delta 185 zcmey%_=$0XW4%OxPl)TkHM#%VE&d;?|95x(lOoo?U$$HiZ{*o`LfVRH?zSbOo=0T?rdW=qo%;NTg;1$tQTlq f{{7%>(;0RgTe~DWM4fIfqLp diff --git a/src/main/resources/assets/garnished/textures/item/molten_remnant.png b/src/main/resources/assets/garnished/textures/item/molten_remnant.png new file mode 100644 index 0000000000000000000000000000000000000000..ff23df7460e9ae85e380c34116f09ea781933963 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|^0G|+7V?j2cu4r>{cSSyBHYT7j&-3P)K#Hv-$S?Rm2rz8kzhpm9gtNdS zvY3H^?=T269?xHq0u+q#ba4#P2#)RZ7CNB7<8<=TH$=q)4gTe~DWM4fVf9Kn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/garnished/textures/item/molten_stew.png b/src/main/resources/assets/garnished/textures/item/molten_stew.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa5bced3331b597356a9ca8e76604798907f0c7 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}Z0G|+7du?uaMLuOVrY|r3j@=25HW$CzssJ?S)pB)XLAJdP67r%o;H4FXugDp7?6gh#q&Hl(P22#Q$L4LviF#yA++B+OTY0d(V$YKTtzQZ8Qcszea z3Q#c2)5S4FBY5qJ(|ipE94;5dR@e55{ruk_dLZM`vEIoO3j8Nr|JR)G`MS}iDQQMl z`b$)wJ8d<4#g}n<*V7q|+-%IO44a$Z9A2KQuy^yaZOxOO^Pb=5@Pt8X55IS+phOkW O1_n=8KbLh*2~7a~^l0z^ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/garnished/recipes/molten_stew.json b/src/main/resources/data/garnished/recipes/molten_stew.json new file mode 100644 index 00000000..542a2673 --- /dev/null +++ b/src/main/resources/data/garnished/recipes/molten_stew.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:bowl" + }, + { + "item": "garnished:molten_remnant" + }, + { + "item": "minecraft:magma_cream" + }, + { + "item": "minecraft:magma_cream" + }, + { + "item": "garnished:blaze_powder" + } + ], + "result": { + "item": "garnished:molten_stew" + } +}