Jump to content

Waterdude

Members
  • Posts

    2
  • Joined

  • Last visited

Converted

  • Gender
    Undisclosed
  • Personal Text
    I am new!

Waterdude's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. UPDATE: Got the model to render in the world, but now I need to know how to render it in the player's hand.
  2. Hi there, I am trying to make a block with a custom model using the latest recommended build of Forge. For some reason, the block in the player's hand is a grey grass-top texture, and when the block is placed, it is a bounding box with nothing inside it. Any help would be appreciated. BaseWaterdude.java package com.waterdude.mod; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.src.ModLoader; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler; import cpw.mods.fml.common.SidedProxy; import com.waterdude.mod.blocks.BlockArcaneFurnace; import com.waterdude.mod.blocks.BlockMVBattery; import com.waterdude.mod.blocks.BlockOre1; import com.waterdude.mod.core.handlers.ClientPacketHandler; import com.waterdude.mod.core.handlers.GuiHandler; import com.waterdude.mod.core.handlers.ServerPacketHandler; import com.waterdude.mod.core.CommonProxy; import com.waterdude.mod.core.TileEntityArcaneFurnace; import com.waterdude.mod.core.TileEntityMVBattery; import com.waterdude.mod.core.IBlockRenderer; import com.waterdude.mod.core.WorldGenMinableW; import com.waterdude.mod.items.ItemEnergyDust; import com.waterdude.mod.items.ItemFusedDust; import com.waterdude.mod.items.ItemMVBattery; @NetworkMod(clientSideRequired=true,serverSideRequired=false, clientPacketHandlerSpec = @SidedPacketHandler(channels = {"TutorialGeneral" }, packetHandler = ClientPacketHandler.class), serverPacketHandlerSpec = @SidedPacketHandler(channels = {}, packetHandler = ServerPacketHandler.class)) @Mod(modid="ManaAndMagic",name="Mana and Magic",version="1.0.0") public class BaseWaterdude { @Instance("ManaAndMagic") public static BaseWaterdude instance = new BaseWaterdude(); @SidedProxy(clientSide = "com.waterdude.mod.core.ClientProxy", serverSide = "com.waterdude.mod.core.CommonProxy") public static CommonProxy proxy; public static Item itemFusedDust = new ItemFusedDust(17050).setIconIndex(0).setTextureFile("/ManaAndMagic/WaterdudeItems.png"); public static Item itemEnergyDust = new ItemEnergyDust(17051).setIconIndex(1).setTextureFile("/ManaAndMagic/WaterdudeItems.png"); //public static Item mvbItem = new ItemMVBattery(17052).setIconIndex(2).setTextureFile("/ManaAndMagic/WaterdudeItems.png"); public static Block blockOre1 = new BlockOre1(180); public static Block afActive = new BlockArcaneFurnace(182, true).setHardness(3.5F).setStepSound(Block.soundStoneFootstep).setBlockName("afActive").setRequiresSelfNotify().setLightValue(0.875F); public static Block afIdle = new BlockArcaneFurnace(181, false).setHardness(3.5F).setStepSound(Block.soundStoneFootstep).setBlockName("afIdle").setRequiresSelfNotify().setCreativeTab(CreativeTabs.tabMisc); private GuiHandler guiHandler = new GuiHandler(); public static int mvbRenderID; public static int mvbTexture; public void renderInvBlock(RenderBlocks var1, Block var2, int var3, int var4) { renderInvBlock(var1, var2, var3, var4); if (var2 == mvb) { TileEntityRenderer.instance.renderTileEntityAt(new TileEntityMVBattery(), 0.0D, 0.0D, 0.0D, 0.0F); } } @Init public void Init(FMLInitializationEvent event) { RenderingRegistry.registerBlockHandler(new IBlockRenderer()); mvbRenderID = RenderingRegistry.getNextAvailableRenderId(); NetworkRegistry.instance().registerGuiHandler(this, proxy); GameRegistry.registerWorldGenerator(new WorldGenMinableW()); NetworkRegistry.instance().registerGuiHandler(this, guiHandler); GameRegistry.registerTileEntity(TileEntityArcaneFurnace.class,"tileEntityArcaneFurnace"); proxy.registerBlocks(); proxy.addNames(); proxy.addRecipes(); proxy.registerRenderInformation(); } public static Block mvb = new BlockMVBattery(183, mvbRenderID, TileEntityMVBattery.class).setHardness(4.5F).setStepSound(Block.soundMetalFootstep).setBlockName("mvb").setRequiresSelfNotify().setCreativeTab(CreativeTabs.tabMisc); } ModelMVBattery.java package com.waterdude.mod.core; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModelMVBattery extends ModelBase { //fields ModelRenderer Shape1; ModelRenderer Shape2; ModelRenderer Shape3; ModelRenderer Shape4; ModelRenderer Shape5; public ModelMVBattery() { textureWidth = 64; textureHeight = 32; Shape1 = new ModelRenderer(this, 19, 0); Shape1.addBox(0F, 0F, 0F, 6, 1, 6); Shape1.setRotationPoint(-3F, 23F, -3F); Shape1.setTextureSize(64, 32); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); Shape2 = new ModelRenderer(this, 0, 5); Shape2.addBox(0F, 0F, 0F, 4, 3, 4); Shape2.setRotationPoint(-2F, 20F, -2F); Shape2.setTextureSize(64, 32); Shape2.mirror = true; setRotation(Shape2, 0F, 0F, 0F); Shape3 = new ModelRenderer(this, 19, ; Shape3.addBox(0F, 0F, 0F, 6, 1, 6); Shape3.setRotationPoint(-3F, 19F, -3F); Shape3.setTextureSize(64, 32); Shape3.mirror = true; setRotation(Shape3, 0F, 0F, 0F); Shape4 = new ModelRenderer(this, 0, 13); Shape4.addBox(0F, 0F, 0F, 4, 3, 4); Shape4.setRotationPoint(-2F, 16F, -2F); Shape4.setTextureSize(64, 32); Shape4.mirror = true; setRotation(Shape4, 0F, 0F, 0F); Shape5 = new ModelRenderer(this, 19, 16); Shape5.addBox(0F, 0F, 0F, 6, 1, 6); Shape5.setRotationPoint(-3F, 15F, -3F); Shape5.setTextureSize(64, 32); Shape5.mirror = true; setRotation(Shape5, 0F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); Shape1.render(f5); Shape2.render(f5); Shape3.render(f5); Shape4.render(f5); Shape5.render(f5); } public void renderModel(float f5) { Shape1.render(f5); Shape2.render(f5); Shape3.render(f5); Shape4.render(f5); Shape5.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } } BlockMVBattery.java package com.waterdude.mod.blocks; import java.util.List; import java.util.Random; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import com.waterdude.mod.BaseWaterdude; import com.waterdude.mod.core.TileEntityMVBattery; public class BlockMVBattery extends BlockContainer { public BlockMVBattery(int par1, int par2, Class class1) { super(par1, par2, Material.rock); this.setCreativeTab(CreativeTabs.tabMisc); this.setRequiresSelfNotify(); } /*public int idDropped() { return BaseWaterdude.mvbItem.itemID; }*/ public int quantityDropped(Random par1Random) { return 1; } @Override public int getRenderType() { return BaseWaterdude.mvbRenderID; } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public TileEntity getBlockEntity() { return new TileEntityMVBattery(); } public TileEntity createNewTileEntity(World var1) { return new TileEntityMVBattery(); } } IBlockRenderer (got this from the wiki, not too sure on it) package com.waterdude.mod.core; import com.waterdude.mod.BaseWaterdude; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.world.IBlockAccess; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class IBlockRenderer implements ISimpleBlockRenderingHandler { public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { renderInventoryBlock(block, metadata, modelID, renderer); if (block == BaseWaterdude.mvb) { TileEntityRenderer.instance.renderTileEntityAt(new TileEntityMVBattery(), 0.0D, 0.0D, 0.0D, 0.0F); } } public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { // Your renderring code return false; } public boolean shouldRender3DInInventory() { // This is where it asks if you want the renderInventory part called or not. return true; // Change to 'true' if you want the Inventory render to be called. } public int getRenderId() { // This is one place we need that renderId from earlier. return BaseWaterdude.mvbRenderID; } } TileEntityMVBattery.java package com.waterdude.mod.core; import net.minecraft.tileentity.TileEntity; public class TileEntityMVBattery extends TileEntity { public TileEntityMVBattery() { } } TileEntityMVBatteryRenderer.java package com.waterdude.mod.core; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import java.util.Random; import org.lwjgl.opengl.GL11; public class TileEntityMVBatteryRenderer extends TileEntitySpecialRenderer { private ModelMVBattery model; public TileEntityMVBatteryRenderer() { model = new ModelMVBattery(); } public void renderAModelAt(TileEntityMVBattery tile, double d, double d1, double d2, float f) { int i =0; if(tile.worldObj != null) { i =(tile.worldObj.getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord)); } bindTextureByName("/ManaAndMagic/mvb.png"); GL11.glPushMatrix(); GL11.glTranslatef((float)d + 0.5F, (float)d1 + 1.5F, (float)d2 + 0.5F); GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); GL11.glScalef(1.0F, -1F, -1F); model.renderModel(0.0625F); GL11.glPopMatrix(); } public void renderTileEntityAt(TileEntity tileentity, double d, double d1, double d2, float f) { renderAModelAt((TileEntityMVBattery) tileentity, d, d1, d2, f); } } If you need to see any other classes, just ask.
×
×
  • Create New...

Important Information

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