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.

Featured Replies

Posted

I'm attempting to render the default steve head on a gui. One problem was that the texture gets warped by the the fact that the default skin dimensions are 64 by 32 instead of 64 by 64.

Lv68Mna.png

 

I fixed this by scaling it.

4bq9XTZ.png

 

Originally, the position of the head was near the center of the screen. You can see that the texture was displaced a lot. I tried fixing it by using translation.

AYzsDoE.png

 

This looks like it worked, but it gets displaced when I resize the screen.

 

 

Is there any way to just get the head texture in an IIcon or ResourceLocation form?

Kain

  • Author

Sorry for the late response, here's the code.

 

Gui Code:

package flappyworld.gui;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.init.Blocks;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import tlhpoeCore.UtilT;
import flappyworld.ReferenceFW;
import flappyworld.game.ClientGameSessionFW;

public class GuiGameFW extends GuiScreen {
public static final ResourceLocation TEXTURES = new ResourceLocation(ReferenceFW.ID + ":textures/gui/textureSheet.png");

@Override
public void drawScreen(int par1, int par2, float par3) {
	this.drawDefaultBackground();
	super.drawScreen(par1, par2, par3);
	Minecraft mc = UtilT.getMC();
	////////////////////////////////////////////////////////////////
	int x = this.width / 2;
	int y = (this.height / 2) + 67;
	mc.renderEngine.bindTexture(TextureMap.locationBlocksTexture);
	IIcon icon = Blocks.grass.getIcon(3, 0);
	for(int i = 0; i < 8; i++) {
		this.drawTexturedModelRectFromIcon((x - 64) + (16 * i), y, icon, 16, 16);
	}
	////////////////////////////////////////////////////////////////
	int width = 128;
	int height = 224;
	x = (this.width - width) / 2;
	y = (this.height - height) / 2;
	mc.renderEngine.bindTexture(TEXTURES);
	this.drawTexturedModalRect(x, y, 0, 0, width, height);
	width = height = 16;
	////////////////////////////////////////////////////////////////
	if(ReferenceFW.clientSession != null) {
		ClientGameSessionFW clientSession = ReferenceFW.clientSession;
	}
	x = this.width / 2;
	y = this.height / 2;
	mc.renderEngine.bindTexture(AbstractClientPlayer.locationStevePng);
	GL11.glPushMatrix();
	GL11.glTranslated(100, 100, 1);
	GL11.glScaled(0.5, 0.25, 0.5);
	this.drawTexturedModalRect(x, y, 32, 64, 32, 64);
	GL11.glPopMatrix();
}

@Override
public boolean doesGuiPauseGame() {
	return false;
}
}

 

Specific Section of the Code:

	if(ReferenceFW.clientSession != null) {
		ClientGameSessionFW clientSession = ReferenceFW.clientSession;
	}
	x = this.width / 2;
	y = this.height / 2;
	mc.renderEngine.bindTexture(AbstractClientPlayer.locationStevePng);
	GL11.glPushMatrix();
	GL11.glTranslated(100, 100, 1);
	GL11.glScaled(0.5, 0.25, 0.5);
	this.drawTexturedModalRect(x, y, 32, 64, 32, 64);
	GL11.glPopMatrix();

Kain

  • Author

I used GL calls to try to rescale it (since the steve texture file is a 64 by 32 or something like that).

 

And the translate was an attempt to get it back in its original position. But once I resize the window, it isn't positioned correctly.

 

The steve head is supposed to be at the center of the screen.

Kain

  • Author

If I don't use GL calls, then the head texture would be stretched vertically.

 

My current question is how to cut the steve texture down so that just the face portion of the texture is in its own ResoureLocation of IIcon.

Kain

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

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.