- 39
- 2
- 0
Сейчас в интеллидже:
В jar если как обычно майн запускать:
Вот каким колхозом я это делал (это рендер больших часов):
В jar если как обычно майн запускать:
Вот каким колхозом я это делал (это рендер больших часов):
Render:
public class TileEntityClockRender extends TileEntitySpecialRenderer<TileEntityClock> {
public void render(TileEntityClock tileEntity, double x, double y, double z, float partialTicks, int destroyStage, float alpha)
{
IBlockState state = tileEntity.getWorld().getBlockState(tileEntity.getPos());
String time = getFormattedTime(Minecraft.getMinecraft().world.getWorldTime());
double minusX = 0;
if(((time.charAt(0) == '0' && time.charAt(1) != '1') || //Предполагаю что это лютый колхоз
(time.charAt(0) == '1' && time.charAt(1) != '0')) ||
(time.charAt(0) == '2' && (time.charAt(1) == '2' || time.charAt(1) == '3')))
minusX = -1.5;
else if(time.charAt(0) == '1' && time.charAt(1) == '1')
minusX = 1.5;
if(time.charAt(0)=='1') //Норм если компилировать, в интелледже отвал (благодаря этому я выравниваю в jar файле расположение)
minusX = -0.75;
GlStateManager.pushMatrix();
{
GlStateManager.translate(x, y, z);
RenderHelper.disableStandardItemLighting();
GlStateManager.depthMask(false);
GlStateManager.translate(0.5, 0.5, 0.5);
GlStateManager.rotate(state.getValue(CLOCK_HOUR.FACING).getHorizontalIndex() * -90F, 0, 1, 0);
GlStateManager.translate(0.0675, 0.005, -0.032);
GlStateManager.translate((-4.3+minusX) * 0.0625, 6 * 0.0625, -5.4 * 0.0625); //Тут расположение
GlStateManager.scale(0.010416667F, -0.010416667F, 0.010416667F);
GlStateManager.scale(9, 9, 9); //Тут размеры
GlStateManager.enableRescaleNormal();
GlStateManager.glNormal3f(0F, 1.0F, 0F);
Color numColor = new Color(61,57,117);
Minecraft.getMinecraft().fontRenderer.drawString(time, 0, 0, numColor.getRGB());
GlStateManager.depthMask(true);
RenderHelper.enableStandardItemLighting();
}
GlStateManager.popMatrix();
}
}
getFormattedTime:
public static String getFormattedTime(long ticks)
{
int hours = (int) ((Math.floor(ticks / 1000.0) + 6) % 24);
int minutes = (int) Math.floor((ticks % 1000) / 1000.0 * 60);
return String.format("%02d:%02d", hours, minutes);
}