Ajout du FOG dans un biome
-
Bonjours,
J’ai essaye d’ajouté les FOG dans un biom, vu que je savait que Biom o plenty ajouté déjà ca, j’ai voulu allé voir c’est source.
J’ai donc trouvé ce qui m’interessé mais quand j’essaye de le rajouté a mon biome j’ai une erreur car la les méthode pour mettre du FOG ne sont pas dans la class BiomeGenBase
Voici les sources de biom of plenty :
https://github.com/Glitchfiend/BiomesOPlenty/blob/master/src/main/java/biomesoplenty/common/biomes/overworld/BiomeGenWasteland.javaEt voici mon code:
public class Biomtuto extends BiomeGenBase { public Biomtuto(int par1) { super(par1); this.setDisableRain(); this.setColor(5919808); this.setTemperatureRainfall(2.0F, 0.05F); this.topBlock = (byte)Block.grass.blockID; this.fillerBlock = (byte)Block.stone.blockID; this.waterColorMultiplier = 0x666600; this.theBiomeDecorator.treesPerChunk = 10; } @Override public int getBiomeGrassColor() { return 0xFF0C00; } @Override public int getSkyColorByTemp(float par1) { return 0x99CC33; } @Override public int getFogColour() { return 0x99CC33; } @Override public float getFogCloseness() { // TODO Auto-generated method stub return 0.3F; } }
Merci d’avance pour vos reponces
Cordialement Sidney -
TickHandler -> Check chaque tick le biome dans le quel le player est -> Si le biome est ton biome, Minecraft.getMinecraft().gameSettings.renderDistanceChunks = (ENTRE 2 ET 4);
-
Oui mais je ne peut pas choisir la couleur du fog
-
J’ai cherché toute la journée pour cette mystérieuse méthodes et toujours rien, je me demande bien comment a bien pu faire le moddeur de biome o plenty, si vous avez des suggestion je suis preneur.
-
Je pense qu’il à recodé le fog
-
Oui mais j’ai cherché dans toutes les class et je n’est rien trouvé
-
Regarde aussi dans les classe du mod mystcraft on peut régler le fog
-
ah ! Je go tous de suite dessus !
Malheureusement Mystcraft n’a pas mit c’est source sur github
-
net.minecraft.client.renderer.EntityRenderer
Il y a des trucs concernant le fog -
Merci !
Je pence avoir trouvé ce qui m’intersse:/** * Sets up the fog to be rendered. If the arg passed in is -1 the fog starts at 0 and goes to 80% of far plane * distance and is used for sky rendering. */ private void setupFog(int par1, float par2) { EntityLivingBase entitylivingbase = this.mc.renderViewEntity; boolean flag = false; if (entitylivingbase instanceof EntityPlayer) { flag = ((EntityPlayer)entitylivingbase).capabilities.isCreativeMode; } if (par1 == 999) { GL11.glFog(GL11.GL_FOG_COLOR, this.setFogColorBuffer(0.0F, 0.0F, 0.0F, 1.0F)); GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR); GL11.glFogf(GL11.GL_FOG_START, 0.0F); GL11.glFogf(GL11.GL_FOG_END, 8.0F); if (GLContext.getCapabilities().GL_NV_fog_distance) { GL11.glFogi(34138, 34139); } GL11.glFogf(GL11.GL_FOG_START, 0.0F); } else { GL11.glFog(GL11.GL_FOG_COLOR, this.setFogColorBuffer(this.fogColorRed, this.fogColorGreen, this.fogColorBlue, 1.0F)); GL11.glNormal3f(0.0F, -1.0F, 0.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int j = ActiveRenderInfo.getBlockIdAtEntityViewpoint(this.mc.theWorld, entitylivingbase, par2); float f1; if (entitylivingbase.isPotionActive(Potion.blindness)) { f1 = 5.0F; int k = entitylivingbase.getActivePotionEffect(Potion.blindness).getDuration(); if (k < 20) { f1 = 5.0F + (this.farPlaneDistance - 5.0F) * (1.0F - (float)k / 20.0F); } GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR); if (par1 < 0) { GL11.glFogf(GL11.GL_FOG_START, 0.0F); GL11.glFogf(GL11.GL_FOG_END, f1 * 0.8F); } else { GL11.glFogf(GL11.GL_FOG_START, f1 * 0.25F); GL11.glFogf(GL11.GL_FOG_END, f1); } if (GLContext.getCapabilities().GL_NV_fog_distance) { GL11.glFogi(34138, 34139); } } else if (this.cloudFog) { GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); GL11.glFogf(GL11.GL_FOG_DENSITY, 0.1F); } else if (j > 0 && Block.blocksList[j].blockMaterial == Material.water) { GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); if (entitylivingbase.isPotionActive(Potion.waterBreathing)) { GL11.glFogf(GL11.GL_FOG_DENSITY, 0.05F); } else { GL11.glFogf(GL11.GL_FOG_DENSITY, 0.1F - (float)EnchantmentHelper.getRespiration(entitylivingbase) * 0.03F); } } else if (j > 0 && Block.blocksList[j].blockMaterial == Material.lava) { GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); GL11.glFogf(GL11.GL_FOG_DENSITY, 2.0F); } else { f1 = this.farPlaneDistance; if (this.mc.theWorld.provider.getWorldHasVoidParticles() && !flag) { double d0 = (double)((entitylivingbase.getBrightnessForRender(par2) & 15728640) >> 20) / 16.0D + (entitylivingbase.lastTickPosY + (entitylivingbase.posY - entitylivingbase.lastTickPosY) * (double)par2 + 4.0D) / 32.0D; if (d0 < 1.0D) { if (d0 < 0.0D) { d0 = 0.0D; } d0 *= d0; float f2 = 100.0F * (float)d0; if (f2 < 5.0F) { f2 = 5.0F; } if (f1 > f2) { f1 = f2; } } } GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR); if (par1 < 0) { GL11.glFogf(GL11.GL_FOG_START, 0.0F); GL11.glFogf(GL11.GL_FOG_END, f1 * 0.8F); } else { GL11.glFogf(GL11.GL_FOG_START, f1 * 0.25F); GL11.glFogf(GL11.GL_FOG_END, f1); } if (GLContext.getCapabilities().GL_NV_fog_distance) { GL11.glFogi(34138, 34139); } if (this.mc.theWorld.provider.doesXZShowFog((int)entitylivingbase.posX, (int)entitylivingbase.posZ)) { GL11.glFogf(GL11.GL_FOG_START, f1 * 0.05F); GL11.glFogf(GL11.GL_FOG_END, Math.min(f1, 192.0F) * 0.5F); } } GL11.glEnable(GL11.GL_COLOR_MATERIAL); GL11.glColorMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT); } }
Mais par contre je n’est aucun idée de comment appliquer ça au joueur qui est dans le biome.
-
Tu met ça dans la classe de ton biome et tu fais un updateTick
-
Merci mais je ne comprend rien au :
GL11.GL_FOG_MOD GL11.GL_FOG_COLOR GL11.GL_FOG_START GL11.GL_FOG_END GL11.GL_FOG GL11.GL_FOG_DENSITY
-
c’est les différent paramètre du fog
-
Oui mais comment on peut bien réglé c’est paramètre?
De plus toute les chose que j’essaye de faire n’ont aucun effet mit appart de faire lag:
private FloatBuffer setFogColorBuffer(float par1, float par2, float par3, float par4) { this.fogColorBuffer.clear(); this.fogColorBuffer.put(par1).put(par2).put(par3).put(par4); this.fogColorBuffer.flip(); return this.fogColorBuffer; } public void updateTick(World world, int x, int y, int z) { GL11.glFog(GL11.GL_FOG_COLOR, this.setFogColorBuffer(0.0F, 0.0F, 0.0F, 1.0F)); GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_LINEAR); GL11.glFogf(GL11.GL_FOG_START, 0.0F); GL11.glFogf(GL11.GL_FOG_END, 8.0F); System.out.println("Test!"); }
-
Alors la je sais pas j’ai jamais test le fog
-
Pas grave,je vais continuer de chercher:)
-
ok prévient moi si tu y arrive
-
Ok np
De toute façon si je y arrive je pence faire un tuto plus poussé pour les biomes en 1.6
-
ok merci ^^
-
J’ai enfin trouvé comment a fais le coddeur de biome o plenty tout est dans cette importe :
import worldcore.interfaces.IWCFog;