Textures lune et ciel



  • Bonjour
    j'ai longuement cherché mais je n'y arrive pas
    j'aimerais avoir tout le temps un ciel semblable a celui de la nuit, noir avec des etoiles
    et remplacer la texture de la lune par celle de la terre ( logiquement quand on est sur la lune on ne voit pas la lune )
    je pense que c'est dans le world provider que sa se fait mais je ne sais pas ce qu'il faut mettre

    et pourquoi pas par la meme occasion changer la gravitée



  • Pour le ciel semblable à la nuit je crois qu'il faut indiquer que c'est tout le temps la nuit et pour changer la texture du soleil je sais plus où c'est défini mais tu peut la changer 😉 Et pour la gravité, il suffit de dire que si l'entité qui saute est dans ta dimension, il saute plus haut et pas de dégâts de chute 😉



  • ok mais je sais pas comment faire 😕


  • Moddeurs confirmés Modérateurs

    pour les dégat de chute tu lui donne la propriété de la poule: de floter des les air ^^



  • Ou bien tu fais un LivingFallEvent et tu annules les degats de chutes ^^ Plus facile 🙂


  • Moddeurs confirmés Modérateurs

    oue aussi



  • comment je fait pour dire qu'il fait tout le temps nuit ?


  • Moddeurs confirmés Modérateurs

    il te faut modifier le cycle jour nuit de ta dimension:
    je crois qu'il faut utiliser ce code:

    
    public boolean isDaytime()
    {
    return provider.isDaytime();
    }
    
    


  • Mais je met sa ou ? dans le WorldProvider de ma dimension

    et provider renvoie a quoi ? j'ai une erreur


  • Moddeurs confirmés Rédacteurs Administrateurs

    Tu mets directe un return false, et il ne fera jamais jour logiquement. Par contre je ne sais pas dans quelle classe il a chopé ça.

    Pour la gravité, ce que tu peux aussi faire, c'est avec le UpdateLiving event, faire que si sa dimension est la lune, alors tu ralenti le motion Y de l'entité.


  • Moddeurs confirmés Modérateurs

    dans la classe world.java tout simplement ^^


  • Moddeurs confirmés Rédacteurs Administrateurs

    Sauf que quand tu créer un dimension custom, tu n'as pas de world custom. Dans le plus simple serait de mettre

    public boolean isDaytime()
    {
    return false;
    }
    

    Dans le provider.


  • Moddeurs confirmés Modérateurs

    a oui effectivement.



  • Hmm sa ne marche pas 😕
    je viens de penser peux t'on passer par un custom sky renderer ?
    comme sa je peux customiser les texture du soleil et de la lune par la meme occasion
    et mettre un ciel custom

    dans un lien que m'avait passé robin il y avait sa
    mais j'ai une erreur que je n'arrive pas a resoudre peut etre que vous pourrez m'aider

    
    package Universe.dimension.moon;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.multiplayer.WorldClient;
    import net.minecraft.client.renderer.RenderGlobal;
    import net.minecraft.client.renderer.RenderHelper;
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.util.MathHelper;
    import net.minecraft.util.Vec3;
    import net.minecraft.world.World;
    import net.minecraftforge.client.IRenderHandler;
    import org.lwjgl.opengl.GL11;
    import cpw.mods.fml.relauncher.ReflectionHelper;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    @SideOnly(Side.CLIENT)
    public class MoonSkyRenderer extends IRenderHandler
    {
    private int starGLCallList;
    private int glSkyList;
    private int glSkyList2;
    public MoonSkyRenderer()
    {
    RenderGlobal renderGlobal = Minecraft.getMinecraft().renderGlobal;
    this.glSkyList2 = (this.glSkyList = (this.starGLCallList = ReflectionHelper.getPrivateValue(RenderGlobal.class, renderGlobal, "starGLCallList")) + 1) + 1;
    }
    @Override
    @SideOnly(Side.CLIENT)
    public void render(float partialTicks, WorldClient world, Minecraft mc) {
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    Vec3 vec3 = world.getSkyColor(mc.renderViewEntity, partialTicks);
    float f1 = (float)vec3.xCoord;
    float f2 = (float)vec3.yCoord;
    float f3 = (float)vec3.zCoord;
    float f4;
    if (mc.gameSettings.anaglyph)
    {
    float f5 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F;
    float f6 = (f1 * 30.0F + f2 * 70.0F) / 100.0F;
    f4 = (f1 * 30.0F + f3 * 70.0F) / 100.0F;
    f1 = f5;
    f2 = f6;
    f3 = f4;
    }
    GL11.glColor3f(f1, f2, f3);
    Tessellator tessellator1 = Tessellator.instance;
    GL11.glDepthMask(false);
    GL11.glEnable(GL11.GL_FOG);
    GL11.glColor3f(f1, f2, f3);
    GL11.glCallList(this.glSkyList);
    GL11.glDisable(GL11.GL_FOG);
    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    RenderHelper.disableStandardItemLighting();
    float[] afloat = world.provider.calcSunriseSunsetColors(world.getCelestialAngle(partialTicks), partialTicks);
    float f7;
    float f8;
    float f9;
    float f10;
    if (afloat != null)
    {
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    GL11.glShadeModel(GL11.GL_SMOOTH);
    GL11.glPushMatrix();
    GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
    GL11.glRotatef(MathHelper.sin(world.getCelestialAngleRadians(partialTicks)) < 0.0F ? 180.0F : 0.0F, 0.0F, 0.0F, 1.0F);
    GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F);
    f4 = afloat[0];
    f7 = afloat[1];
    f8 = afloat[2];
    float f11;
    if (mc.gameSettings.anaglyph)
    {
    f9 = (f4 * 30.0F + f7 * 59.0F + f8 * 11.0F) / 100.0F;
    f10 = (f4 * 30.0F + f7 * 70.0F) / 100.0F;
    f11 = (f4 * 30.0F + f8 * 70.0F) / 100.0F;
    f4 = f9;
    f7 = f10;
    f8 = f11;
    }
    tessellator1.startDrawing(6);
    tessellator1.setColorRGBA_F(f4, f7, f8, afloat[3]);
    tessellator1.addVertex(0.0D, 100.0D, 0.0D);
    byte b0 = 16;
    tessellator1.setColorRGBA_F(afloat[0], afloat[1], afloat[2], 0.0F);
    for (int j = 0; j <= b0; ++j)
    {
    f11 = (float)j * (float)Math.PI * 2.0F / (float)b0;
    float f12 = MathHelper.sin(f11);
    float f13 = MathHelper.cos(f11);
    tessellator1.addVertex((double)(f12 * 120.0F), (double)(f13 * 120.0F), (double)(-f13 * 40.0F * afloat[3]));
    }
    tessellator1.draw();
    GL11.glPopMatrix();
    GL11.glShadeModel(GL11.GL_FLAT);
    }
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
    GL11.glPushMatrix();
    f4 = 1.0F - world.getRainStrength(partialTicks);
    f7 = 0.0F;
    f8 = 0.0F;
    f9 = 0.0F;
    GL11.glColor4f(1.0F, 1.0F, 1.0F, f4);
    GL11.glTranslatef(f7, f8, f9);
    GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
    GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
    f10 = 15.0F; // Size of sun from center
    mc.renderEngine.bindTexture("/mods/Tutorial/Enviro/sun2.png"); // Sun texture + texture path
    tessellator1.startDrawingQuads();
    tessellator1.addVertexWithUV((double)(-f10), 100.0D, (double)(-f10), 0.0D, 0.0D);
    tessellator1.addVertexWithUV((double)f10, 100.0D, (double)(-f10), 1.0D, 0.0D);
    tessellator1.addVertexWithUV((double)f10, 100.0D, (double)f10, 1.0D, 1.0D);
    tessellator1.addVertexWithUV((double)(-f10), 100.0D, (double)f10, 0.0D, 1.0D);
    tessellator1.draw(); // Draw sun
    f10 = 20.0F; // Size of moon from center
    mc.renderEngine.bindTexture("/mods/Tutorial/Enviro/moon_phases.png"); // Moon texture + texture path
    int k = world.getMoonPhase();
    int l = k % 4;
    int i1 = k / 4 % 2;
    float f14 = (float)(l + 0) / 4.0F;
    float f15 = (float)(i1 + 0) / 2.0F;
    float f16 = (float)(l + 1) / 4.0F;
    float f17 = (float)(i1 + 1) / 2.0F;
    tessellator1.startDrawingQuads();
    tessellator1.addVertexWithUV((double)(-f10), -100.0D, (double)f10, (double)f16, (double)f17);
    tessellator1.addVertexWithUV((double)f10, -100.0D, (double)f10, (double)f14, (double)f17);
    tessellator1.addVertexWithUV((double)f10, -100.0D, (double)(-f10), (double)f14, (double)f15);
    tessellator1.addVertexWithUV((double)(-f10), -100.0D, (double)(-f10), (double)f16, (double)f15);
    tessellator1.draw();
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    float f18 = world.getStarBrightness(partialTicks) * f4;
    if (f18 > 0.0F)
    {
    GL11.glColor4f(f18, f18, f18, f18);
    GL11.glCallList(this.starGLCallList);
    }
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_ALPHA_TEST);
    GL11.glEnable(GL11.GL_FOG);
    GL11.glPopMatrix();
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    GL11.glColor3f(0.0F, 0.0F, 0.0F);
    double d0 = mc.thePlayer.getPosition(partialTicks).yCoord - world.getHorizon();
    if (d0 < 0.0D)
    {
    GL11.glPushMatrix();
    GL11.glTranslatef(0.0F, 12.0F, 0.0F);
    GL11.glCallList(this.glSkyList2);
    GL11.glPopMatrix();
    f8 = 1.0F;
    f9 = -((float)(d0 + 65.0D));
    f10 = -f8;
    tessellator1.startDrawingQuads();
    tessellator1.setColorRGBA_I(0, 255);
    tessellator1.addVertex((double)(-f8), (double)f9, (double)f8);
    tessellator1.addVertex((double)f8, (double)f9, (double)f8);
    tessellator1.addVertex((double)f8, (double)f10, (double)f8);
    tessellator1.addVertex((double)(-f8), (double)f10, (double)f8);
    tessellator1.addVertex((double)(-f8), (double)f10, (double)(-f8));
    tessellator1.addVertex((double)f8, (double)f10, (double)(-f8));
    tessellator1.addVertex((double)f8, (double)f9, (double)(-f8));
    tessellator1.addVertex((double)(-f8), (double)f9, (double)(-f8));
    tessellator1.addVertex((double)f8, (double)f10, (double)(-f8));
    tessellator1.addVertex((double)f8, (double)f10, (double)f8);
    tessellator1.addVertex((double)f8, (double)f9, (double)f8);
    tessellator1.addVertex((double)f8, (double)f9, (double)(-f8));
    tessellator1.addVertex((double)(-f8), (double)f9, (double)(-f8));
    tessellator1.addVertex((double)(-f8), (double)f9, (double)f8);
    tessellator1.addVertex((double)(-f8), (double)f10, (double)f8);
    tessellator1.addVertex((double)(-f8), (double)f10, (double)(-f8));
    tessellator1.addVertex((double)(-f8), (double)f10, (double)(-f8));
    tessellator1.addVertex((double)(-f8), (double)f10, (double)f8);
    tessellator1.addVertex((double)f8, (double)f10, (double)f8);
    tessellator1.addVertex((double)f8, (double)f10, (double)(-f8));
    tessellator1.draw();
    }
    if (world.provider.isSkyColored())
    {
    GL11.glColor3f(0.2F + 0.04F, f2 * 0.2F + 0.04F, f3 * 0.6F + 0.1F);
    }
    else
    {
    GL11.glColor3f(f1, f2, f3);
    }
    GL11.glPushMatrix();
    GL11.glTranslatef(0.0F, -((float)(d0 - 16.0D)), 0.0F);
    GL11.glCallList(this.glSkyList2);
    GL11.glPopMatrix();
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glDepthMask(true);
    }
    }
    
    

    les erreurs tombent pile a la ligne des textures soleil lune

    
    mc.renderEngine.bindTexture("/mods/Tutorial/Enviro/sun2.png"); // Sun texture + texture path
    tessellator1.startDrawingQuads();
    tessellator1.addVertexWithUV((double)(-f10), 100.0D, (double)(-f10), 0.0D, 0.0D);
    tessellator1.addVertexWithUV((double)f10, 100.0D, (double)(-f10), 1.0D, 0.0D);
    tessellator1.addVertexWithUV((double)f10, 100.0D, (double)f10, 1.0D, 1.0D);
    tessellator1.addVertexWithUV((double)(-f10), 100.0D, (double)f10, 0.0D, 1.0D);
    tessellator1.draw(); // Draw sun
    f10 = 20.0F; // Size of moon from center
    mc.renderEngine.bindTexture("/mods/Tutorial/Enviro/moon_phases.png"); // Moon texture + texture path
    
    

    dans les "mc.renderEngine.bindTexture" sa ne fonctionne pas


  • Moddeurs confirmés Rédacteurs Administrateurs

    this.mc.getTextureManager().bindTexture(new ResourceLocation("modid", "blabla/blabla.png"));



  • j'ai reussi mais je n'arrive pas a mettre ma texture il me met le .png avec les items…


Log in to reply