Structure
-
Sujet casiment fini, il me reste cependant un seul probleme, qui est bien chiant je vous l’accorde. Je souhaite faire génerer ma structure sur le sol, jusque là pas de probleme, seulement, le code a changé depuis la 1.7.10 !
J’ai donc fait cela (qui ne fonctionne pas bien sur)
Je comprend vraiment pas pourquoi ça ne fonctionne pas …
Et ne dite pas que j’ai mal chercher ma structure, j’ai rajouté un system.out.printLn !Voila mon code actuelle :
package com.tuto.mod.world; import java.util.Random; import com.tuto.mod.common.Tituya; import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; public class Structure extends WorldGenerator { @Override public boolean generate(World world, Random rand, BlockPos position) { if (world.getBlockState(position.down()) == Blocks.SAND && world.isAirBlock(position.up())) { world.setBlockState(position, Blocks.LOG.getDefaultState()); world.setBlockState(position.up(), Blocks.DIAMOND_BLOCK.getDefaultState()); world.setBlockState(position.up(2), Blocks.SPONGE.getDefaultState()); Tituya tituya = new Tituya(world); tituya.setPosition(position.getX(), position.getY() + 3, position.getZ()); world.spawnEntityInWorld(tituya); System.out.println("LA STRUCTURE EST GENERE"); return true; } return false; } }Sans le if, elle fonctionne, étrange

Merci de vos réponses futurs.
-
Surement car la probabilité que ta structure tente de se générer dans la configuration où il y a un bloc de sable en dessous et un bloc d’air au dessus est rare.
Il faudrait soit augmenter fortement la probabilité soit faire que lors que la structure tente de se générer à un emplacement (x, y z), faire un boucle qui augmente y jusqu’à trouver la surface et générer à ces coordonnées là.
-
J’ai pourtant générer un biome ENTIÈREMENT remplie de sable
La structure ne devrait que spawner !
Et pour la boucle, comment je fait ? -
Je pense plutôt que c’est parce que tu compares un block et un IBlockState…
Essaie Blocks.SAND.getDefaultState() plutôt dans ta condition -
Je test cela

EDIT, MERCI enormement ! manque plus qu’a bossé sur l’aspect de la structure ! -
pas de soucis, hésite pas à poser des questions tant que tu fais un peu de recherche avant

-
@‘Dylem’:
Je pense plutôt que c’est parce que tu compares un block et un IBlockState…
Essaie Blocks.SAND.getDefaultState() plutôt dans ta conditionBien vu ! je n’avais pas fait attention à cette erreur.
-
Pour tout ceux qui veulent update leurs structures en 1.9 en plus. Voici le code :
public class Structure extends WorldGenerator { @Override public boolean generate(World world, Random rand, BlockPos position) { if (world.getBlockState(position.down()) == Blocks.SAND.getDefaultState() && world.isAirBlock(position.up())) { //BASE world.setBlockState(position, Blocks.PLANKS.getDefaultState()); world.setBlockState(position.up(), Blocks.LOG.getDefaultState()); world.setBlockState(position.east(), Blocks.PLANKS.getDefaultState()); world.setBlockState(position.north(), Blocks.PLANKS.getDefaultState()); world.setBlockState(position.south(), Blocks.PLANKS.getDefaultState()); world.setBlockState(position.west(), Blocks.PLANKS.getDefaultState()); return true; } return false; } } -
Petite astuce quand tu postes ton code :
Copies-le là-dedans : http://tabstospaces.com/ça va changer les tabulations en espaces et donc ils seront pris en compte par le forum

-
Ou alors vous configurez eclipse pour que vos tab soit des espaces
-
@‘BrokenSwing’:
Ou alors vous configurez eclipse pour que vos tab soit des espaces
Je connaissais pas merci
