minor codebase cleanup

This commit is contained in:
Adrian Siekierka 2022-09-01 22:39:02 +02:00
parent 4e696513e7
commit c04954c71a
4 changed files with 22 additions and 16 deletions

View File

@ -21,10 +21,10 @@ import li.cil.oc.common.tileentity
import li.cil.oc.common.{Proxy => CommonProxy}
import li.cil.oc.util.Audio
import net.minecraft.block.Block
import net.minecraft.client.renderer.entity.{Render, RenderManager}
import net.minecraft.item.Item
import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.fml.client.registry.ClientRegistry
import net.minecraftforge.fml.client.registry.RenderingRegistry
import net.minecraftforge.fml.client.registry.{ClientRegistry, IRenderFactory, RenderingRegistry}
import net.minecraftforge.fml.common.event.FMLInitializationEvent
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent
import net.minecraftforge.fml.common.network.NetworkRegistry
@ -42,6 +42,10 @@ private[oc] class Proxy extends CommonProxy {
MinecraftForge.EVENT_BUS.register(NetSplitterModel)
ModelInitialization.preInit()
RenderingRegistry.registerEntityRenderingHandler(classOf[Drone], new IRenderFactory[Drone] {
override def createRenderFor(manager: RenderManager): Render[_ >: Drone] = new DroneRenderer(manager)
})
}
override def init(e: FMLInitializationEvent) {
@ -51,8 +55,6 @@ private[oc] class Proxy extends CommonProxy {
ColorHandler.init()
RenderingRegistry.registerEntityRenderingHandler(classOf[Drone], DroneRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Adapter], AdapterRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Assembler], AssemblerRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Case], CaseRenderer)

View File

@ -2,12 +2,12 @@ package li.cil.oc.client.renderer.block
import java.util
import java.util.Collections
import li.cil.oc.Constants
import li.cil.oc.api
import li.cil.oc.client.Textures
import li.cil.oc.common.Tier
import li.cil.oc.common.block
import li.cil.oc.common.block.Screen
import li.cil.oc.common.tileentity
import li.cil.oc.util.Color
import net.minecraft.block.state.IBlockState
@ -82,9 +82,8 @@ object ScreenModel extends SmartBlockModelBase {
private def xy2part(value: Int, high: Int) = if (value == 0) 2 else if (value == high) 0 else 1
class ItemModel(val stack: ItemStack) extends SmartBlockModelBase {
val color = api.Items.get(stack).name() match {
case Constants.BlockName.ScreenTier2 => Color.byTier(Tier.Two)
case Constants.BlockName.ScreenTier3 => Color.byTier(Tier.Three)
val color = api.Items.get(stack).block() match {
case screen: Screen => Color.byTier(screen.tier)
case _ => Color.byTier(Tier.One)
}

View File

@ -5,9 +5,9 @@ import li.cil.oc.common.entity.Drone
import li.cil.oc.util.RenderState
import net.minecraft.client.Minecraft
import net.minecraft.client.renderer.GlStateManager
import net.minecraft.client.renderer.entity.Render
import net.minecraft.client.renderer.entity.{Render, RenderManager}
object DroneRenderer extends Render[Drone](Minecraft.getMinecraft.getRenderManager) {
class DroneRenderer(manager: RenderManager) extends Render[Drone](manager) {
val model = new ModelQuadcopter()
override def doRender(entity: Drone, x: Double, y: Double, z: Double, yaw: Float, dt: Float) {

View File

@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
import li.cil.oc.Constants
import li.cil.oc.Settings
import li.cil.oc.api
import li.cil.oc.api.detail.ItemInfo
import li.cil.oc.client.Textures
import li.cil.oc.common.tileentity.Screen
import li.cil.oc.integration.util.Wrench
@ -13,6 +14,7 @@ import net.minecraft.client.renderer.OpenGlHelper
import net.minecraft.client.renderer.Tessellator
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
import net.minecraft.client.renderer.vertex.DefaultVertexFormats
import net.minecraft.item.ItemStack
import net.minecraft.util.EnumFacing
import org.lwjgl.opengl.GL11
import org.lwjgl.opengl.GL14
@ -27,11 +29,6 @@ object ScreenRenderer extends TileEntitySpecialRenderer[Screen] {
private var screen: Screen = null
private lazy val screens = Set(
api.Items.get(Constants.BlockName.ScreenTier1),
api.Items.get(Constants.BlockName.ScreenTier2),
api.Items.get(Constants.BlockName.ScreenTier3))
private val canUseBlendColor = GLContext.getCapabilities.OpenGL14
// ----------------------------------------------------------------------- //
@ -125,11 +122,19 @@ object ScreenRenderer extends TileEntitySpecialRenderer[Screen] {
GlStateManager.scale(1, -1, 1)
}
private def isScreen(stack: ItemStack): Boolean = api.Items.get(stack) match {
case i: ItemInfo => i.block() match {
case _: li.cil.oc.common.block.Screen => true
case _ => false
}
case _ => false
}
private def drawOverlay() = if (screen.facing == EnumFacing.UP || screen.facing == EnumFacing.DOWN) {
// Show up vector overlay when holding same screen block.
val stack = Minecraft.getMinecraft.player.getHeldItemMainhand
if (!stack.isEmpty) {
if (Wrench.holdsApplicableWrench(Minecraft.getMinecraft.player, screen.getPos) || screens.contains(api.Items.get(stack))) {
if (Wrench.holdsApplicableWrench(Minecraft.getMinecraft.player, screen.getPos) || isScreen(stack)) {
GlStateManager.pushMatrix()
transform()
GlStateManager.depthMask(false)