• 5

    posted a message on [1.3.2] MarijuanaCraft - GET HIGH [BETA 1.0]


    Download:

    First Release! Beta 1.2

    ---------------
    Instructions!
    ​1. Install ModLoader :Zombie:
    2. Put MarijuanaCraft.zip in your mods folder :DORE:
    3. Start up Minecraft :Ham:
    4. Watch this Video below to learn the ways of Marijuana cultivation :Leaves:
    5. Get High :SSSS:

    ---------------
    Recipes!
    Drying Table
    Dried Leaves (Drying Table)
    Buds
    Iron Blade
    Grinder
    Grinded Bud (Grinder)
    Joint
    Empty Bong
    Filled Bong


    ---------------

    Changelog:

    Beta 1.0 - First release! Added Joints, Bongs, Drying Table, Grinder, Indica Strain, Sativa Strain, Oertle God Tomb with Seeds,
    Dried leaves, grinded leaves, buds, etc.

    Alpha 1.1 - Removed ridiculous craftable Marijuana Leaf recipe, added Weed Seeds; although only accessible from the creative menu until ModLoader supports new Entities, added ability to grow your own Marijuana Leaves

    Alpha 1.0 - First Release, craftable Marijuana Leaf, 45 second casual effects

    ---------------


    To-Do:
    Check out the Trello for MarijuanaCraft
    ---------------
    SPECIAL THANKS TO:
    -Soyrman - for providing moral support during the project and distracting me by asking for programming help. Here's the mod he's working on with the help I provided: LINK

    -SuperDeadBau5 - Making some of the textures like the amazing joint!

    -ShaoTheGamerHD- For making most of the INCREDIBLE textures here. If you see bad ones, there not made by him ;) Check his ItemsPlus+ mod!

    -AdosHQ - Helped with some of the textures! He's Finnish!!!

    ---------------
    COPYRIGHT:
    This document is Copyright ©(2012) (Nikush) (kushirules) and is the intellectual property of the author. It may be not be reproduced under any circumstances except for personal, private use as long as it remains in its unaltered, unedited form. It may not be placed on any web site or otherwise distributed publicly without advance written permission. Use of this mod on any other website or as a part of any public display is strictly prohibited, and a violation of copyright.
    Posted in: Minecraft Mods
  • 1

    posted a message on Herblore Mod™ V2.1g [Finally Updated!]
    Quote from Soyrman

    He is right... Do you go around and tell people they are copying the first humans for breathing and having sex? No. So, just becasue it resembles this, doesn't mean its a copy...


    xD, also, who made your banner, it's ****ing cexii
    Posted in: Minecraft Mods
  • 1

    posted a message on [1.3.1] The Baking Man Mod v1.1 [WIP]
    Quote from Soyrman

    Fixed!


    this mod is amazing, everyone should get it, better than tekkit itself
    Posted in: WIP Mods
  • 3

    posted a message on [1.3.1] How to make a NEW CROP!
    I understand MANY of you are having problems with creating new crops, because all the tutorials out there have one flaw!


    SIMPLE TUTORIAL:
    1. Create two different files: mod_YourCrop.java, BlockYourCrop.java
    2. In the mod_YourCrop.java, enter this:
    package net.minecraft.src;
    import java.util.Map;
    public class mod_YourCrop extends BaseMod
    {
    //YOURCROP CALL
    //Replace "yourcrop" through out both of these files with your own crop's name
    public static final Block yourcrop = new Blockyourcrop(150, 0).setBlockName("yourcrop").setRequiresSelfNotify();
    public static final Item yourcropseed = new ItemSeeds(151, mod_YourCrop.yourcropseed.blockID, Block.tilledField.blockID).setItemName("yourcrop");
    //YOURCROP IMAGES CALL
    public static int yourcrop1;
    public static int yourcrop2;
    public static int yourcrop3;
    public static int yourcrop4;
    public static int yourcrop5;
    public static int yourcrop6;
    public static int yourcrop7;
    public static int yourcrop8;
    public void load()
    {
    ModLoader.addName(indicacrop, "In-Game Name of Crop");
    ModLoader.addName(indicaseed, "In-Game Name of Seed");
    yourcrop.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/yourmodfolder/yourcrop.png");
    yourcropseed.iconIndex = ModLoader.addOverride("/gui/items.png", "/yourmodfolder/yourcropseed.png");
    yourcrop1 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropOne.png");
    yourcrop2 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropTwo.png");
    yourcrop3 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropThree.png");
    yourcrop4 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropFour.png");
    yourcrop5 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropFive.png");
    yourcrop6 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropSix.png");
    yourcrop7 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropSeven.png");
    yourcrop8 = ModLoader.addOverride("/terrain.png", "/NIKUSHmodz/yourcropEight.png");
    }
    public String getVersion()
    {
    		 return "1.3.1";
    }
    }


    3. Replace yourcrop and the .png destinations to your liking!
    4. You now need to create 10 .png images.
    5. The First Image, yourcropOne.png through the Eight Image, yourcropEight.png are progressive stages of the growth of your crop you can make in Photoshop or Paint.NET. You can get a feel of this by looking at the terrain.png in your minecraft.jar and looking at the wheat. The ninth image is yourcrop.png, which should be identical to yourcropOne.png. Finally the tenth image, yourcropseed.png, is the seeds that you hold.
    6. Next, make a new class called BlockYourCrop.java, and drop this code in:

    package net.minecraft.src;
    import java.util.Random;
    public class Blockindicacrop extends BlockFlower
    {
    public Blockyourcrop(int i, int j)
    {
    super(i, j);
    blockIndexInTexture = j;
    setTickRandomly(true);
    float f = 0.5F;
    setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
    }
    /**
    * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of
    * blockID passed in. Args: blockID.
    * This basically checks to see if the block below is a tilled field/tilled dirt. If it is true then the crop can grow.
    */
    protected boolean canThisPlantGrowOnThisBlockID(int par1)
    {
    return par1 == Block.tilledField.blockID;
    }
    /**
    * Ticks the block if it's been scheduled. This method gets scheduled to run because of the setTickRandomly part in the constructor of the class.
    */
    public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
    super.updateTick(par1World, par2, par3, par4, par5Random);
    if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9)
    {
    int i = par1World.getBlockMetadata(par2, par3, par4);
    if (i < 8)
    {
    	    float f = getGrowthRate(par1World, par2, par3, par4);
    	    if (par5Random.nextInt((int)(25F / f) + 1) == 0)
    	    {
    		 i++;
    		 par1World.setBlockMetadataWithNotify(par2, par3, par4, i);
    	    }
    }
    }
    }
    /**
    * This method allows you to use bonemeal on your crop. Code explanation below:
    			    ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - This line makes "itemstack" equal to the item currently in the players hand.
    					    if(itemstack != null && itemstack.itemID == Item.dyePowder.shiftedIndex) - This line checks if the item in players hand is equal to dye.
    						 if(itemstack.getItemDamage() == 15) - This line checks if the damage value of that item is 15. Item.dyePowder's damage value of 15 is bonemeal.
    						 world.setBlockMetadataWithNotify(i, j, k, 8); - This line sets the metadata value of the block to 8 which is the final growth stage.
    						 itemstack.stackSize--; - This line makes the stack size go down by one.
    						 world.notifyBlockChange(i, j, k, 0); - This line notifys adjacent blocks that this block has updated its state.
    */
    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
    {
    ItemStack itemstack = par5EntityPlayer.inventory.getCurrentItem();
    if(itemstack != null && itemstack.itemID == Item.dyePowder.shiftedIndex)
    {
    if(itemstack.getItemDamage() == 15)
    {
    par1World.setBlockMetadataWithNotify(par2, par3, par4, 8);
    itemstack.stackSize--;
    par1World.notifyBlockChange(par2, par3, par4, 0);
    }
    }
    super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9);
    return true;
    }
    /**
    * Gets the growth rate for the crop. Setup to encourage rows by halving growth rate if there is diagonals, crops on
    * different sides that aren't opposing, and by adding growth for every crop next to this one (and for crop below
    * this one). Args: x, y, z
    */
    private float getGrowthRate(World par1World, int par2, int par3, int par4)
    {
    float f = 1.0F;
    int i = par1World.getBlockId(par2, par3, par4 - 1);
    int j = par1World.getBlockId(par2, par3, par4 + 1);
    int k = par1World.getBlockId(par2 - 1, par3, par4);
    int l = par1World.getBlockId(par2 + 1, par3, par4);
    int i1 = par1World.getBlockId(par2 - 1, par3, par4 - 1);
    int j1 = par1World.getBlockId(par2 + 1, par3, par4 - 1);
    int k1 = par1World.getBlockId(par2 + 1, par3, par4 + 1);
    int l1 = par1World.getBlockId(par2 - 1, par3, par4 + 1);
    boolean flag = k == blockID || l == blockID;
    boolean flag1 = i == blockID || j == blockID;
    boolean flag2 = i1 == blockID || j1 == blockID || k1 == blockID || l1 == blockID;
    for (int i2 = par2 - 1; i2 <= par2 + 1; i2++)
    {
    for (int j2 = par4 - 1; j2 <= par4 + 1; j2++)
    {
    	    int k2 = par1World.getBlockId(i2, par3 - 1, j2);
    	    float f1 = 0.0F;
    	    if (k2 == Block.tilledField.blockID)
    	    {
    		 f1 = 1.0F;
    		 if (par1World.getBlockMetadata(i2, par3 - 1, j2) > 0)
    		 {
    		 f1 = 3F;
    		 }
    	    }
    	    if (i2 != par2 || j2 != par4)
    	    {
    		 f1 /= 4F;
    	    }
    	    f += f1;
    }
    }
    if (flag2 || flag && flag1)
    {
    f /= 2.0F;
    }
    return f;
    }
    /**
    * The type of render function that is called for this block. The render type of 6 gets the texture and places it four times around the sides of the block and leaves nothing on the top or bottom.
    */
    public int getRenderType()
    {
    return 6;
    }
    /**
    * Drops the block items with a specified chance of dropping the specified items
    */
    public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
    {
    super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, 0);
    if (par1World.isRemote)
    {
    return;
    }
    int i = 3 + par7;
    for (int j = 0; j < i; j++)
    {
    if (par1World.rand.nextInt(15) <= par5)
    {
    	    float f = 0.7F;
    	    float f1 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	    float f2 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	    float f3 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	    EntityItem entityitem = new EntityItem(par1World, (float)par2 + f1, (float)par3 + f2, (float)par4 + f3, new ItemStack(Item.seeds));
    	    entityitem.delayBeforeCanPickup = 10;
    	    par1World.spawnEntityInWorld(entityitem);
    }
    }
    }
    /**
    * Returns the ID of the items to drop on destruction. "i" is equal to the blocks metadata value(explained slightly more in the getBlockTextureFromSideAndMetadata method below). This means that it will check that that value is equal to 8(the final stage of growth) and if it is then it will drop wheat. It may be fairly obvious, but the 'else' statement means that if the growth state is not equal to 7 then drop nothing (-1 means nothing)
    */
    public int idDropped(int i, Random random, int j)
    {
    if (i == 8)
    {
    return Item.wheat.shiftedIndex;
    }
    else
    {
    return -1;
    }
    }
    /**
    * Returns the quantity of items to drop on block destruction.
    */
    public int quantityDropped(Random random)
    {
    return 1;
    }
    /**
    * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata.
    * As you may have been able to tell from the line above, "j" is equal to the metadata value of the block. This checks if that value is equal to a certain number then sets the blocks texture to what you have defined.
    * The things that are being returned are the ints in your mod_ class which you created and set to your texture for the specific stages of growth.
    */
    public int getBlockTextureFromSideAndMetadata(int i, int j)
    {
    if(j == 0)
    {
    return blockIndexInTexture;
    }
    if(j == 1)
    {
    return mod_yourcrop.yourcrop1;
    }
    if(j == 2)
    {
    return mod_yourcrop.yourcrop2;
    }
    if(j == 3)
    {
    return mod_yourcrop.yourcrop3;
    }
    if(j == 4)
    {
    return mod_yourcrop.yourcrop4;
    }
    if(j == 5)
    {
    return mod_yourcrop.yourcrop5;
    }
    if(j == 6)
    {
    return mod_yourcrop.yourcrop6;
    }
    if(j == 7)
    {
    return mod_yourcrop.yourcrop7;
    }
    if(j == 8)
    {
    return mod_yourcrop.yourcrop8;
    }
    return j;
    }
    }


    6. Obviously, replace yourcrop with whatever you want.
    7. Replace Item.wheat.shiftedIndex; with whatever you want (i.e. Item.appleGold.shiftedIndex;)
    8. You can customize other things if you know what you are doing ;)
    9. Enjoy!
    Posted in: Tutorials
  • 1

    posted a message on TechGuy's Modding Tutorials
    Quote from greize_jager

    I want to make a crop and I followed the tutorial for it, I get no error's but when i place my crop on the ground it becomes just a block not a growing crop. Hope someone can help me out
    Code

    mod_carrot
    package net.minecraft.src;
    import java.util.*;
    import net.minecraft.client.Minecraft;
    public class mod_carrot extends BaseModMp
    {
    
    public static final Block WildCarrot = (new BlockWildCarrot(179, 0)).setHardness(0.0F).setResistance(11F).setBlockName("WildCarrot");
    public static final Item Carrot = (new ItemFood(1002, 4, 0.3F, false)).setIconCoord(0, 0).setItemName("WildCarrot");
    public static final Item carrotseeds;
    public static final Block CarrotCrop = (new BlockCarrotCrop(178, 0).setBlockName("cropNameHere"));
    	
    public static int CarrotStage1 = ModLoader.addOverride("/terrain.png","/world/Cs1.png");
    public static int CarrotStage2 = ModLoader.addOverride("/terrain.png","/world/Cs2.png");
    public static int CarrotStage3 = ModLoader.addOverride("/terrain.png","/world/Cs3.png");
    public static int CarrotStage4 = ModLoader.addOverride("/terrain.png","/world/Cs4.png");
    
    public void load()
    {
    WildCarrot.blockIndexInTexture = ModLoader.addOverride("/terrain.png","/World/WildCarrot.png");
    Carrot.iconIndex = ModLoader.addOverride("/gui/items.png","/World/Carrot.png");
    carrotseeds.iconIndex = ModLoader.addOverride("/gui/items.png","/World/carrotseeds.png");
    CarrotCrop.blockIndexInTexture = ModLoader.addOverride("/terrain.png","/World/WildCarrot1.png");
    ModLoader.registerBlock(WildCarrot);
    ModLoader.registerBlock(CarrotCrop);
    ModLoader.addName(WildCarrot, "Wild Carrot");
    ModLoader.addName(Carrot, "Carrot");
    ModLoader.addName(CarrotCrop, "Carrot Crop");
    ModLoader.addName(carrotseeds, "Carrot Seeds");
    }
    
    public void generateSurface(World world, Random random, int i, int j)
    {
    for (int k = 0; k > 7; k++) { }
    {
    		 int l = i + random.nextInt(16);
    		 int i1 = random.nextInt(128);
    		 int j1 = j + random.nextInt(16);
    		 (new WorldGenFlowers(WildCarrot.blockID)).generate(world, random, l, i1, j1);
    }
    }
    
    static
    {
    	 carrotseeds = (new Itemcarrotseeds(1003, mod_carrot.CarrotCrop.blockID, Block.tilledField.blockID)).setIconCoord(9, 0).setItemName("seeds");
    }
    	
    
    public String getVersion()
    {
    	 return "1.3.0";
    }
    }
    BlockCarrotCrop
    package net.minecraft.src;
    import java.util.Random;
    public class BlockCarrotCrop extends BlockFlower
    {
    public BlockCarrotCrop(int i, int j)
    {
    super(i, j);
    blockIndexInTexture = j;
    setTickRandomly(true);
    float f = 0.5F;
    setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
    }
    /**
    * Gets passed in the blockID of the block below and supposed to return true if its allowed to grow on the type of
    * blockID passed in. Args: blockID.
    * This basically checks to see if the block below is a tilled field/tilled dirt. If it is true then the crop can grow.
    */
    protected boolean canThisPlantGrowOnThisBlockID(int par1)
    {
    return par1 == Block.tilledField.blockID;
    }
    /**
    * Ticks the block if it's been scheduled. This method gets scheduled to run because of the setTickRandomly part in the constructor of the class.
    */
    public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
    super.updateTick(par1World, par2, par3, par4, par5Random);
    if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9)
    {
    int i = par1World.getBlockMetadata(par2, par3, par4);
    if (i < 8)
    {
    	 float f = getGrowthRate(par1World, par2, par3, par4);
    	 if (par5Random.nextInt((int)(25F / f) + 1) == 0)
    	 {
    		 i++;
    		 par1World.setBlockMetadataWithNotify(par2, par3, par4, i);
    	 }
    }
    }
    }
    /**
    * This method allows you to use bonemeal on your crop. Code explanation below:
    			 ItemStack itemstack = entityplayer.inventory.getCurrentItem(); - This line makes "itemstack" equal to the item currently in the players hand.
    /**
    * Gets the growth rate for the crop. Setup to encourage rows by halving growth rate if there is diagonals, crops on
    * different sides that aren't opposing, and by adding growth for every crop next to this one (and for crop below
    * this one). Args: x, y, z
    */
    private float getGrowthRate(World par1World, int par2, int par3, int par4)
    {
    float f = 1.0F;
    int i = par1World.getBlockId(par2, par3, par4 - 1);
    int j = par1World.getBlockId(par2, par3, par4 + 1);
    int k = par1World.getBlockId(par2 - 1, par3, par4);
    int l = par1World.getBlockId(par2 + 1, par3, par4);
    int i1 = par1World.getBlockId(par2 - 1, par3, par4 - 1);
    int j1 = par1World.getBlockId(par2 + 1, par3, par4 - 1);
    int k1 = par1World.getBlockId(par2 + 1, par3, par4 + 1);
    int l1 = par1World.getBlockId(par2 - 1, par3, par4 + 1);
    boolean flag = k == blockID || l == blockID;
    boolean flag1 = i == blockID || j == blockID;
    boolean flag2 = i1 == blockID || j1 == blockID || k1 == blockID || l1 == blockID;
    for (int i2 = par2 - 1; i2 <= par2 + 1; i2++)
    {
    for (int j2 = par4 - 1; j2 <= par4 + 1; j2++)
    {
    	 int k2 = par1World.getBlockId(i2, par3 - 1, j2);
    	 float f1 = 0.0F;
    	 if (k2 == Block.tilledField.blockID)
    	 {
    		 f1 = 1.0F;
    		 if (par1World.getBlockMetadata(i2, par3 - 1, j2) > 0)
    		 {
    		 f1 = 3F;
    		 }
    	 }
    	 if (i2 != par2 || j2 != par4)
    	 {
    		 f1 /= 4F;
    	 }
    	 f += f1;
    }
    }
    if (flag2 || flag && flag1)
    {
    f /= 2.0F;
    }
    return f;
    }
    /**
    * The type of render function that is called for this block. The render type of 6 gets the texture and places it four times around the sides of the block and leaves nothing on the top or bottom.
    */
    public int getRenderType()
    {
    return 1;
    }
    /**
    * Drops the block items with a specified chance of dropping the specified items
    */
    public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
    {
    super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, 0);
    if (par1World.isRemote)
    {
    return;
    }
    int i = 3 + par7;
    for (int j = 0; j < i; j++)
    {
    if (par1World.rand.nextInt(15) <= par5)
    {
    	 float f = 0.7F;
    	 float f1 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	 float f2 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	 float f3 = par1World.rand.nextFloat() * f + (1.0F - f) * 0.5F;
    	 EntityItem entityitem = new EntityItem(par1World, (float)par2 + f1, (float)par3 + f2, (float)par4 + f3, new ItemStack(mod_carrot.carrotseeds));
    	 entityitem.delayBeforeCanPickup = 10;
    	 par1World.spawnEntityInWorld(entityitem);
    }
    }
    }
    /**
    * Returns the ID of the items to drop on destruction. "i" is equal to the blocks metadata value(explained slightly more in the getBlockTextureFromSideAndMetadata method below). This means that it will check that that value is equal to 8(the final stage of growth) and if it is then it will drop wheat. It may be fairly obvious, but the 'else' statement means that if the growth state is not equal to 7 then drop nothing (-1 means nothing)
    */
    public int idDropped(int i, Random random, int j)
    {
    if (i == 8)
    {
    return mod_carrot.Carrot.shiftedIndex;
    }
    else
    {
    return -1;
    }
    }
    /**
    * Returns the quantity of items to drop on block destruction.
    */
    public int quantityDropped(Random random)
    {
    return 1;
    }
    /**
    * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata.
    * As you may have been able to tell from the line above, "j" is equal to the metadata value of the block. This checks if that value is equal to a certain number then sets the blocks texture to what you have defined.
    * The things that are being returned are the ints in your mod_ class which you created and set to your texture for the specific stages of growth.
    */
    public int getBlockTextureFromSideAndMetadata(int i, int j)
    {
    if(j == 0)
    {
    return blockIndexInTexture;
    }
    if(j == 1)
    {
    return mod_carrot.CarrotStage1;
    }
    if(j == 2)
    {
    return mod_carrot.CarrotStage1;
    }
    if(j == 3)
    {
    return mod_carrot.CarrotStage2;
    }
    if(j == 4)
    {
    return mod_carrot.CarrotStage2;
    }
    if(j == 5)
    {
    return mod_carrot.CarrotStage2;
    }
    if(j == 6)
    {
    return mod_carrot.CarrotStage3;
    }
    if(j == 7)
    {
    return mod_carrot.CarrotStage3;
    }
    if(j == 8)
    {
    return mod_carrot.CarrotStage4;
    }
    return j;
    }
    }
    Itemcarrotseed
    package net.minecraft.src;
    public class Itemcarrotseeds extends Item
    {
    /** The type of block this seed turns into (wheat or pumpkin stems for instance)*/
    private int blockType;
    /** BlockID of the block the seeds can be planted on. */
    private int soilBlockID;
    
    public Itemcarrotseeds(int i, int j, int k)
    {
    super(i);
    blockType = j;
    soilBlockID = k;
    }
    /**
    * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
    * True if something happen and false if it don't. This is for ITEMS, not BLOCKS !
    */
    public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7)
    {
    if (par7 != 1)
    {
    return false;
    }
    if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6) || !par2EntityPlayer.canPlayerEdit(par4, par5 + 1, par6))
    {
    return false;
    }
    int i = par3World.getBlockId(par4, par5, par6);
    if (i == soilBlockID && par3World.isAirBlock(par4, par5 + 1, par6))
    {
    par3World.setBlockWithNotify(par4, par5 + 1, par6, blockType);
    par1ItemStack.stackSize--;
    return true;
    }
    else
    {
    return false;
    }
    }
    }

    I just chanched from the code from Itemseeds.java to your code but now when i right click nothing happends you do get the animation from something happening but nothing happens


    I get this same exact problem. I used some of the game's main code to make it work better, but mostly yours. That didn't make a difference tho, all I get is the block that doesn't grow, weird thing is, bonemeal does make it grow into the grown plant like it should. It won't grow naturally tho :/
    Quote from Jojoejoe3

    Any reason that my mob is invisible? I've made sure that the texture is correctly linked and everything no errors it's just invisible. Here's the code.

    The NPC
    //Pigman
    		 ModLoader.registerEntityID(EntityPigman.class, "Pigman", ModLoader.getUniqueEntityId(), 0xFFFFFF, 0x000000);
    			 ModLoader.addSpawn(EntityPigman.class, 12, 14, 18, EnumCreatureType.creature);


    Rendering the Monster
    public void addRenderer(Map map)
    			 {
    					 map.put(EntityPigman.class, new RenderBiped(new ModelBiped(), 0.5F));
    			 }



    Entity Pigman
    package net.minecraft.src;
    import java.util.Random;
    public class EntityPigman extends EntityCreature
    {
    	 public EntityPigman(World world)
    	 {
    			 super(world);
    			 texture = "/mob/zombie.png";
    			 moveSpeed = 0.5F;
    	 //attackStrength = 4; //take this line out if this class doesn't extend EntityMob.
    	 }
    	 public int getMaxHealth()
    	 {
    			 return 20;
    	 }
    	 protected String getLivingSound()
    	 {
    			 return "mob.pig";
    	 }
    	 protected String getHurtSound()
    	 {
    			 return "mob.pig";
    	 }
    	 protected String getDeathSound()
    	 {
    			 return "mob.pigdeath";
    	 }
    	 protected int getDropItemId()
    	 {
    			 return Item.ingotIron.shiftedIndex;
    	 }
    	
    	 protected boolean canDespawn()
    	 {
    			 return false;
    	 }
    }



    ModLoader isn't fully updated, therefore mobs don't work yet.
    Posted in: Mapping and Modding Tutorials
  • To post a comment, please .