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.common.{Proxy => CommonProxy}
import li.cil.oc.util.Audio import li.cil.oc.util.Audio
import net.minecraft.block.Block import net.minecraft.block.Block
import net.minecraft.client.renderer.entity.{Render, RenderManager}
import net.minecraft.item.Item import net.minecraft.item.Item
import net.minecraftforge.common.MinecraftForge import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.fml.client.registry.ClientRegistry import net.minecraftforge.fml.client.registry.{ClientRegistry, IRenderFactory, RenderingRegistry}
import net.minecraftforge.fml.client.registry.RenderingRegistry
import net.minecraftforge.fml.common.event.FMLInitializationEvent import net.minecraftforge.fml.common.event.FMLInitializationEvent
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent import net.minecraftforge.fml.common.event.FMLPreInitializationEvent
import net.minecraftforge.fml.common.network.NetworkRegistry import net.minecraftforge.fml.common.network.NetworkRegistry
@ -42,6 +42,10 @@ private[oc] class Proxy extends CommonProxy {
MinecraftForge.EVENT_BUS.register(NetSplitterModel) MinecraftForge.EVENT_BUS.register(NetSplitterModel)
ModelInitialization.preInit() ModelInitialization.preInit()
RenderingRegistry.registerEntityRenderingHandler(classOf[Drone], new IRenderFactory[Drone] {
override def createRenderFor(manager: RenderManager): Render[_ >: Drone] = new DroneRenderer(manager)
})
} }
override def init(e: FMLInitializationEvent) { override def init(e: FMLInitializationEvent) {
@ -51,8 +55,6 @@ private[oc] class Proxy extends CommonProxy {
ColorHandler.init() ColorHandler.init()
RenderingRegistry.registerEntityRenderingHandler(classOf[Drone], DroneRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Adapter], AdapterRenderer) ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Adapter], AdapterRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Assembler], AssemblerRenderer) ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Assembler], AssemblerRenderer)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[tileentity.Case], CaseRenderer) 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
import java.util.Collections import java.util.Collections
import li.cil.oc.Constants import li.cil.oc.Constants
import li.cil.oc.api import li.cil.oc.api
import li.cil.oc.client.Textures import li.cil.oc.client.Textures
import li.cil.oc.common.Tier import li.cil.oc.common.Tier
import li.cil.oc.common.block import li.cil.oc.common.block
import li.cil.oc.common.block.Screen
import li.cil.oc.common.tileentity import li.cil.oc.common.tileentity
import li.cil.oc.util.Color import li.cil.oc.util.Color
import net.minecraft.block.state.IBlockState 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 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 { class ItemModel(val stack: ItemStack) extends SmartBlockModelBase {
val color = api.Items.get(stack).name() match { val color = api.Items.get(stack).block() match {
case Constants.BlockName.ScreenTier2 => Color.byTier(Tier.Two) case screen: Screen => Color.byTier(screen.tier)
case Constants.BlockName.ScreenTier3 => Color.byTier(Tier.Three)
case _ => Color.byTier(Tier.One) 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 li.cil.oc.util.RenderState
import net.minecraft.client.Minecraft import net.minecraft.client.Minecraft
import net.minecraft.client.renderer.GlStateManager 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() val model = new ModelQuadcopter()
override def doRender(entity: Drone, x: Double, y: Double, z: Double, yaw: Float, dt: Float) { 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.Constants
import li.cil.oc.Settings import li.cil.oc.Settings
import li.cil.oc.api import li.cil.oc.api
import li.cil.oc.api.detail.ItemInfo
import li.cil.oc.client.Textures import li.cil.oc.client.Textures
import li.cil.oc.common.tileentity.Screen import li.cil.oc.common.tileentity.Screen
import li.cil.oc.integration.util.Wrench 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.Tessellator
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
import net.minecraft.client.renderer.vertex.DefaultVertexFormats import net.minecraft.client.renderer.vertex.DefaultVertexFormats
import net.minecraft.item.ItemStack
import net.minecraft.util.EnumFacing import net.minecraft.util.EnumFacing
import org.lwjgl.opengl.GL11 import org.lwjgl.opengl.GL11
import org.lwjgl.opengl.GL14 import org.lwjgl.opengl.GL14
@ -27,11 +29,6 @@ object ScreenRenderer extends TileEntitySpecialRenderer[Screen] {
private var screen: Screen = null 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 private val canUseBlendColor = GLContext.getCapabilities.OpenGL14
// ----------------------------------------------------------------------- // // ----------------------------------------------------------------------- //
@ -125,11 +122,19 @@ object ScreenRenderer extends TileEntitySpecialRenderer[Screen] {
GlStateManager.scale(1, -1, 1) 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) { private def drawOverlay() = if (screen.facing == EnumFacing.UP || screen.facing == EnumFacing.DOWN) {
// Show up vector overlay when holding same screen block. // Show up vector overlay when holding same screen block.
val stack = Minecraft.getMinecraft.player.getHeldItemMainhand val stack = Minecraft.getMinecraft.player.getHeldItemMainhand
if (!stack.isEmpty) { 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() GlStateManager.pushMatrix()
transform() transform()
GlStateManager.depthMask(false) GlStateManager.depthMask(false)