теги структур и карты для картографа

This commit is contained in:
YuRaNnNzZZ 2025-03-03 17:34:39 +03:00
parent 362c3bd931
commit d2f119a112
Signed by: YuRaNnNzZZ
GPG Key ID: 5F71738C85A6006D
10 changed files with 94 additions and 0 deletions

View File

@ -52,6 +52,7 @@ import ru.dbotthepony.mc.otm.datagen.tags.addDyeTags
import ru.dbotthepony.mc.otm.datagen.tags.addEquipmentTags
import ru.dbotthepony.mc.otm.datagen.tags.addMineableTags
import ru.dbotthepony.mc.otm.datagen.tags.addResourceTags
import ru.dbotthepony.mc.otm.datagen.tags.addStructureTags
import ru.dbotthepony.mc.otm.datagen.tags.addSuspiciousTags
import ru.dbotthepony.mc.otm.datagen.tags.addTags
import ru.dbotthepony.mc.otm.matter.MatterDataProvider
@ -533,6 +534,7 @@ object DataGen {
addEquipmentTags(tagsProvider)
addMineableTags(tagsProvider)
addDyeTags(tagsProvider)
addStructureTags(tagsProvider)
event.generator.addProvider(event.includeClient(), blockModelProvider)
event.generator.addProvider(event.includeServer(), blockStateProvider)

View File

@ -1183,6 +1183,13 @@ private fun jade(provider: MatteryLanguageProvider) {
}
}
private fun maps(provider: MatteryLanguageProvider) {
with(provider.english) {
map("laboratory", "Laboratory Map")
map("wreckage", "Wreckage Map")
}
}
fun AddEnglishLanguage(provider: MatteryLanguageProvider) {
decoratives(provider)
sounds(provider)
@ -1199,6 +1206,8 @@ fun AddEnglishLanguage(provider: MatteryLanguageProvider) {
jade(provider)
maps(provider)
with(provider.english) {
add("itemGroup.otm", "Overdrive That Matters")
add("itemGroup.otm_decorative", "Overdrive That Matters Decorative")

View File

@ -107,6 +107,8 @@ class MatteryLanguageProvider(private val gen: DataGenerator) {
fun jade(key: String, value: String) = slave.add("otm.jade.$key", value)
fun jadeloc(key: String, value: String) = slave.add("config.jade.plugin_${DataGen.MOD_ID}.$key", value)
fun map(key: String, value: String) = slave.add("filled_map.otm_$key", value)
inner class Prepended(path: String) {
val path = "$path."
constructor(vararg path: String) : this(path.joinToString("."))

View File

@ -1169,6 +1169,13 @@ private fun jade(provider: MatteryLanguageProvider) {
}
}
private fun maps(provider: MatteryLanguageProvider) {
with(provider.russian) {
map("laboratory", "Карта лаборатории")
map("wreckage", "Карта кораблекрушения")
}
}
fun AddRussianLanguage(provider: MatteryLanguageProvider) {
decoratives(provider)
blocks(provider)
@ -1181,4 +1188,5 @@ fun AddRussianLanguage(provider: MatteryLanguageProvider) {
death(provider)
androidFeatures(provider)
jade(provider)
maps(provider)
}

View File

@ -0,0 +1,14 @@
package ru.dbotthepony.mc.otm.datagen.tags
import ru.dbotthepony.mc.otm.registry.MStructureTags
import ru.dbotthepony.mc.otm.registry.game.MStructures
fun addStructureTags(tagsProvider: TagsProvider) {
tagsProvider.structures.Appender(MStructureTags.LABORATORIES).add(MStructures.LABORATORY)
tagsProvider.structures.Appender(MStructureTags.FIELD_RESEARCH_PODS)
.add(MStructures.FIELD_RESEARCH_POD)
.add(MStructures.FIELD_RESEARCH_POD_RUIN)
tagsProvider.structures.Appender(MStructureTags.WRECKAGES).add(MStructures.WRECKAGE)
}

View File

@ -185,6 +185,7 @@ class TagsProvider(private val event: GatherDataEvent) {
val mobEffects = Delegate(BuiltInRegistries.MOB_EFFECT)
val entityTypes = Delegate(BuiltInRegistries.ENTITY_TYPE)
val damageTypes = Delegate(Registries.DAMAGE_TYPE)
val structures = Delegate(Registries.STRUCTURE)
private val coloredItems = EnumMap<DyeColor, Delegate<Item>.Appender>(DyeColor::class.java)

View File

@ -241,6 +241,8 @@ object OverdriveThatMatters {
FORGE_BUS.addListener(EventPriority.NORMAL, NotNormalFood::onInteract)
FORGE_BUS.addListener(EventPriority.NORMAL, MStructureTags::registerVillagerTrades)
if (isCuriosLoaded) {
FORGE_BUS.addListener(EventPriority.NORMAL, ::onCuriosSlotModifiersUpdated)
}

View File

@ -0,0 +1,33 @@
package ru.dbotthepony.mc.otm.registry
import net.minecraft.core.registries.Registries
import net.minecraft.tags.TagKey
import net.minecraft.world.entity.npc.VillagerProfession
import net.minecraft.world.entity.npc.VillagerTrades
import net.minecraft.world.level.levelgen.structure.Structure
import net.minecraft.world.level.saveddata.maps.MapDecorationTypes
import net.neoforged.neoforge.event.village.VillagerTradesEvent
import ru.dbotthepony.mc.otm.OverdriveThatMatters.loc
object MStructureTags {
val LABORATORIES = create("laboratories")
val FIELD_RESEARCH_PODS = create("field_research_pods")
val WRECKAGES = create("wreckages")
fun create(location: String): TagKey<Structure> {
return TagKey.create(Registries.STRUCTURE, loc(location))
}
fun registerVillagerTrades(event: VillagerTradesEvent) {
if (event.type == VillagerProfession.CARTOGRAPHER) {
with (event.trades.get(2)) {
add(VillagerTrades.TreasureMapForEmeralds(10, WRECKAGES, "filled_map.otm_wreckage",
MapDecorationTypes.RED_X, 12, 5))
}
with (event.trades.get(3)) {
add(VillagerTrades.TreasureMapForEmeralds(25, LABORATORIES, "filled_map.otm_laboratory",
MapDecorationTypes.LIGHT_BLUE_BANNER, 12, 10))
}
}
}
}

View File

@ -0,0 +1,21 @@
package ru.dbotthepony.mc.otm.registry.game
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceKey
import net.minecraft.world.level.levelgen.structure.Structure
import ru.dbotthepony.mc.otm.OverdriveThatMatters.loc
object MStructures {
val CARGO_CONTAINER = create("cargo_container")
val FIELD_RESEARCH_POD = create("field_research_pod")
val FIELD_RESEARCH_POD_RUIN = create("field_research_pod_ruin")
val FRIGATE = create("frigate")
val FUEL_BASE = create("fuel_base")
val LABORATORY = create("laboratory")
val OCEAN_CONTAINER = create("ocean_container")
val WRECKAGE = create("wreckage")
fun create(location: String): ResourceKey<Structure> {
return ResourceKey.create(Registries.STRUCTURE, loc(location))
}
}

View File

@ -174,3 +174,5 @@ public net.minecraft.advancements.critereon.InventoryChangeTrigger$TriggerInstan
#public-f net.minecraft.advancements.critereon.SimpleCriterionTrigger addPlayerListener(Lnet/minecraft/server/PlayerAdvancements;Lnet/minecraft/advancements/CriterionTrigger$Listener;)V
#public-f net.minecraft.advancements.critereon.SimpleCriterionTrigger removePlayerListener(Lnet/minecraft/server/PlayerAdvancements;Lnet/minecraft/advancements/CriterionTrigger$Listener;)V
#public-f net.minecraft.advancements.critereon.SimpleCriterionTrigger removePlayerListeners(Lnet/minecraft/server/PlayerAdvancements;)V
public net.minecraft.world.entity.npc.VillagerTrades$TreasureMapForEmeralds