Added Network Tool Facade Transparency Option.

This commit is contained in:
AlgorithmX2
2014-08-02 23:53:34 -05:00
parent 06856eb957
commit c45d7f1b71
15 changed files with 257 additions and 34 deletions
+31
View File
@@ -33,6 +33,7 @@ import net.minecraftforge.common.MinecraftForge;
import org.lwjgl.opengl.GL11;
import appeng.api.parts.CableRenderMode;
import appeng.api.util.AEColor;
import appeng.block.AEBaseBlock;
import appeng.client.render.BaseBlockRender;
@@ -72,6 +73,36 @@ public class ClientHelper extends ServerHelper
private static RenderItem itemRenderer = new RenderItem();
private static RenderBlocks blockRenderer = new RenderBlocks();
@Override
public CableRenderMode getRenderMode()
{
if ( Platform.isServer() )
return super.getRenderMode();
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.thePlayer;
return renderModeForPlayer( player );
}
@Override
public void triggerUpdates()
{
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.thePlayer;
if ( player == null )
return;
int x = (int) player.posX;
int y = (int) player.posY;
int z = (int) player.posZ;
int range = 16 * 16;
mc.theWorld.markBlockRangeForRenderUpdate( x - range, y - range, z - range, x + range, y + range, z + range );
}
@SubscribeEvent
public void postPlayerRender(RenderLivingEvent.Pre p)
{
@@ -1,19 +1,54 @@
package appeng.client.gui.implementations;
import java.io.IOException;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import appeng.api.implementations.guiobjects.INetworkTool;
import appeng.client.gui.AEBaseGui;
import appeng.client.gui.widgets.GuiToggleButton;
import appeng.container.implementations.ContainerNetworkTool;
import appeng.core.AELog;
import appeng.core.localization.GuiText;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketValueConfig;
public class GuiNetworkTool extends AEBaseGui
{
GuiToggleButton tFacades;
public GuiNetworkTool(InventoryPlayer inventoryPlayer, INetworkTool te) {
super( new ContainerNetworkTool( inventoryPlayer, te ) );
this.ySize = 166;
}
@Override
protected void actionPerformed(GuiButton btn)
{
super.actionPerformed( btn );
try
{
if ( btn == tFacades )
NetworkHandler.instance.sendToServer( new PacketValueConfig( "NetworkTool", "Toggle" ) );
}
catch (IOException e)
{
AELog.error( e );
}
}
@Override
public void initGui()
{
super.initGui();
tFacades = new GuiToggleButton( this.guiLeft - 18, guiTop + 8, 23, 22, GuiText.TransparentFacades.getLocal(), GuiText.TransparentFacadesHint.getLocal() );
buttonList.add( tFacades );
}
@Override
public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY)
{
@@ -24,6 +59,9 @@ public class GuiNetworkTool extends AEBaseGui
@Override
public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY)
{
if ( tFacades != null )
tFacades.setState( ((ContainerNetworkTool) inventorySlots).facadeMode );
fontRendererObj.drawString( getGuiDisplayName( GuiText.NetworkTool.getLocal() ), 8, 6, 4210752 );
fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, ySize - 96 + 3, 4210752 );
}
+3 -2
View File
@@ -234,7 +234,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
brightnessBottomRight = z[1];
brightnessTopLeft = z[2];
brightnessTopRight = z[3];
Tessellator.instance.setColorOpaque_I( z[4] );
Tessellator.instance.setColorRGBA_I( z[4], (int) (opacity * 255) );
colorRedTopLeft = c[0];
colorGreenTopLeft = c[1];
@@ -430,7 +430,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
int out = (high << 16) | low;
Tessellator.instance.setColorOpaque_F( r, g, b );
Tessellator.instance.setColorRGBA_F( r, g, b, opacity );
Tessellator.instance.setBrightness( out );
}
@@ -657,6 +657,7 @@ public class RenderBlocksWorkaround extends RenderBlocks
}
int lightHashTmp[] = new int[27];
public float opacity = 1.0f;
private int getLightingHash(Block blk, IBlockAccess w, int x, int y, int z)
{