pelep Posted August 15, 2013 Share Posted August 15, 2013 your code should work. go to (0, 0, 0) in your world and you should see it rendered somewhere there.. Quote Link to comment Share on other sites More sharing options...
hydroflame Posted August 15, 2013 Share Posted August 15, 2013 *hydroflame looks at the code in terror* WTF IS WRONG WITH THIS!!@!@!?!@??!?!?@%^@%?! ok sreiously im going to do my research+tutorial on ISBRH because this is getting crazy ?! Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
hydroflame Posted August 15, 2013 Share Posted August 15, 2013 ok i figured a few thing for 1, for a reason i wont explain , you cannot use glTranslated, you have to surroudn your code with tessellator.addTranslation(x, y, z); and finish with tessellator.addTranslation(-x, -y, -z); now this will make place the tessellator where something like this tess.addVertex(0, 0, 0); tess.addVertex(0, 1, 0); tess.addVertex(1, 1, 0); tess.addVertex(1, 0, 0); will cover the entire face of a block (the one you want to render) after that you can easilly use the tessellator normally to render wtv u want unless you intended to render models (like IModelCustom) then you would need another layer of setup (which i can explain if you want) Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 15, 2013 Author Share Posted August 15, 2013 Alright, I'll try this wehn I'm back at my computer. Isn't the UV part required though? I thought that was the texture part, without it wouldn't it be invisible still like it is now? Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
hydroflame Posted August 15, 2013 Share Posted August 15, 2013 yeah i did the complete research on the subject after and made a tutorial on the wiki, just search for "ISimpleBlockRenderingHandler" and you'll find it i cover texturing in there too Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 16, 2013 Author Share Posted August 16, 2013 Shit just got REAL! Time to have some fun with this, thanks for all your help! Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
Flenix Posted August 16, 2013 Author Share Posted August 16, 2013 One last thing; where do I put the icon method from your tutorial? obviously renderWorldBlock doesn't have a side or meta call (It might be a good idea to add a finished, working example class to the tutorial?) Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
hydroflame Posted August 16, 2013 Share Posted August 16, 2013 not sure which part you are talking about, Icon c = block.getIcon(side, meta); thsi whole line is inside your renderer the meta you can get by using world.getMetaAtWtvSomething(x, y, z); the side you just chose which side you want, when you render your cue you obviously render all 6 sides manualy the getIcon method itself goes inside your Block class, you can use another method if you want like create your own method getAllIcon will return an array of all texture you registered insode your Block class Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 16, 2013 Author Share Posted August 16, 2013 Yeah, that's the thing I'm talking about. When I put that in my renderWorldBlock class, it's obviously trying to find side and meta variables which don't exist: Do you not have a finished and working example...? Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
hydroflame Posted August 16, 2013 Share Posted August 16, 2013 well i don't do the "complete working example" thing, i print the code that should be enough to explain what you want to do meta can be gotten using world.getBlockMetadata(x, y, z); and side you just manually enter what you want if you want side 1 then block.getIcon(1, meta); side 2? block.getIcon(2, meta); Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 16, 2013 Author Share Posted August 16, 2013 well i don't do the "complete working example" thing, i print the code that should be enough to explain what you want to do meta can be gotten using world.getBlockMetadata(x, y, z); and side you just manually enter what you want if you want side 1 then block.getIcon(1, meta); side 2? block.getIcon(2, meta); Oh, so you were just saying side/meta as a way of saying "specify your side and meta here"? I get that now. It's rendering A texture now, just not correctly. I think I just need to understand UV a bit more so I'll google around. Progress is progress though! Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
hydroflame Posted August 16, 2013 Share Posted August 16, 2013 UV: basicly they are the default name to coordiantes in opengl 0, 0 represent top left (or botom left ? one is opengl the other is d3dx) and 1, 1 represent the opposite corner but since icons are all in 1 texture, you must use the getMinU getMaxU to determine what are the portion of the texture is given to this specific icon Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Mazetar Posted August 16, 2013 Share Posted August 16, 2013 This may be a good read to understand UV: http://greyminecraftcoder.blogspot.com.au/2013/08/the-tessellator.html Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
hydroflame Posted August 16, 2013 Share Posted August 16, 2013 This may be a good read to understand UV: http://greyminecraftcoder.blogspot.com.au/2013/08/the-tessellator.html approved, well explained Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Mazetar Posted August 16, 2013 Share Posted August 16, 2013 actually that whole blog (it's small atm) is really good at explaining! Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
Flenix Posted August 18, 2013 Author Share Posted August 18, 2013 From looking through that post a couple of times, I can't quite see where I went wrong. Everything looks like it's acting as it should, so I guess my error must be elsewhere... Can anyone see anything obvious and glaring that I've missed? renderer code: package co.uk.silvania.roads.block.tess.renderers; import org.lwjgl.opengl.GL11; import co.uk.silvania.roads.client.ClientProxy; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ShortRampRenderer implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { } @Override @SideOnly(Side.CLIENT) public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { int meta = world.getBlockMetadata(x, y, z); Icon c = block.getIcon(0, meta); float u = c.getMinU(); float v = c.getMinV(); float U = c.getMaxU(); float V = c.getMaxV(); Tessellator tess = Tessellator.instance; tess.addTranslation(x, y, z); //Base tess.addVertexWithUV(0, -0.25, 1, u, v); tess.addVertexWithUV(0, -0.25, 0, u, V); tess.addVertexWithUV(1, -0.25, 0, U, V); tess.addVertexWithUV(1, -0.25, 1, U, v); //Top Slope tess.addVertexWithUV(0, -0.25, 1, u, v); tess.addVertexWithUV(1, 0.75, 1, u, V); tess.addVertexWithUV(1, 0.75, 0, U, V); tess.addVertexWithUV(0, -0.25, 0, U, v); tess.addVertexWithUV(1, -0.25, 0, u, v); tess.addVertexWithUV(1, 0.75, 0, u, V); tess.addVertexWithUV(1, 0.75, 1, U, V); tess.addVertexWithUV(1, -0.25, 1, U, v); tess.addVertexWithUV(1, 0.75, 0, u, v); tess.addVertexWithUV(1, -0.25, 0, u, V); tess.addVertexWithUV(0, -0.25, 0, U, V); tess.addVertexWithUV(1, 0.75, 0, U, v); tess.addVertexWithUV(1, 0.75, 1, u, v); tess.addVertexWithUV(0, -0.25, 1, u, V); tess.addVertexWithUV(1, -0.25, 1, U, V); tess.addVertexWithUV(1, 0.75, 1, U, v); tess.addTranslation(-x, -y, -z); return true; } @Override public boolean shouldRender3DInInventory() { return false; } @Override public int getRenderId() { return ClientProxy.RoadsRampShortRenderID; } } And my block's class: package co.uk.silvania.roads.block.tess; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import co.uk.silvania.roads.Roads; import co.uk.silvania.roads.client.ClientProxy; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class RoadRamp5 extends Block { public RoadRamp5(int i) { super(i, Material.rock); this.setCreativeTab(Roads.tabRoads); this.setHardness(1.0F); } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } @Override public int getRenderType() { return ClientProxy.RoadsRampShortRenderID; } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) { blockIcon = iconRegister.registerIcon("roads:roadBlockMiscSingles0"); } @SideOnly(Side.CLIENT) public Icon getIcon(int side, int meta) { return blockIcon; } } And just to prove my texture is in the correct place: Any ideas? I'm so close to having this down now and then I can progress hugely with my mods! Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
hydroflame Posted August 18, 2013 Share Posted August 18, 2013 heu ... we dont even know whats wrong explanation + pics if needed ? Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 18, 2013 Author Share Posted August 18, 2013 It's rendering A texture now, just not correctly. I think I just need to understand UV a bit more so I'll google around. Progress is progress though! ^Still that Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
Mazetar Posted August 18, 2013 Share Posted August 18, 2013 ^Still that How should it really be? I guess it should have texture other than black on the top side? Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
hydroflame Posted August 18, 2013 Share Posted August 18, 2013 cuz the texture highlighted in the folderseems all black too... Quote how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution- Link to comment Share on other sites More sharing options...
Flenix Posted August 18, 2013 Author Share Posted August 18, 2013 It's the wrong shade, I should have mentioned that See how it's tinted a little green? The one on the right is the best example. It's supposed to be the same as the block it's sitting on. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
Mazetar Posted August 18, 2013 Share Posted August 18, 2013 It's the wrong shade, I should have mentioned that See how it's tinted a little green? The one on the right is the best example. It's supposed to be the same as the block it's sitting on. What are the effect if you have a texture that is all white instead? does it get a greenish tint too? // curiosity thing more than anything else Quote If you guys dont get it.. then well ya.. try harder... Link to comment Share on other sites More sharing options...
Flenix Posted August 19, 2013 Author Share Posted August 19, 2013 I actually just tried it with a road arrow texture before I went last night, and yes it doesn. The pale green here should be white (as shown in my hand): So, must be something in my code that makes it that little bit greener... (Ignore the fact the hitbox doesn't line up. The block is in the correct place for what I'm doing, just haven't set the box yet) Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
Mew Posted August 19, 2013 Share Posted August 19, 2013 It seems to me that maybe your GL11.gl_SomethingOrOtherThatEditsRGBValuesAndAlpha(Red, Green, Blue, Alpha); // Not sure what it is as you can tell also not sure what order they go in as params, but I am fairly certain that Alpha is last has a little green added to it? Thats all I can think of **EDIT** (20 seconds later...) Well, I am actually led to believe that you don't have that line... Maybe it is to do with overlays? Is your road block somehow a grass block and so is getting the grass overlay? Or the grass color applied to it? Thats it for my ideas... For now... As this edit has proven that my earlier statement of "Thats all I can think of " has been so quickly disproved... Sorry peeps! Quote I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes. I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there Link to comment Share on other sites More sharing options...
Flenix Posted August 19, 2013 Author Share Posted August 19, 2013 I did some experimenting... it seems to be height related? Here's the ramp placed on stone and grass at different heights: This is certainly very weird... I obviously need a line to override using the overlay, but what... EDIT: More experimenting, seems to be something to do with relevant block placement. I was building a little ramp so I can test other stuff while I try and get this sorted, and noticed this. When the stone is there, only the one below it is green. But, when I break it, 4 out of 6 are green... The one in the background changes too. I'm so confused right now. Quote http://s13.postimg.org/z9mlly2av/siglogo.png[/img] My mods (Links coming soon) Cities | Roads | Remula | SilvaniaMod | MoreStats Link to comment Share on other sites More sharing options...
Recommended Posts
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.