Sens de blocs dans les structures
-
D’accord, merci j’essaie
PS : Par contre quelqu’un connaîtrait une liste où sont répertoriés les flags correspondants à l’orientation ?___Et tant qu’on y est, au lieu de créer un nouveau topic, j’ai une autre question :
Comment intégrer des objets à l’intérieur d’un coffre généré ?
J’ai déjà fait la génération aléatoire de l’ItemStack et celle du coffre. Il me manque juste l’intégration des objets au coffre. -
Pour une génération aléatoire des items tu peux utilisé le système de forge:
world.setBlock(x + 3, y + 1, z + 5, Block.chest.blockID, 5, 2); TileEntityChest tileentitychest = (TileEntityChest)world.getBlockTileEntity(x + 3, y + 1, z + 5); if(tileentitychest != null) { ChestGenHooks info = ChestGenHooks.getInfo(ChestGenHooks.VILLAGE_BLACKSMITH); WeightedRandomChestContent.generateChestContents(rand, info.getItems(rand), tileentitychest, info.getCount(rand)); }Après, pour un item donné:
world.setBlock(x + 3, y + 1, z + 5, Block.chest.blockID, 5, 2); TileEntityChest tileentitychest = (TileEntityChest)world.getBlockTileEntity(x + 3, y + 1, z + 5); tileentitychest.setInventorySlotContents(slot, ItemStack) -
C’est la méthode
tileentitychest.setInventorySlotContents(slot, ItemStack)qui permet d’insérer les items ?
Je suppose que si c’est le cas on peut la répéter plusieurs fois pour mettre plusieurs items dans le coffre ? -
Oui c’est ça.
-
Ok merci :), Sujet résolu
EDIT : Ah ben non en fait .
Quand ma structure se génère, le coffre qui est dedans contient toujours le même item.Le code (dans MinerHouse1) :
private ItemStack getLoot(Random rand) { int loot = rand.nextInt(10); int speLootA = rand.nextInt(8); int speLootO = rand.nextInt(10); int speLootDB = rand.nextInt(5); int speLootEB = rand.nextInt(10); ItemStack stack = null; switch(loot) { case 0: stack = new ItemStack(Item.diamond); case 1: if(speLootDB == 0) { stack = new ItemStack(Block.blockDiamond); } else if(speLootEB == 0) { stack = new ItemStack(Block.blockEmerald); } case 2: stack = new ItemStack(Item.bread); case 3: if(speLootA == 0) { stack = new ItemStack(Basic.copperHelmet); } else if(speLootA == 1) { stack = new ItemStack(Basic.copperPlate); } else if(speLootA == 2) { stack = new ItemStack(Basic.copperBoots); } else if(speLootA == 3) { stack = new ItemStack(Basic.tinHelmet); } else if(speLootA == 4) { stack = new ItemStack(Basic.tinPlate); } else if(speLootA == 5) { stack = new ItemStack(Basic.tinBoots); } else if(speLootA == 6) { stack = new ItemStack(Basic.manganeseHelmet); } else if(speLootA == 7) { stack = new ItemStack(Basic.manganesePlate); } else { stack = new ItemStack(Basic.manganeseBoots); } case 4: if(speLootO == 0) { stack = new ItemStack(Basic.copperPickaxe); } else if(speLootO == 1) { stack = new ItemStack(Basic.copperShovel); } else if(speLootO == 2) { stack = new ItemStack(Basic.copperSword); } else if(speLootO == 3) { stack = new ItemStack(Basic.tinPickaxe); } else if(speLootO == 4) { stack = new ItemStack(Basic.tinShovel); } else if(speLootO == 5) { stack = new ItemStack(Basic.tinSword); } else if(speLootO == 6) { stack = new ItemStack(Basic.manganesePickaxe); } else if(speLootO == 7) { stack = new ItemStack(Basic.manganeseAxe); } else if(speLootO == 8) { stack = new ItemStack(Basic.manganeseSword); } else if(speLootO == 9) { stack = new ItemStack(Item.pickaxeDiamond); } else if(speLootO == 10) { stack = new ItemStack(Item.pickaxeIron); } case 5: stack = new ItemStack(Item.emerald); case 6: stack = new ItemStack(Basic.manganeseIngot); case 7: stack = new ItemStack(Basic.copperIngot); case 8: stack = new ItemStack(Basic.tinIngot); case 9: stack = new ItemStack(Block.blockGold); case 10: // Nothing } return stack; } // Chest Content TileEntityChest tileentitychest = (TileEntityChest)world.getBlockTileEntity(x + 2, y + 1, z + 2); tileentitychest.setInventorySlotContents(2, this.getLoot(rand)); tileentitychest.setInventorySlotContents(7, this.getLoot(rand)); tileentitychest.setInventorySlotContents(13, this.getLoot(rand)); tileentitychest.setInventorySlotContents(19, this.getLoot(rand)); tileentitychest.setInventorySlotContents(23, this.getLoot(rand)); -
Up
De l’aide svp
-
Il contient quel item précisément ?
-
C’est choisi aléatoirement avec le switch de getLoot()
Après c’est inséré dans le coffre (vide au départ) -
@‘MrBlockTNT’:
le coffre qui est dedans contient toujours le même item.
J’aimerai savoir quel est l’item qui se génère toujours afin de comprendre pourquoi le random ne fonctionne pas.
-
Le bloc d’or
J’en profite pour dire que (je viens de m’en rendre compte, car je viens de l’ajouter) la porte est bugguée :
:::
:::
Code :world.setBlock(x + 4, y + 1, z + 2, Block.doorWood.blockID, 0, 4); world.setBlock(x + 4, y + 2, z + 2, Block.doorWood.blockID, 0, 4); -
J’ai compris ton problème. Il faut que tu break, car actuellement il lit toutes les cases sans s’arrêter :
private ItemStack getLoot(Random rand) { int loot = rand.nextInt(10); int speLootA = rand.nextInt(8); int speLootO = rand.nextInt(10); int speLootDB = rand.nextInt(5); int speLootEB = rand.nextInt(10); ItemStack stack = null; switch(loot) { case 0: stack = new ItemStack(Item.diamond); break; case 1: if(speLootDB == 0) { stack = new ItemStack(Block.blockDiamond); } else if(speLootEB == 0) { stack = new ItemStack(Block.blockEmerald); } break; case 2: stack = new ItemStack(Item.bread); break; case 3: if(speLootA == 0) { stack = new ItemStack(Basic.copperHelmet); } else if(speLootA == 1) { stack = new ItemStack(Basic.copperPlate); } else if(speLootA == 2) { stack = new ItemStack(Basic.copperBoots); } else if(speLootA == 3) { stack = new ItemStack(Basic.tinHelmet); } else if(speLootA == 4) { stack = new ItemStack(Basic.tinPlate); } else if(speLootA == 5) { stack = new ItemStack(Basic.tinBoots); } else if(speLootA == 6) { stack = new ItemStack(Basic.manganeseHelmet); } else if(speLootA == 7) { stack = new ItemStack(Basic.manganesePlate); } else { stack = new ItemStack(Basic.manganeseBoots); } break; case 4: […]Et pour la porte, je sais pas, essaye avec un autre métadata pour le bloc du haut.
-
Ah oui, merci j’avais complètement oublié ^^’
Sinon je peux avoir de l’aide pour la porte ?EDIT : D’accord j’essaie merci (pour la porte)
DOUBLE EDIT : J’ai essayé avec d’autres metadata, rien ne marche

-
De l’aide Svp

-
Regarde dans la génération des villages pour la porte(?)
-
@utybo
J’ai déjà regardé, c’était dit au début.Après avoir longuement cherché, je n’ai rien trouvé, et j’ai même fini par réussir à empêcher la génération de mes structures (comment ?)
