More backporting
This commit is contained in:
parent
98fcacc9a8
commit
aa0a283e06
@ -170,14 +170,16 @@ class EntityRendererPanel<out S : Screen> @JvmOverloads constructor(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val renderX = width.toInt() / 2
|
||||||
|
val renderY = (height * 0.9f).toInt()
|
||||||
|
|
||||||
InventoryScreen.renderEntityInInventoryFollowsMouse(
|
InventoryScreen.renderEntityInInventoryFollowsMouse(
|
||||||
graphics,
|
graphics,
|
||||||
0, 0,
|
renderX,
|
||||||
this.width.toInt(), this.height.toInt(),
|
renderY,
|
||||||
renderScale,
|
renderScale,
|
||||||
0f,
|
absoluteX.toInt() + renderX - mouseX,
|
||||||
mouseX - absoluteX.toInt(),
|
absoluteY + height * 0.15f - mouseY,
|
||||||
mouseY - absoluteY + height * 0.15f,
|
|
||||||
entity
|
entity
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,29 +1,39 @@
|
|||||||
package ru.dbotthepony.mc.otm.data
|
package ru.dbotthepony.mc.otm.data
|
||||||
|
|
||||||
import com.mojang.serialization.Codec
|
import com.mojang.serialization.Codec
|
||||||
|
import com.mojang.serialization.DataResult
|
||||||
import com.mojang.serialization.Dynamic
|
import com.mojang.serialization.Dynamic
|
||||||
|
import com.mojang.serialization.DynamicOps
|
||||||
import com.mojang.serialization.JsonOps
|
import com.mojang.serialization.JsonOps
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder
|
import com.mojang.serialization.codecs.RecordCodecBuilder
|
||||||
import net.minecraft.advancements.critereon.DamagePredicate
|
import net.minecraft.advancements.critereon.DamagePredicate
|
||||||
import net.minecraft.advancements.critereon.DamageSourcePredicate
|
import net.minecraft.advancements.critereon.DamageSourcePredicate
|
||||||
import net.minecraft.advancements.critereon.EntityPredicate
|
import net.minecraft.advancements.critereon.EntityPredicate
|
||||||
import net.minecraft.advancements.critereon.MinMaxBounds
|
import net.minecraft.advancements.critereon.MinMaxBounds
|
||||||
|
import java.util.Optional
|
||||||
import kotlin.reflect.KProperty1
|
import kotlin.reflect.KProperty1
|
||||||
|
|
||||||
|
val DoublesCodec: Codec<MinMaxBounds.Doubles> = RecordCodecBuilder.create {
|
||||||
|
it.group(
|
||||||
|
Codec.DOUBLE.optionalFieldOf("min").forGetter { Optional.ofNullable(it.min) },
|
||||||
|
Codec.DOUBLE.optionalFieldOf("max").forGetter { Optional.ofNullable(it.max) },
|
||||||
|
).apply(it) { a, b -> MinMaxBounds.Doubles.between(a.orElse(null), b.orElse(null)) }
|
||||||
|
}
|
||||||
|
|
||||||
private val dealtReceived: Codec<Pair<MinMaxBounds.Doubles, MinMaxBounds.Doubles>> = RecordCodecBuilder.create {
|
private val dealtReceived: Codec<Pair<MinMaxBounds.Doubles, MinMaxBounds.Doubles>> = RecordCodecBuilder.create {
|
||||||
it.group(
|
it.group(
|
||||||
MinMaxBounds.Doubles.CODEC.fieldOf("dealt").forGetter { it.first },
|
DoublesCodec.fieldOf("dealt").forGetter { it.first },
|
||||||
MinMaxBounds.Doubles.CODEC.fieldOf("taken").forGetter { it.second },
|
DoublesCodec.fieldOf("taken").forGetter { it.second },
|
||||||
).apply(it, ::Pair)
|
).apply(it, ::Pair)
|
||||||
}
|
}
|
||||||
|
|
||||||
val DamagePredicateCodec: Codec<DamagePredicate> = RecordCodecBuilder.create {
|
val DamagePredicateCodec: Codec<DamagePredicate> = RecordCodecBuilder.create {
|
||||||
it.group(
|
it.group(
|
||||||
dealtReceived.fieldOf("damage").forGetter { it.dealtDamage to it.takenDamage },
|
dealtReceived.fieldOf("damage").forGetter { it.dealtDamage to it.takenDamage },
|
||||||
Codec.BOOL.optionalFieldOf("blocked").forGetter { it.blocked },
|
Codec.BOOL.optionalFieldOf("blocked").forGetter { Optional.ofNullable(it.blocked) },
|
||||||
EntityPredicate.CODEC.optionalFieldOf("source_entity").forGetter { it.sourceEntity },
|
Codec.PASSTHROUGH.xmap({ EntityPredicate.fromJson(it.cast(JsonOps.INSTANCE)) }, { Dynamic(JsonOps.INSTANCE, it.serializeToJson()) }).fieldOf("source_entity").forGetter { it.sourceEntity },
|
||||||
DamageSourcePredicate.CODEC.optionalFieldOf("type").forGetter { it.type },
|
Codec.PASSTHROUGH.xmap({ DamageSourcePredicate.fromJson(it.cast(JsonOps.INSTANCE)) }, { Dynamic(JsonOps.INSTANCE, it.serializeToJson()) }).fieldOf("type").forGetter { it.type },
|
||||||
).apply(it) { damage, blocked, source, type -> DamagePredicate(damage.first, damage.second, source, blocked, type) }
|
).apply(it) { damage, blocked, source, type -> DamagePredicate(damage.first, damage.second, source, blocked.orElse(null), type) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <V, T1> simpleCodec(factory: (T1) -> V, field1: KProperty1<V, T1>, codec1: Codec<T1>): Codec<V> {
|
fun <V, T1> simpleCodec(factory: (T1) -> V, field1: KProperty1<V, T1>, codec1: Codec<T1>): Codec<V> {
|
||||||
|
@ -7,12 +7,13 @@ import net.minecraft.advancements.critereon.MinMaxBounds.Doubles
|
|||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.data.DoublesCodec
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object NanobotsArmorTrigger : MCriterionTrigger<NanobotsArmorTrigger.Instance>(ResourceLocation(OverdriveThatMatters.MOD_ID, "nanobots_armor")) {
|
object NanobotsArmorTrigger : MCriterionTrigger<NanobotsArmorTrigger.Instance>(ResourceLocation(OverdriveThatMatters.MOD_ID, "nanobots_armor")) {
|
||||||
override val codec: Codec<Instance> = RecordCodecBuilder.create {
|
override val codec: Codec<Instance> = RecordCodecBuilder.create {
|
||||||
it.group(
|
it.group(
|
||||||
Doubles.CODEC.fieldOf("predicate").forGetter(Instance::predicate),
|
DoublesCodec.fieldOf("predicate").forGetter(Instance::predicate),
|
||||||
playerPredicateCodec.forGetter(Instance::playerPredicate),
|
playerPredicateCodec.forGetter(Instance::playerPredicate),
|
||||||
).apply(it, ::Instance)
|
).apply(it, ::Instance)
|
||||||
}
|
}
|
||||||
|
@ -179,3 +179,9 @@ public net.minecraft.advancements.critereon.ItemPredicate f_45036_
|
|||||||
public net.minecraft.advancements.critereon.ItemPredicate f_45035_
|
public net.minecraft.advancements.critereon.ItemPredicate f_45035_
|
||||||
public net.minecraft.advancements.critereon.ItemPredicate f_45034_
|
public net.minecraft.advancements.critereon.ItemPredicate f_45034_
|
||||||
public net.minecraft.advancements.critereon.ItemPredicate f_45029_
|
public net.minecraft.advancements.critereon.ItemPredicate f_45029_
|
||||||
|
|
||||||
|
public net.minecraft.advancements.critereon.DamagePredicate f_24906_ # blocked
|
||||||
|
public net.minecraft.advancements.critereon.DamagePredicate f_24903_ # dealtDamage
|
||||||
|
public net.minecraft.advancements.critereon.DamagePredicate f_24905_ # sourceEntity
|
||||||
|
public net.minecraft.advancements.critereon.DamagePredicate f_24904_ # takenDamage
|
||||||
|
public net.minecraft.advancements.critereon.DamagePredicate f_24907_ # type
|
||||||
|
Loading…
Reference in New Issue
Block a user