diff --git a/src/main/java/appeng/block/AEBaseBlock.java b/src/main/java/appeng/block/AEBaseBlock.java index 438efb88..2cb8128d 100644 --- a/src/main/java/appeng/block/AEBaseBlock.java +++ b/src/main/java/appeng/block/AEBaseBlock.java @@ -61,6 +61,7 @@ import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.helpers.AEGlassMaterial; import appeng.helpers.ICustomCollision; +import appeng.tile.AEBaseTile; import appeng.util.LookDirection; import appeng.util.Platform; @@ -132,27 +133,21 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return this.renderInfo; } - try - { - final BaseBlockRender renderer = this.getRenderer().newInstance(); - this.renderInfo = new BlockRenderInfo( renderer ); + final BaseBlockRender renderer = this.getRenderer(); + this.renderInfo = new BlockRenderInfo( renderer ); - return this.renderInfo; - } - catch( final InstantiationException e ) - { - throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.getRenderer(), e ); - } - catch( final IllegalAccessException e ) - { - throw new IllegalStateException( "Failed to create a new instance of " + this.getRenderer() + " because of permissions.", e ); - } + return this.renderInfo; } + /** + * Factory method to create a new render instance. + * + * @return the newly created instance. + */ @SideOnly( Side.CLIENT ) - protected Class getRenderer() + protected BaseBlockRender getRenderer() { - return BaseBlockRender.class; + return new BaseBlockRender(); } IIcon unmappedGetIcon( final IBlockAccess w, final int x, final int y, final int z, final int s ) diff --git a/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java b/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java index e4a9e787..e4b8fb0f 100644 --- a/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java +++ b/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java @@ -32,7 +32,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.api.AEApi; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCraftingCPUMonitor; import appeng.client.texture.ExtraBlockTextures; import appeng.tile.crafting.TileCraftingMonitorTile; @@ -46,9 +45,10 @@ public class BlockCraftingMonitor extends BlockCraftingUnit } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockCraftingCPUMonitor getRenderer() { - return RenderBlockCraftingCPUMonitor.class; + return new RenderBlockCraftingCPUMonitor(); } @Override diff --git a/src/main/java/appeng/block/crafting/BlockCraftingUnit.java b/src/main/java/appeng/block/crafting/BlockCraftingUnit.java index e019024f..9ce8783a 100644 --- a/src/main/java/appeng/block/crafting/BlockCraftingUnit.java +++ b/src/main/java/appeng/block/crafting/BlockCraftingUnit.java @@ -36,7 +36,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCraftingCPU; import appeng.client.texture.ExtraBlockTextures; import appeng.core.features.AEFeature; @@ -59,9 +58,10 @@ public class BlockCraftingUnit extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockCraftingCPU getRenderer() { - return RenderBlockCraftingCPU.class; + return new RenderBlockCraftingCPU(); } @Override diff --git a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java index 296ccf92..d80a4a7f 100644 --- a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java +++ b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java @@ -30,7 +30,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockAssembler; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -68,9 +67,9 @@ public class BlockMolecularAssembler extends AEBaseTileBlock @Override @SideOnly( Side.CLIENT ) - public Class getRenderer() + public RenderBlockAssembler getRenderer() { - return RenderBlockAssembler.class; + return new RenderBlockAssembler(); } @Override diff --git a/src/main/java/appeng/block/grindstone/BlockCrank.java b/src/main/java/appeng/block/grindstone/BlockCrank.java index 490f5ad4..835c7556 100644 --- a/src/main/java/appeng/block/grindstone/BlockCrank.java +++ b/src/main/java/appeng/block/grindstone/BlockCrank.java @@ -31,9 +31,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.api.implementations.tiles.ICrankable; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCrank; import appeng.core.features.AEFeature; import appeng.core.stats.Stats; @@ -56,9 +58,10 @@ public class BlockCrank extends AEBaseTileBlock } @Override - public Class getRenderer() + @SideOnly( Side.CLIENT ) + public RenderBlockCrank getRenderer() { - return RenderBlockCrank.class; + return new RenderBlockCrank(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockCharger.java b/src/main/java/appeng/block/misc/BlockCharger.java index ca75c4a1..7c5dccb3 100644 --- a/src/main/java/appeng/block/misc/BlockCharger.java +++ b/src/main/java/appeng/block/misc/BlockCharger.java @@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCharger; import appeng.client.render.effects.LightningFX; import appeng.core.AEConfig; @@ -63,9 +62,10 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockCharger getRenderer() { - return RenderBlockCharger.class; + return new RenderBlockCharger(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockInscriber.java b/src/main/java/appeng/block/misc/BlockInscriber.java index 53f0537f..de6450ea 100644 --- a/src/main/java/appeng/block/misc/BlockInscriber.java +++ b/src/main/java/appeng/block/misc/BlockInscriber.java @@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockInscriber; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -49,9 +51,10 @@ public class BlockInscriber extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockInscriber getRenderer() { - return RenderBlockInscriber.class; + return new RenderBlockInscriber(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockInterface.java b/src/main/java/appeng/block/misc/BlockInterface.java index e6aaf701..f73b4070 100644 --- a/src/main/java/appeng/block/misc/BlockInterface.java +++ b/src/main/java/appeng/block/misc/BlockInterface.java @@ -26,9 +26,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.api.util.IOrientable; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockInterface; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -48,9 +50,10 @@ public class BlockInterface extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockInterface getRenderer() { - return RenderBlockInterface.class; + return new RenderBlockInterface(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockLightDetector.java b/src/main/java/appeng/block/misc/BlockLightDetector.java index 70874874..b09422ff 100644 --- a/src/main/java/appeng/block/misc/BlockLightDetector.java +++ b/src/main/java/appeng/block/misc/BlockLightDetector.java @@ -91,9 +91,10 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderQuartzTorch getRenderer() { - return RenderQuartzTorch.class; + return new RenderQuartzTorch(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockPaint.java b/src/main/java/appeng/block/misc/BlockPaint.java index a9211c76..82fdcf3a 100644 --- a/src/main/java/appeng/block/misc/BlockPaint.java +++ b/src/main/java/appeng/block/misc/BlockPaint.java @@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockPaint; import appeng.core.features.AEFeature; import appeng.tile.misc.TilePaint; @@ -59,9 +58,10 @@ public class BlockPaint extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockPaint getRenderer() { - return RenderBlockPaint.class; + return new RenderBlockPaint(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java b/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java index 36e1d08d..d2b4419a 100644 --- a/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java +++ b/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java @@ -33,7 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockQuartzAccelerator; import appeng.client.render.effects.LightningFX; import appeng.core.AEConfig; @@ -55,9 +54,10 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockQuartzAccelerator getRenderer() { - return RenderBlockQuartzAccelerator.class; + return new RenderBlockQuartzAccelerator(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockQuartzTorch.java b/src/main/java/appeng/block/misc/BlockQuartzTorch.java index 8b8f6df3..7c1a3de7 100644 --- a/src/main/java/appeng/block/misc/BlockQuartzTorch.java +++ b/src/main/java/appeng/block/misc/BlockQuartzTorch.java @@ -39,7 +39,6 @@ import cpw.mods.fml.relauncher.SideOnly; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQuartzTorch; import appeng.client.render.effects.LightningFX; import appeng.core.AEConfig; @@ -63,9 +62,10 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderQuartzTorch getRenderer() { - return RenderQuartzTorch.class; + return new RenderQuartzTorch(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockSecurity.java b/src/main/java/appeng/block/misc/BlockSecurity.java index dceabff7..e43298c4 100644 --- a/src/main/java/appeng/block/misc/BlockSecurity.java +++ b/src/main/java/appeng/block/misc/BlockSecurity.java @@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RendererSecurity; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -47,9 +49,10 @@ public class BlockSecurity extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RendererSecurity getRenderer() { - return RendererSecurity.class; + return new RendererSecurity(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockSkyCompass.java b/src/main/java/appeng/block/misc/BlockSkyCompass.java index 535a0fd6..a42af531 100644 --- a/src/main/java/appeng/block/misc/BlockSkyCompass.java +++ b/src/main/java/appeng/block/misc/BlockSkyCompass.java @@ -37,7 +37,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockSkyCompass; import appeng.core.features.AEFeature; import appeng.helpers.ICustomCollision; @@ -57,9 +56,10 @@ public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockSkyCompass getRenderer() { - return RenderBlockSkyCompass.class; + return new RenderBlockSkyCompass(); } @Override diff --git a/src/main/java/appeng/block/misc/BlockTinyTNT.java b/src/main/java/appeng/block/misc/BlockTinyTNT.java index b3b7c5ab..f9b09993 100644 --- a/src/main/java/appeng/block/misc/BlockTinyTNT.java +++ b/src/main/java/appeng/block/misc/BlockTinyTNT.java @@ -40,9 +40,10 @@ import net.minecraft.world.Explosion; import net.minecraft.world.World; import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderTinyTNT; import appeng.client.texture.FullIcon; import appeng.core.AppEng; @@ -70,9 +71,10 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderTinyTNT getRenderer() { - return RenderTinyTNT.class; + return new RenderTinyTNT(); } @Override diff --git a/src/main/java/appeng/block/networking/BlockCableBus.java b/src/main/java/appeng/block/networking/BlockCableBus.java index 5e5c657b..ebc3268f 100644 --- a/src/main/java/appeng/block/networking/BlockCableBus.java +++ b/src/main/java/appeng/block/networking/BlockCableBus.java @@ -54,7 +54,6 @@ import appeng.api.parts.PartItemStack; import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.BusRenderHelper; import appeng.client.render.blocks.RendererCableBus; import appeng.client.texture.ExtraBlockTextures; @@ -414,9 +413,10 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RendererCableBus getRenderer() { - return RendererCableBus.class; + return new RendererCableBus(); } @Override diff --git a/src/main/java/appeng/block/networking/BlockController.java b/src/main/java/appeng/block/networking/BlockController.java index bfea1bf0..aae4341b 100644 --- a/src/main/java/appeng/block/networking/BlockController.java +++ b/src/main/java/appeng/block/networking/BlockController.java @@ -25,8 +25,10 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockController; import appeng.core.features.AEFeature; import appeng.tile.networking.TileController; @@ -54,8 +56,9 @@ public class BlockController extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockController getRenderer() { - return RenderBlockController.class; + return new RenderBlockController(); } } diff --git a/src/main/java/appeng/block/networking/BlockEnergyCell.java b/src/main/java/appeng/block/networking/BlockEnergyCell.java index 7382d1c7..ce4d65d2 100644 --- a/src/main/java/appeng/block/networking/BlockEnergyCell.java +++ b/src/main/java/appeng/block/networking/BlockEnergyCell.java @@ -34,7 +34,6 @@ import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseItemBlock; import appeng.block.AEBaseItemBlockChargeable; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockEnergyCube; import appeng.client.texture.ExtraBlockTextures; import appeng.core.features.AEFeature; @@ -55,9 +54,10 @@ public class BlockEnergyCell extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockEnergyCube getRenderer() { - return RenderBlockEnergyCube.class; + return new RenderBlockEnergyCube(); } @Override diff --git a/src/main/java/appeng/block/networking/BlockWireless.java b/src/main/java/appeng/block/networking/BlockWireless.java index 2bc0b45b..dadcb0b2 100644 --- a/src/main/java/appeng/block/networking/BlockWireless.java +++ b/src/main/java/appeng/block/networking/BlockWireless.java @@ -29,8 +29,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockWireless; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -54,9 +56,10 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockWireless getRenderer() { - return RenderBlockWireless.class; + return new RenderBlockWireless(); } @Override diff --git a/src/main/java/appeng/block/qnb/BlockQuantumBase.java b/src/main/java/appeng/block/qnb/BlockQuantumBase.java index 8d08d14b..3d2b631f 100644 --- a/src/main/java/appeng/block/qnb/BlockQuantumBase.java +++ b/src/main/java/appeng/block/qnb/BlockQuantumBase.java @@ -25,6 +25,9 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; import appeng.client.render.blocks.RenderQNB; import appeng.core.features.AEFeature; @@ -69,9 +72,10 @@ public abstract class BlockQuantumBase extends AEBaseTileBlock implements ICusto } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderQNB getRenderer() { - return RenderQNB.class; + return new RenderQNB(); } } diff --git a/src/main/java/appeng/block/solids/BlockQuartzGlass.java b/src/main/java/appeng/block/solids/BlockQuartzGlass.java index 25417025..f09944fb 100644 --- a/src/main/java/appeng/block/solids/BlockQuartzGlass.java +++ b/src/main/java/appeng/block/solids/BlockQuartzGlass.java @@ -28,7 +28,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQuartzGlass; import appeng.core.features.AEFeature; import appeng.helpers.AEGlassMaterial; @@ -46,9 +45,9 @@ public class BlockQuartzGlass extends AEBaseBlock @Override @SideOnly( Side.CLIENT ) - public Class getRenderer() + public RenderQuartzGlass getRenderer() { - return RenderQuartzGlass.class; + return new RenderQuartzGlass(); } @Override diff --git a/src/main/java/appeng/block/solids/OreQuartz.java b/src/main/java/appeng/block/solids/OreQuartz.java index 261b3217..223b3c7e 100644 --- a/src/main/java/appeng/block/solids/OreQuartz.java +++ b/src/main/java/appeng/block/solids/OreQuartz.java @@ -31,10 +31,12 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; import appeng.block.AEBaseBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQuartzOre; import appeng.core.features.AEFeature; @@ -57,9 +59,10 @@ public class OreQuartz extends AEBaseBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderQuartzOre getRenderer() { - return RenderQuartzOre.class; + return new RenderQuartzOre(); } @Override diff --git a/src/main/java/appeng/block/spatial/BlockMatrixFrame.java b/src/main/java/appeng/block/spatial/BlockMatrixFrame.java index 6bbb565e..07f00b26 100644 --- a/src/main/java/appeng/block/spatial/BlockMatrixFrame.java +++ b/src/main/java/appeng/block/spatial/BlockMatrixFrame.java @@ -38,7 +38,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderNull; import appeng.core.features.AEFeature; import appeng.helpers.ICustomCollision; @@ -58,9 +57,10 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderNull getRenderer() { - return RenderNull.class; + return new RenderNull(); } @Override diff --git a/src/main/java/appeng/block/spatial/BlockSpatialPylon.java b/src/main/java/appeng/block/spatial/BlockSpatialPylon.java index 4c1582aa..b0fad90a 100644 --- a/src/main/java/appeng/block/spatial/BlockSpatialPylon.java +++ b/src/main/java/appeng/block/spatial/BlockSpatialPylon.java @@ -25,8 +25,10 @@ import net.minecraft.block.Block; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderSpatialPylon; import appeng.core.features.AEFeature; import appeng.helpers.AEGlassMaterial; @@ -65,8 +67,9 @@ public class BlockSpatialPylon extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderSpatialPylon getRenderer() { - return RenderSpatialPylon.class; + return new RenderSpatialPylon(); } } diff --git a/src/main/java/appeng/block/storage/BlockChest.java b/src/main/java/appeng/block/storage/BlockChest.java index 6a8e8846..c7e5f350 100644 --- a/src/main/java/appeng/block/storage/BlockChest.java +++ b/src/main/java/appeng/block/storage/BlockChest.java @@ -27,10 +27,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.api.AEApi; import appeng.api.storage.ICellHandler; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderMEChest; import appeng.core.features.AEFeature; import appeng.core.localization.PlayerMessages; @@ -50,9 +52,10 @@ public class BlockChest extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderMEChest getRenderer() { - return RenderMEChest.class; + return new RenderMEChest(); } @Override diff --git a/src/main/java/appeng/block/storage/BlockDrive.java b/src/main/java/appeng/block/storage/BlockDrive.java index dce71d79..10faed7e 100644 --- a/src/main/java/appeng/block/storage/BlockDrive.java +++ b/src/main/java/appeng/block/storage/BlockDrive.java @@ -26,8 +26,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderDrive; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -46,9 +48,10 @@ public class BlockDrive extends AEBaseTileBlock } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderDrive getRenderer() { - return RenderDrive.class; + return new RenderDrive(); } @Override diff --git a/src/main/java/appeng/block/storage/BlockSkyChest.java b/src/main/java/appeng/block/storage/BlockSkyChest.java index 8fba6f70..0e87f4bb 100644 --- a/src/main/java/appeng/block/storage/BlockSkyChest.java +++ b/src/main/java/appeng/block/storage/BlockSkyChest.java @@ -43,7 +43,6 @@ import cpw.mods.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockSkyChest; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -83,9 +82,10 @@ public class BlockSkyChest extends AEBaseTileBlock implements ICustomCollision } @Override - protected Class getRenderer() + @SideOnly( Side.CLIENT ) + protected RenderBlockSkyChest getRenderer() { - return RenderBlockSkyChest.class; + return new RenderBlockSkyChest(); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java index 71d2ccbf..bc34a04c 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java @@ -383,9 +383,7 @@ public class GuiCraftConfirm extends AEBaseGui if( this.tooltip >= 0 && dspToolTip.length() > 0 ) { - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip ); - GL11.glPopAttrib(); } } diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java index c87d02ad..7d832564 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java @@ -334,9 +334,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource if( this.tooltip >= 0 && dspToolTip.length() > 0 ) { - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); this.drawTooltip( toolPosX, toolPosY + 10, 0, dspToolTip ); - GL11.glPopAttrib(); } } diff --git a/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java b/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java index b7cca616..d3deb2b1 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java +++ b/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java @@ -202,9 +202,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource if( this.tooltip >= 0 && toolTip.length() > 0 ) { - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); this.drawTooltip( toolPosX, toolPosY + 10, 0, toolTip ); - GL11.glPopAttrib(); } } diff --git a/src/main/java/appeng/client/render/AppEngRenderItem.java b/src/main/java/appeng/client/render/AppEngRenderItem.java index c9177c28..7fd59886 100644 --- a/src/main/java/appeng/client/render/AppEngRenderItem.java +++ b/src/main/java/appeng/client/render/AppEngRenderItem.java @@ -67,17 +67,21 @@ public class AppEngRenderItem extends RenderItem final double health = is.getItem().getDurabilityForDisplay( is ); final int j1 = (int) Math.round( 13.0D - health * 13.0D ); final int k = (int) Math.round( 255.0D - health * 255.0D ); + GL11.glDisable( GL11.GL_LIGHTING ); GL11.glDisable( GL11.GL_DEPTH_TEST ); GL11.glDisable( GL11.GL_TEXTURE_2D ); GL11.glDisable( GL11.GL_ALPHA_TEST ); GL11.glDisable( GL11.GL_BLEND ); + final Tessellator tessellator = Tessellator.instance; final int l = 255 - k << 16 | k << 8; final int i1 = ( 255 - k ) / 4 << 16 | 16128; + this.renderQuad( tessellator, par4 + 2, par5 + 13, 13, 2, 0 ); this.renderQuad( tessellator, par4 + 2, par5 + 13, 12, 1, i1 ); this.renderQuad( tessellator, par4 + 2, par5 + 13, j1, 1, l ); + GL11.glEnable( GL11.GL_ALPHA_TEST ); GL11.glEnable( GL11.GL_TEXTURE_2D ); GL11.glEnable( GL11.GL_LIGHTING ); @@ -88,19 +92,23 @@ public class AppEngRenderItem extends RenderItem if( is.stackSize == 0 ) { final String craftLabelText = AEConfig.instance.useTerminalUseLargeFont() ? GuiText.LargeFontCraft.getLocal() : GuiText.SmallFontCraft.getLocal(); + GL11.glDisable( GL11.GL_LIGHTING ); GL11.glDisable( GL11.GL_DEPTH_TEST ); GL11.glPushMatrix(); GL11.glScaled( scaleFactor, scaleFactor, scaleFactor ); + final int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( craftLabelText ) * scaleFactor ) * inverseScaleFactor ); final int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); fontRenderer.drawStringWithShadow( craftLabelText, X, Y, 16777215 ); + GL11.glPopMatrix(); GL11.glEnable( GL11.GL_LIGHTING ); GL11.glEnable( GL11.GL_DEPTH_TEST ); } final long amount = this.aeStack != null ? this.aeStack.getStackSize() : is.stackSize; + if( amount != 0 ) { final String stackSize = this.getToBeRenderedStackSize( amount ); @@ -109,9 +117,11 @@ public class AppEngRenderItem extends RenderItem GL11.glDisable( GL11.GL_DEPTH_TEST ); GL11.glPushMatrix(); GL11.glScaled( scaleFactor, scaleFactor, scaleFactor ); + final int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); final int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 ); + GL11.glPopMatrix(); GL11.glEnable( GL11.GL_LIGHTING ); GL11.glEnable( GL11.GL_DEPTH_TEST ); diff --git a/src/main/java/appeng/client/render/BaseBlockRender.java b/src/main/java/appeng/client/render/BaseBlockRender.java index c0522fcd..165f0468 100644 --- a/src/main/java/appeng/client/render/BaseBlockRender.java +++ b/src/main/java/appeng/client/render/BaseBlockRender.java @@ -283,8 +283,8 @@ public class BaseBlockRender public void renderInventory( final B block, final ItemStack item, final RenderBlocks renderer, final ItemRenderType type, final Object[] data ) { final Tessellator tess = Tessellator.instance; - final BlockRenderInfo info = block.getRendererInstance(); + if( info.isValid() ) { if( block.hasSubtypes() ) @@ -330,8 +330,14 @@ public class BaseBlockRender public void renderInvBlock( final EnumSet sides, final B block, final ItemStack item, final Tessellator tess, final int color, final RenderBlocks renderer ) { + if( block == null ) + { + return; + } + int meta = 0; - if( block != null && block.hasSubtypes() && item != null ) + + if( block.hasSubtypes() && item != null ) { meta = item.getItemDamage(); } @@ -400,6 +406,7 @@ public class BaseBlockRender return o; } } + return ExtraBlockTextures.getMissing(); } @@ -410,6 +417,7 @@ public class BaseBlockRender final boolean o = renderer.renderStandardBlock( block, x, y, z ); this.postRenderInWorld( renderer ); + return o; } @@ -418,6 +426,7 @@ public class BaseBlockRender final BlockRenderInfo info = block.getRendererInstance(); final IOrientable te = this.getOrientable( block, world, x, y, z ); + if( te != null ) { final ForgeDirection forward = te.getForward(); @@ -450,13 +459,7 @@ public class BaseBlockRender renderer.setRenderBounds( i / 16.0, j / 16.0, k / 16.0, l / 16.0, m / 16.0, n / 16.0 ); } - protected void renderBlockBounds( final RenderBlocks renderer, - - double minX, double minY, double minZ, - - double maxX, double maxY, double maxZ, - - final ForgeDirection x, final ForgeDirection y, final ForgeDirection z ) + protected void renderBlockBounds( final RenderBlocks renderer, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, final ForgeDirection x, final ForgeDirection y, final ForgeDirection z ) { minX /= 16.0; minY /= 16.0; @@ -763,6 +766,7 @@ public class BaseBlockRender if( itemstack != null ) { final EntityItem entityitem = new EntityItem( par1EntityItemFrame.getWorldObj(), 0.0D, 0.0D, 0.0D, itemstack ); + entityitem.getEntityItem().stackSize = 1; // set all this stuff and then do shit? meh? diff --git a/src/main/java/appeng/client/render/BlockRenderInfo.java b/src/main/java/appeng/client/render/BlockRenderInfo.java index ae7555c7..13778c19 100644 --- a/src/main/java/appeng/client/render/BlockRenderInfo.java +++ b/src/main/java/appeng/client/render/BlockRenderInfo.java @@ -22,14 +22,16 @@ package appeng.client.render; import net.minecraft.util.IIcon; import net.minecraftforge.common.util.ForgeDirection; +import appeng.block.AEBaseBlock; import appeng.client.texture.FlippableIcon; import appeng.client.texture.TmpFlippableIcon; +import appeng.tile.AEBaseTile; public class BlockRenderInfo { - private final BaseBlockRender rendererInstance; + private final BaseBlockRender rendererInstance; private final TmpFlippableIcon tmpTopIcon = new TmpFlippableIcon(); private final TmpFlippableIcon tmpBottomIcon = new TmpFlippableIcon(); private final TmpFlippableIcon tmpSouthIcon = new TmpFlippableIcon(); @@ -44,7 +46,7 @@ public class BlockRenderInfo private FlippableIcon eastIcon = null; private FlippableIcon westIcon = null; - public BlockRenderInfo( final BaseBlockRender inst ) + public BlockRenderInfo( final BaseBlockRender inst ) { this.rendererInstance = inst; } diff --git a/src/main/java/appeng/client/render/BusRenderHelper.java b/src/main/java/appeng/client/render/BusRenderHelper.java index 3ae857ae..47a8cfa5 100644 --- a/src/main/java/appeng/client/render/BusRenderHelper.java +++ b/src/main/java/appeng/client/render/BusRenderHelper.java @@ -56,7 +56,7 @@ public final class BusRenderHelper implements IPartRenderHelper private final BoundBoxCalculator bbc; private final boolean noAlphaPass; - private final BaseBlockRender bbr; + private final BaseBlockRender bbr; private final Optional maybeBlock; private final Optional maybeBaseBlock; private int renderingForPass; diff --git a/src/main/java/appeng/client/render/BusRenderer.java b/src/main/java/appeng/client/render/BusRenderer.java index 9de36044..1e97de6f 100644 --- a/src/main/java/appeng/client/render/BusRenderer.java +++ b/src/main/java/appeng/client/render/BusRenderer.java @@ -74,7 +74,7 @@ public class BusRenderer implements IItemRenderer } GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); + GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT ); GL11.glEnable( GL11.GL_DEPTH_TEST ); GL11.glEnable( GL11.GL_TEXTURE_2D ); GL11.glEnable( GL11.GL_LIGHTING ); @@ -147,6 +147,7 @@ public class BusRenderer implements IItemRenderer else { final IPart ip = this.getRenderer( item, (IPartItem) item.getItem() ); + if( ip != null ) { if( type == ItemRenderType.ENTITY ) @@ -171,6 +172,7 @@ public class BusRenderer implements IItemRenderer final int id = ( Item.getIdFromItem( is.getItem() ) << Platform.DEF_OFFSET ) | is.getItemDamage(); IPart part = RENDER_PART.get( id ); + if( part == null ) { part = c.createPartFromItemStack( is ); diff --git a/src/main/java/appeng/client/render/CableRenderHelper.java b/src/main/java/appeng/client/render/CableRenderHelper.java index 66fdf998..c7fd8f53 100644 --- a/src/main/java/appeng/client/render/CableRenderHelper.java +++ b/src/main/java/appeng/client/render/CableRenderHelper.java @@ -85,6 +85,7 @@ public class CableRenderHelper * snag list of boxes... */ final List boxes = new ArrayList(); + for( final ForgeDirection s : ForgeDirection.values() ) { final IPart part = cableBusContainer.getPart( s ); @@ -120,6 +121,7 @@ public class CableRenderHelper for( final ForgeDirection s : ForgeDirection.VALID_DIRECTIONS ) { final IFacadePart fPart = iFacadeContainer.getFacade( s ); + if( fPart != null ) { fPart.setThinFacades( useThinFacades ); @@ -214,6 +216,7 @@ public class CableRenderHelper for( final ForgeDirection s : ForgeDirection.values() ) { final IPart part = cableBusContainer.getPart( s ); + if( part != null ) { final ForgeDirection ax; diff --git a/src/main/java/appeng/client/render/ItemRenderer.java b/src/main/java/appeng/client/render/ItemRenderer.java index 9ab42660..e79296d4 100644 --- a/src/main/java/appeng/client/render/ItemRenderer.java +++ b/src/main/java/appeng/client/render/ItemRenderer.java @@ -46,7 +46,7 @@ public class ItemRenderer implements IItemRenderer public void renderItem( final ItemRenderType type, final ItemStack item, final Object... data ) { GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); + GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT ); GL11.glEnable( GL11.GL_ALPHA_TEST ); GL11.glEnable( GL11.GL_DEPTH_TEST ); GL11.glEnable( GL11.GL_BLEND ); diff --git a/src/main/java/appeng/client/render/RenderBlocksWorkaround.java b/src/main/java/appeng/client/render/RenderBlocksWorkaround.java index a0849313..f359ee1a 100644 --- a/src/main/java/appeng/client/render/RenderBlocksWorkaround.java +++ b/src/main/java/appeng/client/render/RenderBlocksWorkaround.java @@ -689,7 +689,6 @@ public class RenderBlocksWorkaround extends RenderBlocks private static class LightingCache implements ISimplifiedBundle { - public final int[] aoXPos; public final int[] aoXNeg; public final int[] aoYPos; diff --git a/src/main/java/appeng/client/render/SpatialSkyRender.java b/src/main/java/appeng/client/render/SpatialSkyRender.java index f444d495..9e8bd1ec 100644 --- a/src/main/java/appeng/client/render/SpatialSkyRender.java +++ b/src/main/java/appeng/client/render/SpatialSkyRender.java @@ -55,6 +55,7 @@ public class SpatialSkyRender extends IRenderHandler public void render( final float partialTicks, final WorldClient world, final Minecraft mc ) { final long now = System.currentTimeMillis(); + if( now - this.cycle > 2000 ) { this.cycle = now; @@ -67,42 +68,37 @@ public class SpatialSkyRender extends IRenderHandler fade /= 1000; fade = 0.15f * ( 1.0f - Math.abs( ( fade - 1.0f ) * ( fade - 1.0f ) ) ); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - GL11.glDisable( GL11.GL_FOG ); GL11.glDisable( GL11.GL_ALPHA_TEST ); GL11.glDisable( GL11.GL_BLEND ); GL11.glDepthMask( false ); GL11.glColor4f( 0.0f, 0.0f, 0.0f, 1.0f ); + final Tessellator tessellator = Tessellator.instance; for( int i = 0; i < 6; ++i ) { GL11.glPushMatrix(); - if( i == 1 ) + switch( i ) { - GL11.glRotatef( 90.0F, 1.0F, 0.0F, 0.0F ); - } - - if( i == 2 ) - { - GL11.glRotatef( -90.0F, 1.0F, 0.0F, 0.0F ); - } - - if( i == 3 ) - { - GL11.glRotatef( 180.0F, 1.0F, 0.0F, 0.0F ); - } - - if( i == 4 ) - { - GL11.glRotatef( 90.0F, 0.0F, 0.0F, 1.0F ); - } - - if( i == 5 ) - { - GL11.glRotatef( -90.0F, 0.0F, 0.0F, 1.0F ); + case 1: + GL11.glRotatef( 90.0F, 1.0F, 0.0F, 0.0F ); + break; + case 2: + GL11.glRotatef( -90.0F, 1.0F, 0.0F, 0.0F ); + break; + case 3: + GL11.glRotatef( 180.0F, 1.0F, 0.0F, 0.0F ); + break; + case 4: + GL11.glRotatef( 90.0F, 0.0F, 0.0F, 1.0F ); + break; + case 5: + GL11.glRotatef( -90.0F, 0.0F, 0.0F, 1.0F ); + break; + default: + break; } tessellator.startDrawingQuads(); @@ -112,30 +108,29 @@ public class SpatialSkyRender extends IRenderHandler tessellator.addVertexWithUV( 100.0D, -100.0D, 100.0D, 16.0D, 16.0D ); tessellator.addVertexWithUV( 100.0D, -100.0D, -100.0D, 16.0D, 0.0D ); tessellator.draw(); + GL11.glPopMatrix(); } - GL11.glDepthMask( true ); - if( fade > 0.0f ) { - GL11.glDisable( GL11.GL_FOG ); - GL11.glDisable( GL11.GL_ALPHA_TEST ); GL11.glEnable( GL11.GL_BLEND ); - GL11.glDepthMask( false ); - GL11.glEnable( GL11.GL_FOG ); - GL11.glDisable( GL11.GL_FOG ); - GL11.glDisable( GL11.GL_ALPHA_TEST ); GL11.glDisable( GL11.GL_TEXTURE_2D ); + OpenGlHelper.glBlendFunc( 770, 771, 1, 0 ); RenderHelper.disableStandardItemLighting(); - GL11.glDepthMask( false ); + GL11.glEnable( GL11.GL_TEXTURE_2D ); GL11.glColor4f( fade, fade, fade, 1.0f ); GL11.glCallList( this.dspList ); + + RenderHelper.enableStandardItemLighting(); } - GL11.glPopAttrib(); + GL11.glEnable( GL11.GL_FOG ); + GL11.glEnable( GL11.GL_ALPHA_TEST ); + GL11.glEnable( GL11.GL_BLEND ); + GL11.glDepthMask( true ); GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); } @@ -159,6 +154,7 @@ public class SpatialSkyRender extends IRenderHandler iX *= dist; iY *= dist; iZ *= dist; + final double x = iX * 100.0D; final double y = iY * 100.0D; final double z = iZ * 100.0D; @@ -183,6 +179,7 @@ public class SpatialSkyRender extends IRenderHandler final double d23 = d17 * d12 - d20 * d13; final double d24 = d23 * d9 - d21 * d10; final double d25 = d21 * d9 + d23 * d10; + tessellator.addVertex( x + d24, y + d22, z + d25 ); } } diff --git a/src/main/java/appeng/client/render/WorldRender.java b/src/main/java/appeng/client/render/WorldRender.java index 56f4de3d..b7e9a0f3 100644 --- a/src/main/java/appeng/client/render/WorldRender.java +++ b/src/main/java/appeng/client/render/WorldRender.java @@ -20,6 +20,7 @@ package appeng.client.render; import java.util.HashMap; +import java.util.Map; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; @@ -41,7 +42,7 @@ public final class WorldRender implements ISimpleBlockRenderingHandler { public static final WorldRender INSTANCE = new WorldRender(); - private final HashMap blockRenders = new HashMap(); + private final Map blockRenders = new HashMap(); private final int renderID = RenderingRegistry.getNextAvailableRenderId(); private final RenderBlocks renderer = new RenderBlocks(); private boolean hasError = false; diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java b/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java index 28081f50..bc3d2902 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java @@ -203,42 +203,48 @@ public class RenderBlockAssembler extends BaseBlockRender= 2 ) { final int v = ( Math.abs( x ) + Math.abs( y ) + Math.abs( z ) ) % 2; + renderer.uvRotateEast = renderer.uvRotateBottom = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; if( v == 0 ) @@ -140,6 +141,7 @@ public class RenderBlockController extends BaseBlockRender 15.999 ) ) { final double width = 3.0 / 16.0; + switch( a ) { case DOWN: diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java index 26216926..45bb14a4 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java @@ -68,8 +68,7 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU 0 ) { max--; @@ -107,50 +106,43 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU { return; } - Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture ); RenderHelper.disableStandardItemLighting(); @@ -84,6 +83,7 @@ public class RenderBlockCrank extends BaseBlockRender GL11.glShadeModel( GL11.GL_FLAT ); } + GL11.glCullFace( GL11.GL_FRONT ); GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() ); @@ -107,6 +107,9 @@ public class RenderBlockCrank extends BaseBlockRender tess.draw(); tess.setTranslation( 0, 0, 0 ); + + GL11.glCullFace( GL11.GL_BACK ); + RenderHelper.enableStandardItemLighting(); } } diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java b/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java index ab159fd0..8d6ea30b 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java @@ -67,6 +67,7 @@ public class RenderBlockEnergyCube extends BaseBlockRender { final TilePaint tp = imb.getTileEntity( world, x, y, z ); boolean out = false; + if( tp != null ) { // super.renderInWorld( imb, world, x, y, z, renderer ); diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java b/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java index 7cbe4311..84de3607 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java @@ -42,17 +42,22 @@ public class RenderBlockQuartzAccelerator extends BaseBlockRender { + private static final ResourceLocation TEXTURE_SKY_COMPASS = new ResourceLocation( "appliedenergistics2", "textures/models/compass.png" ); private final ModelCompass model = new ModelCompass(); @@ -57,8 +58,8 @@ public class RenderBlockSkyCompass extends BaseBlockRender public boolean renderInWorld( final BlockDrive imb, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer ) { final TileDrive sp = imb.getTileEntity( world, x, y, z ); - renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); - final ForgeDirection up = sp.getUp(); final ForgeDirection forward = sp.getForward(); final ForgeDirection west = Platform.crossProduct( forward, up ); - final boolean result = super.renderInWorld( imb, world, x, y, z, renderer ); - final Tessellator tess = Tessellator.instance; + renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); + final boolean result = super.renderInWorld( imb, world, x, y, z, renderer ); + + final Tessellator tess = Tessellator.instance; final IIcon ico = ExtraBlockTextures.MEStorageCellTextures.getIcon(); final int b = world.getLightBrightnessForSkyBlocks( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ, 0 ); @@ -76,6 +76,7 @@ public class RenderDrive extends BaseBlockRender for( int xx = 0; xx < 2; xx++ ) { final int stat = sp.getCellStatus( yy * 2 + ( 1 - xx ) ); + this.selectFace( renderer, west, up, forward, 2 + xx * 7, 7 + xx * 7, 1 + yy * 3, 3 + yy * 3 ); int spin = 0; diff --git a/src/main/java/appeng/client/render/blocks/RenderMEChest.java b/src/main/java/appeng/client/render/blocks/RenderMEChest.java index d6f15250..12409187 100644 --- a/src/main/java/appeng/client/render/blocks/RenderMEChest.java +++ b/src/main/java/appeng/client/render/blocks/RenderMEChest.java @@ -53,6 +53,7 @@ public class RenderMEChest extends BaseBlockRender public void renderInventory( final BlockChest block, final ItemStack is, final RenderBlocks renderer, final ItemRenderType type, final Object[] obj ) { Tessellator.instance.setBrightness( 0 ); + renderer.overrideBlockTexture = ExtraBlockTextures.getMissing(); this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer ); @@ -67,13 +68,14 @@ public class RenderMEChest extends BaseBlockRender public boolean renderInWorld( final BlockChest imb, final IBlockAccess world, final int x, final int y, final int z, final RenderBlocks renderer ) { final TileChest sp = imb.getTileEntity( world, x, y, z ); - renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); if( sp == null ) { return false; } + renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); + final ForgeDirection up = sp.getUp(); final ForgeDirection forward = sp.getForward(); final ForgeDirection west = Platform.crossProduct( forward, up ); @@ -97,6 +99,7 @@ public class RenderMEChest extends BaseBlockRender final int offsetU = -4; final FlippableIcon flippableIcon = new FlippableIcon( new OffsetIcon( ExtraBlockTextures.MEStorageCellTextures.getIcon(), offsetU, offsetV ) ); + if( forward == ForgeDirection.EAST && ( up == ForgeDirection.NORTH || up == ForgeDirection.SOUTH ) ) { flippableIcon.setFlip( true, false ); @@ -118,13 +121,6 @@ public class RenderMEChest extends BaseBlockRender flippableIcon.setFlip( true, false ); } - /* - * 1.7.2 - * else if ( forward == ForgeDirection.EAST && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false ); - * else if ( - * forward == ForgeDirection.NORTH && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false ); - */ - this.renderFace( x, y, z, imb, flippableIcon, renderer, forward ); if( stat != 0 ) diff --git a/src/main/java/appeng/client/render/blocks/RenderQNB.java b/src/main/java/appeng/client/render/blocks/RenderQNB.java index 219e7635..0a1a0180 100644 --- a/src/main/java/appeng/client/render/blocks/RenderQNB.java +++ b/src/main/java/appeng/client/render/blocks/RenderQNB.java @@ -45,14 +45,19 @@ import appeng.tile.qnb.TileQuantumBridge; public class RenderQNB extends BaseBlockRender { + private static final float DEFAULT_RENDER_MIN = 2.0f / 16.0f; + private static final float DEFAULT_RENDER_MAX = 14.0f / 16.0f; + + private static final float CORNER_POWERED_RENDER_MIN = 3.9f / 16.0f; + private static final float CORNER_POWERED_RENDER_MAX = 12.1f / 16.0f; + + private static final float CENTER_POWERED_RENDER_MIN = -0.01f / 16.0f; + private static final float CENTER_POWERED_RENDER_MAX = 16.01f / 16.0f; @Override public void renderInventory( final BlockQuantumBase block, final ItemStack item, final RenderBlocks renderer, final ItemRenderType type, final Object[] obj ) { - final float minPx = 2.0f / 16.0f; - final float maxPx = 14.0f / 16.0f; - renderer.setRenderBounds( minPx, minPx, minPx, maxPx, maxPx, maxPx ); - + renderer.setRenderBounds( DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MIN, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX, DEFAULT_RENDER_MAX ); super.renderInventory( block, item, renderer, type, obj ); } @@ -60,6 +65,7 @@ public class RenderQNB extends BaseBlockRender { - private static byte[][][] offsets; + private static final byte[][][] OFFSETS = generateOffsets(); public RenderQuartzGlass() { super( false, 0 ); - if( offsets == null ) + + } + + private static byte[][][] generateOffsets() + { + final Random r = new Random( 924 ); + final byte[][][] offset = new byte[10][10][10]; + + for( int x = 0; x < 10; x++ ) { - final Random r = new Random( 924 ); - offsets = new byte[10][10][10]; - for( int x = 0; x < 10; x++ ) + for( int y = 0; y < 10; y++ ) { - for( int y = 0; y < 10; y++ ) - { - r.nextBytes( offsets[x][y] ); - } + r.nextBytes( offset[x][y] ); } } + + return offset; } @Override @@ -75,10 +80,10 @@ public class RenderQuartzGlass extends BaseBlockRender { final IOrientable te = ( (IOrientableBlock) block ).getOrientable( world, x, y, z ); - renderer.renderAllFaces = true; - float zOff = 0.0f; - float yOff = 0.0f; float xOff = 0.0f; + float yOff = 0.0f; + float zOff = 0.0f; + + renderer.renderAllFaces = true; + if( te != null ) { final ForgeDirection forward = te.getUp(); diff --git a/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java b/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java index c60c9272..5fa512bd 100644 --- a/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java +++ b/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java @@ -66,6 +66,7 @@ public class RenderSpatialPylon extends BaseBlockRender 4.0 ) { this.time -= 4.0; diff --git a/src/main/java/appeng/client/render/effects/ChargedOreFX.java b/src/main/java/appeng/client/render/effects/ChargedOreFX.java index 11344aec..bb60cdd7 100644 --- a/src/main/java/appeng/client/render/effects/ChargedOreFX.java +++ b/src/main/java/appeng/client/render/effects/ChargedOreFX.java @@ -37,10 +37,12 @@ public class ChargedOreFX extends EntityReddustFX int j1 = super.getBrightnessForRender( par1 ); j1 = Math.max( j1 >> 20, j1 >> 4 ); j1 += 3; + if( j1 > 15 ) { j1 = 15; } + return j1 << 20 | j1 << 4; } } diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index 8c5f07e7..efe01e33 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -89,6 +89,7 @@ public class CraftingFx extends EntityBreakingFX final int blkX = MathHelper.floor_double( offX ); final int blkY = MathHelper.floor_double( offY ); final int blkZ = MathHelper.floor_double( offZ ); + if( blkX == this.startBlkX && blkY == this.startBlkY && blkZ == this.startBlkZ ) { offX -= interpPosX; diff --git a/src/main/java/appeng/client/render/effects/LightningArcFX.java b/src/main/java/appeng/client/render/effects/LightningArcFX.java index 5680abfb..305127fe 100644 --- a/src/main/java/appeng/client/render/effects/LightningArcFX.java +++ b/src/main/java/appeng/client/render/effects/LightningArcFX.java @@ -51,8 +51,8 @@ public class LightningArcFX extends LightningFX final double lastDirectionX = this.rx * i; final double lastDirectionY = this.ry * i; final double lastDirectionZ = this.rz * i; - final double len = Math.sqrt( lastDirectionX * lastDirectionX + lastDirectionY * lastDirectionY + lastDirectionZ * lastDirectionZ ); + for( int s = 0; s < this.getSteps(); s++ ) { final double[][] localSteps = this.getPrecomputedSteps(); diff --git a/src/main/java/appeng/client/render/effects/LightningFX.java b/src/main/java/appeng/client/render/effects/LightningFX.java index 2f4a88a4..e4603e57 100644 --- a/src/main/java/appeng/client/render/effects/LightningFX.java +++ b/src/main/java/appeng/client/render/effects/LightningFX.java @@ -31,7 +31,6 @@ import net.minecraft.world.World; public class LightningFX extends EntityFX { - private static final Random RANDOM_GENERATOR = new Random(); private static final int STEPS = 5; @@ -62,6 +61,7 @@ public class LightningFX extends EntityFX double lastDirectionX = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9; double lastDirectionY = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9; double lastDirectionZ = ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9; + for( int s = 0; s < LightningFX.STEPS; s++ ) { this.precomputedSteps[s][0] = lastDirectionX = ( lastDirectionX + ( RANDOM_GENERATOR.nextDouble() - 0.5 ) * 0.9 ) / 2.0; @@ -86,7 +86,9 @@ public class LightningFX extends EntityFX public void renderParticle( final Tessellator tess, final float l, final float rX, final float rY, final float rZ, final float rYZ, final float rXY ) { final float j = 1.0f; + tess.setColorRGBA_F( this.particleRed * j * 0.9f, this.particleGreen * j * 0.95f, this.particleBlue * j, this.particleAlpha ); + if( this.particleAge == 3 ) { this.regen(); @@ -190,10 +192,6 @@ public class LightningFX extends EntityFX } } } - /* - * GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); GL11.glDisable( GL11.GL_CULL_FACE ); tess.draw(); - * GL11.glPopAttrib(); tess.startDrawingQuads(); - */ } private void clear() @@ -210,7 +208,9 @@ public class LightningFX extends EntityFX tess.addVertexWithUV( this.verticesWithUV[0], this.verticesWithUV[1], this.verticesWithUV[2], f6, f8 ); tess.addVertexWithUV( b[0], b[1], b[2], f6, f8 ); } + this.hasData = true; + for( int x = 0; x < 3; x++ ) { this.vertices[x] = a[x]; diff --git a/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java b/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java index 1f4b367a..f5515940 100644 --- a/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java +++ b/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java @@ -45,6 +45,7 @@ public class ItemEncodedPatternRenderer implements IItemRenderer if( !this.recursive && type == IItemRenderer.ItemRenderType.INVENTORY && isShiftHeld ) { final ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem(); + if( iep.getOutput( item ) != null ) { return true; @@ -66,11 +67,10 @@ public class ItemEncodedPatternRenderer implements IItemRenderer this.recursive = true; final ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem(); - final ItemStack is = iep.getOutput( item ); final Minecraft mc = Minecraft.getMinecraft(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); + GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT ); RenderHelper.enableGUIStandardItemLighting(); this.ri.renderItemAndEffectIntoGUI( mc.fontRenderer, mc.getTextureManager(), is, 0, 0 ); RenderHelper.disableStandardItemLighting(); diff --git a/src/main/java/appeng/client/render/items/PaintBallRender.java b/src/main/java/appeng/client/render/items/PaintBallRender.java index 6f890adf..74649427 100644 --- a/src/main/java/appeng/client/render/items/PaintBallRender.java +++ b/src/main/java/appeng/client/render/items/PaintBallRender.java @@ -50,8 +50,13 @@ public class PaintBallRender implements IItemRenderer @Override public void renderItem( final ItemRenderType type, final ItemStack item, final Object... data ) { - IIcon par2Icon = item.getIconIndex(); - if( item.getItemDamage() >= 20 ) + final IIcon par2Icon; + + if( item.getItemDamage() < 20 ) + { + par2Icon = item.getIconIndex(); + } + else { par2Icon = ExtraItemTextures.ItemPaintBallShimmer.getIcon(); } @@ -64,8 +69,8 @@ public class PaintBallRender implements IItemRenderer final ItemPaintBall ipb = (ItemPaintBall) item.getItem(); final Tessellator tessellator = Tessellator.instance; + GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); final AEColor col = ipb.getColor( item ); @@ -122,7 +127,15 @@ public class PaintBallRender implements IItemRenderer GL11.glColor4f( 1, 1, 1, 1.0F ); - GL11.glPopAttrib(); + if( type == ItemRenderType.INVENTORY ) + { + GL11.glDisable( GL11.GL_ALPHA_TEST ); + } + else + { + GL11.glEnable( GL11.GL_CULL_FACE ); + } + GL11.glPopMatrix(); } } diff --git a/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java b/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java index 65913fb6..95902c4d 100644 --- a/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java +++ b/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java @@ -60,8 +60,9 @@ public class ToolBiometricCardRender implements IItemRenderer final float f7 = par2Icon.getMaxV(); final Tessellator tessellator = Tessellator.instance; + GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); + GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT ); if( type == ItemRenderType.INVENTORY ) { @@ -96,6 +97,7 @@ public class ToolBiometricCardRender implements IItemRenderer final float v = ExtraItemTextures.White.getIcon().getInterpolatedV( 8.1 ); String username = ""; + if( item.getItem() instanceof IBiometricCard ) { final GameProfile gp = ( (IBiometricCard) item.getItem() ).getProfile( item ); @@ -119,6 +121,7 @@ public class ToolBiometricCardRender implements IItemRenderer } final float z = 0; + for( int x = 0; x < 8; x++ )// 8 { for( int y = 0; y < 6; y++ )// 6 @@ -150,6 +153,7 @@ public class ToolBiometricCardRender implements IItemRenderer tessellator.addVertexWithUV( x, y + 1, z, u, v ); } } + tessellator.draw(); GL11.glPopAttrib(); diff --git a/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java b/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java index 80b6caff..752b5b25 100644 --- a/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java +++ b/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java @@ -58,8 +58,9 @@ public class ToolColorApplicatorRender implements IItemRenderer float f7 = par2Icon.getMaxV(); final Tessellator tessellator = Tessellator.instance; + GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); + GL11.glPushAttrib( GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT ); if( type == ItemRenderType.INVENTORY ) { @@ -106,10 +107,12 @@ public class ToolColorApplicatorRender implements IItemRenderer final IIcon light = ExtraItemTextures.ToolColorApplicatorTip_Light.getIcon(); GL11.glScalef( 1F / 16F, 1F / 16F, 1F ); + if( type != ItemRenderType.INVENTORY ) { GL11.glTranslatef( 2, 0, 0 ); } + GL11.glDisable( GL11.GL_LIGHTING ); final AEColor col = ( (ToolColorApplicator) item.getItem() ).getActiveColor( item );