Fix "isRigid" being the opposite of "optional" in research builder

This commit is contained in:
DBotThePony 2023-06-20 11:30:40 +07:00
parent fa22fb7cce
commit 734655f53b
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 11 additions and 35 deletions

View File

@ -5,15 +5,8 @@ import net.minecraft.world.item.Items
import net.minecraftforge.common.Tags
import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.android.AndroidResearchDescriptions
import ru.dbotthepony.mc.otm.android.AndroidResearchResult
import ru.dbotthepony.mc.otm.android.AndroidResearchResults
import ru.dbotthepony.mc.otm.android.AndroidResearchType
import ru.dbotthepony.mc.otm.android.feature.EnderTeleporterFeature
import ru.dbotthepony.mc.otm.android.feature.FallDampenersFeature
import ru.dbotthepony.mc.otm.android.feature.ItemMagnetFeature
import ru.dbotthepony.mc.otm.android.feature.JumpBoostFeature
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmorFeature
import ru.dbotthepony.mc.otm.android.feature.ShockwaveFeature
import ru.dbotthepony.mc.otm.client.render.ResearchIcons
import ru.dbotthepony.mc.otm.core.TextComponent
import ru.dbotthepony.mc.otm.core.TranslatableComponent
@ -106,7 +99,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS))
.addFeatureResult(OverdriveThatMatters.loc(MNames.NANOBOTS_ARMOR))
.withIcon(ResearchIcons.ICON_ARMOR)
.addBlocker(OverdriveThatMatters.loc(MNames.ATTACK_BOOST_1), rigid = true)
.addBlocker(OverdriveThatMatters.loc(MNames.ATTACK_BOOST_1), optional = true)
.addItem(MItemTags.TRITANIUM_PLATES, 4)
.addItem(MItemTags.COPPER_WIRES, 8)
.build()
@ -138,7 +131,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
if (i > 0) {
research.addFeatureLevel(AndroidFeatures.LIMB_OVERCLOCKING)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.LIMB_OVERCLOCKING_LIST[i - 1]), rigid = true)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.LIMB_OVERCLOCKING_LIST[i - 1]), optional = true)
research.addItem(MItemTags.GOLD_WIRES, i * 2)
} else {
research.addFeatureResult(AndroidFeatures.LIMB_OVERCLOCKING)
@ -164,7 +157,7 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
if (i > 0) {
research.addFeatureLevel(AndroidFeatures.ATTACK_BOOST)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.ATTACK_BOOST_LIST[i - 1]), rigid = true)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.ATTACK_BOOST_LIST[i - 1]), optional = true)
} else {
research.addFeatureResult(AndroidFeatures.ATTACK_BOOST)
}
@ -189,9 +182,9 @@ fun addResearchData(serializer: Consumer<AndroidResearchType>, lang: MatteryLang
if (i > 0) {
research.addFeatureLevel(AndroidFeatures.NANOBOTS_REGENERATION)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS_REGENERATION_LIST[i - 1]), rigid = true)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS_REGENERATION_LIST[i - 1]), optional = true)
} else {
research.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS), rigid = true)
research.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS), optional = true)
research.addFeatureResult(AndroidFeatures.NANOBOTS_REGENERATION)
}

View File

@ -1,20 +1,13 @@
package ru.dbotthepony.mc.otm.android
import com.google.common.collect.ImmutableList
import com.google.gson.JsonArray
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonPrimitive
import com.google.gson.JsonSyntaxException
import com.google.gson.internal.bind.TypeAdapters
import com.mojang.datafixers.util.Either
import com.mojang.serialization.Codec
import com.mojang.serialization.JsonOps
import com.mojang.serialization.codecs.ListCodec
import com.mojang.serialization.codecs.PairCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
import net.minecraft.network.FriendlyByteBuf
import net.minecraft.network.chat.Component
import net.minecraft.network.chat.ComponentContents
import net.minecraft.network.chat.MutableComponent
@ -23,7 +16,6 @@ import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.item.crafting.Ingredient
import net.minecraft.world.level.ItemLike
import net.minecraftforge.registries.ForgeRegistries
@ -32,19 +24,10 @@ import ru.dbotthepony.mc.otm.client.render.SpriteType
import ru.dbotthepony.mc.otm.core.collect.ListSet
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.isActuallyEmpty
import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.core.set
import ru.dbotthepony.mc.otm.core.collect.stream
import ru.dbotthepony.mc.otm.core.fromJsonStrict
import ru.dbotthepony.mc.otm.core.toJsonStrict
import ru.dbotthepony.mc.otm.core.util.readJson
import ru.dbotthepony.mc.otm.core.util.writeJson
import ru.dbotthepony.mc.otm.data.ComponentCodec
import ru.dbotthepony.mc.otm.data.IngredientCodec
import ru.dbotthepony.mc.otm.data.JsonElementCodec
import ru.dbotthepony.mc.otm.data.simpleCodec
import ru.dbotthepony.mc.otm.isClient
import java.util.LinkedList
import java.util.Optional
import java.util.function.Function
import java.util.stream.Stream
@ -518,14 +501,14 @@ class AndroidResearchType(
* research tree render logic (yet).
*/
@JvmOverloads
fun addPrerequisite(id: ResourceLocation, rigid: Boolean = false): Builder {
prerequisites.add(Reference(id, rigid))
fun addPrerequisite(id: ResourceLocation, optional: Boolean = true): Builder {
prerequisites.add(Reference(id, optional))
return this
}
@JvmOverloads
fun addBlocker(id: ResourceLocation, rigid: Boolean = false): Builder {
blockers.add(Reference(id, rigid))
fun addBlocker(id: ResourceLocation, optional: Boolean = true): Builder {
blockers.add(Reference(id, optional))
return this
}
@ -533,8 +516,8 @@ class AndroidResearchType(
* Please avoid having multiple prerequisites as case with more than 1 prerequisite does not have proper
* research tree render logic (yet).
*/
fun addPrerequisite(type: AndroidResearchType, rigid: Boolean = true) = addPrerequisite(type.id, rigid)
fun addBlocker(type: AndroidResearchType, rigid: Boolean = true) = addBlocker(type.id, rigid)
fun addPrerequisite(type: AndroidResearchType, optional: Boolean = false) = addPrerequisite(type.id, optional)
fun addBlocker(type: AndroidResearchType, optional: Boolean = false) = addBlocker(type.id, optional)
fun addResult(result: AndroidResearchResult): Builder {
results.add(result)