Files
Mekanism-Community-Edition/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java
T

211 lines
12 KiB
Java
Raw Normal View History

2012-11-25 10:45:00 -05:00
package mekanism.generators.common;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.MekanismConfig.generatorsrecipes;
2012-11-25 10:45:00 -05:00
import mekanism.common.Mekanism;
2016-01-25 00:13:42 -05:00
import mekanism.common.base.IGuiProvider;
2016-05-21 13:58:09 -04:00
import mekanism.common.inventory.container.ContainerFilter;
2014-07-28 04:24:56 +01:00
import mekanism.common.inventory.container.ContainerNull;
2015-03-29 12:50:15 -04:00
import mekanism.common.tile.TileEntityContainerBlock;
2014-06-02 23:57:40 +02:00
import mekanism.generators.common.inventory.container.ContainerBioGenerator;
import mekanism.generators.common.inventory.container.ContainerGasGenerator;
2014-09-03 19:00:03 +01:00
import mekanism.generators.common.inventory.container.ContainerHeatGenerator;
2014-07-19 03:23:11 +01:00
import mekanism.generators.common.inventory.container.ContainerNeutronCapture;
import mekanism.generators.common.inventory.container.ContainerReactorController;
2014-06-02 23:57:40 +02:00
import mekanism.generators.common.inventory.container.ContainerSolarGenerator;
import mekanism.generators.common.inventory.container.ContainerWindGenerator;
2014-06-02 23:57:40 +02:00
import mekanism.generators.common.tile.TileEntityAdvancedSolarGenerator;
import mekanism.generators.common.tile.TileEntityBioGenerator;
import mekanism.generators.common.tile.TileEntityGasGenerator;
2014-09-03 19:00:03 +01:00
import mekanism.generators.common.tile.TileEntityHeatGenerator;
2014-06-02 23:57:40 +02:00
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;
2015-03-29 12:50:15 -04:00
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.TileEntitySaturatingCondenser;
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;
2012-12-20 16:53:39 -05:00
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.client.registry.RenderingRegistry;
2014-06-02 23:57:40 +02:00
import cpw.mods.fml.common.registry.GameRegistry;
2012-11-25 10:45:00 -05:00
2022-09-11 19:49:04 +02:00
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
2012-11-25 10:45:00 -05:00
/**
* Common proxy for the Mekanism Generators module.
* @author AidanBrady
*
*/
2016-01-25 00:13:42 -05:00
public class GeneratorsCommonProxy implements IGuiProvider
2012-11-25 10:45:00 -05:00
{
public static int GENERATOR_RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
2022-09-11 19:49:04 +02:00
public static List<Integer> dimid = null;
/**
* 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");
2015-03-29 12:50:15 -04:00
GameRegistry.registerTileEntity(TileEntityReactorLogicAdapter.class, "ReactorLogicAdapter");
GameRegistry.registerTileEntity(TileEntityRotationalComplex.class, "RotationalComplex");
GameRegistry.registerTileEntity(TileEntityElectromagneticCoil.class, "ElectromagneticCoil");
GameRegistry.registerTileEntity(TileEntitySaturatingCondenser.class, "SaturatingCondenser");
}
2012-11-25 10:45:00 -05:00
/**
* Register tile entities that have special models. Overwritten in client to register TESRs.
*/
public void registerSpecialTileEntities()
2012-11-25 10:45:00 -05:00
{
GameRegistry.registerTileEntity(TileEntityAdvancedSolarGenerator.class, "AdvancedSolarGenerator");
2013-11-02 12:00:29 -04:00
GameRegistry.registerTileEntity(TileEntitySolarGenerator.class, "SolarGenerator");
2012-11-25 10:45:00 -05:00
GameRegistry.registerTileEntity(TileEntityBioGenerator.class, "BioGenerator");
2012-12-19 15:23:55 -05:00
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");
2012-11-25 10:45:00 -05:00
}
2012-11-25 10:45:00 -05:00
/**
* Register and load client-only render information.
*/
public void registerRenderInformation() {}
2012-11-25 10:45:00 -05:00
/**
* Set and load the mod's common configuration properties.
*/
public void loadConfiguration()
{
generators.advancedSolarGeneration = Mekanism.configurationgenerators.get("generation", "AdvancedSolarGeneration", 300D).getDouble();
generators.bioGeneration = Mekanism.configurationgenerators.get("generation", "BioGeneration", 350D).getDouble();
2022-11-07 19:49:17 +01:00
generators.ethanolMultiplier = Mekanism.configurationgenerators.get("generation", "EthanolMultiplier", 5D).getDouble();
generators.heatGeneration = Mekanism.configurationgenerators.get("generation", "HeatGeneration", 150D).getDouble();
generators.heatGenerationLava = Mekanism.configurationgenerators.get("generation", "HeatGenerationLava", 5D).getDouble();
generators.heatGenerationNether = Mekanism.configurationgenerators.get("generation", "HeatGenerationNether", 100D).getDouble();
generators.solarGeneration = Mekanism.configurationgenerators.get("generation", "SolarGeneration", 50D).getDouble();
2015-02-10 18:39:15 -05:00
loadWindConfiguration();
loadwinddimension();
generators.turbineBladesPerCoil = Mekanism.configurationgenerators.get("generation", "TurbineBladesPerCoil", 4).getInt();
generators.turbineVentGasFlow = Mekanism.configurationgenerators.get("generation", "TurbineVentGasFlow", 16000D).getDouble();
generators.turbineDisperserGasFlow = Mekanism.configurationgenerators.get("generation", "TurbineDisperserGasFlow", 640D).getDouble();
generators.condenserRate = Mekanism.configurationgenerators.get("generation", "TurbineCondenserFlowRate", 32000).getInt();
generators.enableWindmillWhitelist = Mekanism.configurationgenerators.get("generation", "EnableWindmillWhitelist", true).getBoolean();
generatorsrecipes.enableHeatGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableHeatGenerator", true).getBoolean();
generatorsrecipes.enableSolarGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableSolarGenerator", true).getBoolean();
generatorsrecipes.enableGasGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableGasGenerator", true).getBoolean();
generatorsrecipes.enableBioGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableBioGenerator", true).getBoolean();
generatorsrecipes.enableAdvSolarGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableAdvSolarGenerator", true).getBoolean();
generatorsrecipes.enableWindGenerator = Mekanism.configurationrecipes.get("generationrecipes","enableWindGenerator", true).getBoolean();
generatorsrecipes.enableTurbineRotor = Mekanism.configurationrecipes.get("generationrecipes","enableTurbineRotor", true).getBoolean();
generatorsrecipes.enableRotationalComplex = Mekanism.configurationrecipes.get("generationrecipes","enableRotationalComplex", true).getBoolean();
generatorsrecipes.enableElectromagneticCoil = Mekanism.configurationrecipes.get("generationrecipes","enableElectromagneticCoil", true).getBoolean();
generatorsrecipes.enableTurbineCasing = Mekanism.configurationrecipes.get("generationrecipes","enableTurbineCasing", true).getBoolean();
generatorsrecipes.enableTurbineValve = Mekanism.configurationrecipes.get("generationrecipes","enableTurbineValve", true).getBoolean();
generatorsrecipes.enableTurbineVent = Mekanism.configurationrecipes.get("generationrecipes","enableTurbineVent", true).getBoolean();
generatorsrecipes.enableSaturatingCondenser = Mekanism.configurationrecipes.get("generationrecipes","enableSaturatingCondenser", true).getBoolean();
generatorsrecipes.enableReactorController = Mekanism.configurationrecipes.get("generationrecipes","enableReactorController", true).getBoolean();
generatorsrecipes.enableReactorFrame = Mekanism.configurationrecipes.get("generationrecipes","enableReactorFrame", true).getBoolean();
generatorsrecipes.enableReactorPort = Mekanism.configurationrecipes.get("generationrecipes","enableReactorPort", true).getBoolean();
generatorsrecipes.enableReactorAdapter = Mekanism.configurationrecipes.get("generationrecipes","enableReactorAdapter", true).getBoolean();
generatorsrecipes.enableReactorGlass = Mekanism.configurationrecipes.get("generationrecipes","enableReactorGlass", true).getBoolean();
generatorsrecipes.enableReactorMatrix = Mekanism.configurationrecipes.get("generationrecipes","enableReactorMatrix", true).getBoolean();
generatorsrecipes.enableSolarPanel = Mekanism.configurationrecipes.get("generationrecipes","enableSolarPanel", true).getBoolean();
generatorsrecipes.enableTurbineBlade = Mekanism.configurationrecipes.get("generationrecipes","enableTurbineBlade", true).getBoolean();
if(Mekanism.configurationgenerators.hasChanged())
{
Mekanism.configurationgenerators.save();
}
if(Mekanism.configurationrecipes.hasChanged())
2014-08-05 16:55:55 -04:00
{
Mekanism.configurationrecipes.save();
2014-08-05 16:55:55 -04:00
}
2012-11-25 10:45:00 -05:00
}
2022-09-11 19:49:04 +02:00
public void loadwinddimension()
{
String[] windid = {"0"};
generators.winddimensionids = Arrays.asList(Mekanism.configurationgenerators.getStringList("winddimensionids", "generation", windid, "List of dimension id to be whitelisted"));
2022-10-19 22:23:33 +02:00
dimid = generators.winddimensionids.stream().map(Integer::parseInt).collect(Collectors.toList());
System.out.println("Windmill whitelist : " + dimid);
2022-09-11 19:49:04 +02:00
}
2014-08-05 16:55:55 -04:00
private void loadWindConfiguration()
{
generators.windGenerationMin = Mekanism.configurationgenerators.get("generation", "WindGenerationMin", 60D).getDouble();
generators.windGenerationMax = Mekanism.configurationgenerators.get("generation", "WindGenerationMax", 480D).getDouble();
2014-08-05 16:55:55 -04:00
//Ensure max > min to avoid division by zero later
final int minY = Mekanism.configurationgenerators.get("generation", "WindGenerationMinY", 24).getInt();
final int maxY = Mekanism.configurationgenerators.get("generation", "WindGenerationMaxY", 255).getInt();
2014-08-05 17:06:29 -04:00
generators.windGenerationMinY = minY;
generators.windGenerationMaxY = Math.max(minY + 1, maxY);
2012-11-25 10:45:00 -05:00
}
2016-01-25 00:13:42 -05:00
@Override
public Object getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z)
2012-11-25 10:45:00 -05:00
{
return null;
}
2016-01-25 00:13:42 -05:00
@Override
public Container getServerGui(int ID, EntityPlayer player, World world, int x, int y, int z)
2012-11-25 10:45:00 -05:00
{
TileEntity tileEntity = world.getTileEntity(x, y, z);
2012-11-25 10:45:00 -05:00
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);
2012-11-25 10:45:00 -05:00
case 4:
return new ContainerBioGenerator(player.inventory, (TileEntityBioGenerator)tileEntity);
2013-04-28 15:23:08 -04:00
case 5:
return new ContainerWindGenerator(player.inventory, (TileEntityWindGenerator)tileEntity);
case 6:
2016-05-21 13:58:09 -04:00
return new ContainerFilter(player.inventory, (TileEntityTurbineCasing)tileEntity);
2016-05-21 14:01:34 -04:00
case 7:
return new ContainerNull(player, (TileEntityTurbineCasing)tileEntity);
2014-07-19 03:23:11 +01:00
case 10:
return new ContainerReactorController(player.inventory, (TileEntityReactorController)tileEntity);
case 11:
2014-07-28 04:24:56 +01:00
case 12:
case 13:
2015-03-29 12:50:15 -04:00
return new ContainerNull(player, (TileEntityContainerBlock)tileEntity);
2014-08-05 01:39:17 +01:00
case 14:
2014-07-19 03:23:11 +01:00
return new ContainerNeutronCapture(player.inventory, (TileEntityReactorNeutronCapture)tileEntity);
2015-03-29 12:50:15 -04:00
case 15:
return new ContainerNull(player, (TileEntityContainerBlock)tileEntity);
2012-11-25 10:45:00 -05:00
}
2014-06-21 11:57:08 -04:00
2012-11-25 10:45:00 -05:00
return null;
}
}