package k4unl.minecraft.Hydraulicraft.api; import java.lang.reflect.Constructor; import net.minecraft.tileentity.TileEntity; import codechicken.multipart.TMultiPart; /** * * @author minemaarten * Original idea and class from PneumaticCraft. * Modified by K-4U for Hydraulicraft. */ public class HydraulicBaseClassSupplier { private static Constructor baseHandlerConstructor; private static Constructor multipartConstructor; public static IBaseClass getBaseClass(TileEntity target, PressureTier pTier, int maxStorage){ IBaseClass baseClassEntity = null; try { if(baseHandlerConstructor == null) baseHandlerConstructor = Class.forName("k4unl.minecraft.Hydraulicraft.tileEntities.TileHydraulicBase").getConstructor(PressureTier.class, int.class); baseClassEntity = (IBaseClass)baseHandlerConstructor.newInstance(pTier, maxStorage); baseClassEntity.init(target); } catch(Exception e) { System.err.println("[Hydraulicraft API] An error has occured whilst trying to get a base class. Here's a stacktrace:"); e.printStackTrace(); } return baseClassEntity; } public static IBaseClass getBaseClass(TMultiPart target, PressureTier pTier, int maxStorage){ IBaseClass baseClassEntity = null; try { if(multipartConstructor == null) multipartConstructor = Class.forName("k4unl.minecraft.Hydraulicraft.tileEntities.TileHydraulicBase").getConstructor(PressureTier.class, int.class); baseClassEntity = (IBaseClass)multipartConstructor.newInstance(pTier, maxStorage); baseClassEntity.init(target); } catch(Exception e){ System.err.println("[Hydraulicraft API] An error has occured whilst trying to get a base class. Here's a stacktrace:"); e.printStackTrace(); } return baseClassEntity; } }