• 8

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Hey guys this is Synasonic and this is my minecraft forge modding tutorial fr 1.6.4!



    1.Setting up Java JDK, MCP and Eclipse with Forge ( 1.6.2 / 1.6.4 )




    Forge 1.6.4 download http://files.minecraftforge.net/ 2.Our First Basic Item ( 1.6.2 / 1.6.4 )




    Ok so this is the code you will want to paste in
    package Syn.Tutorial; //Package directory
    /*
    * Basic importing
    */
    import net.minecraft.block.Block;
    import net.minecraft.item.EnumToolMaterial;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemFood;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.common.EnumHelper;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    /*
    * Basic needed forge stuff
    */
    @Mod(modid="ModTutorial",name="Mod Tutorial",version="v1")
    @NetworkMod(clientSideRequired=true,serverSideRequired=false)
    public class ModTutorial {
    /*
    * ToolMaterial
    */
    //Telling forge that we are creating these
    //items
    public static Item amethyst;
    
    //tools
    
    //Declaring Init
    @Init
    public void load(FMLInitializationEvent event){
    // define items
    amethyst = new Synitems(2000).setUnlocalizedName("amethyst");
    // define blocks
    
    //adding names
    //items
    LanguageRegistry.addName(amethyst, "Amethyst");
    
    //blocks
    //crafting
    }
    }



    Ok and now after you have that and have changed it to your liking you will want to make a new class, mine is called "Synitems" you will want to paste this into it.

    package Syn.Tutorial;
    
    import net.minecraft.item.Item;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.*;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    
    public class Synitems extends Item {
    
    public Synitems(int par1) {
    super(par1); //Returns super constructor: par1 is ID
    setCreativeTab(CreativeTabs.tabMaterials); }//Tells the game what creative mode tab it goes in
    
    
    public void registerIcons(IconRegister reg) { // Make sure to import IconRegister!
    if (itemID == ModTutorial.amethyst.itemID) {
    this.itemIcon = reg.registerIcon("amethyst"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    }
    }

    3.Our First Basic Block(Solid) ( 1.6.2 / 1.6.4 )




    First you want to make sure that you have this imported into your main class. Skip this step if you already have it.

    import net.minecraft.block.Block;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;



    Next you want to create the block so put this into your "public static brackets"

    public static Block amethystblock;


    Now you want to declare what the block is, put this now in your "public void load brackets".


    AmethystBlock = new AmethystBlock(3608, "amethystblock").setUnlocalizedName("amethyst_block").setHardness(5.0F).setStepSound(Block.soundMetalFootstep).setResistance(10.0F);
    GameRegistry.registerBlock(amethystblock, "amethystblock");


    Next inside your "Language registry" section put this

    LanguageRegistry.addName(amethystblock, "Amethyst Block");


    Now you want to make a new class, I called mine "Amethystblock"
    You want to paste this into it and make the changes needed.

    package Syn.Tutorial;
    import java.util.Random;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    public class AmethystBlock extends Block {
    public AmethystBlock(int par1, String texture) {
    super(par1, Material.iron);
    setCreativeTab(CreativeTabs.tabBlock); //place in creative tabs
    }
    //drops when broken with pickaxe
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return ModTutorial.amethystblock.blockID;
    }
    public int quantityDropped(Random random)
    {
    return 1;
    }
    
    public void registerIcons(IconRegister reg) { // Make sure to import IconRegister!
    this.blockIcon = reg.registerIcon("amethyst_block"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }



    4.Shapeless and Shaped Crafting ( 1.6.2 / 1.6.4 )




    In this episode I will be showing you how to craft. We will be crafting our block out of our item and our item out of out block.

    Basic OR Shaped Crafting

    First paste this code into you "public void load()"

    GameRegistry.addRecipe(new ItemStack(amethystblock,1), new Object[]{
    "TTT","TTT","TTT",'T',amethyst,
    });


    One T = 1 amethyst

    The "TTT","TTT","TTT"

    like this:

    "TTT","TTT","TTT"


    is actually like this in crafting squares:

    "123","456","789"



    Shapeless Crafting

    This means the item can go into the table in no special order

    GameRegistry.addShapelessRecipe(new ItemStack(amethyst,1), new Object[]{
    amethystblock});


    5.Ores and World Gen In OverWorld ( 1.6.2 / 1.6.4 )




    First we want to paste this line of code into your Main Class and under the "public void loads" brackets to register our new world gen.

    GameRegistry.registerWorldGenerator(new WorldGeneratorSyn());


    Next make a new class by hovering over the "WorldGeneratorSyn" (it should be an error) and click create new class.

    You will want to paste this into that class

    package Syn.Tutorial;
    import java.util.Random;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    import cpw.mods.fml.common.IWorldGenerator;
    import cpw.mods.fml.common.IWorldGenerator;
    
    public class WorldGeneratorSyn implements IWorldGenerator {
    @Override
    public void generate(Random random, int chunkX, int chunkZ, World world,
    IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
    // TODO Auto-generated method stub
    switch(world.provider.dimensionId){
    //case -1: generateNether(world, random,chunkX*16,chunkZ*16);
    case 0 : generateSurface(world, random,chunkX*16,chunkZ*16);
    }
    }
    
    private void generateSurface(World world, Random random, int BlockX, int BlockZ) {
    for(int i =0; i<10;i++){
    int Xcoord = BlockX + random.nextInt(16);
    int Zcoord = BlockZ + random.nextInt(16);
    int Ycoord = random.nextInt(16);
    (new WorldGenMinable(ModTutorial.AmethystOre.blockID, 4)).generate(world, random, Xcoord, Ycoord, Zcoord);
    }}}

    6.Smelting ( 1.6.2 / 1.6.4 )




    We are making a smelting recipe which is very easy and quick. Pretty much all you need is this little line of code in your "Public void load" brackets, I usually put them underneath my crafting recipes


    GameRegistry.addSmelting(ModTutorial.amethyst.itemID, new ItemStack(RefinedAmethyst, 1), 5F);


    That is to make 1 Refined Amethyst
    7.Publishing Our Mod ( 1.6.2 / 1.6.4 )
    8.Tools!(Pickaxe, Sword, Axe, Hoe, Shovel) And New Tool Type! ( 1.6.2 / 1.6.4 )




    In this episode I will be showing you have to create your own tools!

    First you want to make sure you have all the imports


    import net.minecraft.item.EnumToolMaterial;
    import net.minecraftforge.common.EnumHelper;



    Next you want to register the tool type

    public static EnumToolMaterial AmethystTool = EnumHelper.addToolMaterial("AmethystTool", 3, 1600, 9.0F, 3.0F, 10);


    there we have our amethyst tool type set


    next we want to define the tools (Sword, Axe, Pickaxe, Shovel, Hoe)

    AmethystAxe = new SynAxe(2004, AmethystTool).setUnlocalizedName("amethytst_axe");
    AmethystShovel = new SynShovel(2005, AmethystTool).setUnlocalizedName("amethyst_shovel");
    AmethystPickaxe = new SynPickaxe(2006, AmethystTool).setUnlocalizedName("amethyst_pickaxe");
    AmethystHoe = new SynHoe(2007, AmethystTool).setUnlocalizedName("amethyst_hoe");
    AmethystSword = new SynSword(2008, AmethystTool).setUnlocalizedName("amethyst_sword");


    next you want to make the corresponding classes (SynAxe, SynShovel, ect..) And put in this code, changing minor things for the different tool.


    package Syn.ModTutorial;
    
    import Syn.ModTutorial;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.EnumToolMaterial;
    import net.minecraft.item.ItemPickaxe;
    import net.minecraft.item.ItemSword;
    public class SynPickaxe extends ItemPickaxe {
    public SynPickaxe(int ItemID, EnumToolMaterial material){
    super(ItemID, material);
    setCreativeTab(CreativeTabs.tabTools); }//Tells the game what creative mode tab it goes in
    public void registerIcons(IconRegister reg) { // Make sure to import IconRegister!
    if (itemID == ModTutorial.AmethystPickaxe.itemID) {
    this.itemIcon = reg.registerIcon("amethyst_pickaxe"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    }
    }


    then you want to set the name in the language registry.

    LanguageRegistry.addName(AmethystAxe, "Amethyst Axe");
    LanguageRegistry.addName(AmethystShovel, "Amethyst Shovel");
    LanguageRegistry.addName(AmethystPickaxe, "Amethyst Pickaxe");
    LanguageRegistry.addName(AmethystSword, "Amethyst Sword");
    LanguageRegistry.addName(AmethystHoe, "Amethyst Hoe");


    Then you can add the crafting recipe

    	 GameRegistry.addRecipe(new ItemStack(AmethystPickaxe,1), new Object[]{
    "TTT"," Y "," Y ",'T',amethyst,'Y',Item.stick
    });
    
    
    GameRegistry.addRecipe(new ItemStack(AmethystSword,1), new Object[]{
    " T "," T "," Y ",'T',amethyst,'Y',Item.stick
    });
    
    
    GameRegistry.addRecipe(new ItemStack(AmethystAxe,1), new Object[]{
    "TT ","TY "," Y ",'T',amethyst,'Y',Item.stick
    });
    GameRegistry.addRecipe(new ItemStack(AmethystHoe,1), new Object[]{
    "TT "," Y "," Y ",'T',amethyst,'Y',Item.stick
    });
    GameRegistry.addRecipe(new ItemStack(AmethystShovel,1), new Object[]{
    " T "," Y "," Y ",'T',amethyst,'Y',Item.stick
    });

    9.Armor (Our Own Armor Type)( 1.6.2 / 1.6.4 )


    VIDEO WILL BE UP SHORTLY!


    In this episode we are makin armor, thats right baby!


    First you want to make sure you have all your imports

    import net.minecraft.item.EnumArmorMaterial;



    Next, you will want to also make sure you have your general item things defined

    public static Item AmethystChestplate;
    public static Item AmethystBoots;
    public static Item AmethystLeggings;
    public static Item AmethystHelmet;


    Now you want to create the new armor type, so put this in by the area where you but the enumToolMaterial

    public static EnumArmorMaterial AmethystArmor = EnumHelper.addArmorMaterial("AmethystArmor", 8, new int[] { 3, 7, 6, 3 }, 30);


    Now you will need to quickly add the rendering registry so that when the armor is on your body you can actually see the texture and not a bunch of black blobs

    RenderingRegistry.addNewArmourRendererPrefix("AmethystArmor");


    Ok so now you want to declare them now, so pretty much just put this in there, just like the tools again

    AmethystHelmet = new AmethystArmor(2055, AmethystArmor, 5, 0).setUnlocalizedName("amethyst_helmet");
    AmethystChestplate = new AmethystArmor(2056, AmethystArmor, 5, 1).setUnlocalizedName("amethyst_chestplate");
    AmethystLeggings = new AmethystArmor(2057, AmethystArmor, 5, 2).setUnlocalizedName("amethyst_leggings");
    AmethystBoots = new AmethystArmor(2058, AmethystArmor, 5, 3).setUnlocalizedName("amethyst_boots");




    after the "5" you want to keep the "0, 1, 2, 3" because those are what sets which type of armor it is

    0 = Helmet
    1 = Chestplate
    2 = Leggings
    3 = Boots

    Then make a new class called "AmethystArmor" or whatever you want to call it,and put in this code


    package Syn.Tutorial;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.entity.Entity;
    import net.minecraft.item.EnumArmorMaterial;
    import net.minecraft.item.ItemArmor;
    import net.minecraft.item.ItemStack;
    public class AmethystArmor extends ItemArmor {
    public AmethystArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial,
    int par3, int par4) {
    super(par1, par2EnumArmorMaterial, par3, par4);
    }
    public String getArmorTexture(ItemStack stack, Entity entity, int slot,
    int layer) {
    if (stack.itemID == ModTutorial.AmethystHelmet.itemID
    || stack.itemID == ModTutorial.AmethystChestplate.itemID
    || stack.itemID == ModTutorial.AmethystBoots.itemID) {
    return "minecraft:textures/armor/AmethystArmor_1.png";
    }
    if (stack.itemID == ModTutorial.AmethystLeggings.itemID) {
    return "minecraft:textures/armor/AmethystArmor_2.png";
    } else {
    return null;
    }
    
    }
    public void registerIcons(IconRegister reg) { // Make sure to import IconRegister!
    if (itemID == ModTutorial.AmethystChestplate.itemID) {
    this.itemIcon = reg.registerIcon("amethyst_chestplate"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    if (itemID == ModTutorial.AmethystLeggings.itemID) {
    this.itemIcon = reg.registerIcon("amethyst_pants"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    if (itemID == ModTutorial.AmethystBoots.itemID) {
    this.itemIcon = reg.registerIcon("amethyst_boots"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    if (itemID == ModTutorial.AmethystHelmet.itemID) {
    this.itemIcon = reg.registerIcon("amethyst_helmet"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    }
    }



    The bottom Item icon parts are just setting the texture for when the armor is inside your inventory


    Now pretty much all that there is left to do is set the Language Registry and the crafting recipes

    Language Registry:

    LanguageRegistry.addName(AmethystHelmet, "Amethyst Helmet");
    LanguageRegistry.addName(AmethystChestplate, "Amethyst Chestplate");
    LanguageRegistry.addName(AmethystBoots, "Amethyst Boots");
    LanguageRegistry.addName(AmethystLeggings, "Amethyst Leggings");


    Crafting Recipe:

    GameRegistry.addRecipe(new ItemStack(AmethystHelmet,1), new Object[]{
    "TTT","T T"," ",'T',Amethyst,
    });
    GameRegistry.addRecipe(new ItemStack(AmethystChestplate,1), new Object[]{
    "T T","TTT","TTT",'T',Amethyst,
    });
    GameRegistry.addRecipe(new ItemStack(AmethystLeggings,1), new Object[]{
    "TTT","T T","T T",'T',Amethyst,
    });
    GameRegistry.addRecipe(new ItemStack(AmethystBoots,1), new Object[]{
    "T T","T T"," ",'T',Amethyst,
    });


    Thats All! watch the video for a better explanation!
    10.Creative Tabs( 1.6.2 / 1.6.4 )


    VIDEO WILL BE UP SHORTLY!

    Hey guys this is a really quick one, I'm probably going to be putting this one up and then another one right after it, I'm just doing a video on creative tabs because I think it is long overdue!

    first you want to put in this import

    import net.minecraft.creativetab.CreativeTabs;


    Ok so now that you have that you want to create the tab, put this in by your armor and items and stuff

    public static CreativeTabs ModTutorialTab = new ModTutorialTab(CreativeTabs.getNextID(), "Mod Tutorial Tab");


    Next create the new "ModTutorialTab" Class and put this in it

    package Syn.Tutorial;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.creativetab.CreativeTabs;
    public final class ModTutorialTab extends CreativeTabs
    {
    public ModTutorialTab(int par1, String par2Str)
    {
    super(par1, par2Str);
    }
    //sets the image for the creative tab
    @SideOnly(Side.CLIENT)
    public int getTabIconItemIndex()
    {
    //there is a difference between items and blocks. will give an example of both
    return ModTutorial.Amethyst.itemID;
    }
    //sets the title/name for the creative tab
    public String getTranslatedTabLabel()
    {
    return "Syn Tutorial Mod";
    }
    }



    whatever is in the quotations after return at the end is what will show up in game

    And what ever the top return is set at is what block will be on the tip of the tab.

    to set it as the creative tab for your items just change your item creative tab code to this

    setCreativeTab(ModTutorial.ModTutorialTab); }


    11.Glass ( 1.6.2 / 1.6.4 )

    VIDEO WILL BE UP SHORTLY!

    Glass is quite an easy one so it will be a very quick video and tutorial to make it, someone asked and I wanted to get it out of the way before I did mobs.

    First you want to make the item

    public static Block AmethystGlass;


    next you want to define the item, as always

    AmethystGlass = new AmethystGlass(2070, "amethystglass").setUnlocalizedName("amethyst_glass").setHardness(0.3F).setStepSound(Block.soundGlassFootstep).setResistance(1.0F);
    GameRegistry.registerBlock(AmethystGlass, "AmethystGlass");


    Now what you want to do it make the new "AmethystGlass" class and put this inside it

    package Syn.Tutorial;
    
    import java.util.Random;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    
    public class AmethystGlass extends Block {
    
    public AmethystGlass(int par1, String texture) {
    super(par1, Material.glass);
    setCreativeTab(CreativeTabs.tabBlock); //place in creative tabs
    }
    
    
    public boolean isOpaqueCube() {
    return false;
    }
    public boolean renderAsNormalBlock() {
    return false;
    }
    public int getRenderType() {
    return 0;
    }
    public int getRenderBlockPass() {
    return 0;
    }
    protected boolean canSilkHarvest() {
    return true;
    }
    
    //drops when broken with pickaxe
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return ModTutorial.AmethystGlass.blockID;
    }
    public int quantityDropped(Random random)
    {
    return 0;
    }
    
    public void registerIcons(IconRegister reg) { // Make sure to import IconRegister!
    this.blockIcon = reg.registerIcon("amethyst_glass"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    }


    Now all that's left to do is set the language registry, crafting recipe

    LanguageRegistry.addName(AmethystGlass, "Amethyst Glass");


    I decided to do a smelting recipe

    GameRegistry.addSmelting(ModTutorial.AmethystOre.blockID, new ItemStack(AmethystGlass, 1), 5F);


    now remember for the texture the spots where you want to be able to see through you want to make transparent in your texture editing program, usually if it is little checkered sqaures in the back it is a transparent spot. I will get more into detail in the video.

    12.Fixing Textures ( 1.6.2 / 1.6.4 )


    VIDEO WILL BE UP SHORTLY

    Ok so this is how to fix the textures so that you dont have to put them into the jar

    its pretty Simple, first in your block or item class you will want to replace the register icon part with this

    public void registerIcons(IconRegister iconRegister)
    {
    if(blockID == Tutorial.amethystblock.blockID)
    {
    this.blockIcon = iconRegister.registerIcon("syn:amethyst_block");
    }
    }
    }


    then what you will want to do, is go into your modding folder on your desktop or where ever you put it, and go to this area
    forge>mcp>src>minecraft

    You will then want to make a folder called "assets" and inside that folder, make a folder called "syn" then a folder called "textures" and then the folders like "blocks", "items" and which ever other folders which are needed.

    you will then put your textures in these folders and not have to put them in the jar.

    The video will explain in more detail.
    13.Fences ( 1.6.2 / 1.6.4 )


    VIDEO WILL BE UP SHORTLY

    So here we goes, I know that no one really wanted a tutorial on this but Ive got the code so I though why not.

    So first you have to declare the block

    public static Block AmethystFence;


    next, you want to define the block

    AmethystFence = new AmethystFence(2050, "amethystfence", null).setUnlocalizedName("amethyst_block").setHardness(3.0F).setStepSound(Block.soundMetalFootstep).setResistance(5.0F).setTextureName("amethyst_block");
    GameRegistry.registerBlock(AmethystFence, "AmethystFence");


    and also put in the language registry

    LanguageRegistry.addName(AmethystFence, "Amethyst Fence");


    OK so now you want to move on to the main class, this is how it should be
    package Syn.Tutorial;
    
    
    import java.util.Random;
    
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockFence;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    
    
    public class AmethystFence extends BlockFence {
    
    
    
    private String texture; 
    
    
    public AmethystFence(int par1, String par2Str, Material par3Material) {
    super(par1, par2Str, Material.rock);
    this.texture = par2Str;
    
    
    
    setCreativeTab(CreativeTabs.tabDecorations); //place in creative tabs
    }
    
    
    //drops when broken with pickaxe
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return ModTutorial.AmethystFence.blockID;
    }
    public int quantityDropped(Random random)
    {
    return 1;
    }
    
    
    public void registerIcons(IconRegister iconRegister)
    {
    if(blockID == ModTutorial.amethystblock.blockID)
    {
    this.blockIcon = iconRegister.registerIcon("syn:amethyst_block");
    }
    }
    }


    And then here if you want you can also set a crafting recipe
    GameRegistry.addRecipe(new ItemStack(AmethystFence,6), new Object[]{
    "   ","TTT","TTT",'T',Amethyst,
    });

    Get My Textures
    http://adf.ly/Xfyx5


    Donate!
    http://adf.ly/bFwwA






    http://adf.ly/Xfyx5
    Posted in: Mapping and Modding Tutorials
  • 1

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from emx2000


    okay, mobs sounds great too!

    and i need help for my armors, it shows up when you hold it on your hand but when you wear the armor it shows black squares, here's my code:
    package emx2000.obsidianstuff;
    
    
    import net.minecraft.block.Block;
    import net.minecraft.item.EnumArmorMaterial;
    import net.minecraft.item.EnumToolMaterial;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemFood;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.common.EnumHelper;
    import cpw.mods.fml.client.registry.RenderingRegistry;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    
    @Mod(modid="ObsidianStuff",name="Obsidian Stuff",version="v1.0")
    @NetworkMod(clientSideRequired=true,serverSideRequired=false)
    public class ObsidianStuff {
    
    
    public static Item ObsidianFragment;
    public static Item PurifiedObsidian;
    public static Item ObsidianIngot;
    public static Item ObsidianAxe;
    public static Item ObsidianShovel;
    public static Item ObsidianPickaxe;
    public static Item ObsidianHoe;
    public static Item ObsidianSword;
    public static Item ObsidianChestplate;
    public static Item ObsidianBoots;
    public static Item ObsidianLeggings;
    public static Item ObsidianHelmet;
    public static EnumToolMaterial ObsidianTools = EnumHelper.addToolMaterial("ObsidianTools", 3, 2500, 10.0F, 5.0F, 20);
    public static EnumArmorMaterial ObsidianArmor = EnumHelper.addArmorMaterial("ObsidianArmor", 8, new int[] { 5, 9, 8, 5 }, 30);
    
    
    @Init
    public void load(FMLInitializationEvent event){
    
    RenderingRegistry.addNewArmourRendererPrefix("ObsidianArmor");
    
    
    ObsidianFragment = new ObsidianItems(2000).setUnlocalizedName("obsidian_fragment");
    PurifiedObsidian = new ObsidianItems(2001).setUnlocalizedName("obsidian_purified");
    ObsidianIngot = new ObsidianItems(2002).setUnlocalizedName("obsidian_ingot");
    
    ObsidianAxe = new ObsidianAxe(2003, ObsidianTools).setUnlocalizedName("obsidian_axe");
    ObsidianShovel = new ObsidianShovel(2004, ObsidianTools).setUnlocalizedName("obsidian_shovel");
    ObsidianPickaxe = new ObsidianPickaxe(2005, ObsidianTools).setUnlocalizedName("obsidian_pickaxe");
    ObsidianHoe = new ObsidianHoe(2006, ObsidianTools).setUnlocalizedName("obsidian_hoe");
    ObsidianSword = new ObsidianSword(2007, ObsidianTools).setUnlocalizedName("obsidian_sword");
    
    ObsidianHelmet = new ObsidianArmor(2008, ObsidianArmor, 5, 0).setUnlocalizedName("obsidian_helmet");
    ObsidianChestplate = new ObsidianArmor(2009, ObsidianArmor, 5, 1).setUnlocalizedName("obsidian_chestplate");
    ObsidianLeggings = new ObsidianArmor(2010, ObsidianArmor, 5, 2).setUnlocalizedName("obsidian_leggings");
    ObsidianBoots = new ObsidianArmor(2011, ObsidianArmor, 5, 3).setUnlocalizedName("obsidian_boots");
    
    LanguageRegistry.addName(ObsidianFragment, "Obsidian Fragment");
    LanguageRegistry.addName(PurifiedObsidian, "Refined Obsidian Fragment");
    
    LanguageRegistry.addName(ObsidianAxe, "Obsidian Axe");
    LanguageRegistry.addName(ObsidianShovel, "Obsidian Shovel");
    LanguageRegistry.addName(ObsidianPickaxe, "Obsidian Pickaxe");
    LanguageRegistry.addName(ObsidianHoe, "Obsidian Hoe");
    LanguageRegistry.addName(ObsidianSword, "Obsidian Sword");
    
    LanguageRegistry.addName(ObsidianHelmet, "Obsidian Helmet");
    LanguageRegistry.addName(ObsidianChestplate, "Obsidian Chestplate");
    LanguageRegistry.addName(ObsidianLeggings, "Obsidian Leggings");
    LanguageRegistry.addName(ObsidianBoots, "Obsidian Boots");
    
    
    GameRegistry.addShapelessRecipe(new ItemStack(ObsidianFragment,4), new Object[]{
    Block.obsidian});
    
    GameRegistry.addRecipe(new ItemStack(ObsidianIngot,1), new Object[]{
    " T ","TYT"," T ",'T',PurifiedObsidian,'Y',Item.ingotIron,
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianAxe,1), new Object[]{
    "TT ","TY "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianAxe,1), new Object[]{
    "TT "," YT"," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianShovel,1), new Object[]{
    " T "," Y "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianShovel,1), new Object[]{
    "T ","Y ","Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianShovel,1), new Object[]{
    " T"," Y"," Y",'T',ObsidianIngot,'Y',Item.stick,
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianPickaxe,1), new Object[]{
    "TTT"," Y "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianHoe,1), new Object[]{
    "TT "," Y "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianHoe,1), new Object[]{
    " TT"," Y "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianSword,1), new Object[]{
    " T "," T "," Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianSword,1), new Object[]{
    " T"," T"," Y",'T',ObsidianIngot,'Y',Item.stick,
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianSword,1), new Object[]{
    "T ","T ","Y ",'T',ObsidianIngot,'Y',Item.stick,
    });
    
    
    GameRegistry.addRecipe(new ItemStack(ObsidianHelmet,1), new Object[]{
    "TTT","T T"," ",'T',ObsidianIngot
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianHelmet,1), new Object[]{
    " ","TTT","T T",'T',ObsidianIngot
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianChestplate,1), new Object[]{
    "T T","TTT","TTT",'T',ObsidianIngot
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianLeggings,1), new Object[]{
    "TTT","T T","T T",'T',ObsidianIngot
    });
    
    GameRegistry.addRecipe(new ItemStack(ObsidianBoots,1), new Object[]{
    "T T","T T"," ",'T',ObsidianIngot
    });
    GameRegistry.addRecipe(new ItemStack(ObsidianBoots,1), new Object[]{
    " ","T T","T T",'T',ObsidianIngot
    });
    
    GameRegistry.addSmelting(ObsidianStuff.ObsidianFragment.itemID, new ItemStack(PurifiedObsidian, 1), 10F);
    
    }
    }
    package emx2000.obsidianstuff;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.entity.Entity;
    import net.minecraft.item.EnumArmorMaterial;
    import net.minecraft.item.ItemArmor;
    import net.minecraft.item.ItemStack;
    
    public class ObsidianArmor extends ItemArmor {
    public ObsidianArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial,
    int par3, int par4) {
    super(par1, par2EnumArmorMaterial, par3, par4);
    }
    
    
    public String getArmorTexture(ItemStack stack, Entity entity, int slot,
    int layer) {
    if (stack.itemID == ObsidianStuff.ObsidianHelmet.itemID
    || stack.itemID == ObsidianStuff.ObsidianChestplate.itemID
    || stack.itemID == ObsidianStuff.ObsidianBoots.itemID) {
    return "minecraft:textures/models/armor/obsidian armor_1.png";
    }
    if (stack.itemID == ObsidianStuff.ObsidianLeggings.itemID) {
    return "minecraft:textures/models/armor/obsidian_armor_2.png";
    } else {
    return null;
    }
    }
    
    
    public void registerIcons(IconRegister reg) {
    if (itemID == ObsidianStuff.ObsidianChestplate.itemID) {
    this.itemIcon = reg.registerIcon("obsidian_chestplate");
    }
    
    if (itemID == ObsidianStuff.ObsidianLeggings.itemID) {
    this.itemIcon = reg.registerIcon("obsidian_leggings");
    }
    
    if (itemID == ObsidianStuff.ObsidianBoots.itemID) {
    this.itemIcon = reg.registerIcon("obsidian_boots");
    }
    
    if (itemID == ObsidianStuff.ObsidianHelmet.itemID) {
    this.itemIcon = reg.registerIcon("obsidian_helmet");
    }
    
    }
    }


    See how it says "minecraft:textures/models/armour/obsidian_armor_1" (or 2) get rid f the models part, make a new folder inside the textures folder called armour and put them there, and change it to "minecraft:textures/armor/obsidian_armor_1" (again or 2) and it should work ^-^
    Posted in: Mapping and Modding Tutorials
  • 1

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from chasingfire_hpps

    It says the import cpw and the import net.minecraftforge cannot be resolved and when I try to copy and paste the code it comes out in one line.


    Hmm well that's a setting in eclipse, just type it all out XD lol
    Posted in: Mapping and Modding Tutorials
  • 1

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from Nokladr

    Hello, Syn you get grammar error in "modding tutorial fr 1.6.4!" u need for, but not fr)




    Lol I never noticed that, ok thanks for lettin me know, I'll fix it XD
    Posted in: Mapping and Modding Tutorials
  • 2

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from pr0_hAmA

    How to add lapis lazuli to recipe ? I know the lapis lazuli is Item.dyePowder 4 but i don't know how to add the 4 .So if you can help me i will be very happy ^.^


    ok here is how you do it,

    (new ItemStack(Item.dyePowder,1 ,4))


    put that where the name would go ok? make sense? so it would be like

    GameRegistry.addRecipe(new ItemStack(amethystblock,1), new Object[]{
    "TTT","TYT","TTT",'T',amethyst,'Y', (new ItemStack(Item.dyePowder,1 ,4))
    });


    like that if i wanted to put a piece of lapis in the middle to make a lapis block
    Posted in: Mapping and Modding Tutorials
  • 2

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from pr0_hAmA

    Smelting

    I will make a Twitter account just for you. :) Smelting looks good ! :) And thanks for the help :) You are very awesome dude !


    Haha ok smelting it is and thanks but your the awesome one who actually likes my videos, I'm super happy that people actually watch my videos. If I ever got to like 50 subs id go crazy
    Posted in: Mapping and Modding Tutorials
  • 2

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from pr0_hAmA

    How to add lapis lazuli to recipe ? I know the lapis lazuli is Item.dyePowder 4 but i don't know how to add the 4 .So if you can help me i will be very happy ^.^



    Ok ill look into it right now, but you should really follow me on twitter, it is an easier way for me to communicate because i can do it on my phone XD @thesyansonic

    But I will look into the dye thing right now, i think i know how to do it and ill let you know when I know

    Also what would you like me to do next? Tools? smelting? Plants?
    Posted in: Mapping and Modding Tutorials
  • 2

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from pr0_hAmA

    Hmm i have this :
    if (itemID == Rufted.purple.itemID) {
    this.itemIcon = reg.registerIcon("purple"); // You can also replace blockID and blockIcon with itemID and itemIcon
    if (itemID == Rufted.yellow.itemID) {
    this.itemIcon = reg.registerIcon("yellow");

    and
    purple = new Rufitems(2000).setUnlocalizedName("purple");
    yellow = new Rufitems(2003).setUnlocalizedName("yellow");

    For purple the texture is here but for yellow it dont show it... :/
    I will wait for the video :)


    Hmm well first off all it should be like this


    if (itemID == Rufted.purple.itemID) {
    this.itemIcon = reg.registerIcon("purple"); // You can also replace blockID and blockIcon with itemID and itemIcon
    }
    
    if (itemID == Rufted.yellow.itemID) {
    this.itemIcon = reg.registerIcon("yellow");


    thats your only problem man, you just need to have that curly bracket there for it to work, trust me that part had me thinkin for a really long time. And also what is your youtube name? ive been wondering :P
    Posted in: Mapping and Modding Tutorials
  • 2

    posted a message on [1.6.4] Minecraft Forge Modding Tutorial ~Synasonic~ SRC video tutorials
    Quote from pr0_hAmA

    Hello Syn! I love you tutorials <3 I have one question...How to add more items ? I maked that i have item but dont load the texture (it is in the 1.6.4 jar file ).
    hmm well have you done the public static item and declaring the item? Like this
    your_item = new Synitems(2003).setUnlocalizedName("your_item");

    if you have you then want to place this under your first item but leaving 1 curly bracket under the first part
    if (itemID == ModTutorial.your_item.itemID) {
    this.itemIcon = reg.registerIcon("your_item_texture"); // You can also replace blockID and blockIcon with itemID and itemIcon


    then have your two other curly brackets underneath

    I will quickly cover in part of my next video how to make another item :) thanks!


    -Synasonic
    Posted in: Mapping and Modding Tutorials
  • To post a comment, please .