Problème génération biome
-
c’est honteux, j’ai fait extends BiomeGenBase mais j’ai toujours les mêmes erreurs (sauf celle sur worldGeneratorBigTree)
mais ici :
public WorldGenerator getRandomWorldGenForTree(Random par1Random){
j’ai un problème au niveau des “()”
-
Revoi le tutoriel
-
j’ai fait des bêtises donc xD ok je vais voir, merci
les errurs ne changent pas

-
Il te met quoi comme erreur sur les “()” ?
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
l’erreur n’existe plus.
cependant quand je fais :
this.topBlock = (byte)Block.blockRedstone.blockID ça ne reconnait pas “blockRedstone”
dans la classe principale :
GameRegistry.addBiome(giantBiome);
“addbiome” n’est pas défini pour la method gameregistry.
giantBiome = new GiantBiome(40).setBiomeName(“new”).setDisableRain().setTemperatureRainfall(1.2F, 0.9F).setEnableSnow().setMinMaxHeight(0.3F, 0.5F);
de même pour setminmaxheight pour la methode biomegenbase
EDIT :
giantBiome = new GiantBiome(40).setBiomeName(“Giant”);
BiomeDictionary.registerBiomeType(giantBiome, Type.MOUNTAIN);
BiomeManager.addSpawnBiome(giantBiome);j’ai fait ça, je semble pas avoir d’erreur mais je n’ai rien besoin d’autres que la class principale et Giantbiome ? car je fais le test, mais je trouve pas mon biome, donc je sais pas s’il se génère ou pas
-
this.topBlock = Blocks.red_stone;
GameRegistry.addBiome(giantBiome);
n’existe plus en 1.7, il faut passer en effet par le biome manager -
merci robin, je dois faire d’autres class pour pouvoir le trouver mon biome ? en sachant que j’aimerais avoir des immenses arbres dans ce biome.
j’ai aucune erreur (enfin eclipse me le dit pas ^^)
voila celle que j’ai pour le moment :
class principale :
public static BiomeGenBase giantBiome;
giantBiome = new GiantBiome(40).setBiomeName(“Giant”);
BiomeDictionary.registerBiomeType(giantBiome, Type.MOUNTAIN);
BiomeManager.addSpawnBiome(giantBiome);class GiantBiome :
package fr.craftesys.crftesys.biome; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntitySlime; import net.minecraft.entity.monster.EntitySpider; import net.minecraft.entity.monster.EntityWitch; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.passive.EntityBat; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.passive.EntityCow; import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.entity.passive.EntitySquid; import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenBigTree; import net.minecraft.world.gen.feature.WorldGenTrees; import net.minecraft.world.gen.feature.WorldGenerator; public class GiantBiome extends BiomeGenBase { public Block topBlock; private int grassPerChunk; public GiantBiome(int par1) { super(par1); this.topBlock = Blocks.redstone_ore; this.theBiomeDecorator.treesPerChunk = 10; this.waterColorMultiplier = 0x00FFFF; this.grassPerChunk = 1; this.topBlock = Blocks.wool; this.worldGeneratorBigTree = new WorldGenBigTree(false); this.theBiomeDecorator = this.createBiomeDecorator(); this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySheep.class, 12, 4, 4)); this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityPig.class, 10, 4, 4)); this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityChicken.class, 10, 4, 4)); this.spawnableCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityCow.class, 8, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySpider.class, 100, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityZombie.class, 100, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySkeleton.class, 100, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityCreeper.class, 100, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntitySlime.class, 100, 4, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityEnderman.class, 10, 1, 4)); this.spawnableMonsterList.add(new BiomeGenBase.SpawnListEntry(EntityWitch.class, 5, 1, 1)); this.spawnableWaterCreatureList.add(new BiomeGenBase.SpawnListEntry(EntitySquid.class, 10, 4, 4)); this.spawnableCaveCreatureList.add(new BiomeGenBase.SpawnListEntry(EntityBat.class, 10, 8, 8)); this.addDefaultFlowers(); this.setMinMaxHeight(0.2F, .9F); } private void setMinMaxHeight(float f, float g) { // TODO Auto-generated method stub } public int getBiomeGrassColor() { return 0xFF0C00; } public void decorate(World par1World, Random par2Random, int par3, int par4) { super.decorate(par1World, par2Random, par3, par4); if (par2Random.nextInt(1000) == 0) { int k = par3 + par2Random.nextInt(16) + 25; int l = par4 + par2Random.nextInt(16) + 25; } } public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenTrees(false, 30, 2, 2, false) : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : new WorldGenTrees(false, 40, 0, 0, false))); } } -
j’ai donc refait la class comme demandé, je n’ai donc pas d’erreur mais je n’arrive toujours pas à trouver mon biome
-
Ça fait longtemps que je n’ai plus fait de biome donc franchement aucune idée x)
-
le grand robin qui ne sait pas ? tu m’impressionnes vraiment -
Tu as bien register le biome ? Essaye d’augmenter le proba qu’il apparaisse.
(Après je sais pas, je sais juste ajouter des biomes dans une dimension custom, mais pas dans celles de mc).Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
public static BiomeGenBase giantBiome;
giantBiome = new GiantBiome(40).setBiomeName(“Giant”);
BiomeDictionary.registerBiomeType(giantBiome, Type.MOUNTAIN);
BiomeManager.addSpawnBiome(giantBiome);c’est tout ce que j’ai dans ma class principale car le simpe gameregistry ne marche plus, pour la probabilité, je vois pas comment l’augmenter

