Everything posted by Fruitsalid
-
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.
-
[1.6.2] Having issues to get custom textures loades on new blocks
Follow what the error is saying. Minecraft is trying to find an image called (ex. from errors you put up) TutorialBlock0.png in the folder assets/alpharo_tutorial test/textures/blocks/ Make sure it is exactly like that because one missed letter or capitalization could be the issue.
-
Custom Slabs 1.6.2
I'm playing around and trying to make half slabs and stairs to go with my planks. I made the stairs without any problem but the slabs are more complex. I've made the slabs placeable because for 20 minutes that wasn't possible, but I can't them on top of each other. Here's what I have so far. public static BlockHalfSlab darkwoodslab1; public static BlockHalfSlab darkwoodslab2; darkwoodslab1 = (BlockHalfSlab) new BlockMagicSlab(725, false).setUnlocalizedName("darkwoodslab1").setHardness(3.0F).setResistance(2.0F).setStepSound(Block.soundWoodFootstep); LanguageRegistry.addName(darkwoodslab1, "Dark Wood Slab"); GameRegistry.registerBlock(darkwoodslab1, "darkwoodslab1"); MinecraftForge.setBlockHarvestLevel(darkwoodslab1, "axe", 1); darkwoodslab2 = (BlockHalfSlab) new BlockMagicSlab(726, true).setUnlocalizedName("darkwoodslab2").setHardness(3.0F).setResistance(2.0F).setStepSound(Block.soundWoodFootstep); LanguageRegistry.addName(darkwoodslab2, "Dark Wood Double Slab"); GameRegistry.registerBlock(darkwoodslab2, "darkwoodslab2"); MinecraftForge.setBlockHarvestLevel(darkwoodslab2, "axe", 1); darkwoodslab2 is the double slab. Slab Class public class BlockMagicSlab extends BlockHalfSlab { @SideOnly(Side.CLIENT) private Icon theIcon; public BlockCustomSlab(int par1, boolean par2) { super(par1, par2); this.setCreativeTab(CreativeTabs.tabBlock); } @Override public Icon getIcon(int par1, int par2) { int k = par2 & 7; if (this.isDoubleSlab && (par2 & != 0) { par1 = 1; } return k == 0 ? (par1 != 1 && par1 != 0 ? this.theIcon : this.blockIcon) : (k == 1 ? MagicElementsMod.darkwoodplanks.getBlockTextureFromSide(par1) : this.blockIcon); } @Override public void registerIcons(IconRegister par1IconRegister) { this.blockIcon = par1IconRegister.registerIcon("ModClass.modid:darkwoodslabtop"); this.theIcon = par1IconRegister.registerIcon("ModClass.modid:darkwoodslabside"); } @Override protected ItemStack createStackedBlock(int par1) { return new ItemStack(MagicElementsMod.darkwoodslab1.blockID, 2, par1 & 7); } @Override public int idDropped(int par1, Random par2Random, int par3) { return MagicElementsMod.darkwoodslab1.blockID; } @Override public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) { if (par1 != MagicElementsMod.darkwoodslab2.blockID) { for (int j = 0; j <= 1; ++j) { if (j != 1) { par3List.add(new ItemStack(par1, 1, j)); } } } } } In the getSubBlocks Method I had to change j <= 7; because seven of the same slabs were showing up in the creative tab.
-
Furnace 1.6.2
Thanks Ill start reading
-
Furnace 1.6.2
I tried making a furnace in 1.6.2 and in the Block class for the furnace I get an error on the .displayGUIFurnace because there is no method like that for my furnace in the entityplayer class. public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) { if (par1World.isRemote) { return true; } else { TileEntityVoidFurnace tileEntityVoidFurnace = (TileEntityVoidFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (tileEntityVoidFurnace != null) { par5EntityPlayer.displayGUIFurnace(tileEntityVoidFurnace); } return true; } } If I change it to TileEntityFurnace and I right click on my furnace in game, the game crashes. The error is in the block furnace exactly on that GUIfurnace line. i can't figure out how to fix that GUI thing.
-
Bow Drawback Speed?
You can all this from the ItemBow class. public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"}; @SideOnly(Side.CLIENT) private Icon[] iconArray; and this @SideOnly(Side.CLIENT) public void registerIcons(IconRegister par1IconRegister) { this.itemIcon = par1IconRegister.registerIcon("YourMainClass.modid" + ":" + getUnlocalizedName().substring(5)); this.iconArray = new Icon[bowPullIconNameArray.length]; for (int i = 0; i < this.iconArray.length; ++i) { this.iconArray[i] = par1IconRegister.registerIcon(YourMainClass.modid + ":" + bowPullIconNameArray[i]); } } Change the YourMainClass to what ever yours is. Also the pulling_0 etc. to whatever your images are called are.
-
Item that uses durability of another item 1.6.2
Alright I'll try it thanks.
-
Item that uses durability of another item 1.6.2
Well I'm using a method from the bow class for the charging effect and all that but I cut a few things out. I just can't figure out what to put in that else statment. I'm probably have a lot of other stuff thats also wrong in that but I guess you'll figure it out: public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4) { int j = this.getMaxItemUseDuration(par1ItemStack) - par4; ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return; } j = event.charge; boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0; if (flag || par3EntityPlayer.inventory.hasItem(ModClass.ammo.itemID)) { float f = (float)j / 10.0F; f = (f * f + f * 2.0F) / 3.0F; if ((double)f < 0.1D) { return; } if (f > 1.0F) { f = 1.0F; } EntityMagicBall entitymagicball = new EntityMagicBall(par2World, par3EntityPlayer, f * 2.0F); if (f == 1.0F) { entitymagicball .setIsCritical(true); } par1ItemStack.damageItem(1, par3EntityPlayer); if (flag) { entitymagicball.canBePickedUp = 2; } else { } if (!par2World.isRemote) { par2World.spawnEntityInWorld(entitymagicball); } } }
-
Bow Drawback Speed?
This is like the first problem I've ever figured out by myself, lol.
-
Bow Drawback Speed?
To change the speed at which the arrow will charge you have to change the 20.0f: public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4) { int j = this.getMaxItemUseDuration(par1ItemStack) - par4; ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return; } j = event.charge; boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0; if (flag || par3EntityPlayer.inventory.hasItem(Item.arrow.itemID)) { float f = (float)j / 20; f = (f * f + f * 2.0F) / 3.0F; if ((double)f < 0.1D) { return; } if (f > 1.0F) { f = 1.0F; } EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 2.0F); if (f == 1.0F) { entityarrow.setIsCritical(true); } int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack); if (k > 0) { entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D); } int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack); if (l > 0) { entityarrow.setKnockbackStrength(l); } if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0) { entityarrow.setFire(100); } par1ItemStack.damageItem(1, par3EntityPlayer); par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); if (flag) { entityarrow.canBePickedUp = 2; } else { par3EntityPlayer.inventory.consumeInventoryItem(Item.arrow.itemID); } if (!par2World.isRemote) { par2World.spawnEntityInWorld(entityarrow); } } } To make the animation match up with the speed of the charging arrow you have to change the 16, 8, and 0. The animation cycle timing goes from the bottom number to the top one. If you don't have this method replace it with public Icon getItemIconForUseDuration(int par1) method. public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { if(player.getItemInUse() == null) return this.itemIcon; int Pulling = stack.getMaxItemUseDuration() - useRemaining; if (Pulling >= 16) { return iconArray[2]; } else if (Pulling > { return iconArray[1]; } else if (Pulling > 0) { return iconArray[0]; } return itemIcon; }
-
Item that uses durability of another item 1.6.2
I'm still not sure how I'd make it damage the ammo and not the wand itself. Sorry if I'm being a bit oblivious and the answer is obvious
IPS spam blocked by CleanTalk.