Skip to content

Commit

Permalink
Merge pull request Anvil-Dev#928 from Gu-ZT/seeds_pack
Browse files Browse the repository at this point in the history
种子袋
  • Loading branch information
XeKr authored Jun 19, 2024
2 parents 5a2d131 + 5fecc3b commit 96e0992
Show file tree
Hide file tree
Showing 21 changed files with 195 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,5 +80,18 @@ public static void init(@NotNull RegistrateTagsProvider<Item> provider) {
.add(Items.DEAD_BUBBLE_CORAL_FAN)
.add(Items.DEAD_FIRE_CORAL_FAN)
.add(Items.DEAD_HORN_CORAL_FAN);
provider.addTag(ModItemTags.SEEDS_PACK_CONTENT).setReplace(false)
.addOptionalTag(ModItemTags.SEEDS)
.addOptionalTag(ModItemTags.BERRIES)
.addOptionalTag(ModItemTags.VEGETABLES)
.addOptionalTag(ModItemTags.SEEDS_FORGE)
.addOptionalTag(ModItemTags.BERRIES_FORGE)
.addOptionalTag(ModItemTags.VEGETABLES_FORGE);
provider.addTag(ModItemTags.VEGETABLES).setReplace(false)
.add(Items.POTATO)
.add(Items.CARROT);
provider.addTag(ModItemTags.BERRIES).setReplace(false)
.add(Items.SWEET_BERRIES)
.add(Items.GLOW_BERRIES);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class ModItemGroups {
entries.accept(ModItems.CREAMY_BREAD_ROLL.get().getDefaultInstance());
entries.accept(ModItems.BEEF_MUSHROOM_STEW.get().getDefaultInstance());
entries.accept(ModItems.UTUSAN.get().getDefaultInstance());
entries.accept(ModItems.SEEDS_PACK.get().getDefaultInstance());
entries.accept(ModItemGroups.createMaxLevelBook(ModEnchantments.FELLING));
entries.accept(ModItemGroups.createMaxLevelBook(ModEnchantments.HARVEST));
entries.accept(ModItemGroups.createMaxLevelBook(ModEnchantments.BEHEADING));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ public class ModItemTags {
public static final TagKey<Item> RAW_SILVER = bindC("raw_silver_ores");
public static final TagKey<Item> RAW_URANIUM = bindC("raw_uranium_ores");

public static final TagKey<Item> VEGETABLES = bindC("vegetables");
public static final TagKey<Item> SEEDS = bindC("seeds");
public static final TagKey<Item> BERRIES = bindC("berries");


public static final TagKey<Item> FLOUR_FORGE = bindForge("flour");
public static final TagKey<Item> WHEAT_FLOUR_FORGE = bindForge("flour/wheat");
Expand Down Expand Up @@ -115,6 +119,10 @@ public class ModItemTags {
public static final TagKey<Item> RAW_SILVER_FORGE = bindForge("raw_materials/silver");
public static final TagKey<Item> RAW_URANIUM_FORGE = bindForge("raw_materials/uranium");

public static final TagKey<Item> VEGETABLES_FORGE = bindForge("vegetables");
public static final TagKey<Item> SEEDS_FORGE = bindForge("seeds");
public static final TagKey<Item> BERRIES_FORGE = bindForge("berries");


public static final TagKey<Item> ROYAL_STEEL_PICKAXE_BASE = bind("royal_steel_pickaxe_base");
public static final TagKey<Item> ROYAL_STEEL_AXE_BASE = bind("royal_steel_axe_base");
Expand All @@ -127,6 +135,7 @@ public class ModItemTags {
public static final TagKey<Item> DEAD_TUBE = bind("dead_tube");
public static final TagKey<Item> VOID_RESISTANT = bind("void_resistant");
public static final TagKey<Item> REINFORCED_CONCRETE = bind("reinforced_concrete");
public static final TagKey<Item> SEEDS_PACK_CONTENT = bind("seeds_pack_content");

private static @NotNull TagKey<Item> bindC(String id) {
return TagKey.create(Registries.ITEM, new ResourceLocation("c", id));
Expand Down
4 changes: 4 additions & 0 deletions common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import dev.dubhe.anvilcraft.item.RoyalShovelItem;
import dev.dubhe.anvilcraft.item.RoyalSwordItem;
import dev.dubhe.anvilcraft.item.RoyalUpgradeTemplateItem;
import dev.dubhe.anvilcraft.item.SeedsPackItem;
import dev.dubhe.anvilcraft.item.TopazItem;
import dev.dubhe.anvilcraft.item.UtusanItem;
import net.minecraft.core.registries.BuiltInRegistries;
Expand Down Expand Up @@ -1308,6 +1309,9 @@ public class ModItems {
)
.save(provider))
.register();
public static final ItemEntry<SeedsPackItem> SEEDS_PACK = REGISTRATE
.item("seeds_pack", SeedsPackItem::new)
.register();

public static void register() {
}
Expand Down
38 changes: 38 additions & 0 deletions common/src/main/java/dev/dubhe/anvilcraft/item/SeedsPackItem.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package dev.dubhe.anvilcraft.item;

import dev.dubhe.anvilcraft.init.ModItemTags;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.util.RandomSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public class SeedsPackItem extends Item {
public SeedsPackItem(Properties properties) {
super(properties);
}

@Override
public @NotNull InteractionResultHolder<ItemStack> use(
@NotNull Level level, @NotNull Player player, @NotNull InteractionHand usedHand
) {
ItemStack stack = player.getItemInHand(usedHand);
RandomSource random = level.getRandom();
List<Item> items = BuiltInRegistries.ITEM.getOrCreateTag(ModItemTags.SEEDS_PACK_CONTENT)
.stream()
.filter(Holder::isBound)
.map(Holder::value)
.toList();
if (items.isEmpty()) return InteractionResultHolder.fail(stack);
player.getInventory().placeItemBackInInventory(new ItemStack(items.get(random.nextInt(items.size()))));
stack.shrink(1);
return InteractionResultHolder.consume(stack);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@
"item.anvilcraft.sapphire": "ǝɹıɥddɐS",
"item.anvilcraft.sea_heart_shell": "ןןǝɥS ʇɹɐǝH ɐǝS",
"item.anvilcraft.sea_heart_shell_shard": "pɹɐɥS ןןǝɥS ʇɹɐǝH ɐǝS",
"item.anvilcraft.seeds_pack": "ʞɔɐԀ spǝǝS",
"item.anvilcraft.silver_ingot": "ʇobuI ɹǝʌןıS",
"item.anvilcraft.silver_nugget": "ʇǝbbnN ɹǝʌןıS",
"item.anvilcraft.sponge_gemmule": "ǝןnɯɯǝ⅁ ǝbuodS",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@
"item.anvilcraft.sapphire": "Sapphire",
"item.anvilcraft.sea_heart_shell": "Sea Heart Shell",
"item.anvilcraft.sea_heart_shell_shard": "Sea Heart Shell Shard",
"item.anvilcraft.seeds_pack": "Seeds Pack",
"item.anvilcraft.silver_ingot": "Silver Ingot",
"item.anvilcraft.silver_nugget": "Silver Nugget",
"item.anvilcraft.sponge_gemmule": "Sponge Gemmule",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "anvilcraft:item/seeds_pack"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"replace": false,
"values": [
{
"id": "#c:seeds",
"required": false
},
{
"id": "#c:berries",
"required": false
},
{
"id": "#c:vegetables",
"required": false
},
{
"id": "#forge:seeds",
"required": false
},
{
"id": "#forge:berries",
"required": false
},
{
"id": "#forge:vegetables",
"required": false
}
]
}
7 changes: 7 additions & 0 deletions fabric/src/generated/resources/data/c/tags/items/berries.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:sweet_berries",
"minecraft:glow_berries"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:potato",
"minecraft:carrot"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:sweet_berries",
"minecraft:glow_berries"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:potato",
"minecraft:carrot"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@
"item.anvilcraft.sapphire": "ǝɹıɥddɐS",
"item.anvilcraft.sea_heart_shell": "ןןǝɥS ʇɹɐǝH ɐǝS",
"item.anvilcraft.sea_heart_shell_shard": "pɹɐɥS ןןǝɥS ʇɹɐǝH ɐǝS",
"item.anvilcraft.seeds_pack": "ʞɔɐԀ spǝǝS",
"item.anvilcraft.silver_ingot": "ʇobuI ɹǝʌןıS",
"item.anvilcraft.silver_nugget": "ʇǝbbnN ɹǝʌןıS",
"item.anvilcraft.sponge_gemmule": "ǝןnɯɯǝ⅁ ǝbuodS",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@
"item.anvilcraft.sapphire": "Sapphire",
"item.anvilcraft.sea_heart_shell": "Sea Heart Shell",
"item.anvilcraft.sea_heart_shell_shard": "Sea Heart Shell Shard",
"item.anvilcraft.seeds_pack": "Seeds Pack",
"item.anvilcraft.silver_ingot": "Silver Ingot",
"item.anvilcraft.silver_nugget": "Silver Nugget",
"item.anvilcraft.sponge_gemmule": "Sponge Gemmule",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "anvilcraft:item/seeds_pack"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"replace": false,
"values": [
{
"id": "#c:seeds",
"required": false
},
{
"id": "#c:berries",
"required": false
},
{
"id": "#c:vegetables",
"required": false
},
{
"id": "#forge:seeds",
"required": false
},
{
"id": "#forge:berries",
"required": false
},
{
"id": "#forge:vegetables",
"required": false
}
]
}
7 changes: 7 additions & 0 deletions forge/src/generated/resources/data/c/tags/items/berries.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:sweet_berries",
"minecraft:glow_berries"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:potato",
"minecraft:carrot"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:sweet_berries",
"minecraft:glow_berries"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"minecraft:potato",
"minecraft:carrot"
]
}

0 comments on commit 96e0992

Please sign in to comment.