Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

CptTomm

Members
  • Joined

  • Last visited

  1. You mean doing this in ClientProxy: ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTable.class, new RendererTable()); If it helps here is my ClientProxy and main class Main.java package com.CptTomm.ms; import com.CptTomm.ms.blocks.*; import com.CptTomm.ms.proxy.CommonProxy; import cpw.mods.fml.client.registry.ClientRegistry; 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.SidedProxy; 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.registry.GameRegistry; @Mod(modid = "ms", name = "Modern Stuff", version = "0") public class Main { @Instance(value = "ms") public static Main instance; @SidedProxy(clientSide = "com.CptTomm.ms.proxy.ClientProxy", serverSide = "com.CptTomm.ms.proxy.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerBlock(new BlockTable(), "table"); GameRegistry.registerTileEntity(TileEntityTable.class, "Table"); } @EventHandler public void load(FMLInitializationEvent event) { proxy.registerRenderers(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { } } ClientProxy.java package com.CptTomm.ms.proxy; import com.CptTomm.ms.blocks.*; import cpw.mods.fml.client.registry.ClientRegistry; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; public class ClientProxy extends CommonProxy { @Override public void registerRenderers() { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTable.class, new RendererTable()); } }
  2. I'm trying to Render a table but whenever I try to place it down it just is an invisible block, like a barrier. I am new to Modding so help wold be greatly appreciated. BlockTable.java: package com.CptTomm.ms.blocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class BlockTable extends Block{ public BlockTable() { super(Material.wood); this.setBlockName("table"); this.setCreativeTab(CreativeTabs.tabDecorations); } public TileEntity createNewTileEntity(World w) { return new TileEntityTable(); } public int getRenderType() { return -1; } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } @SideOnly(Side.CLIENT) public void regiaterIcons(IIconRegister icon) { this.blockIcon = icon.registerIcon("ms:table"); } } TileEntityTable.java: package com.CptTomm.ms.blocks; import net.minecraft.tileentity.TileEntity; public class TileEntityTable extends TileEntity { } ModelTable.java: package com.CptTomm.ms.blocks; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModelTable extends ModelBase { //fields ModelRenderer leg1; ModelRenderer leg2; ModelRenderer leg3; ModelRenderer leg4; ModelRenderer Shape1; public ModelTable() { textureWidth = 64; textureHeight = 32; leg1 = new ModelRenderer(this, 0, 0); leg1.addBox(0F, 0F, 0F, 2, 13, 2); leg1.setRotationPoint(4F, 11F, 4F); leg1.setTextureSize(64, 32); leg1.mirror = true; setRotation(leg1, 0F, 0F, 0F); leg2 = new ModelRenderer(this, 0, 0); leg2.addBox(0F, 0F, -2F, 2, 13, 2); leg2.setRotationPoint(4F, 11F, -4F); leg2.setTextureSize(64, 32); leg2.mirror = true; setRotation(leg2, 0F, 0F, 0F); leg3 = new ModelRenderer(this, 0, 0); leg3.addBox(-2F, 0F, -2F, 2, 13, 2); leg3.setRotationPoint(-4F, 11F, -4F); leg3.setTextureSize(64, 32); leg3.mirror = true; setRotation(leg3, 0F, 0F, 0F); leg4 = new ModelRenderer(this, 0, 0); leg4.addBox(-2F, 0F, 0F, 2, 13, 2); leg4.setRotationPoint(-4F, 11F, 4F); leg4.setTextureSize(64, 32); leg4.mirror = true; setRotation(leg4, 0F, 0F, 0F); Shape1 = new ModelRenderer(this, 5, 16); Shape1.addBox(-7F, 0F, -7F, 14, 2, 14); Shape1.setRotationPoint(0F, 9F, 0F); Shape1.setTextureSize(64, 32); Shape1.mirror = true; setRotation(Shape1, 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); setRotationAngles(f, f1, f2, f3, f4, f5, entity); leg1.render(f5); leg2.render(f5); leg3.render(f5); leg4.render(f5); Shape1.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } } RendererTable.java: package com.CptTomm.ms.blocks; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import org.lwjgl.opengl.GL11; public class RendererTable extends TileEntitySpecialRenderer { //The model of your block private final ModelTable model; public RendererTable() { this.model = new ModelTable(); } private void adjustRotatePivotViaMeta(World world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); GL11.glPushMatrix(); GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F); GL11.glPopMatrix(); } @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) { //The PushMatrix tells the renderer to "start" doing something. GL11.glPushMatrix(); //This is setting the initial location. GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); //This is the texture of your block. It's pathed to be the same place as your other blocks here. //Outdated bindTextureByName("/mods/roads/textures/blocks/TrafficLightPoleRed.png"); //Use in 1.6.2 this ResourceLocation textures = (new ResourceLocation("ms:textures/models/table.png")); //the ':' is very important //binding the textures Minecraft.getMinecraft().renderEngine.bindTexture(textures); //This rotation part is very important! Without it, your model will render upside-down! And for some reason you DO need PushMatrix again! GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); //A reference to your Model file. Again, very important. this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); //Tell it to stop rendering for both the PushMatrix's GL11.glPopMatrix(); GL11.glPopMatrix(); } //Set the lighting stuff, so it changes it's brightness properly. private void adjustLightFixture(World world, int i, int j, int k, Block block) { Tessellator tess = Tessellator.instance; //float brightness = block.getBlockBrightness(world, i, j, k); //As of MC 1.7+ block.getBlockBrightness() has become block.getLightValue(): float brightness = block.getLightValue(world, i, j, k); int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0); int modulousModifier = skyLight % 65536; int divModifier = skyLight / 65536; tess.setColorOpaque_F(brightness, brightness, brightness); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier); } }

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.