From 82bc317bc1553c4d32e27e4d74354d20e8bb059c Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 19 Feb 2021 10:34:26 +0200 Subject: [PATCH] Added recipes for the crystal heart --- .../unicopia/item/CrystalHeartItem.java | 4 ++- .../minelittlepony/unicopia/item/UItems.java | 2 ++ .../unicopia/item/URecipes.java | 17 ++++++++++- .../resources/assets/unicopia/lang/en_us.json | 1 + .../unicopia/models/item/crystal_shard.json | 6 ++++ .../unicopia/textures/item/crystal_shard.png | Bin 0 -> 3203 bytes .../data/unicopia/recipes/crystal_heart.json | 16 ++++++++++ .../loot_tables/blocks/diamond_ore.json | 28 ++++++++++++++++++ 8 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/unicopia/models/item/crystal_shard.json create mode 100644 src/main/resources/assets/unicopia/textures/item/crystal_shard.png create mode 100644 src/main/resources/data/unicopia/recipes/crystal_heart.json create mode 100644 src/main/resources/data/unicopiamc/loot_tables/blocks/diamond_ore.json diff --git a/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java b/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java index c7b6ef52..00f05454 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/CrystalHeartItem.java @@ -25,6 +25,7 @@ import net.minecraft.entity.passive.TameableEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; import net.minecraft.particle.ParticleTypes; import net.minecraft.predicate.entity.EntityPredicates; @@ -151,7 +152,8 @@ public class CrystalHeartItem extends Item implements FloatingArtefactEntity.Art @Override public ActionResult onArtifactDestroyed(FloatingArtefactEntity entity) { entity.playSound(SoundEvents.BLOCK_BEACON_DEACTIVATE, 0.75F, 1); - return ActionResult.PASS; + entity.dropStack(new ItemStack(UItems.CRYSTAL_SHARD, 1 + entity.world.random.nextInt(5)), 0); + return ActionResult.SUCCESS; } private boolean findStructure(FloatingArtefactEntity entity) { diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index f9674a0e..542be7ba 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -56,6 +56,8 @@ public interface UItems { Item ZAP_APPLE_JAM_JAR = register("zap_apple_jam_jar", new JarItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1).fireproof(), false, false, true)); Item CRYSTAL_HEART = register("crystal_heart", new CrystalHeartItem(new Item.Settings().group(ItemGroup.DECORATIONS).maxCount(1))); + Item CRYSTAL_SHARD = register("crystal_shard", new Item(new Item.Settings().group(ItemGroup.MATERIALS))); + static T register(String name, T item) { ITEMS.add(item); diff --git a/src/main/java/com/minelittlepony/unicopia/item/URecipes.java b/src/main/java/com/minelittlepony/unicopia/item/URecipes.java index 1ab65a9c..5f9c4ce5 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/URecipes.java +++ b/src/main/java/com/minelittlepony/unicopia/item/URecipes.java @@ -2,6 +2,9 @@ package com.minelittlepony.unicopia.item; import com.google.gson.JsonArray; +import net.fabricmc.fabric.api.loot.v1.FabricLootSupplier; +import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback; +import net.minecraft.loot.LootTable; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeSerializer; @@ -45,5 +48,17 @@ public interface URecipes { return defaultedList; } - static void bootstrap() {} + static void bootstrap() { + LootTableLoadingCallback.EVENT.register((res, manager, id, supplier, setter) -> { + if (!"minecraft".contentEquals(id.getNamespace())) { + return; + } + + Identifier modId = new Identifier("unicopiamc", id.getPath()); + LootTable table = manager.getTable(modId); + if (table != LootTable.EMPTY) { + supplier.withPools(((FabricLootSupplier)table).getPools()); + } + }); + } } \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 190a733d..43a9e6a4 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -24,6 +24,7 @@ "item.unicopia.zap_apple_jam_jar": "Zap Apple Jam", "item.unicopia.crystal_heart": "Crystal Heart", + "item.unicopia.crystal_shard": "Crystal Shard", "item.unicopia.music_disc_pet": "Music Disc", "item.unicopia.music_disc_pet.desc": "Danial Ingram - pet", diff --git a/src/main/resources/assets/unicopia/models/item/crystal_shard.json b/src/main/resources/assets/unicopia/models/item/crystal_shard.json new file mode 100644 index 00000000..df4cbc3d --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/crystal_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/crystal_shard" + } +} diff --git a/src/main/resources/assets/unicopia/textures/item/crystal_shard.png b/src/main/resources/assets/unicopia/textures/item/crystal_shard.png new file mode 100644 index 0000000000000000000000000000000000000000..d49a7c8947750f6344bf1477ea02978713962012 GIT binary patch literal 3203 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/unicopia/recipes/crystal_heart.json b/src/main/resources/data/unicopia/recipes/crystal_heart.json new file mode 100644 index 00000000..9f100a13 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/crystal_heart.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "* *", + "***", + " * " + ], + "key": { + "*": { + "item": "unicopia:crystal_shard" + } + }, + "result": { + "item": "unicopia:crystal_heart" + } +} \ No newline at end of file diff --git a/src/main/resources/data/unicopiamc/loot_tables/blocks/diamond_ore.json b/src/main/resources/data/unicopiamc/loot_tables/blocks/diamond_ore.json new file mode 100644 index 00000000..48c8b6cc --- /dev/null +++ b/src/main/resources/data/unicopiamc/loot_tables/blocks/diamond_ore.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { "condition": "minecraft:random_chance", "chance": 0.125 } + ], + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { "bonusMultiplier": 2 } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "unicopia:crystal_shard" + } + ] + } + ] +} \ No newline at end of file