Add datagen
This commit is contained in:
parent
e565bbf78c
commit
6375971cfa
19 changed files with 228 additions and 5 deletions
7
src/generated/resources/.cache/cache
Normal file
7
src/generated/resources/.cache/cache
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
b61bd40379af029dc4a8918675a5340d82eb9614 assets/enchantrium/blockstates/enchanter.json
|
||||
12c47b4ceba86e32ead7ed95c8cf1ebdf6097490 assets/enchantrium/lang/en_us.json
|
||||
612cfe324c0a8f894098e57a492a11ea7a7af881 assets/enchantrium/models/block/enchanter.json
|
||||
b3795796d7640d926777c42c84f36a561511f981 assets/enchantrium/models/item/enchanter.json
|
||||
b5996790803bc6c5aa9e19868571b94ff2770cc8 assets/enchantrium/models/item/test_item.json
|
||||
0dfde33a6966e8ce59687aa186ad4ae43952e3cc data/enchantrium/advancements/recipes/enchantrium/enchanter.json
|
||||
2feeac4086afc49c70948894d952479c375c10e3 data/enchantrium/recipes/enchanter.json
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "enchantrium:block/enchanter"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"block.enchantrium.enchanter": "Enchanter",
|
||||
"item.enchantrium.test_item": "Test Item :)",
|
||||
"itemGroup.enchantrium": "Enchantrium"
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"parent": "minecraft:block/cube",
|
||||
"textures": {
|
||||
"down": "enchantrium:block/enchanter_side",
|
||||
"up": "enchantrium:block/enchanter_top",
|
||||
"north": "enchantrium:block/enchanter_side",
|
||||
"south": "enchantrium:block/enchanter_side",
|
||||
"east": "enchantrium:block/enchanter_side",
|
||||
"west": "enchantrium:block/enchanter_side"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "enchantrium:block/enchanter"
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "enchantrium:item/test_item"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"enchantrium:enchanter"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"enchanting": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"minecraft:enchanting_table"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "enchantrium:enchanter"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"enchanting",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"xxx",
|
||||
"x#x",
|
||||
"#y#"
|
||||
],
|
||||
"key": {
|
||||
"x": {
|
||||
"tag": "forge:gems/diamond"
|
||||
},
|
||||
"#": {
|
||||
"tag": "forge:storage_blocks/copper"
|
||||
},
|
||||
"y": {
|
||||
"item": "minecraft:enchanting_table"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "enchantrium:enchanter"
|
||||
}
|
||||
}
|
||||
|
|
@ -28,9 +28,7 @@ public class ModBlocks {
|
|||
public static final DeferredRegister<Block> BLOCKS =
|
||||
DeferredRegister.create(ForgeRegistries.BLOCKS, Enchantrium.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Block> ENCHANTER = registerBlock("enchanter",
|
||||
() -> new EnchanterBlock(BlockBehaviour.Properties.copy(Blocks.ENCHANTING_TABLE).noOcclusion())
|
||||
);
|
||||
public static final RegistryObject<Block> ENCHANTER = registerBlockWithoutBlockItem("enchanter", EnchanterBlock::new);
|
||||
|
||||
private static <T extends Block> RegistryObject<T> registerBlockWithoutBlockItem(String name, Supplier<T> block) {
|
||||
return BLOCKS.register(name, block);
|
||||
|
|
|
|||
|
|
@ -9,9 +9,11 @@ import net.minecraft.world.level.Level;
|
|||
import net.minecraft.world.level.block.BaseEntityBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraftforge.network.NetworkHooks;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -19,8 +21,8 @@ import org.jetbrains.annotations.Nullable;
|
|||
import xyz.nuark.enchantrium.block.entity.custom.EnchanterBlockEntity;
|
||||
|
||||
public class EnchanterBlock extends BaseEntityBlock {
|
||||
public EnchanterBlock(BlockBehaviour.Properties properties) {
|
||||
super(properties);
|
||||
public EnchanterBlock() {
|
||||
super(BlockBehaviour.Properties.of(Material.STONE).strength(2f).lightLevel((p_187435_) -> 14).sound(SoundType.STONE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package xyz.nuark.enchantrium.datagen;
|
||||
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraftforge.client.model.generators.BlockStateProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import xyz.nuark.enchantrium.Enchantrium;
|
||||
import xyz.nuark.enchantrium.block.ModBlocks;
|
||||
|
||||
public class BlockStatesGenerator extends BlockStateProvider {
|
||||
public BlockStatesGenerator(DataGenerator gen, ExistingFileHelper exFileHelper) {
|
||||
super(gen, Enchantrium.MOD_ID, exFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
registerEnchanter();
|
||||
}
|
||||
|
||||
private void registerEnchanter() {
|
||||
var block = ModBlocks.ENCHANTER.get();
|
||||
var side = modLoc("block/enchanter_side");
|
||||
var top = modLoc("block/enchanter_top");
|
||||
simpleBlock(block, models().cube(block.getRegistryName().getPath(), side, top, side, side, side, side));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package xyz.nuark.enchantrium.datagen;
|
||||
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
|
||||
import xyz.nuark.enchantrium.Enchantrium;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = Enchantrium.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class DataGenerators {
|
||||
@SubscribeEvent
|
||||
public static void gatherData(GatherDataEvent event) {
|
||||
DataGenerator generator = event.getGenerator();
|
||||
if (event.includeServer()) {
|
||||
generator.addProvider(new RecipesGenerator(generator));
|
||||
}
|
||||
if (event.includeClient()) {
|
||||
generator.addProvider(new BlockStatesGenerator(generator, event.getExistingFileHelper()));
|
||||
generator.addProvider(new ItemModelGenerator(generator, event.getExistingFileHelper()));
|
||||
generator.addProvider(new LanguageGenerator(generator, "en_us"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package xyz.nuark.enchantrium.datagen;
|
||||
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraftforge.client.model.generators.ItemModelProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import xyz.nuark.enchantrium.Enchantrium;
|
||||
import xyz.nuark.enchantrium.item.ModItems;
|
||||
|
||||
public class ItemModelGenerator extends ItemModelProvider {
|
||||
public ItemModelGenerator(DataGenerator generator, ExistingFileHelper exFileHelper) {
|
||||
super(generator, Enchantrium.MOD_ID, exFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerModels() {
|
||||
basicItem(ModItems.TEST_ITEM.get());
|
||||
withExistingParent(ModItems.ENCHANTER_ITEM.get().getRegistryName().getPath(), modLoc("block/enchanter"));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package xyz.nuark.enchantrium.datagen;
|
||||
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraftforge.common.data.LanguageProvider;
|
||||
import xyz.nuark.enchantrium.Enchantrium;
|
||||
import xyz.nuark.enchantrium.block.ModBlocks;
|
||||
import xyz.nuark.enchantrium.item.ModItems;
|
||||
|
||||
public class LanguageGenerator extends LanguageProvider {
|
||||
public LanguageGenerator(DataGenerator gen, String locale) {
|
||||
super(gen, Enchantrium.MOD_ID, locale);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addTranslations() {
|
||||
add("itemGroup." + Enchantrium.MOD_ID, "Enchantrium");
|
||||
|
||||
add(ModBlocks.ENCHANTER.get(), "Enchanter");
|
||||
add(ModItems.TEST_ITEM.get(), "Test Item :)");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package xyz.nuark.enchantrium.datagen;
|
||||
|
||||
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.recipes.FinishedRecipe;
|
||||
import net.minecraft.data.recipes.RecipeProvider;
|
||||
import net.minecraft.data.recipes.ShapedRecipeBuilder;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraftforge.common.Tags;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.nuark.enchantrium.block.ModBlocks;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class RecipesGenerator extends RecipeProvider {
|
||||
public RecipesGenerator(DataGenerator generator) {
|
||||
super(generator);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildCraftingRecipes(@NotNull Consumer<FinishedRecipe> consumer) {
|
||||
ShapedRecipeBuilder.shaped(ModBlocks.ENCHANTER.get())
|
||||
.pattern("xxx")
|
||||
.pattern("x#x")
|
||||
.pattern("#y#")
|
||||
.define('x', Tags.Items.GEMS_DIAMOND)
|
||||
.define('#', Tags.Items.STORAGE_BLOCKS_COPPER)
|
||||
.define('y', Items.ENCHANTING_TABLE)
|
||||
.unlockedBy("enchanting", InventoryChangeTrigger.TriggerInstance.hasItems(Items.ENCHANTING_TABLE))
|
||||
.save(consumer);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,19 +1,27 @@
|
|||
package xyz.nuark.enchantrium.item;
|
||||
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import xyz.nuark.enchantrium.Enchantrium;
|
||||
import xyz.nuark.enchantrium.block.ModBlocks;
|
||||
import xyz.nuark.enchantrium.setup.ModSetup;
|
||||
|
||||
public class ModItems {
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Enchantrium.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Item> TEST_ITEM = ITEMS.register("test_item", () -> new Item(new Item.Properties().tab(ModSetup.ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> ENCHANTER_ITEM = fromBlock(ModBlocks.ENCHANTER);
|
||||
|
||||
public static void register(IEventBus eventBus) {
|
||||
ITEMS.register(eventBus);
|
||||
}
|
||||
|
||||
public static <B extends Block> RegistryObject<Item> fromBlock(RegistryObject<B> block) {
|
||||
return ITEMS.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties().tab(ModSetup.ITEM_GROUP)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 216 B |
Binary file not shown.
|
After Width: | Height: | Size: 189 B |
Binary file not shown.
|
After Width: | Height: | Size: 205 B |
Loading…
Add table
Add a link
Reference in a new issue