Random Pipe API musings
This commit is contained in:
parent
cc0298ce5b
commit
c802c45c93
3 changed files with 81 additions and 25 deletions
30
common/buildcraft/api/pipes/IPipeDefinition.java
Normal file
30
common/buildcraft/api/pipes/IPipeDefinition.java
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) SpaceToad, 2011-2012
|
||||
* 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
|
||||
*/
|
||||
package buildcraft.api.pipes;
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author CovertJaguar <http://www.railcraft.info/>
|
||||
*/
|
||||
public interface IPipeDefinition {
|
||||
|
||||
String getUniqueTag();
|
||||
|
||||
void registerIcons(IconRegister iconRegister);
|
||||
|
||||
Icon getIcon(int index);
|
||||
|
||||
Icon getItemIcon();
|
||||
|
||||
PipeBehavior makePipeBehavior(TileEntity tile);
|
||||
}
|
51
common/buildcraft/api/pipes/PipeBehavior.java
Normal file
51
common/buildcraft/api/pipes/PipeBehavior.java
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* Copyright (c) SpaceToad, 2011-2012
|
||||
* 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
|
||||
*/
|
||||
package buildcraft.api.pipes;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author CovertJaguar <http://www.railcraft.info/>
|
||||
*/
|
||||
public abstract class PipeBehavior {
|
||||
|
||||
public final TileEntity tile;
|
||||
|
||||
public PipeBehavior(TileEntity tile) {
|
||||
this.tile = tile;
|
||||
}
|
||||
|
||||
public void tick() {
|
||||
}
|
||||
|
||||
public int getIconIndex(ForgeDirection side) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
}
|
||||
|
||||
public boolean canPipeConnect(TileEntity tile, ForgeDirection side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean blockActivated(EntityPlayer player) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(int blockId) {
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
package buildcraft.api.transport;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* You can use this if you wish, but FML InterModComms are recommended.
|
||||
*
|
||||
* SYNTAX: add-facade:id@meta
|
||||
*/
|
||||
public class FacadeManager {
|
||||
private static Method addFacade;
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public static void addFacade(ItemStack is) {
|
||||
try {
|
||||
if (addFacade == null) {
|
||||
Class facade = Class.forName("buildcraft.transport.ItemFacade");
|
||||
addFacade = facade.getMethod("addFacade", ItemStack.class);
|
||||
}
|
||||
addFacade.invoke(null, is);
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue