Rename beforeDroppingItems to dropItems, and change logic
This commit is contained in:
parent
0a9e90bec6
commit
22ebdbb1eb
@ -14,6 +14,7 @@ import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.NbtOps
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.ComponentSerialization
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.util.RandomSource
|
||||
import net.minecraft.world.Containers
|
||||
import net.minecraft.world.InteractionResult
|
||||
@ -259,15 +260,11 @@ open class MatteryBlock(properties: Properties = DEFAULT_PROPERTIES) : Block(pro
|
||||
newBlockState: BlockState,
|
||||
movedByPiston: Boolean
|
||||
) {
|
||||
if (!oldBlockState.`is`(newBlockState.block) && !level.isClientSide) {
|
||||
if (!oldBlockState.`is`(newBlockState.block) && level is ServerLevel) {
|
||||
val blockentity = level.getBlockEntity(blockPos)
|
||||
|
||||
if (blockentity is MatteryBlockEntity) {
|
||||
blockentity.beforeDroppingItems(oldBlockState, level, blockPos, newBlockState, movedByPiston)
|
||||
|
||||
for (container in blockentity.droppableContainers)
|
||||
Containers.dropContents(level, blockPos, container)
|
||||
|
||||
blockentity.dropItems(oldBlockState, level, blockPos, newBlockState, movedByPiston)
|
||||
level.updateNeighbourForOutputSignal(blockPos, this)
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.Container
|
||||
import net.minecraft.world.Containers
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.level.ChunkPos
|
||||
import net.minecraft.world.level.Level
|
||||
@ -70,7 +71,7 @@ import kotlin.collections.ArrayList
|
||||
/**
|
||||
* Absolute barebone (lol) block entity class in Overdrive that Matters, providing bare minimum (lulmao, minecraft engine) functionality
|
||||
*/
|
||||
abstract class MatteryBlockEntity(p_155228_: BlockEntityType<*>, p_155229_: BlockPos, p_155230_: BlockState) : BlockEntity(p_155228_, p_155229_, p_155230_), INeighbourChangeListener {
|
||||
abstract class MatteryBlockEntity(type: BlockEntityType<*>, pos: BlockPos, state: BlockState) : BlockEntity(type, pos, state), INeighbourChangeListener {
|
||||
private val sidelessCaps = Reference2ObjectOpenHashMap<BlockCapability<*, *>, Any>()
|
||||
private val sidedCaps = Array(RelativeSide.entries.size) {
|
||||
Reference2ObjectOpenHashMap<BlockCapability<*, *>, ControllableCapability<*>>()
|
||||
@ -121,7 +122,11 @@ abstract class MatteryBlockEntity(p_155228_: BlockEntityType<*>, p_155229_: Bloc
|
||||
_neighbourChangeListeners.add(listener)
|
||||
}
|
||||
|
||||
open fun beforeDroppingItems(oldBlockState: BlockState, level: Level, blockPos: BlockPos, newBlockState: BlockState, movedByPiston: Boolean) {}
|
||||
open fun dropItems(oldBlockState: BlockState, level: ServerLevel, blockPos: BlockPos, newBlockState: BlockState, movedByPiston: Boolean) {
|
||||
for (container in droppableContainers)
|
||||
Containers.dropContents(level, blockPos, container)
|
||||
}
|
||||
|
||||
open fun beforeDestroyedByPlayer(level: Level, blockPos: BlockPos, blockState: BlockState, player: Player) {}
|
||||
|
||||
open fun tick() {
|
||||
|
@ -55,8 +55,15 @@ class CargoCrateBlockEntity(
|
||||
}
|
||||
})
|
||||
|
||||
override fun beforeDroppingItems(oldBlockState: BlockState, level: Level, blockPos: BlockPos, newBlockState: BlockState, movedByPiston: Boolean) {
|
||||
override fun dropItems(
|
||||
oldBlockState: BlockState,
|
||||
level: ServerLevel,
|
||||
blockPos: BlockPos,
|
||||
newBlockState: BlockState,
|
||||
movedByPiston: Boolean
|
||||
) {
|
||||
unpackLootTable()
|
||||
super.dropItems(oldBlockState, level, blockPos, newBlockState, movedByPiston)
|
||||
}
|
||||
|
||||
override fun beforeDestroyedByPlayer(level: Level, blockPos: BlockPos, blockState: BlockState, player: Player) {
|
||||
|
Loading…
Reference in New Issue
Block a user