Make mod compile against 1.19.2

This commit is contained in:
DBotThePony 2024-01-02 11:07:50 +07:00
parent c1d6f7c061
commit da901cee87
Signed by: DBot
GPG Key ID: DCC23B5715498507
5 changed files with 67 additions and 70 deletions

View File

@ -521,12 +521,6 @@ object DataGen {
event.generator.addProvider(event.includeServer(), advancementProvider)
event.generator.addProvider(event.includeServer(), matterData)
val registrySetBuilder = RegistrySetBuilder()
.add(Registry.CONFIGURED_FEATURE_REGISTRY, ::registerConfiguredFeatures)
.add(Registry.PLACED_FEATURE_REGISTRY, ::registerPlacedFeatures)
event.generator.addProvider(event.includeServer(), DatapackBuiltinEntriesProvider(event.generator, registrySetBuilder, setOf(MOD_ID)))
AddEnglishLanguage(languageProvider)
AddRussianLanguage(languageProvider)

View File

@ -1,58 +0,0 @@
package ru.dbotthepony.mc.otm.datagen
import net.minecraft.core.RegistrySetBuilder
import net.minecraft.core.registries.Registries
import net.minecraft.data.worldgen.BootstapContext
import net.minecraft.resources.ResourceKey
import net.minecraft.tags.BlockTags
import net.minecraft.world.level.levelgen.VerticalAnchor
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature
import net.minecraft.world.level.levelgen.feature.Feature
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration
import net.minecraft.world.level.levelgen.placement.CountPlacement
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement
import net.minecraft.world.level.levelgen.placement.InSquarePlacement
import net.minecraft.world.level.levelgen.placement.PlacedFeature
import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest
import net.minecraftforge.common.data.DatapackBuiltinEntriesProvider
import net.minecraftforge.data.event.GatherDataEvent
import ru.dbotthepony.mc.otm.registry.MBlocks
private val oreKey by lazy { ResourceKey.create(Registries.CONFIGURED_FEATURE, modLocation("tritanium_ore")) }
fun registerConfiguredFeatures(context: BootstapContext<ConfiguredFeature<*, *>>) {
val stone = TagMatchTest(BlockTags.STONE_ORE_REPLACEABLES)
val deepslate = TagMatchTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES)
val target = listOf(
OreConfiguration.target(stone, MBlocks.TRITANIUM_ORE.defaultBlockState()),
OreConfiguration.target(deepslate, MBlocks.DEEPSLATE_TRITANIUM_ORE.defaultBlockState()),
)
context.register(oreKey, ConfiguredFeature(Feature.ORE, OreConfiguration(target, 9)))
}
fun registerPlacedFeatures(context: BootstapContext<PlacedFeature>) {
fun location(name: String) = ResourceKey.create(Registries.PLACED_FEATURE, modLocation(name))
val configured = context.lookup(Registries.CONFIGURED_FEATURE)
val ore = configured.getOrThrow(oreKey)
context.register(location("normal_tritanium"), PlacedFeature(
ore,
listOf(
CountPlacement.of(8),
InSquarePlacement.spread(),
HeightRangePlacement.triangle(VerticalAnchor.absolute(0), VerticalAnchor.absolute(50))
)
))
context.register(location("deep_tritanium"), PlacedFeature(
ore,
listOf(
CountPlacement.of(10),
InSquarePlacement.spread(),
HeightRangePlacement.uniform(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(0))
)
))
}

View File

