Posted August 3, 201312 yr I've got my Wood Log all correct, extending BlockLog, but I've got a slight problem... That, and there's four of the said log in the Creative Inventory. My Log class if needed: package assets.motools.common.blocks.hornblende; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import assets.motools.common.MoTools; import assets.motools.common.MTMain.MTRef; import net.minecraft.block.BlockLog; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; public class LogHornblende extends BlockLog { public static String textureName; @SideOnly(Side.CLIENT) private Icon topTexture; public LogHornblende(int par1, String textureName) { super(par1); setCreativeTab(MoTools.tabMTBlock); this.textureName = textureName; } public int idDropped(int par1, Random rand, int par2){ return this.blockID; } public int quantityDropped(Random rand) { return 1; } @Override public void registerIcons(IconRegister reg) { this.blockIcon = reg.registerIcon(MTRef.ModID + ":" + textureName + "_side"); this.topTexture = reg.registerIcon(MTRef.ModID + ":" + textureName + "_bottom"); } @SideOnly(Side.CLIENT) public Icon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topTexture; } return this.blockIcon; } } Thanks Hydro
August 3, 201312 yr Look at your parent class, the BlockLog class: you can see there are four types of log: {"oak", "spruce", "birch", "jungle"} Thus, they are all registered in creative inventory with getSubBlocks(args) method. You may want to change it. BlockLog is also a child class of BlockRotatedPillar, which has onBlockPlaced(args) method. This is where rotation occurs. Read it to understand and check if changes are needed. Actually, you may want to extend BlockRotatedPillar instead of BlockLog.
August 3, 201312 yr Author Okay done, but I'm unsure of what to do with the method: @Override @SideOnly(Side.CLIENT) protected Icon func_111048_c(int i) { // TODO Auto-generated method stub return null; } It's not exactly descriptive.
August 4, 201312 yr This is called from the parent class in public Icon getIcon(int par1, int par2) { int k = par2 & 12; int l = par2 & 3; return k == 0 && (par1 == 1 || par1 == 0) ? this.func_111049_d(l) : (k == 4 && (par1 == 5 || par1 == 4) ? this.func_111049_d(l) : (k == 8 && (par1 == 2 || par1 == 3) ? this.func_111049_d(l) : this.func_111048_c(l))); } We have some bit to bit calculation here... all in all, it comes down to getting a texture depending on side(par1) and metadata (par2). Consider returning a default icon depending on metadata, if needed.
August 4, 201312 yr Author Yeah, I've got my getIcon method, which does indeed return a default texture (my side texture). I'm still, after extending BlockRotatedPillar, having the same rotation problem though. Unless I need to copy the onBlockPlaced method into my class and I'm just being plain stupid, I'm stumped (excuse the tree pun). Texture methods; if you need them again. @Override public void registerIcons(IconRegister reg) { this.blockIcon = reg.registerIcon(MTRef.ModID + ":" + textureName + "_side"); this.topTexture = reg.registerIcon(MTRef.ModID + ":" + textureName + "_bottom"); } @SideOnly(Side.CLIENT) public Icon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topTexture; } return this.blockIcon; }
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.