create IFacadeItem API, close #1946
This commit is contained in:
parent
88351a6bd8
commit
260a57d600
12 changed files with 94 additions and 70 deletions
9
api/buildcraft/api/facades/FacadeType.java
Normal file
9
api/buildcraft/api/facades/FacadeType.java
Normal file
|
@ -0,0 +1,9 @@
|
|||
package buildcraft.api.facades;
|
||||
|
||||
public enum FacadeType {
|
||||
Basic, Phased;
|
||||
|
||||
public static FacadeType fromOrdinal(int ordinal) {
|
||||
return ordinal == 1 ? Phased : Basic;
|
||||
}
|
||||
}
|
14
api/buildcraft/api/facades/IFacadeItem.java
Normal file
14
api/buildcraft/api/facades/IFacadeItem.java
Normal file
|
@ -0,0 +1,14 @@
|
|||
package buildcraft.api.facades;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IFacadeItem {
|
||||
FacadeType getFacadeType(ItemStack facade);
|
||||
|
||||
ItemStack getFacadeForBlock(Block block, int meta);
|
||||
|
||||
Block[] getBlocksForFacade(ItemStack facade);
|
||||
|
||||
int[] getMetaValuesForFacade(ItemStack facade);
|
||||
}
|
11
api/buildcraft/api/facades/package-info.java
Normal file
11
api/buildcraft/api/facades/package-info.java
Normal file
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
|
||||
* http://www.mod-buildcraft.com
|
||||
*
|
||||
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
||||
* License 1.0, or MMPL. Please check the contents of the license located in
|
||||
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
||||
*/
|
||||
@API(apiVersion = "1.0", owner = "BuildCraftAPI|core", provides = "BuildCraftAPI|facades")
|
||||
package buildcraft.api.facades;
|
||||
import cpw.mods.fml.common.API;
|
|
@ -607,9 +607,9 @@ public class BuildCraftSilicon extends BuildCraftMod {
|
|||
@Mod.EventHandler
|
||||
public void remap(FMLMissingMappingsEvent event) {
|
||||
for (FMLMissingMappingsEvent.MissingMapping mapping: event.get()) {
|
||||
if (mapping.name.equals("BuildCraft|Silicon:null"))
|
||||
if (mapping.name.equals("BuildCraft|Silicon:null")) {
|
||||
mapping.remap(laserBlock);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -532,7 +532,7 @@ public class BuildCraftTransport extends BuildCraftMod {
|
|||
|
||||
@Mod.EventHandler
|
||||
public void postInit(FMLPostInitializationEvent evt) {
|
||||
ItemFacade.initialize();
|
||||
facadeItem.initialize();
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
|
|
|
@ -19,7 +19,6 @@ import buildcraft.BuildCraftCore;
|
|||
import buildcraft.BuildCraftFactory;
|
||||
import buildcraft.BuildCraftSilicon;
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.transport.ItemFacade;
|
||||
|
||||
public enum CreativeTabBuildCraft {
|
||||
|
||||
|
@ -51,12 +50,12 @@ public enum CreativeTabBuildCraft {
|
|||
case PIPES:
|
||||
return new ItemStack (BuildCraftTransport.pipeItemsDiamond, 1);
|
||||
case FACADES:
|
||||
return ItemFacade.getFacade(Blocks.brick_block, 0);
|
||||
return BuildCraftTransport.facadeItem.getFacadeForBlock(Blocks.brick_block, 0);
|
||||
case BOARDS:
|
||||
return new ItemStack(BuildCraftSilicon.redstoneBoard, 1);
|
||||
}
|
||||
|
||||
return ItemFacade.getFacade(Blocks.brick_block, 0);
|
||||
return BuildCraftTransport.facadeItem.getFacadeForBlock(Blocks.brick_block, 0);
|
||||
}
|
||||
|
||||
private final class Tab extends CreativeTabs {
|
||||
|
|
|
@ -23,12 +23,10 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
|
||||
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
|
||||
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
|
||||
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.core.recipes.AssemblyRecipeManager;
|
||||
import buildcraft.core.recipes.RefineryRecipeManager;
|
||||
import buildcraft.energy.worldgen.OilPopulate;
|
||||
|
@ -161,7 +159,8 @@ public final class InterModComms {
|
|||
} else {
|
||||
Block block = (Block) Block.blockRegistry.getObject(blockName);
|
||||
if (block.getRenderType() != 0 && block.getRenderType() != 31) {
|
||||
ItemFacade.addFacade("buildcraft:facade{" + blockName + "}",
|
||||
BuildCraftTransport.facadeItem.addFacade(
|
||||
"buildcraft:facade{" + blockName + "}",
|
||||
new ItemStack(block, 1, metaId));
|
||||
} else {
|
||||
logRedundantAddFacadeMessage(m, block.toString());
|
||||
|
@ -173,7 +172,8 @@ public final class InterModComms {
|
|||
|
||||
Block block = Block.getBlockFromItem(modItemStack.getItem());
|
||||
if (block != null && block.getRenderType() != 0 && block.getRenderType() != 31) {
|
||||
ItemFacade.addFacade("buildcraft:facade{" + Block.blockRegistry.getNameForObject(block) + "}",
|
||||
BuildCraftTransport.facadeItem.addFacade(
|
||||
"buildcraft:facade{" + Block.blockRegistry.getNameForObject(block) + "}",
|
||||
modItemStack);
|
||||
} else {
|
||||
logRedundantAddFacadeMessage(m, block.toString());
|
||||
|
|
|
@ -9,16 +9,17 @@
|
|||
package buildcraft.silicon.recipes;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.core.JavaTools;
|
||||
import buildcraft.api.facades.FacadeType;
|
||||
import buildcraft.api.facades.IFacadeItem;
|
||||
import buildcraft.api.recipes.CraftingResult;
|
||||
import buildcraft.api.transport.PipeWire;
|
||||
import buildcraft.silicon.ItemRedstoneChipset;
|
||||
import buildcraft.silicon.TileIntegrationTable;
|
||||
import buildcraft.transport.ItemFacade;
|
||||
import buildcraft.transport.ItemFacade.FacadeState;
|
||||
import buildcraft.transport.ItemPipeWire;
|
||||
|
||||
public class AdvancedFacadeRecipe extends IntegrationTableRecipe {
|
||||
|
@ -36,7 +37,8 @@ public class AdvancedFacadeRecipe extends IntegrationTableRecipe {
|
|||
|
||||
@Override
|
||||
public boolean isValidInputB(ItemStack inputB) {
|
||||
return inputB != null && (inputB.getItem() instanceof ItemFacade && ItemFacade.getType(inputB) == ItemFacade.FacadeType.Basic ||
|
||||
return inputB != null && (inputB.getItem() instanceof ItemFacade &&
|
||||
((IFacadeItem) inputB.getItem()).getFacadeType(inputB) == FacadeType.Basic ||
|
||||
inputB.getItem() == BuildCraftTransport.plugItem);
|
||||
}
|
||||
|
||||
|
@ -59,14 +61,14 @@ public class AdvancedFacadeRecipe extends IntegrationTableRecipe {
|
|||
}
|
||||
|
||||
if (wire != null) {
|
||||
ItemFacade.FacadeState[] states = ItemFacade.getFacadeStates(inputA);
|
||||
ItemFacade.FacadeState additionalState;
|
||||
FacadeState[] states = ItemFacade.getFacadeStates(inputA);
|
||||
FacadeState additionalState;
|
||||
|
||||
if (inputB.getItem() == BuildCraftTransport.plugItem) {
|
||||
additionalState = ItemFacade.FacadeState.createTransparent(wire);
|
||||
additionalState = FacadeState.createTransparent(wire);
|
||||
} else {
|
||||
additionalState = ItemFacade.getFacadeStates(inputB)[0];
|
||||
additionalState = ItemFacade.FacadeState.create(additionalState.block, additionalState.metadata, wire);
|
||||
additionalState = FacadeState.create(additionalState.block, additionalState.metadata, wire);
|
||||
}
|
||||
|
||||
// if in states array exists state with the same wire just override it
|
||||
|
@ -83,7 +85,7 @@ public class AdvancedFacadeRecipe extends IntegrationTableRecipe {
|
|||
|
||||
result.energyCost = 50000;
|
||||
result.crafted = ItemFacade.getFacade(JavaTools.concat(states,
|
||||
new ItemFacade.FacadeState[] {additionalState}));
|
||||
new FacadeState[] {additionalState}));
|
||||
|
||||
return result;
|
||||
} else {
|
||||
|
|
|
@ -663,7 +663,7 @@ public class BlockGenericPipe extends BlockBuildCraft {
|
|||
FacadeMatrix matrix = getPipe(world, x, y, z).container.renderState.facadeMatrix;
|
||||
Block block = matrix.getFacadeBlock(dir);
|
||||
if (block != null) {
|
||||
return ItemFacade.getFacade(block,
|
||||
return BuildCraftTransport.facadeItem.getFacadeForBlock(block,
|
||||
matrix.getFacadeMetaId(dir));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,16 +27,15 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import net.minecraftforge.common.util.Constants;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.core.JavaTools;
|
||||
import buildcraft.api.core.Position;
|
||||
import buildcraft.api.facades.FacadeType;
|
||||
import buildcraft.api.facades.IFacadeItem;
|
||||
import buildcraft.api.recipes.BuildcraftRecipeRegistry;
|
||||
import buildcraft.api.transport.IPipePluggable;
|
||||
import buildcraft.api.transport.IPipeTile;
|
||||
|
@ -47,7 +46,7 @@ import buildcraft.core.ItemBuildCraft;
|
|||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.core.utils.StringUtils;
|
||||
|
||||
public class ItemFacade extends ItemBuildCraft {
|
||||
public class ItemFacade extends ItemBuildCraft implements IFacadeItem {
|
||||
public static class FacadeState {
|
||||
public final Block block;
|
||||
public final int metadata;
|
||||
|
@ -124,14 +123,6 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
}
|
||||
}
|
||||
|
||||
public static enum FacadeType {
|
||||
Basic, Phased;
|
||||
|
||||
public static FacadeType fromOrdinal(int ordinal) {
|
||||
return ordinal == 1 ? Phased : Basic;
|
||||
}
|
||||
}
|
||||
|
||||
public static final LinkedList<ItemStack> allFacades = new LinkedList<ItemStack>();
|
||||
public static final LinkedList<String> blacklistedFacades = new LinkedList<String>();
|
||||
|
||||
|
@ -147,7 +138,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
|
||||
@Override
|
||||
public String getItemStackDisplayName(ItemStack itemstack) {
|
||||
switch (getType(itemstack)) {
|
||||
switch (getFacadeType(itemstack)) {
|
||||
case Basic:
|
||||
return super.getItemStackDisplayName(itemstack) + ": " + getFacadeStateDisplayName(getFacadeStates(itemstack)[0]);
|
||||
case Phased:
|
||||
|
@ -164,7 +155,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean debug) {
|
||||
if (getType(stack) == FacadeType.Phased) {
|
||||
if (getFacadeType(stack) == FacadeType.Phased) {
|
||||
String stateString = StringUtils.localize("item.FacadePhased.state");
|
||||
FacadeState defaultState = null;
|
||||
for (FacadeState state : getFacadeStates(stack)) {
|
||||
|
@ -224,7 +215,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
return false;
|
||||
}
|
||||
|
||||
public static void initialize() {
|
||||
public void initialize() {
|
||||
for (Object o : Block.blockRegistry) {
|
||||
Block b = (Block) o;
|
||||
|
||||
|
@ -246,7 +237,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
}
|
||||
}
|
||||
|
||||
private static void registerValidFacades(Block block, Item item) {
|
||||
private void registerValidFacades(Block block, Item item) {
|
||||
Set<String> names = Sets.newHashSet();
|
||||
|
||||
for (int i = 0; i <= 15; i++) {
|
||||
|
@ -255,8 +246,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
|
||||
if (!Strings.isNullOrEmpty(stack.getUnlocalizedName())
|
||||
&& names.add(stack.getUnlocalizedName())) {
|
||||
ItemFacade.addFacade(
|
||||
"buildcraft:facade{" + Block.blockRegistry.getNameForObject(block) + "#"
|
||||
addFacade("buildcraft:facade{" + Block.blockRegistry.getNameForObject(block) + "#"
|
||||
+ stack.getItemDamage() + "}", stack);
|
||||
|
||||
// prevent adding multiple facades if it's a rotatable block
|
||||
|
@ -365,7 +355,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
return nbt;
|
||||
}
|
||||
|
||||
public static Block[] getBlocks(ItemStack stack) {
|
||||
public Block[] getBlocksForFacade(ItemStack stack) {
|
||||
FacadeState[] states = getFacadeStates(stack);
|
||||
Block[] blocks = new Block[states.length];
|
||||
for (int i = 0; i < states.length; i++) {
|
||||
|
@ -374,7 +364,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
return blocks;
|
||||
}
|
||||
|
||||
public static int[] getMetaValues(ItemStack stack) {
|
||||
public int[] getMetaValuesForFacade(ItemStack stack) {
|
||||
FacadeState[] states = getFacadeStates(stack);
|
||||
int[] meta = new int[states.length];
|
||||
for (int i = 0; i < states.length; i++) {
|
||||
|
@ -384,7 +374,8 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
}
|
||||
|
||||
// GETTERS FOR FACADE DATA
|
||||
public static FacadeType getType(ItemStack stack) {
|
||||
@Override
|
||||
public FacadeType getFacadeType(ItemStack stack) {
|
||||
if (!stack.hasTagCompound()) {
|
||||
return FacadeType.Basic;
|
||||
}
|
||||
|
@ -401,12 +392,12 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
return true;
|
||||
}
|
||||
|
||||
public static void addFacade(String id, ItemStack itemStack) {
|
||||
public void addFacade(String id, ItemStack itemStack) {
|
||||
if (itemStack.stackSize == 0) {
|
||||
itemStack.stackSize = 1;
|
||||
}
|
||||
|
||||
ItemStack facade = getFacade(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage());
|
||||
ItemStack facade = getFacadeForBlock(Block.getBlockFromItem(itemStack.getItem()), itemStack.getItemDamage());
|
||||
if (!allFacades.contains(facade)) {
|
||||
allFacades.add(facade);
|
||||
|
||||
|
@ -525,14 +516,14 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
}
|
||||
|
||||
if (slotmatch != null && slotmatch != NO_MATCH) {
|
||||
return new Object[]{ItemFacade.getBlocks(slotmatch), slotmatch};
|
||||
return new Object[]{getBlocksForFacade(slotmatch), slotmatch};
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private ItemStack getNextFacadeItemStack(Block block, ItemStack originalFacade) {
|
||||
int blockMeta = ItemFacade.getMetaValues(originalFacade)[0];
|
||||
int blockMeta = getMetaValuesForFacade(originalFacade)[0];
|
||||
int stackMeta = 0;
|
||||
|
||||
switch (block.getRenderType()) {
|
||||
|
@ -559,7 +550,7 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
stackMeta = blockMeta;
|
||||
}
|
||||
|
||||
return getFacade(block, stackMeta);
|
||||
return getFacadeForBlock(block, stackMeta);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -585,7 +576,8 @@ public class ItemFacade extends ItemBuildCraft {
|
|||
return 0;
|
||||
}
|
||||
|
||||
public static ItemStack getFacade(Block block, int metadata) {
|
||||
@Override
|
||||
public ItemStack getFacadeForBlock(Block block, int metadata) {
|
||||
return getFacade(FacadeState.create(block, metadata));
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ import java.util.LinkedList;
|
|||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
@ -24,19 +23,15 @@ import net.minecraft.network.Packet;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import net.minecraftforge.common.util.Constants;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
|
||||
import buildcraft.BuildCraftCore;
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.core.BCLog;
|
||||
|
@ -65,6 +60,7 @@ import buildcraft.core.network.ISyncedTile;
|
|||
import buildcraft.core.network.PacketTileState;
|
||||
import buildcraft.core.robots.DockingStation;
|
||||
import buildcraft.core.utils.Utils;
|
||||
import buildcraft.transport.ItemFacade.FacadeState;
|
||||
import buildcraft.transport.gates.GateFactory;
|
||||
import buildcraft.transport.gates.ItemGate;
|
||||
import buildcraft.transport.utils.RobotStationState;
|
||||
|
@ -171,7 +167,7 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, IFlui
|
|||
for (int i = 0; i < ForgeDirection.VALID_DIRECTIONS.length; i++) {
|
||||
IPipePluggable pluggable = null;
|
||||
if (nbt.hasKey("facadeState[" + i + "]")) {
|
||||
pluggable = new ItemFacade.FacadePluggable(ItemFacade.FacadeState.readArray(nbt.getTagList("facadeState[" + i + "]", Constants.NBT.TAG_COMPOUND)));
|
||||
pluggable = new ItemFacade.FacadePluggable(FacadeState.readArray(nbt.getTagList("facadeState[" + i + "]", Constants.NBT.TAG_COMPOUND)));
|
||||
} else {
|
||||
// Migration support for 5.0.x and 6.0.x
|
||||
if (nbt.hasKey("facadeBlocks[" + i + "]")) {
|
||||
|
@ -181,23 +177,23 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, IFlui
|
|||
|
||||
if (blockId != 0) {
|
||||
int metadata = nbt.getInteger("facadeMeta[" + i + "]");
|
||||
pluggable = new ItemFacade.FacadePluggable(new ItemFacade.FacadeState[]{ItemFacade.FacadeState.create(block, metadata)});
|
||||
pluggable = new ItemFacade.FacadePluggable(new FacadeState[]{FacadeState.create(block, metadata)});
|
||||
}
|
||||
} else if (nbt.hasKey("facadeBlocksStr[" + i + "][0]")) {
|
||||
// 6.0.x
|
||||
ItemFacade.FacadeState mainState = ItemFacade.FacadeState.create(
|
||||
FacadeState mainState = FacadeState.create(
|
||||
(Block) Block.blockRegistry.getObject(nbt.getString("facadeBlocksStr[" + i + "][0]")),
|
||||
nbt.getInteger("facadeMeta[" + i + "][0]")
|
||||
);
|
||||
if (nbt.hasKey("facadeBlocksStr[" + i + "][1]")) {
|
||||
ItemFacade.FacadeState phasedState = ItemFacade.FacadeState.create(
|
||||
FacadeState phasedState = FacadeState.create(
|
||||
(Block) Block.blockRegistry.getObject(nbt.getString("facadeBlocksStr[" + i + "][1]")),
|
||||
nbt.getInteger("facadeMeta[" + i + "][1]"),
|
||||
PipeWire.fromOrdinal(nbt.getInteger("facadeWires[" + i + "]"))
|
||||
);
|
||||
pluggable = new ItemFacade.FacadePluggable(new ItemFacade.FacadeState[]{mainState, phasedState});
|
||||
pluggable = new ItemFacade.FacadePluggable(new FacadeState[]{mainState, phasedState});
|
||||
} else {
|
||||
pluggable = new ItemFacade.FacadePluggable(new ItemFacade.FacadeState[]{mainState});
|
||||
pluggable = new ItemFacade.FacadePluggable(new FacadeState[]{mainState});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -476,14 +472,14 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, IFlui
|
|||
renderState.facadeMatrix.setFacade(direction, null, 0, true);
|
||||
continue;
|
||||
}
|
||||
ItemFacade.FacadeState[] states = ((ItemFacade.FacadePluggable) pluggable).states;
|
||||
FacadeState[] states = ((ItemFacade.FacadePluggable) pluggable).states;
|
||||
if (states == null) {
|
||||
renderState.facadeMatrix.setFacade(direction, null, 0, true);
|
||||
continue;
|
||||
}
|
||||
// Iterate over all states and activate first proper
|
||||
ItemFacade.FacadeState defaultState = null, activeState = null;
|
||||
for (ItemFacade.FacadeState state : states) {
|
||||
FacadeState defaultState = null, activeState = null;
|
||||
for (FacadeState state : states) {
|
||||
if (state.wire == null) {
|
||||
defaultState = state;
|
||||
continue;
|
||||
|
@ -861,7 +857,7 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, IFlui
|
|||
refreshRenderState = true;
|
||||
}
|
||||
|
||||
public boolean addFacade(ForgeDirection direction, ItemFacade.FacadeState[] states) {
|
||||
public boolean addFacade(ForgeDirection direction, FacadeState[] states) {
|
||||
return setPluggable(direction, new ItemFacade.FacadePluggable(states));
|
||||
}
|
||||
|
||||
|
|
|
@ -16,13 +16,14 @@ import net.minecraft.client.renderer.RenderBlocks;
|
|||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.facades.FacadeType;
|
||||
import buildcraft.api.facades.IFacadeItem;
|
||||
import buildcraft.core.CoreConstants;
|
||||
import buildcraft.core.render.RenderUtils;
|
||||
import buildcraft.transport.ItemFacade;
|
||||
import buildcraft.transport.ItemFacade.FacadeState;
|
||||
import buildcraft.transport.PipeIconProvider;
|
||||
|
||||
public class FacadeItemRenderer implements IItemRenderer {
|
||||
|
@ -38,12 +39,12 @@ public class FacadeItemRenderer implements IItemRenderer {
|
|||
lastTime = System.currentTimeMillis() + 1000L;
|
||||
}
|
||||
|
||||
ItemFacade.FacadeType type = ItemFacade.getType(item);
|
||||
ItemFacade.FacadeState[] states = ItemFacade.getFacadeStates(item);
|
||||
ItemFacade.FacadeState activeState = null;
|
||||
if (type == ItemFacade.FacadeType.Basic) {
|
||||
FacadeType type = ((IFacadeItem) item.getItem()).getFacadeType(item);
|
||||
FacadeState[] states = ItemFacade.getFacadeStates(item);
|
||||
FacadeState activeState = null;
|
||||
if (type == FacadeType.Basic) {
|
||||
activeState = states[0];
|
||||
} else if (type == ItemFacade.FacadeType.Phased) {
|
||||
} else if (type == FacadeType.Phased) {
|
||||
activeState = states[renderState % states.length];
|
||||
}
|
||||
Block block = activeState != null ? activeState.block : null;
|
||||
|
|
Loading…
Reference in a new issue