package crazypants.enderio.conduit.gui;
import com.enderio.core.api.client.gui.ITabPanel;
import crazypants.enderio.conduit.IConduit;
import crazypants.enderio.conduit.gas.IGasConduit;
import crazypants.enderio.conduit.gui.item.ItemSettings;
import crazypants.enderio.conduit.item.IItemConduit;
import crazypants.enderio.conduit.liquid.ILiquidConduit;
import crazypants.enderio.conduit.me.IMEConduit;
import crazypants.enderio.conduit.oc.IOCConduit;
import crazypants.enderio.conduit.power.IPowerConduit;
import crazypants.enderio.conduit.redstone.IRedstoneConduit;
public class TabFactory {
public static final TabFactory instance = new TabFactory();
private TabFactory() {
}
public ITabPanel createPanelForConduit(GuiExternalConnection gui, IConduit con) {
Class<? extends IConduit> baseType = con.getBaseConduitType();
if(baseType.isAssignableFrom(IPowerConduit.class)) {
return new PowerSettings(gui, con);
} else if(baseType.isAssignableFrom(ILiquidConduit.class)) {
return new LiquidSettings(gui, con);
} else if(baseType.isAssignableFrom(IItemConduit.class)) {
return new ItemSettings(gui, con);
} else if(baseType.isAssignableFrom(IRedstoneConduit.class)) {
return new RedstoneSettings(gui, con);
} else if(baseType.isAssignableFrom(IGasConduit.class)) {
return new GasSettings(gui, con);
} else if(baseType.isAssignableFrom(IMEConduit.class)) {
return new MESettings(gui, con);
} else if (baseType.isAssignableFrom(IOCConduit.class)) {
return new OCSettings(gui, con);
}
return null;
}
}