More backporting
This commit is contained in:
parent
98fcacc9a8
commit
aa0a283e06
@ -170,14 +170,16 @@ class EntityRendererPanel<out S : Screen> @JvmOverloads constructor(
|
||||
return
|
||||
}
|
||||
|
||||
val renderX = width.toInt() / 2
|
||||
val renderY = (height * 0.9f).toInt()
|
||||
|
||||
InventoryScreen.renderEntityInInventoryFollowsMouse(
|
||||
graphics,
|
||||
0, 0,
|
||||
this.width.toInt(), this.height.toInt(),
|
||||
renderX,
|
||||
renderY,
|
||||
renderScale,
|
||||
0f,
|
||||
mouseX - absoluteX.toInt(),
|
||||
mouseY - absoluteY + height * 0.15f,
|
||||
absoluteX.toInt() + renderX - mouseX,
|
||||
absoluteY + height * 0.15f - mouseY,
|
||||
entity
|
||||
)
|
||||
}
|
||||
|
@ -1,29 +1,39 @@
|
||||
package ru.dbotthepony.mc.otm.data
|
||||
|
||||
import com.mojang.serialization.Codec
|
||||
import com.mojang.serialization.DataResult
|
||||
import com.mojang.serialization.Dynamic
|
||||
import com.mojang.serialization.DynamicOps
|
||||
import com.mojang.serialization.JsonOps
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder
|
||||
import net.minecraft.advancements.critereon.DamagePredicate
|
||||
import net.minecraft.advancements.critereon.DamageSourcePredicate
|
||||
import net.minecraft.advancements.critereon.EntityPredicate
|
||||
import net.minecraft.advancements.critereon.MinMaxBounds
|
||||
import java.util.Optional
|
||||
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 {
|
||||
it.group(
|
||||
MinMaxBounds.Doubles.CODEC.fieldOf("dealt").forGetter { it.first },
|
||||
MinMaxBounds.Doubles.CODEC.fieldOf("taken").forGetter { it.second },
|
||||
DoublesCodec.fieldOf("dealt").forGetter { it.first },
|
||||
DoublesCodec.fieldOf("taken").forGetter { it.second },
|
||||
).apply(it, ::Pair)
|
||||
}
|
||||
|
||||
val DamagePredicateCodec: Codec<DamagePredicate> = RecordCodecBuilder.create {
|
||||
it.group(
|
||||
dealtReceived.fieldOf("damage").forGetter { it.dealtDamage to it.takenDamage },
|
||||
Codec.BOOL.optionalFieldOf("blocked").forGetter { it.blocked },
|
||||
EntityPredicate.CODEC.optionalFieldOf("source_entity").forGetter { it.sourceEntity },
|
||||
DamageSourcePredicate.CODEC.optionalFieldOf("type").forGetter { it.type },
|
||||
).apply(it) { damage, blocked, source, type -> DamagePredicate(damage.first, damage.second, source, blocked, type) }
|
||||
Codec.BOOL.optionalFieldOf("blocked").forGetter { Optional.ofNullable(it.blocked) },
|
||||
Codec.PASSTHROUGH.xmap({ EntityPredicate.fromJson(it.cast(JsonOps.INSTANCE)) }, { Dynamic(JsonOps.INSTANCE, it.serializeToJson()) }).fieldOf("source_entity").forGetter { it.sourceEntity },
|
||||
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.orElse(null), type) }
|
||||
}
|
||||
|
||||
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.server.level.ServerPlayer
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.data.DoublesCodec
|
||||
import java.util.*
|
||||
|
||||
object NanobotsArmorTrigger : MCriterionTrigger<NanobotsArmorTrigger.Instance>(ResourceLocation(OverdriveThatMatters.MOD_ID, "nanobots_armor")) {
|
||||
override val codec: Codec<Instance> = RecordCodecBuilder.create {
|
||||
it.group(
|
||||
Doubles.CODEC.fieldOf("predicate").forGetter(Instance::predicate),
|
||||
DoublesCodec.fieldOf("predicate").forGetter(Instance::predicate),
|
||||
playerPredicateCodec.forGetter(Instance::playerPredicate),
|
||||
).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_45034_
|
||||
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