Me and my friend are working on a mod that will add tonnes of adventure to the game, you can sort of think of it as the 1.8 update times 10.
I have created a new variable in my mod_blahblah class that extends BaseMod called public static InventoryBasicAMP accessoriesInv = new InventoryBasicAMP("jafl;d;a", 8);
I copied the code from the inventory basic class and put it into a new file and modified it to contain my own versions of the writeToNBT and readFromNBT functions:
I use the suffix AMP on all my own classes.
public NBTTagList writeToNBT(NBTTagList nbttaglist)
{
for(int i = 0; i < mainInventory.length; i++)
{
if(mainInventory[i] != null)
{
NBTTagCompound nbttagcompound = new NBTTagCompound();
nbttagcompound.setByte("Slot", (byte)i);
mainInventory[i].writeToNBT(nbttagcompound);
nbttaglist.setTag(nbttagcompound);
}
}
return nbttaglist;
}
public void readFromNBT(NBTTagList nbttaglist)
{
mainInventory = new ItemStack[8];
for(int i = 0; i < nbttaglist.tagCount(); i++)
{
NBTTagCompound nbttagcompound = (NBTTagCompound)nbttaglist.tagAt(i);
int j = nbttagcompound.getByte("Slot") & 0xff;
ItemStack itemstack = new ItemStack(nbttagcompound);
if(itemstack.getItem() == null)
{
continue;
}
if(j >= 0 && j < mainInventory.length)
{
mainInventory[j] = itemstack;
}
}
}
This inventory is supposed to contain accessory items of type ItemAccessoryAMP that are held in the slots in my new inventory gui kind of like the inventory from the aether mod. The inventory seems to save when I quit to title then enter the world all over again, but when I quit the game entirely the accessories don't seem to have saved.
Sometimes I get this error (sometiimes) it comes up with: The level save file is corrupted this may have been caused by two minecraft instances running at once... Or something like that.
Also when I reobfuscate it and install my mod into minecraft and right click on a crafting bench minecraft crashes.
I have the BlockActivated method, and I have it return true. Any ideas as to why it is not working? (It gives the player a gold ingot when they right click a block, hence the BlockActivated mathod.)
If anyone knows how, please let me know. This is essential in a mod I am working on.
Also, how in the world do I make sure that it is a certain type of an item? For example, a recipe for a block I'm adding needs to have lapis dye in it... how do I make sure that it is the lapis dye and not just plain ol' bonemeal (white dye)?
When i make the item with Modloader i don't get any errors or crashes or anything like that.. but it just doesnt show up in my game? can you tell me what i did wrong? i followed the tutorial perfectly!
here's the code:
Mod_BreadSlices.java
package net.minecraft.src;
public class Mod_BreadSlices extends BaseMod{
public Mod_BreadSlices()
{
ModLoader.AddName(BreadSlices, "Bread Slice");
}
public static final Item BreadSlices;
static
{
BreadSlices = (new ItemBreadSlices(4001, 5)).setIconIndex(ModLoader.addOverride("/gui/items.png", "/JackolakeMod/BreadSlice.png")).setItemName("BreadSlices");
}
public String Version()
{
return "1";
}
public void AddRecipes(CraftingManager craftingmanager)
{
craftingmanager.addRecipe(new ItemStack(BreadSlices), new Object[]{
"X", Character.valueOf('X'), Item.bread
});
}
}
ItemBreadSlices.java
package net.minecraft.src;
public class ItemBreadSlices extends Item{
private int healAmount;
public ItemBreadSlices (int i, int j)
{
super(i);
healAmount = j;
maxStackSize = 16;
}
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
{
itemstack.stackSize--;
entityplayer.heal(healAmount);
return itemstack;
}
}
The tutorial is old. Now you use
ModLoader.AddRecipe(new ItemStack(BreadSlices), new Object[]{
"X", Character.valueOf('X'), Item.bread
});
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:6: net.minecraft.src.mod_It
emCrowbar is not abstract and does not override abstract method Version() in net
.minecraft.src.BaseMod
public class mod_ItemCrowbar extends BaseMod
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:11: cannot find symbol
symbol : constructor BaseMod(int)
location: class net.minecraft.src.BaseMod
super(i);
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:12: cannot find symbol
symbol : variable maxStackSize
location: class net.minecraft.src.mod_ItemCrowbar
maxStackSize = 1;
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:13: cannot find symbol
symbol : variable maxDamage
location: class net.minecraft.src.mod_ItemCrowbar
maxDamage = 500;
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:19: damageItem(int,net.mine
craft.src.Entity) in net.minecraft.src.ItemStack cannot be applied to (int)
itemstack.damageItem(1);
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:24: damageItem(int,net.mine
craft.src.Entity) in net.minecraft.src.ItemStack cannot be applied to (int)
itemstack.damageItem(2);
^
6 errors
==================
> Done in 12.08 seconds
> Recompiling server...
!! Can not find server sources !!
Press any key to continue . . .
Rollback Post to RevisionRollBack
One day I'm gona get off this bus and run into the woods and never come back, and when I get back I'm going to be the 9th master.
I review your help and it'd be nice if you code make a tutorial on how to make a mod installer (Like Amzopack, Yogsbox, etc) If you could figure this out that'd be helpful! Thanks.
In this tutorial I will explain how to create a new block in Minecraft and how to make it craftable. This tutorial makes a standard block like stone.
Creating a new block
1. You need to make a new file called BlockExample.java in the src directory.
2. The basic structure of this file is this:
package net.minecraft.src;
import java.util.Random;
public class BlockExample extends Block
{
public BlockExample(int i, int j)
{
super(i, j, Material.rock);
}
public int idDropped(int i, Random random)
{
return 0;
}
}
3. You now need to add this block to minecraft so that it knows about it. To do this open up Block.java
4. You should see a whole bunch of variable declarations towards the bottom of the file, add a new one:
public static final Block example;
5. Below the declarations you should see initialisation of these instance variables, initialise your block.
example = (new BlockExample(92, 1)).setHardness(1.5F).setResistance(10F).setStepSound(soundStoneFootstep);
Like mentioned before this example block is creating a new 'stone' block.
new BlockExample(92, 1) creates the new block, the first number is the block id - THIS HAS TO BE UNIQUE, the second number is the graphic of the block, in this case the same as stone.
setHardness(1.5F) is the same as stone, this is how long it takes to destroy a block.
setResistance(10F) is the same as stone, this is how strong the block is against explosions.
setStepSound(soundStoneFootstep) is the same as stone, this is the sound it makes when you walk on it.
You have now successfully created a new block class. To use this block you need to generate it, this can be done using the Single Player Commands mod using this command: "/give 92".
Continue on reading if you want to add a recipe to the crafting table to make this block.
Creating a new recipe
1. Open up CraftingManager.java
2. You should immediately see the constructor for the class and within it recipes being added using the addRecipe function.
3. Scroll to the bottom of this list of recipes and add in a new one:
addRecipe(new ItemStack(Block.example, 1), new Object[] {"##", "##", Character.valueOf('#'), Block.dirt});
This will add a recipe in which when you craft four dirt is a square share will give you your new block.
new ItemStack(Block.example, 1) - this specifies what item is going to be generated and the quantity.
new Object[] {"##", "##", Character.valueOf('#'), Block.dirt} - this specifies how it is created.
This should allow you to now craft a very basic new block using four dirt like so:
:tongue.gif:
THANKS SO MUCH! I WATCHED SO MANY VIDEOS BUT YOU MADE THE FIANL CUT!
In these tutorials I will explain how to create basic mods. I am willing to help people learn how to mod and I will take requests on how to mod certain things. The aim of this thread is to create a central location for all tutorials.
Below is a tutorial list which has details about each mod. Note that no matter how old the tutorial is, what you should learn in the tutorial is how to go about modding that particular aspect of the game.
Note: MCP only works for the version of Minecraft it is released with. You CANNOT use MCP with a newer or older version of minecraft. For example: MCP 2.6 ONLY works with Minecraft 1.1_02.
Tutorial List (Game Mods): Create a new Block type Difficulty/Time: 2/10 Last Update: 21/Feb/2011 Minecraft Version: Alpha 1.2.6 - Beta 1.5_01 MCP Version: 2.7-3.1 Author: simo_415
Create a new Recipe Difficulty/Time: 1/10 Last Update: 12/Dec/2010 Minecraft Version: Alpha 1.2.6 - Beta 1.5_01 MCP Version: 2.5 - 3.1 Author: simo_415
Create a new Item type Difficulty/Time: 2/10 Last Update: 12/Dec/2010 Minecraft Version: Alpha 1.2.6 - Beta 1.5_01 MCP Version: 2.5 - 3.1 Author: simo_415
Create a new Block for the Furnace Difficulty/Time: 2/10 Last Update: 14/Dec/2010 Minecraft Version: 1.2.6 - ? MCP Version: 2.5 - ? Author: Marcus101RR
Customising a block class Difficulty/Time: 3/10 Last Update: 17/Dec/2010 Minecraft Version: Alpha 1.2.6 - Beta 1.5_01 MCP Version: 2.5 - 3.1 Author: simo_415
Create a new NPC Difficulty/Time: 6/10 Last Update: 17/Dec/2010 Minecraft Version: Beta 1.5_01 MCP Version: 2.7-3.1 Author: simo_415
Controlling NPC movement Difficulty/Time: 6/10 Last Update: 20/Jan/2011 Minecraft Version: 1.1_02 MCP Version: 2.6 Author: OgreSean
If you would like another tutorial added to this list please PM me the link to the thread/post and if it is a legitimate modding tutorial I will add it to this list.
1. Setup the minecraft coder pack (MCP)
1.1 Extract the ZIP to a directory on your computer, for this example; C:/MCP
1.2 Copy the whole .minecraft/bin and .minecraft/resources directories to C:/MCP/jars/
1.3 Run decompile.bat
2. Open two Windows, one to C:/MCP/sources/minecraft/net/minecraft/src the other to C:/MCP/
Running your mods
To run your mods you first need to compile, debug, and test.
1. To compile run 'recompile.bat' this will generate all the class files for minecraft.
2. Go to C:/MCP/logs/minecraft_compile.log and search for ^ if this character is not found, there are no compile errors. If there is you will need to fix your code where the errors are and try compiling again.
3. If there is no errors, run 'test_game.bat'.
4. This will bring up an alternate version of minecraft with your mod installed - test your mod.
Once satisfied that the mod is complete you need to obfuscate it so that it can be added to minecraft.jar
Using Eclipse
You can use Eclipse to write your mod in, debug your code, compile your code, run your code - it will save you a lot of time in the long run if you use it.
Obfuscating the Code
Obfuscating the code allows your mod to work in minecraft.jar for anyone
1. Open C:/MCP/conf/client_conf.txt
2. Remove all the lines in the file.
3. Add the classes you changed, for example:
BlockExample
Block
CraftingManager
4. Run 'reobf.bat'
5. All the classes contained within C:/MCP/final_out/minecraft/ are the mod classes. Add these to minecraft.jar to add your mod to the game.
Any questions about this feel free to ask. Please refer people who are posting on how to add a block/crafting recipe to this post. I will probably add a few more tutorials on how to do simple things. Any feedback is appreciated.
hi im trying to setup mcp for netbeans and i have the same exact thing as the eclipse tutorial and it has errors in the start.java and almost every file in the net.minecraft.src. please help! i also followed the setup for netbeans in this tutorial. I triple checked it numerous times and am positive i did it right. How to setup MCP with Netbeans I think it has something to do with the paths i put for the natives folder and the MCP bin minecraft folder. heres what i put: C:\Users\MyName\Downloads\MCP\jars\bin\natives\ for natives in vm options and C:\Users\Alec\Downloads\MCP\bin\minecraft\ for project.properties. Please help!
public static Block spikes = (new BlockSpikes(2600, ModLoader.addOverride("/terrain.png", "/MCP/temp/bin/minecraft/Luna/Textures/spikes.png"))).setHardness(2.0F).setLightValue(1.0F).setResistance(5000F).setBlockName("spikes")
It seems, first of all, you must be using ModLoader for this. If you are, continue:
The texture part (ModLoader.addOverr...) doesn't go in it's registration anymore. Instead, it goes around: ModLoader.RegisterBlock(___..., I'd say right before the recipes. Try that and also, put your textures in bin/minecraft/net. Then where you put the filename of your texture overrid(ation?) put:
,"/Luna/Textures/spikes.png"
(Make sure there is a Luna file with a Textures file in it with your spikes.png file in it. Sorry if you can't understand, and in advance, Your Welcome!)
In other words, please help me, anyone, with my last post!
hey im workin out a wee little mod for different color plank blocks. ive gotten though all the errors for them and this one popped up. it has something to do with the wooden stairs. if you need more info lemme no but any clue to what i have to do would be amazing.
src\minecraft\net\minecraft\src\Block.java:842: variable planks might not have b
een initialized
stairCompactPlanks = (new BlockStairs(53, planks)).setBlockName("stairsWood").di
sableNeighborNotifyOnMetadataChange();
^
1 error
hope this stuff helps VVV
public static final Block woodblack;
public static final Block woodblue;
public static final Block woodbrown;
public static final Block woodcyan;
public static final Block wooddarkgrey;
public static final Block woodgreen;
public static final Block woodgrey;
public static final Block woodlightblue;
public static final Block woodlimegreen;
public static final Block woodmagenta;
public static final Block woodorange;
public static final Block woodpink;
public static final Block woodpurple;
public static final Block woodred;
public static final Block woodwhite;
public static final Block woodyellow;
woodblack = (new Block(97, 167,
Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodblue = (new Block(98, 168, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodbrown = (new Block(99, 169, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodcyan = (new Block(100, 170, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
wooddarkgrey = (new Block(101, 171, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodgreen = (new Block(102, 172, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodgrey = (new Block(103, 173, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodlightblue = (new Block(104, 174, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodlimegreen = (new Block(105, 81, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodmagenta = (new Block(106, 82, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodorange = (new Block(107, 83, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodpink = (new Block(108, 84, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodpurple = (new Block(109, 85, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodred = (new Block(110, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodwhite = (new Block(111, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodyellow = (new Block(112, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
Me and my friend are working on a mod that will add tonnes of adventure to the game, you can sort of think of it as the 1.8 update times 10.
I have created a new variable in my mod_blahblah class that extends BaseMod called public static InventoryBasicAMP accessoriesInv = new InventoryBasicAMP("jafl;d;a", 8);
I copied the code from the inventory basic class and put it into a new file and modified it to contain my own versions of the writeToNBT and readFromNBT functions:
I use the suffix AMP on all my own classes.
This inventory is supposed to contain accessory items of type ItemAccessoryAMP that are held in the slots in my new inventory gui kind of like the inventory from the aether mod. The inventory seems to save when I quit to title then enter the world all over again, but when I quit the game entirely the accessories don't seem to have saved.
Sometimes I get this error (sometiimes) it comes up with: The level save file is corrupted this may have been caused by two minecraft instances running at once... Or something like that.
Also when I reobfuscate it and install my mod into minecraft and right click on a crafting bench minecraft crashes.
PLEASE send me a reply at [email protected]
I have the BlockActivated method, and I have it return true. Any ideas as to why it is not working? (It gives the player a gold ingot when they right click a block, hence the BlockActivated mathod.)
If anyone knows how, please let me know. This is essential in a mod I am working on.
Also, how in the world do I make sure that it is a certain type of an item? For example, a recipe for a block I'm adding needs to have lapis dye in it... how do I make sure that it is the lapis dye and not just plain ol' bonemeal (white dye)?
I really need help with this. Thanks in advanced.
Thanks in advance! :cool.gif:
It's called reobfuscate.bat, and then the .class files are found in the reobf directory.
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!
To take the test, check out
https://minecraftnoobtest.com/test.php
Don't click this link, HE is haunting it...
The tutorial is old. Now you use
Also, check out my YouTube channel: www.YouTube.com/StrongJoshua
Thank you, thank you very much! However, any idea about giving a player an item? This is the one thing I cannot get...
== MCP v4.3 ==
> Recompiling client...
"C:\Program Files\Java\jdk1.6.0_26\bin\javac.exe" -g -verbose -classpath "lib/;l
ib/*;jars/bin/minecraft.jar;jars/bin/jinput.jar;jars/bin/lwjgl.jar;jars/bin/lwjg
l_util.jar" -sourcepath src/minecraft -d bin/minecraft src/minecraft\net\minecra
ft\client\*.java src/minecraft\net\minecraft\isom\*.java src/minecraft\net\minec
raft\src\*.java conf/patches/*.java failed.
Return code : 1
== ERRORS FOUND ==
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:6: net.minecraft.src.mod_It
emCrowbar is not abstract and does not override abstract method Version() in net
.minecraft.src.BaseMod
public class mod_ItemCrowbar extends BaseMod
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:11: cannot find symbol
symbol : constructor BaseMod(int)
location: class net.minecraft.src.BaseMod
super(i);
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:12: cannot find symbol
symbol : variable maxStackSize
location: class net.minecraft.src.mod_ItemCrowbar
maxStackSize = 1;
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:13: cannot find symbol
symbol : variable maxDamage
location: class net.minecraft.src.mod_ItemCrowbar
maxDamage = 500;
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:19: damageItem(int,net.mine
craft.src.Entity) in net.minecraft.src.ItemStack cannot be applied to (int)
itemstack.damageItem(1);
^
src\minecraft\net\minecraft\src\mod_ItemCrowbar.java:24: damageItem(int,net.mine
craft.src.Entity) in net.minecraft.src.ItemStack cannot be applied to (int)
itemstack.damageItem(2);
^
6 errors
==================
> Done in 12.08 seconds
> Recompiling server...
!! Can not find server sources !!
Press any key to continue . . .
Are you modding with or without ModLoader?
THANKS SO MUCH! I WATCHED SO MANY VIDEOS BUT YOU MADE THE FIANL CUT!
http://tinyurl.com/2dyg4qs
hi im trying to setup mcp for netbeans and i have the same exact thing as the eclipse tutorial and it has errors in the start.java and almost every file in the net.minecraft.src. please help! i also followed the setup for netbeans in this tutorial. I triple checked it numerous times and am positive i did it right. How to setup MCP with Netbeans I think it has something to do with the paths i put for the natives folder and the MCP bin minecraft folder. heres what i put: C:\Users\MyName\Downloads\MCP\jars\bin\natives\ for natives in vm options and C:\Users\Alec\Downloads\MCP\bin\minecraft\ for project.properties. Please help!
Without. I couldnt figure out how to mod with modloader
http://gyazo.com/a7ff4e870607f9eac45ba73f80e55b9e
This is my folder in jar.
http://gyazo.com/83556d426a681758a2c71e9f903361c1
Am I doing something wrong?
EDIT
I fixed it! I did not know if I suppose to move the folders!
1. My mob doesnt move, for some reason, and I'll put my javas later if someone tells me how to make a [SPOILER]. (Im new!)
2. How do I get top, bottom, etc. textures for my blocks, and don't say "Look at other blocks!" because it doesn't help at all!
3. Lastly, is it safe to put AudioMod in my jar that I put in in the beginning? Just wondering(imma noob)
Thanks, dspanom, for anyone that helps! :smile.gif:
P.S. I'm making a mod. :biggrin.gif:
Pictures!
That is what I get when I recomplie.
http://gyazo.com/7caccc16717e5b725fe6c9bea413b1f5
This is my BlockSpikes.java file, I have The package net.minecraft.src; and the other 1 thing in it but I couldnt fit it.
http://gyazo.com/d601b0d86bd3d916b6dfbb2bac770b6d
This is my mod_Spikes.java
http://gyazo.com/80b9ffc679d14467ad846ca185352d03
any help is great!
EDIT
Basically I am having trouble with this line
It seems, first of all, you must be using ModLoader for this. If you are, continue:
The texture part (ModLoader.addOverr...) doesn't go in it's registration anymore. Instead, it goes around: ModLoader.RegisterBlock(___..., I'd say right before the recipes. Try that and also, put your textures in bin/minecraft/net. Then where you put the filename of your texture overrid(ation?) put:
(Make sure there is a Luna file with a Textures file in it with your spikes.png file in it. Sorry if you can't understand, and in advance, Your Welcome!)
In other words, please help me, anyone, with my last post!
src\minecraft\net\minecraft\src\Block.java:842: variable planks might not have b
een initialized
stairCompactPlanks = (new BlockStairs(53, planks)).setBlockName("stairsWood").di
sableNeighborNotifyOnMetadataChange();
^
1 error
hope this stuff helps VVV
public static final Block woodblack;
public static final Block woodblue;
public static final Block woodbrown;
public static final Block woodcyan;
public static final Block wooddarkgrey;
public static final Block woodgreen;
public static final Block woodgrey;
public static final Block woodlightblue;
public static final Block woodlimegreen;
public static final Block woodmagenta;
public static final Block woodorange;
public static final Block woodpink;
public static final Block woodpurple;
public static final Block woodred;
public static final Block woodwhite;
public static final Block woodyellow;
woodblack = (new Block(97, 167,
Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodblue = (new Block(98, 168, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodbrown = (new Block(99, 169, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodcyan = (new Block(100, 170, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
wooddarkgrey = (new Block(101, 171, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodgreen = (new Block(102, 172, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodgrey = (new Block(103, 173, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodlightblue = (new Block(104, 174, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodlimegreen = (new Block(105, 81, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodmagenta = (new Block(106, 82, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodorange = (new Block(107, 83, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodpink = (new Block(108, 84, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodpurple = (new Block(109, 85, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodred = (new Block(110, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodwhite = (new Block(111, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();
woodyellow = (new Block(112, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep).setBlockName("wood").disableNeighborNotifyOnMetadataChange();