Skip to content

Instantly share code, notes, and snippets.

@Propucani2
Created July 17, 2014 12:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Propucani2/9bd7f6e8b374649968e5 to your computer and use it in GitHub Desktop.
Save Propucani2/9bd7f6e8b374649968e5 to your computer and use it in GitHub Desktop.
package com.itemsplusmod.plants;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.EnumPlantType;
import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.util.ForgeDirection;
public class SeedFood extends ItemFood implements IPlantable {
private final Block theBlockPlant;
/**
* Block ID of the soil this seed food should be planted on.
*/
private final Block soilID;
public SeedFood(int parHealAmount, float parSaturationModifier, Block parBlockPlant, Block parSoilBlock) {
super(parHealAmount,parSaturationModifier, false);
theBlockPlant = parBlockPlant;
soilID = parSoilBlock; }
public boolean onItemUse(ItemStack parItemStack, EntityPlayer parPlayer, World parWorld, int parX, int parY, int parZ, int par7, float par8, float par9, float par10) {
// not sure what this parameter does, copied it from potato
if (par7 != 1) {
return false; }
// check if player has capability to edit
else if (parPlayer.canPlayerEdit(parX, parY+1, parZ, par7, parItemStack)){
}
{
//check that the soil block can sustain the plant
//and that block above is air so there is room for plant to grow
if (parWorld.getBlock(parX, parY, parZ).canSustainPlant(parWorld, parX, parY, parZ, ForgeDirection.UP, this) && parWorld.isAirBlock(parX, parY+1, parZ)) {
//place the plant block
parWorld.setBlock(parX, parY+1, parZ, theBlockPlant);
// decrement the stack of seed items
--parItemStack.stackSize;
return true; }
else {
return false; }
}}
@Override
public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z) {
return EnumPlantType.Crop; }
@Override
public Block getPlant(IBlockAccess world, int x, int y, int z) {
return theBlockPlant; }
@Override
public int getPlantMetadata(IBlockAccess world, int x, int y, int z) {
return 0; }
public Block getSoilId() {
return soilID; }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment