From ee9c94da7433d66cb0d28c23d48e1465cb2c4991 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 27 Jun 2016 19:25:46 +0200 Subject: [PATCH] Added biomass and biocoal made from canola seeds and also made canola seeds edible Closes #130 --- .../mod/blocks/base/BlockPlant.java | 14 +-- .../mod/crafting/InitCrafting.java | 1 + .../mod/crafting/MiscCrafting.java | 4 + .../mod/items/InitItems.java | 17 ++-- .../mod/items/ItemFoods.java | 1 - .../mod/items/base/ItemFoodSeed.java | 81 ++++++++++++++++++ .../mod/items/base/ItemSeed.java | 6 +- .../mod/items/metalists/TheMiscItems.java | 2 + .../mod/recipe/FuelHandler.java | 1 + .../mod/util/compat/CompatUtil.java | 5 +- .../assets/actuallyadditions/lang/en_US.lang | 2 + .../models/item/itemMiscBiocoal.json | 6 ++ .../models/item/itemMiscBiomass.json | 6 ++ .../textures/items/itemMiscBiocoal.png | Bin 0 -> 413 bytes .../textures/items/itemMiscBiomass.png | Bin 0 -> 439 bytes 15 files changed, 122 insertions(+), 24 deletions(-) create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemFoodSeed.java create mode 100644 src/main/resources/assets/actuallyadditions/models/item/itemMiscBiocoal.json create mode 100644 src/main/resources/assets/actuallyadditions/models/item/itemMiscBiomass.json create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiocoal.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiomass.png diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockPlant.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockPlant.java index 548693e37..e212c1bb3 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockPlant.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockPlant.java @@ -35,8 +35,8 @@ public class BlockPlant extends BlockCrops{ private final int minDropAmount; private final int addDropAmount; public Item seedItem; - public Item returnItem; - public int returnMeta; + private Item returnItem; + private int returnMeta; public BlockPlant(String name, int minDropAmount, int addDropAmount){ this.name = name; @@ -45,6 +45,12 @@ public class BlockPlant extends BlockCrops{ this.register(); } + public void doStuff(Item seedItem, Item returnItem, int returnMeta){ + this.seedItem = seedItem; + this.returnItem = returnItem; + this.returnMeta = returnMeta; + } + private void register(){ ItemUtil.registerBlock(this, this.getItemBlock(), this.getBaseName(), this.shouldAddCreative()); @@ -71,7 +77,6 @@ public class BlockPlant extends BlockCrops{ return EnumRarity.RARE; } - @Override public EnumPlantType getPlantType(IBlockAccess world, BlockPos pos){ return EnumPlantType.Crop; @@ -110,7 +115,6 @@ public class BlockPlant extends BlockCrops{ return false; } - @Override public Item getSeed(){ return this.seedItem; @@ -121,13 +125,11 @@ public class BlockPlant extends BlockCrops{ return this.getMetaFromState(state) >= 7 ? random.nextInt(this.addDropAmount)+this.minDropAmount : super.quantityDropped(state, fortune, random); } - @Override public Item getCrop(){ return this.returnItem; } - @Override public Item getItemDropped(IBlockState state, Random rand, int par3){ return this.getMetaFromState(state) >= 7 ? this.getCrop() : this.getSeed(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java index b1146d5fd..557820a78 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/InitCrafting.java @@ -29,6 +29,7 @@ public final class InitCrafting{ ToolCrafting.init(); ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemMisc, 10, TheMiscItems.MASHED_FOOD.ordinal()), Blocks.LEAVES, new ItemStack(InitItems.itemFertilizer, 10), Blocks.DIRT); + ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemCanolaSeed, 20), Blocks.DIRT, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BIOMASS.ordinal()), Blocks.SOUL_SAND); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/MiscCrafting.java b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/MiscCrafting.java index d0f545007..6e93843d7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/MiscCrafting.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/crafting/MiscCrafting.java @@ -31,6 +31,10 @@ public final class MiscCrafting{ public static void init(){ + //Bio Coal + GameRegistry.addSmelting(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BIOMASS.ordinal()), + new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BIOCOAL.ordinal()), 1.0F); + //Crystals for(int i = 0; i < TheCrystals.values().length; i++){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockCrystal, 1, i), diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/InitItems.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/InitItems.java index 4be4f5e4a..d038ba384 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/InitItems.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/InitItems.java @@ -12,10 +12,7 @@ package de.ellpeck.actuallyadditions.mod.items; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; -import de.ellpeck.actuallyadditions.mod.items.base.ItemArmorAA; -import de.ellpeck.actuallyadditions.mod.items.base.ItemHoeAA; -import de.ellpeck.actuallyadditions.mod.items.base.ItemSeed; -import de.ellpeck.actuallyadditions.mod.items.base.ItemSwordAA; +import de.ellpeck.actuallyadditions.mod.items.base.*; import de.ellpeck.actuallyadditions.mod.items.lens.ItemLens; import de.ellpeck.actuallyadditions.mod.items.metalists.TheCrystals; import de.ellpeck.actuallyadditions.mod.items.metalists.TheFoods; @@ -27,9 +24,11 @@ import de.ellpeck.actuallyadditions.mod.util.Util; import de.ellpeck.actuallyadditions.mod.util.compat.CompatUtil; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.init.MobEffects; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.potion.PotionEffect; public final class InitItems{ @@ -273,13 +272,13 @@ public final class InitItems{ itemHairyBall = new ItemHairyBall("itemHairyBall"); itemCoffeeBean = new ItemCoffeeBean("itemCoffeeBeans"); itemRiceSeed = new ItemSeed("itemRiceSeed", "seedRice", InitBlocks.blockRice, itemFoods, TheFoods.RICE.ordinal()); - CompatUtil.registerMFRSeed(itemRiceSeed); - itemCanolaSeed = new ItemSeed("itemCanolaSeed", "seedCanola", InitBlocks.blockCanola, itemMisc, TheMiscItems.CANOLA.ordinal()); - CompatUtil.registerMFRSeed(itemCanolaSeed); + CompatUtil.registerMFRSeed(itemRiceSeed, InitBlocks.blockRice); + itemCanolaSeed = new ItemFoodSeed("itemCanolaSeed", "seedCanola", InitBlocks.blockCanola, itemMisc, TheMiscItems.CANOLA.ordinal(), 1, 0.01F, 10).setPotionEffect(new PotionEffect(MobEffects.NAUSEA, 1000, 0), 0.2F); + CompatUtil.registerMFRSeed(itemCanolaSeed, InitBlocks.blockCanola); itemFlaxSeed = new ItemSeed("itemFlaxSeed", "seedFlax", InitBlocks.blockFlax, Items.STRING, 0); - CompatUtil.registerMFRSeed(itemFlaxSeed); + CompatUtil.registerMFRSeed(itemFlaxSeed, InitBlocks.blockFlax); itemCoffeeSeed = new ItemSeed("itemCoffeeSeed", "seedCoffeeBeans", InitBlocks.blockCoffee, itemCoffeeBean, 0); - CompatUtil.registerMFRSeed(itemCoffeeSeed); + CompatUtil.registerMFRSeed(itemCoffeeSeed, InitBlocks.blockCoffee); itemPickaxeEmerald = new ItemPickaxeAA(InitToolMaterials.toolMaterialEmerald, new ItemStack(Items.EMERALD), "itemPickaxeEmerald", EnumRarity.EPIC); itemAxeEmerald = new ItemAxeAA(InitToolMaterials.toolMaterialEmerald, new ItemStack(Items.EMERALD), "itemAxeEmerald", EnumRarity.EPIC); itemShovelEmerald = new ItemShovelAA(InitToolMaterials.toolMaterialEmerald, new ItemStack(Items.EMERALD), "itemShovelEmerald", EnumRarity.EPIC); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemFoods.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemFoods.java index 4030dcc96..a6542daa1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemFoods.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemFoods.java @@ -61,7 +61,6 @@ public class ItemFoods extends ItemFoodBase{ return stack.getItemDamage() >= ALL_FOODS.length ? 0 : ALL_FOODS[stack.getItemDamage()].useDuration; } - @Override public EnumAction getItemUseAction(ItemStack stack){ return stack.getItemDamage() >= ALL_FOODS.length ? EnumAction.EAT : (ALL_FOODS[stack.getItemDamage()].getsDrunken ? EnumAction.DRINK : EnumAction.EAT); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemFoodSeed.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemFoodSeed.java new file mode 100644 index 000000000..f6a279443 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemFoodSeed.java @@ -0,0 +1,81 @@ +/* + * This file ("ItemFoodSeed.java") is part of the Actually Additions mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015-2016 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.items.base; + +import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant; +import de.ellpeck.actuallyadditions.mod.util.ItemUtil; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemSeedFood; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class ItemFoodSeed extends ItemSeedFood{ + + public final Block plant; + public final String name; + public final String oredictName; + private final int maxUseDuration; + + public ItemFoodSeed(String name, String oredictName, Block plant, Item returnItem, int returnMeta, int healAmount, float saturation, int maxUseDuration){ + super(healAmount, saturation, plant, Blocks.FARMLAND); + this.name = name; + this.oredictName = oredictName; + this.plant = plant; + this.maxUseDuration = maxUseDuration; + + if(plant instanceof BlockPlant){ + ((BlockPlant)plant).doStuff(this, returnItem, returnMeta); + } + + this.register(); + } + + private void register(){ + ItemUtil.registerItem(this, this.getBaseName(), this.shouldAddCreative()); + + this.registerRendering(); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack){ + return this.maxUseDuration; + } + + protected String getBaseName(){ + return this.name; + } + + public boolean shouldAddCreative(){ + return true; + } + + protected void registerRendering(){ + ActuallyAdditions.proxy.addRenderRegister(new ItemStack(this), this.getRegistryName(), "inventory"); + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.RARE; + } + + @Override + public IBlockState getPlant(IBlockAccess world, BlockPos pos){ + return this.plant.getDefaultState(); + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemSeed.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemSeed.java index 2dbf31f82..d67a9a8e1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemSeed.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemSeed.java @@ -36,9 +36,7 @@ public class ItemSeed extends ItemSeeds{ this.plant = plant; if(plant instanceof BlockPlant){ - ((BlockPlant)this.plant).seedItem = this; - ((BlockPlant)this.plant).returnItem = returnItem; - ((BlockPlant)this.plant).returnMeta = returnMeta; + ((BlockPlant)plant).doStuff(this, returnItem, returnMeta); } this.register(); @@ -62,13 +60,11 @@ public class ItemSeed extends ItemSeeds{ ActuallyAdditions.proxy.addRenderRegister(new ItemStack(this), this.getRegistryName(), "inventory"); } - @Override public EnumRarity getRarity(ItemStack stack){ return EnumRarity.RARE; } - @Override public IBlockState getPlant(IBlockAccess world, BlockPos pos){ return this.plant.getDefaultState(); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/metalists/TheMiscItems.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/metalists/TheMiscItems.java index 0ad74b899..944806dae 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/metalists/TheMiscItems.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/metalists/TheMiscItems.java @@ -36,6 +36,8 @@ public enum TheMiscItems{ LENS("Lens", EnumRarity.UNCOMMON), ENDER_STAR("EnderStar", EnumRarity.EPIC), SPAWNER_SHARD("SpawnerShard", EnumRarity.EPIC), + BIOMASS("Biomass", EnumRarity.UNCOMMON), + BIOCOAL("Biocoal", EnumRarity.RARE), YOUTUBE_ICON("YoutubeIcon", Util.FALLBACK_RARITY); public final String name; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/recipe/FuelHandler.java b/src/main/java/de/ellpeck/actuallyadditions/mod/recipe/FuelHandler.java index ad8235be2..dc0c3973e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/recipe/FuelHandler.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/recipe/FuelHandler.java @@ -39,6 +39,7 @@ public class FuelHandler implements IFuelHandler{ addFuel(InitItems.itemMisc, TheMiscItems.TINY_CHAR.ordinal(), 200); addFuel(InitItems.itemMisc, TheMiscItems.TINY_COAL.ordinal(), 200); addFuel(InitBlocks.blockMisc, TheMiscBlocks.CHARCOAL_BLOCK.ordinal(), 16000); + addFuel(InitItems.itemMisc, TheMiscItems.BIOCOAL.ordinal(), 180); } private static void addFuel(Item item, int metadata, int value){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java index e255ff944..c53476593 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java @@ -10,7 +10,6 @@ package de.ellpeck.actuallyadditions.mod.util.compat; -import de.ellpeck.actuallyadditions.mod.items.base.ItemSeed; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -27,10 +26,10 @@ public final class CompatUtil{ FMLInterModComms.sendMessage("MineFactoryReloaded", "registerFertilizable_Crop", compound); } - public static void registerMFRSeed(Item item){ + public static void registerMFRSeed(Item item, Block plant){ NBTTagCompound compound = new NBTTagCompound(); compound.setString("seed", item.getRegistryName().toString()); - compound.setString("crop", ((ItemSeed)item).plant.getRegistryName().toString()); + compound.setString("crop", plant.getRegistryName().toString()); FMLInterModComms.sendMessage("MineFactoryReloaded", "registerPlantable_Crop", compound); } diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index a034c7eb8..65123eba0 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -491,6 +491,8 @@ item.actuallyadditions.itemMiscSpawnerShard.name=Spawner Shards item.actuallyadditions.itemMinecartFireworkBox.name=Firework Box Cart item.actuallyadditions.itemWaterBowl.name=Bowl of Water item.actuallyadditions.itemFilter.name=Item Filter +item.actuallyadditions.itemMiscBiomass.name=Biomass +item.actuallyadditions.itemMiscBiocoal.name=Bio Coal #Tooltips tooltip.actuallyadditions.onSuffix.desc=On diff --git a/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiocoal.json b/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiocoal.json new file mode 100644 index 000000000..9b517f39a --- /dev/null +++ b/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiocoal.json @@ -0,0 +1,6 @@ +{ + "parent": "actuallyadditions:item/standardItem", + "textures": { + "layer0": "actuallyadditions:items/itemMiscBiocoal" + } +} diff --git a/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiomass.json b/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiomass.json new file mode 100644 index 000000000..14bf007f0 --- /dev/null +++ b/src/main/resources/assets/actuallyadditions/models/item/itemMiscBiomass.json @@ -0,0 +1,6 @@ +{ + "parent": "actuallyadditions:item/standardItem", + "textures": { + "layer0": "actuallyadditions:items/itemMiscBiomass" + } +} diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiocoal.png b/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiocoal.png new file mode 100644 index 0000000000000000000000000000000000000000..e607c25141b35044548aa1d8cbc62b607c22527e GIT binary patch literal 413 zcmV;O0b>4%P)N2bZe?^J zG%heMIczh2P5=M_8%ab#R5(wyl1ppCP!NSL-biACFA%RH#EPY@ZUij|)s6UC=|-wc zv9#NE<Z(*y<@YvJ4?~~E+zy3-}f1S;h*0ejXxdgOg#qSlt_rg$53}+ z^XA#NOM|t?5S*1QCaCn3IERRN@|EI2+1eV~WdMl69 z0DukvwqFF`0Yd=Dtw?~5t$++S=^*}}fcf@dLIQLcdX6W`&AG>fh_+%Bc|iBh3){luD700000NkvXX Hu0mjf&LOIo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiomass.png b/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBiomass.png new file mode 100644 index 0000000000000000000000000000000000000000..e3519d42830c0abeb1fa5e2e4f1c271a031b744b GIT binary patch literal 439 zcmV;o0Z9IdP)N2bZe?^J zG%heMIczh2P5=M_HAzH4R5(w)kFDg{(1stHa)&9}$YCyMU%@@ZLk6^$j?JAE5C}d_} zYyiq0T&3x4GNPNnq1X2wL#QUBFAXkKjT5CZPP5XmkdX(#ec`bA~XkGMv1sd8iqFm{1t}KptNI9%G~C|(y+DQvIG+A hWra{!PybR%eE`PhxbvC~BbNXG002ovPDHLkV1gQBw9x