mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-13 09:26:11 -04:00
events: EntityDestroyEvent now holds single entity
This commit is contained in:
parent
119541a2b1
commit
52f750ba9a
@ -53,17 +53,11 @@ class EntityHitBoxRenderer(
|
||||
}
|
||||
})
|
||||
connection.registerEvent(CallbackEventInvoker.of<EntityDestroyEvent> {
|
||||
val meshes: MutableSet<EntityHitBoxMesh> = mutableSetOf()
|
||||
for (entity in it.entities) {
|
||||
val mesh = this.meshes.getAndRemove(entity) ?: continue
|
||||
meshes += mesh
|
||||
}
|
||||
val mesh = this.meshes.getAndRemove(it.entity) ?: return@of
|
||||
|
||||
renderWindow.queue += {
|
||||
for (mesh in meshes) {
|
||||
mesh.unload(false)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -15,15 +15,9 @@ package de.bixilon.minosoft.modding.event.events
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity
|
||||
import de.bixilon.minosoft.modding.event.EventInitiators
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.play.EntityDestroyS2CP
|
||||
import de.bixilon.minosoft.util.KUtil.entities
|
||||
|
||||
class EntityDestroyEvent(
|
||||
connection: PlayConnection,
|
||||
initiator: EventInitiators,
|
||||
val entities: Set<Entity>,
|
||||
) : PlayConnectionEvent(connection, initiator) {
|
||||
|
||||
constructor(connection: PlayConnection, packet: EntityDestroyS2CP) : this(connection, EventInitiators.SERVER, packet.entityIds.entities(connection))
|
||||
|
||||
}
|
||||
val entity: Entity,
|
||||
) : PlayConnectionEvent(connection, initiator)
|
@ -13,6 +13,7 @@
|
||||
package de.bixilon.minosoft.protocol.packets.s2c.play
|
||||
|
||||
import de.bixilon.minosoft.Minosoft
|
||||
import de.bixilon.minosoft.modding.event.EventInitiators
|
||||
import de.bixilon.minosoft.modding.event.events.EntityDestroyEvent
|
||||
import de.bixilon.minosoft.protocol.network.connection.PlayConnection
|
||||
import de.bixilon.minosoft.protocol.packets.s2c.PlayS2CPacket
|
||||
@ -35,11 +36,11 @@ class EntityDestroyS2CP(buffer: PlayInByteBuffer) : PlayS2CPacket() {
|
||||
|
||||
|
||||
override fun handle(connection: PlayConnection) {
|
||||
connection.fireEvent(EntityDestroyEvent(connection, this))
|
||||
for (entityId in entityIds) {
|
||||
val entity = connection.world.entities[entityId] ?: continue
|
||||
entity.vehicle?.passengers?.remove(entity)
|
||||
|
||||
connection.fireEvent(EntityDestroyEvent(connection, EventInitiators.SERVER, entity))
|
||||
connection.world.entities.remove(entityId)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user