From af40f5ae5cf8c1f9cedc8f825fee17bc6f2232e1 Mon Sep 17 00:00:00 2001 From: SquidDev Date: Wed, 22 Apr 2020 11:11:02 +0100 Subject: [PATCH] Add back CraftTweaker integration --- build.gradle | 11 +- .../render_old/TileEntityCableRenderer.java | 141 ------------------ 2 files changed, 2 insertions(+), 150 deletions(-) delete mode 100644 src/main/java/dan200/computercraft/client/render_old/TileEntityCableRenderer.java diff --git a/build.gradle b/build.gradle index cc7521a21..ef72382cd 100644 --- a/build.gradle +++ b/build.gradle @@ -100,6 +100,8 @@ accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg') minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" compileOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.3:api") + compileOnly fg.deobf("com.blamejared.crafttweaker:CraftTweaker-1.15.2:6.0.0.9") + runtimeOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.3") shade 'org.squiddev:Cobalt:0.5.1-SNAPSHOT' @@ -110,15 +112,6 @@ accessTransformer file('src/main/resources/META-INF/accesstransformer.cfg') deployerJars "org.apache.maven.wagon:wagon-ssh:3.0.0" } -sourceSets { - main { - java { - exclude 'dan200/computercraft/client/render_old' - exclude 'dan200/computercraft/shared/integration/crafttweaker' - } - } -} - // Compile tasks javadoc { diff --git a/src/main/java/dan200/computercraft/client/render_old/TileEntityCableRenderer.java b/src/main/java/dan200/computercraft/client/render_old/TileEntityCableRenderer.java deleted file mode 100644 index 66120e290..000000000 --- a/src/main/java/dan200/computercraft/client/render_old/TileEntityCableRenderer.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * This file is part of ComputerCraft - http://www.computercraft.info - * Copyright Daniel Ratcliffe, 2011-2020. Do not distribute without permission. - * Send enquiries to dratcliffe@gmail.com - */ -package dan200.computercraft.client.render; - -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.systems.RenderSystem; -import dan200.computercraft.ComputerCraft; -import dan200.computercraft.shared.peripheral.modem.wired.BlockCable; -import dan200.computercraft.shared.peripheral.modem.wired.CableModemVariant; -import dan200.computercraft.shared.peripheral.modem.wired.CableShapes; -import dan200.computercraft.shared.peripheral.modem.wired.TileCable; -import dan200.computercraft.shared.util.WorldUtil; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.model.IBakedModel; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.tileentity.TileEntityRenderer; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.BlockRenderLayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.model.data.EmptyModelData; -import org.lwjgl.opengl.GL11; - -import javax.annotation.Nonnull; -import java.util.Random; - -/** - * Render breaking animation only over part of a {@link TileCable}. - */ -public class TileEntityCableRenderer extends TileEntityRenderer -{ - private static final ResourceLocation[] DESTROY_STAGES = new ResourceLocation[10]; - private static final Random random = new Random(); - - static - { - for( int i = 0; i < DESTROY_STAGES.length; i++ ) - { - DESTROY_STAGES[i] = new ResourceLocation( "block/destroy_stage_" + i ); - } - } - - @Override - public void render( @Nonnull TileCable te, double x, double y, double z, float partialTicks, int destroyStage ) - { - if( destroyStage < 0 ) return; - - BlockPos pos = te.getPos(); - - Minecraft mc = Minecraft.getInstance(); - - RayTraceResult hit = mc.objectMouseOver; - if( hit == null || hit.getType() != RayTraceResult.Type.BLOCK || !((BlockRayTraceResult) hit).getPos().equals( pos ) ) - { - return; - } - - World world = te.getWorld(); - BlockState state = world.getBlockState( pos ); - Block block = state.getBlock(); - if( block != ComputerCraft.Blocks.cable ) return; - - state = WorldUtil.isVecInside( CableShapes.getModemShape( state ), hit.getHitVec().subtract( pos.getX(), pos.getY(), pos.getZ() ) ) - ? block.getDefaultState().with( BlockCable.MODEM, state.get( BlockCable.MODEM ) ) - : state.with( BlockCable.MODEM, CableModemVariant.None ); - - IBakedModel model = mc.getBlockRendererDispatcher().getModelForState( state ); - - preRenderDamagedBlocks(); - - ForgeHooksClient.setRenderLayer( block.getRenderLayer() ); - - // See BlockRendererDispatcher#renderBlockDamage - TextureAtlasSprite breakingTexture = mc.getTextureMap().getSprite( DESTROY_STAGES[destroyStage] ); - - BufferBuilder buffer = Tessellator.getInstance().getBuffer(); - buffer.begin( GL11.GL_QUADS, DefaultVertexFormats.BLOCK ); - buffer.setTranslation( x - pos.getX(), y - pos.getY(), z - pos.getZ() ); - buffer.noColor(); - - mc.getBlockRendererDispatcher().getBlockModelRenderer().renderModel( - world, - ForgeHooksClient.getDamageModel( model, breakingTexture, state, world, pos, 0 ), - state, pos, buffer, true, random, state.getPositionRandom( pos ), EmptyModelData.INSTANCE - ); - - ForgeHooksClient.setRenderLayer( BlockRenderLayer.SOLID ); - - buffer.setTranslation( 0, 0, 0 ); - Tessellator.getInstance().draw(); - - postRenderDamagedBlocks(); - } - - /** - * Set up the state for rendering block-breaking progress. - * - * @see WorldRenderer#preRenderDamagedBlocks() - */ - private void preRenderDamagedBlocks() - { - RenderSystem.disableLighting(); - - RenderSystem.enableBlend(); - RenderSystem.blendFuncSeparate( GlStateManager.SourceFactor.DST_COLOR, GlStateManager.DestFactor.SRC_COLOR, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO ); - RenderSystem.enableBlend(); - RenderSystem.color4f( 1.0F, 1.0F, 1.0F, 0.5F ); - RenderSystem.polygonOffset( -3.0F, -3.0F ); - RenderSystem.enablePolygonOffset(); - RenderSystem.alphaFunc( 516, 0.1F ); - RenderSystem.enableAlphaTest(); - RenderSystem.pushMatrix(); - } - - /** - * Tear down the state for rendering block-breaking progress. - * - * @see WorldRenderer#postRenderDamagedBlocks() - */ - private void postRenderDamagedBlocks() - { - RenderSystem.disableAlphaTest(); - RenderSystem.polygonOffset( 0.0F, 0.0F ); - RenderSystem.disablePolygonOffset(); - RenderSystem.disablePolygonOffset(); - RenderSystem.depthMask( true ); - RenderSystem.popMatrix(); - } -}