Teleporters now follow CTM
This commit is contained in:
parent
3ba0dd5172
commit
a0af78ef46
9 changed files with 48 additions and 27 deletions
|
@ -5,9 +5,11 @@ import mekanism.client.ClientProxy;
|
|||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.common.CTMData;
|
||||
import mekanism.common.base.IBlockCTM;
|
||||
import mekanism.common.block.BlockMachine.MachineType;
|
||||
import mekanism.common.tile.TileEntityBasicBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
|
||||
|
@ -53,6 +55,28 @@ public class CTMRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
return rendererCTM.renderStandardBlock(block, x, y, z);
|
||||
}
|
||||
|
||||
if(MachineType.get(block, meta) != null)
|
||||
{
|
||||
if(!MachineType.get(block, meta).hasModel)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
if(((TileEntityBasicBlock)tile).facing >= 2)
|
||||
{
|
||||
rendererOld.uvRotateTop = MekanismRenderer.directionMap[((TileEntityBasicBlock)tile).facing-2];
|
||||
rendererOld.uvRotateBottom = MekanismRenderer.directionMap[((TileEntityBasicBlock)tile).facing-2];
|
||||
}
|
||||
}
|
||||
|
||||
rendererOld.renderStandardBlock(block, x, y, z);
|
||||
rendererOld.setRenderBoundsFromBlock(block);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return rendererOld.renderStandardBlock(block, x, y, z);
|
||||
}
|
||||
|
||||
|
|
|
@ -237,29 +237,7 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
|
|||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
|
||||
{
|
||||
int metadata = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(MachineType.get(block, metadata) != null)
|
||||
{
|
||||
if(!MachineType.get(block, metadata).hasModel)
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y, z);
|
||||
|
||||
if(tile instanceof TileEntityBasicBlock)
|
||||
{
|
||||
if(((TileEntityBasicBlock)tile).facing >= 2)
|
||||
{
|
||||
renderer.uvRotateTop = MekanismRenderer.directionMap[((TileEntityBasicBlock)tile).facing-2];
|
||||
renderer.uvRotateBottom = MekanismRenderer.directionMap[((TileEntityBasicBlock)tile).facing-2];
|
||||
}
|
||||
}
|
||||
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
renderer.setRenderBoundsFromBlock(block);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//Handled by CTMRenderingHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -148,6 +148,7 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon
|
|||
switch(blockType)
|
||||
{
|
||||
case BASIC_BLOCK_1:
|
||||
ctms[7][0] = new CTMData("ctm/TeleporterFrame", this, Arrays.asList(7)).addOtherBlockConnectivities(MekanismBlocks.MachineBlock, Arrays.asList(11)).registerIcons(register);
|
||||
ctms[9][0] = new CTMData("ctm/DynamicTank", this, Arrays.asList(9, 11)).registerIcons(register);
|
||||
ctms[10][0] = new CTMData("ctm/DynamicGlass", this, Arrays.asList(10)).registerIcons(register);
|
||||
ctms[11][0] = new CTMData("ctm/DynamicValve", this, Arrays.asList(11, 9)).registerIcons(register);
|
||||
|
@ -166,7 +167,7 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon
|
|||
MekanismRenderer.loadDynamicTextures(register, "Bin", icons[6], DefIcon.getActivePair(register.registerIcon("mekanism:BinSide"), 3, 4, 5),
|
||||
new DefIcon(register.registerIcon("mekanism:BinTop"), 0), new DefIcon(register.registerIcon("mekanism:BinTopOn"), 6));
|
||||
|
||||
icons[7][0] = register.registerIcon("mekanism:TeleporterFrame");
|
||||
icons[7][0] = ctms[7][0].mainTextureData.icon;
|
||||
icons[8][0] = register.registerIcon("mekanism:SteelCasing");
|
||||
icons[9][0] = ctms[9][0].mainTextureData.icon;
|
||||
icons[10][0] = ctms[10][0].mainTextureData.icon;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package mekanism.common.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -17,11 +18,13 @@ import mekanism.api.energy.IStrictEnergyStorage;
|
|||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.MekanismRenderer.DefIcon;
|
||||
import mekanism.client.render.MekanismRenderer.ICustomBlockIcon;
|
||||
import mekanism.common.CTMData;
|
||||
import mekanism.common.ItemAttacher;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.MekanismBlocks;
|
||||
import mekanism.common.Tier.BaseTier;
|
||||
import mekanism.common.base.IActiveState;
|
||||
import mekanism.common.base.IBlockCTM;
|
||||
import mekanism.common.base.IBoundingBlock;
|
||||
import mekanism.common.base.IElectricChest;
|
||||
import mekanism.common.base.IFactory;
|
||||
|
@ -156,11 +159,13 @@ import dan200.computercraft.api.peripheral.IPeripheralProvider;
|
|||
*
|
||||
*/
|
||||
@Interface(iface = "dan200.computercraft.api.peripheral.IPeripheralProvider", modid = "ComputerCraft")
|
||||
public class BlockMachine extends BlockContainer implements ISpecialBounds, IPeripheralProvider, ICustomBlockIcon
|
||||
public class BlockMachine extends BlockContainer implements ISpecialBounds, IPeripheralProvider, IBlockCTM, ICustomBlockIcon
|
||||
{
|
||||
public IIcon[][] icons = new IIcon[16][16];
|
||||
public IIcon[][][] factoryIcons = new IIcon[4][16][16];
|
||||
|
||||
public CTMData[][] ctms = new CTMData[16][4];
|
||||
|
||||
public IIcon BASE_ICON;
|
||||
|
||||
public MachineBlock blockType;
|
||||
|
@ -184,6 +189,8 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
switch(blockType)
|
||||
{
|
||||
case MACHINE_BLOCK_1:
|
||||
ctms[11][0] = new CTMData("ctm/Teleporter", this, Arrays.asList(11)).addOtherBlockConnectivities(MekanismBlocks.BasicBlock, Arrays.asList(7)).registerIcons(register);
|
||||
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.ENRICHMENT_CHAMBER.name, icons[0], def);
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.OSMIUM_COMPRESSOR.name, icons[1], def);
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.COMBINER.name, icons[2], def);
|
||||
|
@ -210,7 +217,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.PURIFICATION_CHAMBER.name, icons[9], def);
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.ENERGIZED_SMELTER.name, icons[10], def);
|
||||
icons[11][0] = register.registerIcon("mekanism:Teleporter");
|
||||
icons[11][0] = ctms[11][0].mainTextureData.icon;
|
||||
break;
|
||||
case MACHINE_BLOCK_2:
|
||||
MekanismRenderer.loadDynamicTextures(register, MachineType.CHEMICAL_INJECTION_CHAMBER.name, icons[3], def);
|
||||
|
@ -710,7 +717,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
@Override
|
||||
public int getRenderType()
|
||||
{
|
||||
return Mekanism.proxy.MACHINE_RENDER_ID;
|
||||
return Mekanism.proxy.CTM_RENDER_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1382,4 +1389,15 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CTMData getCTMData(IBlockAccess world, int x, int y, int z, int meta)
|
||||
{
|
||||
if(ctms[meta][1] != null && MekanismUtils.isActive(world, x, y, z))
|
||||
{
|
||||
return ctms[meta][1];
|
||||
}
|
||||
|
||||
return ctms[meta][0];
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.6 KiB |
Loading…
Reference in a new issue