Skip to content

Commit a62db58

Browse files
Merge branch '1.21' into feat/abstract-furnace-workbench-logic
2 parents a4e45c6 + 55c8057 commit a62db58

73 files changed

Lines changed: 303 additions & 42 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ jobs:
2121
distribution: 'microsoft'
2222
- name: make gradle wrapper executable
2323
run: chmod +x ./gradlew
24+
- name: generate files
25+
run: ./gradlew runDatagen
2426
- name: build
2527
run: ./gradlew build
2628
- name: capture build artifacts
2729
uses: actions/upload-artifact@v4
2830
with:
2931
name: Artifacts
30-
path: build/libs/
32+
path: build/libs/

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ bin/
3131
# fabric
3232

3333
run/
34+
src/main/generated
3435

3536
# java
3637

src/client/java/com/tcm/MineTale/MineTaleClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ public class MineTaleClient implements ClientModInitializer {
2121
public void onInitializeClient() {
2222
MenuScreens.register(ModMenuTypes.FURNACE_WORKBENCH_MENU, FurnaceWorkbenchScreen::new);
2323
MenuScreens.register(ModMenuTypes.CAMPFIRE_WORKBENCH_MENU, CampfireWorkbenchScreen::new);
24+
25+
2426
}
2527
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.tcm.MineTale;
2+
3+
import com.tcm.MineTale.datagen.ModLangProvider;
4+
import com.tcm.MineTale.datagen.ModModelProvider;
5+
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
6+
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
7+
8+
public class MineTaleDataGen implements DataGeneratorEntrypoint {
9+
10+
/**
11+
* Initialize a data pack and register the mod's data providers.
12+
*
13+
* Creates a data pack from the given Fabric data generator and adds the language
14+
* and model providers so they will run during data generation.
15+
*
16+
* @param fabricDataGenerator the Fabric data generator used to create the data pack
17+
*/
18+
@Override
19+
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
20+
FabricDataGenerator.Pack pack = fabricDataGenerator.createPack();
21+
22+
pack.addProvider(ModLangProvider::new);
23+
pack.addProvider(ModModelProvider::new);
24+
}
25+
}

