PrismarineJS / minecraft-data

Language independent module providing minecraft data for minecraft clients, servers and libraries.
https://prismarinejs.github.io/minecraft-data
661 stars 222 forks source link

Entity loot tables #307

Open TheDudeFromCI opened 4 years ago

TheDudeFromCI commented 4 years ago

This would be significantly useful information to use. Such as what items are dropped and if only dropped under a specific condition, such as player killed or naturally killed. This information could also contain information such as the percentage chance of dropping.

Some information, such as conditionals, would need to be entered manually. However, thankfully, this is only a small number of entities that have special conditions like that.

Some examples could be that a Drown only drops tridents on PC edition if they spawned naturally, holding the trident. Or pigs dropping cooked pork when killed from fire.

This information was discussed on the Discord server yesterday, and can largely be collected by pulling from the /data folder within the Minecraft jar.

TheDudeFromCI commented 4 years ago

Added data for versions 1.14+ as of https://github.com/PrismarineJS/minecraft-data/pull/324. Still missing data for versions 1.13 and below.

dsamarin commented 3 years ago

Is it taboo to include the JSON loot data found in server.jar/data/minecraft/loot_tables directly in this package?

The block loot data from server.jar/data/minecraft/loot_tables/blocks/*.json are useful to me as well, because e.g. Lapis Lazuli Ore drops 4-9 lapis_lazuli and is relevant to understanding the expected utility of a Lapis Lazuli Ore block (utility of durability damage of mining tool + utility of 6.5 lapis lazulis).

TheDudeFromCI commented 3 years ago

Is it taboo to include the JSON loot data found in server.jar/data/minecraft/loot_tables directly in this package?

The block loot data from server.jar/data/minecraft/loot_tables/blocks/*.json are useful to me as well, because e.g. Lapis Lazuli Ore drops 4-9 lapis_lazuli and is relevant to understanding the expected utility of a Lapis Lazuli Ore block (utility of durability damage of mining tool + utility of 6.5 lapis lazulis).

Currently, we are trying to avoid using Minecraft assets directly in the source code here. You can always extract the assets manually. Alternatively, you can also try asking this issue on the https://github.com/PrismarineJS/minecraft-assets repo, since that one contains all of the extracted Minecraft data already. It makes more sense putting the raw loot tables in there.