Skip to content

Commit 89a56fd

Browse files
Merge pull request #97 from Polaris-Bears-MC/dev/Viola-Siemens
feat[trees]: 注册树叶、树苗、树冠、船
2 parents ba1f7e4 + 3eadb74 commit 89a56fd

File tree

13 files changed

+183
-55
lines changed

13 files changed

+183
-55
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.polaris2023.annotation.modelgen.item;
2+
3+
import java.lang.annotation.Retention;
4+
import java.lang.annotation.RetentionPolicy;
5+
6+
@Retention(RetentionPolicy.SOURCE)
7+
public @interface BasicBlockLocatedItem {
8+
}

processor/src/main/java/org/polaris2023/processor/clazz/datagen/ModelProcessor.java

+4
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ public void fieldDef(VariableElement variableElement, TypeElement typeElement) {
7575
BasicItem typeBasicItem = typeElement.getAnnotation(BasicItem.class);
7676
BasicItem basicItem = register(variableElement.getAnnotation(BasicItem.class));
7777
BasicBlockItem basicBlockItem = register(variableElement.getAnnotation(BasicBlockItem.class));
78+
BasicBlockLocatedItem basicBlockLocatedItem = register(variableElement.getAnnotation(BasicBlockLocatedItem.class));
7879
CubeAll cube = register(variableElement.getAnnotation(CubeAll.class));
7980
CubeColumn cubeColumn = register(variableElement.getAnnotation(CubeColumn.class));
8081
Stairs stairs = register(variableElement.getAnnotation(Stairs.class));
@@ -120,6 +121,9 @@ else if (basicBlockItem != null) {
120121
checkAppend(typeElement, variableElement, "basicBlockItemWithSuffix", basicBlockItem.suffix());
121122
}
122123
}
124+
else if (basicBlockLocatedItem != null) {
125+
checkAppend(typeElement, variableElement,"basicBlockLocatedItem");
126+
}
123127
else if (basicItem != null && basicItem.used()) {
124128
basicSet(typeElement.getQualifiedName() + "." + variableElement.getSimpleName(), basicItem, basicItem.value(), true, "");
125129
}

processor/src/main/java/org/polaris2023/utils/Codes.java

