Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class IItemRenderer{
- val mc: Minecraft = Minecraft.getMinecraft
- val textureManager: TextureManager= mc.getTextureManager
- def render(cameraTransformType: TransformType,itemStack: ItemStack,entity: EntityLivingBase): Unit
- }
- class ItemRendererManager {
- val itemRendererIndex = new mutable.OpenHashMap[String,IItemRenderer]
- private val itemModelResourceLocation = new ModelResourceLocation(advancedAuromancyModId+":empty", "inventory")
- def registerItemRenderer(item: Item, itemRender: IItemRenderer): Unit = {
- println("test1",item.delegate.name().toString)
- itemRendererIndex += getItemName(item)->itemRender
- Minecraft.getMinecraft.getRenderItem.getItemModelMesher.register(item, 0, itemModelResourceLocation)
- }
- @SubscribeEvent def bakeModel(event: ModelBakeEvent): Unit = {
- println("test",itemRendererIndex.size)
- event.getModelRegistry.putObject(itemModelResourceLocation, new WrappedModel(itemRendererIndex))
- }
- class WrappedModel(itemRendererIndex: mutable.OpenHashMap[String, IItemRenderer]) extends IBakedModel with IPerspectiveAwareModel{
- var _entity:EntityLivingBase = null
- var _itemStack:ItemStack = null
- override def handlePerspective(cameraTransformType: TransformType): tuple.Pair[_ <: IBakedModel, Matrix4f] = {
- import net.minecraftforge.common.model.TRSRTransformation
- val itemCameraTransforms = getItemCameraTransforms
- val itemTransformVec3f = itemCameraTransforms.getTransform(cameraTransformType)
- val tr = new TRSRTransformation(itemTransformVec3f)
- val mat = tr.getMatrix
- GlStateManager.pushMatrix()
- GlStateManager.translate(0.5F, 0.5F, 0.5F)
- GlStateManager.scale(1.0F, 1.0F, 1.0F)
- itemRendererIndex.get(getItemName(_itemStack)).foreach(_.render(cameraTransformType,_itemStack,_entity))
- _itemStack=null
- _entity=null
- GlStateManager.popMatrix()
- org.apache.commons.lang3.tuple.Pair.of(this, mat)
- }
- object ItemStackCollectorItemOverrideList extends ItemOverrideList(Collections.emptyList()) {
- override def handleItemState(originalModel: IBakedModel, stack: ItemStack, world: World, entity: EntityLivingBase): IBakedModel = {
- _itemStack=stack
- _entity=entity
- super.handleItemState(originalModel,stack,world,entity)
- }
- }
- val mc: Minecraft = Minecraft.getMinecraft
- val textureManager: TextureManager= mc.getTextureManager
- override def isAmbientOcclusion = true
- override def getQuads(state: IBlockState, side: EnumFacing, rand: Long): util.List[BakedQuad] = Collections.emptyList()
- override def isBuiltInRenderer: Boolean = false
- override def getParticleTexture: TextureAtlasSprite = mc.getTextureMapBlocks.getMissingSprite
- override def isGui3d: Boolean = true
- override def getOverrides: ItemOverrideList = ItemStackCollectorItemOverrideList
- override def getItemCameraTransforms: ItemCameraTransforms = ItemCameraTransforms.DEFAULT
- }
- @inline private def getItemName(item: Item):String = item.delegate.name().toString
- @inline private def getItemName(itemStack: ItemStack):String = getItemName(itemStack.getItem)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement