Résolu Supprimer des biomes
-
Il semblerait qu’en 1.8.9 la classe BiomeProvider n’existe pas. Comment faire ?
Ne peut-on pas modifier la taille du biome océan ? -
Pas d’idée pour changer la taille du biome océan ?
-
Avec un peu de recherche, j’ai réussi à trouver comment faire :
@SubscribeEvent public void onGuiOpen(GuiOpenEvent e) { if(e.gui instanceof GuiCreateWorld) { GuiCreateWorld guiCreateWorld = (GuiCreateWorld) e.gui; guiCreateWorld.chunkProviderSettingsJson = "{\"coordinateScale\":684.412,\"heightScale\":684.412,\"lowerLimitScale\":512.0,\"upperLimitScale\":512.0,\"depthNoiseScaleX\":200.0,\"depthNoiseScaleZ\":200.0,\"depthNoiseScaleExponent\":0.5,\"mainNoiseScaleX\":80.0,\"mainNoiseScaleY\":160.0,\"mainNoiseScaleZ\":80.0,\"baseSize\":8.5,\"stretchY\":12.0,\"biomeDepthWeight\":1.0,\"biomeDepthOffset\":0.0,\"biomeScaleWeight\":1.0,\"biomeScaleOffset\":0.0,\"seaLevel\":63,\"useCaves\":true,\"useDungeons\":true,\"dungeonChance\":8,\"useStrongholds\":true,\"useVillages\":true,\"useMineShafts\":true,\"useTemples\":true,\"useMonuments\":true,\"useRavines\":true,\"useWaterLakes\":true,\"waterLakeChance\":4,\"useLavaLakes\":true,\"lavaLakeChance\":80,\"useLavaOceans\":false,\"fixedBiome\":0,\"biomeSize\":8,\"riverSize\":4,\"dirtSize\":33,\"dirtCount\":10,\"dirtMinHeight\":0,\"dirtMaxHeight\":256,\"gravelSize\":33,\"gravelCount\":8,\"gravelMinHeight\":0,\"gravelMaxHeight\":256,\"graniteSize\":33,\"graniteCount\":10,\"graniteMinHeight\":0,\"graniteMaxHeight\":80,\"dioriteSize\":33,\"dioriteCount\":10,\"dioriteMinHeight\":0,\"dioriteMaxHeight\":80,\"andesiteSize\":33,\"andesiteCount\":10,\"andesiteMinHeight\":0,\"andesiteMaxHeight\":80,\"coalSize\":17,\"coalCount\":20,\"coalMinHeight\":0,\"coalMaxHeight\":128,\"ironSize\":9,\"ironCount\":20,\"ironMinHeight\":0,\"ironMaxHeight\":64,\"goldSize\":9,\"goldCount\":2,\"goldMinHeight\":0,\"goldMaxHeight\":32,\"redstoneSize\":8,\"redstoneCount\":8,\"redstoneMinHeight\":0,\"redstoneMaxHeight\":16,\"diamondSize\":8,\"diamondCount\":1,\"diamondMinHeight\":0,\"diamondMaxHeight\":16,\"lapisSize\":7,\"lapisCount\":1,\"lapisCenterHeight\":16,\"lapisSpread\":16}"; ObfuscationReflectionHelper.setPrivateValue(GuiCreateWorld.class, guiCreateWorld, 4, 24); } }
Il faudra que tu remplaces le nombre de “fixedBiome”:0 par l’ID de ton biome.
Aussi, même si le biome size est élevé, je n’exclue pas le fait qu’un océan puisse apparaître, mais pour avoir testé, j’en ai pas trouvé.Et pour que ton joueur apparaisse sur ton biome :
@EventHandler public void preInit(FMLPreInitializationEvent event) { WorldChunkManager.allowedBiomes.clear(); WorldChunkManager.allowedBiomes.add(<ton biome="">); } ```</ton>
-
Je continue à spawner dans le biome océan, sur 5 test, 4 fois j’étais dans le biome océan. Aussi, j’ai mis l’event onGuiOpen dans ma classe d’event. Je pense pas que ce soit ça qui pose le problème.
Merci d’avance.
-
Pas d’idée ?
-
En cherchant sur internet, j’ai trouvé une autre façon de faire :
@SubscribeEvent public void onBiomeGen(WorldTypeEvent.InitBiomeGens e) { GenLayer[] layers = new GenLayer[2]; layers[0] = new GenLayer(<id du="" biome="">L) { @Override public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) { int[] aint2 = IntCache.getIntCache(areaWidth * areaHeight); for (int i = 0; i < aint2.length; i++) aint2* = <id du="" biome="">; return aint2; } }; layers[1] = layers[0]; e.newBiomeGens = layers; }
Cet event est à enregistrer sur le TERRAIN_GEN_BUS !
@EventHandler public void preInit(FMLPreInitializationEvent event) { MinecraftForge.TERRAIN_GEN_BUS.register(<tu sais="" quoi="" mettre="" ici="">); } ```</tu></id></id>
-
Super, ça fonctionne : je spawn dans mon biome et non plus dans le biome océan.
dans la partie préInit il y a ça :
WorldChunkManager.allowedBiomes.clear(); WorldChunkManager.allowedBiomes.add(BiomeMod.biomeSurvivant); MinecraftForge.TERRAIN_GEN_BUS.register(new SurvivantBiomeEvent());
Voici ce qu’il y a dans la classe SurvivantBiomeEvent :
@SubscribeEvent public void onBiomeGen(WorldTypeEvent.InitBiomeGens e) { GenLayer[] layers = new GenLayer[2]; layers[0] = new GenLayer(100L) { @Override public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight) { int[] aint2 = IntCache.getIntCache(areaWidth * areaHeight); for (int i = 0; i < aint2.length; i++) { aint2* = 100; } return aint2; } }; layers[1] = layers[0]; e.newBiomeGens = layers; }
Juste pour être sur de comprendre, cette méthode permet de faire quoi ?
Merci pour tout.