- 81
- 2
Здраст,столкнулся с проблемой,не рендерит скин,сразу скажу что код не весь мой,попросили поправить
Java:
public class RenderTab
{
public HashMap skins;
boolean start;
public RenderTab() {
this.skins = new HashMap();
this.start = false;
}
@Mod.EventHandler
public void init(final FMLInitializationEvent event) {
MinecraftForge.EVENT_BUS.register((Object)this);
}
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void eventHandler(final RenderGameOverlayEvent.Pre event) {
if (event.type == RenderGameOverlayEvent.ElementType.PLAYER_LIST) {
event.setCanceled(true);
this.renderList(event.resolution.getScaledWidth(), event.resolution.getScaledHeight());
}
}
public void renderList(final int width, final int height) {
final List players = Minecraft.getMinecraft().thePlayer.sendQueue.playerInfoList;
final int count = players.size();
final int maxcols = width / 50 - 1;
int var20;
if (count >= maxcols) {
var20 = maxcols;
}
else {
var20 = count;
}
int x = width / 2 - 42 * var20 / 2;
final int xmax = width / 2 + 42 * var20 / 2;
int id = 0;
int y = 10;
int c = 0;
GL11.glPushMatrix();
GL11.glScalef(0.5f, 0.5f, 0.5f);
for (int i = 0; i < count; ++i) {
if (id < 45) {
final GuiPlayerInfo pl = (GuiPlayerInfo) players.get(i);
final String name = pl.name;
ResourceLocation skin;
if (this.skins.containsKey(name)) {
skin = (ResourceLocation) this.skins.get(name);
}
else {
skin = new ResourceLocation("patchskins/" + StringUtils.stripControlCodes(name));
final TextureManager var21 = Minecraft.getMinecraft().getTextureManager();
final ITextureObject var22 = var21.getTexture(skin);
if (var22 == null) {
final ImageData var23 = new ImageData(String.format("http://swiftycraft.ru/lk/upload/skins/%s.png", StringUtils.stripControlCodes(name)), AbstractClientPlayer.locationStevePng, (IImageBuffer)new ImageBufferDownload());
var21.loadTexture(skin, (ITextureObject)var23);
}
this.skins.put(name, skin);
}
skin(skin, x * 2 + 15, y * 2, 50, 50);
String display = name;
display = ((display.length() > 11) ? new String(display.substring(0, 11)) : display);
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(display, x * 2 + 15 + 26 - Minecraft.getMinecraft().fontRenderer.getStringWidth(display) / 2, y * 2 + 55, -1);
++c;
x += 42;
++id;
if (c == var20) {
x = width / 2 - 42 * var20 / 2;
y += 36;
c = 0;
}
}
}
GL11.glPopMatrix();
GL11.glDisable(32826);
}
public static void skin(final ResourceLocation skin, final int x, final int y, final int w, final int h) {
Minecraft.getMinecraft().getTextureManager().bindTexture(skin);
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
final Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)x, (double)(y + h), 0.0, 0.125, 0.5);
tessellator.addVertexWithUV((double)(x + w), (double)(y + h), 0.0, 0.25, 0.5);
tessellator.addVertexWithUV((double)(x + w), (double)y, 0.0, 0.25, 0.25);
tessellator.addVertexWithUV((double)x, (double)y, 0.0, 0.125, 0.25);
tessellator.draw();
}
}