From 44d521401d179d0d6bd2025360e2855468b2e556 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sat, 21 Sep 2013 20:30:47 +1000 Subject: [PATCH] Updated the MFR API, closes #70, #72 --- .../api/FactoryRegistry27.java | 74 ++ .../api/FarmingRegistry.java | 823 ++++++++---------- .../api/FertilizerType.java | 33 +- .../minefactoryreloaded/api/HarvestType.java | 55 +- .../api/IDeepStorageUnit.java | 41 +- .../api/IFactoryFertilizable.java | 63 +- .../api/IFactoryFertilizer.java | 49 +- .../api/IFactoryFruit.java | 121 +-- .../api/IFactoryGrindable.java | 41 +- .../api/IFactoryGrindable2.java | 37 + .../api/IFactoryHarvestable.java | 123 +-- .../api/IFactoryPlantable.java | 117 +-- .../api/IFactoryRanchable.java | 35 +- ...nkHandler.java => IFluidDrinkHandler.java} | 5 +- .../api/IMobEggHandler.java | 17 +- .../minefactoryreloaded/api/INeedleAmmo.java | 13 + .../api/IRandomMobProvider.java | 9 +- .../api/ISafariNetHandler.java | 37 +- .../minefactoryreloaded/api/ISyringe.java | 47 +- .../minefactoryreloaded/api/IToolHammer.java | 5 +- .../api/IToolHammerAdvanced.java | 15 +- .../minefactoryreloaded/api/MobDrop.java | 27 +- .../minefactoryreloaded/api/RandomMob.java | 27 +- .../api/rednet/IConnectableRedNet.java | 140 +-- .../api/rednet/IRedNetLogicCircuit.java | 30 +- .../api/rednet/IRedNetNetworkContainer.java | 43 +- .../api/rednet/IRedNetNoConnection.java | 5 + .../api/rednet/RedNetConnectionType.java | 13 +- 28 files changed, 1053 insertions(+), 992 deletions(-) create mode 100755 apis/powercrystals/minefactoryreloaded/api/FactoryRegistry27.java create mode 100755 apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable2.java rename apis/powercrystals/minefactoryreloaded/api/{ILiquidDrinkHandler.java => IFluidDrinkHandler.java} (54%) create mode 100755 apis/powercrystals/minefactoryreloaded/api/INeedleAmmo.java create mode 100755 apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNoConnection.java diff --git a/apis/powercrystals/minefactoryreloaded/api/FactoryRegistry27.java b/apis/powercrystals/minefactoryreloaded/api/FactoryRegistry27.java new file mode 100755 index 000000000..ca7876350 --- /dev/null +++ b/apis/powercrystals/minefactoryreloaded/api/FactoryRegistry27.java @@ -0,0 +1,74 @@ +package powercrystals.minefactoryreloaded.api; + +import net.minecraft.item.ItemStack; + +import java.lang.reflect.Method; + +/** + * @author PowerCrystals + *

+ * Class used to register plants and other farming-related things with MFR. Will do nothing if MFR does not exist, but your mod should be set to load + * after MFR or things may not work properly. + *

+ * To avoid breaking the API, additional FarmingRegistry##s will appear on major MFR versions that contain API additions. On a Minecraft version change, + * these will be rolled back into this class. + */ +public class FactoryRegistry27 { + /** + * Registers a grindable entity with the Grinder using the new grinder interface. This method will be renamed to the standard "registerGrindable" + * on MC 1.6. + * + * @param grindable The entity to grind. + */ + public static void registerGrindable(IFactoryGrindable2 grindable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerGrindable", IFactoryGrindable2.class); + reg.invoke(registry, grindable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a grindable entity with the Grinder using the new grinder interface. This method will be renamed to the standard "registerGrindable" + * on MC 1.6. + * + * @param grindable The entity to grind. + */ + public static void registerGrinderBlacklist(Class... ungrindables) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerGrinderBlacklist", Class[].class); + reg.invoke(registry, (Object[]) ungrindables); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a preferred ore with the laser drill. Focuses with the specified color will make the specified ore more likely. + * Used by MFR itself for vanilla: Black (Coal), Light Blue (Diamond), Lime (Emerald), Yellow (Gold), Brown (Iron), Blue (Lapis), + * Red (Redstone), and White (nether quartz). + *

