diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 60dcda472..8d5a6f753 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -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 diff --git a/src/main/resources/data/superbwarfare/loot_table/chests/ancient_cpu.json b/src/generated/resources/data/superbwarfare/loot_table/chests/ancient_cpu.json similarity index 55% rename from src/main/resources/data/superbwarfare/loot_table/chests/ancient_cpu.json rename to src/generated/resources/data/superbwarfare/loot_table/chests/ancient_cpu.json index 722827ccb..b1865b3de 100644 --- a/src/main/resources/data/superbwarfare/loot_table/chests/ancient_cpu.json +++ b/src/generated/resources/data/superbwarfare/loot_table/chests/ancient_cpu.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" diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModContainerLootProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModCustomLootProvider.java similarity index 85% rename from src/main/java/com/atsuishio/superbwarfare/datagen/ModContainerLootProvider.java rename to src/main/java/com/atsuishio/superbwarfare/datagen/ModCustomLootProvider.java index 6df863eaa..31c647a71 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModContainerLootProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModCustomLootProvider.java @@ -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, 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), diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModLootTableProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModLootTableProvider.java index 3eef10b88..8ad1e7e5c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModLootTableProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModLootTableProvider.java @@ -13,7 +13,7 @@ public class ModLootTableProvider { public static LootTableProvider create(PackOutput output, CompletableFuture 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); } } diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 7f73dfe89..fa74d624f 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -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: ", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 81d6f0f83..ab0834dd3 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -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": "俯仰角度:",