+9
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public final class %%classname%% implements DataProvider, IModel<%%classname%%>
5151
new ConcurrentHashMap<>();// object is Bean or map, by gson
5252
private final ConcurrentHashMap<ResourceLocation, Object> BLOCKSTATES =
5353
new ConcurrentHashMap<>();
54+
5455
private <T extends Item> %%classname%% basicItem(Supplier<T> item) {
5556
ResourceLocation key = BuiltInRegistries.ITEM.getKey(item.get()).withPrefix("item/");
5657
MODELS.put(key, Map.of("parent", "minecraft:item/generated", "textures", Map.of(
@@ -96,6 +97,14 @@ public final class %%classname%% implements DataProvider, IModel<%%classname%%>
9697
return this;
9798
}
9899
100+
private <T extends Item> %%classname%% basicBlockLocatedItem(Supplier<T> item) {
101+
ResourceLocation key = BuiltInRegistries.ITEM.getKey(item.get()).withPrefix("item/");
102+
MODELS.put(key, Map.of("parent", "minecraft:item/generated", "textures", Map.of(
103+
"layer0", BuiltInRegistries.ITEM.getKey(item.get()).withPrefix("block/").toString()
104+
)));
105+
return this;
106+
}
107+
99108
private <T extends BlockItem> %%classname%% basicParentBlockItem(Supplier<T> blockItem, ResourceLocation inventory) {
100109
ResourceLocation key = BuiltInRegistries.ITEM.getKey(blockItem.get());
101110
ResourceLocation itemKey = key.withPrefix("item/");

src/main/java/org/polaris2023/wild_wind/common/init/ModBlocks.java

+70-36
Large diffs are not rendered by default.

src/main/java/org/polaris2023/wild_wind/common/init/ModEnumExtensions.java

+27-8
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,31 @@
1313
* {@code @Date : 2025/02/20 19:47:19}
1414
*/
1515
public class ModEnumExtensions {
16-
public static final EnumProxy<Boat.Type> WILD_WIND_AZALEA =
17-
new EnumProxy<>(Boat.Type.class,
18-
ModBlocks.AZALEA_PLANKS,
19-
"wild_wind:azalea",
20-
ModBoats.AZALEA_BOAT,
21-
ModBoats.AZALEA_CHEST_BOAT,
22-
(Supplier<Item>) () -> Items.STICK,
23-
false);
16+
public static final EnumProxy<Boat.Type> WILD_WIND_AZALEA = new EnumProxy<>(
17+
Boat.Type.class,
18+
ModBlocks.AZALEA_PLANKS,
19+
"wild_wind:azalea",
20+
ModBoats.AZALEA_BOAT,
21+
ModBoats.AZALEA_CHEST_BOAT,
22+
(Supplier<Item>) () -> Items.STICK,
23+
false
24+
);
25+
public static final EnumProxy<Boat.Type> WILD_WIND_PALM = new EnumProxy<>(
26+
Boat.Type.class,
27+
ModBlocks.PALM_PLANKS,
28+
"wild_wind:palm",
29+
ModBoats.PALM_BOAT,
30+
ModBoats.PALM_CHEST_BOAT,
31+
(Supplier<Item>) () -> Items.STICK,
32+
false
33+
);
34+
public static final EnumProxy<Boat.Type> WILD_WIND_BAOBAB = new EnumProxy<>(
35+
Boat.Type.class,
36+
ModBlocks.BAOBAB_PLANKS,
37+
"wild_wind:baobab",
38+
ModBoats.BAOBAB_BOAT,
39+
ModBoats.BAOBAB_CHEST_BOAT,
40+
(Supplier<Item>) () -> Items.STICK,
41+
false
42+
);
2443
}

src/main/java/org/polaris2023/wild_wind/common/init/items/entity/ModBoats.java

+14-3
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,24 @@
1515
*/
1616
@BasicItem
1717
public class ModBoats {
18-
1918
@I18n(en_us = "Azalea Boat", zh_cn = "杜鹃木船", zh_tw = "杜鵑木船")
2019
public static final DeferredItem<BoatItem> AZALEA_BOAT =
2120
register("azalea_boat", () -> new BoatItem(false, ModEnumExtensions.WILD_WIND_AZALEA.getValue(), new Item.Properties().stacksTo(1)));
22-
@I18n(en_us = "Azalea Chest Boat", zh_tw = "杜鵑木運輸船", zh_cn = "杜鹃木运输船")
21+
@I18n(en_us = "Azalea Chest Boat", zh_cn = "杜鹃木运输船", zh_tw = "杜鵑木運輸船")
2322
public static final DeferredItem<BoatItem> AZALEA_CHEST_BOAT =
24-
register("azalea_chest_boat", () -> new BoatItem(false, ModEnumExtensions.WILD_WIND_AZALEA.getValue(), new Item.Properties().stacksTo(1)));
23+
register("azalea_chest_boat", () -> new BoatItem(true, ModEnumExtensions.WILD_WIND_AZALEA.getValue(), new Item.Properties().stacksTo(1)));
24+
@I18n(en_us = "Palm Boat", zh_cn = "棕榈木船", zh_tw = "棕櫚木船")
25+
public static final DeferredItem<BoatItem> PALM_BOAT =
26+
register("palm_boat", () -> new BoatItem(false, ModEnumExtensions.WILD_WIND_PALM.getValue(), new Item.Properties().stacksTo(1)));
27+
@I18n(en_us = "Palm Chest Boat", zh_cn = "棕榈木运输船", zh_tw = "棕櫚木運輸船")
28+
public static final DeferredItem<BoatItem> PALM_CHEST_BOAT =
29+
register("palm_chest_boat", () -> new BoatItem(true, ModEnumExtensions.WILD_WIND_PALM.getValue(), new Item.Properties().stacksTo(1)));
30+
@I18n(en_us = "Baobab Boat", zh_cn = "猴面包木船", zh_tw = "猴麵包木船")
31+
public static final DeferredItem<BoatItem> BAOBAB_BOAT =
32+
register("baobab_boat", () -> new BoatItem(false, ModEnumExtensions.WILD_WIND_BAOBAB.getValue(), new Item.Properties().stacksTo(1)));
33+
@I18n(en_us = "Baobab Chest Boat", zh_cn = "猴面包木运输船", zh_tw = "猴麵包木運輸船")
34+
public static final DeferredItem<BoatItem> BAOBAB_CHEST_BOAT =
35+
register("baobab_chest_boat", () -> new BoatItem(true, ModEnumExtensions.WILD_WIND_BAOBAB.getValue(), new Item.Properties().stacksTo(1)));
2536

2637

2738
public static void init() {}

src/main/java/org/polaris2023/wild_wind/common/init/tags/ModBlockTags.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
import java.util.function.Supplier;
99

1010
import static org.polaris2023.wild_wind.util.Helpers.ctags;
11-
import static org.polaris2023.wild_wind.util.Helpers.tags;
1211

1312

1413
public enum ModBlockTags implements Supplier<TagKey<Block>> {
1514
FIREFLY_ROOST_BLOCK,
16-
AZALEA_LOGS
15+
AZALEA_LOGS,
16+
PALM_LOGS,
17+
BAOBAB_LOGS
1718
;
1819
final TagKey<Block> tag;
1920
ModBlockTags() {

src/main/java/org/polaris2023/wild_wind/common/init/tags/ModItemTags.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
import net.minecraft.core.registries.Registries;
44
import net.minecraft.tags.TagKey;
55
import net.minecraft.world.item.Item;
6-
import net.neoforged.neoforge.common.Tags;
76

87
import java.util.Locale;
98
import java.util.function.Supplier;
109

1110
import static org.polaris2023.wild_wind.util.Helpers.ctags;
12-
import static org.polaris2023.wild_wind.util.Helpers.tags;
1311

1412
public enum ModItemTags implements Supplier<TagKey<Item>> {
1513
FIREFLY_FOOD,
@@ -19,7 +17,9 @@ public enum ModItemTags implements Supplier<TagKey<Item>> {
1917
PROTEIN_FOOD,
2018
FISH_FOOD,
2119
MONSTER_FOOD,
22-
AZALEA_LOGS
20+
AZALEA_LOGS,
21+
PALM_LOGS,
22+
BAOBAB_LOGS
2323
;
2424
final TagKey<Item> tag;
2525
ModItemTags() {

src/main/java/org/polaris2023/wild_wind/datagen/ModBlockStateProvider.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,11 @@ protected void registerStatesAndModels() {
7272
}
7373

7474
// Logs
75-
// woodModel(getVariantBuilder(ModBlocks.AZALEA_WOOD.get()), "azalea");
76-
// woodModel(getVariantBuilder(ModBlocks.STRIPPED_AZALEA_WOOD.get()), "stripped_azalea");
75+
simpleBlock(ModBlocks.PALM_CROWN.get(), models().cubeAll("palm_crown", Helpers.location("block/palm_crown")));
76+
simpleBlock(ModBlocks.PALM_LEAVES.get(), models().cubeAll("palm_leaves", Helpers.location("block/palm_leaves")).renderType("cutout_mipped"));
77+
simpleBlock(ModBlocks.BAOBAB_LEAVES.get(), models().cubeAll("baobab_leaves", Helpers.location("block/baobab_leaves")).renderType("cutout_mipped"));
78+
simpleBlock(ModBlocks.PALM_SAPLING.get(), models().cross("palm_sapling", Helpers.location("block/palm_sapling")).renderType("cutout"));
79+
simpleBlock(ModBlocks.BAOBAB_SAPLING.get(), models().cross("baobab_sapling", Helpers.location("block/baobab_sapling")).renderType("cutout"));
7780

7881
// Wool
7982
simpleBlock(ModBlocks.WOOL.get(), models().cubeAll("wool", Helpers.location("block/wool")));

src/main/java/org/polaris2023/wild_wind/datagen/loot/ModBlockLootSubProvider.java

+5
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,10 @@ public void generate() {
6161
this.add(ModBlocks.AZALEA_DOOR.get(), this.createDoorTable(ModBlocks.AZALEA_DOOR.get()));
6262
this.add(ModBlocks.PALM_DOOR.get(), this.createDoorTable(ModBlocks.PALM_DOOR.get()));
6363
this.add(ModBlocks.BAOBAB_DOOR.get(), this.createDoorTable(ModBlocks.BAOBAB_DOOR.get()));
64+
this.dropSelf(ModBlocks.PALM_CROWN.get());
65+
this.add(ModBlocks.PALM_LEAVES.get(), this.createLeavesDrops(ModBlocks.PALM_LEAVES.get(), ModBlocks.PALM_SAPLING.get(), NORMAL_LEAVES_SAPLING_CHANCES));
66+
this.add(ModBlocks.BAOBAB_LEAVES.get(), this.createLeavesDrops(ModBlocks.BAOBAB_LEAVES.get(), ModBlocks.BAOBAB_SAPLING.get(), NORMAL_LEAVES_SAPLING_CHANCES));
67+
this.dropSelf(ModBlocks.PALM_SAPLING.get());
68+
this.dropSelf(ModBlocks.BAOBAB_SAPLING.get());
6469
}
6570
}

src/main/java/org/polaris2023/wild_wind/datagen/tag/ModBlockTagsProvider.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,18 @@ protected void addTags(HolderLookup.Provider provider) {
3737
Blocks.POTTED_MANGROVE_PROPAGULE);
3838
firefly_roost.addTag(BlockTags.FLOWERS);
3939
tag(BlockTags.SNOW_LAYER_CANNOT_SURVIVE_ON).add(ModBlocks.BRITTLE_ICE.get());
40+
41+
//Mineable
4042
tag(BlockTags.MINEABLE_WITH_PICKAXE).add(ModBlocks.BRITTLE_ICE.get(), ModBlocks.SALT_ORE.get());
43+
tag(BlockTags.MINEABLE_WITH_AXE).add(ModBlocks.PALM_CROWN.get());
44+
4145
tag(ModBlockTags.AZALEA_LOGS).add(ModBlocks.AZALEA_LOG.get(), ModBlocks.AZALEA_WOOD.get(), ModBlocks.STRIPPED_AZALEA_LOG.get(), ModBlocks.STRIPPED_AZALEA_WOOD.get());
42-
tag(BlockTags.LOGS_THAT_BURN).addTag(ModBlockTags.AZALEA_LOGS.get());
46+
tag(ModBlockTags.PALM_LOGS).add(ModBlocks.PALM_LOG.get(), ModBlocks.PALM_WOOD.get(), ModBlocks.STRIPPED_PALM_LOG.get(), ModBlocks.STRIPPED_PALM_WOOD.get());
47+
tag(ModBlockTags.BAOBAB_LOGS).add(ModBlocks.BAOBAB_LOG.get(), ModBlocks.BAOBAB_WOOD.get(), ModBlocks.STRIPPED_BAOBAB_LOG.get(), ModBlocks.STRIPPED_BAOBAB_WOOD.get());
48+
tag(BlockTags.LOGS_THAT_BURN).addTag(ModBlockTags.AZALEA_LOGS.get()).addTag(ModBlockTags.PALM_LOGS.get()).addTag(ModBlockTags.BAOBAB_LOGS.get());
4349
tag(BlockTags.PLANKS).add(ModBlocks.AZALEA_PLANKS.get(), ModBlocks.PALM_PLANKS.get(), ModBlocks.BAOBAB_PLANKS.get());
50+
tag(BlockTags.LEAVES).add(ModBlocks.PALM_LEAVES.get(), ModBlocks.BAOBAB_LEAVES.get());
51+
tag(BlockTags.SAPLINGS).add(ModBlocks.PALM_SAPLING.get(), ModBlocks.BAOBAB_SAPLING.get());
4452
ModBlockFamilies.AZALEA_PLANKS.generateBlockTags(this::tag);
4553
ModBlockFamilies.PALM_PLANKS.generateBlockTags(this::tag);
4654
ModBlockFamilies.BAOBAB_PLANKS.generateBlockTags(this::tag);

src/main/java/org/polaris2023/wild_wind/datagen/tag/ModItemTagsProvider.java

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.minecraft.core.HolderLookup;
44
import net.minecraft.data.PackOutput;
55
import net.minecraft.data.tags.ItemTagsProvider;
6+
import net.minecraft.tags.ItemTags;
67
import net.minecraft.tags.TagKey;
78
import net.minecraft.world.item.Item;
89
import net.minecraft.world.item.Items;
@@ -11,6 +12,7 @@
1112
import net.neoforged.neoforge.common.data.ExistingFileHelper;
1213
import org.jetbrains.annotations.Nullable;
1314
import org.polaris2023.wild_wind.WildWindMod;
15+
import org.polaris2023.wild_wind.common.init.ModBlocks;
1416
import org.polaris2023.wild_wind.common.init.ModItems;
1517
import org.polaris2023.wild_wind.common.init.items.foods.ModBaseFoods;
1618
import org.polaris2023.wild_wind.common.init.tags.ModBlockTags;
@@ -81,6 +83,12 @@ protected void addTags(HolderLookup.Provider provider) {
8183
Items.ROTTEN_FLESH
8284
);
8385
this.copy(ModBlockTags.AZALEA_LOGS.get(), ModItemTags.AZALEA_LOGS.get());
86+
this.copy(ModBlockTags.PALM_LOGS.get(), ModItemTags.PALM_LOGS.get());
87+
this.copy(ModBlockTags.BAOBAB_LOGS.get(), ModItemTags.BAOBAB_LOGS.get());
88+
tag(ItemTags.LOGS_THAT_BURN).addTag(ModItemTags.AZALEA_LOGS.get()).addTag(ModItemTags.PALM_LOGS.get()).addTag(ModItemTags.BAOBAB_LOGS.get());
89+
tag(ItemTags.PLANKS).add(ModBlocks.AZALEA_PLANKS_ITEM.get(), ModBlocks.PALM_PLANKS_ITEM.get(), ModBlocks.BAOBAB_PLANKS_ITEM.get());
90+
tag(ItemTags.LEAVES).add(ModBlocks.PALM_LEAVES_ITEM.get(), ModBlocks.BAOBAB_LEAVES_ITEM.get());
91+
tag(ItemTags.SAPLINGS).add(ModBlocks.PALM_SAPLING_ITEM.get(), ModBlocks.BAOBAB_SAPLING_ITEM.get());
8492
ModBlockFamilies.AZALEA_PLANKS.generateItemTags(this::tag);
8593
ModBlockFamilies.PALM_PLANKS.generateItemTags(this::tag);
8694
ModBlockFamilies.BAOBAB_PLANKS.generateItemTags(this::tag);

src/main/resources/META-INF/enumextensions.json

+18
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@
88
"class": "org/polaris2023/wild_wind/common/init/ModEnumExtensions",
99
"field": "WILD_WIND_AZALEA"
1010
}
11+
},
12+
{
13+
"enum": "net/minecraft/world/entity/vehicle/Boat$Type",
14+
"name": "WILD_WIND_PALM",
15+
"constructor": "(Ljava/util/function/Supplier;Ljava/lang/String;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Z)V",
16+
"parameters": {
17+
"class": "org/polaris2023/wild_wind/common/init/ModEnumExtensions",
18+
"field": "WILD_WIND_PALM"
19+
}
20+
},
21+
{
22+
"enum": "net/minecraft/world/entity/vehicle/Boat$Type",
23+
"name": "WILD_WIND_BAOBAB",
24+
"constructor": "(Ljava/util/function/Supplier;Ljava/lang/String;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Z)V",
25+
"parameters": {
26+
"class": "org/polaris2023/wild_wind/common/init/ModEnumExtensions",
27+
"field": "WILD_WIND_BAOBAB"
28+
}
1129
}
1230
]
1331
}

0 commit comments

Comments
 (0)