Step assist research
This commit is contained in:
parent
e4833dd924
commit
23286be3a9
@ -0,0 +1,31 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.android.feature
|
||||||
|
|
||||||
|
import net.minecraft.world.entity.ai.attributes.AttributeModifier
|
||||||
|
import net.minecraftforge.common.ForgeMod
|
||||||
|
import ru.dbotthepony.mc.otm.android.AndroidFeature
|
||||||
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapability
|
||||||
|
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class StepAssistFeature(android: AndroidCapability) : AndroidFeature(AndroidFeatures.EXTENDED_REACH, android) {
|
||||||
|
override fun applyModifiers() {
|
||||||
|
if (!ForgeMod.STEP_HEIGHT_ADDITION.isPresent)
|
||||||
|
return
|
||||||
|
|
||||||
|
val reach = entity.getAttribute(ForgeMod.STEP_HEIGHT_ADDITION.get()) ?: return
|
||||||
|
|
||||||
|
reach.removePermanentModifier(MODIFIER_ID)
|
||||||
|
reach.addPermanentModifier(AttributeModifier(MODIFIER_ID, type.displayName.toString(), level + 1.0, AttributeModifier.Operation.ADDITION))
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun removeModifiers() {
|
||||||
|
if (!ForgeMod.STEP_HEIGHT_ADDITION.isPresent)
|
||||||
|
return
|
||||||
|
|
||||||
|
entity.getAttribute(ForgeMod.STEP_HEIGHT_ADDITION.get())?.removePermanentModifier(MODIFIER_ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val MODIFIER_ID = UUID.fromString("4a3fae46-47a8-a03f-857d-f5c2b2c8f2f4")
|
||||||
|
}
|
||||||
|
}
|
@ -5,15 +5,13 @@ import net.minecraftforge.registries.DeferredRegister
|
|||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||||
import ru.dbotthepony.mc.otm.android.DummyAndroidFeature
|
import ru.dbotthepony.mc.otm.android.DummyAndroidFeature
|
||||||
import ru.dbotthepony.mc.otm.android.feature.ExtendedReach
|
import ru.dbotthepony.mc.otm.android.feature.*
|
||||||
import ru.dbotthepony.mc.otm.android.feature.LimbOverclocking
|
|
||||||
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmor
|
|
||||||
import ru.dbotthepony.mc.otm.android.feature.NanobotsRegeneration
|
|
||||||
|
|
||||||
object AndroidFeatures {
|
object AndroidFeatures {
|
||||||
private val registry = DeferredRegister.create(AndroidFeatureType::class.java, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(AndroidFeatureType::class.java, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
val AIR_BAGS: AndroidFeatureType<*> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::DummyAndroidFeature) }
|
val AIR_BAGS: AndroidFeatureType<*> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::DummyAndroidFeature) }
|
||||||
|
val STEP_ASSIST: AndroidFeatureType<*> by registry.register(MNames.STEP_ASSIST) { AndroidFeatureType(::StepAssistFeature) }
|
||||||
val LIMB_OVERCLOCKING: AndroidFeatureType<*> by registry.register(MNames.LIMB_OVERCLOCKING) { AndroidFeatureType(::LimbOverclocking) }
|
val LIMB_OVERCLOCKING: AndroidFeatureType<*> by registry.register(MNames.LIMB_OVERCLOCKING) { AndroidFeatureType(::LimbOverclocking) }
|
||||||
val NANOBOTS_REGENERATION: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_REGENERATION) { AndroidFeatureType(::NanobotsRegeneration) }
|
val NANOBOTS_REGENERATION: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_REGENERATION) { AndroidFeatureType(::NanobotsRegeneration) }
|
||||||
val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::NanobotsArmor) }
|
val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::NanobotsArmor) }
|
||||||
|
@ -89,6 +89,15 @@ object AndroidResearch {
|
|||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val STEP_ASSIST: AndroidResearchType<*> by registry.register(MNames.STEP_ASSIST) {
|
||||||
|
AndroidResearchBuilder()
|
||||||
|
.withExperience(24)
|
||||||
|
.addFeatureResult(AndroidFeatures.STEP_ASSIST)
|
||||||
|
.withDescription()
|
||||||
|
.withIcon(ICON_STEP_ASSIST)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
val EXTENDED_REACH: AndroidResearchType<*> by registry.register(MNames.EXTENDED_REACH) {
|
val EXTENDED_REACH: AndroidResearchType<*> by registry.register(MNames.EXTENDED_REACH) {
|
||||||
AndroidResearchBuilder()
|
AndroidResearchBuilder()
|
||||||
.withExperience(40)
|
.withExperience(40)
|
||||||
|
@ -154,6 +154,7 @@ object MNames {
|
|||||||
|
|
||||||
// android features and research
|
// android features and research
|
||||||
const val AIR_BAGS = "air_bags"
|
const val AIR_BAGS = "air_bags"
|
||||||
|
const val STEP_ASSIST = "step_assist"
|
||||||
|
|
||||||
const val LIMB_OVERCLOCKING = "limb_overclocking"
|
const val LIMB_OVERCLOCKING = "limb_overclocking"
|
||||||
const val LIMB_OVERCLOCKING_1 = "limb_overclocking_1"
|
const val LIMB_OVERCLOCKING_1 = "limb_overclocking_1"
|
||||||
|
Loading…
Reference in New Issue
Block a user