mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-16 02:45:13 -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) {
|
class ItemEntity(connection: PlayConnection, entityType: EntityType, data: EntityData, position: Vec3d, rotation: EntityRotation) : Entity(connection, entityType, data, position, rotation) {
|
||||||
|
|
||||||
@get:SynchronizedEntityData
|
@get:SynchronizedEntityData
|
||||||
val item: ItemStack?
|
val stack: ItemStack? by data(ITEM_DATA, null)
|
||||||
get() = data.get(ITEM_DATA, null)
|
|
||||||
|
|
||||||
|
|
||||||
override fun onAttack(attacker: Entity): Boolean {
|
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.kutil.latch.AbstractLatch
|
||||||
import de.bixilon.minosoft.data.registries.factory.DefaultFactory
|
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.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.item.PrimedTNTEntityRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.living.animal.CowRenderer
|
import de.bixilon.minosoft.gui.rendering.entities.renderer.living.animal.CowRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.living.animal.PigRenderer
|
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<*>>(
|
object DefaultEntityModels : DefaultFactory<RegisteredEntityModelFactory<*>>(
|
||||||
PlayerRenderer,
|
PlayerRenderer,
|
||||||
PigRenderer, CowRenderer,
|
PigRenderer, CowRenderer,
|
||||||
PrimedTNTEntityRenderer, FallingBlockEntityRenderer,
|
PrimedTNTEntityRenderer, FallingBlockEntityRenderer, ItemEntityRenderer,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun load(loader: ModelLoader, latch: AbstractLatch?) {
|
fun load(loader: ModelLoader, latch: AbstractLatch?) {
|
||||||
|
@ -14,24 +14,26 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.entities.renderer.item
|
package de.bixilon.minosoft.gui.rendering.entities.renderer.item
|
||||||
|
|
||||||
import de.bixilon.kutil.observer.DataObserver.Companion.observe
|
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.data.registries.identified.Identified
|
||||||
import de.bixilon.minosoft.gui.rendering.entities.EntitiesRenderer
|
import de.bixilon.minosoft.gui.rendering.entities.EntitiesRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.entities.factory.RegisteredEntityModelFactory
|
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.entities.renderer.EntityRenderer
|
||||||
|
import de.bixilon.minosoft.gui.rendering.models.raw.display.DisplayPositions
|
||||||
|
|
||||||
class ItemEntityRenderer(renderer: EntitiesRenderer, entity: FallingBlockEntity) : EntityRenderer<FallingBlockEntity>(renderer, entity) {
|
class ItemEntityRenderer(renderer: EntitiesRenderer, entity: ItemEntity) : EntityRenderer<ItemEntity>(renderer, entity) {
|
||||||
val block = BlockFeature(this, null).register()
|
val item = ItemFeature(this, null, DisplayPositions.GROUND).register()
|
||||||
|
|
||||||
init {
|
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 {
|
companion object : RegisteredEntityModelFactory<ItemEntity>, Identified {
|
||||||
override val identifier get() = FallingBlockEntity.identifier
|
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