[add] DataGenerators
This commit is contained in:
@@ -58,7 +58,7 @@ public class Masterwild {
|
|||||||
// You can use SubscribeEvent and let the Event Bus discover methods to call
|
// You can use SubscribeEvent and let the Event Bus discover methods to call
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onServerStarting(ServerStartingEvent event) {
|
public void onServerStarting(ServerStartingEvent event) {
|
||||||
LOGGER.info("yipi you installed MasterWild :3");
|
LOGGER.info("[SERVER] yipi you installed MasterWild :3");
|
||||||
}
|
}
|
||||||
|
|
||||||
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
|
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
|
||||||
@@ -66,7 +66,7 @@ public class Masterwild {
|
|||||||
public static class ClientModEvents {
|
public static class ClientModEvents {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onClientSetup(FMLClientSetupEvent event) {
|
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||||
LOGGER.info("yipi you installed MasterWild :3");
|
LOGGER.info("[CLIENT] yipi you installed MasterWild :3");
|
||||||
|
|
||||||
EntityRenderers.register(ModEntities.PINGUIN.get(), PinguinRenderer::new);
|
EntityRenderers.register(ModEntities.PINGUIN.get(), PinguinRenderer::new);
|
||||||
EntityRenderers.register(ModEntities.FIREFLY.get(), FireflyRenderer::new);
|
EntityRenderers.register(ModEntities.FIREFLY.get(), FireflyRenderer::new);
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.DataGenerator;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.data.loot.LootTableProvider;
|
||||||
|
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||||
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
|
import net.neoforged.neoforge.common.data.BlockTagsProvider;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import net.neoforged.neoforge.data.event.GatherDataEvent;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
@EventBusSubscriber(modid = Masterwild.MODID, bus = EventBusSubscriber.Bus.MOD)
|
||||||
|
public class DataGenerators {
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void gatherData(GatherDataEvent event) {
|
||||||
|
DataGenerator generator = event.getGenerator();
|
||||||
|
PackOutput packOutput = generator.getPackOutput();
|
||||||
|
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
|
||||||
|
CompletableFuture<HolderLookup.Provider> lookupProvider = event.getLookupProvider();
|
||||||
|
|
||||||
|
generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(),
|
||||||
|
List.of(new LootTableProvider.SubProviderEntry(ModBlockLootTableProvider::new, LootContextParamSets.BLOCK)), lookupProvider));
|
||||||
|
generator.addProvider(event.includeServer(), new ModRecipeProvider(packOutput, lookupProvider));
|
||||||
|
|
||||||
|
BlockTagsProvider blockTagsProvider = new ModBlockTagProvider(packOutput, lookupProvider, existingFileHelper);
|
||||||
|
generator.addProvider(event.includeServer(), blockTagsProvider);
|
||||||
|
generator.addProvider(event.includeServer(), new ModItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper));
|
||||||
|
|
||||||
|
generator.addProvider(event.includeServer(), new ModDataMapProvider(packOutput, lookupProvider));
|
||||||
|
|
||||||
|
|
||||||
|
generator.addProvider(event.includeClient(), new ModItemModelProvider(packOutput, existingFileHelper));
|
||||||
|
generator.addProvider(event.includeClient(), new ModBlockStateProvider(packOutput, existingFileHelper));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.data.loot.BlockLootSubProvider;
|
||||||
|
import net.minecraft.world.flag.FeatureFlags;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.enchantment.Enchantment;
|
||||||
|
import net.minecraft.world.item.enchantment.Enchantments;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.storage.loot.LootTable;
|
||||||
|
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||||
|
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||||
|
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||||
|
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||||
|
import ovh.glitchlabs.masterwild.Block.ModBlocks;
|
||||||
|
import ovh.glitchlabs.masterwild.Item.ModItems;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class ModBlockLootTableProvider extends BlockLootSubProvider {
|
||||||
|
protected ModBlockLootTableProvider(HolderLookup.Provider registries) {
|
||||||
|
super(Set.of(), FeatureFlags.REGISTRY.allFlags(), registries);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void generate() {
|
||||||
|
/*
|
||||||
|
dropSelf(ModBlocks.BISMUTH_BLOCK.get());
|
||||||
|
// dropSelf(ModBlocks.MAGIC_BLOCK.get());
|
||||||
|
|
||||||
|
add(ModBlocks.BISMUTH_ORE.get(),
|
||||||
|
block -> createOreDrop(ModBlocks.BISMUTH_ORE.get(), ModItems.RAW_BISMUTH.get()));
|
||||||
|
add(ModBlocks.BISMUTH_DEEPSLATE_ORE.get(),
|
||||||
|
block -> createMultipleOreDrops(ModBlocks.BISMUTH_DEEPSLATE_ORE.get(), ModItems.RAW_BISMUTH.get(), 2, 5));
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected LootTable.Builder createMultipleOreDrops(Block pBlock, Item item, float minDrops, float maxDrops) {
|
||||||
|
HolderLookup.RegistryLookup<Enchantment> registrylookup = this.registries.lookupOrThrow(Registries.ENCHANTMENT);
|
||||||
|
return this.createSilkTouchDispatchTable(pBlock,
|
||||||
|
this.applyExplosionDecay(pBlock, LootItem.lootTableItem(item)
|
||||||
|
.apply(SetItemCountFunction.setCount(UniformGenerator.between(minDrops, maxDrops)))
|
||||||
|
.apply(ApplyBonusCount.addOreBonusCount(registrylookup.getOrThrow(Enchantments.FORTUNE)))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Iterable<Block> getKnownBlocks() {
|
||||||
|
return ModBlocks.BLOCKS.getEntries().stream().map(Holder::value)::iterator;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.neoforged.neoforge.client.model.generators.BlockStateProvider;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredBlock;
|
||||||
|
import ovh.glitchlabs.masterwild.Block.ModBlocks;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
public class ModBlockStateProvider extends BlockStateProvider {
|
||||||
|
public ModBlockStateProvider(PackOutput output, ExistingFileHelper exFileHelper) {
|
||||||
|
super(output, Masterwild.MODID, exFileHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void registerStatesAndModels() {
|
||||||
|
// blockWithItem(ModBlocks.BISMUTH_BLOCK);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void blockWithItem(DeferredBlock<?> deferredBlock) {
|
||||||
|
simpleBlockWithItem(deferredBlock.get(), cubeAll(deferredBlock.get()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.tags.BlockTags;
|
||||||
|
import net.neoforged.neoforge.common.data.BlockTagsProvider;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import ovh.glitchlabs.masterwild.Block.ModBlocks;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class ModBlockTagProvider extends BlockTagsProvider {
|
||||||
|
public ModBlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, @Nullable ExistingFileHelper existingFileHelper) {
|
||||||
|
super(output, lookupProvider, Masterwild.MODID, existingFileHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addTags(HolderLookup.Provider provider) {
|
||||||
|
tag(BlockTags.MINEABLE_WITH_PICKAXE)
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.neoforged.neoforge.common.data.DataMapProvider;
|
||||||
|
import net.neoforged.neoforge.registries.datamaps.builtin.FurnaceFuel;
|
||||||
|
import net.neoforged.neoforge.registries.datamaps.builtin.NeoForgeDataMaps;
|
||||||
|
import ovh.glitchlabs.masterwild.Item.ModItems;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class ModDataMapProvider extends DataMapProvider {
|
||||||
|
protected ModDataMapProvider(PackOutput packOutput, CompletableFuture<HolderLookup.Provider> lookupProvider) {
|
||||||
|
super(packOutput, lookupProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void gather() {
|
||||||
|
this.builder(NeoForgeDataMaps.FURNACE_FUELS)
|
||||||
|
//.add(ModItems.STARLIGHT_ASHES.getId(), new FurnaceFuel(1200), false)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.neoforged.neoforge.client.model.generators.ItemModelProvider;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import ovh.glitchlabs.masterwild.Item.ModItems;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
public class ModItemModelProvider extends ItemModelProvider {
|
||||||
|
public ModItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
|
||||||
|
super(output, Masterwild.MODID, existingFileHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void registerModels() {
|
||||||
|
//basicItem(ModItems.BISMUTH.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.data.tags.ItemTagsProvider;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.neoforged.neoforge.common.data.ExistingFileHelper;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import ovh.glitchlabs.masterwild.Item.ModItems;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
|
public ModItemTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider,
|
||||||
|
CompletableFuture<TagLookup<Block>> blockTags, @Nullable ExistingFileHelper existingFileHelper) {
|
||||||
|
super(output, lookupProvider, blockTags, Masterwild.MODID, existingFileHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addTags(HolderLookup.Provider provider) {
|
||||||
|
//tag(ModTags.Items.TRANSFORMABLE_ITEMS);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package ovh.glitchlabs.masterwild.datagen;
|
||||||
|
|
||||||
|
import net.minecraft.core.HolderLookup;
|
||||||
|
import net.minecraft.data.PackOutput;
|
||||||
|
import net.minecraft.data.recipes.*;
|
||||||
|
import net.minecraft.world.item.crafting.*;
|
||||||
|
import net.minecraft.world.level.ItemLike;
|
||||||
|
import net.neoforged.neoforge.common.conditions.IConditionBuilder;
|
||||||
|
import ovh.glitchlabs.masterwild.Block.ModBlocks;
|
||||||
|
import ovh.glitchlabs.masterwild.Item.ModItems;
|
||||||
|
import ovh.glitchlabs.masterwild.Masterwild;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class ModRecipeProvider extends RecipeProvider implements IConditionBuilder {
|
||||||
|
public ModRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
|
||||||
|
super(output, registries);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void buildRecipes(RecipeOutput recipeOutput) {
|
||||||
|
|
||||||
|
/*
|
||||||
|
List<ItemLike> BISMUTH_SMELTABLES = List.of(ModItems.RAW_BISMUTH,
|
||||||
|
ModBlocks.BISMUTH_ORE, ModBlocks.BISMUTH_DEEPSLATE_ORE);
|
||||||
|
|
||||||
|
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.BISMUTH_BLOCK.get())
|
||||||
|
.pattern("BBB")
|
||||||
|
.pattern("BBB")
|
||||||
|
.pattern("BBB")
|
||||||
|
.define('B', ModItems.BISMUTH.get())
|
||||||
|
.unlockedBy("has_bismuth", has(ModItems.BISMUTH)).save(recipeOutput);
|
||||||
|
|
||||||
|
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.BISMUTH.get(), 9)
|
||||||
|
.requires(ModBlocks.BISMUTH_BLOCK)
|
||||||
|
.unlockedBy("has_bismuth_block", has(ModBlocks.BISMUTH_BLOCK)).save(recipeOutput);
|
||||||
|
|
||||||
|
oreSmelting(recipeOutput, BISMUTH_SMELTABLES, RecipeCategory.MISC, ModItems.BISMUTH.get(), 0.25f, 200, "bismuth");
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void oreSmelting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
|
||||||
|
float pExperience, int pCookingTIme, String pGroup) {
|
||||||
|
oreCooking(recipeOutput, RecipeSerializer.SMELTING_RECIPE, SmeltingRecipe::new, pIngredients, pCategory, pResult,
|
||||||
|
pExperience, pCookingTIme, pGroup, "_from_smelting");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static void oreBlasting(RecipeOutput recipeOutput, List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult,
|
||||||
|
float pExperience, int pCookingTime, String pGroup) {
|
||||||
|
oreCooking(recipeOutput, RecipeSerializer.BLASTING_RECIPE, BlastingRecipe::new, pIngredients, pCategory, pResult,
|
||||||
|
pExperience, pCookingTime, pGroup, "_from_blasting");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static <T extends AbstractCookingRecipe> void oreCooking(RecipeOutput recipeOutput, RecipeSerializer<T> pCookingSerializer, AbstractCookingRecipe.Factory<T> factory,
|
||||||
|
List<ItemLike> pIngredients, RecipeCategory pCategory, ItemLike pResult, float pExperience, int pCookingTime, String pGroup, String pRecipeName) {
|
||||||
|
for(ItemLike itemlike : pIngredients) {
|
||||||
|
SimpleCookingRecipeBuilder.generic(Ingredient.of(itemlike), pCategory, pResult, pExperience, pCookingTime, pCookingSerializer, factory).group(pGroup).unlockedBy(getHasName(itemlike), has(itemlike))
|
||||||
|
.save(recipeOutput, Masterwild.MODID + ":" + getItemName(pResult) + pRecipeName + "_" + getItemName(itemlike));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user