Fixed Pipes, Gates, Wires and several items

Actions and Triggers remain
This commit is contained in:
Krapht 2013-03-16 00:47:08 +01:00
parent 145e5df557
commit c5ebbbdf48
62 changed files with 694 additions and 535 deletions

View file

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 416 B

View file

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 444 B

View file

Before

Width:  |  Height:  |  Size: 845 B

After

Width:  |  Height:  |  Size: 845 B

View file

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 416 B

View file

Before

Width:  |  Height:  |  Size: 717 B

After

Width:  |  Height:  |  Size: 717 B

View file

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 419 B

View file

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 944 B

View file

Before

Width:  |  Height:  |  Size: 935 B

After

Width:  |  Height:  |  Size: 935 B

View file

@ -28,17 +28,21 @@ import buildcraft.api.transport.IExtractionHandler;
import buildcraft.api.transport.IPipe;
import buildcraft.api.transport.PipeManager;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.ItemBuildCraft;
import buildcraft.core.Version;
import buildcraft.core.proxy.CoreProxy;
import buildcraft.transport.BlockGenericPipe;
import buildcraft.transport.GateIconProvider;
import buildcraft.transport.GuiHandler;
import buildcraft.transport.ItemFacade;
import buildcraft.transport.ItemGate;
import buildcraft.transport.ItemPipe;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTriggerProvider;
import buildcraft.transport.TransportProxy;
import buildcraft.transport.WireIconProvider;
import buildcraft.transport.blueprints.BptBlockPipe;
import buildcraft.transport.blueprints.BptItemPipeDiamond;
import buildcraft.transport.blueprints.BptItemPipeEmerald;
@ -100,12 +104,6 @@ import cpw.mods.fml.relauncher.SideOnly;
public class BuildCraftTransport {
public static BlockGenericPipe genericPipeBlock;
@SideOnly(Side.CLIENT)
public Icon[] terrainIcons;
@SideOnly(Side.CLIENT)
public Icon[] itemIcons;
public static boolean alwaysConnectPipes;
public static boolean usePipeLoss;
public static int maxItemsInPipes;
@ -170,6 +168,10 @@ public class BuildCraftTransport {
@Instance("BuildCraft|Transport")
public static BuildCraftTransport instance;
public IIconProvider pipeIconProvider = new PipeIconProvider();
public IIconProvider gateIconProvider = new GateIconProvider();
public IIconProvider wireIconProvider = new WireIconProvider();
private static class PipeRecipe {
boolean isShapeless = false; // pipe recipes come shaped and unshaped.
@ -260,8 +262,6 @@ public class BuildCraftTransport {
groupItemsTrigger = groupItemsTriggerProp.getInt();
TransportProxy.proxy.loadTerrainIcons(this);
TransportProxy.proxy.loadItemIcons(this);
Property genericPipeId = BuildCraftCore.mainConfiguration.getBlock("pipe.id", DefaultProps.GENERIC_PIPE_ID);

View file

@ -0,0 +1,24 @@
package buildcraft.core;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.Icon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public interface IIconProvider {
/**
* @param iconIndex
* @return
*/
@SideOnly(Side.CLIENT)
public Icon getIcon(int iconIndex);
/**
* A call for the provider to register its Icons. This may be called multiple times but should only be executed once per provider
* @param iconRegister
*/
@SideOnly(Side.CLIENT)
public void RegisterIcons(IconRegister iconRegister);
}

View file

@ -9,12 +9,16 @@
package buildcraft.core;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import buildcraft.core.utils.StringUtil;
public class ItemBuildCraft extends Item {
private String iconName;
public ItemBuildCraft(int i) {
super(i);
setCreativeTab(CreativeTabBuildCraft.tabBuildCraft);
@ -24,4 +28,17 @@ public class ItemBuildCraft extends Item {
public String getItemDisplayName(ItemStack itemstack) {
return StringUtil.localize(getUnlocalizedName(itemstack));
}
@Override
public Item setUnlocalizedName(String par1Str) {
iconName = par1Str;
return super.setUnlocalizedName(par1Str);
}
@Override
@SideOnly(Side.CLIENT)
public void func_94581_a(IconRegister par1IconRegister)
{
this.iconIndex = par1IconRegister.func_94245_a("buildcraft:" + iconName);
}
}

View file

@ -41,7 +41,7 @@ public class ItemRedstoneChipset extends ItemBuildCraft {
}
}
private static String[] chipsetNames = { "redstone_red", "redstone_iron", "redstone_gold", "redstone_gold", "redstone_diamond", "redstone_pulsating" };
private static String[] chipsetNames = { "redstone_red", "redstone_iron", "redstone_gold", "redstone_diamond", "redstone_pulsating" };
@Override
@SideOnly(Side.CLIENT)
public void func_94581_a(IconRegister par1IconRegister)

View file

@ -701,6 +701,7 @@ public class BlockGenericPipe extends BlockContainer {
}
@SuppressWarnings({ "all" })
@SideOnly(Side.CLIENT)
public Icon getBlockTexture(IBlockAccess iblockaccess, int i, int j, int k, int l) {
TileEntity tile = iblockaccess.getBlockTileEntity(i, j, k);
@ -793,13 +794,10 @@ public class BlockGenericPipe extends BlockContainer {
pipes.put(item.itemID, clas);
Pipe dummyPipe = createPipe(item.itemID);
if (dummyPipe != null && dummyPipe.getTextureIcons() != null) {
item.setPipeIcon(dummyPipe.getTextureIcons()[dummyPipe.getIconIndexForItem()]);
} else if (dummyPipe != null) {
BuildCraftCore.bcLog.info("The pipe "+ dummyPipe + " is not returning icons");
if (dummyPipe != null) {
item.setPipeIconIndex(dummyPipe.getIconIndexForItem());
TransportProxy.proxy.setIconProviderFromPipe(item, dummyPipe);
}
return item;
}
@ -855,8 +853,15 @@ public class BlockGenericPipe extends BlockContainer {
@Override
@SideOnly(Side.CLIENT)
public void func_94332_a(IconRegister par1IconRegister)
public void func_94332_a(IconRegister iconRegister)
{
// NOOP we do this elsewhere
BuildCraftTransport.instance.gateIconProvider.RegisterIcons(iconRegister);
BuildCraftTransport.instance.wireIconProvider.RegisterIcons(iconRegister);
for (int i : pipes.keySet()){
Pipe dummyPipe = createPipe(i);
if (dummyPipe != null){
dummyPipe.getIconProvider().RegisterIcons(iconRegister);
}
}
}
}

View file

@ -0,0 +1,90 @@
package buildcraft.transport;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.Icon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.IIconProvider;
public class GateIconProvider implements IIconProvider {
public static final int Gate_Dark = 0;
public static final int Gate_Lit = 1;
public static final int Gate_Iron_And_Dark = 2;
public static final int Gate_Iron_And_Lit = 3;
public static final int Gate_Iron_Or_Dark = 4;
public static final int Gate_Iron_Or_Lit = 5;
public static final int Gate_Gold_And_Dark = 6;
public static final int Gate_Gold_And_Lit = 7;
public static final int Gate_Gold_Or_Dark = 8;
public static final int Gate_Gold_Or_Lit = 9;
public static final int Gate_Diamond_And_Dark = 10;
public static final int Gate_Diamond_And_Lit = 11;
public static final int Gate_Diamond_Or_Dark = 12;
public static final int Gate_Diamond_Or_Lit = 13;
public static final int Gate_Autarchic_Dark = 14;
public static final int Gate_Autarchic_Lit = 15;
public static final int Gate_Autarchic_Iron_And_Dark = 16;
public static final int Gate_Autarchic_Iron_And_Lit = 17;
public static final int Gate_Autarchic_Iron_Or_Dark = 18;
public static final int Gate_Autarchic_Iron_Or_Lit = 19;
public static final int Gate_Autarchic_Gold_And_Dark = 20;
public static final int Gate_Autarchic_Gold_And_Lit = 21;
public static final int Gate_Autarchic_Gold_Or_Dark = 22;
public static final int Gate_Autarchic_Gold_Or_Lit = 23;
public static final int Gate_Autarchic_Diamond_And_Dark = 24;
public static final int Gate_Autarchic_Diamond_And_Lit = 25;
public static final int Gate_Autarchic_Diamond_Or_Dark = 26;
public static final int Gate_Autarchic_Diamond_Or_Lit = 27;
public static final int MAX = 28;
@SideOnly(Side.CLIENT)
private Icon[] icons;
private boolean registered = false;
@Override
@SideOnly(Side.CLIENT)
public Icon getIcon(int pipeIconIndex) {
return icons[pipeIconIndex];
}
@Override
@SideOnly(Side.CLIENT)
public void RegisterIcons(IconRegister iconRegister) {
if (registered) return;
icons = new Icon[MAX];
icons[GateIconProvider.Gate_Dark] = iconRegister.func_94245_a("buildcraft:gate_dark");
icons[GateIconProvider.Gate_Lit] = iconRegister.func_94245_a("buildcraft:gate_lit");
icons[GateIconProvider.Gate_Iron_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_iron_and_dark");
icons[GateIconProvider.Gate_Iron_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_iron_and_lit");
icons[GateIconProvider.Gate_Iron_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_iron_or_dark");
icons[GateIconProvider.Gate_Iron_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_iron_or_lit");
icons[GateIconProvider.Gate_Gold_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_gold_and_dark");
icons[GateIconProvider.Gate_Gold_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_gold_and_lit");
icons[GateIconProvider.Gate_Gold_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_gold_or_dark");
icons[GateIconProvider.Gate_Gold_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_gold_or_lit");
icons[GateIconProvider.Gate_Diamond_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_diamond_and_dark");
icons[GateIconProvider.Gate_Diamond_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_diamond_and_lit");
icons[GateIconProvider.Gate_Diamond_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_diamond_or_dark");
icons[GateIconProvider.Gate_Diamond_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_diamond_or_lit");
icons[GateIconProvider.Gate_Autarchic_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_dark");
icons[GateIconProvider.Gate_Autarchic_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_lit");
icons[GateIconProvider.Gate_Autarchic_Iron_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_iron_and_dark");
icons[GateIconProvider.Gate_Autarchic_Iron_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_iron_and_lit");
icons[GateIconProvider.Gate_Autarchic_Iron_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_iron_or_dark");
icons[GateIconProvider.Gate_Autarchic_Iron_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_iron_or_lit");
icons[GateIconProvider.Gate_Autarchic_Gold_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_gold_and_dark");
icons[GateIconProvider.Gate_Autarchic_Gold_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_gold_and_lit");
icons[GateIconProvider.Gate_Autarchic_Gold_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_gold_or_dark");
icons[GateIconProvider.Gate_Autarchic_Gold_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_gold_or_lit");
icons[GateIconProvider.Gate_Autarchic_Diamond_And_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_diamond_and_dark");
icons[GateIconProvider.Gate_Autarchic_Diamond_And_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_diamond_and_lit");
icons[GateIconProvider.Gate_Autarchic_Diamond_Or_Dark] = iconRegister.func_94245_a("buildcraft:gate_autarchic_diamond_or_dark");
icons[GateIconProvider.Gate_Autarchic_Diamond_Or_Lit] = iconRegister.func_94245_a("buildcraft:gate_autarchic_diamond_or_lit");
}
}

View file

@ -262,24 +262,24 @@ public class GateVanilla extends Gate {
if (!hasPulser()){
switch (kind){
case None: return 0;
case Single: return isGateActive ? IconTerrainConstants.Gate_Dark : IconTerrainConstants.Gate_Lit;
case AND_2: return isGateActive ? IconTerrainConstants.Gate_Iron_And_Dark : IconTerrainConstants.Gate_Iron_And_Lit;
case OR_2: return isGateActive ? IconTerrainConstants.Gate_Iron_Or_Dark : IconTerrainConstants.Gate_Iron_Or_Lit;
case AND_3: return isGateActive ? IconTerrainConstants.Gate_Gold_And_Dark : IconTerrainConstants.Gate_Gold_And_Lit;
case OR_3: return isGateActive ? IconTerrainConstants.Gate_Gold_Or_Dark : IconTerrainConstants.Gate_Gold_Or_Lit;
case AND_4: return isGateActive ? IconTerrainConstants.Gate_Diamond_And_Dark : IconTerrainConstants.Gate_Diamond_And_Lit;
case OR_4: return isGateActive ? IconTerrainConstants.Gate_Diamond_Or_Dark : IconTerrainConstants.Gate_Diamond_Or_Lit;
case Single: return isGateActive ? GateIconProvider.Gate_Dark : GateIconProvider.Gate_Lit;
case AND_2: return isGateActive ? GateIconProvider.Gate_Iron_And_Dark : GateIconProvider.Gate_Iron_And_Lit;
case OR_2: return isGateActive ? GateIconProvider.Gate_Iron_Or_Dark : GateIconProvider.Gate_Iron_Or_Lit;
case AND_3: return isGateActive ? GateIconProvider.Gate_Gold_And_Dark : GateIconProvider.Gate_Gold_And_Lit;
case OR_3: return isGateActive ? GateIconProvider.Gate_Gold_Or_Dark : GateIconProvider.Gate_Gold_Or_Lit;
case AND_4: return isGateActive ? GateIconProvider.Gate_Diamond_And_Dark : GateIconProvider.Gate_Diamond_And_Lit;
case OR_4: return isGateActive ? GateIconProvider.Gate_Diamond_Or_Dark : GateIconProvider.Gate_Diamond_Or_Lit;
}
} else {
switch (kind){
case None: return 0;
case Single: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Dark : IconTerrainConstants.Gate_Autarchic_Lit;
case AND_2: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Iron_And_Dark : IconTerrainConstants.Gate_Autarchic_Iron_And_Lit;
case OR_2: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Iron_Or_Dark : IconTerrainConstants.Gate_Autarchic_Iron_Or_Lit;
case AND_3: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Gold_And_Dark : IconTerrainConstants.Gate_Autarchic_Gold_And_Lit;
case OR_3: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Gold_Or_Dark : IconTerrainConstants.Gate_Autarchic_Gold_Or_Lit;
case AND_4: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Diamond_And_Dark : IconTerrainConstants.Gate_Autarchic_Diamond_And_Lit;
case OR_4: return isGateActive ? IconTerrainConstants.Gate_Autarchic_Diamond_Or_Dark : IconTerrainConstants.Gate_Autarchic_Diamond_Or_Lit;
case Single: return isGateActive ? GateIconProvider.Gate_Autarchic_Dark : GateIconProvider.Gate_Autarchic_Lit;
case AND_2: return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_And_Dark : GateIconProvider.Gate_Autarchic_Iron_And_Lit;
case OR_2: return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_Or_Dark : GateIconProvider.Gate_Autarchic_Iron_Or_Lit;
case AND_3: return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_And_Dark : GateIconProvider.Gate_Autarchic_Gold_And_Lit;
case OR_3: return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_Or_Dark : GateIconProvider.Gate_Autarchic_Gold_Or_Lit;
case AND_4: return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_And_Dark : GateIconProvider.Gate_Autarchic_Diamond_And_Lit;
case OR_4: return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_Or_Dark : GateIconProvider.Gate_Autarchic_Diamond_Or_Lit;
}
}

View file

@ -1,8 +1,13 @@
package buildcraft.transport;
import buildcraft.core.IIconProvider;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
public interface IPipeRenderState {
public PipeRenderState getRenderState();
public Icon[] getPipeIcons();
@SideOnly(Side.CLIENT)
public IIconProvider getPipeIcons();
}

View file

@ -2,21 +2,7 @@ package buildcraft.transport;
public class IconItemConstants {
public static final int Gate = 0;
public static final int Gate_Iron_And = 1;
public static final int Gate_Iron_Or = 2;
public static final int Gate_Gold_And = 3;
public static final int Gate_Gold_Or = 4;
public static final int Gate_Diamond_And = 5;
public static final int Gate_Diamond_Or = 6;
public static final int Autarchic_Gate = 7;
public static final int Autarchic_Gate_Iron_And = 8;
public static final int Autarchic_Gate_Iron_Or = 9;
public static final int Autarchic_Gate_Gold_And = 10;
public static final int Autarchic_Gate_Gold_Or = 11;
public static final int Autarchic_Gate_Diamond_And = 12;
public static final int Autarchic_Gate_Diamond_Or = 13;
public static final int Action_MachineControl_On = 14;

View file

@ -1,82 +0,0 @@
package buildcraft.transport;
public class IconTerrainConstants {
public static final int PipeStructureCobblestone = 0;
public static final int PipeItemsCobbleStone = 1;
public static final int PipeItemsDiamond_Center = 2;
public static final int PipeItemsDiamond_Down = 3;
public static final int PipeItemsDiamond_Up = 4;
public static final int PipeItemsDiamond_North = 5;
public static final int PipeItemsDiamond_South = 6;
public static final int PipeItemsDiamond_West = 7;
public static final int PipeItemsDiamond_East = 8;
public static final int PipeItemsWood_Standard = 9;
public static final int PipeAllWood_Solid = 10;
public static final int PipeItemsEmerald_Standard = 11;
public static final int PipeAllEmerald_Solid = 12;
public static final int PipeItemsGold = 13;
public static final int PipeItemsIron_Standard = 14;
public static final int PipeAllIron_Solid = 15;
public static final int PipeItemsObsidian = 16;
public static final int PipeItemsSandstone = 17;
public static final int PipeItemsStone = 18;
public static final int PipeItemsVoid = 19;
public static final int PipeLiquidsCobblestone = 20;
public static final int PipeLiquidsWood_Standard = 21;
public static final int PipeLiquidsEmerald_Standard = 22;
public static final int PipeLiquidsGold = 23;
public static final int PipeLiquidsIron_Standard = 24;
public static final int PipeLiquidsSandstone = 25;
public static final int PipeLiquidsStone = 26;
public static final int PipeLiquidsVoid = 27;
public static final int PipePowerGold = 28;
public static final int PipePowerStone = 29;
public static final int PipePowerWood_Standard = 30;
public static final int Texture_Red_Dark = 31;
public static final int Texture_Red_Lit = 32;
public static final int Texture_Blue_Dark = 33;
public static final int Texture_Blue_Lit = 34;
public static final int Texture_Green_Dark = 35;
public static final int Texture_Green_Lit = 36;
public static final int Texture_Yellow_Dark = 37;
public static final int Texture_Yellow_Lit = 38;
public static final int Texture_Cyan = 39;
public static final int Gate_Dark = 40;
public static final int Gate_Lit = 41;
public static final int Gate_Iron_And_Dark = 42;
public static final int Gate_Iron_And_Lit = 43;
public static final int Gate_Iron_Or_Dark = 43;
public static final int Gate_Iron_Or_Lit = 44;
public static final int Gate_Gold_And_Dark = 45;
public static final int Gate_Gold_And_Lit = 46;
public static final int Gate_Gold_Or_Dark = 47;
public static final int Gate_Gold_Or_Lit = 48;
public static final int Gate_Diamond_And_Dark = 49;
public static final int Gate_Diamond_And_Lit = 50;
public static final int Gate_Diamond_Or_Dark = 51;
public static final int Gate_Diamond_Or_Lit = 52;
public static final int Gate_Autarchic_Dark = 53;
public static final int Gate_Autarchic_Lit = 54;
public static final int Gate_Autarchic_Iron_And_Dark = 55;
public static final int Gate_Autarchic_Iron_And_Lit = 56;
public static final int Gate_Autarchic_Iron_Or_Dark = 57;
public static final int Gate_Autarchic_Iron_Or_Lit = 58;
public static final int Gate_Autarchic_Gold_And_Dark = 59;
public static final int Gate_Autarchic_Gold_And_Lit = 60;
public static final int Gate_Autarchic_Gold_Or_Dark = 61;
public static final int Gate_Autarchic_Gold_Or_Lit = 62;
public static final int Gate_Autarchic_Diamond_And_Dark = 63;
public static final int Gate_Autarchic_Diamond_And_Lit = 64;
public static final int Gate_Autarchic_Diamond_Or_Dark = 65;
public static final int Gate_Autarchic_Diamond_Or_Lit = 66;
public static final int MAX = 67;
}

View file

@ -15,8 +15,29 @@ import buildcraft.core.ItemBuildCraft;
public class ItemGate extends ItemBuildCraft {
public static final int Gate = 0;
public static final int Gate_Iron_And = 1;
public static final int Gate_Iron_Or = 2;
public static final int Gate_Gold_And = 3;
public static final int Gate_Gold_Or = 4;
public static final int Gate_Diamond_And = 5;
public static final int Gate_Diamond_Or = 6;
public static final int Autarchic_Gate = 7;
public static final int Autarchic_Gate_Iron_And = 8;
public static final int Autarchic_Gate_Iron_Or = 9;
public static final int Autarchic_Gate_Gold_And = 10;
public static final int Autarchic_Gate_Gold_Or = 11;
public static final int Autarchic_Gate_Diamond_And = 12;
public static final int Autarchic_Gate_Diamond_Or = 13;
public static final int MAX = 14;
private int series;
@SideOnly(Side.CLIENT)
private Icon[] icons;
public ItemGate(int i, int series) {
super(i);
@ -41,36 +62,36 @@ public class ItemGate extends ItemBuildCraft {
if (series == 0){ //Normal Gates
switch (i) {
case 0:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate];
return icons[ItemGate.Gate];
case 1:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Iron_And];
return icons[ItemGate.Gate_Iron_And];
case 2:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Iron_Or];
return icons[ItemGate.Gate_Iron_Or];
case 3:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Gold_And];
return icons[ItemGate.Gate_Gold_And];
case 4:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Gold_Or];
return icons[ItemGate.Gate_Gold_Or];
case 5:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Diamond_And];
return icons[ItemGate.Gate_Diamond_And];
default:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Gate_Diamond_Or];
return icons[ItemGate.Gate_Diamond_Or];
}
} else if (series == 1){
switch (i) {
case 0:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate];
return icons[ItemGate.Autarchic_Gate];
case 1:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Iron_And];
return icons[ItemGate.Autarchic_Gate_Iron_And];
case 2:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Iron_Or];
return icons[ItemGate.Autarchic_Gate_Iron_Or];
case 3:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Gold_And];
return icons[ItemGate.Autarchic_Gate_Gold_And];
case 4:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Gold_Or];
return icons[ItemGate.Autarchic_Gate_Gold_Or];
case 5:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Diamond_And];
return icons[ItemGate.Autarchic_Gate_Diamond_And];
default:
return BuildCraftTransport.instance.itemIcons[IconItemConstants.Autarchic_Gate_Diamond_Or];
return icons[ItemGate.Autarchic_Gate_Diamond_Or];
}
}
return null;
@ -96,8 +117,25 @@ public class ItemGate extends ItemBuildCraft {
@Override
@SideOnly(Side.CLIENT)
public void func_94581_a(IconRegister par1IconRegister)
public void func_94581_a(IconRegister iconRegister)
{
// NOOP
icons = new Icon[ItemGate.MAX];
icons[ItemGate.Gate] = iconRegister.func_94245_a("buildcraft:gate");
icons[ItemGate.Gate_Iron_And] = iconRegister.func_94245_a("buildcraft:gate_iron_and");
icons[ItemGate.Gate_Iron_Or] = iconRegister.func_94245_a("buildcraft:gate_iron_or");
icons[ItemGate.Gate_Gold_And] = iconRegister.func_94245_a("buildcraft:gate_gold_and");
icons[ItemGate.Gate_Gold_Or] = iconRegister.func_94245_a("buildcraft:gate_gold_or");
icons[ItemGate.Gate_Diamond_And] = iconRegister.func_94245_a("buildcraft:gate_diamond_and");
icons[ItemGate.Gate_Diamond_Or] = iconRegister.func_94245_a("buildcraft:gate_diamond_or");
icons[ItemGate.Autarchic_Gate] = iconRegister.func_94245_a("buildcraft:autarchic_gate");
icons[ItemGate.Autarchic_Gate_Iron_And] = iconRegister.func_94245_a("buildcraft:autarchic_gate_iron_and");
icons[ItemGate.Autarchic_Gate_Iron_Or] = iconRegister.func_94245_a("buildcraft:autarchic_gate_iron_or");
icons[ItemGate.Autarchic_Gate_Gold_And] = iconRegister.func_94245_a("buildcraft:autarchic_gate_gold_and");
icons[ItemGate.Autarchic_Gate_Gold_Or] = iconRegister.func_94245_a("buildcraft:autarchic_gate_gold_or");
icons[ItemGate.Autarchic_Gate_Diamond_And] = iconRegister.func_94245_a("buildcraft:autarchic_gate_diamond_and");
icons[ItemGate.Autarchic_Gate_Diamond_Or] = iconRegister.func_94245_a("buildcraft:autarchic_gate_diamond_or");
}
}

View file

@ -19,12 +19,18 @@ import net.minecraft.util.Icon;
import net.minecraft.world.World;
import buildcraft.BuildCraftTransport;
import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.IIconProvider;
import buildcraft.core.IItemPipe;
import buildcraft.core.ItemBuildCraft;
import buildcraft.BuildCraftCore;
public class ItemPipe extends ItemBuildCraft implements IItemPipe {
@SideOnly(Side.CLIENT)
private IIconProvider iconProvider;
private int pipeIconIndex;
protected ItemPipe(int i) {
super(i);
setCreativeTab(CreativeTabBuildCraft.tabBuildCraft);
@ -85,21 +91,32 @@ public class ItemPipe extends ItemBuildCraft implements IItemPipe {
} else
return false;
}
@SideOnly(Side.CLIENT)
public Icon getPipeIcon(){
return iconIndex;
public void setPipesIcons(IIconProvider iconProvider){
this.iconProvider = iconProvider;
}
public void setPipeIconIndex(int index){
this.pipeIconIndex = index;
}
@Override
@SideOnly(Side.CLIENT)
public void setPipeIcon(Icon icon){
this.iconIndex = icon;
public Icon getIconFromDamage(int par1) {
return iconProvider.getIcon(pipeIconIndex);
}
@Override
@SideOnly(Side.CLIENT)
public void func_94581_a(IconRegister par1IconRegister)
{
// NOOP
}
@Override
@SideOnly(Side.CLIENT)
public int func_94901_k() {
return 0;
}
}

View file

@ -40,6 +40,7 @@ import buildcraft.api.gates.Trigger;
import buildcraft.api.gates.TriggerParameter;
import buildcraft.api.transport.IPipe;
import buildcraft.core.IDropControlInventory;
import buildcraft.core.IIconProvider;
import buildcraft.core.network.TilePacketWrapper;
import buildcraft.core.triggers.ActionRedstoneOutput;
import buildcraft.core.utils.Utils;
@ -143,7 +144,7 @@ public abstract class Pipe implements IPipe, IDropControlInventory {
/**
* Should return the textureindex used by the Pipe Item Renderer, as this is done client-side the default implementation might not work if your
* getTextureIndex(Orienations.Unknown) has logic
* getTextureIndex(Orienations.Unknown) has logic. Then override this
*
* @return
*/
@ -151,13 +152,12 @@ public abstract class Pipe implements IPipe, IDropControlInventory {
return getIconIndex(ForgeDirection.UNKNOWN);
}
/**
* Should return an array of icons that is registered with this pipe. Do not return/modify the buildcraft one!
* Should return the IIconProvider that provides icons for this pipe
* @return An array of icons
*/
@SideOnly(Side.CLIENT)
public abstract Icon[] getTextureIcons();
public abstract IIconProvider getIconProvider();
/**
* Should return the index in the array returned by GetTextureIcons() for a specified direction

View file

@ -0,0 +1,111 @@
package buildcraft.transport;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.Icon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.IIconProvider;
public class PipeIconProvider implements IIconProvider {
public static final int PipeStructureCobblestone = 0;
public static final int PipeItemsCobbleStone = 1;
public static final int PipeItemsDiamond_Center = 2;
public static final int PipeItemsDiamond_Down = 3;
public static final int PipeItemsDiamond_Up = 4;
public static final int PipeItemsDiamond_North = 5;
public static final int PipeItemsDiamond_South = 6;
public static final int PipeItemsDiamond_West = 7;
public static final int PipeItemsDiamond_East = 8;
public static final int PipeItemsWood_Standard = 9;
public static final int PipeAllWood_Solid = 10;
public static final int PipeItemsEmerald_Standard = 11;
public static final int PipeAllEmerald_Solid = 12;
public static final int PipeItemsGold = 13;
public static final int PipeItemsIron_Standard = 14;
public static final int PipeAllIron_Solid = 15;
public static final int PipeItemsObsidian = 16;
public static final int PipeItemsSandstone = 17;
public static final int PipeItemsStone = 18;
public static final int PipeItemsVoid = 19;
public static final int PipeLiquidsCobblestone = 20;
public static final int PipeLiquidsWood_Standard = 21;
public static final int PipeLiquidsEmerald_Standard = 22;
public static final int PipeLiquidsGold = 23;
public static final int PipeLiquidsIron_Standard = 24;
public static final int PipeLiquidsSandstone = 25;
public static final int PipeLiquidsStone = 26;
public static final int PipeLiquidsVoid = 27;
public static final int PipePowerGold = 28;
public static final int PipePowerStone = 29;
public static final int PipePowerWood_Standard = 30;
public static final int Power_Normal = 31;
public static final int Power_Overload = 32;
public static final int MAX = 33;
private boolean registered = false;
@SideOnly(Side.CLIENT)
private Icon[] _icons;
@Override
@SideOnly(Side.CLIENT)
public Icon getIcon(int pipeIconIndex) {
return _icons[pipeIconIndex];
}
@Override
@SideOnly(Side.CLIENT)
public void RegisterIcons(IconRegister iconRegister) {
if (registered) return;
_icons = new Icon[PipeIconProvider.MAX];
_icons[PipeIconProvider.PipeStructureCobblestone] = iconRegister.func_94245_a("buildcraft:pipeStructureCobblestone");
_icons[PipeIconProvider.PipeItemsCobbleStone] = iconRegister.func_94245_a("buildcraft:pipeItemsCobblestone");
_icons[PipeIconProvider.PipeItemsDiamond_Center] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_center");
_icons[PipeIconProvider.PipeItemsDiamond_Down] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_down");
_icons[PipeIconProvider.PipeItemsDiamond_Up] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_up");
_icons[PipeIconProvider.PipeItemsDiamond_North] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_north");
_icons[PipeIconProvider.PipeItemsDiamond_South] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_south");
_icons[PipeIconProvider.PipeItemsDiamond_West] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_west");
_icons[PipeIconProvider.PipeItemsDiamond_East] = iconRegister.func_94245_a("buildcraft:pipeItemsDiamond_east");
_icons[PipeIconProvider.PipeItemsWood_Standard] = iconRegister.func_94245_a("buildcraft:pipeItemsWood_standard");
_icons[PipeIconProvider.PipeAllWood_Solid] = iconRegister.func_94245_a("buildcraft:pipeAllWood_solid");
_icons[PipeIconProvider.PipeItemsEmerald_Standard] = iconRegister.func_94245_a("buildcraft:pipeItemsEmerald_standard");
_icons[PipeIconProvider.PipeAllEmerald_Solid] = iconRegister.func_94245_a("buildcraft:pipeAllEmerald_solid");
_icons[PipeIconProvider.PipeItemsGold] = iconRegister.func_94245_a("buildcraft:pipeItemsGold");
_icons[PipeIconProvider.PipeItemsIron_Standard] = iconRegister.func_94245_a("buildcraft:pipeItemsIron_standard");
_icons[PipeIconProvider.PipeAllIron_Solid] = iconRegister.func_94245_a("buildcraft:pipeAllIron_solid");
_icons[PipeIconProvider.PipeItemsObsidian] = iconRegister.func_94245_a("buildcraft:pipeItemsObsidian");
_icons[PipeIconProvider.PipeItemsSandstone] = iconRegister.func_94245_a("buildcraft:pipeItemsSandstone");
_icons[PipeIconProvider.PipeItemsStone] = iconRegister.func_94245_a("buildcraft:pipeItemsStone");
_icons[PipeIconProvider.PipeItemsVoid] = iconRegister.func_94245_a("buildcraft:pipeItemsVoid");
_icons[PipeIconProvider.PipeLiquidsCobblestone] = iconRegister.func_94245_a("buildcraft:pipeLiquidsCobblestone");
_icons[PipeIconProvider.PipeLiquidsWood_Standard] = iconRegister.func_94245_a("buildcraft:pipeLiquidsWood_standard");
_icons[PipeIconProvider.PipeLiquidsEmerald_Standard] = iconRegister.func_94245_a("buildcraft:pipeLiquidsEmerald_standard");
_icons[PipeIconProvider.PipeLiquidsGold] = iconRegister.func_94245_a("buildcraft:pipeLiquidsGold");
_icons[PipeIconProvider.PipeLiquidsIron_Standard] = iconRegister.func_94245_a("buildcraft:pipeLiquidsIron_standard");
_icons[PipeIconProvider.PipeLiquidsSandstone] = iconRegister.func_94245_a("buildcraft:pipeLiquidsSandstone");
_icons[PipeIconProvider.PipeLiquidsStone] = iconRegister.func_94245_a("buildcraft:pipeLiquidsStone");
_icons[PipeIconProvider.PipeLiquidsVoid] = iconRegister.func_94245_a("buildcraft:pipeLiquidsVoid");
_icons[PipeIconProvider.PipePowerGold] = iconRegister.func_94245_a("buildcraft:pipePowerGold");
_icons[PipeIconProvider.PipePowerStone] = iconRegister.func_94245_a("buildcraft:pipePowerStone");
_icons[PipeIconProvider.PipePowerWood_Standard] = iconRegister.func_94245_a("buildcraft:pipePowerWood_standard");
_icons[PipeIconProvider.Power_Normal] = iconRegister.func_94245_a("buildcraft:texture_cyan");
_icons[PipeIconProvider.Power_Overload] = iconRegister.func_94245_a("buildcraft:texture_red_dark");
}
}

View file

@ -4,6 +4,9 @@ import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import buildcraft.core.DefaultProps;
@ -29,6 +32,7 @@ public class PipeRenderState implements IClientState {
/*
* This is a placeholder for the pipe renderer to set to a value that the BlockGenericPipe->TileGenericPipe will then return the the WorldRenderer
*/
@SideOnly(Side.CLIENT)
public Icon currentTexture;
public void setHasGate(boolean value) {

View file

@ -45,6 +45,7 @@ import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.EntityPassiveItem;
import buildcraft.core.IDropControlInventory;
import buildcraft.core.IIconProvider;
import buildcraft.core.ITileBufferHolder;
import buildcraft.core.TileBuffer;
import buildcraft.core.network.IClientState;
@ -214,7 +215,25 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITank
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
renderState.wireMatrix.setWireConnected(color, direction, pipe.isWireConnectedTo(this.getTile(direction), color));
}
renderState.wireMatrix.setWireLit(color, pipe.signalStrength[color.ordinal()] > 0);
boolean lit = pipe.signalStrength[color.ordinal()] > 0;
switch(color){
case Red:
renderState.wireMatrix.setWireIndex(color, lit? WireIconProvider.Texture_Red_Lit : WireIconProvider.Texture_Red_Dark);
break;
case Blue:
renderState.wireMatrix.setWireIndex(color, lit? WireIconProvider.Texture_Blue_Lit : WireIconProvider.Texture_Blue_Dark);
break;
case Green:
renderState.wireMatrix.setWireIndex(color, lit? WireIconProvider.Texture_Green_Lit : WireIconProvider.Texture_Green_Dark);
break;
case Yellow:
renderState.wireMatrix.setWireIndex(color, lit? WireIconProvider.Texture_Yellow_Lit : WireIconProvider.Texture_Yellow_Dark);
break;
default:
break;
}
}
// Gate Textures
@ -586,9 +605,10 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITank
}
@Override
public Icon[] getPipeIcons() {
@SideOnly(Side.CLIENT)
public IIconProvider getPipeIcons() {
if (pipe == null) return null;
return pipe.getTextureIcons();
return pipe.getIconProvider();
}
@Override

View file

@ -18,10 +18,11 @@ public class TransportProxy {
public void registerRenderers() {
}
public void loadTerrainIcons(BuildCraftTransport instance) {
public void initIconProviders(BuildCraftTransport instance){
}
public void loadItemIcons(BuildCraftTransport instance){
public void setIconProviderFromPipe(ItemPipe item, Pipe dummyPipe) {
}

View file

@ -62,145 +62,48 @@ public class TransportProxyClient extends TransportProxy {
}
@Override
public void loadTerrainIcons(BuildCraftTransport instance) {
instance.terrainIcons = new Icon[IconTerrainConstants.MAX];
TextureMap terrainTextures = Minecraft.getMinecraft().renderEngine.field_94154_l;
instance.terrainIcons[IconTerrainConstants.PipeStructureCobblestone] = terrainTextures.func_94245_a("buildcraft:pipeStructureCobblestone");
instance.terrainIcons[IconTerrainConstants.PipeItemsCobbleStone] = terrainTextures.func_94245_a("buildcraft:pipeItemsCobblestone");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_Center] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_center");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_Down] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_down");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_Up] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_up");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_North] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_north");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_South] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_south");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_West] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_west");
instance.terrainIcons[IconTerrainConstants.PipeItemsDiamond_East] = terrainTextures.func_94245_a("buildcraft:pipeItemsDiamond_east");
instance.terrainIcons[IconTerrainConstants.PipeItemsWood_Standard] = terrainTextures.func_94245_a("buildcraft:pipeItemsWood_standard");
instance.terrainIcons[IconTerrainConstants.PipeAllWood_Solid] = terrainTextures.func_94245_a("buildcraft:pipeAllWood_solid");
instance.terrainIcons[IconTerrainConstants.PipeItemsEmerald_Standard] = terrainTextures.func_94245_a("buildcraft:pipeItemsEmerald_standard");
instance.terrainIcons[IconTerrainConstants.PipeAllEmerald_Solid] = terrainTextures.func_94245_a("buildcraft:pipeAllEmerald_solid");
instance.terrainIcons[IconTerrainConstants.PipeItemsGold] = terrainTextures.func_94245_a("buildcraft:pipeItemsGold");
instance.terrainIcons[IconTerrainConstants.PipeItemsIron_Standard] = terrainTextures.func_94245_a("buildcraft:pipeItemsIron_standard");
instance.terrainIcons[IconTerrainConstants.PipeAllIron_Solid] = terrainTextures.func_94245_a("buildcraft:pipeAllIron_solid");
instance.terrainIcons[IconTerrainConstants.PipeItemsObsidian] = terrainTextures.func_94245_a("buildcraft:pipeItemsObsidian");
instance.terrainIcons[IconTerrainConstants.PipeItemsSandstone] = terrainTextures.func_94245_a("buildcraft:pipeItemsSandstone");
instance.terrainIcons[IconTerrainConstants.PipeItemsStone] = terrainTextures.func_94245_a("buildcraft:pipeItemsStone");
instance.terrainIcons[IconTerrainConstants.PipeItemsVoid] = terrainTextures.func_94245_a("buildcraft:pipeItemsVoid");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsCobblestone] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsCobblestone");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsWood_Standard] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsWood_standard");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsEmerald_Standard] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsEmerald_standard");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsGold] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsGold");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsIron_Standard] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsIron_standard");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsSandstone] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsSandstone");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsStone] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsStone");
instance.terrainIcons[IconTerrainConstants.PipeLiquidsVoid] = terrainTextures.func_94245_a("buildcraft:pipeLiquidsVoid");
instance.terrainIcons[IconTerrainConstants.PipePowerGold] = terrainTextures.func_94245_a("buildcraft:pipePowerGold");
instance.terrainIcons[IconTerrainConstants.PipePowerStone] = terrainTextures.func_94245_a("buildcraft:pipePowerStone");
instance.terrainIcons[IconTerrainConstants.PipePowerWood_Standard] = terrainTextures.func_94245_a("buildcraft:pipePowerWood_standard");
instance.terrainIcons[IconTerrainConstants.Texture_Red_Dark] = terrainTextures.func_94245_a("buildcraft:texture_red_dark");
instance.terrainIcons[IconTerrainConstants.Texture_Red_Lit] = terrainTextures.func_94245_a("buildcraft:texture_red_lit");
instance.terrainIcons[IconTerrainConstants.Texture_Blue_Dark] = terrainTextures.func_94245_a("buildcraft:texture_blue_dark");
instance.terrainIcons[IconTerrainConstants.Texture_Blue_Lit] = terrainTextures.func_94245_a("buildcraft:texture_blue_lit");
instance.terrainIcons[IconTerrainConstants.Texture_Green_Dark] = terrainTextures.func_94245_a("buildcraft:texture_green_dark");
instance.terrainIcons[IconTerrainConstants.Texture_Green_Lit] = terrainTextures.func_94245_a("buildcraft:texture_green_lit");
instance.terrainIcons[IconTerrainConstants.Texture_Yellow_Dark] = terrainTextures.func_94245_a("buildcraft:texture_yellow_dark");
instance.terrainIcons[IconTerrainConstants.Texture_Yellow_Lit] = terrainTextures.func_94245_a("buildcraft:texture_yellow_lit");
instance.terrainIcons[IconTerrainConstants.Texture_Cyan] = terrainTextures.func_94245_a("buildcraft:texture_cyan");
instance.terrainIcons[IconTerrainConstants.Gate_Dark] = terrainTextures.func_94245_a("buildcraft:gate_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Lit] = terrainTextures.func_94245_a("buildcraft:gate_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Iron_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_iron_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Iron_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_iron_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Iron_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_iron_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Iron_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_iron_or_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Gold_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_gold_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Gold_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_gold_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Gold_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_gold_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Gold_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_gold_or_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Diamond_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_diamond_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Diamond_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_diamond_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Diamond_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_diamond_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Diamond_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_diamond_or_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Iron_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_iron_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Iron_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_iron_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Iron_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_iron_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Iron_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_iron_or_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Gold_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_gold_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Gold_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_gold_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Gold_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_gold_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Gold_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_gold_or_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Diamond_And_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_diamond_and_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Diamond_And_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_diamond_and_lit");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Diamond_Or_Dark] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_diamond_or_dark");
instance.terrainIcons[IconTerrainConstants.Gate_Autarchic_Diamond_Or_Lit] = terrainTextures.func_94245_a("buildcraft:gate_autarchic_diamond_or_lit");
}
@Override
public void loadItemIcons(BuildCraftTransport instance) {
instance.itemIcons = new Icon[IconItemConstants.MAX];
TextureMap itemTextures = Minecraft.getMinecraft().renderEngine.field_94155_m;
instance.itemIcons[IconItemConstants.Gate] = itemTextures.func_94245_a("buildcraft:gate");
instance.itemIcons[IconItemConstants.Gate_Iron_And] = itemTextures.func_94245_a("buildcraft:gate_iron_and");
instance.itemIcons[IconItemConstants.Gate_Iron_Or] = itemTextures.func_94245_a("buildcraft:gate_iron_or");
instance.itemIcons[IconItemConstants.Gate_Gold_And] = itemTextures.func_94245_a("buildcraft:gate_gold_and");
instance.itemIcons[IconItemConstants.Gate_Gold_Or] = itemTextures.func_94245_a("buildcraft:gate_gold_or");
instance.itemIcons[IconItemConstants.Gate_Diamond_And] = itemTextures.func_94245_a("buildcraft:gate_diamond_and");
instance.itemIcons[IconItemConstants.Gate_Diamond_Or] = itemTextures.func_94245_a("buildcraft:gate_diamond_or");
instance.itemIcons[IconItemConstants.Autarchic_Gate] = itemTextures.func_94245_a("buildcraft:autarchic_gate");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Iron_And] = itemTextures.func_94245_a("buildcraft:autarchic_gate_iron_and");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Iron_Or] = itemTextures.func_94245_a("buildcraft:autarchic_gate_iron_or");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Gold_And] = itemTextures.func_94245_a("buildcraft:autarchic_gate_gold_and");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Gold_Or] = itemTextures.func_94245_a("buildcraft:autarchic_gate_gold_or");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Diamond_And] = itemTextures.func_94245_a("buildcraft:autarchic_gate_diamond_and");
instance.itemIcons[IconItemConstants.Autarchic_Gate_Diamond_Or] = itemTextures.func_94245_a("buildcraft:autarchic_gate_diamond_or");
instance.itemIcons[IconItemConstants.Action_MachineControl_On] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_on");
instance.itemIcons[IconItemConstants.Action_MachineControl_Off] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_off");
instance.itemIcons[IconItemConstants.Action_MachineControl_Loop] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_loop");
instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Blue] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_blue");
instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Green] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_green");
instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Yellow] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_yellow");
instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Red] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_red");
instance.itemIcons[IconItemConstants.Trigger_Inventory_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_empty");
instance.itemIcons[IconItemConstants.Trigger_Inventory_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_contains");
instance.itemIcons[IconItemConstants.Trigger_Inventory_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_space");
instance.itemIcons[IconItemConstants.Trigger_Inventory_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_full");
instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_empty");
instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_contains");
instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_space");
instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_full");
instance.itemIcons[IconItemConstants.Trigger_Machine_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_active");
instance.itemIcons[IconItemConstants.Trigger_Machine_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_inactive");
instance.itemIcons[IconItemConstants.Trigger_PipeContents_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_empty");
instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsItems] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsitems");
instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsLiquid] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsliquid");
instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsEnergy] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsenergy");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_active");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_inactive");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_active");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_inactive");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_active");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_inactive");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_active");
instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_inactive");
instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_active");
instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_inactive");
public void setIconProviderFromPipe(ItemPipe item, Pipe dummyPipe) {
item.setPipesIcons(dummyPipe.getIconProvider());
}
//
// @Override
// public void loadItemIcons(BuildCraftTransport instance) {
// TextureMap itemTextures = Minecraft.getMinecraft().renderEngine.field_94155_m;
//
//
// instance.itemIcons[IconItemConstants.Action_MachineControl_On] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_on");
// instance.itemIcons[IconItemConstants.Action_MachineControl_Off] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_off");
// instance.itemIcons[IconItemConstants.Action_MachineControl_Loop] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_loop");
//
// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Blue] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_blue");
// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Green] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_green");
// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Yellow] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_yellow");
// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Red] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_red");
// instance.itemIcons[IconItemConstants.Trigger_Inventory_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_empty");
// instance.itemIcons[IconItemConstants.Trigger_Inventory_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_contains");
// instance.itemIcons[IconItemConstants.Trigger_Inventory_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_space");
// instance.itemIcons[IconItemConstants.Trigger_Inventory_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_full");
// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_empty");
// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_contains");
// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_space");
// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_full");
// instance.itemIcons[IconItemConstants.Trigger_Machine_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_active");
// instance.itemIcons[IconItemConstants.Trigger_Machine_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_inactive");
// instance.itemIcons[IconItemConstants.Trigger_PipeContents_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_empty");
// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsItems] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsitems");
// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsLiquid] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsliquid");
// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsEnergy] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsenergy");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_active");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_inactive");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_active");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_inactive");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_active");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_inactive");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_active");
// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_inactive");
// instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_active");
// instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_inactive");
//
// }
}

View file

@ -0,0 +1,50 @@
package buildcraft.transport;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.Icon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.core.IIconProvider;
public class WireIconProvider implements IIconProvider {
public static final int Texture_Red_Dark = 0;
public static final int Texture_Red_Lit = 1;
public static final int Texture_Blue_Dark = 2;
public static final int Texture_Blue_Lit = 3;
public static final int Texture_Green_Dark = 4;
public static final int Texture_Green_Lit = 5;
public static final int Texture_Yellow_Dark = 6;
public static final int Texture_Yellow_Lit = 7;
public static final int MAX = 8;
@SideOnly(Side.CLIENT)
private Icon[] icons;
private boolean registered = false;
@Override
@SideOnly(Side.CLIENT)
public Icon getIcon(int pipeIconIndex) {
return icons[pipeIconIndex];
}
@Override
@SideOnly(Side.CLIENT)
public void RegisterIcons(IconRegister iconRegister) {
if (registered) return;
icons = new Icon[MAX];
icons[WireIconProvider.Texture_Red_Dark] = iconRegister.func_94245_a("buildcraft:texture_red_dark");
icons[WireIconProvider.Texture_Red_Lit] = iconRegister.func_94245_a("buildcraft:texture_red_lit");
icons[WireIconProvider.Texture_Blue_Dark] = iconRegister.func_94245_a("buildcraft:texture_blue_dark");
icons[WireIconProvider.Texture_Blue_Lit] = iconRegister.func_94245_a("buildcraft:texture_blue_lit");
icons[WireIconProvider.Texture_Green_Dark] = iconRegister.func_94245_a("buildcraft:texture_green_dark");
icons[WireIconProvider.Texture_Green_Lit] = iconRegister.func_94245_a("buildcraft:texture_green_lit");
icons[WireIconProvider.Texture_Yellow_Dark] = iconRegister.func_94245_a("buildcraft:texture_yellow_dark");
icons[WireIconProvider.Texture_Yellow_Lit] = iconRegister.func_94245_a("buildcraft:texture_yellow_lit");
}
}

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsCobblestone extends Pipe {
@ -27,13 +26,13 @@ public class PipeItemsCobblestone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsCobbleStone;
return PipeIconProvider.PipeItemsCobbleStone;
}
}

View file

@ -13,24 +13,22 @@ import java.io.DataOutputStream;
import java.io.IOException;
import java.util.LinkedList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.core.Position;
import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.network.IClientState;
import buildcraft.transport.IPipeTransportItemsHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsDiamond extends Pipe implements IPipeTransportItemsHook, IClientState {
@ -40,20 +38,20 @@ public class PipeItemsDiamond extends Pipe implements IPipeTransportItemsHook, I
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
switch(direction){
case UNKNOWN: return IconTerrainConstants.PipeItemsDiamond_Center;
case DOWN: return IconTerrainConstants.PipeItemsDiamond_Down;
case UP: return IconTerrainConstants.PipeItemsDiamond_Up;
case NORTH: return IconTerrainConstants.PipeItemsDiamond_North;
case SOUTH: return IconTerrainConstants.PipeItemsDiamond_South;
case WEST: return IconTerrainConstants.PipeItemsDiamond_West;
case EAST: return IconTerrainConstants.PipeItemsDiamond_East;
case UNKNOWN: return PipeIconProvider.PipeItemsDiamond_Center;
case DOWN: return PipeIconProvider.PipeItemsDiamond_Down;
case UP: return PipeIconProvider.PipeItemsDiamond_Up;
case NORTH: return PipeIconProvider.PipeItemsDiamond_North;
case SOUTH: return PipeIconProvider.PipeItemsDiamond_South;
case WEST: return PipeIconProvider.PipeItemsDiamond_West;
case EAST: return PipeIconProvider.PipeItemsDiamond_East;
default: throw new IllegalArgumentException("direction out of bounds");
}
}

View file

@ -8,13 +8,21 @@
*/
package buildcraft.transport.pipes;
import buildcraft.BuildCraftTransport;
import buildcraft.api.inventory.ISelectiveInventory;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
import buildcraft.BuildCraftTransport;
import buildcraft.api.inventory.ISelectiveInventory;
import buildcraft.api.inventory.ISpecialInventory;
import buildcraft.core.GuiIds;
import buildcraft.core.network.IClientState;
@ -22,15 +30,8 @@ import buildcraft.core.proxy.CoreProxy;
import buildcraft.core.utils.SimpleInventory;
import buildcraft.core.utils.Utils;
import buildcraft.transport.BlockGenericPipe;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
public class PipeItemsEmerald extends PipeItemsWood implements ISpecialInventory, IClientState {
@ -40,8 +41,8 @@ public class PipeItemsEmerald extends PipeItemsWood implements ISpecialInventory
protected PipeItemsEmerald(int itemID, PipeTransportItems transport) {
super(transport, new PipeLogicEmerald(), itemID);
standardIconIndex = IconTerrainConstants.PipeItemsEmerald_Standard;
solidIconIndex = IconTerrainConstants.PipeAllEmerald_Solid;
standardIconIndex = PipeIconProvider.PipeItemsEmerald_Standard;
solidIconIndex = PipeIconProvider.PipeAllEmerald_Solid;
}
public PipeItemsEmerald(int itemID) {

View file

@ -10,20 +10,18 @@ package buildcraft.transport.pipes;
import java.util.LinkedList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.core.Position;
import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IPipeTransportItemsHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsGold extends Pipe implements IPipeTransportItemsHook {
@ -33,13 +31,13 @@ public class PipeItemsGold extends Pipe implements IPipeTransportItemsHook {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsGold;
return PipeIconProvider.PipeItemsGold;
}
@Override

View file

@ -8,20 +8,19 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsIron extends Pipe {
private int standardIconIndex = IconTerrainConstants.PipeItemsIron_Standard;
private int solidIconIndex = IconTerrainConstants.PipeAllIron_Solid;
private int standardIconIndex = PipeIconProvider.PipeItemsIron_Standard;
private int solidIconIndex = PipeIconProvider.PipeAllIron_Solid;
public PipeItemsIron(int itemID) {
super(new PipeTransportItems(), new PipeLogicIron(), itemID);
@ -29,12 +28,6 @@ public class PipeItemsIron extends Pipe {
((PipeTransportItems) transport).allowBouncing = true;
}
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
}
@Override
public int getIconIndex(ForgeDirection direction) {
if (direction == ForgeDirection.UNKNOWN)
@ -49,6 +42,12 @@ public class PipeItemsIron extends Pipe {
}
}
@Override
@SideOnly(Side.CLIENT)
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public boolean canConnectRedstone() {
return true;

View file

@ -10,19 +10,14 @@ package buildcraft.transport.pipes;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.item.EntityMinecartChest;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.core.Position;
@ -30,13 +25,15 @@ import buildcraft.api.power.IPowerProvider;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.EntityPassiveItem;
import buildcraft.core.IIconProvider;
import buildcraft.core.proxy.CoreProxy;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsObsidian extends Pipe implements IPowerReceptor {
@ -61,13 +58,13 @@ public class PipeItemsObsidian extends Pipe implements IPowerReceptor {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsObsidian;
return PipeIconProvider.PipeItemsObsidian;
}
@Override

View file

@ -9,15 +9,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsSandstone extends Pipe {
public PipeItemsSandstone(int itemID) {
@ -26,12 +25,12 @@ public class PipeItemsSandstone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsSandstone;
return PipeIconProvider.PipeItemsSandstone;
}
}

View file

@ -10,20 +10,18 @@ package buildcraft.transport.pipes;
import java.util.LinkedList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.core.Position;
import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IPipeTransportItemsHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsStone extends Pipe implements IPipeTransportItemsHook {
@ -34,13 +32,13 @@ public class PipeItemsStone extends Pipe implements IPipeTransportItemsHook {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsStone;
return PipeIconProvider.PipeItemsStone;
}
@Override

View file

@ -9,18 +9,17 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.transport.EntityData;
import buildcraft.transport.IItemTravelingHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsVoid extends Pipe implements IItemTravelingHook {
@ -31,13 +30,13 @@ public class PipeItemsVoid extends Pipe implements IItemTravelingHook {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeItemsVoid;
return PipeIconProvider.PipeItemsVoid;
}
// This is called if the void pipe is only connected to one pipe

View file

@ -8,12 +8,9 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ISidedInventory;
@ -25,20 +22,22 @@ import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
import buildcraft.api.transport.IPipedItem;
import buildcraft.api.transport.PipeManager;
import buildcraft.core.DefaultProps;
import buildcraft.core.EntityPassiveItem;
import buildcraft.core.IIconProvider;
import buildcraft.core.RedstonePowerFramework;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeItemsWood extends Pipe implements IPowerReceptor {
private IPowerProvider powerProvider;
protected int standardIconIndex = IconTerrainConstants.PipeItemsWood_Standard;
protected int solidIconIndex = IconTerrainConstants.PipeAllWood_Solid;
protected int standardIconIndex = PipeIconProvider.PipeItemsWood_Standard;
protected int solidIconIndex = PipeIconProvider.PipeAllWood_Solid;
protected PipeItemsWood(PipeTransportItems transport, PipeLogic logic, int itemID) {
super(transport, logic, itemID);
@ -58,8 +57,8 @@ public class PipeItemsWood extends Pipe implements IPowerReceptor {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsCobblestone extends Pipe {
@ -26,12 +25,12 @@ public class PipeLiquidsCobblestone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeLiquidsCobblestone;
return PipeIconProvider.PipeLiquidsCobblestone;
}
}

View file

@ -8,7 +8,7 @@
*/
package buildcraft.transport.pipes;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
/**
@ -20,8 +20,8 @@ public class PipeLiquidsEmerald extends PipeLiquidsWood {
public PipeLiquidsEmerald(int itemID) {
super(new PipeLogicEmerald(), itemID);
standardIconIndex = IconTerrainConstants.PipeLiquidsEmerald_Standard;
solidIconIndex = IconTerrainConstants.PipeAllEmerald_Solid;
standardIconIndex = PipeIconProvider.PipeLiquidsEmerald_Standard;
solidIconIndex = PipeIconProvider.PipeAllEmerald_Solid;
((PipeTransportLiquids) transport).flowRate = 40;
((PipeTransportLiquids) transport).travelDelay = 4;

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsGold extends Pipe {
@ -29,13 +28,13 @@ public class PipeLiquidsGold extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeLiquidsGold;
return PipeIconProvider.PipeLiquidsGold;
}
}

View file

@ -8,20 +8,19 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsIron extends Pipe {
protected int standardIconIndex = IconTerrainConstants.PipeLiquidsIron_Standard;
protected int solidIconIndex = IconTerrainConstants.PipeAllIron_Solid;
protected int standardIconIndex = PipeIconProvider.PipeLiquidsIron_Standard;
protected int solidIconIndex = PipeIconProvider.PipeAllIron_Solid;
public PipeLiquidsIron(int itemID) {
@ -30,8 +29,8 @@ public class PipeLiquidsIron extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override

View file

@ -9,18 +9,17 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.LiquidStack;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.transport.IPipeTransportLiquidsHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import buildcraft.transport.TileGenericPipe;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsSandstone extends Pipe implements IPipeTransportLiquidsHook {
public PipeLiquidsSandstone(int itemID) {
@ -29,13 +28,13 @@ public class PipeLiquidsSandstone extends Pipe implements IPipeTransportLiquidsH
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeLiquidsSandstone;
return PipeIconProvider.PipeLiquidsSandstone;
}
@Override

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsStone extends Pipe {
@ -28,13 +27,13 @@ public class PipeLiquidsStone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeLiquidsStone;
return PipeIconProvider.PipeLiquidsStone;
}
}

View file

@ -9,17 +9,16 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.LiquidStack;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.transport.IPipeTransportLiquidsHook;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsVoid extends Pipe implements IPipeTransportLiquidsHook {
@ -29,13 +28,13 @@ public class PipeLiquidsVoid extends Pipe implements IPipeTransportLiquidsHook {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeLiquidsVoid;
return PipeIconProvider.PipeLiquidsVoid;
}
@Override

View file

@ -8,10 +8,7 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.ITankContainer;
@ -23,12 +20,14 @@ import buildcraft.api.power.IPowerProvider;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
import buildcraft.api.transport.PipeManager;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.RedstonePowerFramework;
import buildcraft.core.network.TileNetworkData;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportLiquids;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeLiquidsWood extends Pipe implements IPowerReceptor {
@ -37,8 +36,8 @@ public class PipeLiquidsWood extends Pipe implements IPowerReceptor {
private IPowerProvider powerProvider;
protected int standardIconIndex = IconTerrainConstants.PipeLiquidsWood_Standard;
protected int solidIconIndex = IconTerrainConstants.PipeAllWood_Solid;
protected int standardIconIndex = PipeIconProvider.PipeLiquidsWood_Standard;
protected int solidIconIndex = PipeIconProvider.PipeAllWood_Solid;
long lastMining = 0;
boolean lastPower = false;
@ -127,8 +126,8 @@ public class PipeLiquidsWood extends Pipe implements IPowerReceptor {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportPower;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipePowerGold extends Pipe {
@ -28,13 +27,13 @@ public class PipePowerGold extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipePowerGold;
return PipeIconProvider.PipePowerGold;
}
}

View file

@ -8,15 +8,14 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportPower;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipePowerStone extends Pipe {
@ -26,13 +25,13 @@ public class PipePowerStone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipePowerStone;
return PipeIconProvider.PipePowerStone;
}
}

View file

@ -8,21 +8,20 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.power.IPowerProvider;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerFramework;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportPower;
import buildcraft.transport.TileGenericPipe;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipePowerWood extends Pipe implements IPowerReceptor {
@ -30,8 +29,8 @@ public class PipePowerWood extends Pipe implements IPowerReceptor {
private IPowerProvider powerProvider;
protected int standardIconIndex = IconTerrainConstants.PipePowerWood_Standard;
protected int solidIconIndex = IconTerrainConstants.PipeAllWood_Solid;
protected int standardIconIndex = PipeIconProvider.PipePowerWood_Standard;
protected int solidIconIndex = PipeIconProvider.PipeAllWood_Solid;
private int overheatTicks;
@ -46,8 +45,8 @@ public class PipePowerWood extends Pipe implements IPowerReceptor {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override

View file

@ -1,14 +1,13 @@
package buildcraft.transport.pipes;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.Icon;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.core.IIconProvider;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportStructure;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class PipeStructureCobblestone extends Pipe {
@ -18,12 +17,12 @@ public class PipeStructureCobblestone extends Pipe {
@Override
@SideOnly(Side.CLIENT)
public Icon[] getTextureIcons() {
return BuildCraftTransport.instance.terrainIcons;
public IIconProvider getIconProvider() {
return BuildCraftTransport.instance.pipeIconProvider;
}
@Override
public int getIconIndex(ForgeDirection direction) {
return IconTerrainConstants.PipeStructureCobblestone;
return PipeIconProvider.PipeStructureCobblestone;
}
}

View file

@ -5,17 +5,14 @@ import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import buildcraft.BuildCraftTransport;
import buildcraft.core.DefaultProps;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.ItemFacade;
import buildcraft.transport.pipes.PipeStructureCobblestone;
import buildcraft.transport.PipeIconProvider;
public class FacadeItemRenderer implements IItemRenderer {
@ -65,7 +62,7 @@ public class FacadeItemRenderer implements IItemRenderer {
// Render StructurePipe
block = BuildCraftTransport.genericPipeBlock;
Icon textureID = BuildCraftTransport.instance.terrainIcons[IconTerrainConstants.PipeStructureCobblestone]; // Structure pipe
Icon textureID = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.PipeStructureCobblestone); // Structure pipe
block.setBlockBounds(Utils.pipeMinPos, Utils.pipeMinPos, Utils.pipeMinPos, Utils.pipeMaxPos, Utils.pipeMaxPos, Utils.pipeMaxPos - 1F / 16F);
block.setBlockBoundsForItemRender();

View file

@ -22,7 +22,7 @@ public class PipeItemRenderer implements IItemRenderer {
Tessellator tessellator = Tessellator.instance;
Block block = BuildCraftTransport.genericPipeBlock;
Icon icon = ((ItemPipe) Item.itemsList[item.itemID]).getPipeIcon();
Icon icon = ((ItemPipe) Item.itemsList[item.itemID]).getIconFromDamage(0);
block.setBlockBounds(Utils.pipeMinPos, 0.0F, Utils.pipeMinPos, Utils.pipeMaxPos, 1.0F, Utils.pipeMaxPos);
block.setBlockBoundsForItemRender();

View file

@ -3,19 +3,17 @@ package buildcraft.transport.render;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.ForgeDirection;
import buildcraft.BuildCraftTransport;
import buildcraft.api.transport.IPipe;
import buildcraft.api.transport.IPipe.WireColor;
import buildcraft.core.DefaultProps;
import buildcraft.core.IIconProvider;
import buildcraft.core.utils.Utils;
import buildcraft.transport.IPipeRenderState;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeRenderState;
import buildcraft.transport.TransportProxy;
import buildcraft.transport.pipes.PipeStructureCobblestone;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
public class PipeWorldRenderer implements ISimpleBlockRenderingHandler {
@ -85,52 +83,52 @@ public class PipeWorldRenderer implements ISimpleBlockRenderingHandler {
float maxSize = Utils.pipeMaxPos;
PipeRenderState state = renderState.getRenderState();
Icon[] icons = renderState.getPipeIcons();
IIconProvider icons = renderState.getPipeIcons();
if (icons == null) return;
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.UNKNOWN)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.UNKNOWN));
block.setBlockBounds(minSize, minSize, minSize, maxSize, maxSize, maxSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.WEST)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.WEST)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.WEST));
block.setBlockBounds(0.0F, minSize, minSize, minSize, maxSize, maxSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
}
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.EAST)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.EAST)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.EAST));
block.setBlockBounds(maxSize, minSize, minSize, 1.0F, maxSize, maxSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
}
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.DOWN)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.DOWN)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.DOWN));
block.setBlockBounds(minSize, 0.0F, minSize, maxSize, minSize, maxSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
}
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.UP)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.UP)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.UP));
block.setBlockBounds(minSize, maxSize, minSize, maxSize, 1.0F, maxSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
}
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.NORTH)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.NORTH)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.NORTH));
block.setBlockBounds(minSize, minSize, 0.0F, maxSize, maxSize, minSize);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
}
if (state.pipeConnectionMatrix.isConnected(ForgeDirection.SOUTH)) {
state.currentTexture = icons[state.textureMatrix.getTextureIndex(ForgeDirection.SOUTH)];
state.currentTexture = icons.getIcon(state.textureMatrix.getTextureIndex(ForgeDirection.SOUTH));
block.setBlockBounds(minSize, minSize, maxSize, maxSize, maxSize, 1.0F);
renderblocks.setRenderBoundsFromBlock(block);
renderblocks.renderStandardBlock(block, x, y, z);
@ -139,22 +137,23 @@ public class PipeWorldRenderer implements ISimpleBlockRenderingHandler {
block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
if (state.wireMatrix.hasWire(WireColor.Red)) {
state.currentTexture = BuildCraftTransport.instance.terrainIcons[state.wireMatrix.isWireLit(WireColor.Red)?IconTerrainConstants.Texture_Red_Lit:IconTerrainConstants.Texture_Red_Dark];
state.currentTexture = BuildCraftTransport.instance.wireIconProvider.getIcon(state.wireMatrix.getWireIconIndex(WireColor.Red));
pipeWireRender(renderblocks, block, state, Utils.pipeMinPos, Utils.pipeMaxPos, Utils.pipeMinPos, IPipe.WireColor.Red, x, y, z);
}
if (state.wireMatrix.hasWire(WireColor.Blue)) {
state.currentTexture = BuildCraftTransport.instance.terrainIcons[state.wireMatrix.isWireLit(WireColor.Blue)?IconTerrainConstants.Texture_Blue_Lit:IconTerrainConstants.Texture_Blue_Dark];
state.currentTexture = BuildCraftTransport.instance.wireIconProvider.getIcon(state.wireMatrix.getWireIconIndex(WireColor.Blue));
pipeWireRender(renderblocks, block, state, Utils.pipeMaxPos, Utils.pipeMaxPos, Utils.pipeMaxPos, IPipe.WireColor.Blue, x, y, z);
}
if (state.wireMatrix.hasWire(WireColor.Green)) {
state.currentTexture = BuildCraftTransport.instance.terrainIcons[state.wireMatrix.isWireLit(WireColor.Green)?IconTerrainConstants.Texture_Green_Lit:IconTerrainConstants.Texture_Green_Dark];
state.currentTexture = BuildCraftTransport.instance.wireIconProvider.getIcon(state.wireMatrix.getWireIconIndex(WireColor.Green));
pipeWireRender(renderblocks, block, state, Utils.pipeMaxPos, Utils.pipeMinPos, Utils.pipeMinPos, IPipe.WireColor.Green, x, y, z);
}
if (state.wireMatrix.hasWire(WireColor.Yellow)) {
state.currentTexture = BuildCraftTransport.instance.terrainIcons[state.wireMatrix.isWireLit(WireColor.Yellow)?IconTerrainConstants.Texture_Yellow_Lit:IconTerrainConstants.Texture_Yellow_Dark];
state.currentTexture = BuildCraftTransport.instance.wireIconProvider.getIcon(state.wireMatrix.getWireIconIndex(WireColor.Yellow));
pipeWireRender(renderblocks, block, state, Utils.pipeMinPos, Utils.pipeMinPos, Utils.pipeMaxPos, IPipe.WireColor.Yellow, x, y, z);
}
@ -241,7 +240,7 @@ public class PipeWorldRenderer implements ISimpleBlockRenderingHandler {
zeroState[2][0] = Utils.pipeMinPos;
zeroState[2][1] = Utils.pipeMaxPos;
state.currentTexture = BuildCraftTransport.instance.terrainIcons[IconTerrainConstants.PipeStructureCobblestone]; // Structure Pipe
state.currentTexture = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.PipeStructureCobblestone); // Structure Pipe
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
if (state.facadeMatrix.isConnected(direction) && !state.pipeConnectionMatrix.isConnected(direction)) {
@ -476,7 +475,7 @@ public class PipeWorldRenderer implements ISimpleBlockRenderingHandler {
private void pipeGateRender(RenderBlocks renderblocks, Block block, PipeRenderState state, int x, int y, int z) {
state.currentTexture = BuildCraftTransport.instance.itemIcons[state.getGateIconIndex()];
state.currentTexture = BuildCraftTransport.instance.gateIconProvider.getIcon(state.getGateIconIndex());
float min = Utils.pipeMinPos + 0.05F;
float max = Utils.pipeMaxPos - 0.05F;

View file

@ -21,23 +21,21 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.ForgeHooksClient;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.LiquidStack;
import org.lwjgl.opengl.GL11;
import buildcraft.BuildCraftCore;
import buildcraft.BuildCraftTransport;
import buildcraft.BuildCraftCore.RenderMode;
import buildcraft.BuildCraftTransport;
import buildcraft.api.transport.IPipedItem;
import buildcraft.core.DefaultProps;
import buildcraft.core.render.RenderEntityBlock;
import buildcraft.core.render.RenderEntityBlock.BlockInterface;
import buildcraft.core.utils.Utils;
import buildcraft.transport.EntityData;
import buildcraft.transport.IconTerrainConstants;
import buildcraft.transport.Pipe;
import buildcraft.transport.PipeIconProvider;
import buildcraft.transport.PipeTransportItems;
import buildcraft.transport.PipeTransportLiquids;
import buildcraft.transport.PipeTransportPower;
@ -195,7 +193,7 @@ public class RenderPipe extends TileEntitySpecialRenderer {
initialized = true;
BlockInterface block = new BlockInterface();
block.texture = BuildCraftTransport.instance.terrainIcons[IconTerrainConstants.Texture_Cyan];
block.texture = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.Power_Normal);
float size = Utils.pipeMaxPos - Utils.pipeMinPos;
@ -221,7 +219,7 @@ public class RenderPipe extends TileEntitySpecialRenderer {
GL11.glEndList();
}
block.texture = BuildCraftTransport.instance.terrainIcons[IconTerrainConstants.Texture_Red_Dark];
block.texture = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.Power_Overload);
size = Utils.pipeMaxPos - Utils.pipeMinPos;

View file

@ -10,8 +10,8 @@ import buildcraft.api.transport.IPipe;
public class WireMatrix {
private final boolean[] _hasWire = new boolean[IPipe.WireColor.values().length];
private final boolean[] _wireLit = new boolean[IPipe.WireColor.values().length];
private final ConnectionMatrix _wires[] = new ConnectionMatrix[IPipe.WireColor.values().length];
private final int[] _wireIconIndex = new int[IPipe.WireColor.values().length];
private boolean dirty = false;
@ -40,13 +40,13 @@ public class WireMatrix {
_wires[color.ordinal()].setConnected(direction, value);
}
public boolean isWireLit(IPipe.WireColor color){
return _wireLit[color.ordinal()];
public int getWireIconIndex(IPipe.WireColor color){
return _wireIconIndex[color.ordinal()];
}
public void setWireLit(IPipe.WireColor color, boolean value){
if (_wireLit[color.ordinal()] != value) {
_wireLit[color.ordinal()] = value;
public void setWireIndex(IPipe.WireColor color, int value){
if (_wireIconIndex[color.ordinal()] != value){
_wireIconIndex[color.ordinal()] = value;
dirty = true;
}
}
@ -73,7 +73,7 @@ public class WireMatrix {
for (int i = 0; i < IPipe.WireColor.values().length; i++) {
data.writeBoolean(_hasWire[i]);
_wires[i].writeData(data);
data.writeBoolean(_wireLit[i]);
data.writeInt(_wireIconIndex[i]);
}
}
@ -81,7 +81,7 @@ public class WireMatrix {
for (int i = 0; i < IPipe.WireColor.values().length; i++) {
_hasWire[i] = data.readBoolean();
_wires[i].readData(data);
_wireLit[i] = data.readBoolean();
_wireIconIndex[i] = data.readInt();
}
}
}