src/client/java/com/tcm/MineTale/datagen/MineTaleDataGen.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/client/java/com/tcm/MineTale/datagen/MineTaleLangProvider.java

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.tcm.MineTale.datagen;
2+
3+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
4+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider;
5+
import net.minecraft.core.HolderLookup;
6+
7+
import java.util.concurrent.CompletableFuture;
8+
9+
public class ModLangProvider extends FabricLanguageProvider {
10+
/**
11+
* Creates a ModLangProvider configured to generate the mod's language translations.
12+
*
13+
* @param dataOutput the FabricDataOutput used to write generated language files
14+
* @param registryLookup a CompletableFuture supplying a HolderLookup.Provider for registry lookups during data generation
15+
*/
16+
public ModLangProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) {
17+
super(dataOutput, registryLookup);
18+
}
19+
20+
/**
21+
* Populates the translation builder with English language entries for MineTale (creative tab title and block names).
22+
*
23+
* @param translationBuilder the builder used to register translation keys and their English values
24+
*/
25+
@Override
26+
public void generateTranslations(HolderLookup.Provider wrapperLookup, TranslationBuilder translationBuilder) {
27+
translationBuilder.add("minetale.creative_tab.title", "MineTale Stuffs");
28+
29+
30+
translationBuilder.add("block.minetale.furnace_workbench_block", "Furnace Workbench");
31+
translationBuilder.add("block.minetale.campfire_workbench_block", "Campfire Workbench");
32+
33+
translationBuilder.add("block.minetale.amber_log", "Amber Log");
34+
translationBuilder.add("block.minetale.ash_log", "Ash Log");
35+
translationBuilder.add("block.minetale.aspen_log", "Aspen Log");
36+
translationBuilder.add("block.minetale.azure_log", "Azure Log");
37+
translationBuilder.add("block.minetale.bamboo_log", "Bamboo Log");
38+
translationBuilder.add("block.minetale.bamboo_log_deco", "Bamboo Log Deco");
39+
translationBuilder.add("block.minetale.banyan_log", "Banyan Log");
40+
translationBuilder.add("block.minetale.beech_log", "Beech Log");
41+
translationBuilder.add("block.minetale.bottletree_log", "Bottletree Log");
42+
translationBuilder.add("block.minetale.burnt_log", "Burnt Log");
43+
translationBuilder.add("block.minetale.camphor_log", "Camphor Log");
44+
translationBuilder.add("block.minetale.cedar_log", "Cedar Log");
45+
translationBuilder.add("block.minetale.crystalwood_log", "Crystalwood Log");
46+
translationBuilder.add("block.minetale.dry_log", "Dry Log");
47+
translationBuilder.add("block.minetale.blue_fig_log", "Blue Fig Log");
48+
translationBuilder.add("block.minetale.fire_log", "Fire Log");
49+
translationBuilder.add("block.minetale.gumboab_log", "Gumboab Log");
50+
translationBuilder.add("block.minetale.ice_log", "Ice Log");
51+
translationBuilder.add("block.minetale.maple_log", "Maple Log");
52+
translationBuilder.add("block.minetale.palm_tree_log", "Palm Tree Log");
53+
translationBuilder.add("block.minetale.palo_log", "Palo Log");
54+
translationBuilder.add("block.minetale.petrified_log", "Petrified Log");
55+
translationBuilder.add("block.minetale.poisoned_log", "Poisoned Log");
56+
translationBuilder.add("block.minetale.redwood_log", "Redwood Log");
57+
translationBuilder.add("block.minetale.sallow_log", "Sallow Log");
58+
translationBuilder.add("block.minetale.spiral_log", "Spiral Log");
59+
translationBuilder.add("block.minetale.stormbark_log", "Stormbark Log");
60+
translationBuilder.add("block.minetale.stripped_log", "Stripped Log");
61+
translationBuilder.add("block.minetale.windwillow_log", "Windwillow Log");
62+
translationBuilder.add("block.minetale.wild_wisteria_log", "Wild Wisteria Log");
63+
translationBuilder.add("block.minetale.wild_wisteria_wood", "Wild Wisteria Wood");
64+
}
65+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.tcm.MineTale.datagen;
2+
3+
import com.tcm.MineTale.registry.ModBlocks;
4+
import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider;
5+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
6+
import net.minecraft.client.data.models.BlockModelGenerators;
7+
import net.minecraft.client.data.models.ItemModelGenerators;
8+
9+
public class ModModelProvider extends FabricModelProvider {
10+
/**
11+
* Creates a ModModelProvider using the given Fabric data output.
12+
*
13+
* @param output the FabricDataOutput used to write generated model and blockstate data
14+
*/
15+
public ModModelProvider(FabricDataOutput output) { super(output); }
16+
17+
/**
18+
* Registers block state and model definitions for the mod's log blocks.
19+
*
20+
* This configures horizontal and vertical log models for each custom log block and, for
21+
* WILD_WISTERIA_LOG, also registers the corresponding wood model (WILD_WISTERIA_WOOD).
22+
*
23+
* @param blockStateModelGenerator the generator used to create block state and model entries
24+
*/
25+
@Override
26+
public void generateBlockStateModels(BlockModelGenerators blockStateModelGenerator) {
27+
blockStateModelGenerator.woodProvider(ModBlocks.AMBER_LOG).logWithHorizontal(ModBlocks.AMBER_LOG);
28+
blockStateModelGenerator.woodProvider(ModBlocks.ASH_LOG).logWithHorizontal(ModBlocks.ASH_LOG);
29+
blockStateModelGenerator.woodProvider(ModBlocks.ASPEN_LOG).logWithHorizontal(ModBlocks.ASPEN_LOG);
30+
blockStateModelGenerator.woodProvider(ModBlocks.AZURE_LOG).logWithHorizontal(ModBlocks.AZURE_LOG);
31+
blockStateModelGenerator.woodProvider(ModBlocks.BAMBOO_LOG).logWithHorizontal(ModBlocks.BAMBOO_LOG);
32+
blockStateModelGenerator.woodProvider(ModBlocks.BAMBOO_LOG_DECO).logWithHorizontal(ModBlocks.BAMBOO_LOG_DECO);
33+
blockStateModelGenerator.woodProvider(ModBlocks.BANYAN_LOG).logWithHorizontal(ModBlocks.BANYAN_LOG);
34+
blockStateModelGenerator.woodProvider(ModBlocks.BEECH_LOG).logWithHorizontal(ModBlocks.BEECH_LOG);
35+
blockStateModelGenerator.woodProvider(ModBlocks.BOTTLETREE_LOG).logWithHorizontal(ModBlocks.BOTTLETREE_LOG);
36+
blockStateModelGenerator.woodProvider(ModBlocks.BURNT_LOG).logWithHorizontal(ModBlocks.BURNT_LOG);
37+
blockStateModelGenerator.woodProvider(ModBlocks.CAMPHOR_LOG).logWithHorizontal(ModBlocks.CAMPHOR_LOG);
38+
blockStateModelGenerator.woodProvider(ModBlocks.CEDAR_LOG).logWithHorizontal(ModBlocks.CEDAR_LOG);
39+
blockStateModelGenerator.woodProvider(ModBlocks.CRYSTALWOOD_LOG).logWithHorizontal(ModBlocks.CRYSTALWOOD_LOG);
40+
blockStateModelGenerator.woodProvider(ModBlocks.DRY_LOG).logWithHorizontal(ModBlocks.DRY_LOG);
41+
blockStateModelGenerator.woodProvider(ModBlocks.BLUE_FIG_LOG).logWithHorizontal(ModBlocks.BLUE_FIG_LOG);
42+
blockStateModelGenerator.woodProvider(ModBlocks.FIRE_LOG).logWithHorizontal(ModBlocks.FIRE_LOG);
43+
blockStateModelGenerator.woodProvider(ModBlocks.GUMBOAB_LOG).logWithHorizontal(ModBlocks.GUMBOAB_LOG);
44+
blockStateModelGenerator.woodProvider(ModBlocks.ICE_LOG).logWithHorizontal(ModBlocks.ICE_LOG);
45+
blockStateModelGenerator.woodProvider(ModBlocks.MAPLE_LOG).logWithHorizontal(ModBlocks.MAPLE_LOG);
46+
blockStateModelGenerator.woodProvider(ModBlocks.PALM_TREE_LOG).logWithHorizontal(ModBlocks.PALM_TREE_LOG);
47+
blockStateModelGenerator.woodProvider(ModBlocks.PALO_LOG).logWithHorizontal(ModBlocks.PALO_LOG);
48+
blockStateModelGenerator.woodProvider(ModBlocks.PETRIFIED_LOG).logWithHorizontal(ModBlocks.PETRIFIED_LOG);
49+
blockStateModelGenerator.woodProvider(ModBlocks.POISONED_LOG).logWithHorizontal(ModBlocks.POISONED_LOG);
50+
blockStateModelGenerator.woodProvider(ModBlocks.REDWOOD_LOG).logWithHorizontal(ModBlocks.REDWOOD_LOG);
51+
blockStateModelGenerator.woodProvider(ModBlocks.SALLOW_LOG).logWithHorizontal(ModBlocks.SALLOW_LOG);
52+
blockStateModelGenerator.woodProvider(ModBlocks.SPIRAL_LOG).logWithHorizontal(ModBlocks.SPIRAL_LOG);
53+
blockStateModelGenerator.woodProvider(ModBlocks.STORMBARK_LOG).logWithHorizontal(ModBlocks.STORMBARK_LOG);
54+
blockStateModelGenerator.woodProvider(ModBlocks.STRIPPED_LOG).logWithHorizontal(ModBlocks.STRIPPED_LOG);
55+
blockStateModelGenerator.woodProvider(ModBlocks.WINDWILLOW_LOG).logWithHorizontal(ModBlocks.WINDWILLOW_LOG);
56+
blockStateModelGenerator.woodProvider(ModBlocks.WILD_WISTERIA_LOG).logWithHorizontal(ModBlocks.WILD_WISTERIA_LOG).wood(ModBlocks.WILD_WISTERIA_WOOD);
57+
}
58+
59+
/**
60+
* Registers item models for the mod; currently left empty (no item models are generated).
61+
*
62+
* @param itemModelGenerators generator used to register item models
63+
*/
64+
@Override
65+
public void generateItemModels(ItemModelGenerators itemModelGenerators) {
66+
67+
}
68+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.tcm.MineTale.datagen;
2+
3+
import com.tcm.MineTale.registry.ModBlocks;
4+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
5+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
6+
import net.minecraft.core.HolderLookup;
7+
import net.minecraft.tags.BlockTags;
8+
9+
import java.util.concurrent.CompletableFuture;
10+
11+
public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
12+
/**
13+
* Creates a ModBlockTagProvider used to generate block tag data for the mod (e.g., assigning mod log blocks to BlockTags.LOGS).
14+
*
15+
* @param output the Fabric data output target used to write generated data
16+
* @param registriesFuture a future that supplies registry lookups required during data generation
17+
*/
18+
public ModBlockTagProvider(FabricDataOutput output, CompletableFuture<HolderLookup.Provider> registriesFuture) {
19+
super(output, registriesFuture);
20+
}
21+
22+
/**
23+
* Populates the BlockTags.LOGS tag with this mod's log blocks.
24+
*
25+
* Registers each mod-defined log block so they are included in the game's LOGS tag mapping.
26+
*
27+
* @param provider a registry lookup provider used to resolve holders during tag population
28+
*/
29+
@Override
30+
protected void addTags(HolderLookup.Provider provider) {
31+
valueLookupBuilder(BlockTags.LOGS)
32+
.add(ModBlocks.AMBER_LOG)
33+
.add(ModBlocks.ASH_LOG)
34+
.add(ModBlocks.ASPEN_LOG)
35+
.add(ModBlocks.AZURE_LOG)
36+
.add(ModBlocks.BAMBOO_LOG)
37+
.add(ModBlocks.BAMBOO_LOG_DECO)
38+
.add(ModBlocks.BANYAN_LOG)
39+
.add(ModBlocks.BEECH_LOG)
40+
.add(ModBlocks.BOTTLETREE_LOG)
41+
.add(ModBlocks.BURNT_LOG)
42+
.add(ModBlocks.CAMPHOR_LOG)
43+
.add(ModBlocks.CEDAR_LOG)
44+
.add(ModBlocks.CRYSTALWOOD_LOG)
45+
.add(ModBlocks.DRY_LOG)
46+
.add(ModBlocks.BLUE_FIG_LOG)
47+
.add(ModBlocks.FIRE_LOG)
48+
.add(ModBlocks.GUMBOAB_LOG)
49+
.add(ModBlocks.ICE_LOG)
50+
.add(ModBlocks.MAPLE_LOG)
51+
.add(ModBlocks.PALM_TREE_LOG)
52+
.add(ModBlocks.PALO_LOG)
53+
.add(ModBlocks.PETRIFIED_LOG)
54+
.add(ModBlocks.POISONED_LOG)
55+
.add(ModBlocks.REDWOOD_LOG)
56+
.add(ModBlocks.SALLOW_LOG)
57+
.add(ModBlocks.SPIRAL_LOG)
58+
.add(ModBlocks.STORMBARK_LOG)
59+
.add(ModBlocks.STRIPPED_LOG)
60+
.add(ModBlocks.WINDWILLOW_LOG)
61+
.add(ModBlocks.WILD_WISTERIA_LOG);
62+
}
63+
}

src/main/java/com/tcm/MineTale/datagen/ModDataGenerator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66
public class ModDataGenerator implements DataGeneratorEntrypoint {
77

88
/**
9-
* Initializes data generation by creating a new data pack and registering recipe providers.
9+
* Sets up data generation by creating a data pack and registering providers for recipes and block tags.
1010
*
11-
* Creates a FabricDataGenerator.Pack from the provided generator and registers
12-
* ModRecipeProvider as a provider for that pack.
11+
* Registers ModRecipeProvider and ModBlockTagProvider with the created pack.
1312
*
14-
* @param fabricDataGenerator the FabricDataGenerator used to create packs and register providers
13+
* @param fabricDataGenerator the FabricDataGenerator used to create data packs and register providers
1514
*/
1615
@Override
1716
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
1817
FabricDataGenerator.Pack pack = fabricDataGenerator.createPack();
1918

2019
pack.addProvider(ModRecipeProvider::new);
20+
pack.addProvider(ModBlockTagProvider::new);
2121
}
2222

2323
}

0 commit comments

Comments
 (0)