+ * This will replace setLaserPreferredOre on MC 1.6. + * + * @param color The color that the preferred ore is being set for. White is 0. + * @param ore The ore that will be preferred by the drill when a focus with the specified color is present. + */ + public static void addLaserPreferredOre(int color, ItemStack ore) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("addLaserPreferredOre", int.class, ItemStack.class); + reg.invoke(registry, color, ore); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/apis/powercrystals/minefactoryreloaded/api/FarmingRegistry.java b/apis/powercrystals/minefactoryreloaded/api/FarmingRegistry.java index 594b645d3..b7eec92bc 100755 --- a/apis/powercrystals/minefactoryreloaded/api/FarmingRegistry.java +++ b/apis/powercrystals/minefactoryreloaded/api/FarmingRegistry.java @@ -1,277 +1,243 @@ package powercrystals.minefactoryreloaded.api; -import java.lang.reflect.Method; - import net.minecraft.item.ItemStack; import powercrystals.minefactoryreloaded.api.rednet.IRedNetLogicCircuit; +import java.lang.reflect.Method; + /** * @author PowerCrystals - * - * Class used to register plants and other farming-related things with MFR. Will do nothing if MFR does not exist, but your mod should be set to load - * after MFR or things may not work properly. - * + *

+ * Class used to register plants and other farming-related things with MFR. Will do nothing if MFR does not exist, but your mod should be set to load + * after MFR or things may not work properly. + *

+ * To avoid breaking the API, additional FactoryRegistry##s will appear on major MFR versions that contain API additions. On a Minecraft version change, + * these will be rolled back into this class. + *

+ * This class will be replaced by FactoryRegistry in 1.6. */ -public class FarmingRegistry -{ - /** - * Registers a plantable object with the Planter. - * - * @param plantable The thing to plant. - */ - public static void registerPlantable(IFactoryPlantable plantable) +public class FarmingRegistry { + /** + * Registers a plantable object with the Planter. + * + * @param plantable The thing to plant. + */ + public static void registerPlantable(IFactoryPlantable plantable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerPlantable", IFactoryPlantable.class); + reg.invoke(registry, plantable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a harvestable block with the Harvester. + * + * @param harvestable The thing to harvest. + */ + public static void registerHarvestable(IFactoryHarvestable harvestable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerHarvestable", IFactoryHarvestable.class); + reg.invoke(registry, harvestable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a fertilizable block with the Fertilizer. + * + * @param fertilizable The thing to fertilize. + */ + public static void registerFertilizable(IFactoryFertilizable fertilizable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerFertilizable", IFactoryFertilizable.class); + reg.invoke(registry, fertilizable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a fertilizer item Fertilizer. + * + * @param fertilizable The thing to fertilize with. + */ + public static void registerFertilizer(IFactoryFertilizer fertilizer) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerFertilizer", IFactoryFertilizer.class); + reg.invoke(registry, fertilizer); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a ranchable entity with the Rancher. + * + * @param ranchable The entity to ranch. + */ + public static void registerRanchable(IFactoryRanchable ranchable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerRanchable", IFactoryRanchable.class); + reg.invoke(registry, ranchable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a grindable entity with the Grinder. + * + * @param grindable The entity to grind. + */ + @SuppressWarnings("deprecation") + public static void registerGrindable(IFactoryGrindable grindable) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerGrindable", IFactoryGrindable.class); + reg.invoke(registry, grindable); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a possible output with the sludge boiler. + * + * @param weight Likelihood that this item will be produced. Lower means rarer. + * @param drop The thing being produced by the sludge boiler. + */ + public static void registerSludgeDrop(int weight, ItemStack drop) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerSludgeDrop", int.class, ItemStack.class); + reg.invoke(registry, weight, drop); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers specific food to use in the Breeder (instead of wheat) for a given mob. + * + * @param entityToBreed Entity this food will be used with. + * @param food The item to use when breeding this entity. + */ + public static void registerBreederFood(Class entityToBreed, ItemStack food) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerBreederFood", Class.class, ItemStack.class); + reg.invoke(registry, entityToBreed, food); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a Safari Net handler to properly serialize a type of mob. + * + * @param handler The Safari Net handler. + */ + public static void registerSafariNetHandler(ISafariNetHandler handler) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerSafariNetHandler", ISafariNetHandler.class); + reg.invoke(registry, handler); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * Registers a mob egg handler, which allows the Safari Net to properly change colors. + * + * @param handler The mob egg handler + */ + public static void registerMobEggHandler(IMobEggHandler handler) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerMobEggHandler", IMobEggHandler.class); + reg.invoke(registry, handler); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Allows Rubber Trees to spawn in the specified biome. + * + * @param biome The biome name. + */ + public static void registerRubberTreeBiome(String biome) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerRubberTreeBiome", String.class); + reg.invoke(registry, biome); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Bans an entity class from being collected by Safari Nets + * + * @param blacklistedEntity Class to blacklist + */ + public static void registerSafariNetBlacklist(Class blacklistedEntity) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerSafariNetBlacklist", Class.class); + reg.invoke(registry, blacklistedEntity); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Bans an entity class from being automatically ground by the Grinder + * + * @param blacklistedEntity Class to blacklist + */ + /*public static void registerGrinderBlacklist(Class blacklistedEntity) { try { Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); if(registry != null) { - Method reg = registry.getMethod("registerPlantable", IFactoryPlantable.class); - reg.invoke(registry, plantable); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a harvestable block with the Harvester. - * - * @param harvestable The thing to harvest. - */ - public static void registerHarvestable(IFactoryHarvestable harvestable) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerHarvestable", IFactoryHarvestable.class); - reg.invoke(registry, harvestable); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a fertilizable block with the Fertilizer. - * - * @param fertilizable The thing to fertilize. - */ - public static void registerFertilizable(IFactoryFertilizable fertilizable) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerFertilizable", IFactoryFertilizable.class); - reg.invoke(registry, fertilizable); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a fertilizer item Fertilizer. - * - * @param fertilizable The thing to fertilize with. - */ - public static void registerFertilizer(IFactoryFertilizer fertilizer) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerFertilizer", IFactoryFertilizer.class); - reg.invoke(registry, fertilizer); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a ranchable entity with the Rancher. - * - * @param ranchable The entity to ranch. - */ - public static void registerRanchable(IFactoryRanchable ranchable) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerRanchable", IFactoryRanchable.class); - reg.invoke(registry, ranchable); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a grindable entity with the Grinder. - * - * @param grindable The entity to grind. - */ - public static void registerGrindable(IFactoryGrindable grindable) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerGrindable", IFactoryGrindable.class); - reg.invoke(registry, grindable); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a possible output with the sludge boiler. - * - * @param weight Likelihood that this item will be produced. Lower means rarer. - * @param drop The thing being produced by the sludge boiler. - */ - public static void registerSludgeDrop(int weight, ItemStack drop) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerSludgeDrop", int.class, ItemStack.class); - reg.invoke(registry, weight, drop); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers specific food to use in the Breeder (instead of wheat) for a given mob. - * - * @param entityToBreed Entity this food will be used with. - * @param food The item to use when breeding this entity. - */ - public static void registerBreederFood(Class entityToBreed, ItemStack food) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerBreederFood", Class.class, ItemStack.class); - reg.invoke(registry, entityToBreed, food); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a Safari Net handler to properly serialize a type of mob. - * - * @param handler The Safari Net handler. - */ - public static void registerSafariNetHandler(ISafariNetHandler handler) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerSafariNetHandler", ISafariNetHandler.class); - reg.invoke(registry, handler); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - - /** - * Registers a mob egg handler, which allows the Safari Net to properly change colors. - * - * @param handler The mob egg handler - */ - public static void registerMobEggHandler(IMobEggHandler handler) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerMobEggHandler", IMobEggHandler.class); - reg.invoke(registry, handler); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Allows Rubber Trees to spawn in the specified biome. - * - * @param biome The biome name. - */ - public static void registerRubberTreeBiome(String biome) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerRubberTreeBiome", String.class); - reg.invoke(registry, biome); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Bans an entity class from being collected by Safari Nets - * - * @param blacklistedEntity Class to blacklist - */ - public static void registerSafariNetBlacklist(Class blacklistedEntity) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerSafariNetBlacklist", Class.class); + Method reg = registry.getMethod("registerGrinderBlacklist", Class.class); reg.invoke(registry, blacklistedEntity); } } @@ -279,191 +245,154 @@ public class FarmingRegistry { e.printStackTrace(); } - } - - /** - * Registers an entity as a possible output from villager random safari nets. Note that the "id" field must be initialized - * (i.e. with Entity.addEntityID()) for it to work correctly. - * - * @param savedMob A serialized mob that will be unloaded by the safari net - * @param weight The weight of this mob in the random selection - */ - public static void registerVillagerTradeMob(IRandomMobProvider mobProvider) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerVillagerTradeMob", IRandomMobProvider.class); - reg.invoke(registry, mobProvider); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a handler for drinking liquids with the straw. - * - * @param liquidId The block ID the handler handles. - * @param liquidDrinkHandler The drink handler instance. - */ - public static void registerLiquidDrinkHandler(int liquidId, ILiquidDrinkHandler liquidDrinkHandler) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerLiquidDrinkHandler", int.class, ILiquidDrinkHandler.class); - reg.invoke(registry, liquidId, liquidDrinkHandler); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a possible output with the laser drill. - * - * @param weight Likelihood that this item will be produced. Lower means rarer. - * @param drop The thing being produced by the laser drill. - */ - public static void registerLaserOre(int weight, ItemStack drop) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerLaserOre", int.class, ItemStack.class); - reg.invoke(registry, weight, drop); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a preferred ore with the laser drill. Focuses with the specified color will make the specified ore more likely. - * Note that this will overwrite existing ore preferences - you may want to coordinate with PC before using this one. - * Used by MFR itself for vanilla: Black (Coal), Light Blue (Diamond), Lime (Emerald), Yellow (Gold), Brown (Iron), Blue (Lapis), - * Red (Redstone), and White (nether quartz). - * - * @param color The color that the preferred ore is being set for. White is 0. - * @param ore The ore that will be preferred by the drill when a focus with the specified color is present. - */ - public static void setLaserPreferredOre(int color, ItemStack ore) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("setLaserPreferredOre", int.class, ItemStack.class); - reg.invoke(registry, color, ore); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a block ID as a fruit tree log. When the Fruit Picker sees this block on the ground, it will - * begin a search in tree mode for any fruit nearby. - * - * @param fruitLogBlockId The block ID to mark as a fruit tree log. - */ - public static void registerFruitLogBlockId(Integer fruitLogBlockId) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerFruitLogBlockId", Integer.class); - reg.invoke(registry, fruitLogBlockId); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers a fruit for the Fruit Picker. - * - * @param fruit The fruit to be picked. - */ - public static void registerFruit(IFactoryFruit fruit) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerFruit", IFactoryFruit.class); - reg.invoke(registry, fruit); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers an entity string as an invalid entry for the autospawner. - * See also: {@link net.minecraft.entity.EntityList}'s classToStringMapping and stringToClassMapping. - * - * @param entityString The entity string to blacklist. - */ - public static void registerAutoSpawnerBlacklist(String entityString) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerAutoSpawnerBlacklist", String.class); - reg.invoke(registry, entityString); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - /** - * Registers logic circuit to be usable in the Programmable RedNet Controller. - * - * @param circuit The circuit to be registered. - */ - public static void registerRedNetLogicCircuit(IRedNetLogicCircuit circuit) - { - try - { - Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); - if(registry != null) - { - Method reg = registry.getMethod("registerRedNetLogicCircuit", IRedNetLogicCircuit.class); - reg.invoke(registry, circuit); - } - } - catch(Exception e) - { - e.printStackTrace(); - } - } + }//*/ + + /** + * Registers an entity as a possible output from villager random safari nets. Note that the "id" field must be initialized + * (i.e. with Entity.addEntityID()) for it to work correctly. + * + * @param savedMob A serialized mob that will be unloaded by the safari net + * @param weight The weight of this mob in the random selection + */ + public static void registerVillagerTradeMob(IRandomMobProvider mobProvider) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerVillagerTradeMob", IRandomMobProvider.class); + reg.invoke(registry, mobProvider); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a handler for drinking fluids with the straw. + * + * @param fluidId The block ID the handler handles. + * @param fluidDrinkHandler The drink handler instance. + */ + public static void registerFluidDrinkHandler(int fluidId, IFluidDrinkHandler fluidDrinkHandler) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerFluidDrinkHandler", int.class, IFluidDrinkHandler.class); + reg.invoke(registry, fluidId, fluidDrinkHandler); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a possible output with the laser drill. + * + * @param weight Likelihood that this item will be produced. Lower means rarer. + * @param drop The thing being produced by the laser drill. + */ + public static void registerLaserOre(int weight, ItemStack drop) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerLaserOre", int.class, ItemStack.class); + reg.invoke(registry, weight, drop); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a preferred ore with the laser drill. Focuses with the specified color will make the specified ore more likely. + * Note that this will overwrite existing ore preferences - you may want to coordinate with PC before using this one. + * Used by MFR itself for vanilla: Black (Coal), Light Blue (Diamond), Lime (Emerald), Yellow (Gold), Brown (Iron), Blue (Lapis), + * Red (Redstone), and White (nether quartz). + *

