ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/data/GlobalLootModifierGenerator.java

43 lines
2 KiB
Java

package de.ellpeck.actuallyadditions.data;
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
import de.ellpeck.actuallyadditions.mod.lootmodifier.BatLootModifier;
import de.ellpeck.actuallyadditions.mod.lootmodifier.DungeonLootModifier;
import net.minecraft.data.PackOutput;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.level.storage.loot.BuiltInLootTables;
import net.minecraft.world.level.storage.loot.predicates.AnyOfCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.predicates.LootItemKilledByPlayerCondition;
import net.neoforged.neoforge.common.data.GlobalLootModifierProvider;
import net.neoforged.neoforge.common.loot.LootTableIdCondition;
public class GlobalLootModifierGenerator extends GlobalLootModifierProvider {
public GlobalLootModifierGenerator(PackOutput packOutput) {
super(packOutput, ActuallyAdditions.MODID);
}
@Override
protected void start() {
this.add("bat_loot", new BatLootModifier(
new LootItemCondition[]{
LootItemKilledByPlayerCondition.killedByPlayer().build(),
LootTableIdCondition.builder(EntityType.BAT.getDefaultLootTable()).build()
}));
this.add("dungeon_loot", new DungeonLootModifier(
new LootItemCondition[]{
AnyOfCondition.anyOf(
LootTableIdCondition.builder(BuiltInLootTables.SIMPLE_DUNGEON),
LootTableIdCondition.builder(BuiltInLootTables.ABANDONED_MINESHAFT),
LootTableIdCondition.builder(BuiltInLootTables.VILLAGE_WEAPONSMITH),
LootTableIdCondition.builder(BuiltInLootTables.STRONGHOLD_LIBRARY),
LootTableIdCondition.builder(BuiltInLootTables.IGLOO_CHEST),
LootTableIdCondition.builder(BuiltInLootTables.DESERT_PYRAMID),
LootTableIdCondition.builder(BuiltInLootTables.NETHER_BRIDGE),
LootTableIdCondition.builder(BuiltInLootTables.END_CITY_TREASURE),
LootTableIdCondition.builder(BuiltInLootTables.WOODLAND_MANSION)
).build()
}));
}
}