some new matter values

This commit is contained in:
DBotThePony 2022-11-03 21:19:22 +07:00
parent df14e1b449
commit 2744ec080d
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 252 additions and 20 deletions

View File

@ -202,10 +202,10 @@ dependencies {
// implementation("mcjty:theoneprobe:${mc_version}-${the_one_probe_version}:deobf")
runtimeOnly(fg.deobf("curse.maven:jade-324717:${jade_id}"))
runtimeOnly(fg.deobf("curse.maven:worldedit-225608:${worldedit_fileid}"))
runtimeOnly(fg.deobf("at.ridgo8.moreoverlays:MoreOverlays-updated:${more_overlays_version}"))
// runtimeOnly(fg.deobf("curse.maven:worldedit-225608:${worldedit_fileid}"))
// runtimeOnly(fg.deobf("at.ridgo8.moreoverlays:MoreOverlays-updated:${more_overlays_version}"))
implementation(fg.deobf("mekanism:Mekanism:${mc_version}-${mekanism_version}:all"))
compileOnly(fg.deobf("mekanism:Mekanism:${mc_version}-${mekanism_version}:all"))
}
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.datagen
import net.minecraft.tags.ItemTags
import net.minecraft.world.item.Items
import net.minecraftforge.common.Tags
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
@ -9,15 +10,237 @@ import ru.dbotthepony.mc.otm.matter.MatterDataProvider
// and anything mineral has much bigger matter value than complexity (just throw a lot of same molecules)
fun addMatterData(provider: MatterDataProvider) {
provider.scope(Items.DIRT, ImpreciseFraction(1), 1.0) {
relative(Items.GRASS, Items.GRASS)
provider.scope(Items.DIRT, ImpreciseFraction(1), 40.0) {
equal(Items.GRASS_BLOCK, Items.PODZOL, Items.DIRT_PATH)
relative(Items.COAL, 40, 4)
// rocks
scope(Tags.Items.STONE, 1.1, 1.1) {
equal(Tags.Items.COBBLESTONE)
equal(Tags.Items.GRAVEL)
equal(Items.FLINT)
equal(Tags.Items.SAND)
equal(Tags.Items.NETHERRACK)
equal(Items.BASALT)
equal(Items.BLACKSTONE)
scope(Tags.Items.INGOTS_IRON, 128, 10) {
relative(Tags.Items.INGOTS_GOLD, 4, 2)
relative(Tags.Items.GEMS_DIAMOND, 16, 3)
relative(Tags.Items.GEMS_EMERALD, 20, 3.4)
scope(Items.SOUL_SAND, 1.2, 4) {
equal(Items.SOUL_SOIL)
}
relative(Items.POINTED_DRIPSTONE, 1, 1.4)
scope(Items.DEEPSLATE, 1.1, 1.1) {
equal(Items.COBBLED_DEEPSLATE)
relative(Items.CALCITE, 1, 1.2)
relative(Items.TUFF, 1, 1.2)
relative(Items.REINFORCED_DEEPSLATE, 3, 1.4)
}
relative(Tags.Items.OBSIDIAN, 10, 1.5)
}
// valuable minerals
scope(Items.COAL, 8, 2.5) {
scope(Tags.Items.INGOTS_IRON, 3.5, 1.25) {
relative(Tags.Items.INGOTS_COPPER, 0.8, 0.9)
relative(Tags.Items.GEMS_LAPIS, 1.25, 2)
relative(Tags.Items.DUSTS_REDSTONE, 1.15, 2.5)
relative(Tags.Items.DUSTS_GLOWSTONE, 1.15, 4)
relative(Tags.Items.INGOTS_GOLD, 4, 1.6)
relative(Tags.Items.GEMS_DIAMOND, 8, 2.1)
relative(Tags.Items.GEMS_EMERALD, 8, 2.2)
relative(Items.NETHERITE_SCRAP, 2, 6)
scope(Tags.Items.GEMS_AMETHYST, 1.5, 2) {
relative(Items.BUDDING_AMETHYST, 2.5, 9)
}
}
}
// sponge
scope(Items.SPONGE, 2.5, 4) {
relative(Items.WET_SPONGE, 1.1, 1.25)
}
// drops from mobs
scope(Items.ROTTEN_FLESH, 8, 2.5) {
relative(Tags.Items.BONES, 1, 1.25)
relative(Tags.Items.STRING, 0.8, 0.75)
relative(Tags.Items.SLIMEBALLS, 1, 1.15)
relative(Items.HONEYCOMB, 1.8, 1.75)
relative(Items.HONEY_BLOCK, 6, 1.75)
relative(Tags.Items.GEMS_PRISMARINE, 6, 2.75)
}
// skulk
relative(Items.SCULK, 6, 24)
relative(Items.SCULK_CATALYST, 12, 40)
relative(Items.SCULK_VEIN, 2.5, 24)
// planty
scope(Items.GRASS, 1.5, 2.5) {
equal(Items.SUNFLOWER)
equal(Items.LILAC)
equal(Items.ROSE_BUSH)
equal(Items.PEONY)
equal(Items.TALL_GRASS)
equal(Items.LARGE_FERN)
equal(Items.FERN)
equal(Items.VINE)
equal(Items.LILY_PAD)
relative(Items.GLOW_LICHEN, 1.1, 1.4)
equal(Items.DANDELION)
equal(Items.POPPY)
equal(Items.BLUE_ORCHID)
equal(Items.ALLIUM)
equal(Items.AZURE_BLUET)
equal(Items.RED_TULIP)
equal(Items.ORANGE_TULIP)
equal(Items.WHITE_TULIP)
equal(Items.PINK_TULIP)
equal(Items.OXEYE_DAISY)
equal(Items.CORNFLOWER)
equal(Items.LILY_OF_THE_VALLEY)
equal(Items.SPORE_BLOSSOM)
equal(Items.BROWN_MUSHROOM)
equal(Items.BROWN_MUSHROOM_BLOCK)
equal(Items.RED_MUSHROOM)
equal(Items.RED_MUSHROOM_BLOCK)
equal(Items.HANGING_ROOTS)
equal(Items.AZALEA)
relative(Items.FLOWERING_AZALEA, 1.05, 1.2)
equal(Items.MOSS_BLOCK)
equal(Items.BIG_DRIPLEAF)
equal(Items.SMALL_DRIPLEAF)
scope(1, 1.1) {
equal(Items.CRIMSON_FUNGUS)
equal(Items.WARPED_FUNGUS)
equal(Items.CRIMSON_ROOTS)
equal(Items.WARPED_ROOTS)
equal(Items.NETHER_SPROUTS)
equal(Items.WEEPING_VINES)
equal(Items.TWISTING_VINES)
}
equal(Items.SEAGRASS)
equal(Items.TUBE_CORAL_BLOCK)
equal(Items.BRAIN_CORAL_BLOCK)
equal(Items.BUBBLE_CORAL_BLOCK)
equal(Items.FIRE_CORAL_BLOCK)
equal(Items.HORN_CORAL_BLOCK)
equal(Items.TUBE_CORAL)
equal(Items.BRAIN_CORAL)
equal(Items.BUBBLE_CORAL)
equal(Items.FIRE_CORAL)
equal(Items.HORN_CORAL)
equal(Items.DEAD_TUBE_CORAL_BLOCK)
equal(Items.DEAD_BRAIN_CORAL_BLOCK)
equal(Items.DEAD_BUBBLE_CORAL_BLOCK)
equal(Items.DEAD_FIRE_CORAL_BLOCK)
equal(Items.DEAD_HORN_CORAL_BLOCK)
equal(Items.TUBE_CORAL_FAN)
equal(Items.BRAIN_CORAL_FAN)
equal(Items.BUBBLE_CORAL_FAN)
equal(Items.FIRE_CORAL_FAN)
equal(Items.HORN_CORAL_FAN)
equal(Items.DEAD_BRAIN_CORAL)
equal(Items.DEAD_BUBBLE_CORAL)
equal(Items.DEAD_FIRE_CORAL)
equal(Items.DEAD_HORN_CORAL)
equal(Items.DEAD_TUBE_CORAL)
equal(Items.DEAD_TUBE_CORAL_FAN)
equal(Items.DEAD_BRAIN_CORAL_FAN)
equal(Items.DEAD_BUBBLE_CORAL_FAN)
equal(Items.DEAD_FIRE_CORAL_FAN)
equal(Items.DEAD_HORN_CORAL_FAN)
equal(ItemTags.SAPLINGS)
scope(1.5, 2) {
equal(Items.MELON_SLICE)
equal(Items.POTATO)
equal(Items.CARROT)
}
scope(0.75, 2) {
equal(Tags.Items.SEEDS)
equal(Tags.Items.SEEDS_BEETROOT)
equal(Tags.Items.SEEDS_MELON)
equal(Tags.Items.SEEDS_PUMPKIN)
equal(Tags.Items.SEEDS_WHEAT)
}
scope(Items.PUMPKIN, 2, 2) {
equal(Items.CARVED_PUMPKIN)
}
scope(2.5, 6) {
equal(Items.CHORUS_FRUIT)
equal(Items.CHORUS_PLANT)
equal(Items.CHORUS_FLOWER)
}
}
// leaves
scope(ItemTags.LEAVES, 1.5, 4) {
// directly map them this matter value
// equal(Items.OAK_LEAVES)
// equal(Items.SPRUCE_LEAVES)
// equal(Items.BIRCH_LEAVES)
// equal(Items.JUNGLE_LEAVES)
// equal(Items.ACACIA_LEAVES)
// equal(Items.DARK_OAK_LEAVES)
// equal(Items.MANGROVE_LEAVES)
}
// wood
scope(ItemTags.LOGS, 2.5, 4) {
// directly map them this matter value
// equal(Items.OAK_LOG)
// equal(Items.SPRUCE_LOG)
// equal(Items.BIRCH_LOG)
// equal(Items.JUNGLE_LOG)
// equal(Items.ACACIA_LOG)
// equal(Items.DARK_OAK_LOG)
// equal(Items.MANGROVE_LOG)
scope(0.9, 0.95) {
equal(Items.STRIPPED_OAK_LOG)
equal(Items.STRIPPED_SPRUCE_LOG)
equal(Items.STRIPPED_BIRCH_LOG)
equal(Items.STRIPPED_JUNGLE_LOG)
equal(Items.STRIPPED_ACACIA_LOG)
equal(Items.STRIPPED_DARK_OAK_LOG)
equal(Items.STRIPPED_MANGROVE_LOG)
equal(Items.STRIPPED_CRIMSON_STEM)
equal(Items.STRIPPED_WARPED_STEM)
equal(Items.STRIPPED_OAK_WOOD)
equal(Items.STRIPPED_SPRUCE_WOOD)
equal(Items.STRIPPED_BIRCH_WOOD)
equal(Items.STRIPPED_JUNGLE_WOOD)
equal(Items.STRIPPED_ACACIA_WOOD)
equal(Items.STRIPPED_DARK_OAK_WOOD)
equal(Items.STRIPPED_MANGROVE_WOOD)
equal(Items.STRIPPED_CRIMSON_HYPHAE)
equal(Items.STRIPPED_WARPED_HYPHAE)
}
}
}
}

View File

@ -451,17 +451,25 @@ open class MatterDataProvider(protected val dataGenerator: DataGenerator, val na
fun relative(tag: TagKey<Item>, matterValue: Float, complexity: Long, configurator: InsertConfiguration.() -> Unit = {}) = insert(tag, ImpreciseFraction(matterValue) * this.matterValue, complexity * this.complexity, configurator)
////////
fun relative(vararg items: ItemLike) {
fun equal(vararg items: ItemLike) {
for (item in items) {
insert(item, matterValue, complexity)
}
}
fun relative(vararg tags: TagKey<Item>) {
fun equal(item: ItemLike) {
insert(item, matterValue, complexity)
}
fun equal(vararg tags: TagKey<Item>) {
for (tag in tags) {
relative(tag, matterValue, complexity)
insert(tag, matterValue, complexity)
}
}
fun equal(tag: TagKey<Item>) {
insert(tag, matterValue, complexity)
}
}
fun insert(name: ResourceLocation, configurator: InsertConfiguration.() -> Unit): MatterManager.InsertAction {

View File

@ -7,6 +7,7 @@ import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonParseException
import com.google.gson.JsonPrimitive
import com.google.gson.JsonSyntaxException
import it.unimi.dsi.fastutil.objects.Reference2ObjectFunction
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap
import net.minecraft.resources.ResourceLocation
@ -60,17 +61,17 @@ object MatterManager : SimpleJsonResourceReloadListener(GsonBuilder().setPrettyP
errorOnFailure = json["error_on_failure"]?.asBoolean ?: false
priority = json["priority"]?.asInt
val location = json["id"]?.asString?.let { ResourceLocation.tryParse(it) } ?: throw JsonParseException("Invalid `id` value: ${json["id"]}")
val id = json["id"]?.asString ?: throw JsonParseException("Missing `id` value")
if (location.namespace == "#") {
throw JsonParseException("Invalid `id` value: $location")
}
if (id.startsWith("#")) {
if (id.startsWith("#:")) {
throw JsonSyntaxException("Invalid `id` value: $id")
}
if (location.namespace.startsWith("#")) {
tag = ItemTags.create(ResourceLocation(location.toString().substring(1)))
tag = ItemTags.create(ResourceLocation.tryParse(id.substring(1)) ?: throw JsonSyntaxException("Invalid `id` value: $id"))
key = null
} else {
key = location
key = ResourceLocation.tryParse(id) ?: throw JsonSyntaxException("Invalid `id` value: $id")
tag = null
}