+ * In 2.7 this will be replaced by addLaserPreferredOre, because it'll no longer overwrite existing ore preferences. + * + * @param color The color that the preferred ore is being set for. White is 0. + * @param ore The ore that will be preferred by the drill when a focus with the specified color is present. + */ + @Deprecated + public static void setLaserPreferredOre(int color, ItemStack ore) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("setLaserPreferredOre", int.class, ItemStack.class); + reg.invoke(registry, color, ore); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a block ID as a fruit tree log. When the Fruit Picker sees this block on the ground, it will + * begin a search in tree mode for any fruit nearby. + * + * @param fruitLogBlockId The block ID to mark as a fruit tree log. + */ + public static void registerFruitLogBlockId(Integer fruitLogBlockId) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerFruitLogBlockId", Integer.class); + reg.invoke(registry, fruitLogBlockId); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers a fruit for the Fruit Picker. + * + * @param fruit The fruit to be picked. + */ + public static void registerFruit(IFactoryFruit fruit) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerFruit", IFactoryFruit.class); + reg.invoke(registry, fruit); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers an entity string as an invalid entry for the autospawner. + * See also: {@link net.minecraft.entity.EntityList}'s classToStringMapping and stringToClassMapping. + * + * @param entityString The entity string to blacklist. + */ + public static void registerAutoSpawnerBlacklist(String entityString) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerAutoSpawnerBlacklist", String.class); + reg.invoke(registry, entityString); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Registers logic circuit to be usable in the Programmable RedNet Controller. + * + * @param circuit The circuit to be registered. + */ + public static void registerRedNetLogicCircuit(IRedNetLogicCircuit circuit) { + try { + Class registry = Class.forName("powercrystals.minefactoryreloaded.MFRRegistry"); + if (registry != null) { + Method reg = registry.getMethod("registerRedNetLogicCircuit", IRedNetLogicCircuit.class); + reg.invoke(registry, circuit); + } + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/apis/powercrystals/minefactoryreloaded/api/FertilizerType.java b/apis/powercrystals/minefactoryreloaded/api/FertilizerType.java index 15e8bfb36..47f8655c9 100755 --- a/apis/powercrystals/minefactoryreloaded/api/FertilizerType.java +++ b/apis/powercrystals/minefactoryreloaded/api/FertilizerType.java @@ -2,22 +2,21 @@ package powercrystals.minefactoryreloaded.api; /** * @author PowerCrystals - * - * Determines what kind of action a given fertilizer can perform. Your IFactoryFertilizable instances should check this before - * performing any action to maintain future compatibility. + *

