Jump to content

Recommended Posts

Posted

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

Posted
  On 9/4/2014 at 6:58 PM, edymondo said:

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/

Posted

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.)

Posted

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){

}
}

Posted

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!

Posted

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();

 

 

Posted

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!

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello all. I'm currently grappling with the updateShape method in a custom class extending Block.  My code currently looks like this: The conditionals in CheckState are there to switch blockstate properties, which is working fine, as it functions correctly every time in getStateForPlacement.  The problem I'm running into is that when I update a state, the blocks seem to call CheckState with the position of the block which was changed updated last.  If I build a wall I can see the same change propagate across. My question thus is this: is updateShape sending its return to the neighbouring block?  Is each block not independently executing the updateShape method, thus inserting its own current position?  The first statement appears to be true, and the second false (each block is not independently executing the method). I have tried to fix this by saving the block's own position to a variable myPos at inception, and then feeding this in as CheckState(myPos) but this causes a worse outcome, where all blocks take the update of the first modified block, rather than just their neighbour.  This raises more questions than it answers, obviously: how is a different instance's variable propagating here?  I also tried changing it so that CheckState did not take a BlockPos, but had myPos built into the body - same problem. I have previously looked at neighbourUpdate and onNeighbourUpdate, but could not find a way to get this to work at all.  One post on here about updatePostPlacement and other methods has proven itself long superceded.  All other sources on the net seem to be out of date. Many thanks in advance for any help you might offer me, it's been several days now of trying to get this work and several weeks of generally trying to get round this roadblock.  - Sandermall
    • sorry, I might be stupid, but how do I open it? because the only options I have are too X out, copy it, which doesn't work and send crash report, which doesn't show it to me, also, sorry for taking so long.
    • Can you reproduce this with version 55.0.21? A whole lot of plant placement issues were just fixed in this PR.
    • Necro'ing that thread to ask if you found a solution ? I'm encountering the same crash on loading the world. I created the world in Creative to test my MP, went into survival to test combat, died, crashed on respawn and since then crash on loading the world. Deactivating Oculus isn't fixing it either, and I don't have Optifine (Twilight forest is incompatible)
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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