Skip to content

Commit

Permalink
added datagen (#16)
Browse files Browse the repository at this point in the history
* added datagen

* resolved the review comments.
  • Loading branch information
Itskillerluc authored Jul 17, 2024
1 parent 1b3d43a commit 7476102
Show file tree
Hide file tree
Showing 20 changed files with 205 additions and 0 deletions.
12 changes: 12 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import groovy.json.StringEscapeUtils
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources

plugins {
java
Expand Down Expand Up @@ -32,6 +33,15 @@ neoForge {
server()
programArgument("--nogui")
}
register("data") {
data()
programArguments.addAll(
"--mod", modId,
"--all",
"--output", file("src/generated/resources/").absolutePath,
"--existing", file("src/main/resources/").absolutePath
)
}
}

mods {
Expand All @@ -47,6 +57,8 @@ neoForge {
}
}

sourceSets.main.get().resources { srcDir("src/generated/resources") }

repositories {
maven(url = "https://maven.neoforged.net/releases")
maven(url = "https://maven.teamresourceful.com/repository/maven-public/")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.593569 Block States: techarium
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// 1.21 2024-07-16T21:16:17.5915544 Loot Tables
21e41bc3df14e22048e4353330bdcd863d767df4 data/techarium/loot_table/blocks/basic_deploy_child_block.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.593569 Sound Definitions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.5875595 Tags for minecraft:block mod id techarium
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.5925544 Tags for minecraft:item mod id techarium
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.5925544 Recipes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// 1.21 2024-07-16T21:32:01.4712927 Languages: en_us for mod: techarium
ce15b8beba57cfc95f056d9594cb4b833603dcb4 assets/techarium/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// 1.21 2024-07-16T21:16:17.5865909 Item Models: techarium
3 changes: 3 additions & 0 deletions src/generated/resources/assets/techarium/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"block.techarium.basic_deploy_child_block": "Basic Deploy Child Block"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "minecraft:block",
"random_sequence": "techarium:blocks/basic_deploy_child_block"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package earth.terrarium.techarium.datagen

import earth.terrarium.techarium.common.TechariumConstants
import earth.terrarium.techarium.datagen.providers.*
import net.minecraft.data.loot.LootTableProvider
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
import net.neoforged.bus.api.IEventBus
import net.neoforged.fml.ModContainer
import net.neoforged.fml.common.Mod
import net.neoforged.neoforge.data.event.GatherDataEvent

@Mod(TechariumConstants.MOD_ID)
class TechariumDatagen(modBus: IEventBus, mod: ModContainer) {
init {
modBus.addListener(::gatherDataEvent)
}

private fun gatherDataEvent(event: GatherDataEvent) {
val generator = event.generator
val output = generator.packOutput
val existingFileHelper = event.existingFileHelper
val lookupProvider = event.lookupProvider

generator.addProvider(event.includeClient(), TechariumLanguageProvider(output, "en_us"))
generator.addProvider(event.includeClient(), TechariumItemModelProvider(output, existingFileHelper))
val blockTagProvider = TechariumBlockTagProvider(output, lookupProvider, existingFileHelper)
generator.addProvider(event.includeServer(), blockTagProvider)
generator.addProvider(event.includeServer(), TechariumItemTagProvider(output, lookupProvider, blockTagProvider.contentsGetter(), existingFileHelper))
generator.addProvider(event.includeServer(), TechariumRecipeProvider(output, lookupProvider))
generator.addProvider(event.includeClient(), TechariumSoundProvider(output, existingFileHelper))
generator.addProvider(event.includeClient(), TechariumBlockStateProvider(output, existingFileHelper))
generator.addProvider(event.includeServer(), LootTableProvider(output, setOf(),
listOf(LootTableProvider.SubProviderEntry(::TechariumBlockLootTableProvider, LootContextParamSets.BLOCK)), lookupProvider)
)

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.registries.ModBlocks
import net.minecraft.core.HolderLookup
import net.minecraft.data.loot.BlockLootSubProvider
import net.minecraft.world.flag.FeatureFlags
import net.minecraft.world.level.block.Block

class TechariumBlockLootTableProvider(
provider: HolderLookup.Provider
) : BlockLootSubProvider(setOf(), FeatureFlags.REGISTRY.allFlags(), provider) {
override fun getKnownBlocks(): MutableIterable<Block> {
return ModBlocks.registry.entries.map { it.get() }.toMutableList()
}

override fun generate() {
add(ModBlocks.basicDeployChildBlock, noDrop())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import net.minecraft.data.PackOutput
import net.neoforged.neoforge.client.model.generators.BlockStateProvider
import net.neoforged.neoforge.common.data.ExistingFileHelper

class TechariumBlockStateProvider(
output: PackOutput,
fileHelper: ExistingFileHelper
) : BlockStateProvider(output, TechariumConstants.MOD_ID, fileHelper) {
override fun registerStatesAndModels() {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import net.minecraft.core.HolderLookup
import net.minecraft.data.PackOutput
import net.neoforged.neoforge.common.data.BlockTagsProvider
import net.neoforged.neoforge.common.data.ExistingFileHelper
import java.util.concurrent.CompletableFuture

class TechariumBlockTagProvider(
output: PackOutput,
lookupProvider: CompletableFuture<HolderLookup.Provider>,
fileHelper: ExistingFileHelper
) : BlockTagsProvider(output, lookupProvider, TechariumConstants.MOD_ID, fileHelper) {
override fun addTags(holderLookup: HolderLookup.Provider) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import net.minecraft.data.PackOutput
import net.neoforged.neoforge.client.model.generators.ItemModelProvider
import net.neoforged.neoforge.common.data.ExistingFileHelper

class TechariumItemModelProvider(
output: PackOutput,
fileHelper: ExistingFileHelper
) : ItemModelProvider(output, TechariumConstants.MOD_ID, fileHelper) {
override fun registerModels() {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import net.minecraft.core.HolderLookup
import net.minecraft.data.PackOutput
import net.minecraft.data.tags.ItemTagsProvider
import net.minecraft.world.level.block.Block
import net.neoforged.neoforge.common.data.ExistingFileHelper
import java.util.concurrent.CompletableFuture

class TechariumItemTagProvider(
output: PackOutput,
lookupProvider: CompletableFuture<HolderLookup.Provider>,
blockTags: CompletableFuture<TagLookup<Block>>,
fileHelper: ExistingFileHelper
) : ItemTagsProvider(output, lookupProvider, blockTags, TechariumConstants.MOD_ID, fileHelper) {
override fun addTags(holderLookup: HolderLookup.Provider) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import earth.terrarium.techarium.common.registries.ModBlockEntityTypes
import earth.terrarium.techarium.common.registries.ModBlocks
import net.minecraft.data.PackOutput
import net.neoforged.neoforge.common.data.LanguageProvider

class TechariumLanguageProvider(
output: PackOutput,
locale: String
) : LanguageProvider(output, TechariumConstants.MOD_ID, locale) {
override fun addTranslations() {
for (entry in ModBlocks.registry.entries) {
addBlock(entry, entry.id.path.split("_")
.joinToString(" ") { it.replaceFirstChar(Character::toTitleCase) })
}

//TODO: Add the translation generation using the item registry.
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package earth.terrarium.techarium.datagen.providers

import net.minecraft.core.HolderLookup
import net.minecraft.data.PackOutput
import net.minecraft.data.recipes.RecipeOutput
import net.minecraft.data.recipes.RecipeProvider
import java.util.concurrent.CompletableFuture

class TechariumRecipeProvider(
output: PackOutput,
holderLookup: CompletableFuture<HolderLookup.Provider>
) : RecipeProvider(output, holderLookup) {
override fun buildRecipes(output: RecipeOutput) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package earth.terrarium.techarium.datagen.providers

import earth.terrarium.techarium.common.TechariumConstants
import net.minecraft.data.PackOutput
import net.neoforged.neoforge.common.data.ExistingFileHelper
import net.neoforged.neoforge.common.data.SoundDefinitionsProvider

class TechariumSoundProvider(
output: PackOutput,
fileHelper: ExistingFileHelper
) : SoundDefinitionsProvider(output, TechariumConstants.MOD_ID, fileHelper) {
override fun registerSounds() {

}
}

0 comments on commit 7476102

Please sign in to comment.