+ * Determines what kind of action a given fertilizer can perform. Your IFactoryFertilizable instances should check this before + * performing any action to maintain future compatibility. */ -public enum FertilizerType -{ - /** - * The fertilizer will fertilize grass. - */ - Grass, - /** - * The fertilizer will grow a plant. - */ - GrowPlant, - /** - * The fertilizer will grow magical crops. - */ - GrowMagicalCrop, +public enum FertilizerType { + /** + * The fertilizer will fertilize grass. + */ + Grass, + /** + * The fertilizer will grow a plant. + */ + GrowPlant, + /** + * The fertilizer will grow magical crops. + */ + GrowMagicalCrop, } \ No newline at end of file diff --git a/apis/powercrystals/minefactoryreloaded/api/HarvestType.java b/apis/powercrystals/minefactoryreloaded/api/HarvestType.java index 1552eb57c..4e0f024e8 100755 --- a/apis/powercrystals/minefactoryreloaded/api/HarvestType.java +++ b/apis/powercrystals/minefactoryreloaded/api/HarvestType.java @@ -2,33 +2,32 @@ package powercrystals.minefactoryreloaded.api; /** * @author PowerCrystals - * - * Determines what algorithm the Harvester uses when it encounters this IFactoryHarvestable in the world. + *

+ * Determines what algorithm the Harvester uses when it encounters this IFactoryHarvestable in the world. */ -public enum HarvestType -{ - /** - * Just break the single block - no special action needed. Carrots, flowers, etc. - */ - Normal, - /** - * Search for identical blocks above. - */ - Column, - /** - * Search for identical blocks above but leave this bottom one for the future. Cactus and sugarcane. - */ - LeaveBottom, - /** - * This block is the base of a tree and the harvester should enter tree-cutting mode. - */ - Tree, - /** - * This block is the base of the tree and the harvester should enter tree-cutting mode, but the tree grows upside-down. - */ - TreeFlipped, - /** - * This block is part of a tree as above, but leaves are cut before tree logs so that leaves do not decay more than necessary. - */ - TreeLeaf +public enum HarvestType { + /** + * Just break the single block - no special action needed. Carrots, flowers, etc. + */ + Normal, + /** + * Search for identical blocks above. + */ + Column, + /** + * Search for identical blocks above but leave this bottom one for the future. Cactus and sugarcane. + */ + LeaveBottom, + /** + * This block is the base of a tree and the harvester should enter tree-cutting mode. + */ + Tree, + /** + * This block is the base of the tree and the harvester should enter tree-cutting mode, but the tree grows upside-down. + */ + TreeFlipped, + /** + * This block is part of a tree as above, but leaves are cut before tree logs so that leaves do not decay more than necessary. + */ + TreeLeaf } diff --git a/apis/powercrystals/minefactoryreloaded/api/IDeepStorageUnit.java b/apis/powercrystals/minefactoryreloaded/api/IDeepStorageUnit.java index ec6c1be49..996512a1f 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IDeepStorageUnit.java +++ b/apis/powercrystals/minefactoryreloaded/api/IDeepStorageUnit.java @@ -2,25 +2,24 @@ package powercrystals.minefactoryreloaded.api; import net.minecraft.item.ItemStack; -public interface IDeepStorageUnit -{ - /** - * @return A populated ItemStack with stackSize for the full amount of materials in the DSU. May have a stackSize > getMaxStackSize(). - */ - ItemStack getStoredItemType(); - - /** - * Sets the total amount of the item currently being stored, or zero if it wants to remove all items. - */ - void setStoredItemCount(int amount); - - /** - * Sets the type of the stored item and initializes the number of stored items to count. Will overwrite any existing stored items. - */ - void setStoredItemType(int itemID, int meta, int Count); - - /** - * @return The maximum number of items the DSU can hold. - */ - int getMaxStoredCount(); +public interface IDeepStorageUnit { + /** + * @return A populated ItemStack with stackSize for the full amount of materials in the DSU. May have a stackSize > getMaxStackSize(). + */ + ItemStack getStoredItemType(); + + /** + * Sets the total amount of the item currently being stored, or zero if it wants to remove all items. + */ + void setStoredItemCount(int amount); + + /** + * Sets the type of the stored item and initializes the number of stored items to count. Will overwrite any existing stored items. + */ + void setStoredItemType(int itemID, int meta, int Count); + + /** + * @return The maximum number of items the DSU can hold. + */ + int getMaxStoredCount(); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizable.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizable.java index 1374d597c..504cd7b45 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizable.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizable.java @@ -1,40 +1,39 @@ package powercrystals.minefactoryreloaded.api; -import java.util.Random; - import net.minecraft.world.World; +import java.util.Random; + /** * @author PowerCrystals - * - * Defines a fertilizable block, and the process to fertilize it. You can assume that you will never have to check that block ID matches the one returned by - * getFertilizableBlockId(). + *

+ * Defines a fertilizable block, and the process to fertilize it. You can assume that you will never have to check that block ID matches the one returned by + * getFertilizableBlockId(). */ -public interface IFactoryFertilizable -{ - /** - * @return The block ID this instance is managing. - */ - public int getFertilizableBlockId(); - - /** - * @param world The world this block belongs to. - * @param x The X coordinate of this block. - * @param y The Y coordinate of this block. - * @param z The Z coordinate of this block. - * @param fertilizerType The kind of fertilizer being used. - * @return True if the block at (x,y,z) can be fertilized with the given type of fertilizer. - */ - public boolean canFertilizeBlock(World world, int x, int y, int z, FertilizerType fertilizerType); - - /** - * @param world The world this block belongs to. - * @param rand A Random instance to use when fertilizing, if necessary. - * @param x The X coordinate of this block. - * @param y The Y coordinate of this block. - * @param z The Z coordinate of this block. - * @param fertilizerType The kind of fertilizer being used. - * @return True if fertilization was successful. If false, the Fertilizer will not consume a fertilizer item and will not drain power. - */ - public boolean fertilize(World world, Random rand, int x, int y, int z, FertilizerType fertilizerType); +public interface IFactoryFertilizable { + /** + * @return The block ID this instance is managing. + */ + public int getFertilizableBlockId(); + + /** + * @param world The world this block belongs to. + * @param x The X coordinate of this block. + * @param y The Y coordinate of this block. + * @param z The Z coordinate of this block. + * @param fertilizerType The kind of fertilizer being used. + * @return True if the block at (x,y,z) can be fertilized with the given type of fertilizer. + */ + public boolean canFertilizeBlock(World world, int x, int y, int z, FertilizerType fertilizerType); + + /** + * @param world The world this block belongs to. + * @param rand A Random instance to use when fertilizing, if necessary. + * @param x The X coordinate of this block. + * @param y The Y coordinate of this block. + * @param z The Z coordinate of this block. + * @param fertilizerType The kind of fertilizer being used. + * @return True if fertilization was successful. If false, the Fertilizer will not consume a fertilizer item and will not drain power. + */ + public boolean fertilize(World world, Random rand, int x, int y, int z, FertilizerType fertilizerType); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizer.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizer.java index 08589c121..9483895c3 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizer.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryFertilizer.java @@ -4,30 +4,29 @@ import net.minecraft.item.ItemStack; /** * @author PowerCrystals - * - * Defines a fertilizer item for use in the Fertilizer. + *

+ * Defines a fertilizer item for use in the Fertilizer. */ -public interface IFactoryFertilizer -{ - /** - * @return The ID of this fertilizer item. - */ - int getFertilizerId(); - - /** - * @return The metadata of this fertilizer item. - */ - int getFertilizerMeta(); - - /** - * @return The type of fertilizer this is. - */ - FertilizerType getFertilizerType(); - - /** - * Called when a fertilization is successful. If you set the ItemStack size to 0, it will be deleted by the fertilizer. - * - * @param fertilizer The ItemStack used to fertilize. - */ - void consume(ItemStack fertilizer); +public interface IFactoryFertilizer { + /** + * @return The ID of this fertilizer item. + */ + int getFertilizerId(); + + /** + * @return The metadata of this fertilizer item. + */ + int getFertilizerMeta(); + + /** + * @return The type of fertilizer this is. + */ + FertilizerType getFertilizerType(); + + /** + * Called when a fertilization is successful. If you set the ItemStack size to 0, it will be deleted by the fertilizer. + * + * @param fertilizer The ItemStack used to fertilize. + */ + void consume(ItemStack fertilizer); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryFruit.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryFruit.java index 65ed9f96b..727471880 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryFruit.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryFruit.java @@ -1,69 +1,72 @@ package powercrystals.minefactoryreloaded.api; -import java.util.List; -import java.util.Random; - import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + /** * Defines a fruit entry for the Fruit Picker. - * - * @author powercrystals * + * @author powercrystals */ -public interface IFactoryFruit -{ - /** - * @return The block ID this fruit has in the world. - */ - public int getSourceBlockId(); - - /** - * Used to determine if this fruit can be picked (is it ripe yet, etc) - * @param world The world where the fruit is being picked - * @param x The x-coordinate of the fruit - * @param y The y-coordinate of the fruit - * @param z The z-coordinate of the fruit - * @return True if the fruit can be picked - */ - public boolean canBePicked(World world, int x, int y, int z); - - /** - * Called by the Fruit Picker to determine what block to replace the picked block with. Only ID and meta/damage will be used. - * At the time this method is called, the fruit still exists. Do not pass an item ID as the return value. - * @param world The world where the fruit is being picked - * @param x The x-coordinate of the fruit - * @param y The y-coordinate of the fruit - * @param z The z-coordinate of the fruit - * @return The block to replace the fruit block with, or null for air. - */ - public ItemStack getReplacementBlock(World world, int x, int y, int z); - - /** - * Called by the Fruit Picker before the fruit is picked. - * @param world The world where the fruit is being picked - * @param x The x-coordinate of the fruit - * @param y The y-coordinate of the fruit - * @param z The z-coordinate of the fruit - */ - public void prePick(World world, int x, int y, int z); - - /** - * Called by the Fruit Picker to determine what drops to generate. At the time this method is called, the fruit still exists. - * @param world The world where the fruit is being picked - * @param x The x-coordinate of the fruit - * @param y The y-coordinate of the fruit - * @param z The z-coordinate of the fruit - */ - public List getDrops(World world, Random rand, int x, int y, int z); - - /** - * Called by the Fruit Picker after the fruit is picked. - * @param world The world where the fruit is being picked - * @param x The x-coordinate of the fruit - * @param y The y-coordinate of the fruit - * @param z The z-coordinate of the fruit - */ - public void postPick(World world, int x, int y, int z); +public interface IFactoryFruit { + /** + * @return The block ID this fruit has in the world. + */ + public int getSourceBlockId(); + + /** + * Used to determine if this fruit can be picked (is it ripe yet, etc) + * + * @param world The world where the fruit is being picked + * @param x The x-coordinate of the fruit + * @param y The y-coordinate of the fruit + * @param z The z-coordinate of the fruit + * @return True if the fruit can be picked + */ + public boolean canBePicked(World world, int x, int y, int z); + + /** + * Called by the Fruit Picker to determine what block to replace the picked block with. Only ID and meta/damage will be used. + * At the time this method is called, the fruit still exists. Do not pass an item ID as the return value. + * + * @param world The world where the fruit is being picked + * @param x The x-coordinate of the fruit + * @param y The y-coordinate of the fruit + * @param z The z-coordinate of the fruit + * @return The block to replace the fruit block with, or null for air. + */ + public ItemStack getReplacementBlock(World world, int x, int y, int z); + + /** + * Called by the Fruit Picker before the fruit is picked. + * + * @param world The world where the fruit is being picked + * @param x The x-coordinate of the fruit + * @param y The y-coordinate of the fruit + * @param z The z-coordinate of the fruit + */ + public void prePick(World world, int x, int y, int z); + + /** + * Called by the Fruit Picker to determine what drops to generate. At the time this method is called, the fruit still exists. + * + * @param world The world where the fruit is being picked + * @param x The x-coordinate of the fruit + * @param y The y-coordinate of the fruit + * @param z The z-coordinate of the fruit + */ + public List getDrops(World world, Random rand, int x, int y, int z); + + /** + * Called by the Fruit Picker after the fruit is picked. + * + * @param world The world where the fruit is being picked + * @param x The x-coordinate of the fruit + * @param y The y-coordinate of the fruit + * @param z The z-coordinate of the fruit + */ + public void postPick(World world, int x, int y, int z); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java index bcc351059..20ac18ac1 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java @@ -1,29 +1,30 @@ package powercrystals.minefactoryreloaded.api; -import java.util.List; -import java.util.Random; - import net.minecraft.entity.EntityLiving; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + /** * @author PowerCrystals - * - * Defines a grindable entity for the Grinder. + *

+ * Defines a grindable entity for the Grinder. */ -public interface IFactoryGrindable -{ - /** - * @return The class that this grindable instance is handling. This must be a subtype of EntityLiving or the entity will never - * be noticed by the Grinder. - */ - public Class getGrindableEntity(); - - /** - * @param world The world this entity is in. - * @param entity The entity instance being ground. - * @param random A Random instance. - * @return The drops generated when this entity is killed. - */ - public List grind(World world, EntityLiving entity, Random random); +@Deprecated +public interface IFactoryGrindable { + /** + * @return The class that this grindable instance is handling. This must be a subtype of EntityLiving or the entity will never + * be noticed by the Grinder. + */ + public Class getGrindableEntity(); + + /** + * @param world The world this entity is in. + * @param entity The entity instance being ground. + * @param random A Random instance. + * @return The drops generated when this entity is killed. + */ + public List grind(World world, EntityLiving entity, Random random); + } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable2.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable2.java new file mode 100755 index 000000000..8b38b6b44 --- /dev/null +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryGrindable2.java @@ -0,0 +1,37 @@ +package powercrystals.minefactoryreloaded.api; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.world.World; + +import java.util.List; +import java.util.Random; + +/** + * @author PowerCrystals + *

+ * Defines a grindable entity for the Grinder. + */ +@SuppressWarnings("deprecation") +public interface IFactoryGrindable2 extends IFactoryGrindable { + /** + * @return The class that this grindable instance is handling. This must be a subtype of EntityLiving or the entity will never + * be noticed by the Grinder. + */ + @Override + public Class getGrindableEntity(); + + /** + * @param world The world this entity is in. + * @param entity The entity instance being ground. + * @param random A Random instance. + * @return The drops generated when this entity is killed. + */ + @Override + public List grind(World world, EntityLiving entity, Random random); + + /** + * @param entity The entity instance being ground. + * @return Whether this entity has been fully processed or not. + */ + public boolean processEntity(EntityLiving entity); +} diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java index 63707375a..22e5f8818 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java @@ -1,71 +1,72 @@ package powercrystals.minefactoryreloaded.api; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + import java.util.List; import java.util.Map; import java.util.Random; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - /** * @author PowerCrystals - * - * Defines a harvestable block for the Harvester. + *

+ * Defines a harvestable block for the Harvester. */ -public interface IFactoryHarvestable -{ - /** - * @return The block ID this harvestable instance is managing. - */ - public int getPlantId(); - - /** - * @return The type of harvest the Harvester should perform on this block. - */ - public HarvestType getHarvestType(); - - - /** - * @return Whether or not the Harvester should break the block when harvesting. If false, no changes will be performed by the Harvester itself. - */ - public boolean breakBlock(); - - /** - * @param world The world this block is in. - * @param harvesterSettings The harvester's current settings. Do not modify these. - * @param x The X coordinate of the block being harvested. - * @param y The Y coordinate of the block being harvested. - * @param z The Z coordinate of the block being harvested. - * @return True if this block can be harvested. - */ - public boolean canBeHarvested(World world, Map harvesterSettings, int x, int y, int z); - - /** - * @param world The world this block is in. - * @param rand A Random instance to use when generating drops. - * @param harvesterSettings The harvester's current settings. Do not modify these. - * @param x The X coordinate of the block being harvested. - * @param y The Y coordinate of the block being harvested. - * @param z The Z coordinate of the block being harvested. - * @return The drops generated by breaking this block. For a default implementation, calling Block.getBlockDropped() is usually sufficient. - */ - public List getDrops(World world, Random rand, Map harvesterSettings, int x, int y, int z); - - /** - * Called before the block is going to be harvested. Usually empty. - * @param world The world this block is in. - * @param x The X coordinate of the block being harvested. - * @param y The Y coordinate of the block being harvested. - * @param z The Z coordinate of the block being harvested. - */ - public void preHarvest(World world, int x, int y, int z); - - /** - * Called after the block is going to be harvested. Used to re-till soil, for example. - * @param world The world this block is in. - * @param x The X coordinate of the block being harvested. - * @param y The Y coordinate of the block being harvested. - * @param z The Z coordinate of the block being harvested. - */ - public void postHarvest(World world, int x, int y, int z); +public interface IFactoryHarvestable { + /** + * @return The block ID this harvestable instance is managing. + */ + public int getPlantId(); + + /** + * @return The type of harvest the Harvester should perform on this block. + */ + public HarvestType getHarvestType(); + + + /** + * @return Whether or not the Harvester should break the block when harvesting. If false, no changes will be performed by the Harvester itself. + */ + public boolean breakBlock(); + + /** + * @param world The world this block is in. + * @param harvesterSettings The harvester's current settings. Do not modify these. + * @param x The X coordinate of the block being harvested. + * @param y The Y coordinate of the block being harvested. + * @param z The Z coordinate of the block being harvested. + * @return True if this block can be harvested. + */ + public boolean canBeHarvested(World world, Map harvesterSettings, int x, int y, int z); + + /** + * @param world The world this block is in. + * @param rand A Random instance to use when generating drops. + * @param harvesterSettings The harvester's current settings. Do not modify these. + * @param x The X coordinate of the block being harvested. + * @param y The Y coordinate of the block being harvested. + * @param z The Z coordinate of the block being harvested. + * @return The drops generated by breaking this block. For a default implementation, calling Block.getBlockDropped() is usually sufficient. + */ + public List getDrops(World world, Random rand, Map harvesterSettings, int x, int y, int z); + + /** + * Called before the block is going to be harvested. Usually empty. + * + * @param world The world this block is in. + * @param x The X coordinate of the block being harvested. + * @param y The Y coordinate of the block being harvested. + * @param z The Z coordinate of the block being harvested. + */ + public void preHarvest(World world, int x, int y, int z); + + /** + * Called after the block is going to be harvested. Used to re-till soil, for example. + * + * @param world The world this block is in. + * @param x The X coordinate of the block being harvested. + * @param y The Y coordinate of the block being harvested. + * @param z The Z coordinate of the block being harvested. + */ + public void postHarvest(World world, int x, int y, int z); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryPlantable.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryPlantable.java index 29bc7fbc6..a07de8e2b 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryPlantable.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryPlantable.java @@ -5,63 +5,64 @@ import net.minecraft.world.World; /** * @author PowerCrystals - * - * Defines a plantable object for use in the Planter. + *

+ * Defines a plantable object for use in the Planter. */ -public interface IFactoryPlantable -{ - /** - * @return The block or item ID this plantable is managing. - */ - public int getSeedId(); - - /** - * @param world The world instance this block or item will be placed into. - * @param x The destination X coordinate. - * @param y The destination Y coordinate. - * @param z The destination Z coordinate. - * @param stack The stack being planted. - * @return The block ID that will be placed into the world. - */ - public int getPlantedBlockId(World world, int x, int y, int z, ItemStack stack); - - /** - * @param world The world instance this block or item will be placed into. - * @param x The destination X coordinate. - * @param y The destination Y coordinate. - * @param z The destination Z coordinate. - * @param stack The stack being planted. - * @return The block metadata that will be placed into the world. - */ - public int getPlantedBlockMetadata(World world, int x, int y, int z, ItemStack stack); - - /** - * @param world The world instance this block or item will be placed into. - * @param x The destination X coordinate. - * @param y The destination Y coordinate. - * @param z The destination Z coordinate. - * @param stack The stack being planted. - * @return True if this plantable can be placed at the provided coordinates. - */ - public boolean canBePlantedHere(World world, int x, int y, int z, ItemStack stack); - - /** - * Called before planting is performed. Used to till soil, for example. - * @param world The world instance this block or item will be placed into. - * @param x The destination X coordinate. - * @param y The destination Y coordinate. - * @param z The destination Z coordinate. - * @param stack The stack being planted. - */ - public void prePlant(World world, int x, int y, int z, ItemStack stack); - - /** - * Called after planting is performed. Usually empty. - * @param world The world instance this block or item will be placed into. - * @param x The destination X coordinate. - * @param y The destination Y coordinate. - * @param z The destination Z coordinate. - * @param stack The stack being planted. - */ - public void postPlant(World world, int x, int y, int z, ItemStack stack); +public interface IFactoryPlantable { + /** + * @return The block or item ID this plantable is managing. + */ + public int getSeedId(); + + /** + * @param world The world instance this block or item will be placed into. + * @param x The destination X coordinate. + * @param y The destination Y coordinate. + * @param z The destination Z coordinate. + * @param stack The stack being planted. + * @return The block ID that will be placed into the world. + */ + public int getPlantedBlockId(World world, int x, int y, int z, ItemStack stack); + + /** + * @param world The world instance this block or item will be placed into. + * @param x The destination X coordinate. + * @param y The destination Y coordinate. + * @param z The destination Z coordinate. + * @param stack The stack being planted. + * @return The block metadata that will be placed into the world. + */ + public int getPlantedBlockMetadata(World world, int x, int y, int z, ItemStack stack); + + /** + * @param world The world instance this block or item will be placed into. + * @param x The destination X coordinate. + * @param y The destination Y coordinate. + * @param z The destination Z coordinate. + * @param stack The stack being planted. + * @return True if this plantable can be placed at the provided coordinates. + */ + public boolean canBePlantedHere(World world, int x, int y, int z, ItemStack stack); + + /** + * Called before planting is performed. Used to till soil, for example. + * + * @param world The world instance this block or item will be placed into. + * @param x The destination X coordinate. + * @param y The destination Y coordinate. + * @param z The destination Z coordinate. + * @param stack The stack being planted. + */ + public void prePlant(World world, int x, int y, int z, ItemStack stack); + + /** + * Called after planting is performed. Usually empty. + * + * @param world The world instance this block or item will be placed into. + * @param x The destination X coordinate. + * @param y The destination Y coordinate. + * @param z The destination Z coordinate. + * @param stack The stack being planted. + */ + public void postPlant(World world, int x, int y, int z, ItemStack stack); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IFactoryRanchable.java b/apis/powercrystals/minefactoryreloaded/api/IFactoryRanchable.java index 23fec3b68..95d8974dd 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IFactoryRanchable.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFactoryRanchable.java @@ -1,29 +1,28 @@ package powercrystals.minefactoryreloaded.api; -import java.util.List; - import net.minecraft.entity.EntityLiving; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import java.util.List; + /** * @author PowerCrystals - * - * Defines a ranchable entity for use in the Rancher. + *

+ * Defines a ranchable entity for use in the Rancher. */ -public interface IFactoryRanchable -{ - /** - * @return The entity being ranched. Must be a subtype of EntityLiving. - */ - public Class getRanchableEntity(); - - /** - * @param world The world this entity is in. - * @param entity The entity instance being ranched. - * @param rancher The rancher instance doing the ranching. Used to access the Rancher's inventory when milking cows, for example. - * @return A list of drops. - */ - public List ranch(World world, EntityLiving entity, IInventory rancher); +public interface IFactoryRanchable { + /** + * @return The entity being ranched. Must be a subtype of EntityLiving. + */ + public Class getRanchableEntity(); + + /** + * @param world The world this entity is in. + * @param entity The entity instance being ranched. + * @param rancher The rancher instance doing the ranching. Used to access the Rancher's inventory when milking cows, for example. + * @return A list of drops. + */ + public List ranch(World world, EntityLiving entity, IInventory rancher); } diff --git a/apis/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java b/apis/powercrystals/minefactoryreloaded/api/IFluidDrinkHandler.java similarity index 54% rename from apis/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java rename to apis/powercrystals/minefactoryreloaded/api/IFluidDrinkHandler.java index 2ab4a5867..241ad8ac1 100755 --- a/apis/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java +++ b/apis/powercrystals/minefactoryreloaded/api/IFluidDrinkHandler.java @@ -2,7 +2,6 @@ package powercrystals.minefactoryreloaded.api; import net.minecraft.entity.player.EntityPlayer; -public interface ILiquidDrinkHandler -{ - public void onDrink(EntityPlayer player); +public interface IFluidDrinkHandler { + public void onDrink(EntityPlayer player); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IMobEggHandler.java b/apis/powercrystals/minefactoryreloaded/api/IMobEggHandler.java index a322f923f..8e9623055 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IMobEggHandler.java +++ b/apis/powercrystals/minefactoryreloaded/api/IMobEggHandler.java @@ -5,14 +5,13 @@ import net.minecraft.item.ItemStack; /** * @author PowerCrystals - * - * Defines a class that MFR will use to local egg info for a given mob. This is used to color the Safari Net based on the captured mob. + *

+ * Defines a class that MFR will use to local egg info for a given mob. This is used to color the Safari Net based on the captured mob. */ -public interface IMobEggHandler -{ - /** - * @param safariNet The Safari Net that is looking for egg info. - * @return An EntityEggInfo, or null if this instance cannot handle this mob. - */ - public EntityEggInfo getEgg(ItemStack safariNet); +public interface IMobEggHandler { + /** + * @param safariNet The Safari Net that is looking for egg info. + * @return An EntityEggInfo, or null if this instance cannot handle this mob. + */ + public EntityEggInfo getEgg(ItemStack safariNet); } diff --git a/apis/powercrystals/minefactoryreloaded/api/INeedleAmmo.java b/apis/powercrystals/minefactoryreloaded/api/INeedleAmmo.java new file mode 100755 index 000000000..8cee24417 --- /dev/null +++ b/apis/powercrystals/minefactoryreloaded/api/INeedleAmmo.java @@ -0,0 +1,13 @@ +package powercrystals.minefactoryreloaded.api; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public interface INeedleAmmo { + public boolean onHitEntity(EntityPlayer owner, Entity hit, double distance); + + public void onHitBlock(EntityPlayer owner, World world, int x, int y, int z, int side, double distance); + + public float getSpread(); +} diff --git a/apis/powercrystals/minefactoryreloaded/api/IRandomMobProvider.java b/apis/powercrystals/minefactoryreloaded/api/IRandomMobProvider.java index b03d6f08a..96ae6854e 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IRandomMobProvider.java +++ b/apis/powercrystals/minefactoryreloaded/api/IRandomMobProvider.java @@ -1,11 +1,10 @@ package powercrystals.minefactoryreloaded.api; -import java.util.List; - import net.minecraft.world.World; +import java.util.List; -public interface IRandomMobProvider -{ - public List getRandomMobs(World world); + +public interface IRandomMobProvider { + public List getRandomMobs(World world); } \ No newline at end of file diff --git a/apis/powercrystals/minefactoryreloaded/api/ISafariNetHandler.java b/apis/powercrystals/minefactoryreloaded/api/ISafariNetHandler.java index 370017956..a2d2f8834 100755 --- a/apis/powercrystals/minefactoryreloaded/api/ISafariNetHandler.java +++ b/apis/powercrystals/minefactoryreloaded/api/ISafariNetHandler.java @@ -1,28 +1,27 @@ package powercrystals.minefactoryreloaded.api; -import java.util.List; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import java.util.List; + /** * @author PowerCrystals - * - * Defines an object that can display information about a captured mob in a Safari net. + *

+ * Defines an object that can display information about a captured mob in a Safari net. */ -public interface ISafariNetHandler -{ - /** - * @return The class of mob that this handler applies to. - */ - public Class validFor(); - - /** - * @param safariNetStack The Safari Net that is requesting information. - * @param player The player holding the Safari Net. - * @param infoList The current list of information strings. Add yours to this. - * @param advancedTooltips True if the advanced tooltips option is on. - */ - @SuppressWarnings("rawtypes") - public void addInformation(ItemStack safariNetStack, EntityPlayer player, List infoList, boolean advancedTooltips); +public interface ISafariNetHandler { + /** + * @return The class of mob that this handler applies to. + */ + public Class validFor(); + + /** + * @param safariNetStack The Safari Net that is requesting information. + * @param player The player holding the Safari Net. + * @param infoList The current list of information strings. Add yours to this. + * @param advancedTooltips True if the advanced tooltips option is on. + */ + @SuppressWarnings("rawtypes") + public void addInformation(ItemStack safariNetStack, EntityPlayer player, List infoList, boolean advancedTooltips); } diff --git a/apis/powercrystals/minefactoryreloaded/api/ISyringe.java b/apis/powercrystals/minefactoryreloaded/api/ISyringe.java index 5521d4513..2ea317a05 100755 --- a/apis/powercrystals/minefactoryreloaded/api/ISyringe.java +++ b/apis/powercrystals/minefactoryreloaded/api/ISyringe.java @@ -6,26 +6,31 @@ import net.minecraft.world.World; /** * @author PowerCrystals - * - * Defines a syringe for use in the Vet machine. + *

+ * Defines a syringe for use in the Vet machine. */ -public interface ISyringe -{ - /** - * Called when the vet is deciding if it should use this syringe. - * @param world The world instance. - * @param entity The entity being injected. - * @param syringe The syringe ItemStack. - * @return True if the entity can be injected by this syringe. - */ - public boolean canInject(World world, EntityLiving entity, ItemStack syringe); - - /** - * Called to perform an injection. - * @param world The world instance. - * @param entity The entity being injected. - * @param syringe The syringe ItemStack. - * @return True if injection was successful. - */ - public boolean inject(World world, EntityLiving entity, ItemStack syringe); +public interface ISyringe { + /** + * Called when the vet is deciding if it should use this syringe. + * + * + * + * @param world The world instance. + * @param entity The entity being injected. + * @param syringe The syringe ItemStack. + * @return True if the entity can be injected by this syringe. + */ + public boolean canInject(World world, EntityLiving entity, ItemStack syringe); + + /** + * Called to perform an injection. + * + * + * + * @param world The world instance. + * @param entity The entity being injected. + * @param syringe The syringe ItemStack. + * @return True if injection was successful. + */ + public boolean inject(World world, EntityLiving entity, ItemStack syringe); } diff --git a/apis/powercrystals/minefactoryreloaded/api/IToolHammer.java b/apis/powercrystals/minefactoryreloaded/api/IToolHammer.java index 09ce77713..3890da79e 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IToolHammer.java +++ b/apis/powercrystals/minefactoryreloaded/api/IToolHammer.java @@ -2,8 +2,7 @@ package powercrystals.minefactoryreloaded.api; /** * @author PowerCrystals - * Defines a tool that can rotate MFR machines. Implement on an Item class. Requires no additional work on your part. + * Defines a tool that can rotate MFR machines. Implement on an Item class. Requires no additional work on your part. */ -public interface IToolHammer -{ +public interface IToolHammer { } diff --git a/apis/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java b/apis/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java index 9c4523495..0134741bc 100755 --- a/apis/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java +++ b/apis/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java @@ -4,13 +4,12 @@ import net.minecraft.item.ItemStack; /** * @author PowerCrystals - * - * This interface is like IToolHammer, but is for items that change state on a per-stack basis. Implement this - * instead of IToolHammer - not both! - * - * This interface will replace IToolHammer in MC 1.6. + *

+ * This interface is like IToolHammer, but is for items that change state on a per-stack basis. Implement this + * instead of IToolHammer - not both! + *

+ * This interface will replace IToolHammer in MC 1.6. */ -public interface IToolHammerAdvanced -{ - public boolean isActive(ItemStack stack); +public interface IToolHammerAdvanced { + public boolean isActive(ItemStack stack); } diff --git a/apis/powercrystals/minefactoryreloaded/api/MobDrop.java b/apis/powercrystals/minefactoryreloaded/api/MobDrop.java index c6c6dcb36..8e52eb7ed 100755 --- a/apis/powercrystals/minefactoryreloaded/api/MobDrop.java +++ b/apis/powercrystals/minefactoryreloaded/api/MobDrop.java @@ -3,19 +3,16 @@ package powercrystals.minefactoryreloaded.api; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomItem; -public class MobDrop extends WeightedRandomItem -{ - private ItemStack _stack; - - public MobDrop(int weight, ItemStack stack) - { - super(weight); - _stack = stack; - } - - public ItemStack getStack() - { - if(_stack == null) return null; - return _stack.copy(); - } +public class MobDrop extends WeightedRandomItem { + private ItemStack _stack; + + public MobDrop(int weight, ItemStack stack) { + super(weight); + _stack = stack; + } + + public ItemStack getStack() { + if (_stack == null) return null; + return _stack.copy(); + } } diff --git a/apis/powercrystals/minefactoryreloaded/api/RandomMob.java b/apis/powercrystals/minefactoryreloaded/api/RandomMob.java index 063699dd6..6e04c052e 100755 --- a/apis/powercrystals/minefactoryreloaded/api/RandomMob.java +++ b/apis/powercrystals/minefactoryreloaded/api/RandomMob.java @@ -3,19 +3,16 @@ package powercrystals.minefactoryreloaded.api; import net.minecraft.entity.Entity; import net.minecraft.util.WeightedRandomItem; -public class RandomMob extends WeightedRandomItem -{ - private Entity _mob; - - public RandomMob(Entity savedMob, int weight) - { - super(weight); - _mob = savedMob; - } - - public Entity getMob() - { - if(_mob == null) return null; - return _mob; - } +public class RandomMob extends WeightedRandomItem { + private Entity _mob; + + public RandomMob(Entity savedMob, int weight) { + super(weight); + _mob = savedMob; + } + + public Entity getMob() { + if (_mob == null) return null; + return _mob; + } } diff --git a/apis/powercrystals/minefactoryreloaded/api/rednet/IConnectableRedNet.java b/apis/powercrystals/minefactoryreloaded/api/rednet/IConnectableRedNet.java index 50ece4cda..4f71df814 100755 --- a/apis/powercrystals/minefactoryreloaded/api/rednet/IConnectableRedNet.java +++ b/apis/powercrystals/minefactoryreloaded/api/rednet/IConnectableRedNet.java @@ -4,7 +4,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; /** - * Defines a Block that can connect to RedNet wires. This must be implemented on your Block class. + * Defines a Block that can connect to RedNet cables. This must be implemented on your Block class. * Note that when you implement this, the RedNet network makes several assumptions about your code - * primarily, it will not clamp values to 0 <= x <= 15. This means you must be able to accept any * possible integer without crashing, even negatives. It will also assume that calling the onInput(s)Changed() @@ -12,69 +12,79 @@ import net.minecraftforge.common.ForgeDirection; * output methods in All mode, and will only query the methods contained in this interface in that case. In Single * mode, it will call onInputChanged, and will check for strong power (or weak if in Plate mode) through the vanilla * method calls. + *

+ * RedNet cables have their subnets indicated to the user by colored bands on the cable. + * The color of a given subnet is the same as the wool with metadata equal to the subnet number. + * For reference: + * 0:White, 1:Orange, 2:Magenta, 3:LightBlue, 4:Yellow, 5:Lime, 6:Pink, 7:Gray, + * 8:LightGray, 9:Cyan, 10:Purple, 11:Blue, 12:Brown, 13:Green, 14:Red, 15:Black */ -public interface IConnectableRedNet -{ - /** - * Returns the connection type of this Block. "All" types will cause getOutputValues() and onInputsChanged() to be used, - * whereas "Single" types will onInputChanged() to be called for input changes and the normal redstone power output methods - * to be called for output. If this value must be changed while the block is alive, it must perform a block update on any - * adjacent RedNet wires. - * @param world The world this block is in. - * @param x This block's X coordinate. - * @param y This block's Y coordinate. - * @param z This block's Z coordinate. - * @param side The side that connection information is required for. - * @return The connection type. - */ - public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side); - - /** - * Returns the output values of this RedNet node. This array must be 16 elements long. Only called if your block is connected in "All" mode. - * @param world The world this block is in. - * @param x This block's X coordinate. - * @param y This block's Y coordinate. - * @param z This block's Z coordinate. - * @param side The side the output values are required for. - * @return The output values. - */ - public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side); - - /** - * Returns the output value of this RedNet node for a given subnet. Only called if your block is connected in "All" mode. - * @param world The world this block is in. - * @param x This block's X coordinate. - * @param y This block's Y coordinate. - * @param z This block's Z coordinate. - * @param side The side the output value is required for. - * @param subnet The subnet to get the output value for (0-15). - * @return The output value. - */ - public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet); - - /** - * Called when the input values to this block change. Only called if your block is connected in "All" mode. - * Do not issue a network value update from inside this method call; it will be ignored. Issue your updates - * on the next tick. - * @param world The world this block is in. - * @param x This block's X coordinate. - * @param y This block's Y coordinate. - * @param z This block's Z coordinate. - * @param side The side the input values are being changed on. - * @param inputValues The new set of input values. This array will be 16 elements long. - */ - public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues); - - /** - * Called when the input value to this block changes. Only called if your block is connected in "Single" mode. - * Do not issue a network value update from inside this method call; it will be ignored. Issue your updates - * on the next tick. - * @param world The world this block is in. - * @param x This block's X coordinate. - * @param y This block's Y coordinate. - * @param z This block's Z coordinate. - * @param side The side the input values are being changed on. - * @param inputValue The new input value - */ - public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue); +public interface IConnectableRedNet { + /** + * Returns the connection type of this Block. "All" types will cause getOutputValues() and onInputsChanged() to be used, + * whereas "Single" types will onInputChanged() to be called for input changes and the normal redstone power output methods + * to be called for output. If this value must be changed while the block is alive, it must perform a block update on any + * adjacent RedNet wires. + * + * @param world The world this block is in. + * @param x This block's X coordinate. + * @param y This block's Y coordinate. + * @param z This block's Z coordinate. + * @param side The side that connection information is required for. + * @return The connection type. + */ + public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side); + + /** + * Returns the output values of this RedNet node. This array must be 16 elements long. Only called if your block is connected in "All" mode. + * + * @param world The world this block is in. + * @param x This block's X coordinate. + * @param y This block's Y coordinate. + * @param z This block's Z coordinate. + * @param side The side the output values are required for. + * @return The output values. + */ + public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side); + + /** + * Returns the output value of this RedNet node for a given subnet. Only called if your block is connected in "All" mode. + * + * @param world The world this block is in. + * @param x This block's X coordinate. + * @param y This block's Y coordinate. + * @param z This block's Z coordinate. + * @param side The side the output value is required for. + * @param subnet The subnet to get the output value for (0-15). + * @return The output value. + */ + public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet); + + /** + * Called when the input values to this block change. Only called if your block is connected in "All" mode. + * Do not issue a network value update from inside this method call; it will be ignored. Issue your updates + * on the next tick. + * + * @param world The world this block is in. + * @param x This block's X coordinate. + * @param y This block's Y coordinate. + * @param z This block's Z coordinate. + * @param side The side the input values are being changed on. + * @param inputValues The new set of input values. This array will be 16 elements long. + */ + public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues); + + /** + * Called when the input value to this block changes. Only called if your block is connected in "Single" mode. + * Do not issue a network value update from inside this method call; it will be ignored. Issue your updates + * on the next tick. + * + * @param world The world this block is in. + * @param x This block's X coordinate. + * @param y This block's Y coordinate. + * @param z This block's Z coordinate. + * @param side The side the input values are being changed on. + * @param inputValue The new input value + */ + public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue); } diff --git a/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetLogicCircuit.java b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetLogicCircuit.java index 0bbbeeb9b..309eacb5a 100755 --- a/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetLogicCircuit.java +++ b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetLogicCircuit.java @@ -2,18 +2,20 @@ package powercrystals.minefactoryreloaded.api.rednet; import net.minecraft.nbt.NBTTagCompound; -public interface IRedNetLogicCircuit -{ - public int getInputCount(); - - public int getOutputCount(); - - public int[] recalculateOutputValues(long worldTime, int[] inputValues); - - public String getUnlocalizedName(); - public String getInputPinLabel(int pin); - public String getOutputPinLabel(int pin); - - public void readFromNBT(NBTTagCompound tag); - public void writeToNBT(NBTTagCompound tag); +public interface IRedNetLogicCircuit { + public int getInputCount(); + + public int getOutputCount(); + + public int[] recalculateOutputValues(long worldTime, int[] inputValues); + + public String getUnlocalizedName(); + + public String getInputPinLabel(int pin); + + public String getOutputPinLabel(int pin); + + public void readFromNBT(NBTTagCompound tag); + + public void writeToNBT(NBTTagCompound tag); } diff --git a/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNetworkContainer.java b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNetworkContainer.java index 5e27b1fe9..ff4b8bdb3 100755 --- a/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNetworkContainer.java +++ b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNetworkContainer.java @@ -3,29 +3,28 @@ package powercrystals.minefactoryreloaded.api.rednet; import net.minecraft.world.World; /** - * * You should not implement this yourself. Instead, use this to look for cables to notify from your IConnectableRedNet as this does not * require a block update. This will be implemented on the cable's Block class. - * */ -public interface IRedNetNetworkContainer -{ - /** - * Tells the network to recalculate all subnets. - * @param world The world this cable is in. - * @param x The x-coordinate of this cable. - * @param x The y-coordinate of this cable. - * @param x The z-coordinate of this cable. - */ - public void updateNetwork(World world, int x, int y, int z); - - /** - * Tells the network to recalculate a specific subnet. - * @param world The world this cable is in. - * @param x The x-coordinate of this cable. - * @param x The y-coordinate of this cable. - * @param x The z-coordinate of this cable. - * @param subnet The subnet to recalculate. - */ - public void updateNetwork(World world, int x, int y, int z, int subnet); +public interface IRedNetNetworkContainer { + /** + * Tells the network to recalculate all subnets. + * + * @param world The world this cable is in. + * @param x The x-coordinate of this cable. + * @param x The y-coordinate of this cable. + * @param x The z-coordinate of this cable. + */ + public void updateNetwork(World world, int x, int y, int z); + + /** + * Tells the network to recalculate a specific subnet. + * + * @param world The world this cable is in. + * @param x The x-coordinate of this cable. + * @param x The y-coordinate of this cable. + * @param x The z-coordinate of this cable. + * @param subnet The subnet to recalculate. + */ + public void updateNetwork(World world, int x, int y, int z, int subnet); } diff --git a/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNoConnection.java b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNoConnection.java new file mode 100755 index 000000000..fad68962a --- /dev/null +++ b/apis/powercrystals/minefactoryreloaded/api/rednet/IRedNetNoConnection.java @@ -0,0 +1,5 @@ +package powercrystals.minefactoryreloaded.api.rednet; + +public interface IRedNetNoConnection { + +} diff --git a/apis/powercrystals/minefactoryreloaded/api/rednet/RedNetConnectionType.java b/apis/powercrystals/minefactoryreloaded/api/rednet/RedNetConnectionType.java index 58b08a461..f0e72419e 100755 --- a/apis/powercrystals/minefactoryreloaded/api/rednet/RedNetConnectionType.java +++ b/apis/powercrystals/minefactoryreloaded/api/rednet/RedNetConnectionType.java @@ -1,10 +1,9 @@ package powercrystals.minefactoryreloaded.api.rednet; -public enum RedNetConnectionType -{ - None, - CableSingle, - PlateSingle, - CableAll, - PlateAll +public enum RedNetConnectionType { + None, + CableSingle, + PlateSingle, + CableAll, + PlateAll }