Update cargo crate block entity
This commit is contained in:
parent
d24cf38b17
commit
350c1cc0a9
@ -3,10 +3,12 @@ package ru.dbotthepony.mc.otm.block.entity.decorative
|
|||||||
import net.minecraft.advancements.CriteriaTriggers
|
import net.minecraft.advancements.CriteriaTriggers
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.HolderLookup
|
import net.minecraft.core.HolderLookup
|
||||||
|
import net.minecraft.core.registries.Registries
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.nbt.LongTag
|
import net.minecraft.nbt.LongTag
|
||||||
import net.minecraft.nbt.StringTag
|
import net.minecraft.nbt.StringTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
|
import net.minecraft.resources.ResourceKey
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
@ -21,6 +23,7 @@ import net.minecraft.world.level.block.Block
|
|||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.level.gameevent.GameEvent
|
import net.minecraft.world.level.gameevent.GameEvent
|
||||||
import net.minecraft.world.level.storage.loot.LootParams
|
import net.minecraft.world.level.storage.loot.LootParams
|
||||||
|
import net.minecraft.world.level.storage.loot.LootTable
|
||||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
|
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets
|
||||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
|
import net.minecraft.world.level.storage.loot.parameters.LootContextParams
|
||||||
import net.minecraft.world.phys.Vec3
|
import net.minecraft.world.phys.Vec3
|
||||||
@ -62,7 +65,7 @@ class CargoCrateBlockEntity(
|
|||||||
unpackLootTable(player)
|
unpackLootTable(player)
|
||||||
}
|
}
|
||||||
|
|
||||||
var lootTable: ResourceLocation? = null
|
var lootTable: ResourceKey<LootTable>? = null
|
||||||
var lootTableSeed: Long? = null
|
var lootTableSeed: Long? = null
|
||||||
|
|
||||||
fun onPlayerOpen() {
|
fun onPlayerOpen() {
|
||||||
@ -97,7 +100,7 @@ class CargoCrateBlockEntity(
|
|||||||
|
|
||||||
override fun loadAdditional(nbt: CompoundTag, registry: HolderLookup.Provider) {
|
override fun loadAdditional(nbt: CompoundTag, registry: HolderLookup.Provider) {
|
||||||
super.loadAdditional(nbt, registry)
|
super.loadAdditional(nbt, registry)
|
||||||
lootTable = nbt.map(LOOT_TABLE_KEY) { it: StringTag -> ResourceLocation.tryParse(it.asString) }
|
lootTable = nbt.map(LOOT_TABLE_KEY) { it: StringTag -> ResourceLocation.tryParse(it.asString)?.let { ResourceKey.create(Registries.LOOT_TABLE, it) } }
|
||||||
lootTableSeed = (nbt[LOOT_TABLE_SEED_KEY] as LongTag?)?.asLong
|
lootTableSeed = (nbt[LOOT_TABLE_SEED_KEY] as LongTag?)?.asLong
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,7 +109,7 @@ class CargoCrateBlockEntity(
|
|||||||
val lootTableSeed = lootTableSeed ?: 0L
|
val lootTableSeed = lootTableSeed ?: 0L
|
||||||
val server = level?.server ?: return
|
val server = level?.server ?: return
|
||||||
|
|
||||||
val loot = server.loot.getLootTable(lootTable)
|
val loot = server.reloadableRegistries().getLootTable(lootTable)
|
||||||
|
|
||||||
if (ply is ServerPlayer) {
|
if (ply is ServerPlayer) {
|
||||||
CriteriaTriggers.GENERATE_LOOT.trigger(ply, lootTable)
|
CriteriaTriggers.GENERATE_LOOT.trigger(ply, lootTable)
|
||||||
|
Loading…
Reference in New Issue
Block a user