| package mekanism.generators.common; |
| |
| import mekanism.api.MekanismConfig.generators; |
| import mekanism.common.Mekanism; |
| import mekanism.common.base.IGuiProvider; |
| import mekanism.common.inventory.container.ContainerFilter; |
| import mekanism.common.inventory.container.ContainerNull; |
| import mekanism.common.tile.TileEntityContainerBlock; |
| import mekanism.generators.common.inventory.container.ContainerBioGenerator; |
| import mekanism.generators.common.inventory.container.ContainerGasGenerator; |
| import mekanism.generators.common.inventory.container.ContainerHeatGenerator; |
| import mekanism.generators.common.inventory.container.ContainerNeutronCapture; |
| import mekanism.generators.common.inventory.container.ContainerReactorController; |
| import mekanism.generators.common.inventory.container.ContainerSolarGenerator; |
| import mekanism.generators.common.inventory.container.ContainerWindGenerator; |
| import mekanism.generators.common.tile.TileEntityAdvancedSolarGenerator; |
| import mekanism.generators.common.tile.TileEntityBioGenerator; |
| import mekanism.generators.common.tile.TileEntityGasGenerator; |
| import mekanism.generators.common.tile.TileEntityHeatGenerator; |
| import mekanism.generators.common.tile.TileEntitySolarGenerator; |
| import mekanism.generators.common.tile.TileEntityWindGenerator; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorController; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorFrame; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorGlass; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorLaserFocusMatrix; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture; |
| import mekanism.generators.common.tile.reactor.TileEntityReactorPort; |
| import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; |
| import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; |
| import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; |
| import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; |
| import mekanism.generators.common.tile.turbine.TileEntityTurbineValve; |
| import mekanism.generators.common.tile.turbine.TileEntityTurbineVent; |
| import net.minecraft.entity.player.EntityPlayer; |
| import net.minecraft.inventory.Container; |
| import net.minecraft.tileentity.TileEntity; |
| import net.minecraft.util.math.BlockPos; |
| import net.minecraft.world.World; |
| import net.minecraftforge.fml.common.registry.GameRegistry; |
| |
| /** |
| * Common proxy for the Mekanism Generators module. |
| * @author AidanBrady |
| * |
| */ |
| public class GeneratorsCommonProxy implements IGuiProvider |
| { |
| /** |
| * Register normal tile entities |
| */ |
| public void registerRegularTileEntities() |
| { |
| GameRegistry.registerTileEntity(TileEntityReactorFrame.class, "ReactorFrame"); |
| GameRegistry.registerTileEntity(TileEntityReactorGlass.class, "ReactorGlass"); |
| GameRegistry.registerTileEntity(TileEntityReactorLaserFocusMatrix.class, "ReactorLaserFocus"); |
| GameRegistry.registerTileEntity(TileEntityReactorNeutronCapture.class, "ReactorNeutronCapture"); |
| GameRegistry.registerTileEntity(TileEntityReactorPort.class, "ReactorPort"); |
| GameRegistry.registerTileEntity(TileEntityReactorLogicAdapter.class, "ReactorLogicAdapter"); |
| GameRegistry.registerTileEntity(TileEntityRotationalComplex.class, "RotationalComplex"); |
| GameRegistry.registerTileEntity(TileEntityElectromagneticCoil.class, "ElectromagneticCoil"); |
| } |
| |
| /** |
| * Register tile entities that have special models. Overwritten in client to register TESRs. |
| */ |
| public void registerSpecialTileEntities() |
| { |
| GameRegistry.registerTileEntity(TileEntityAdvancedSolarGenerator.class, "AdvancedSolarGenerator"); |
| GameRegistry.registerTileEntity(TileEntitySolarGenerator.class, "SolarGenerator"); |
| GameRegistry.registerTileEntity(TileEntityBioGenerator.class, "BioGenerator"); |
| GameRegistry.registerTileEntity(TileEntityHeatGenerator.class, "HeatGenerator"); |
| GameRegistry.registerTileEntity(TileEntityGasGenerator.class, "GasGenerator"); |
| GameRegistry.registerTileEntity(TileEntityWindGenerator.class, "WindTurbine"); |
| GameRegistry.registerTileEntity(TileEntityReactorController.class, "ReactorController"); |
| GameRegistry.registerTileEntity(TileEntityTurbineRotor.class, "TurbineRod"); |
| GameRegistry.registerTileEntity(TileEntityTurbineCasing.class, "TurbineCasing"); |
| GameRegistry.registerTileEntity(TileEntityTurbineValve.class, "TurbineValve"); |
| GameRegistry.registerTileEntity(TileEntityTurbineVent.class, "TurbineVent"); |
| } |
| |
| /** |
| * Register and load client-only item render information. |
| */ |
| public void registerItemRenders() {} |
| |
| /** |
| * Register and load client-only block render information. |
| */ |
| public void registerBlockRenders() {} |
| |
| public void preInit() {} |
| |
| /** |
| * Set and load the mod's common configuration properties. |
| */ |
| public void loadConfiguration() |
| { |
| generators.advancedSolarGeneration = Mekanism.configuration.get("generation", "AdvancedSolarGeneration", 300D).getDouble(); |
| generators.bioGeneration = Mekanism.configuration.get("generation", "BioGeneration", 350D).getDouble(); |
| generators.heatGeneration = Mekanism.configuration.get("generation", "HeatGeneration", 150D).getDouble(); |
| generators.heatGenerationLava = Mekanism.configuration.get("generation", "HeatGenerationLava", 5D).getDouble(); |
| generators.heatGenerationNether = Mekanism.configuration.get("generation", "HeatGenerationNether", 100D).getDouble(); |
| generators.solarGeneration = Mekanism.configuration.get("generation", "SolarGeneration", 50D).getDouble(); |
| |
| loadWindConfiguration(); |
| |
| generators.turbineBladesPerCoil = Mekanism.configuration.get("generation", "TurbineBladesPerCoil", 4).getInt(); |
| generators.turbineVentGasFlow = Mekanism.configuration.get("generation", "TurbineVentGasFlow", 16000D).getDouble(); |
| generators.turbineDisperserGasFlow = Mekanism.configuration.get("generation", "TurbineDisperserGasFlow", 640D).getDouble(); |
| |
| if(Mekanism.configuration.hasChanged()) |
| { |
| Mekanism.configuration.save(); |
| } |
| } |
| |
| private void loadWindConfiguration() |
| { |
| generators.windGenerationMin = Mekanism.configuration.get("generation", "WindGenerationMin", 60D).getDouble(); |
| generators.windGenerationMax = Mekanism.configuration.get("generation", "WindGenerationMax", 480D).getDouble(); |
| |
| //Ensure max > min to avoid division by zero later |
| final int minY = Mekanism.configuration.get("generation", "WindGenerationMinY", 24).getInt(); |
| final int maxY = Mekanism.configuration.get("generation", "WindGenerationMaxY", 255).getInt(); |
| |
| generators.windGenerationMinY = minY; |
| generators.windGenerationMaxY = Math.max(minY + 1, maxY); |
| } |
| |
| @Override |
| public Object getClientGui(int ID, EntityPlayer player, World world, BlockPos pos) |
| { |
| return null; |
| } |
| |
| @Override |
| public Container getServerGui(int ID, EntityPlayer player, World world, BlockPos pos) |
| { |
| TileEntity tileEntity = world.getTileEntity(pos); |
| |
| switch(ID) |
| { |
| case 0: |
| return new ContainerHeatGenerator(player.inventory, (TileEntityHeatGenerator)tileEntity); |
| case 1: |
| return new ContainerSolarGenerator(player.inventory, (TileEntitySolarGenerator)tileEntity); |
| case 3: |
| return new ContainerGasGenerator(player.inventory, (TileEntityGasGenerator)tileEntity); |
| case 4: |
| return new ContainerBioGenerator(player.inventory, (TileEntityBioGenerator)tileEntity); |
| case 5: |
| return new ContainerWindGenerator(player.inventory, (TileEntityWindGenerator)tileEntity); |
| case 6: |
| return new ContainerFilter(player.inventory, (TileEntityTurbineCasing)tileEntity); |
| case 7: |
| return new ContainerNull(player, (TileEntityTurbineCasing)tileEntity); |
| case 10: |
| return new ContainerReactorController(player.inventory, (TileEntityReactorController)tileEntity); |
| case 11: |
| case 12: |
| case 13: |
| return new ContainerNull(player, (TileEntityContainerBlock)tileEntity); |
| case 14: |
| return new ContainerNeutronCapture(player.inventory, (TileEntityReactorNeutronCapture)tileEntity); |
| case 15: |
| return new ContainerNull(player, (TileEntityContainerBlock)tileEntity); |
| } |
| |
| return null; |
| } |
| } |