Jump to content

Creating a mob


edymondo

Recommended Posts

No, im not sure doom, could you please tell me what i would need to do in order to do this as it just seems a bit beyond me, i will however try to find another tutorial and see if i can create an entity which will work with that one as well, thanks

 

I have a tutorial on custom entities.  Might give you some ideas: http://jabelarminecraft.blogspot.com/p/creating-custom-entities.html

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

I was looking at a new tutorial, and i found out that the model which i was registering was completely wrong, however it still doesnt work, so i still have no idea, and i would greatly appreciate it if anyone could tell me how to fix it.

 

(whilst i was writing this Jabelar posted, and thanks, I already saw your tutorial, however i would really like to fix this method, because I am using this tutorial for many things, so i want to know how to work with these.)

Link to comment
Share on other sites

I am going to create a github in a minute, because it will be useful for future problems, but here is my main modding class

package net.mymod.mod;


import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.EnumHelper;
import net.mymod.Handler.CraftingHandler;
import net.mymod.Handler.EntityHandler;
import net.mymod.Handler.GUIHandler;
import net.mymod.mod.Entity.EntityVampire;
import net.mymod.mod.TileEntity.TileEntityAngellicInfuser;
import net.mymod.mod.WorldGen.mymodWorldGen;
import net.mymod.mod.armor.AngelArmor;
import net.mymod.mod.armor.DemonArmor;
import net.mymod.mod.blocks.AltarBlock;
import net.mymod.mod.blocks.AltarCore;
import net.mymod.mod.blocks.AngellicInfuser;
import net.mymod.mod.blocks.AngellicOre;
import net.mymod.mod.blocks.DemonicOre;
import net.mymod.mod.items.AngelBlade;
import net.mymod.mod.items.AngelicIngot;
import net.mymod.mod.items.AngellicAxe;
import net.mymod.mod.items.AngellicHoe;
import net.mymod.mod.items.AngellicPickaxe;
import net.mymod.mod.items.AngellicSpade;
import net.mymod.mod.items.ChaosDust;
import net.mymod.mod.items.DemonicAxe;
import net.mymod.mod.items.DemonicCore;
import net.mymod.mod.items.DemonicHoe;
import net.mymod.mod.items.DemonicIngot;
import net.mymod.mod.items.DemonicMace;
import net.mymod.mod.items.DemonicPickaxe;
import net.mymod.mod.items.DemonicSpade;
import net.mymod.mod.items.InfusedStick;
import net.mymod.mod.items.PowderedOrder;