@ -3,12 +3,12 @@
package ru.dbotthepony.mc.otm.datagen.loot
import com.mojang.datafixers.util.Pair
import it.unimi.dsi.fastutil.objects.Reference2ObjectArrayMap
import it.unimi.dsi.fastutil.objects.Reference2ObjectFunction
import net.minecraft.advancements.critereon.StatePropertiesPredicate
import net.minecraft.data.DataGenerator
import net.minecraft.data.loot.LootTableProvider
import net.minecraft.data.loot.LootTableSubProvider
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.level.ItemLike
import net.minecraft.world.level.block.Block
@ -25,10 +25,11 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParamSet
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
import ru.dbotthepony.mc.otm.core.stream
import ru.dbotthepony.mc.otm.data.loot.CopyTileNbtFunction
import java.util.function.BiConsumer
import java.util.function.Consumer
import java.util.function.Supplier
data class NbtCopy(val source: String, val destination: String, val strategy: CopyNbtFunction.MergeStrategy = CopyNbtFunction.MergeStrategy.REPLACE)
@ -51,10 +52,10 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
.put(id, provider) == null) { "Duplicate loot pool entry for $id" }
}
override fun getTables(): List<SubProviderEntry> {
override fun getTables(): List<Pair<Supplier<Consumer<BiConsumer<ResourceLocation, LootTable.Builder>>>, LootContextParamSet>> {
return providersTable.entries.stream().map { entry ->
SubProviderEntry({
LootTableSubProvider {
Pair.of(Supplier<Consumer<BiConsumer<ResourceLocation, LootTable.Builder>>> {
Consumer {
for ((id, callback) in entry.value) {
it.accept(id, callback.invoke())
}

View File

@ -293,6 +293,7 @@ object MRegistry {
MRecipes.register(bus)
StorageStack.register(bus)
MatteryChestMenu.register(bus)
ДатьЛещаСломатьКолени.register(bus)
if (FMLEnvironment.dist == Dist.CLIENT) {
MBlockColors.register(bus)

View File

@ -0,0 +1,59 @@
package ru.dbotthepony.mc.otm.registry
import net.minecraft.data.BuiltinRegistries
import net.minecraft.tags.BlockTags
import net.minecraft.world.level.levelgen.VerticalAnchor
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature
import net.minecraft.world.level.levelgen.feature.Feature
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration
import net.minecraft.world.level.levelgen.placement.CountPlacement
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement
import net.minecraft.world.level.levelgen.placement.InSquarePlacement
import net.minecraft.world.level.levelgen.placement.PlacedFeature
import net.minecraft.world.level.levelgen.structure.templatesystem.TagMatchTest
import net.minecraftforge.eventbus.api.IEventBus
import net.minecraftforge.registries.DeferredRegister
import net.minecraftforge.registries.RegistryObject
import ru.dbotthepony.mc.otm.OverdriveThatMatters
private val stone = TagMatchTest(BlockTags.STONE_ORE_REPLACEABLES)
private val deepslate = TagMatchTest(BlockTags.DEEPSLATE_ORE_REPLACEABLES)
private val target = listOf(
OreConfiguration.target(stone, MBlocks.TRITANIUM_ORE.defaultBlockState()),
OreConfiguration.target(deepslate, MBlocks.DEEPSLATE_TRITANIUM_ORE.defaultBlockState()),
)
object ДатьЛещаСломатьКолени {
private val configuredFeatures = DeferredRegister.create(BuiltinRegistries.CONFIGURED_FEATURE.key(), OverdriveThatMatters.MOD_ID)
private val placementConfigs = DeferredRegister.create(BuiltinRegistries.PLACED_FEATURE.key(), OverdriveThatMatters.MOD_ID)
val tritaniumConfig: RegistryObject<ConfiguredFeature<*, *>> = configuredFeatures.register("tritanium_ore") { ConfiguredFeature(Feature.ORE, OreConfiguration(target, 9)) }
val tritaniumPlacementNormal: RegistryObject<PlacedFeature> = placementConfigs.register("normal_tritanium") {
PlacedFeature(
tritaniumConfig.holder.get(),
listOf(
CountPlacement.of(8),
InSquarePlacement.spread(),
HeightRangePlacement.triangle(VerticalAnchor.absolute(0), VerticalAnchor.absolute(50))
)
)
}
val tritaniumPlacementDeepslate: RegistryObject<PlacedFeature> = placementConfigs.register("deep_tritanium") {
PlacedFeature(
tritaniumConfig.holder.get(),
listOf(
CountPlacement.of(10),
InSquarePlacement.spread(),
HeightRangePlacement.uniform(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(0))
)
)
}
internal fun register(bus: IEventBus) {
configuredFeatures.register(bus)
placementConfigs.register(bus)
}
}