Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 73 additions & 12 deletions src/client/java/com/tcm/MineTale/datagen/ModLangProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,17 @@
import java.util.concurrent.CompletableFuture;

public class ModLangProvider extends FabricLanguageProvider {
/**
* Creates a ModLangProvider configured to generate the mod's language translations.
*
* @param dataOutput the FabricDataOutput used to write generated language files
* @param registryLookup a CompletableFuture supplying a HolderLookup.Provider for registry lookups during data generation
*/

public ModLangProvider(FabricDataOutput dataOutput, CompletableFuture<HolderLookup.Provider> registryLookup) {
super(dataOutput, registryLookup);
}

/**
* Populates the translation builder with English language entries for MineTale (creative tab title and block names).
*
* @param translationBuilder the builder used to register translation keys and their English values
*/
@Override
public void generateTranslations(HolderLookup.Provider wrapperLookup, TranslationBuilder translationBuilder) {
translationBuilder.add("minetale.creative_tab.title", "MineTale Stuffs");


// --- BLOCKS ---
translationBuilder.add("block.minetale.workbench_workbench_block", "Workbench");
translationBuilder.add("block.minetale.furnace_workbench_block_t1", "Furnace Workbench - Tier One");
translationBuilder.add("block.minetale.furnace_workbench_block_t2", "Furnace Workbench - Tier Two");
translationBuilder.add("block.minetale.campfire_workbench_block", "Campfire Workbench");
Expand Down Expand Up @@ -62,5 +53,75 @@ public void generateTranslations(HolderLookup.Provider wrapperLookup, Translatio
translationBuilder.add("block.minetale.windwillow_log", "Windwillow Log");
translationBuilder.add("block.minetale.wild_wisteria_log", "Wild Wisteria Log");
translationBuilder.add("block.minetale.wild_wisteria_wood", "Wild Wisteria Wood");

// --- NATURAL MATERIALS & GATHERABLES ---
translationBuilder.add("item.minetale.plant_fiber", "Plant Fiber");
translationBuilder.add("item.minetale.tree_sap", "Tree Sap");
translationBuilder.add("item.minetale.sap_glob", "Sap Glob");
translationBuilder.add("item.minetale.rubble", "Rubble");
translationBuilder.add("item.minetale.tree_bark", "Tree Bark");
translationBuilder.add("item.minetale.moss", "Moss");
translationBuilder.add("item.minetale.blue_crystal_shards", "Blue Crystal Shards");
translationBuilder.add("item.minetale.green_crystal_shards", "Green Crystal Shards");
translationBuilder.add("item.minetale.yellow_crystal_shards", "Yellow Crystal Shards");

// --- MINERALS & REFINED METALS ---
translationBuilder.add("item.minetale.thorium_ingot", "Thorium Ingot");
translationBuilder.add("item.minetale.cobalt_ingot", "Cobalt Ingot");
translationBuilder.add("item.minetale.adamantite_ingot", "Adamantite Ingot");
translationBuilder.add("item.minetale.mithril_ingot", "Mithril Ingot");
translationBuilder.add("item.minetale.bronze_ingot", "Bronze Ingot");
translationBuilder.add("item.minetale.steel_ingot", "Steel Ingot");

// --- MOB DROPS, HIDES & LEATHERS ---
translationBuilder.add("item.minetale.light_hide", "Light Hide");
translationBuilder.add("item.minetale.medium_hide", "Medium Hide");
translationBuilder.add("item.minetale.heavy_hide", "Heavy Hide");
translationBuilder.add("item.minetale.soft_hide", "Soft Hide");
translationBuilder.add("item.minetale.prismatic_hide", "Prismatic Hide");
translationBuilder.add("item.minetale.light_leather", "Light Leather");
translationBuilder.add("item.minetale.medium_leather", "Medium Leather");
translationBuilder.add("item.minetale.heavy_leather", "Heavy Leather");
translationBuilder.add("item.minetale.storm_leather", "Storm Leather");
translationBuilder.add("item.minetale.prismatic_leather", "Prismatic Leather");
translationBuilder.add("item.minetale.feran_rib", "Feran Rib");
translationBuilder.add("item.minetale.sturdy_chitin", "Sturdy Chitin");
translationBuilder.add("item.minetale.venom_sac", "Venom Sac");
translationBuilder.add("item.minetale.bone_fragment", "Bone Fragment");

// --- FABRICS & TEXTILES ---
translationBuilder.add("item.minetale.linen_scraps", "Linen Scraps");
translationBuilder.add("item.minetale.bolt_of_linen", "Bolt of Linen");
translationBuilder.add("item.minetale.shadoweave_scraps", "Shadoweave Scraps");
translationBuilder.add("item.minetale.cindercloth_scraps", "Cindercloth Scraps");
translationBuilder.add("item.minetale.bolt_of_wool", "Bolt of Wool");
translationBuilder.add("item.minetale.yellow_cloth", "Yellow Cloth");

// --- SEEDS & FARMING ---
translationBuilder.add("item.minetale.lettuce", "Lettuce");
translationBuilder.add("item.minetale.chilli_seed_bag", "Chilli Seed Bag");
translationBuilder.add("item.minetale.chilli_seed_bag_eternal", "Eternal Chilli Seed Bag");
translationBuilder.add("item.minetale.sunflower_seed_bag", "Sunflower Seed Bag");
translationBuilder.add("item.minetale.corn_seed_bag", "Corn Seed Bag");
translationBuilder.add("item.minetale.cotton_seed_bag", "Cotton Seed Bag");
translationBuilder.add("item.minetale.rice_seed_bag", "Rice Seed Bag");
translationBuilder.add("item.minetale.onion_bulb", "Onion Bulb");

// --- MAGICAL & ALCHEMICAL ---
translationBuilder.add("item.minetale.essence_of_life", "Essence of Life");
translationBuilder.add("item.minetale.essence_of_fire", "Essence of Fire");
translationBuilder.add("item.minetale.essence_of_ice", "Essence of Ice");
translationBuilder.add("item.minetale.essence_of_the_void", "Essence of the Void");
translationBuilder.add("item.minetale.void_heart", "Void Heart");

// --- FLORA COMPONENTS ---
translationBuilder.add("item.minetale.red_petals", "Red Petals");
translationBuilder.add("item.minetale.yellow_petals", "Yellow Petals");
translationBuilder.add("item.minetale.green_petals", "Green Petals");
translationBuilder.add("item.minetale.white_petals", "White Petals");
translationBuilder.add("item.minetale.azure_petals", "Azure Petals");
translationBuilder.add("item.minetale.storm_petals", "Storm Petals");
translationBuilder.add("item.minetale.blood_petals", "Blood Petals");
translationBuilder.add("item.minetale.cyan_petals", "Cyan Petals");
}
}
93 changes: 88 additions & 5 deletions src/main/java/com/tcm/MineTale/registry/ModItems.java
Original file line number Diff line number Diff line change
@@ -1,32 +1,115 @@
package com.tcm.MineTale.registry;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;

import com.tcm.MineTale.MineTale;
import com.tcm.MineTale.item.ModCreativeTab;

import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.Item;

public class ModItems {

private static final List<Item> REGISTERED_ITEMS = new ArrayList<>();

public static void initialize() {
System.out.println("Registered Mod Items for " + MineTale.MOD_ID);
ItemGroupEvents.modifyEntriesEvent(ModCreativeTab.MINETALE_CREATIVE_TAB_KEY).register(entries -> {
REGISTERED_ITEMS.forEach(entries::accept);
});
}

// --- NATURAL MATERIALS & GATHERABLES ---
public static final Item PLANT_FIBER = register("plant_fiber", Item::new, new Item.Properties());
public static final Item TREE_SAP = register("tree_sap", Item::new, new Item.Properties());
public static final Item SAP_GLOB = register("sap_glob", Item::new, new Item.Properties());
public static final Item RUBBLE = register("rubble", Item::new, new Item.Properties());
public static final Item TREE_BARK = register("tree_bark", Item::new, new Item.Properties());
public static final Item MOSS = register("moss", Item::new, new Item.Properties());
public static final Item BLUE_CRYSTAL_SHARDS = register("blue_crystal_shards", Item::new, new Item.Properties());
public static final Item GREEN_CRYSTAL_SHARDS = register("green_crystal_shards", Item::new, new Item.Properties());
public static final Item YELLOW_CRYSTAL_SHARDS = register("yellow_crystal_shards", Item::new, new Item.Properties());

// --- MINERALS & REFINED METALS (Unique to Hytale) ---
public static final Item THORIUM_INGOT = register("thorium_ingot", Item::new, new Item.Properties());
public static final Item COBALT_INGOT = register("cobalt_ingot", Item::new, new Item.Properties());
public static final Item ADAMANTITE_INGOT = register("adamantite_ingot", Item::new, new Item.Properties());
public static final Item MITHRIL_INGOT = register("mithril_ingot", Item::new, new Item.Properties());
public static final Item BRONZE_INGOT = register("bronze_ingot", Item::new, new Item.Properties());
public static final Item STEEL_INGOT = register("steel_ingot", Item::new, new Item.Properties());

// --- MOB DROPS, HIDES & LEATHERS ---
public static final Item LIGHT_HIDE = register("light_hide", Item::new, new Item.Properties());
public static final Item MEDIUM_HIDE = register("medium_hide", Item::new, new Item.Properties());
public static final Item HEAVY_HIDE = register("heavy_hide", Item::new, new Item.Properties());
public static final Item SOFT_HIDE = register("soft_hide", Item::new, new Item.Properties());
public static final Item PRISMATIC_HIDE = register("prismatic_hide", Item::new, new Item.Properties());

public static final Item LIGHT_LEATHER = register("light_leather", Item::new, new Item.Properties());
public static final Item MEDIUM_LEATHER = register("medium_leather", Item::new, new Item.Properties());
public static final Item HEAVY_LEATHER = register("heavy_leather", Item::new, new Item.Properties());
public static final Item STORM_LEATHER = register("storm_leather", Item::new, new Item.Properties());
public static final Item PRISMATIC_LEATHER = register("prismatic_leather", Item::new, new Item.Properties());

public static final Item FERAN_RIB = register("feran_rib", Item::new, new Item.Properties());
public static final Item STURDY_CHITIN = register("sturdy_chitin", Item::new, new Item.Properties());
public static final Item VENOM_SAC = register("venom_sac", Item::new, new Item.Properties());
public static final Item BONE_FRAGMENT = register("bone_fragment", Item::new, new Item.Properties());

// --- FABRICS & TEXTILES ---
public static final Item LINEN_SCRAPS = register("linen_scraps", Item::new, new Item.Properties());
public static final Item BOLT_OF_LINEN = register("bolt_of_linen", Item::new, new Item.Properties());
public static final Item SHADOWEAVE_SCRAPS = register("shadoweave_scraps", Item::new, new Item.Properties());
public static final Item CINDERCLOTH_SCRAPS = register("cindercloth_scraps", Item::new, new Item.Properties());
public static final Item BOLT_OF_WOOL = register("bolt_of_wool", Item::new, new Item.Properties());
public static final Item YELLOW_CLOTH = register("yellow_cloth", Item::new, new Item.Properties());

// --- SEEDS & FARMING (Bags and Bulbs) ---
public static final Item LETTUCE = register("lettuce", Item::new, new Item.Properties().food(
new FoodProperties.Builder().nutrition(2).saturationModifier(0.3f).build()
));
public static final Item CHILLI_SEED_BAG = register("chilli_seed_bag", Item::new, new Item.Properties());
public static final Item CHILLI_SEED_BAG_ETERNAL = register("chilli_seed_bag_eternal", Item::new, new Item.Properties());
public static final Item SUNFLOWER_SEED_BAG = register("sunflower_seed_bag", Item::new, new Item.Properties());
public static final Item CORN_SEED_BAG = register("corn_seed_bag", Item::new, new Item.Properties());
public static final Item COTTON_SEED_BAG = register("cotton_seed_bag", Item::new, new Item.Properties());
public static final Item RICE_SEED_BAG = register("rice_seed_bag", Item::new, new Item.Properties());
public static final Item ONION_BULB = register("onion_bulb", Item::new, new Item.Properties());

// --- MAGICAL & ALCHEMICAL ---
public static final Item ESSENCE_OF_LIFE = register("essence_of_life", Item::new, new Item.Properties());
public static final Item ESSENCE_OF_FIRE = register("essence_of_fire", Item::new, new Item.Properties());
public static final Item ESSENCE_OF_ICE = register("essence_of_ice", Item::new, new Item.Properties());
public static final Item ESSENCE_OF_THE_VOID = register("essence_of_the_void", Item::new, new Item.Properties());
public static final Item VOID_HEART = register("void_heart", Item::new, new Item.Properties());

// --- FLORA COMPONENTS (Non-placeable petals) ---
public static final Item RED_PETALS = register("red_petals", Item::new, new Item.Properties());
public static final Item YELLOW_PETALS = register("yellow_petals", Item::new, new Item.Properties());
public static final Item GREEN_PETALS = register("green_petals", Item::new, new Item.Properties());
public static final Item WHITE_PETALS = register("white_petals", Item::new, new Item.Properties());
public static final Item AZURE_PETALS = register("azure_petals", Item::new, new Item.Properties());
public static final Item STORM_PETALS = register("storm_petals", Item::new, new Item.Properties());
public static final Item BLOOD_PETALS = register("blood_petals", Item::new, new Item.Properties());
public static final Item CYAN_PETALS = register("cyan_petals", Item::new, new Item.Properties());

// --- REGISTRATION LOGIC ---
public static <GenericItem extends Item> GenericItem register(String name, Function<Item.Properties, GenericItem> itemFactory, Item.Properties settings) {
// Create the item key.
ResourceKey<Item> itemKey = ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(MineTale.MOD_ID, name));

// Create the item instance.
GenericItem item = itemFactory.apply(settings.setId(itemKey));

// Register the item.
Registry.register(BuiltInRegistries.ITEM, itemKey, item);

// 4. ADD TO CREATIVE TAB AUTOMATICALLY
REGISTERED_ITEMS.add(item);

return item;
}
}