-
Bug with my Block
That's a good point I didn't even think about. You'd probably be better off making a new class just like MineMaarten said.
-
[1.6.2] [Unsolved] Custom Boat Entity don't load the texture
I don't think you need entity/in resource location of your render class. so it should just be "betterwood:SpruceBoat.png". Just a guess.
-
Bug with my Block
You can make it be new BlockGlass instead of new Block.
-
Custom Slabs 1.6.2
Well I'm still confused on how to solve the double slab problem if anyone could help me out a bit more.
-
Planting Trees
Okay well this solved half of the problem but now I can't plant them on my custom dirt.
-
Planting Trees
Well I've figured out that I must use this method but I'm not sure how to make it so only saplings are allowed to be planted. public boolean canSustainPlant(World world, int x, int y, int z, ForgeDirection direction, IPlantable plant) { }
-
Planting Trees
I made my own grass and dirt for a custom biome and was playing around to see if they function normally. But I noticed I couldn't plant any type of sapling on either my grass or dirt. So I went looking to see which method allowed this to happen, but I could not find anything in the BlockGrass or BlockDirt classes. Does anyone know the solution to this. Here is all the code pertaining to the two. public static Block customgrass; public static Block customdirt; customgrass= new BlockCustomGrass(237).setHardness(0.6F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("customgrass"); LanguageRegistry.addName(customgrass, "Magic Grass"); GameRegistry.registerBlock(customgrass, "customgrass"); MinecraftForge.setBlockHarvestLevel(customgrass, "shovel", 1); customdirt= new BlockCustomDirt(238, Material.ground).setHardness(0.5F).setResistance(0.5F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("customdirt"); LanguageRegistry.addName(customdirt, "Magic Dirt"); GameRegistry.registerBlock(customdirt, "customdirt"); MinecraftForge.setBlockHarvestLevel(customdirt, "shovel", 1); public class BlockCustomGrass extends Block { @SideOnly(Side.CLIENT) private Icon iconGrassTop; @SideOnly(Side.CLIENT) private Icon iconGrassSide; private Icon iconSnowSide; public BlockCustomGrass(int par1) { super(par1, Material.grass); this.setTickRandomly(true); this.setCreativeTab(MagicElementsMod.Misc); } @SideOnly(Side.CLIENT) public Icon getIcon(int par1, int par2) { return par1 == 1 ? this.iconGrassTop : (par1 == 0 ? MagicElementsMod.customgrass.getBlockTextureFromSide(par1) : this.blockIcon); } public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (!par1World.isRemote) { if (par1World.getBlockLightValue(par2, par3 + 1, par4) < 4 && par1World.getBlockLightOpacity(par2, par3 + 1, par4) > 2) { par1World.setBlock(par2, par3, par4, MagicElementsMod.customdirt.blockID); } else if (par1World.getBlockLightValue(par2, par3 + 1, par4) >= 9) { for (int l = 0; l < 4; ++l) { int i1 = par2 + par5Random.nextInt(3) - 1; int j1 = par3 + par5Random.nextInt(5) - 3; int k1 = par4 + par5Random.nextInt(3) - 1; int l1 = par1World.getBlockId(i1, j1 + 1, k1); if (par1World.getBlockId(i1, j1, k1) == MagicElementsMod.customdirt.blockID && par1World.getBlockLightValue(i1, j1 + 1, k1) >= 4 && par1World.getBlockLightOpacity(i1, j1 + 1, k1) <= 2) { par1World.setBlock(i1, j1, k1, MagicElementsMod.customgrass.blockID); } } } } } public int idDropped(int par1, Random par2Random, int par3) { return MagicElementsMod.customdirt.idDropped(0, par2Random, par3); } @Override @SideOnly(Side.CLIENT) public Icon getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par5 == 1) { return this.iconGrassTop; } else if (par5 == 0) { return MagicElementsMod.customdirt.getBlockTextureFromSide(par5); } else { Material material = par1IBlockAccess.getBlockMaterial(par2, par3 + 1, par4); return material != Material.snow && material != Material.craftedSnow ? this.blockIcon : this.iconSnowSide; } } @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister par1IconRegister) { this.blockIcon = par1IconRegister.registerIcon("magicelements:customgrass_side"); this.iconGrassTop = par1IconRegister.registerIcon("magicelements:customgrass_top"); this.iconGrassSide = par1IconRegister.registerIcon("magicelements:customgrass_side"); } } public class BlockCustomDirt extends Block { public BlockCustomDirt(int par1, Material par2Material) { super(par1, par2Material); this.setCreativeTab(MagicElementsMod.Misc); } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister ir) { this.blockIcon = ir.registerIcon("magicelements" + ":" + getUnlocalizedName().substring(5)); } }
-
Burst fire gun / creating delay between shots
Try @Override public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) { }
-
Adding a potion effect
DerpenWolf's way does work but only for one effect (From my own experience). If you want the food to give you more than one you'd have to have the onFoodEaten method and add your effects there.
-
Adding a potion effect
Do you want to give the item a potion effect or do you want to give yourself a potion effect when you eat it?
-
Custom Slabs 1.6.2
Well it's the itemID & itemDamage.
-
[1.6.2] How to make HD armor textures
It shouldn't mess up the texture. I do it for my armor and it turns out fine. Are you sure you're making it exactly double the size? I think you might be making the entire image 2x the size but leaving the colored area the same size. Just a guess.
-
Custom Slabs 1.6.2
didn't fix it sooo. I made that class according to the blockstep class which says exactly protected ItemStack createStackedBlock(int par1) { return new ItemStack(Block.stoneSingleSlab.blockID, 2, par1 & 7); }
-
Custom Slabs 1.6.2
Anyone know how to fix this?
-
[1.6.2] Having issues to get custom textures loades on new blocks
I looked in your mod and you didn't capitalize the T in tutorial for all the block textures.
IPS spam blocked by CleanTalk.