Posted October 1, 20213 yr Hello, in order to create blocks/items etc., the todays standard seems to be the usage of database, with .json files. Is there a way to still register all blocks/items in only one .json, or is there no way around on making a single .json for any of my blocks/items? If not, would you recommend of moving away from using database, and instead using the "old way"?
October 1, 20213 yr what? you register Blocks, Items, etc, with the RegistryEvents or DeferredRegister and not via json refer to this doc Edited October 1, 20213 yr by Luis_ST
October 1, 20213 yr Author Yes, I do that(see my general register file): What I ment to say, I am using the database(or datapack...how is it named? sorry), via .json, to create said files. You'd do that in the register, or main file in the past. public class MaterialEvolutionRegister { public static final ItemGroup MATERIALEVOLUTION_GROUP = new ItemGroup("materialEvolutionTab") { @Override public ItemStack createIcon() { return new ItemStack(TOOLDIGSTICK.get()); } }; public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MaterialEvolutionModBase.MODID); public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MaterialEvolutionModBase.MODID); //private static final Set<Block> EFFECTIVE_DIGSTICK = Sets.newHashSet(new Block[] {Blocks.DIRT, Blocks.GRASS, Blocks.SAND, Blocks.GRAVEL, Blocks.CLAY, Blocks.SNOW, Blocks.MYCELIUM}); /*public static final RegistryObject<Item> FLINTSTONE = ITEMS.register("flintstone", () -> new Item(new Item.Properties().group(ModItemGroup.MATERIALEVOLUTION_GROUP)));*/ //for tools&weapons first number is damage against entitys, second is attack speed /*public static final RegistryObject<Item> TOOL_DIGSTICK = ITEMS.register("tool_digstick", () -> new ToolItem(ModItemTier.FLINTSTONE.getAttackDamage() +2, -1f, ModItemTier.FLINTSTONE, EFFECTIVE_DIGSTICK, new Properties().group(ModItemGroup.MATERIALEVOLUTION_GROUP).maxDamage(ModItemTier.FLINTSTONE.getMaxUses()/2)));*/ public static final RegistryObject<Item> TOOLDIGSTICK = ITEMS.register("tooldigstick", () -> new ShovelItem(ModItemTier.TOOLWOOD, 1, -1f, new Item.Properties().group(MATERIALEVOLUTION_GROUP))); public static final RegistryObject<Item> KNIFEFLINTSTONE = ITEMS.register("knifeflintstone", () -> new AxeItem(ModItemTier.FLINTSTONE, 1, -2f, new Item.Properties().group(MATERIALEVOLUTION_GROUP))); public static final RegistryObject<Item> LEADGRAVEL = ITEMS.register("leadgravel", () -> new Item( new Item.Properties().group(MATERIALEVOLUTION_GROUP))); // register block public static final RegistryObject<Block> BLOCKGALENA = BLOCKS.register("blockgalena", () -> new Block( Block.Properties .create(Material.ROCK) .hardnessAndResistance(3.0f, 30.0f) .sound(SoundType.STONE) .harvestLevel(1) .harvestTool(ToolType.PICKAXE) ) ); public static final RegistryObject<Item> BLOCKGALENAITEM = ITEMS.register("blockgalena", () -> new BlockItem(BLOCKGALENA.get(), new Item.Properties().group(MATERIALEVOLUTION_GROUP) ) ); public static void register(IEventBus eventBus) { BLOCKS.register(eventBus); ITEMS.register(eventBus); } } Edited October 1, 20213 yr by Cratthorax
October 1, 20213 yr 4 minutes ago, Cratthorax said: You'd do that in the register, or main file in the past. nope, minecraft looks automatically in the correct folder of the assets and the datapack so like for block models in assets/mod_id/models/block/block_name.json loot tables in data/mod_id/loot_tables/block_name.json and so on but you should use the Data Generator Edited October 1, 20213 yr by Luis_ST
October 1, 20213 yr Author So I just do the register work in my class, then use the gradle MDK to auto create the database with the data generator? What about the texture files. Do I need to add them inb4?
October 1, 20213 yr Author So you can do it via class as well? I'd just have to run my built for it? public class ModGlobalLootModifierProvider extends GlobalLootModifierProvider { public ModGlobalLootModifierProvider(DataGenerator gen) { super(gen, Mod.MOD_ID); } } Edit: it's from this thread btw. Edited October 1, 20213 yr by Cratthorax
October 1, 20213 yr Author I have to say it's quite a hard nut to crack, primarily due to its scope, and the quantity of cross references you'd have to code. The best I could find trying to comprehend was on Github with Arctics mod. But the difficulty and time investment deters me from implementing it now. I'll do it for 1.17 maybe. But there's more than enough work for me to forward right now. Edited October 1, 20213 yr by Cratthorax
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.