Résolu Bloc qui ne se drop pas
-
Bonsoir,
J’ai une question vraiment toute bête, comment faut-il faire pour qu’un bloc se drop une fois cassé? J’ai suivi un tutoriel récent, et mon bloc ne se drop pas, voici sa classe (aucun des trois blocks ne se droppent:@Mod.EventBusSubscriber(modid = eclipsium.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) public class eclipsium_blocks { @ObjectHolder(eclipsium.MOD_ID + ":solarium_block") public static final Block Solarium_block = null; @ObjectHolder(eclipsium.MOD_ID + ":lunarium_block") public static final Block Lunarium_block = null; @ObjectHolder(eclipsium.MOD_ID + ":astral_ore") public static final Block Astral_ore = null; @SubscribeEvent public static void registerBlock(final RegistryEvent.Register<Block> event) { event.getRegistry().register(new Block(Block.Properties.create(Material.IRON).setRequiresTool().hardnessAndResistance(6.0F, 8.0F).sound(SoundType.METAL)).setRegistryName("solarium_block")); event.getRegistry().register(new Block(Block.Properties.create(Material.IRON).setRequiresTool().hardnessAndResistance(6.0F, 8.0F).sound(SoundType.METAL)).setRegistryName("lunarium_block")); event.getRegistry().register(new AstralOre(Block.Properties.create(Material.ROCK).setRequiresTool().hardnessAndResistance(4.0F, 4.0F).harvestLevel(3)).setRegistryName("astral_ore")); } @SubscribeEvent public static void registerItem(final RegistryEvent.Register<Item> event) { event.getRegistry().register(new BlockItem(Solarium_block, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS)).setRegistryName(Solarium_block.getRegistryName())); event.getRegistry().register(new BlockItem(Lunarium_block, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS)).setRegistryName(Lunarium_block.getRegistryName())); event.getRegistry().register(new BlockItem(Astral_ore, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS)).setRegistryName(Astral_ore.getRegistryName())); } }
En espérant que ce soit pas aussi idiot qu’une simple erreur de copie du tutoriel, désolé et merci d’avance
-
@baztoul76 Bonjour et bonne année à toi, je viens de réussir (après plusieurs heures de tests et de recherches) à modifier le drop de mon minerai selon l’heure exacte du jour, je te remercie ainsi que @robin4002 pour m’avoir aidé, voici la solution:
{ "type": "minecraft:block", "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "eclipsium:lunarium_shard", "conditions": [ { "condition": "minecraft:time_check", "value": { "min": 12000, "max": 24000 }, "period": 24000 } ] }, { "type": "minecraft:item", "name": "eclipsium:solarium_shard", "conditions": [ { "condition": "minecraft:time_check", "value": { "min": 0, "max": 12000 }, "period": 24000 } ] } ] } ] }
Merci encore
-
Bonjour,
Depuis quelques versions de Minecraft il faut créer une loot table.
Elle doit être placé danssrc/main/resources/data/modid/loot_tables/blocks/
et être nommé avec le même nom que le registre.
Exemple : https://github.com/kevin68/The-Spotlight-Mod/blob/1.14.4/src/main/resources/data/thespotlightmod/loot_tables/blocks/tsm_spotlight.json -
@robin4002 d’accord je suis en train de me renseigner sur le sujet, et si par exemple je veux faire comme j’avais déjà fais en 1.10, faire un loot qui dépend du moment de la journée, est ce possible ? Et si oui dans la loot table ou dans la classe du bloc?
-
Hum avec le système de loot table je ne sais pas comment faire ça
-
@robin4002 d’acc, je suis partis me renseigner sur le Minecraft forge anglais, j’ai aussi post un sujet en espérant qu’ils puissent m’aider
-
@robin4002 Sur le forum on m’a conseillé de voir vers les LootConditionManager, par contre je ne sais pas du tout comment l’incorporer dans mon json pour les loot table
-
@robin4002 Bonjour, depuis hier je me suis renseigné sur les loot table, et ce que je souhaite faire est possible, il suffit que je crée une condition pour vérifier s’il fait jour ou nuit, le soucis étant que je ne sais toujours pas comment et ou mettre cette condition (dans le .json ? une classe à part?) et si je dois l’orthographier pour du java ou du json, donc si quelqu’un s’y connais un petit peu en loot tables et en conditions, toute aide est la bienvenue.
J’ai aussi trouvé cet article sur les loot tables mais je ne le comprends pas entierement : https://mcforge.readthedocs.io/en/1.13.x/items/loot_tables/
Merci d’avance -
salut !
sur le site des docs de forge, ils disent qu’il faut utiliser une condition en dehors du fichier JSON.
en gros, il faut faire{ "blabla": "patati et patata", "abc": "def", "conditions": [ { "condition": "mod:conditioncustom", "variable": 1 }, { "condition": "minecraft:conditiondonneeparminecraft", "autrevariable": true } ] }
sinon je n’en sais pas plus
j’ai trouvé aussiLootEntry entry = new LootEntryTable(new ResourceLocation("mymod:inject/simple_dungeon"), <weight>, <quality>, <conditions>, <entryName>);
mais je ne sais pas quoi en faireEDIT :
les conditions extend de la classeLootConditionManager
je pense, mais je ne connais pas trop ce genre de condition -
@baztoul76 Je me suis renseigné sur : https://minecraft.gamepedia.com/Predicate et j’ai vu qu’il existe déjà une méthode pour l’heure, sauf que je ne sais pas si la valeur donnée est déjà modulée ou pas, si on peut faire une condition pour savoir si c’est inférieur ou supérieur a telle valeur, et a quel endroit mettre le drop d’item
-
@baztoul76 J’ai créé ceci, on m’a dit que ce n’était pas correct, pourriez vous m’aider à corriger cela ? Et je n’ai pas trouvé comment vérifier si la valeur était supérieure a x valeure
{ "type": "minecraft: block", "pools": [ { "rolls": 1, "entries": [ "conditions": [ { "minecraft: time_check", I check if the value is day, } { "type": "minecraft: item", "name": "eclipsium: lunarium_shard", } { "condition": "minecraft: time_check", I check if the value isn't day, } { "type" : "minecraft: élément ", " nom ":" eclipsium: solarium_shard " } ], ] } ] }
Merci d’avance
-
Désolé, je ne connais pas trop les loot tables, ni ce genre de conditions, alors je ne suis pas en mesure d’aider
par contre, le code en JSON comporte quelques erreurs de syntaxe, notamment au niveau des virgules (il ne faut pas en mettre en fin d’objet) :{ "type": "minecraft: block", "pools": [ { "rolls": 1, "entries": [ "conditions": [ { "minecraft": "time_check", I check if the value is day }, { "type": "minecraft: item", "name": "eclipsium: lunarium_shard" }, { "condition": "minecraft: time_check", I check if the value isn't day }, { "type" : "minecraft: élément ", "nom": "eclipsium: solarium_shard " }, ] ] } ] }
il faut voir ça comme un tableau en java :
{valeur1, valeur2}
: il n’y a pas de virgule à la valeur n°2 -
@baztoul76 Bonjour et bonne année à toi, je viens de réussir (après plusieurs heures de tests et de recherches) à modifier le drop de mon minerai selon l’heure exacte du jour, je te remercie ainsi que @robin4002 pour m’avoir aidé, voici la solution:
{ "type": "minecraft:block", "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "eclipsium:lunarium_shard", "conditions": [ { "condition": "minecraft:time_check", "value": { "min": 12000, "max": 24000 }, "period": 24000 } ] }, { "type": "minecraft:item", "name": "eclipsium:solarium_shard", "conditions": [ { "condition": "minecraft:time_check", "value": { "min": 0, "max": 12000 }, "period": 24000 } ] } ] } ] }
Merci encore