@Mod(modid = mymod.modid, version = mymod.version)
public class mymod {
public static final String modid = "mymod";
public static final String version = "Alpha 0.1";

mymodWorldGen eventWorldGen = new mymodWorldGen();

public static CreativeTabs SatangelicaTab;

//tool material

public static ToolMaterial AngelMaterial = EnumHelper.addToolMaterial("AngelMaterial", 3, 3000, 10.0f, 10.0f, 39); 
public static ToolMaterial DemonMaterial = EnumHelper.addToolMaterial("DemonMaterial", 3, 2000, 13.0f, 12.0f, 20);

//armor material

public static ArmorMaterial AngelArmor = EnumHelper.addArmorMaterial("AngelArmor", 10, new int[] {5, 8, 6, 5}, 40);
public static ArmorMaterial DemonArmor = EnumHelper.addArmorMaterial("DemonArmor", 10, new int[] {4, 7, 5, 4}, 27);

@Instance(modid)
public static mymod instance;

//blocks

public static Block blockAltarCore;
public static Block blockAltarBlock;
public static Block blockInfusedLog;
public static Block blockInfusedPlanks;


//ores

public static Block oreAngellicOre;
public static Block oreDemonicOre;

//items

public static Item itemInfusedStick;
public static Item itemAngelicCore;
public static Item itemDemonicCore;

//ingots

public static Item itemAngelicIngot;
public static Item itemDemonicIngot;

//dusts

public static Item itemChaosDust;
public static Item itemPowderedOrder;

//tools

public static Item itemAngelBlade;
public static Item itemAngellicPickaxe;
public static Item itemAngellicAxe;
public static Item itemAngellicSpade;
public static Item itemAngellicHoe;

public static Item itemDemonicMace;
public static Item itemDemonicPickaxe;
public static Item itemDemonicHoe;
public static Item itemDemonicSpade;
public static Item itemDemonicAxe;

//armor

public static int armorAngelHelmId; 
public static int armorAngelChestplateId;
public static int armorAngelLeggingsId;
public static int armorAngelBootsId;

public static int armorDemonHelmId;
public static int armorDemonChestplateId;
public static int armorDemonLeggingsId;
public static int armorDemonBootsId;

//armor (items)

public static Item armorAngelHelm;
public static Item armorAngelChestplate;
public static Item armorAngelLeggings;
public static Item armorAngelBoots;

public static Item armorDemonHelm;
public static Item armorDemonChestplate;
public static Item armorDemonLeggings;
public static Item armorDemonBoots;

//Angellic Infuser

public static Block blockAngellicInfuserIdle;
public static Block blockAngellicInfuserActive;
public static final int guiIdAngelicInfuser = 1;

//Enchantments

public static final Enchantment Absorbtion = new net.mymod.Enchantments.Absorbtion(111, 5);
public static final Enchantment Jump = new net.mymod.Enchantments.Jump(112, 5);


@EventHandler
public void PreInit(FMLPreInitializationEvent preEvent){

SatangelicaTab = new CreativeTabs("mymod") {
	@SideOnly(Side.CLIENT)
	public Item getTabIconItem() {
	return Item.getItemFromBlock(mymod.blockAltarCore);
	}
};
//blocks

blockAltarCore = new AltarCore(Material.rock).setBlockName("Altar Core");	
GameRegistry.registerBlock(blockAltarCore, "Altar Core");
blockAltarBlock = new AltarBlock(Material.iron).setBlockName("Altar Block");
GameRegistry.registerBlock(blockAltarBlock, "Altar Block");
blockInfusedLog = new AltarBlock(Material.wood).setBlockName("Infused Log");
GameRegistry.registerBlock(blockInfusedLog, "Infused Log");
blockInfusedPlanks = new AltarBlock(Material.wood).setBlockName("Infused Planks");
GameRegistry.registerBlock(blockInfusedPlanks, "Infused Planks");





//ores;

oreAngellicOre = new AngellicOre(Material.rock).setBlockName("Angellic Ore");	
GameRegistry.registerBlock(oreAngellicOre, "Angellic Ore");
oreDemonicOre = new DemonicOre(Material.rock).setBlockName("Demonic Ore");	
GameRegistry.registerBlock(oreDemonicOre, "Demonic Ore");

//items	

itemInfusedStick  = new InfusedStick().setUnlocalizedName("Infused Stick"); 
GameRegistry.registerItem(itemInfusedStick, "Infused Stick");

itemAngelicCore = new net.mymod.mod.items.AngelicCore().setUnlocalizedName("Angelic Core");
GameRegistry.registerItem(itemAngelicCore, "Angelic Core");

itemDemonicCore = new DemonicCore().setUnlocalizedName("Demonic Core");
GameRegistry.registerItem(itemDemonicCore, "Demonic Core");

//ingots
itemAngelicIngot = new AngelicIngot().setUnlocalizedName("Angelic Ingot");
GameRegistry.registerItem(itemAngelicIngot, "Angelic Ingot");
itemDemonicIngot = new DemonicIngot().setUnlocalizedName("DemonicIngot");
GameRegistry.registerItem(itemDemonicIngot, "Demonic Ingot");

//dusts
itemChaosDust = new ChaosDust().setUnlocalizedName("Chaos Dust");
GameRegistry.registerItem(itemChaosDust, "Chaos Dust");
itemPowderedOrder = new PowderedOrder().setUnlocalizedName("Powdered Order");
GameRegistry.registerItem(itemPowderedOrder, "PowderedOrder");

//tools

itemAngelBlade = new AngelBlade(AngelMaterial).setUnlocalizedName("Angel Blade");
GameRegistry.registerItem(itemAngelBlade, "Angel Blade");
itemAngellicPickaxe = new AngellicPickaxe(AngelMaterial).setUnlocalizedName("Angellic Pickaxe");
GameRegistry.registerItem(itemAngellicPickaxe, "Angellic Pickaxe");
itemAngellicAxe = new AngellicAxe(AngelMaterial).setUnlocalizedName("Angellic Axe");
GameRegistry.registerItem(itemAngellicAxe, "Angellic Axe");
itemAngellicSpade = new AngellicSpade(AngelMaterial).setUnlocalizedName("Angellic Spade");
GameRegistry.registerItem(itemAngellicSpade, "Angellic Spade");
itemAngellicHoe = new AngellicHoe(AngelMaterial).setUnlocalizedName("Angellic Hoe");
GameRegistry.registerItem(itemAngellicHoe, "Angellic Hoe ");

itemDemonicMace = new DemonicMace(DemonMaterial).setUnlocalizedName("Demonic Mace");
GameRegistry.registerItem(itemDemonicMace, "Demonic Mace");
itemDemonicHoe = new DemonicHoe(DemonMaterial).setUnlocalizedName("Demonic Hoe");
GameRegistry.registerItem(itemDemonicHoe, "Demonic Hoe");
itemDemonicAxe = new DemonicAxe(DemonMaterial).setUnlocalizedName("Demonic Axe");
GameRegistry.registerItem(itemDemonicAxe, "Demonic Axe");
itemDemonicSpade = new DemonicSpade(DemonMaterial).setUnlocalizedName("Demonic Spade");
GameRegistry.registerItem(itemDemonicSpade, "Demonic Spade");
itemDemonicPickaxe = new DemonicPickaxe(DemonMaterial).setUnlocalizedName("Demonic Pickaxe");
GameRegistry.registerItem(itemDemonicPickaxe, "Demonic Pickaxe");

//armor

armorAngelHelm = new AngelArmor(AngelArmor, armorAngelHelmId, 0).setUnlocalizedName("Angel Helm"); 
GameRegistry.registerItem(armorAngelHelm, "Angel Helm");
armorAngelChestplate = new AngelArmor(AngelArmor, armorAngelChestplateId, 1).setUnlocalizedName("Angel Chestplate");
GameRegistry.registerItem(armorAngelChestplate, "Angel Chestplate");
armorAngelLeggings = new AngelArmor(AngelArmor, armorAngelLeggingsId, 2).setUnlocalizedName("Angel Leggings");
GameRegistry.registerItem(armorAngelLeggings, "Angel Leggings");
armorAngelBoots = new AngelArmor(AngelArmor, armorAngelBootsId, 3).setUnlocalizedName("Angel Boots"); 
GameRegistry.registerItem(armorAngelBoots, "Angel Boots");

armorDemonHelm = new DemonArmor(DemonArmor, armorDemonHelmId, 0).setUnlocalizedName("Demon Helm");
GameRegistry.registerItem(armorDemonHelm, "Demon Helm");
armorDemonChestplate = new DemonArmor(DemonArmor, armorDemonChestplateId, 1).setUnlocalizedName("Demon Chestplate");
GameRegistry.registerItem(armorDemonChestplate, "Demon Chestplate");
armorDemonLeggings = new DemonArmor(DemonArmor, armorDemonLeggingsId, 2).setUnlocalizedName("DemonLeggings");
GameRegistry.registerItem(armorDemonLeggings, "Demon Leggings");
armorDemonBoots = new DemonArmor(DemonArmor, armorDemonBootsId, 3).setUnlocalizedName("Demon Boots");
GameRegistry.registerItem(armorDemonBoots, "Demon Boots");

//Angelic Infuser

blockAngellicInfuserIdle = new AngellicInfuser(false).setBlockName("Angellic Infuser Idle").setCreativeTab(mymod.SatangelicaTab).setHardness(3.5F);
GameRegistry.registerBlock(blockAngellicInfuserIdle, "Angellic Infuser Idle");

blockAngellicInfuserActive = new AngellicInfuser(true).setBlockName("Angellic Infuser Active").setHardness(3.5F);
GameRegistry.registerBlock(blockAngellicInfuserActive, "Angellic Infuser Active");

//world gen
GameRegistry.registerWorldGenerator(eventWorldGen, 0); 
GameRegistry.registerWorldGenerator(eventWorldGen, 1);


};

@EventHandler
public void Init(FMLInitializationEvent event){

//Gui Handler

FMLCommonHandler.instance().bus().register(new CraftingHandler());
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GUIHandler());

GameRegistry.registerTileEntity(TileEntityAngellicInfuser.class, "AngellicInfuser");


//Recipes
GameRegistry.addRecipe(new ItemStack(blockAltarCore), new Object[]{"SIS", "SIS", "SIS", 'S', Blocks.stone, 'I', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(blockAltarBlock), new Object[]{"SPS", "CSC", "SPS", 'S', Blocks.stone, 'P', mymod.itemPowderedOrder, 'C', mymod.itemChaosDust});
GameRegistry.addRecipe(new ItemStack(blockAltarBlock), new Object[]{"SCS", "PSP", "SCS", 'S', Blocks.stone, 'P', mymod.itemPowderedOrder, 'C', mymod.itemChaosDust});

GameRegistry.addRecipe(new ItemStack(armorAngelHelm), new Object[]{"aaa", "a a", "   ", 'a', mymod.itemAngelicIngot});
GameRegistry.addRecipe(new ItemStack(armorAngelHelm), new Object[]{"   ", "aaa", "a a", 'a', mymod.itemAngelicIngot});
GameRegistry.addRecipe(new ItemStack(armorAngelChestplate), new Object[]{"a a", "aaa", "aaa", 'a', mymod.itemAngelicIngot});
GameRegistry.addRecipe(new ItemStack(armorAngelLeggings), new Object[]{"aaa", "a a", "a a", 'a', mymod.itemAngelicIngot});
GameRegistry.addRecipe(new ItemStack(armorAngelBoots), new Object[]{"   ", "a a", "a a", 'a', mymod.itemAngelicIngot});
GameRegistry.addRecipe(new ItemStack(armorAngelBoots), new Object[]{"a a", "a a", "   ", 'a', mymod.itemAngelicIngot});

GameRegistry.addRecipe(new ItemStack(armorDemonHelm), new Object[]{"ddd", "d d", "   ", 'd', mymod.itemDemonicIngot});
GameRegistry.addRecipe(new ItemStack(armorDemonHelm), new Object[]{"   ", "ddd", "d d", 'd', mymod.itemDemonicIngot});
GameRegistry.addRecipe(new ItemStack(armorDemonChestplate), new Object[]{"d  d", "ddd", "ddd", 'd', mymod.itemDemonicIngot});
GameRegistry.addRecipe(new ItemStack(armorDemonLeggings), new Object[]{"ddd", "d d", "d d", 'd', mymod.itemDemonicIngot});
GameRegistry.addRecipe(new ItemStack(armorDemonBoots), new Object[]{"   ", "d d", "d d", 'd', mymod.itemDemonicIngot});
GameRegistry.addRecipe(new ItemStack(armorDemonBoots), new Object[]{"d d", "d d", "   ", 'd', mymod.itemDemonicIngot});

GameRegistry.addRecipe(new ItemStack(itemAngellicAxe), new Object[]{" aa", " sa", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngellicAxe), new Object[]{"aa ", "as ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngellicHoe), new Object[]{" aa", " s ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngellicHoe), new Object[]{"aa ", " s ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngellicSpade), new Object[]{" a ", " s ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngellicPickaxe), new Object[]{"aaa", " s ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngelBlade), new Object[]{" a ", " a ", " s ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngelBlade), new Object[]{"a  ", "a  ", "s  ", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemAngelBlade), new Object[]{"  a", "  a", "  s", 'a', mymod.itemAngelicIngot, 's', mymod.itemInfusedStick});


GameRegistry.addRecipe(new ItemStack(itemDemonicAxe), new Object[]{" aa", " sa", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicAxe), new Object[]{"aa ", "as ", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicHoe), new Object[]{" aa", " s ", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicHoe), new Object[]{"aa ", " s ", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicSpade), new Object[]{" a ", " s ", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicPickaxe), new Object[]{"aaa", " s ", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});
GameRegistry.addRecipe(new ItemStack(itemDemonicMace), new Object[]{"aaa", "asa", " s ", 'a', mymod.itemDemonicIngot, 's', mymod.itemInfusedStick});

    GameRegistry.addRecipe(new ItemStack(blockAngellicInfuserIdle), new Object []{ "BDB", "DCD", "BDB", 'B', mymod.blockAltarBlock, 'D', mymod.itemPowderedOrder, 'C', mymod.itemAngelicCore});
    
    GameRegistry.addShapelessRecipe(new ItemStack(blockInfusedLog), new Object []{ itemChaosDust, itemPowderedOrder, Blocks.log});
    GameRegistry.addShapelessRecipe(new ItemStack(blockInfusedPlanks, 4), new Object []{ blockInfusedLog});
    GameRegistry.addShapelessRecipe(new ItemStack(itemInfusedStick, 2), new Object []{blockInfusedPlanks});

GameRegistry.addSmelting(oreAngellicOre, new ItemStack(itemPowderedOrder, 3), 5);
GameRegistry.addSmelting(oreDemonicOre, new ItemStack(itemChaosDust, 3), 5);

GameRegistry.registerTileEntity(TileEntityAngellicInfuser.class, "TEAngellicInfuser");

//mobs
EntityHandler.registerMonsters(EntityVampire.class, "Vampire");

}


@EventHandler
public void PostInit(FMLPostInitializationEvent postEvent){

}
}

Link to comment
Share on other sites

You neither have an instance of the proxy nor call the RegisterRenderThings method. Try putting this after you register your entity:

if(FMLCommonHandler.instance().getSide().isClient()) ClientProxy.registerRenderThings();
[code]
Also, make the method static.

Check out my mod, Realms of Chaos, here.

 

If I helped you, be sure to press the "Thank You" button!

Link to comment
Share on other sites

Side checking is unnecessay if the proxy is implemented properly, and the proxy handle is annotated.

class CommonProxy {
   public void registerRenderStuff() {};
}
class ClientProxy extends CommonProxy {
  @Override
  public void registerRenderStuff() {
    // render your stuff in this method body
  };

// in main class:
  proxy.registerRenderStuff();

 

 

Link to comment
Share on other sites

Maybe the texture itself is bad. Check Techne and you file to make sure that you've textured your mob properly (in the texture, and even in Techne). Other than that, perhaps the file is corrupt. Can you open it? Try opening in GIMP, Photoshop, etc.

Developer of small, unreleased, basic, and incomplete mods since 2014!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.