diff --git a/src/generated/resources/data/firefly_bush_backport/loot_tables/blocks/firefly_bush.json b/src/generated/resources/data/firefly_bush_backport/loot_tables/blocks/firefly_bush.json new file mode 100644 index 0000000..1a3e099 --- /dev/null +++ b/src/generated/resources/data/firefly_bush_backport/loot_tables/blocks/firefly_bush.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "firefly_bush_backport:firefly_bush" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "firefly_bush_backport:blocks/firefly_bush" +} \ No newline at end of file diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java index e31fdc1..054df3e 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java +++ b/src/main/java/dev/micle/firefly_bush_backport/data/DataGenerators.java @@ -4,6 +4,7 @@ import dev.micle.firefly_bush_backport.FireflyBushBackport; import dev.micle.firefly_bush_backport.data.client.ModBlockStateProvider; import dev.micle.firefly_bush_backport.data.client.ModItemModelProvider; import dev.micle.firefly_bush_backport.data.client.ModSoundDefinitionsProvider; +import dev.micle.firefly_bush_backport.data.server.ModLootTableProvider; import dev.micle.firefly_bush_backport.data.server.ModWorldGenProvider; import net.minecraft.core.HolderLookup; import net.minecraft.data.DataGenerator; @@ -25,6 +26,8 @@ public class DataGenerators { generator.addProvider(event.includeClient(), new ModBlockStateProvider(generator, existingFileHelper)); generator.addProvider(event.includeClient(), new ModItemModelProvider(generator, existingFileHelper)); generator.addProvider(event.includeClient(), new ModSoundDefinitionsProvider(generator, existingFileHelper)); + + generator.addProvider(event.includeServer(), new ModLootTableProvider(generator)); generator.addProvider(event.includeServer(), new ModWorldGenProvider(generator, lookupProvider)); } } diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/loot/ModBlockLootTableProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/loot/ModBlockLootTableProvider.java new file mode 100644 index 0000000..9365028 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/data/loot/ModBlockLootTableProvider.java @@ -0,0 +1,26 @@ +package dev.micle.firefly_bush_backport.data.loot; + +import dev.micle.firefly_bush_backport.block.ModBlocks; +import net.minecraft.data.loot.BlockLootSubProvider; +import net.minecraft.world.flag.FeatureFlags; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.registries.RegistryObject; +import org.jetbrains.annotations.NotNull; + +import java.util.Set; + +public class ModBlockLootTableProvider extends BlockLootSubProvider { + public ModBlockLootTableProvider() { + super(Set.of(), FeatureFlags.REGISTRY.allFlags()); + } + + @Override + protected void generate() { + this.dropSelf(ModBlocks.FIREFLY_BUSH.get()); + } + + @Override + protected @NotNull Iterable getKnownBlocks() { + return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator; + } +} diff --git a/src/main/java/dev/micle/firefly_bush_backport/data/server/ModLootTableProvider.java b/src/main/java/dev/micle/firefly_bush_backport/data/server/ModLootTableProvider.java new file mode 100644 index 0000000..4d30a38 --- /dev/null +++ b/src/main/java/dev/micle/firefly_bush_backport/data/server/ModLootTableProvider.java @@ -0,0 +1,17 @@ +package dev.micle.firefly_bush_backport.data.server; + +import dev.micle.firefly_bush_backport.data.loot.ModBlockLootTableProvider; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.loot.LootTableProvider; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; + +import java.util.List; +import java.util.Set; + +public class ModLootTableProvider extends LootTableProvider { + public ModLootTableProvider(DataGenerator generator) { + super(generator.getPackOutput(), Set.of(), List.of( + new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK) + )); + } +}