public static Gate makeGate(Pipe<?> pipe, ItemStack stack, ForgeDirection direction) {
if (stack == null || stack.stackSize <= 0 || !(stack.getItem() instanceof ItemGate)) {
return null;
}
Gate gate = makeGate(pipe, ItemGate.getMaterial(stack), ItemGate.getLogic(stack), direction);
for (IGateExpansion expansion : ItemGate.getInstalledExpansions(stack)) {
gate.addGateExpansion(expansion);
}
return gate;
}