2012-11-05 14:29:04 -05:00
package mekanism.common ;
2012-08-15 16:41:41 -04:00
2014-01-05 02:24:06 -05:00
import java.io.File ;
2014-01-13 16:37:15 -05:00
import mekanism.api.MekanismAPI ;
2014-08-01 00:58:12 +01:00
import mekanism.api.MekanismConfig.general ;
import mekanism.api.MekanismConfig.usage ;
2014-09-14 05:20:16 +01:00
import mekanism.api.Pos3D ;
2014-07-31 20:55:01 -04:00
import mekanism.api.util.EnergyUtils.EnergyType ;
2014-08-09 22:20:49 -04:00
import mekanism.common.base.IUpgradeTile ;
2014-09-03 18:25:06 +01:00
import mekanism.common.block.BlockMachine.MachineType ;
2014-01-07 20:55:50 -05:00
import mekanism.common.entity.EntityRobit ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerAdvancedElectricMachine ;
2014-01-13 00:06:13 -05:00
import mekanism.common.inventory.container.ContainerChanceMachine ;
2014-04-12 02:51:02 +01:00
import mekanism.common.inventory.container.ContainerChemicalCrystallizer ;
2014-01-31 14:59:12 -05:00
import mekanism.common.inventory.container.ContainerChemicalDissolutionChamber ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerChemicalInfuser ;
import mekanism.common.inventory.container.ContainerChemicalOxidizer ;
2014-01-31 14:59:12 -05:00
import mekanism.common.inventory.container.ContainerChemicalWasher ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerDictionary ;
import mekanism.common.inventory.container.ContainerDigitalMiner ;
import mekanism.common.inventory.container.ContainerDynamicTank ;
import mekanism.common.inventory.container.ContainerElectricMachine ;
import mekanism.common.inventory.container.ContainerElectricPump ;
import mekanism.common.inventory.container.ContainerElectrolyticSeparator ;
import mekanism.common.inventory.container.ContainerEnergyCube ;
import mekanism.common.inventory.container.ContainerFactory ;
import mekanism.common.inventory.container.ContainerFilter ;
2014-06-19 12:42:59 +02:00
import mekanism.common.inventory.container.ContainerFluidicPlenisher ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerGasTank ;
2014-09-15 02:11:55 +01:00
import mekanism.common.inventory.container.ContainerLaserAmplifier ;
import mekanism.common.inventory.container.ContainerLaserTractorBeam ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerMetallurgicInfuser ;
import mekanism.common.inventory.container.ContainerNull ;
2014-04-06 01:16:09 +01:00
import mekanism.common.inventory.container.ContainerPRC ;
2014-06-18 21:05:32 +02:00
import mekanism.common.inventory.container.ContainerPortableTank ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerRobitCrafting ;
import mekanism.common.inventory.container.ContainerRobitInventory ;
import mekanism.common.inventory.container.ContainerRobitMain ;
import mekanism.common.inventory.container.ContainerRobitRepair ;
import mekanism.common.inventory.container.ContainerRobitSmelting ;
import mekanism.common.inventory.container.ContainerRotaryCondensentrator ;
2014-01-11 23:35:39 +00:00
import mekanism.common.inventory.container.ContainerSalinationController ;
2014-03-15 20:05:26 -04:00
import mekanism.common.inventory.container.ContainerSeismicVibrator ;
2014-01-05 02:24:06 -05:00
import mekanism.common.inventory.container.ContainerTeleporter ;
2014-07-21 18:07:15 -04:00
import mekanism.common.inventory.container.ContainerUpgradeManagement ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityAdvancedElectricMachine ;
import mekanism.common.tile.TileEntityAdvancedFactory ;
2014-09-03 01:51:00 +01:00
import mekanism.common.tile.TileEntityAmbientAccumulator ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityBin ;
2014-01-13 00:06:13 -05:00
import mekanism.common.tile.TileEntityChanceMachine ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityChargepad ;
2014-04-12 02:51:02 +01:00
import mekanism.common.tile.TileEntityChemicalCrystallizer ;
2014-01-26 17:12:03 -05:00
import mekanism.common.tile.TileEntityChemicalDissolutionChamber ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityChemicalInfuser ;
import mekanism.common.tile.TileEntityChemicalInjectionChamber ;
import mekanism.common.tile.TileEntityChemicalOxidizer ;
2014-01-26 17:12:03 -05:00
import mekanism.common.tile.TileEntityChemicalWasher ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityCombiner ;
import mekanism.common.tile.TileEntityContainerBlock ;
import mekanism.common.tile.TileEntityCrusher ;
import mekanism.common.tile.TileEntityDigitalMiner ;
import mekanism.common.tile.TileEntityDynamicTank ;
import mekanism.common.tile.TileEntityDynamicValve ;
import mekanism.common.tile.TileEntityElectricChest ;
import mekanism.common.tile.TileEntityElectricMachine ;
import mekanism.common.tile.TileEntityElectricPump ;
import mekanism.common.tile.TileEntityElectrolyticSeparator ;
import mekanism.common.tile.TileEntityEliteFactory ;
import mekanism.common.tile.TileEntityEnergizedSmelter ;
import mekanism.common.tile.TileEntityEnergyCube ;
import mekanism.common.tile.TileEntityEnrichmentChamber ;
import mekanism.common.tile.TileEntityFactory ;
2014-06-19 12:42:59 +02:00
import mekanism.common.tile.TileEntityFluidicPlenisher ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityGasTank ;
2014-07-15 00:13:20 +01:00
import mekanism.common.tile.TileEntityLaser ;
2014-07-26 16:45:48 -04:00
import mekanism.common.tile.TileEntityLaserAmplifier ;
2014-09-15 02:11:55 +01:00
import mekanism.common.tile.TileEntityLaserTractorBeam ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityLogisticalSorter ;
import mekanism.common.tile.TileEntityMetallurgicInfuser ;
2014-08-22 16:17:16 -04:00
import mekanism.common.tile.TileEntityMultiblock ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityObsidianTNT ;
import mekanism.common.tile.TileEntityOsmiumCompressor ;
2014-04-06 01:16:09 +01:00
import mekanism.common.tile.TileEntityPRC ;
2014-06-18 03:01:23 +02:00
import mekanism.common.tile.TileEntityPortableTank ;
2014-01-12 23:55:42 -05:00
import mekanism.common.tile.TileEntityPrecisionSawmill ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityPurificationChamber ;
import mekanism.common.tile.TileEntityRotaryCondensentrator ;
2014-01-11 23:35:39 +00:00
import mekanism.common.tile.TileEntitySalinationController ;
2014-03-15 20:05:26 -04:00
import mekanism.common.tile.TileEntitySeismicVibrator ;
2014-01-07 20:55:50 -05:00
import mekanism.common.tile.TileEntityTeleporter ;
2012-12-20 16:53:39 -05:00
import net.minecraft.entity.player.EntityPlayer ;
2013-11-18 15:33:14 -05:00
import net.minecraft.entity.player.EntityPlayerMP ;
2014-05-29 17:55:47 +01:00
import net.minecraft.init.Blocks ;
2012-12-20 16:53:39 -05:00
import net.minecraft.inventory.Container ;
import net.minecraft.tileentity.TileEntity ;
import net.minecraft.world.World ;
2014-04-20 04:34:19 +01:00
import net.minecraftforge.common.config.Configuration ;
2014-07-22 18:03:34 +01:00
import net.minecraftforge.common.util.ForgeDirection ;
2014-06-03 20:57:59 +02:00
import cpw.mods.fml.common.FMLCommonHandler ;
2014-06-27 03:25:47 +01:00
import cpw.mods.fml.common.network.simpleimpl.MessageContext ;
2014-01-05 02:24:06 -05:00
import cpw.mods.fml.common.registry.GameRegistry ;
2014-01-12 11:46:25 -05:00
import cpw.mods.fml.relauncher.FMLInjectionData ;
2012-08-15 16:41:41 -04:00
/**
2012-11-05 14:29:04 -05:00
* Common proxy for the Mekanism mod.
2012-08-15 16:41:41 -04:00
* @author AidanBrady
*
*/
2012-08-30 19:27:35 -04:00
public class CommonProxy
2012-08-15 16:41:41 -04:00
{
2012-11-21 10:14:35 -05:00
/**
* Register tile entities that have special models. Overwritten in client to register TESRs.
*/
2014-03-07 19:00:25 -06:00
public void registerSpecialTileEntities ()
2013-01-20 20:15:59 -05:00
{
2013-05-23 13:30:12 -04:00
GameRegistry . registerTileEntity ( TileEntityEnrichmentChamber . class , "EnrichmentChamber" );
GameRegistry . registerTileEntity ( TileEntityOsmiumCompressor . class , "OsmiumCompressor" );
GameRegistry . registerTileEntity ( TileEntityCombiner . class , "Combiner" );
GameRegistry . registerTileEntity ( TileEntityCrusher . class , "Crusher" );
GameRegistry . registerTileEntity ( TileEntityFactory . class , "SmeltingFactory" );
GameRegistry . registerTileEntity ( TileEntityAdvancedFactory . class , "AdvancedSmeltingFactory" );
GameRegistry . registerTileEntity ( TileEntityEliteFactory . class , "UltimateSmeltingFactory" );
GameRegistry . registerTileEntity ( TileEntityPurificationChamber . class , "PurificationChamber" );
GameRegistry . registerTileEntity ( TileEntityEnergizedSmelter . class , "EnergizedSmelter" );
2013-04-05 16:26:48 -04:00
GameRegistry . registerTileEntity ( TileEntityMetallurgicInfuser . class , "MetallurgicInfuser" );
2013-11-03 11:38:36 -05:00
GameRegistry . registerTileEntity ( TileEntityGasTank . class , "GasTank" );
2013-11-02 21:07:55 -04:00
GameRegistry . registerTileEntity ( TileEntityEnergyCube . class , "EnergyCube" );
2013-04-05 16:26:48 -04:00
GameRegistry . registerTileEntity ( TileEntityElectricPump . class , "ElectricPump" );
2013-04-12 20:25:21 -04:00
GameRegistry . registerTileEntity ( TileEntityElectricChest . class , "ElectricChest" );
2013-04-28 15:23:08 -04:00
GameRegistry . registerTileEntity ( TileEntityDynamicTank . class , "DynamicTank" );
GameRegistry . registerTileEntity ( TileEntityDynamicValve . class , "DynamicValve" );
2013-05-19 18:43:01 -04:00
GameRegistry . registerTileEntity ( TileEntityChargepad . class , "Chargepad" );
2013-11-01 22:36:06 -04:00
GameRegistry . registerTileEntity ( TileEntityLogisticalSorter . class , "LogisticalSorter" );
2013-11-11 19:27:36 -05:00
GameRegistry . registerTileEntity ( TileEntityBin . class , "Bin" );
2013-11-18 15:33:14 -05:00
GameRegistry . registerTileEntity ( TileEntityDigitalMiner . class , "DigitalMiner" );
2013-11-24 08:27:52 -06:00
GameRegistry . registerTileEntity ( TileEntityObsidianTNT . class , "ObsidianTNT" );
2013-11-27 18:17:44 -05:00
GameRegistry . registerTileEntity ( TileEntityRotaryCondensentrator . class , "RotaryCondensentrator" );
2013-12-08 12:39:26 -05:00
GameRegistry . registerTileEntity ( TileEntityTeleporter . class , "MekanismTeleporter" );
2013-12-31 15:07:09 -05:00
GameRegistry . registerTileEntity ( TileEntityChemicalOxidizer . class , "ChemicalOxidizer" );
2013-12-11 20:46:39 -05:00
GameRegistry . registerTileEntity ( TileEntityChemicalInfuser . class , "ChemicalInfuser" );
2013-12-24 00:23:30 -05:00
GameRegistry . registerTileEntity ( TileEntityChemicalInjectionChamber . class , "ChemicalInjectionChamber" );
2014-01-03 02:09:21 +00:00
GameRegistry . registerTileEntity ( TileEntityElectrolyticSeparator . class , "ElectrolyticSeparator" );
2014-01-11 23:35:39 +00:00
GameRegistry . registerTileEntity ( TileEntitySalinationController . class , "SalinationController" );
2014-01-12 23:55:42 -05:00
GameRegistry . registerTileEntity ( TileEntityPrecisionSawmill . class , "PrecisionSawmill" );
2014-01-26 17:12:03 -05:00
GameRegistry . registerTileEntity ( TileEntityChemicalDissolutionChamber . class , "ChemicalDissolutionChamber" );
GameRegistry . registerTileEntity ( TileEntityChemicalWasher . class , "ChemicalWasher" );
2014-04-12 02:51:02 +01:00
GameRegistry . registerTileEntity ( TileEntityChemicalCrystallizer . class , "ChemicalCrystallizer" );
2014-06-16 01:50:40 +02:00
GameRegistry . registerTileEntity ( TileEntitySeismicVibrator . class , "SeismicVibrator" );
2014-04-10 03:05:28 +01:00
GameRegistry . registerTileEntity ( TileEntityPRC . class , "PressurizedReactionChamber" );
2014-06-18 03:01:23 +02:00
GameRegistry . registerTileEntity ( TileEntityPortableTank . class , "PortableTank" );
2014-06-19 12:42:59 +02:00
GameRegistry . registerTileEntity ( TileEntityFluidicPlenisher . class , "FluidicPlenisher" );
2014-07-15 00:13:20 +01:00
GameRegistry . registerTileEntity ( TileEntityLaser . class , "Laser" );
2014-07-26 16:45:48 -04:00
GameRegistry . registerTileEntity ( TileEntityLaserAmplifier . class , "LaserAmplifier" );
2014-09-15 02:11:55 +01:00
GameRegistry . registerTileEntity ( TileEntityLaserTractorBeam . class , "LaserTractorBeam" );
GameRegistry . registerTileEntity ( TileEntityAmbientAccumulator . class , "AmbientAccumulator" );
2013-01-20 20:15:59 -05:00
}
2014-03-07 19:00:25 -06:00
2013-04-12 21:32:43 -04:00
/**
* Handles an ELECTRIC_CHEST_CLIENT_OPEN packet via the proxy, not handled on the server-side.
* @param entityplayer - player the packet was sent from
* @param id - the electric chest gui ID to open
* @param windowId - the container-specific window ID
* @param isBlock - if the chest is a block
* @param x - x coordinate
* @param y - y coordinate
* @param z - z coordinate
*/
public void openElectricChest ( EntityPlayer entityplayer , int id , int windowId , boolean isBlock , int x , int y , int z ) {}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
/**
* Register and load client-only render information.
*/
2012-09-08 12:48:24 -04:00
public void registerRenderInformation () {}
2014-03-07 19:00:25 -06:00
2012-09-03 12:11:25 -04:00
/**
* Gets the armor index number from ClientProxy.
2012-12-30 16:34:45 -05:00
* @param string - armor indicator
2012-09-03 12:11:25 -04:00
* @return armor index number
*/
2014-03-07 19:00:25 -06:00
public int getArmorIndex ( String string )
2012-08-30 19:27:35 -04:00
{
return 0 ;
}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
/**
2012-09-08 12:48:24 -04:00
* Set and load the mod's common configuration properties.
2012-08-15 16:41:41 -04:00
*/
2012-09-08 12:48:24 -04:00
public void loadConfiguration ()
2012-08-20 20:34:12 -04:00
{
2014-08-01 00:58:12 +01:00
general . updateNotifications = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "UpdateNotifications" , true ). getBoolean ( true );
general . controlCircuitOreDict = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "ControlCircuitOreDict" , true ). getBoolean ( true );
general . logPackets = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "LogPackets" , false ). getBoolean ( false );
general . dynamicTankEasterEgg = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "DynamicTankEasterEgg" , false ). getBoolean ( false );
general . voiceServerEnabled = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "VoiceServerEnabled" , true ). getBoolean ( true );
general . cardboardSpawners = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "AllowSpawnerBoxPickup" , true ). getBoolean ( true );
general . enableWorldRegeneration = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "EnableWorldRegeneration" , false ). getBoolean ( false );
general . creativeOverrideElectricChest = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "CreativeOverrideElectricChest" , true ). getBoolean ( true );
general . spawnBabySkeletons = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "SpawnBabySkeletons" , true ). getBoolean ( true );
general . obsidianTNTDelay = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "ObsidianTNTDelay" , 100 ). getInt ();
general . obsidianTNTBlastRadius = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "ObsidianTNTBlastRadius" , 12 ). getInt ();
general . UPDATE_DELAY = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "ClientUpdateDelay" , 10 ). getInt ();
general . osmiumPerChunk = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "OsmiumPerChunk" , 12 ). getInt ();
general . copperPerChunk = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "CopperPerChunk" , 16 ). getInt ();
general . tinPerChunk = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "TinPerChunk" , 14 ). getInt ();
general . saltPerChunk = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "SaltPerChunk" , 2 ). getInt ();
general . userWorldGenVersion = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "WorldRegenVersion" , 0 ). getInt ();
general . FROM_IC2 = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "JoulesToEU" , 10D ). getDouble ( 10D );
general . TO_IC2 = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "EUToJoules" , . 1D ). getDouble (. 1D );
general . FROM_BC = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "JoulesToMJ" , 25D ). getDouble ( 25D );
general . TO_BC = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "MJToJoules" , . 04D ). getDouble (. 04D );
2014-09-27 14:40:25 -04:00
general . FROM_H2 = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "HydrogenEnergyDensity" , 200D , "Determines Electrolytic Separator usage" ). getDouble ( 200D );
2014-08-01 00:58:12 +01:00
general . ENERGY_PER_REDSTONE = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "EnergyPerRedstone" , 10000D ). getDouble ( 10000D );
general . VOICE_PORT = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "VoicePort" , 36123 , null , 1 , 65535 ). getInt ();
2013-12-27 01:12:46 +00:00
//If this is less than 1, upgrades make machines worse. If less than 0, I don't even know.
2014-08-01 00:58:12 +01:00
general . maxUpgradeMultiplier = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "UpgradeModifier" , 10 , null , 1 , Integer . MAX_VALUE ). getInt ();
2014-09-27 15:07:55 -04:00
general . minerSilkMultiplier = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "MinerSilkMultiplier" , 6 ). getDouble ();
2014-06-16 02:09:31 +02:00
2014-10-02 12:47:22 -04:00
general . blacklistBC = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "BlacklistBuildCraftPower" , false ). getBoolean ();
general . blacklistIC2 = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "BlacklistIC2Power" , false ). getBoolean ();
general . blacklistRF = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "BlacklistRFPower" , false ). getBoolean ();
2014-07-07 21:17:15 +01:00
String s = Mekanism . configuration . get ( Configuration . CATEGORY_GENERAL , "EnergyType" , "J" , null , new String [] { "J" , "RF" , "MJ" , "EU" }). getString ();
2014-06-16 02:09:31 +02:00
if ( s != null )
{
if ( s . trim (). equalsIgnoreCase ( "j" ) || s . trim (). equalsIgnoreCase ( "joules" ))
{
2014-08-01 00:58:12 +01:00
general . activeType = EnergyType . J ;
2014-06-16 02:09:31 +02:00
}
else if ( s . trim (). equalsIgnoreCase ( "rf" ) || s . trim (). equalsIgnoreCase ( "te" ) || s . trim (). equalsIgnoreCase ( "thermal expansion" ))
{
2014-08-01 00:58:12 +01:00
general . activeType = EnergyType . RF ;
2014-06-16 02:09:31 +02:00
}
else if ( s . trim (). equalsIgnoreCase ( "eu" ) || s . trim (). equalsIgnoreCase ( "ic2" ))
{
2014-08-01 00:58:12 +01:00
general . activeType = EnergyType . EU ;
2014-06-16 02:09:31 +02:00
}
else if ( s . trim (). equalsIgnoreCase ( "mj" ) || s . trim (). equalsIgnoreCase ( "bc" ) || s . trim (). equalsIgnoreCase ( "buildcraft" ))
{
2014-08-01 00:58:12 +01:00
general . activeType = EnergyType . MJ ;
2014-06-16 02:09:31 +02:00
}
}
2014-03-07 19:00:25 -06:00
2014-08-01 00:58:12 +01:00
general . TO_TE = general . TO_BC * 10 ;
general . FROM_TE = general . FROM_BC / 10 ;
2014-03-07 19:00:25 -06:00
2014-09-15 03:49:47 +01:00
general . laserRange = Mekanism . configuration . get ( "general" , "LaserRange" , 64 ). getInt ( 64 );
2014-09-14 23:04:09 +01:00
general . laserEnergyNeededPerHardness = Mekanism . configuration . get ( "general" , "LaserDiggingEnergy" , 100000 ). getInt ( 100000 );
2014-08-04 20:42:04 +01:00
2014-08-01 00:58:12 +01:00
usage . enrichmentChamberUsage = Mekanism . configuration . get ( "usage" , "EnrichmentChamberUsage" , 50D ). getDouble ( 50D );
usage . osmiumCompressorUsage = Mekanism . configuration . get ( "usage" , "OsmiumCompressorUsage" , 100D ). getDouble ( 100D );
usage . combinerUsage = Mekanism . configuration . get ( "usage" , "CombinerUsage" , 50D ). getDouble ( 50D );
usage . crusherUsage = Mekanism . configuration . get ( "usage" , "CrusherUsage" , 50D ). getDouble ( 50D );
usage . factoryUsage = Mekanism . configuration . get ( "usage" , "FactoryUsage" , 50D ). getDouble ( 50D );
usage . metallurgicInfuserUsage = Mekanism . configuration . get ( "usage" , "MetallurgicInfuserUsage" , 50D ). getDouble ( 50D );
usage . purificationChamberUsage = Mekanism . configuration . get ( "usage" , "PurificationChamberUsage" , 200D ). getDouble ( 200D );
usage . energizedSmelterUsage = Mekanism . configuration . get ( "usage" , "EnergizedSmelterUsage" , 50D ). getDouble ( 50D );
usage . digitalMinerUsage = Mekanism . configuration . get ( "usage" , "DigitalMinerUsage" , 100D ). getDouble ( 100D );
usage . electricPumpUsage = Mekanism . configuration . get ( "usage" , "ElectricPumpUsage" , 100D ). getDouble ( 100D );
usage . rotaryCondensentratorUsage = Mekanism . configuration . get ( "usage" , "RotaryCondensentratorUsage" , 50D ). getDouble ( 50D );
usage . oxidationChamberUsage = Mekanism . configuration . get ( "usage" , "OxidationChamberUsage" , 200D ). getDouble ( 200D );
usage . chemicalInfuserUsage = Mekanism . configuration . get ( "usage" , "ChemicalInfuserUsage" , 200D ). getDouble ( 200D );
usage . chemicalInjectionChamberUsage = Mekanism . configuration . get ( "usage" , "ChemicalInjectionChamberUsage" , 400D ). getDouble ( 400D );
usage . precisionSawmillUsage = Mekanism . configuration . get ( "usage" , "PrecisionSawmillUsage" , 50D ). getDouble ( 50D );
usage . chemicalDissolutionChamberUsage = Mekanism . configuration . get ( "usage" , "ChemicalDissolutionChamberUsage" , 400D ). getDouble ( 400D );
usage . chemicalWasherUsage = Mekanism . configuration . get ( "usage" , "ChemicalWasherUsage" , 200D ). getDouble ( 200D );
usage . chemicalCrystallizerUsage = Mekanism . configuration . get ( "usage" , "ChemicalCrystallizerUsage" , 400D ). getDouble ( 400D );
usage . seismicVibratorUsage = Mekanism . configuration . get ( "usage" , "SeismicVibratorUsage" , 50D ). getDouble ( 50D );
usage . pressurizedReactionBaseUsage = Mekanism . configuration . get ( "usage" , "PressurizedReactionBaseUsage" , 5D ). getDouble ( 5D );
usage . fluidicPlenisherUsage = Mekanism . configuration . get ( "usage" , "FluidicPlenisherUsage" , 100D ). getDouble ( 100D );
2014-08-04 20:42:04 +01:00
usage . laserUsage = Mekanism . configuration . get ( "usage" , "LaserUsage" , 5000D ). getDouble ( 5000D );
2014-09-27 14:40:25 -04:00
usage . salinationPlantWaterUsage = Mekanism . configuration . get ( "usage" , "SalinationPlantSpeed" , 40 . 0 , "Millibuckets of water turned into brine by the plant per tick" , 1 . 0 , 9000 . 0 ). getDouble ();
2014-07-07 21:17:15 +01:00
if ( Mekanism . configuration . hasChanged ())
2014-07-09 22:06:36 -04:00
{
2014-07-07 21:17:15 +01:00
Mekanism . configuration . save ();
2014-07-09 22:06:36 -04:00
}
2012-08-20 20:34:12 -04:00
}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
/**
2013-04-13 10:33:37 -04:00
* Set up and load the utilities this mod uses.
2012-08-15 16:41:41 -04:00
*/
2014-06-03 20:57:59 +02:00
public void loadUtilities ()
{
2014-07-09 22:06:36 -04:00
FMLCommonHandler . instance (). bus (). register ( Mekanism . worldTickHandler );
2014-06-03 20:57:59 +02:00
}
2014-03-07 19:00:25 -06:00
/**
* Whether or not the game is paused.
2013-05-09 08:56:36 -04:00
*/
2014-03-07 19:00:25 -06:00
public boolean isPaused ()
2013-04-28 15:23:08 -04:00
{
return false ;
}
2014-03-07 19:00:25 -06:00
2013-05-14 11:34:26 -04:00
/**
2014-08-22 18:34:19 -04:00
* Does the multiblock creation animation, starting from the rendering block.
2013-05-14 11:34:26 -04:00
*/
2014-08-22 18:34:19 -04:00
public void doAnimation ( TileEntityMultiblock <?> tileEntity ) {}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
/**
2012-11-15 15:04:12 -05:00
* Get the actual interface for a GUI. Client-only.
2012-08-15 16:41:41 -04:00
* @param ID - gui ID
* @param player - player that opened the GUI
* @param world - world the GUI was opened in
* @param x - gui's x position
* @param y - gui's y position
* @param z - gui's z position
2012-11-15 15:04:12 -05:00
* @return the GuiScreen of the GUI
2012-08-15 16:41:41 -04:00
*/
2014-03-07 19:00:25 -06:00
public Object getClientGui ( int ID , EntityPlayer player , World world , int x , int y , int z )
2012-08-30 19:27:35 -04:00
{
return null ;
}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
/**
2012-11-15 15:04:12 -05:00
* Get the container for a GUI. Common.
2012-08-15 16:41:41 -04:00
* @param ID - gui ID
* @param player - player that opened the GUI
* @param world - world the GUI was opened in
* @param x - gui's x position
* @param y - gui's y position
* @param z - gui's z position
2012-11-15 15:04:12 -05:00
* @return the Container of the GUI
2012-08-15 16:41:41 -04:00
*/
2014-03-07 19:00:25 -06:00
public Container getServerGui ( int ID , EntityPlayer player , World world , int x , int y , int z )
2012-08-15 16:41:41 -04:00
{
2014-04-20 04:34:19 +01:00
TileEntity tileEntity = world . getTileEntity ( x , y , z );
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
switch ( ID )
{
2013-12-09 20:52:49 -05:00
case 0 :
return new ContainerDictionary ( player . inventory );
2013-11-18 15:33:14 -05:00
case 2 :
2013-11-19 18:16:26 -05:00
return new ContainerDigitalMiner ( player . inventory , ( TileEntityDigitalMiner ) tileEntity );
2012-09-25 15:15:47 -04:00
case 3 :
2012-11-15 15:04:12 -05:00
return new ContainerElectricMachine ( player . inventory , ( TileEntityElectricMachine ) tileEntity );
2012-09-25 15:15:47 -04:00
case 4 :
2012-11-15 15:04:12 -05:00
return new ContainerAdvancedElectricMachine ( player . inventory , ( TileEntityAdvancedElectricMachine ) tileEntity );
2012-09-25 15:15:47 -04:00
case 5 :
2012-11-15 15:04:12 -05:00
return new ContainerAdvancedElectricMachine ( player . inventory , ( TileEntityAdvancedElectricMachine ) tileEntity );
2012-09-25 15:15:47 -04:00
case 6 :
2012-11-15 15:04:12 -05:00
return new ContainerElectricMachine ( player . inventory , ( TileEntityElectricMachine ) tileEntity );
2012-09-25 15:15:47 -04:00
case 7 :
2013-11-27 23:42:54 -05:00
return new ContainerRotaryCondensentrator ( player . inventory , ( TileEntityRotaryCondensentrator ) tileEntity );
2012-10-02 14:39:40 -04:00
case 8 :
2012-11-28 10:33:34 -05:00
return new ContainerEnergyCube ( player . inventory , ( TileEntityEnergyCube ) tileEntity );
2013-10-30 15:22:43 -04:00
case 9 :
return new ContainerNull ( player , ( TileEntityContainerBlock ) tileEntity );
2012-11-15 15:04:12 -05:00
case 10 :
2012-11-21 10:14:35 -05:00
return new ContainerGasTank ( player . inventory , ( TileEntityGasTank ) tileEntity );
2012-12-19 15:23:55 -05:00
case 11 :
2013-03-20 13:58:36 -04:00
return new ContainerFactory ( player . inventory , ( TileEntityFactory ) tileEntity );
2012-12-20 16:53:39 -05:00
case 12 :
return new ContainerMetallurgicInfuser ( player . inventory , ( TileEntityMetallurgicInfuser ) tileEntity );
2013-01-20 20:15:59 -05:00
case 13 :
return new ContainerTeleporter ( player . inventory , ( TileEntityTeleporter ) tileEntity );
2013-01-23 15:42:45 -05:00
case 15 :
return new ContainerAdvancedElectricMachine ( player . inventory , ( TileEntityAdvancedElectricMachine ) tileEntity );
2013-03-20 16:28:45 -04:00
case 16 :
return new ContainerElectricMachine ( player . inventory , ( TileEntityElectricMachine ) tileEntity );
2013-04-03 15:37:26 -04:00
case 17 :
return new ContainerElectricPump ( player . inventory , ( TileEntityElectricPump ) tileEntity );
2013-04-28 15:23:08 -04:00
case 18 :
return new ContainerDynamicTank ( player . inventory , ( TileEntityDynamicTank ) tileEntity );
2013-05-19 18:43:01 -04:00
case 21 :
EntityRobit robit = ( EntityRobit ) world . getEntityByID ( x );
2014-03-07 19:00:25 -06:00
2013-05-19 18:43:01 -04:00
if ( robit != null )
{
return new ContainerRobitMain ( player . inventory , robit );
}
case 22 :
return new ContainerRobitCrafting ( player . inventory , world );
case 23 :
EntityRobit robit1 = ( EntityRobit ) world . getEntityByID ( x );
2014-03-07 19:00:25 -06:00
2013-05-19 18:43:01 -04:00
if ( robit1 != null )
{
return new ContainerRobitInventory ( player . inventory , robit1 );
}
2013-05-20 13:51:18 -04:00
case 24 :
EntityRobit robit2 = ( EntityRobit ) world . getEntityByID ( x );
2014-03-07 19:00:25 -06:00
2013-05-20 13:51:18 -04:00
if ( robit2 != null )
{
return new ContainerRobitSmelting ( player . inventory , robit2 );
}
2013-05-20 15:06:10 -04:00
case 25 :
return new ContainerRobitRepair ( player . inventory , world );
2013-10-25 00:23:38 -04:00
case 26 :
2013-10-26 00:02:57 -04:00
return new ContainerNull ( player , ( TileEntityContainerBlock ) tileEntity );
case 27 :
2013-11-20 15:15:02 -05:00
return new ContainerFilter ( player . inventory , ( TileEntityContainerBlock ) tileEntity );
2013-10-26 00:02:57 -04:00
case 28 :
2013-11-20 15:15:02 -05:00
return new ContainerFilter ( player . inventory , ( TileEntityContainerBlock ) tileEntity );
2013-12-11 20:24:37 -05:00
case 29 :
2013-12-31 15:07:09 -05:00
return new ContainerChemicalOxidizer ( player . inventory , ( TileEntityChemicalOxidizer ) tileEntity );
2013-12-11 20:24:37 -05:00
case 30 :
return new ContainerChemicalInfuser ( player . inventory , ( TileEntityChemicalInfuser ) tileEntity );
2013-12-24 00:23:30 -05:00
case 31 :
return new ContainerAdvancedElectricMachine ( player . inventory , ( TileEntityAdvancedElectricMachine ) tileEntity );
2014-01-03 02:09:21 +00:00
case 32 :
return new ContainerElectrolyticSeparator ( player . inventory , ( TileEntityElectrolyticSeparator ) tileEntity );
2014-01-11 23:35:39 +00:00
case 33 :
return new ContainerSalinationController ( player . inventory , ( TileEntitySalinationController ) tileEntity );
2014-01-13 00:06:13 -05:00
case 34 :
return new ContainerChanceMachine ( player . inventory , ( TileEntityChanceMachine ) tileEntity );
2014-01-31 14:59:12 -05:00
case 35 :
return new ContainerChemicalDissolutionChamber ( player . inventory , ( TileEntityChemicalDissolutionChamber ) tileEntity );
case 36 :
return new ContainerChemicalWasher ( player . inventory , ( TileEntityChemicalWasher ) tileEntity );
case 37 :
2014-04-12 02:51:02 +01:00
return new ContainerChemicalCrystallizer ( player . inventory , ( TileEntityChemicalCrystallizer ) tileEntity );
2014-03-15 20:05:26 -04:00
case 39 :
return new ContainerSeismicVibrator ( player . inventory , ( TileEntitySeismicVibrator ) tileEntity );
2014-04-06 01:16:09 +01:00
case 40 :
return new ContainerPRC ( player . inventory , ( TileEntityPRC ) tileEntity );
2014-06-18 21:05:32 +02:00
case 41 :
return new ContainerPortableTank ( player . inventory , ( TileEntityPortableTank ) tileEntity );
2014-06-19 12:42:59 +02:00
case 42 :
return new ContainerFluidicPlenisher ( player . inventory , ( TileEntityFluidicPlenisher ) tileEntity );
2014-07-21 18:07:15 -04:00
case 43 :
return new ContainerUpgradeManagement ( player . inventory , ( IUpgradeTile ) tileEntity );
2014-07-30 22:26:03 +01:00
case 44 :
2014-09-15 02:11:55 +01:00
return new ContainerLaserAmplifier ( player . inventory , ( TileEntityLaserAmplifier ) tileEntity );
2014-08-09 02:08:38 +01:00
case 45 :
2014-09-15 02:11:55 +01:00
return new ContainerLaserTractorBeam ( player . inventory , ( TileEntityLaserTractorBeam ) tileEntity );
2014-09-03 01:51:00 +01:00
case 46 :
2014-09-15 02:11:55 +01:00
case 47 :
2014-08-10 02:16:35 +01:00
return new ContainerNull ( player , ( TileEntityContainerBlock ) tileEntity );
2012-08-15 16:41:41 -04:00
}
2014-03-07 19:00:25 -06:00
2012-08-15 16:41:41 -04:00
return null ;
}
2014-03-07 19:00:25 -06:00
2013-11-24 12:12:42 -06:00
public void preInit () {}
2014-03-07 19:00:25 -06:00
2013-11-18 15:33:14 -05:00
public double getReach ( EntityPlayer player )
{
if ( player instanceof EntityPlayerMP )
{
return (( EntityPlayerMP ) player ). theItemInWorldManager . getBlockReachDistance ();
}
2014-03-07 19:00:25 -06:00
2013-11-18 15:33:14 -05:00
return 0 ;
}
2014-03-07 19:00:25 -06:00
2013-07-20 12:10:14 -04:00
/**
* Gets the Minecraft base directory.
* @return base directory
*/
public File getMinecraftDir ()
{
2014-01-12 11:46:25 -05:00
return ( File ) FMLInjectionData . data () [ 6 ] ;
2013-07-20 12:10:14 -04:00
}
2014-03-07 19:00:25 -06:00
public void onConfigSync ()
2013-12-22 16:49:04 -05:00
{
2014-08-01 00:58:12 +01:00
if ( general . cardboardSpawners )
2014-01-13 16:37:15 -05:00
{
2014-05-29 17:55:47 +01:00
MekanismAPI . removeBoxBlacklist ( Blocks . mob_spawner , 0 );
2014-01-13 16:37:15 -05:00
}
else {
2014-05-29 17:55:47 +01:00
MekanismAPI . addBoxBlacklist ( Blocks . mob_spawner , 0 );
2014-01-13 16:37:15 -05:00
}
2014-09-03 18:25:06 +01:00
MachineType . updateAllUsages ();
2014-03-07 19:00:25 -06:00
2014-06-03 08:46:03 +02:00
Mekanism . logger . info ( "Received config from server." );
2013-12-22 16:49:04 -05:00
}
2014-06-27 03:25:47 +01:00
public EntityPlayer getPlayer ( MessageContext context )
{
return context . getServerHandler (). playerEntity ;
}
2014-07-22 18:03:34 +01:00
2014-09-14 05:20:16 +01:00
public void renderLaser ( World world , Pos3D from , Pos3D to , ForgeDirection direction , double energy ) {}
2012-08-15 16:41:41 -04:00
}