Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added datagen #16

Merged
merged 2 commits into from
Jul 17, 2024
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
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
)
}
}
Itskillerluc marked this conversation as resolved.
Show resolved Hide resolved

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() {

}
}
Loading