mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-15 10:25:06 -04:00
item entity renderer
This commit is contained in:
parent
2da0531fca
commit
7a2c29b524
@ -29,8 +29,7 @@ import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
|
||||
class ItemEntity(connection: PlayConnection, entityType: EntityType, data: EntityData, position: Vec3d, rotation: EntityRotation) : Entity(connection, entityType, data, position, rotation) {
|
||||
|
||||
@get:SynchronizedEntityData
|
||||
val item: ItemStack?
|
||||
get() = data.get(ITEM_DATA, null)
|
||||
val stack: ItemStack? by data(ITEM_DATA, null)
|
||||
|
||||
|
||||
override fun onAttack(attacker: Entity): Boolean {
|
||||
|
@ -16,6 +16,7 @@ package de.bixilon.minosoft.gui.rendering.entities.factory
|
||||
import de.bixilon.kutil.latch.AbstractLatch
|
||||
import de.bixilon.minosoft.data.registries.factory.DefaultFactory
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.item.FallingBlockEntityRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.item.ItemEntityRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.item.PrimedTNTEntityRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.living.animal.CowRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.living.animal.PigRenderer
|
||||
@ -28,7 +29,7 @@ import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
object DefaultEntityModels : DefaultFactory<RegisteredEntityModelFactory<*>>(
|
||||
PlayerRenderer,
|
||||
PigRenderer, CowRenderer,
|
||||
PrimedTNTEntityRenderer, FallingBlockEntityRenderer,
|
||||
PrimedTNTEntityRenderer, FallingBlockEntityRenderer, ItemEntityRenderer,
|
||||
) {
|
||||
|
||||
fun load(loader: ModelLoader, latch: AbstractLatch?) {
|
||||
|
@ -14,24 +14,26 @@
|
||||
package de.bixilon.minosoft.gui.rendering.entities.renderer.item
|
||||
|
||||
import de.bixilon.kutil.observer.DataObserver.Companion.observe
|
||||
import de.bixilon.minosoft.data.entities.entities.item.FallingBlockEntity
|
||||
import de.bixilon.minosoft.data.entities.entities.item.ItemEntity
|
||||
import de.bixilon.minosoft.data.registries.identified.Identified
|
||||
import de.bixilon.minosoft.gui.rendering.entities.EntitiesRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.factory.RegisteredEntityModelFactory
|
||||
import de.bixilon.minosoft.gui.rendering.entities.feature.block.BlockFeature
|
||||
import de.bixilon.minosoft.gui.rendering.entities.feature.item.ItemFeature
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.EntityRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.models.raw.display.DisplayPositions
|
||||
|
||||
class ItemEntityRenderer(renderer: EntitiesRenderer, entity: FallingBlockEntity) : EntityRenderer<FallingBlockEntity>(renderer, entity) {
|
||||
val block = BlockFeature(this, null).register()
|
||||
class ItemEntityRenderer(renderer: EntitiesRenderer, entity: ItemEntity) : EntityRenderer<ItemEntity>(renderer, entity) {
|
||||
val item = ItemFeature(this, null, DisplayPositions.GROUND).register()
|
||||
|
||||
init {
|
||||
entity::blockState.observe(this, true) { block.state = it }
|
||||
entity::stack.observe(this, true) { item.stack = it }
|
||||
// TODO: rotate, lift up and down
|
||||
}
|
||||
|
||||
|
||||
companion object : RegisteredEntityModelFactory<FallingBlockEntity>, Identified {
|
||||
override val identifier get() = FallingBlockEntity.identifier
|
||||
companion object : RegisteredEntityModelFactory<ItemEntity>, Identified {
|
||||
override val identifier get() = ItemEntity.identifier
|
||||
|
||||
override fun create(renderer: EntitiesRenderer, entity: FallingBlockEntity) = ItemEntityRenderer(renderer, entity)
|
||||
override fun create(renderer: EntitiesRenderer, entity: ItemEntity) = ItemEntityRenderer(renderer, entity)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user