From e8aaafbb758e87d69d0c2da41fb1ed7188766ac1 Mon Sep 17 00:00:00 2001 From: Sollace Date: Wed, 26 Sep 2018 20:53:35 +0200 Subject: [PATCH] Added alfalfa based foods and recipes --- .../com/minelittlepony/unicopia/UItems.java | 20 ++++++++++++--- .../com/minelittlepony/unicopia/Unicopia.java | 13 +++++++++- .../unicopia/block/BlockAlfalfa.java | 23 ++++++++++++++++-- .../resources/assets/unicopia/lang/en_US.lang | 3 +++ .../unicopia/models/item/alfalfa_leaves.json | 6 +++++ .../assets/unicopia/models/item/cereal.json | 6 +++++ .../assets/unicopia/recipes/anvil.json | 21 ++++++++++++++++ .../assets/unicopia/recipes/cereal.json | 22 +++++++++++++++++ .../textures/items/alfalfa_leaves.png | Bin 0 -> 3022 bytes .../assets/unicopia/textures/items/cereal.png | Bin 0 -> 304 bytes 10 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/assets/unicopia/models/item/alfalfa_leaves.json create mode 100644 src/main/resources/assets/unicopia/models/item/cereal.json create mode 100644 src/main/resources/assets/unicopia/recipes/anvil.json create mode 100644 src/main/resources/assets/unicopia/recipes/cereal.json create mode 100644 src/main/resources/assets/unicopia/textures/items/alfalfa_leaves.png create mode 100644 src/main/resources/assets/unicopia/textures/items/cereal.png diff --git a/src/main/java/com/minelittlepony/unicopia/UItems.java b/src/main/java/com/minelittlepony/unicopia/UItems.java index 0f8e26e2..f81395c3 100644 --- a/src/main/java/com/minelittlepony/unicopia/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/UItems.java @@ -20,7 +20,9 @@ import net.minecraft.init.Enchantments; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemDoor; -import net.minecraft.item.ItemSeeds; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemSeedFood; +import net.minecraft.item.ItemSoup; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.IRecipe; @@ -77,10 +79,18 @@ public class UItems { public static final ItemOfHolding bag_of_holding = new ItemOfHolding(Unicopia.MODID, "bag_of_holding"); - public static final Item alfalfa_seeds = new ItemSeeds(UBlocks.alfalfa, Blocks.FARMLAND) + public static final Item alfalfa_seeds = new ItemSeedFood(1, 4, UBlocks.alfalfa, Blocks.FARMLAND) .setTranslationKey("alfalfa_seeds") .setRegistryName(Unicopia.MODID, "alfalfa_seeds"); + public static final Item alfalfa_leaves = new ItemFood(1, 3, false) + .setTranslationKey("alfalfa_leaves") + .setRegistryName(Unicopia.MODID, "alfalfa_leaves"); + + public static final Item cereal = new ItemSoup(15) + .setTranslationKey("cereal") + .setRegistryName(Unicopia.MODID, "cereal"); + static void registerItems(IForgeRegistry registry) { RegistryLockSpinner.unlock(Item.REGISTRY); @@ -88,10 +98,12 @@ public class UItems { RegistryLockSpinner.lock(Item.REGISTRY); + + registry.registerAll(cloud_spawner, dew_drop, cloud_matter, cloud_block, cloud_stairs, cloud_slab, mist_door, anvil, bag_of_holding, spell, curse, - alfalfa_seeds); + alfalfa_seeds, alfalfa_leaves, cereal); if (UClient.isClientSide()) { registerAllVariants(apple, apple.getVariants()); @@ -107,6 +119,8 @@ public class UItems { registerAllVariants(spell, "gem"); registerAllVariants(curse, "corrupted_gem"); registerAllVariants(alfalfa_seeds, "alfalfa_seeds"); + registerAllVariants(alfalfa_leaves, "alfalfa_leaves"); + registerAllVariants(cereal, "cereal"); } registerFuels(); diff --git a/src/main/java/com/minelittlepony/unicopia/Unicopia.java b/src/main/java/com/minelittlepony/unicopia/Unicopia.java index 43f1957a..c83ce30f 100644 --- a/src/main/java/com/minelittlepony/unicopia/Unicopia.java +++ b/src/main/java/com/minelittlepony/unicopia/Unicopia.java @@ -1,6 +1,7 @@ package com.minelittlepony.unicopia; import net.minecraft.block.Block; +import net.minecraft.block.BlockCrops; import net.minecraft.client.Minecraft; import net.minecraft.init.Blocks; import net.minecraft.item.EnumAction; @@ -154,7 +155,9 @@ public class Unicopia { @SubscribeEvent public static void onBlockHarvested(BlockEvent.HarvestDropsEvent event) { - if (event.getState().getBlock() == Blocks.STONE) { + Block block = event.getState().getBlock(); + + if (block == Blocks.STONE) { int fortuneFactor = 1 + event.getFortuneLevel() * 15; if (event.getWorld().rand.nextInt(500 / fortuneFactor) == 0) { @@ -166,6 +169,14 @@ public class Unicopia { } } } + } else if (block instanceof BlockCrops) { + int fortuneFactor = 1 + event.getFortuneLevel() * 15; + + if (event.getWorld().rand.nextInt(500 / fortuneFactor) == 0) { + for (int i = 0; i < 1 + event.getFortuneLevel(); i++) { + event.getDrops().add(new ItemStack(UItems.alfalfa_seeds, 1)); + } + } } } diff --git a/src/main/java/com/minelittlepony/unicopia/block/BlockAlfalfa.java b/src/main/java/com/minelittlepony/unicopia/block/BlockAlfalfa.java index f59dddf5..71e3e4f4 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/BlockAlfalfa.java +++ b/src/main/java/com/minelittlepony/unicopia/block/BlockAlfalfa.java @@ -12,7 +12,9 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; @@ -139,6 +141,25 @@ public class BlockAlfalfa extends BlockCrops { return super.getItemDropped(state, rand, fortune); } + @Override + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + Random rand = world instanceof World ? ((World)world).rand : RANDOM; + + Item item = getItemDropped(state, rand, fortune); + if (item != Items.AIR) { + drops.add(new ItemStack(item, getFullAge(world, pos), damageDropped(state))); + + if (isMaxAge(state)) { + drops.add(new ItemStack(UItems.alfalfa_leaves, rand.nextInt(10))); + } + } + } + + @Override + public int quantityDropped(IBlockState state, int fortune, Random random) { + return 1; + } + @Override public boolean canBlockStay(World world, BlockPos pos, IBlockState state) { return getHalf(state) != Half.BOTTOM || super.canBlockStay(world, pos, state); @@ -198,8 +219,6 @@ public class BlockAlfalfa extends BlockCrops { @Override public boolean canGrow(World world, BlockPos pos, IBlockState state, boolean isClient) { - - Half half = getHalf(state); if (half == Half.MIDDLE || (half == Half.TOP && world.getBlockState(pos.down()).getBlock() == this)) { diff --git a/src/main/resources/assets/unicopia/lang/en_US.lang b/src/main/resources/assets/unicopia/lang/en_US.lang index fb2dfb8f..89b3445a 100644 --- a/src/main/resources/assets/unicopia/lang/en_US.lang +++ b/src/main/resources/assets/unicopia/lang/en_US.lang @@ -45,6 +45,9 @@ item.apple.rotten.name=Rotten Apple item.apple.zap.name=Zap Apple item.apple.zap_cooked.name=Cooked Zap Apple +item.alfalfa_leaves.name=Alfalfa +item.alfalfa_seeds.name=Grain + entity.racing_cloud.name=Bucking Bronco entity.construction_cloud.name=Construction Cloud entity.cloud.name=Cloud diff --git a/src/main/resources/assets/unicopia/models/item/alfalfa_leaves.json b/src/main/resources/assets/unicopia/models/item/alfalfa_leaves.json new file mode 100644 index 00000000..09eca0fa --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/alfalfa_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:items/alfalfa_leaves" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/cereal.json b/src/main/resources/assets/unicopia/models/item/cereal.json new file mode 100644 index 00000000..ce05147e --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/cereal.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:items/cereal" + } +} diff --git a/src/main/resources/assets/unicopia/recipes/anvil.json b/src/main/resources/assets/unicopia/recipes/anvil.json new file mode 100644 index 00000000..fb26050f --- /dev/null +++ b/src/main/resources/assets/unicopia/recipes/anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + " # ", + "###" + ], + "key": { + "#": [ + { + "item": "unicopia:cloud_block", + "data": 0 + } + ] + }, + "result": { + "item": "unicopia:anvil", + "data": 0, + "count": 1 + } +} diff --git a/src/main/resources/assets/unicopia/recipes/cereal.json b/src/main/resources/assets/unicopia/recipes/cereal.json new file mode 100644 index 00000000..ab52d81d --- /dev/null +++ b/src/main/resources/assets/unicopia/recipes/cereal.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:bowl" + }, + { + "item": "unicopia:alfalfa_seeds" + }, + { + "item": "unicopia:alfalfa_leaves" + }, + { + "item": "minecraft:milk_bucket" + } + ], + "result": { + "item": "unicopia:cereal", + "data": 0, + "count": 1 + } +} diff --git a/src/main/resources/assets/unicopia/textures/items/alfalfa_leaves.png b/src/main/resources/assets/unicopia/textures/items/alfalfa_leaves.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dd88b287df7783d8f257c17055ea75c454e0c8 GIT binary patch literal 3022 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 Qi2wiq07*qoM6N<$f>ra+1ONa4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/items/cereal.png b/src/main/resources/assets/unicopia/textures/items/cereal.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe9eca639ae82ad83cc5b99936adbdc5335f9bc GIT binary patch literal 304 zcmV-00nh%4P)tC8U1CjFDzthXT7 zQ~-!}CM*pHzz34OBAt+3fT3myV7XfWVAfmk*M3DA)EH`(==CMIH0Am;`R}j?kz^0qCnMMy+##QA^{Xu1LjC?YdzH?;xF!T@L~LX`bZ4ai0000