重构loottable生成
This commit is contained in:
parent
5a6a08d753
commit
68b80323ac
6 changed files with 33 additions and 16 deletions
|
@ -1,4 +1,4 @@
|
|||
// 1.21.1 2025-04-02T18:07:51.8657658 Loot Tables
|
||||
// 1.21.1 2025-04-07T06:07:51.636744 Loot Tables
|
||||
98386b2e65b2afb7cf5b0cabf6a7b0f062c1e640 data/superbwarfare/loot_table/blocks/barbed_wire.json
|
||||
811e69929a14e6736015849c220100bb58d914c9 data/superbwarfare/loot_table/blocks/cemented_carbide_block.json
|
||||
1f482bc1f0a1026d0e1b75ee28c6f541b56747a5 data/superbwarfare/loot_table/blocks/charging_station.json
|
||||
|
@ -20,4 +20,5 @@ fb31a40f6a04000f317823cbb80eda8588ba9c69 data/superbwarfare/loot_table/blocks/si
|
|||
073b9c242ea372f7b34883835c0b02a9ca8d94e5 data/superbwarfare/loot_table/blocks/small_container.json
|
||||
83112ebff477e322bd3d23ed4653c7c02b230473 data/superbwarfare/loot_table/blocks/steel_block.json
|
||||
71fc892124b5343e10688cabc2fb7c87d83cfef8 data/superbwarfare/loot_table/blocks/tungsten_block.json
|
||||
6e2346c664cd643bff31c0a26e463c6c8dd46e37 data/superbwarfare/loot_table/chests/ancient_cpu.json
|
||||
7e75ff103ccdbcf6be6f61413a4173115195f0a9 data/superbwarfare/loot_table/containers/blueprints.json
|
||||
|
|
|
@ -2,20 +2,21 @@
|
|||
"type": "minecraft:chest",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"bonus_rolls": 1,
|
||||
"bonus_rolls": 1.0,
|
||||
"conditions": [
|
||||
{
|
||||
"chance": 0.4,
|
||||
"condition": "minecraft:random_chance"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:ancient_cpu"
|
||||
"name": "superbwarfare:ancient_cpu",
|
||||
"quality": 1
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:random_chance",
|
||||
"chance": 0.4
|
||||
}
|
||||
]
|
||||
"rolls": 1.0
|
||||
}
|
||||
],
|
||||
"random_sequence": "superbwarfare:chests/ancient_cpu"
|
|
@ -6,24 +6,39 @@ import net.minecraft.core.HolderLookup;
|
|||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.data.loot.LootTableSubProvider;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.storage.loot.LootPool;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
|
||||
public class ModContainerLootProvider implements LootTableSubProvider {
|
||||
public class ModCustomLootProvider implements LootTableSubProvider {
|
||||
|
||||
public ModContainerLootProvider(HolderLookup.Provider provider) {
|
||||
public static ResourceLocation containers(String name) {
|
||||
return Mod.loc("containers/" + name);
|
||||
}
|
||||
|
||||
public static ResourceLocation chests(String name) {
|
||||
return Mod.loc("chests/" + name);
|
||||
}
|
||||
|
||||
public ModCustomLootProvider(HolderLookup.Provider provider) {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(@NotNull BiConsumer<ResourceKey<LootTable>, LootTable.Builder> output) {
|
||||
output.accept(ResourceKey.create(Registries.LOOT_TABLE, Mod.loc("containers/blueprints")),
|
||||
output.accept(ResourceKey.create(Registries.LOOT_TABLE, chests("ancient_cpu")),
|
||||
LootTable.lootTable().withPool(singleItem(ModItems.ANCIENT_CPU.get(), 1, 1, 1, 1)
|
||||
.when(() -> LootItemRandomChanceCondition.randomChance(0.4f).build()))
|
||||
);
|
||||
|
||||
output.accept(ResourceKey.create(Registries.LOOT_TABLE, containers("blueprints")),
|
||||
LootTable.lootTable().withPool(multiItems(1, 0,
|
||||
new PoolTriple(ModItems.GLOCK_17_BLUEPRINT.get(), 60, 0),
|
||||
new PoolTriple(ModItems.MP_443_BLUEPRINT.get(), 60, 0),
|
|
@ -13,7 +13,7 @@ public class ModLootTableProvider {
|
|||
public static LootTableProvider create(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
|
||||
return new LootTableProvider(output, Set.of(), List.of(
|
||||
new LootTableProvider.SubProviderEntry(ModBlockLootProvider::new, LootContextParamSets.BLOCK),
|
||||
new LootTableProvider.SubProviderEntry(ModContainerLootProvider::new, LootContextParamSets.CHEST)
|
||||
new LootTableProvider.SubProviderEntry(ModCustomLootProvider::new, LootContextParamSets.CHEST)
|
||||
), registries);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -500,7 +500,7 @@
|
|||
"tips.superbwarfare.shoot.rings": "Rings",
|
||||
"tips.superbwarfare.annihilator.energy_not_enough": "Energy is Not Enough",
|
||||
"tips.superbwarfare.target.down": "Target Down %1$s",
|
||||
"tips.superbwarfare.target.damage": "Damage: %1$s Distance: %2$sm",
|
||||
"tips.superbwarfare.target.damage": "Damage: %1$s Distance: %2$s",
|
||||
"tips.superbwarfare.mortar.range": "Range: ",
|
||||
"tips.superbwarfare.mortar.yaw": "Yaw: ",
|
||||
"tips.superbwarfare.mortar.pitch": "Pitch: ",
|
||||
|
|
|
@ -498,7 +498,7 @@
|
|||
"tips.superbwarfare.shoot.rings": "环",
|
||||
"tips.superbwarfare.annihilator.energy_not_enough": "能量不足",
|
||||
"tips.superbwarfare.target.down": "击倒目标 %1$s",
|
||||
"tips.superbwarfare.target.damage": "伤害:%1$s 距离:%2$sm",
|
||||
"tips.superbwarfare.target.damage": "伤害:%1$s 距离:%2$s",
|
||||
"tips.superbwarfare.mortar.range": "射程:",
|
||||
"tips.superbwarfare.mortar.yaw": "水平朝向:",
|
||||
"tips.superbwarfare.mortar.pitch": "俯仰角度:",
|
||||
|
|
Loading…
Add table
Reference in a new issue