-
Utilise BiomeManager.addBiome(le type, new BiomeEntry(ton biome, la probabilité)) ;
Et en laissant le addSpawn.Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
cela ne fonctionne pas
-
Ah…. Je ne sais pas alors…
Essaye de voir les sources d’un mod comme Biomes o’plenty (si elles existent).Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
ok je vais voir demain, demain réveil Xd, bonne nuit merci
-
Au pire des cas tu fais une dimension et tu fais juste spawn ton biome déja voir si il marche ou un truc flat, normal (j’ai plus le nom) =/
-
tout ça, juste pour voir s’il spawn ? ça va être long alors ^^
j’ai essayé de faire un truc, mais toujours rien, je poste les nouvelles class :
class GiantBiome :
package fr.craftesys.craftesys.generation; import fr.craftesys.craftesys.common.*; import net.minecraft.block.Block; import java.util.Random; import fr.craftesys.craftesys.blocs.*; import fr.craftesys.craftesys.generation.*; import net.minecraft.entity.monster.EntitySkeleton; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenTrees; import net.minecraft.world.gen.feature.WorldGenerator; public class GiantBiome extends BiomeGenBase { public GiantBiome(int id) { super(id); this.setBiomeName("giant"); this.topBlock = Blocks.diamond_ore; this.fillerBlock = Blocks.redstone_ore; this.theBiomeDecorator.treesPerChunk = 3; this.theBiomeDecorator.waterlilyPerChunk = 100; this.theBiomeDecorator.bigMushroomsPerChunk = 10; this.spawnableCreatureList.add(new SpawnListEntry(EntitySkeleton.class, 5, 3, 3)); this.spawnableCreatureList.add(new SpawnListEntry(EntityZombie.class, 5, 3, 3)); this.spawnableWaterCreatureList.clear(); this.spawnableMonsterList.clear(); this.addFlower(Blocks.red_flower, 4, 3); this.addFlower(Blocks.red_flower, 5, 3); this.addFlower(Blocks.red_flower, 7, 3); this.addFlower(Blocks.red_flower, 0, 20); this.addFlower(Blocks.yellow_flower, 0, 30); this.setMinMaxHeight(0.2F, 3.9F); this.setTemperatureRainfall(0.8F, 1.4F); } private void setMinMaxHeight(float f, float g) { } public WorldGenerator getRandomWorldGenForTrees(Random par1Random) { return (WorldGenerator)(par1Random.nextInt(5) == 0 ? new WorldGenTrees(false, 4, 2, 2, false) : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : new WorldGenTrees(false, 4, 0, 0, false))); } }cass GiantGenLayerBiome :
package fr.craftesys.craftesys.generation; import java.util.ArrayList; import java.util.List; import net.minecraft.util.WeightedRandom; import net.minecraft.world.WorldType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.IntCache; import net.minecraftforge.common.BiomeManager; import net.minecraftforge.common.BiomeManager.BiomeEntry; import net.minecraftforge.common.BiomeDictionary; public class GiantGenLayerBiome extends GenLayer { private List<biomeentry>[] biomes = new ArrayList[BiomeManager.BiomeType.values().length]; private static final String __OBFID = "CL_00000555"; public GiantGenLayerBiome(long p_i2122_1_, GenLayer p_i2122_3_, WorldType p_i2122_4_) { super(p_i2122_1_); this.parent = p_i2122_3_; for (BiomeManager.BiomeType type : BiomeManager.BiomeType.values()) { com.google.common.collect.ImmutableList <biomeentry>biomesToAdd = BiomeManager.getBiomes(type); int idx = type.ordinal(); if (biomes[idx] == null) biomes[idx] = new ArrayList<biomeentry>(); if (biomesToAdd != null) biomes[idx].addAll(biomesToAdd); } int desertIdx = BiomeManager.BiomeType.DESERT.ordinal(); if (p_i2122_4_ == WorldType.DEFAULT_1_1) { biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.forest, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.extremeHills, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.swampland, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.taiga, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.giantbiome, 157)); } else { biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 30)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.savanna, 20)); biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10)); biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.giantbiome, 157)); } } /** * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall * amounts, or biomeList[] indices based on the particular GenLayer subclass. */ public int[] getInts(int p_75904_1_, int p_75904_2_, int p_75904_3_, int p_75904_4_) { int[] aint = this.parent.getInts(p_75904_1_, p_75904_2_, p_75904_3_, p_75904_4_); int[] aint1 = IntCache.getIntCache(p_75904_3_ * p_75904_4_); for (int i1 = 0; i1 < p_75904_4_; ++i1) { for (int j1 = 0; j1 < p_75904_3_; ++j1) { this.initChunkSeed((long)(j1 + p_75904_1_), (long)(i1 + p_75904_2_)); int k1 = aint[j1 + i1 * p_75904_3_]; int l1 = (k1 & 3840) >> 8; k1 &= -3841; if (isBiomeOceanic(k1)) { aint1[j1 + i1 * p_75904_3_] = k1; } else if (k1 == BiomeGenBase.mushroomIsland.biomeID) { aint1[j1 + i1 * p_75904_3_] = k1; } else if (k1 == 1) { if (l1 > 0) { if (this.nextInt(3) == 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau_F.biomeID; } } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.DESERT).biome.biomeID; } } else if (k1 == 2) { if (l1 > 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.jungle.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.WARM).biome.biomeID; } } else if (k1 == 3) { if (l1 > 0) { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.megaTaiga.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.COOL).biome.biomeID; } } else if (k1 == 4) { aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.ICY).biome.biomeID; } else { aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mushroomIsland.biomeID; } } } return aint1; } protected BiomeEntry getWeightedBiomeEntry(BiomeManager.BiomeType type) { List <biomeentry>biomeList = biomes[type.ordinal()]; int totalWeight = WeightedRandom.getTotalWeight(biomeList); int weight = BiomeManager.isTypeListModded(type)?nextInt(totalWeight):nextInt(totalWeight / 10) * 10; return (BiomeEntry)WeightedRandom.getItem(biomeList, weight); } }class BiomeRegistry :
package fr.craftesys.craftesys.generation; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.common.BiomeManager; public class BiomeRegistry { public static void mainRegsitry(){ initializeBiome(); registerBiome(); } public static BiomeGenBase giantbiome; public static void initializeBiome(){ giantbiome = new GiantBiome(157).setBiomeName("test").setTemperatureRainfall(1.2F, 0.9F); } public static void registerBiome(){ BiomeDictionary.registerBiomeType(giantbiome, Type.PLAINS); BiomeManager.addSpawnBiome(giantbiome); } }class WorldTypeGiant :
package fr.craftesys.craftesys.generation; import net.minecraft.world.WorldType; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.GenLayerBiome; import net.minecraft.world.gen.layer.GenLayerBiomeEdge; import net.minecraft.world.gen.layer.GenLayerZoom; public class WorldTypegiant extends WorldType{ public WorldTypegiant(int id, String name) { super(name); } /** * Creates the GenLayerBiome used for generating the world * * @param worldSeed The world seed * @param parentLayer The parent layer to feed into any layer you return * @return A GenLayer that will return ints representing the Biomes to be generated, see GenLayerBiome */ @Override public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer) { GenLayer ret = new GiantGenLayerBiome(200L, parentLayer, this); ret = GenLayerZoom.magnify(1000L, ret, 2); ret = new GenLayerBiomeEdge(1000L, ret); return ret; } }voila, si quelqu’un à une idée car aucune erreur, mais toujours rien</biomeentry></biomeentry></biomeentry></biomeentry>
-
j’ai essayé de faire le système de dimension, j’ai l’onglet, je pose l’item et quand il est posé, j’essaye de rentrer dedans et le jeu crash avec cette erreur :
–-- Minecraft Crash Report ---- // Hey, that tickles! Hehehe! Time: 10/05/16 20:14 Description: Colliding entity with block java.lang.NullPointerException: Colliding entity with block at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.world.Teleporter.<init>(Teleporter.java:32) at fr.craftesys.craftesys.dimension.TeleporterGiant.<init>(TeleporterGiant.java:27) at fr.craftesys.craftesys.dimension.GiantPortal.onEntityCollidedWithBlock(GiantPortal.java:92) -- Block being collided with -- Details: Block type: ID #165 (tile.null // fr.craftesys.craftesys.dimension.GiantPortal) Block data value: 0 / 0x0 / 0b0000 Block location: World: (93,72,246), Chunk: (at 13,4,6 in 5,15; contains blocks 80,0,240 to 95,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Stacktrace: at net.minecraft.entity.Entity.func_145775_I(Entity.java:962) -- Entity being checked for collision -- Details: Entity Type: null (net.minecraft.entity.player.EntityPlayerMP) Entity ID: 276 Entity Name: Player745 Entity's Exact location: 92,75, 72,00, 246,92 Entity's Block location: World: (92,72,246), Chunk: (at 12,4,6 in 5,15; contains blocks 80,0,240 to 95,255,255), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Entity's Momentum: 0,00, -0,08, 0,00 Stacktrace: at net.minecraft.entity.Entity.moveEntity(Entity.java:895) at net.minecraft.network.NetHandlerPlayServer.processPlayer(NetHandlerPlayServer.java:367) at net.minecraft.network.play.client.C03PacketPlayer.processPacket(C03PacketPlayer.java:37) at net.minecraft.network.play.client.C03PacketPlayer$C04PacketPlayerPosition.processPacket(C03PacketPlayer.java:163) at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) -- Ticking connection -- Details: Connection: net.minecraft.network.NetworkManager@285af420 Stacktrace: at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 10 (amd64) version 10.0 Java Version: 1.8.0_91, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 697735104 bytes (665 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95 FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) UCHIJAAAA craftesys{1.0.0} [craftesys] (bin) GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread. Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Player Count: 1 / 8; [EntityPlayerMP['Player745'/276, l='New Worldhjgfd', x=92,75, y=72,00, z=246,92]] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge'comme il y a beaucoup de class, dites moi celle qui vous serez utiles d’avoir pour comprendre, car, bah je sais pas moi :D.
merci les loulou</init></init></init></init>
-
[20:14:21] [Server thread/ERROR]: This crash report has been saved to: C:\Users\antho\Desktop\forge2\eclipse.\crash-reports\crash-2016-05-10_20.14.21-server.txt
-> Envoi le rapport complet