package mods.eln;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.network.FMLEventChannel;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import mods.eln.cable.CableRenderDescriptor;
import mods.eln.client.ClientKeyHandler;
import mods.eln.client.SoundLoader;
import mods.eln.entity.ReplicatorEntity;
import mods.eln.entity.ReplicatorPopProcess;
import mods.eln.eventhandlers.ElnFMLEventsHandler;
import mods.eln.eventhandlers.ElnForgeEventsHandler;
import mods.eln.generic.*;
import mods.eln.generic.genericArmorItem.ArmourType;
import mods.eln.ghost.GhostBlock;
import mods.eln.ghost.GhostGroup;
import mods.eln.ghost.GhostManager;
import mods.eln.ghost.GhostManagerNbt;
import mods.eln.gridnode.electricalpole.ElectricalPoleDescriptor;
import mods.eln.i18n.I18N;
import mods.eln.item.*;
import mods.eln.item.electricalinterface.ItemEnergyInventoryProcess;
import mods.eln.item.electricalitem.*;
import mods.eln.item.electricalitem.PortableOreScannerItem.RenderStorage.OreScannerConfigElement;
import mods.eln.item.regulator.IRegulatorDescriptor;
import mods.eln.item.regulator.RegulatorAnalogDescriptor;
import mods.eln.item.regulator.RegulatorOnOffDescriptor;
import mods.eln.mechanical.*;
import mods.eln.misc.*;
import mods.eln.misc.series.SerieEE;
import mods.eln.node.NodeBlockEntity;
import mods.eln.node.NodeManager;
import mods.eln.node.NodeManagerNbt;
import mods.eln.node.NodeServer;
import mods.eln.node.simple.SimpleNodeItem;
import mods.eln.node.six.*;
import mods.eln.node.transparent.*;
import mods.eln.ore.OreBlock;
import mods.eln.ore.OreDescriptor;
import mods.eln.ore.OreItem;
import mods.eln.packets.*;
import mods.eln.server.*;
import mods.eln.signalinductor.SignalInductorDescriptor;
import mods.eln.sim.Simulator;
import mods.eln.sim.ThermalLoadInitializer;
import mods.eln.sim.ThermalLoadInitializerByPowerDrop;
import mods.eln.sim.mna.component.Resistor;
import mods.eln.sim.nbt.NbtElectricalLoad;
import mods.eln.simplenode.computerprobe.ComputerProbeBlock;
import mods.eln.simplenode.computerprobe.ComputerProbeEntity;
import mods.eln.simplenode.computerprobe.ComputerProbeNode;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherBlock;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherDescriptor;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherDescriptor.ElnDescriptor;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherDescriptor.Ic2Descriptor;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherDescriptor.OcDescriptor;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherEntity;
import mods.eln.simplenode.energyconverter.EnergyConverterElnToOtherNode;
import mods.eln.simplenode.test.TestBlock;
import mods.eln.sixnode.*;
import mods.eln.sixnode.TreeResinCollector.TreeResinCollectorDescriptor;
import mods.eln.sixnode.batterycharger.BatteryChargerDescriptor;
import mods.eln.sixnode.diode.DiodeDescriptor;
import mods.eln.sixnode.electricalalarm.ElectricalAlarmDescriptor;
import mods.eln.sixnode.electricalbreaker.ElectricalBreakerDescriptor;
import mods.eln.sixnode.electricalcable.ElectricalCableDescriptor;
import mods.eln.sixnode.electricaldatalogger.DataLogsPrintDescriptor;
import mods.eln.sixnode.electricaldatalogger.ElectricalDataLoggerDescriptor;
import mods.eln.sixnode.electricalentitysensor.ElectricalEntitySensorDescriptor;
import mods.eln.sixnode.electricalfiredetector.ElectricalFireDetectorDescriptor;
import mods.eln.sixnode.electricalgatesource.ElectricalGateSourceDescriptor;
import mods.eln.sixnode.electricalgatesource.ElectricalGateSourceRenderObj;
import mods.eln.sixnode.electricallightsensor.ElectricalLightSensorDescriptor;
import mods.eln.sixnode.electricalmath.ElectricalMathDescriptor;
import mods.eln.sixnode.electricalredstoneinput.ElectricalRedstoneInputDescriptor;
import mods.eln.sixnode.electricalredstoneoutput.ElectricalRedstoneOutputDescriptor;
import mods.eln.sixnode.electricalrelay.ElectricalRelayDescriptor;
import mods.eln.sixnode.electricalsensor.ElectricalSensorDescriptor;
import mods.eln.sixnode.electricalsource.ElectricalSourceDescriptor;
import mods.eln.sixnode.electricalswitch.ElectricalSwitchDescriptor;
import mods.eln.sixnode.electricaltimeout.ElectricalTimeoutDescriptor;
import mods.eln.sixnode.electricalvumeter.ElectricalVuMeterDescriptor;
import mods.eln.sixnode.electricalwatch.ElectricalWatchDescriptor;
import mods.eln.sixnode.electricalweathersensor.ElectricalWeatherSensorDescriptor;
import mods.eln.sixnode.electricalwindsensor.ElectricalWindSensorDescriptor;
import mods.eln.sixnode.energymeter.EnergyMeterDescriptor;
import mods.eln.sixnode.groundcable.GroundCableDescriptor;
import mods.eln.sixnode.hub.HubDescriptor;
import mods.eln.sixnode.lampsocket.*;
import mods.eln.sixnode.lampsupply.LampSupplyDescriptor;
import mods.eln.sixnode.lampsupply.LampSupplyElement;
import mods.eln.sixnode.logicgate.*;
import mods.eln.sixnode.modbusrtu.ModbusRtuDescriptor;
import mods.eln.sixnode.modbusrtu.ModbusTcpServer;
import mods.eln.sixnode.powercapacitorsix.PowerCapacitorSixDescriptor;
import mods.eln.sixnode.powerinductorsix.PowerInductorSixDescriptor;
import mods.eln.sixnode.powersocket.PowerSocketDescriptor;
import mods.eln.sixnode.powersocket.PowerSocketElement;
import mods.eln.sixnode.resistor.ResistorDescriptor;
import mods.eln.sixnode.thermalcable.ThermalCableDescriptor;
import mods.eln.sixnode.thermalsensor.ThermalSensorDescriptor;
import mods.eln.sixnode.tutorialsign.TutorialSignDescriptor;
import mods.eln.sixnode.tutorialsign.TutorialSignElement;
import mods.eln.sixnode.wirelesssignal.IWirelessSignalSpot;
import mods.eln.sixnode.wirelesssignal.WirelessSignalAnalyserItemDescriptor;
import mods.eln.sixnode.wirelesssignal.repeater.WirelessSignalRepeaterDescriptor;
import mods.eln.sixnode.wirelesssignal.rx.WirelessSignalRxDescriptor;
import mods.eln.sixnode.wirelesssignal.source.WirelessSignalSourceDescriptor;
import mods.eln.sixnode.wirelesssignal.tx.WirelessSignalTxDescriptor;
import mods.eln.sixnode.wirelesssignal.tx.WirelessSignalTxElement;
import mods.eln.sound.SoundCommand;
import mods.eln.transparentnode.FuelGeneratorDescriptor;
import mods.eln.transparentnode.FuelHeatFurnaceDescriptor;
import mods.eln.transparentnode.LargeRheostatDescriptor;
import mods.eln.transparentnode.autominer.AutoMinerDescriptor;
import mods.eln.transparentnode.battery.BatteryDescriptor;
import mods.eln.transparentnode.computercraftio.PeripheralHandler;
import mods.eln.transparentnode.eggincubator.EggIncubatorDescriptor;
import mods.eln.transparentnode.electricalantennarx.ElectricalAntennaRxDescriptor;
import mods.eln.transparentnode.electricalantennatx.ElectricalAntennaTxDescriptor;
import mods.eln.transparentnode.electricalfurnace.ElectricalFurnaceDescriptor;
import mods.eln.transparentnode.electricalmachine.CompressorDescriptor;
import mods.eln.transparentnode.electricalmachine.MaceratorDescriptor;
import mods.eln.transparentnode.electricalmachine.MagnetizerDescriptor;
import mods.eln.transparentnode.electricalmachine.PlateMachineDescriptor;
import mods.eln.transparentnode.heatfurnace.HeatFurnaceDescriptor;
import mods.eln.transparentnode.powercapacitor.PowerCapacitorDescriptor;
import mods.eln.transparentnode.powerinductor.PowerInductorDescriptor;
import mods.eln.transparentnode.solarpanel.SolarPanelDescriptor;
import mods.eln.transparentnode.teleporter.TeleporterDescriptor;
import mods.eln.transparentnode.teleporter.TeleporterElement;
import mods.eln.transparentnode.thermaldissipatoractive.ThermalDissipatorActiveDescriptor;
import mods.eln.transparentnode.thermaldissipatorpassive.ThermalDissipatorPassiveDescriptor;
import mods.eln.transparentnode.transformer.TransformerDescriptor;
import mods.eln.transparentnode.turbine.TurbineDescriptor;
import mods.eln.transparentnode.turret.TurretDescriptor;
import mods.eln.transparentnode.waterturbine.WaterTurbineDescriptor;
import mods.eln.transparentnode.windturbine.WindTurbineDescriptor;
import mods.eln.wiki.Data;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.command.ICommandManager;
import net.minecraft.command.ServerCommandManager;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.monster.IMob;
import net.minecraft.entity.passive.EntityAnimal;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.*;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.launchwrapper.LogWrapper;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import java.util.*;
import static mods.eln.i18n.I18N.*;
@SuppressWarnings({"SameParameterValue", "PointlessArithmeticExpression"})
@Mod(modid = Eln.MODID, name = Eln.NAME, version = "@VERSION@")
public class Eln {
// Mod information (override from 'mcmod.info' file)
public final static String MODID = "Eln";
public final static String NAME = "Electrical Age";
public final static String MODDESC = "Electricity in your base !";
public final static String URL = "https://electrical-age.net";
public final static String UPDATE_URL = "https://github.com/Electrical-Age/ElectricalAge/releases";
public final static String SRC_URL = "https://github.com/Electrical-Age";
public final static String[] AUTHORS = {"Dolu1990", "lambdaShade", "cm0x4D", "metc", "Baughn"};
public static final String channelName = "miaouMod";
public static final double solarPanelBasePower = 65.0;
public ArrayList<IConfigSharing> configShared = new ArrayList<IConfigSharing>();
public static SimpleNetworkWrapper elnNetwork;
// public static final double networkSerializeValueFactor = 100.0;
// public static final byte packetNodeSerialized24bitPosition = 11;
// public static final byte packetNodeSerialized48bitPosition = 12;
// public static final byte packetNodeRefreshRequest = 13;
public static final byte packetPlayerKey = 14;
public static final byte packetNodeSingleSerialized = 15;
public static final byte packetPublishForNode = 16;
public static final byte packetOpenLocalGui = 17;
public static final byte packetForClientNode = 18;
public static final byte packetPlaySound = 19;
public static final byte packetDestroyUuid = 20;
public static final byte packetClientToServerConnection = 21;
public static final byte packetServerToClientInfo = 22;
public static PacketHandler packetHandler;
static NodeServer nodeServer;
public static LiveDataManager clientLiveDataManager;
public static ClientKeyHandler clientKeyHandler;
public static SaveConfig saveConfig;
public static GhostManager ghostManager;
public static GhostManagerNbt ghostManagerNbt;
private static NodeManager nodeManager;
public static PlayerManager playerManager;
public static ModbusTcpServer modbusServer;
public static NodeManagerNbt nodeManagerNbt;
public static Simulator simulator = null;
public static DelayedTaskManager delayedTask;
public static ItemEnergyInventoryProcess itemEnergyInventoryProcess;
public static CreativeTabs creativeTab;
public static Item swordCopper, hoeCopper, shovelCopper, pickaxeCopper, axeCopper;
public static ItemArmor helmetCopper, plateCopper, legsCopper, bootsCopper;
public static ItemArmor helmetECoal, plateECoal, legsECoal, bootsECoal;
public static SharedItem sharedItem;
public static SharedItem sharedItemStackOne;
public static ItemStack wrenchItemStack;
public static SixNodeBlock sixNodeBlock;
public static TransparentNodeBlock transparentNodeBlock;
public static OreBlock oreBlock;
public static GhostBlock ghostBlock;
public static LightBlock lightBlock;
public static SixNodeItem sixNodeItem;
public static TransparentNodeItem transparentNodeItem;
public static OreItem oreItem;
// The instance of your mod that Forge uses.
@Instance("Eln")
public static Eln instance;
// Says where the client and server 'proxy' code is loaded.
@SidedProxy(clientSide = "mods.eln.client.ClientProxy", serverSide = "mods.eln.CommonProxy")
public static CommonProxy proxy;
public double electricalFrequency, thermalFrequency;
public int electricalInterSystemOverSampling;
public CopperCableDescriptor copperCableDescriptor;
public ElectricalCableDescriptor veryHighVoltageCableDescriptor;
public ElectricalCableDescriptor highVoltageCableDescriptor;
public ElectricalCableDescriptor signalCableDescriptor;
public ElectricalCableDescriptor lowVoltageCableDescriptor;
public ElectricalCableDescriptor batteryCableDescriptor;
public ElectricalCableDescriptor meduimVoltageCableDescriptor;
public OreRegenerate oreRegenerate;
public static final Obj3DFolder obj = new Obj3DFolder();
public static boolean oredictTungsten, oredictChips;
public static boolean genCopper, genLead, genTungsten, genCinnabar;
public static String dictTungstenOre, dictTungstenDust, dictTungstenIngot;
public static String dictCheapChip, dictAdvancedChip;
public static final ArrayList<OreScannerConfigElement> oreScannerConfig = new ArrayList<OreScannerConfigElement>();
public static boolean modbusEnable = false;
public static int modbusPort;
float xRayScannerRange;
boolean addOtherModOreToXRay;
private boolean replicatorPop;
boolean xRayScannerCanBeCrafted = true;
public boolean forceOreRegen;
public boolean explosionEnable;
public static boolean debugEnabled = false; // Read from configuration file. Default is `false`.
public static boolean versionCheckEnabled = true; // Read from configuration file. Default is `true`.
public static boolean analyticsEnabled = true; // Read from configuration file. Default is `true`.
public static String playerUUID = null; // Read from configuration file. Default is `null`.
public double heatTurbinePowerFactor = 1;
public double solarPanelPowerFactor = 1;
public double windTurbinePowerFactor = 1;
public double waterTurbinePowerFactor = 1;
public double fuelGeneratorPowerFactor = 1;
public double fuelHeatFurnacePowerFactor = 1;
public int autominerRange = 10;
public static double cableRsFactor = 1.0;
public boolean killMonstersAroundLamps;
public int killMonstersAroundLampsRange;
double stdBatteryHalfLife = 2 * Utils.minecraftDay;
double batteryCapacityFactor = 1.;
public static boolean wailaEasyMode = false;
public static double fuelHeatValueFactor = 0.0000675;
private int plateConversionRatio;
public static boolean noSymbols = false;
public static boolean noVoltageBackground = false;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
elnNetwork = NetworkRegistry.INSTANCE.newSimpleChannel("electrical-age");
elnNetwork.registerMessage(AchievePacketHandler.class, AchievePacket.class, 0, Side.SERVER);
elnNetwork.registerMessage(TransparentNodeRequestPacketHandler.class, TransparentNodeRequestPacket.class, 1, Side.SERVER);
elnNetwork.registerMessage(TransparentNodeResponsePacketHandler.class, TransparentNodeResponsePacket.class, 2, Side.CLIENT);
elnNetwork.registerMessage(GhostNodeWailaRequestPacketHandler.class, GhostNodeWailaRequestPacket.class, 3, Side.SERVER);
elnNetwork.registerMessage(GhostNodeWailaResponsePacketHandler.class, GhostNodeWailaResponsePacket.class, 4, Side.CLIENT);
elnNetwork.registerMessage(SixNodeWailaRequestPacketHandler.class, SixNodeWailaRequestPacket.class, 5, Side.SERVER);
elnNetwork.registerMessage(SixNodeWailaResponsePacketHandler.class, SixNodeWailaResponsePacket.class, 6, Side.CLIENT);
ModContainer container = FMLCommonHandler.instance().findContainerFor(this);
// LanguageRegistry.instance().loadLanguagesFor(container, Side.CLIENT);
// Update ModInfo by code
ModMetadata meta = event.getModMetadata();
meta.modId = MODID;
meta.version = Version.getVersionName();
meta.name = NAME;
meta.description = tr("mod.meta.desc");
meta.url = URL;
meta.updateUrl = UPDATE_URL;
meta.authorList = Arrays.asList(AUTHORS);
meta.autogenerated = false; // Force to update from code
Utils.println(Version.print());
Side side = FMLCommonHandler.instance().getEffectiveSide();
if (side == Side.CLIENT)
MinecraftForge.EVENT_BUS.register(new SoundLoader());
Configuration config = new Configuration(
event.getSuggestedConfigurationFile());
config.load();
//Hacks for correct long date typing failures in config file
//WARNING/BUG: "renameProperty" changes the type to String! However read functions don't seem to care attention to it, so it's OK... for the moment.
if (config.hasKey("lamp", "incondescentLifeInHours"))
config.renameProperty("lamp", "incondescentLifeInHours", "incandescentLifeInHours");
if (config.hasKey("mapgenerate", "plumb"))
config.renameProperty("mapgenerate", "plumb", "lead");
if (config.hasKey("mapgenerate", "cooper"))
config.renameProperty("mapgenerate", "cooper", "copper");
if (config.hasKey("simulation", "electricalFrequancy"))
config.renameProperty("simulation", "electricalFrequancy", "electricalFrequency");
if (config.hasKey("simulation", "thermalFrequancy"))
config.renameProperty("simulation", "thermalFrequancy", "thermalFrequency");
modbusEnable = config.get("modbus", "enable", false).getBoolean(false);
modbusPort = config.get("modbus", "port", 1502).getInt(1502);
debugEnabled = config.get("debug", "enable", false).getBoolean(false);
explosionEnable = config.get("gameplay", "explosion", true).getBoolean(true);
//explosionEnable = false;
versionCheckEnabled = config.get("general", "versionCheckEnable", true).getBoolean(true);
analyticsEnabled = config.get("general", "analyticsEnable", true).getBoolean(true);
if (analyticsEnabled) {
final Property p = config.get("general", "playerUUID", "");
if (p.getString().length() == 0) {
playerUUID = UUID.randomUUID().toString();
p.set(playerUUID);
} else
playerUUID = p.getString();
}
heatTurbinePowerFactor = config.get("balancing", "heatTurbinePowerFactor", 1).getDouble(1);
solarPanelPowerFactor = config.get("balancing", "solarPanelPowerFactor", 1).getDouble(1);
windTurbinePowerFactor = config.get("balancing", "windTurbinePowerFactor", 1).getDouble(1);
waterTurbinePowerFactor = config.get("balancing", "waterTurbinePowerFactor", 1).getDouble(1);
fuelGeneratorPowerFactor = config.get("balancing", "fuelGeneratorPowerFactor", 1).getDouble(1);
fuelHeatFurnacePowerFactor = config.get("balancing", "fuelHeatFurnacePowerFactor", 1.0).getDouble();
autominerRange = config.get("balancing", "autominerRange", 10, "Maximum horizontal distance from autominer that will be mined").getInt(10);
Other.ElnToIc2ConversionRatio = config.get("balancing", "ElnToIndustrialCraftConversionRatio", 1.0 / 3.0).getDouble(1.0 / 3.0);
Other.ElnToOcConversionRatio = config.get("balancing", "ElnToOpenComputerConversionRatio", 1.0 / 3.0 / 2.5).getDouble(1.0 / 3.0 / 2.5);
Other.ElnToTeConversionRatio = config.get("balancing", "ElnToThermalExpansionConversionRatio", 1.0 / 3.0 * 4).getDouble(1.0 / 3.0 * 4);
// Other.ElnToBuildcraftConversionRatio = config.get("balancing", "ElnToBuildcraftConversionRatio", 1.0 / 3.0 / 5 * 2).getDouble(1.0 / 3.0 / 5 * 2);
plateConversionRatio = config.get("balancing", "platesPerIngot", 1).getInt(1);
stdBatteryHalfLife = config.get("battery", "batteryHalfLife", 2, "How many days it takes for a battery to decay half way").getDouble(2) * Utils.minecraftDay;
batteryCapacityFactor = config.get("balancing", "batteryCapacityFactor", 1.).getDouble(1.);
ComputerProbeEnable = config.get("compatibility", "ComputerProbeEnable", true).getBoolean(true);
ElnToOtherEnergyConverterEnable = config.get("compatibility", "ElnToOtherEnergyConverterEnable", true).getBoolean(true);
replicatorPop = config.get("entity", "replicatorPop", true).getBoolean(true);
ReplicatorPopProcess.popPerSecondPerPlayer = config.get("entity", "replicatorPopWhenThunderPerSecond", 1.0 / 120).getDouble(1.0 / 120);
replicatorRegistrationId = config.get("entity", "replicatorId", -1).getInt(-1);
killMonstersAroundLamps = config.get("entity", "killMonstersAroundLamps", true).getBoolean(true);
killMonstersAroundLampsRange = config.get("entity", "killMonstersAroundLampsRange", 9).getInt(9);
forceOreRegen = config.get("mapGenerate", "forceOreRegen", false).getBoolean(false);
genCopper = config.get("mapGenerate", "copper", true).getBoolean(true);
genLead = config.get("mapGenerate", "lead", true).getBoolean(true);
genTungsten = config.get("mapGenerate", "tungsten", true).getBoolean(true);
genCinnabar = config.get("mapGenerate", "cinnabar", true).getBoolean(true);
genCinnabar = false;
oredictTungsten = config.get("dictionary", "tungsten", false).getBoolean(false);
if (oredictTungsten) {
dictTungstenOre = "oreTungsten";
dictTungstenDust = "dustTungsten";
dictTungstenIngot = "ingotTungsten";
} else {
dictTungstenOre = "oreElnTungsten";
dictTungstenDust = "dustElnTungsten";
dictTungstenIngot = "ingotElnTungsten";
}
oredictChips = config.get("dictionary", "chips", true).getBoolean(true);
if (oredictChips) {
dictCheapChip = "circuitBasic";
dictAdvancedChip = "circuitAdvanced";
} else {
dictCheapChip = "circuitElnBasic";
dictAdvancedChip = "circuitElnAdvanced";
}
incandescentLampLife = config.get("lamp", "incandescentLifeInHours", 16.0).getDouble(16.0) * 3600;
economicLampLife = config.get("lamp", "economicLifeInHours", 64.0).getDouble(64.0) * 3600;
carbonLampLife = config.get("lamp", "carbonLifeInHours", 6.0).getDouble(6.0) * 3600;
ledLampLife = config.get("lamp", "ledLifeInHours", 512.0).getDouble(512.0) * 3600;
ledLampInfiniteLife = config.get("lamp", "infiniteLedLife", false).getBoolean();
fuelGeneratorTankCapacity = config.get("fuelGenerator",
"tankCapacityInSecondsAtNominalPower", 20 * 60).getDouble(20 * 60);
addOtherModOreToXRay = config.get("xrayscannerconfig", "addOtherModOreToXRay", true).getBoolean(true);
xRayScannerRange = (float) config.get("xrayscannerconfig", "rangeInBloc", 5.0).getDouble(5.0);
xRayScannerRange = Math.max(Math.min(xRayScannerRange, 10), 4);
xRayScannerCanBeCrafted = config.get("xrayscannerconfig", "canBeCrafted", true).getBoolean(true);
electricalFrequency = config.get("simulation", "electricalFrequency", 20).getDouble(20);
electricalInterSystemOverSampling = config.get("simulation", "electricalInterSystemOverSampling", 50).getInt(50);
thermalFrequency = config.get("simulation", "thermalFrequency", 400).getDouble(400);
cableRsFactor = config.get("simulation", "cableRsFactor", 1.0).getDouble(1.0);
wirelessTxRange = config.get("wireless", "txRange", 32).getInt();
wailaEasyMode = config.get("balancing", "wailaEasyMode", false, "Display more detailed WAILA info on some machines").getBoolean(false);
fuelHeatValueFactor = config.get("balancing", "fuelHeatValueFactor", 0.0000675,
"Factor to apply when converting real word heat values to Minecraft heat values (1mB = 1l).").getDouble();
Eln.noSymbols = config.get("general", "noSymbols", false).getBoolean();
Eln.noVoltageBackground = config.get("general", "noVoltageBackground", false).getBoolean();
config.save();
Object o;
//computerCraftReady = Utils.isClassLoaded("dan200.computercraft.ComputerCraft");
eventChannel = NetworkRegistry.INSTANCE.newEventDrivenChannel(channelName);
simulator = new Simulator(0.05, 1 / electricalFrequency, electricalInterSystemOverSampling, 1 / thermalFrequency);
nodeManager = new NodeManager("caca");
ghostManager = new GhostManager("caca2");
delayedTask = new DelayedTaskManager();
playerManager = new PlayerManager();
//tileEntityDestructor = new TileEntityDestructor();
oreRegenerate = new OreRegenerate();
nodeServer = new NodeServer();
clientLiveDataManager = new LiveDataManager();
packetHandler = new PacketHandler();
// ForgeDummyContainer
instance = this;
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
Item itemCreativeTab = new Item()
.setUnlocalizedName("eln:elncreativetab")
.setTextureName("eln:elncreativetab");
GameRegistry.registerItem(itemCreativeTab, "eln.itemCreativeTab");
creativeTab = new GenericCreativeTab("Eln", itemCreativeTab);
oreBlock = (OreBlock) new OreBlock().setCreativeTab(creativeTab).setBlockName("OreEln");
sharedItem = (SharedItem) new SharedItem()
.setCreativeTab(creativeTab).setMaxStackSize(64)
.setUnlocalizedName("sharedItem");
sharedItemStackOne = (SharedItem) new SharedItem()
.setCreativeTab(creativeTab).setMaxStackSize(1)
.setUnlocalizedName("sharedItemStackOne");
transparentNodeBlock = (TransparentNodeBlock) new TransparentNodeBlock(
Material.iron,
TransparentNodeEntity.class)
.setCreativeTab(creativeTab)
.setBlockTextureName("iron_block");
sixNodeBlock = (SixNodeBlock) new SixNodeBlock(
Material.plants, SixNodeEntity.class)
.setCreativeTab(creativeTab)
.setBlockTextureName("iron_block");
ghostBlock = (GhostBlock) new GhostBlock().setBlockTextureName("iron_block");
lightBlock = (LightBlock) new LightBlock();
obj.loadAllElnModels();
GameRegistry.registerItem(sharedItem, "Eln.sharedItem");
GameRegistry.registerItem(sharedItemStackOne, "Eln.sharedItemStackOne");
GameRegistry.registerBlock(ghostBlock, "Eln.ghostBlock");
GameRegistry.registerBlock(lightBlock, "Eln.lightBlock");
GameRegistry.registerBlock(sixNodeBlock, SixNodeItem.class, "Eln.SixNode");
GameRegistry.registerBlock(transparentNodeBlock, TransparentNodeItem.class, "Eln.TransparentNode");
GameRegistry.registerBlock(oreBlock, OreItem.class, "Eln.Ore");
TileEntity.addMapping(TransparentNodeEntity.class, "TransparentNodeEntity");
TileEntity.addMapping(TransparentNodeEntityWithFluid.class, "TransparentNodeEntityWF");
// TileEntity.addMapping(TransparentNodeEntityWithSiededInv.class, "TransparentNodeEntityWSI");
TileEntity.addMapping(SixNodeEntity.class, "SixNodeEntity");
TileEntity.addMapping(LightBlockEntity.class, "LightBlockEntity");
NodeManager.registerUuid(sixNodeBlock.getNodeUuid(), SixNode.class);
NodeManager.registerUuid(transparentNodeBlock.getNodeUuid(), TransparentNode.class);
o = Item.getItemFromBlock(sixNodeBlock);
sixNodeItem = (SixNodeItem) Item.getItemFromBlock(sixNodeBlock);
transparentNodeItem = (TransparentNodeItem) Item.getItemFromBlock(transparentNodeBlock);
oreItem = (OreItem) Item.getItemFromBlock(oreBlock);
/*
*
* int id = 0,subId = 0,completId; String name;
*/
SixNode.sixNodeCacheList.add(new SixNodeCacheStd());
registerTestBlock();
registerEnergyConverter();
registerComputer();
registerArmor();
registerTool();
registerOre();
//SIX NODE REGISTRATION
//Sub-UID must be unique in this section only.
//============================================
registerGround(2);
registerElectricalSource(3);
registerElectricalCable(32);
registerThermalCable(48);
registerLampSocket(64);
registerLampSupply(65);
registerBatteryCharger(66);
registerPowerSocket(67);
registerWirelessSignal(92);
registerElectricalDataLogger(93);
registerElectricalRelay(94);
registerElectricalGateSource(95);
registerPassiveComponent(96);
registerSwitch(97);
registerElectricalManager(98);
registerElectricalSensor(100);
registerThermalSensor(101);
registerElectricalVuMeter(102);
registerElectricalAlarm(103);
registerElectricalEnvironmentalSensor(104);
registerElectricalRedstone(108);
registerElectricalGate(109);
registerTreeResinCollector(116);
registerSixNodeMisc(117);
registerLogicalGates(118);
registerAnalogChips(124);
//TRANSPARENT NODE REGISTRATION
//Sub-UID must be unique in this section only.
//============================================
registerPowerComponent(1);
registerTransformer(2);
registerHeatFurnace(3);
registerTurbine(4);
registerElectricalAntenna(7);
registerBattery(16);
registerElectricalFurnace(32);
registerMacerator(33);
registerCompressor(35);
registerMagnetizer(36);
registerPlateMachine(37);
registerEggIncubator(41);
registerAutoMiner(42);
registerSolarPanel(48);
registerWindTurbine(49);
registerThermalDissipatorPassiveAndActive(64);
registerTransparentNodeMisc(65);
registerTurret(66);
registerFuelGenerator(67);
registerGridDevices(123);
//ITEM REGISTRATION
//Sub-UID must be unique in this section only.
//============================================
registerHeatingCorp(1);
// registerThermalIsolator(2);
registerRegulatorItem(3);
registerLampItem(4);
registerProtection(5);
registerCombustionChamber(6);
registerFerromagneticCore(7);
registerIngot(8);
registerDust(9);
registerElectricalMotor(10);
registerSolarTracker(11);
//
registerMeter(14);
registerElectricalDrill(15);
registerOreScanner(16);
registerMiningPipe(17);
registerTreeResinAndRubber(64);
registerRawCable(65);
registerBrush(119);
registerMiscItem(120);
registerElectricalTool(121);
registerPortableItem(122);
registerFuelBurnerItem(124);
// Register WIP items only on development runs!
if (isDevelopmentRun()) {
registerWipItems();
}
}
private void registerGridDevices(int id) {
int subId;
{
subId = 2;
// DownlinkDescriptor descriptor =
// new DownlinkDescriptor("Downlink", obj.getObj("DownLink"), "textures/wire.png", highVoltageCableDescriptor);
// transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
{
subId = 3;
// GridTransformerDescriptor descriptor =
// new GridTransformerDescriptor("Grid Transformer", obj.getObj("Transformer"), "textures/wire.png", highVoltageCableDescriptor);
// GhostGroup g = new GhostGroup();
// g.addElement(1, 0, 0);
// g.addElement(0, 0, -1);
// g.addElement(1, 0, -1);
// g.addElement(1, 1, 0);
// g.addElement(0, 1, 0);
// g.addElement(1, 1, -1);
// g.addElement(0, 1, -1);
// descriptor.setGhostGroup(g);
// transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
{
subId = 4;
ElectricalPoleDescriptor descriptor =
new ElectricalPoleDescriptor("Utility Pole", obj.getObj("UtilityPole"), "textures/wire.png", highVoltageCableDescriptor, false);
GhostGroup g = new GhostGroup();
g.addElement(0, 1, 0);
g.addElement(0, 2, 0);
g.addElement(0, 3, 0);
//g.addRectangle(-1, 1, 3, 4, -1, 1);
descriptor.setGhostGroup(g);
transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
{
subId = 5;
ElectricalPoleDescriptor descriptor =
new ElectricalPoleDescriptor("Utility Pole w/DC-DC Converter", obj.getObj("UtilityPole"), "textures/wire.png", highVoltageCableDescriptor, true);
GhostGroup g = new GhostGroup();
g.addElement(0, 1, 0);
g.addElement(0, 2, 0);
g.addElement(0, 3, 0);
//g.addRectangle(-1, 1, 3, 4, -1, 1);
descriptor.setGhostGroup(g);
transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
}
public static FMLEventChannel eventChannel;
//boolean computerCraftReady = false;
private boolean ComputerProbeEnable;
private boolean ElnToOtherEnergyConverterEnable;
// FMLCommonHandler.instance().bus().register(this);
@EventHandler
public void modsLoaded(FMLPostInitializationEvent event) {
Other.check();
if (Other.ccLoaded) {
PeripheralHandler.register();
}
recipeMaceratorModOres();
}
@EventHandler
public void load(FMLInitializationEvent event) {
HashSet<String> oreNames = new HashSet<String>();
{
final String[] names = OreDictionary.getOreNames();
Collections.addAll(oreNames, names);
}
//
registerReplicator();
//
recipeEnergyConverter();
recipeComputerProbe();
recipeArmor();
recipeTool();
recipeGround();
recipeElectricalSource();
recipeElectricalCable();
recipeThermalCable();
recipeLampSocket();
recipeLampSupply();
recipePowerSocket();
recipePassiveComponent();
recipeSwitch();
recipeWirelessSignal();
recipeElectricalRelay();
recipeElectricalDataLogger();
recipeElectricalGateSource();
recipeElectricalBreaker();
recipeFuses();
recipeElectricalVuMeter();
recipeElectricalEnvironmentalSensor();
recipeElectricalRedstone();
recipeElectricalGate();
recipeElectricalAlarm();
recipeSixNodeCache();
recipeElectricalSensor();
recipeThermalSensor();
recipeSixNodeMisc();
recipeTurret();
recipeMachine();
recipeChips();
recipeTransformer();
recipeHeatFurnace();
recipeTurbine();
recipeBattery();
recipeElectricalFurnace();
recipeAutoMiner();
recipeSolarPanel();
recipeThermalDissipatorPassiveAndActive();
recipeElectricalAntenna();
recipeEggIncubator();
recipeBatteryCharger();
recipeTransporter();
recipeWindTurbine();
recipeFuelGenerator();
recipeGeneral();
recipeHeatingCorp();
recipeRegulatorItem();
recipeLampItem();
recipeProtection();
recipeCombustionChamber();
recipeFerromagneticCore();
recipeIngot();
recipeDust();
recipeElectricalMotor();
recipeSolarTracker();
recipeDynamo();
recipeWindRotor();
recipeMeter();
recipeElectricalDrill();
recipeOreScanner();
recipeMiningPipe();
recipeTreeResinAndRubber();
recipeRawCable();
recipeMiscItem();
recipeBatteryItem();
recipeElectricalTool();
recipePortableCapacitor();
recipeFurnace();
recipeMacerator();
recipeCompressor();
recipePlateMachine();
recipeMagnetizer();
recipeFuelBurnerItem();
recipeECoal();
recipeGridDevices(oreNames);
proxy.registerRenderers();
TR("itemGroup.Eln");
checkRecipe();
if (isDevelopmentRun()) {
Achievements.init();
}
MinecraftForge.EVENT_BUS.register(new ElnForgeEventsHandler());
FMLCommonHandler.instance().bus().register(new ElnFMLEventsHandler());
FMLInterModComms.sendMessage("Waila", "register", "mods.eln.integration.waila.WailaIntegration.callbackRegister");
Utils.println("Electrical age init done");
}
private EnergyConverterElnToOtherBlock elnToOtherBlockLvu;
private EnergyConverterElnToOtherBlock elnToOtherBlockMvu;
private EnergyConverterElnToOtherBlock elnToOtherBlockHvu;
private void registerEnergyConverter() {
if (ElnToOtherEnergyConverterEnable) {
String entityName = "eln.EnergyConverterElnToOtherEntity";
TileEntity.addMapping(EnergyConverterElnToOtherEntity.class, entityName);
NodeManager.registerUuid(EnergyConverterElnToOtherNode.getNodeUuidStatic(), EnergyConverterElnToOtherNode.class);
{
String blockName = TR_NAME(Type.TILE, "eln.EnergyConverterElnToOtherLVUBlock");
ElnDescriptor elnDesc = new ElnDescriptor(LVU, LVP);
Ic2Descriptor ic2Desc = new Ic2Descriptor(32, 1);
OcDescriptor ocDesc = new OcDescriptor(ic2Desc.outMax * Other.getElnToOcConversionRatio() / Other.getElnToIc2ConversionRatio());
EnergyConverterElnToOtherDescriptor desc =
new EnergyConverterElnToOtherDescriptor("EnergyConverterElnToOtherLVU", elnDesc, ic2Desc, ocDesc);
elnToOtherBlockLvu = new EnergyConverterElnToOtherBlock(desc);
elnToOtherBlockLvu.setCreativeTab(creativeTab).setBlockName(blockName);
GameRegistry.registerBlock(elnToOtherBlockLvu, SimpleNodeItem.class, blockName);
}
{
String blockName = TR_NAME(Type.TILE, "eln.EnergyConverterElnToOtherMVUBlock");
ElnDescriptor elnDesc = new ElnDescriptor(MVU, MVP);
Ic2Descriptor ic2Desc = new Ic2Descriptor(128, 2);
OcDescriptor ocDesc = new OcDescriptor(ic2Desc.outMax * Other.getElnToOcConversionRatio() / Other.getElnToIc2ConversionRatio());
EnergyConverterElnToOtherDescriptor desc =
new EnergyConverterElnToOtherDescriptor("EnergyConverterElnToOtherMVU", elnDesc, ic2Desc, ocDesc);
elnToOtherBlockMvu = new EnergyConverterElnToOtherBlock(desc);
elnToOtherBlockMvu.setCreativeTab(creativeTab).setBlockName(blockName);
GameRegistry.registerBlock(elnToOtherBlockMvu, SimpleNodeItem.class, blockName);
}
{
String blockName = TR_NAME(Type.TILE, "eln.EnergyConverterElnToOtherHVUBlock");
ElnDescriptor elnDesc = new ElnDescriptor(HVU, HVP);
Ic2Descriptor ic2Desc = new Ic2Descriptor(512, 3);
OcDescriptor ocDesc = new OcDescriptor(ic2Desc.outMax * Other.getElnToOcConversionRatio() / Other.getElnToIc2ConversionRatio());
EnergyConverterElnToOtherDescriptor desc =
new EnergyConverterElnToOtherDescriptor("EnergyConverterElnToOtherHVU", elnDesc, ic2Desc, ocDesc);
elnToOtherBlockHvu = new EnergyConverterElnToOtherBlock(desc);
elnToOtherBlockHvu.setCreativeTab(creativeTab).setBlockName(blockName);
GameRegistry.registerBlock(elnToOtherBlockHvu, SimpleNodeItem.class, blockName);
}
}
}
private ComputerProbeBlock computerProbeBlock;
private void registerComputer() {
if (ComputerProbeEnable) {
String entityName = TR_NAME(Type.TILE, "eln.ElnProbe");
TileEntity.addMapping(ComputerProbeEntity.class, entityName);
NodeManager.registerUuid(ComputerProbeNode.getNodeUuidStatic(), ComputerProbeNode.class);
computerProbeBlock = new ComputerProbeBlock();
computerProbeBlock.setCreativeTab(creativeTab).setBlockName(entityName);
GameRegistry.registerBlock(computerProbeBlock, SimpleNodeItem.class, entityName);
}
}
TestBlock testBlock;
private void registerTestBlock() {
/*
* testBlock = new TestBlock(); testBlock.setCreativeTab(creativeTab).setBlockName("TestBlock"); GameRegistry.registerBlock(testBlock, "Eln.TestBlock"); TileEntity.addMapping(TestEntity.class, "Eln.TestEntity"); //LanguageRegistry.addName(testBlock,"Test Block"); NodeManager.instance.registerUuid(TestNode.getInfoStatic().getUuid(), TestNode.class);
*
* GameRegistry.registerCustomItemStack("Test Block", new ItemStack(testBlock));
*/
}
private void checkRecipe() {
Utils.println("No recipe for ");
for (SixNodeDescriptor d : sixNodeItem.subItemList.values()) {
ItemStack stack = d.newItemStack();
if (!recipeExists(stack)) {
Utils.println(" " + d.name);
}
}
for (TransparentNodeDescriptor d : transparentNodeItem.subItemList.values()) {
ItemStack stack = d.newItemStack();
if (!recipeExists(stack)) {
Utils.println(" " + d.name);
}
}
for (GenericItemUsingDamageDescriptor d : sharedItem.subItemList.values()) {
ItemStack stack = d.newItemStack();
if (!recipeExists(stack)) {
Utils.println(" " + d.name);
}
}
for (GenericItemUsingDamageDescriptor d : sharedItemStackOne.subItemList.values()) {
ItemStack stack = d.newItemStack();
if (!recipeExists(stack)) {
Utils.println(" " + d.name);
}
}
}
private boolean recipeExists(ItemStack stack) {
if (stack == null)
return false;
List list = CraftingManager.getInstance().getRecipeList();
for (Object o : list) {
if (o instanceof IRecipe) {
IRecipe r = (IRecipe) o;
if (r.getRecipeOutput() == null)
continue;
if (Utils.areSame(stack, r.getRecipeOutput()))
return true;
}
}
return false;
}
// ElnHttpServer elnHttpServer;
public ServerEventListener serverEventListener;
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
serverEventListener = new ServerEventListener();
}
/*
* @EventHandler public void clientStart(Client event) {
*
*
* }
*/
@EventHandler
/* Remember to use the right event! */
public void onServerStopped(FMLServerStoppedEvent ev) {
TutorialSignElement.resetBalise();
modbusServer.destroy();
LightBlockEntity.observers.clear();
NodeBlockEntity.clientList.clear();
TeleporterElement.teleporterList.clear();
IWirelessSignalSpot.spots.clear();
playerManager.clear();
clientLiveDataManager.stop();
nodeManager.clear();
ghostManager.clear();
saveConfig = null;
modbusServer = null;
oreRegenerate.clear();
delayedTask.clear();
DelayedBlockRemove.clear();
serverEventListener.clear();
nodeServer.stop();
simulator.stop();
//tileEntityDestructor.clear();
LampSupplyElement.channelMap.clear();
PowerSocketElement.channelMap.clear();
WirelessSignalTxElement.channelMap.clear();
}
//public TileEntityDestructor tileEntityDestructor;
public static WindProcess wind;
@EventHandler
public void onServerStart(FMLServerAboutToStartEvent ev) {
modbusServer = new ModbusTcpServer(modbusPort);
TeleporterElement.teleporterList.clear();
//tileEntityDestructor.clear();
LightBlockEntity.observers.clear();
WirelessSignalTxElement.channelMap.clear();
LampSupplyElement.channelMap.clear();
PowerSocketElement.channelMap.clear();
playerManager.clear();
clientLiveDataManager.start();
simulator.init();
simulator.addSlowProcess(wind = new WindProcess());
if (replicatorPop)
simulator.addSlowProcess(new ReplicatorPopProcess());
simulator.addSlowProcess(itemEnergyInventoryProcess = new ItemEnergyInventoryProcess());
}
@EventHandler
/* Remember to use the right event! */
public void onServerStarting(FMLServerStartingEvent ev) {
{
MinecraftServer server = FMLCommonHandler.instance()
.getMinecraftServerInstance();
WorldServer worldServer = server.worldServers[0];
ghostManagerNbt = (GhostManagerNbt) worldServer.mapStorage.loadData(
GhostManagerNbt.class, "GhostManager");
if (ghostManagerNbt == null) {
ghostManagerNbt = new GhostManagerNbt("GhostManager");
worldServer.mapStorage.setData("GhostManager", ghostManagerNbt);
}
saveConfig = (SaveConfig) worldServer.mapStorage.loadData(
SaveConfig.class, "SaveConfig");
if (saveConfig == null) {
saveConfig = new SaveConfig("SaveConfig");
worldServer.mapStorage.setData("SaveConfig", saveConfig);
}
// saveConfig.init();
nodeManagerNbt = (NodeManagerNbt) worldServer.mapStorage.loadData(
NodeManagerNbt.class, "NodeManager");
if (nodeManagerNbt == null) {
nodeManagerNbt = new NodeManagerNbt("NodeManager");
worldServer.mapStorage.setData("NodeManager", nodeManagerNbt);
}
nodeServer.init();
}
{
MinecraftServer s = MinecraftServer.getServer();
ICommandManager command = s.getCommandManager();
ServerCommandManager manager = (ServerCommandManager) command;
manager.registerCommand(new ConsoleListener());
}
regenOreScannerFactors();
}
public CableRenderDescriptor stdCableRenderSignal;
public CableRenderDescriptor stdCableRender50V;
public CableRenderDescriptor stdCableRender200V;
public CableRenderDescriptor stdCableRender800V;
public CableRenderDescriptor stdCableRender3200V;
public static final double gateOutputCurrent = 0.100;
public static final double SVU = 50, SVII = gateOutputCurrent / 50,
SVUinv = 1.0 / SVU;
public static final double LVU = 50;
public static final double MVU = 200;
public static final double HVU = 800;
public static final double VVU = 3200;
public static final double SVP = gateOutputCurrent * SVU;
public static final double LVP = 1000;
public static final double MVP = 2000;
public static final double HVP = 5000;
public static final double VVP = 15000;
public static final double electricalCableDeltaTMax = 20;
public static final double cableHeatingTime = 30;
public static final double cableWarmLimit = 130;
public static final double cableThermalConductionTao = 0.5;
public static final ThermalLoadInitializer cableThermalLoadInitializer = new ThermalLoadInitializer(
cableWarmLimit, -100, cableHeatingTime, cableThermalConductionTao);
public static final ThermalLoadInitializer sixNodeThermalLoadInitializer = new ThermalLoadInitializer(
cableWarmLimit, -100, cableHeatingTime, 1000);
public static int wirelessTxRange = 32;
private void registerElectricalCable(int id) {
int subId, completId;
String name;
CableRenderDescriptor render;
ElectricalCableDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Signal Cable");
stdCableRenderSignal = new CableRenderDescriptor("eln",
"sprites/cable.png", 0.95f, 0.95f);
desc = new ElectricalCableDescriptor(name, stdCableRenderSignal,
"For signal transmission.", true);
signalCableDescriptor = desc;
desc.setPhysicalConstantLikeNormalCable(SVU, SVP, 0.02 / 50
* gateOutputCurrent / SVII,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
SVU * 1.3, SVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
0.5,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, 1// thermalNominalHeatTime,
// thermalConductivityTao
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
// GameRegistry.registerCustomItemStack(name, desc.newItemStack(1));
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Low Voltage Cable");
stdCableRender50V = new CableRenderDescriptor("eln",
"sprites/cable.png", 1.95f, 0.95f);
desc = new ElectricalCableDescriptor(name, stdCableRender50V,
"For low voltage with high current.", false);
lowVoltageCableDescriptor = desc;
desc.setPhysicalConstantLikeNormalCable(LVU, LVP, 0.2 / 20 * cableRsFactor,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
LVU * 1.3, LVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
20,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, cableThermalConductionTao// thermalNominalHeatTime,
// thermalConductivityTao
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
desc = new ElectricalCableDescriptor(name, stdCableRender50V,
"For low voltage with high current.", false);
desc.setPhysicalConstantLikeNormalCable(
LVU, LVP / 4, 0.2 / 20,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
LVU * 1.3, LVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
20,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, cableThermalConductionTao// thermalNominalHeatTime,
// thermalConductivityTao
);
batteryCableDescriptor = desc;
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Medium Voltage Cable");
stdCableRender200V = new CableRenderDescriptor("eln",
"sprites/cable.png", 2.95f, 0.95f);
desc = new ElectricalCableDescriptor(name, stdCableRender200V,
"miaou", false);
meduimVoltageCableDescriptor = desc;
desc.setPhysicalConstantLikeNormalCable(MVU, MVP, 0.10 / 20 * cableRsFactor,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
MVU * 1.3, MVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
30,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, cableThermalConductionTao// thermalNominalHeatTime,
// thermalConductivityTao
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 12;
// highVoltageCableId = subId;
name = TR_NAME(Type.NONE, "High Voltage Cable");
stdCableRender800V = new CableRenderDescriptor("eln",
"sprites/cable.png", 3.95f, 1.95f);
desc = new ElectricalCableDescriptor(name, stdCableRender800V,
"miaou2", false);
highVoltageCableDescriptor = desc;
desc.setPhysicalConstantLikeNormalCable(HVU, HVP, 0.025 * 5 / 4 / 20 * cableRsFactor,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
HVU * 1.3, HVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
40,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, cableThermalConductionTao// thermalNominalHeatTime,
// thermalConductivityTao
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 16;
// highVoltageCableId = subId;
name = TR_NAME(Type.NONE, "Very High Voltage Cable");
stdCableRender3200V = new CableRenderDescriptor("eln",
"sprites/cableVHV.png", 3.95f, 1.95f);
desc = new ElectricalCableDescriptor(name, stdCableRender3200V,
"miaou2", false);
veryHighVoltageCableDescriptor = desc;
desc.setPhysicalConstantLikeNormalCable(VVU, VVP, 0.025 * 5 / 4 / 20 / 8 * cableRsFactor,// electricalNominalVoltage,
// electricalNominalPower,
// electricalNominalPowerDrop,
VVU * 1.3, VVP * 1.2,// electricalMaximalVoltage,
// electricalMaximalPower,
40,// electricalOverVoltageStartPowerLost,
cableWarmLimit, -100,// thermalWarmLimit, thermalCoolLimit,
cableHeatingTime, cableThermalConductionTao// thermalNominalHeatTime,
// thermalConductivityTao
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerThermalCable(int id) {
int subId, completId;
String name;
{
subId = 0;
name = "Removed from mod Copper Thermal Cable";
ThermalCableDescriptor desc = new ThermalCableDescriptor(name,
1000 - 20, -200, // thermalWarmLimit, thermalCoolLimit,
500, 2000, // thermalStdT, thermalStdPower,
2, 400, 0.1,// thermalStdDrop, thermalStdLost, thermalTao,
new CableRenderDescriptor("eln",
"sprites/tex_thermalcablebase.png", 4, 4),
"Miaou !");// description
desc.addToData(false);
sixNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Copper Thermal Cable");
ThermalCableDescriptor desc = new ThermalCableDescriptor(name,
1000 - 20, -200, // thermalWarmLimit, thermalCoolLimit,
500, 2000, // thermalStdT, thermalStdPower,
2, 10, 0.1,// thermalStdDrop, thermalStdLost, thermalTao,
new CableRenderDescriptor("eln",
"sprites/tex_thermalcablebase.png", 4, 4),
"Miaou !");// description
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
public FunctionTable batteryVoltageFunctionTable;
private void registerBattery(int id) {
int subId, completId;
String name;
double heatTIme = 30;
double[] voltageFunctionTable = {0.000, 0.9, 1.0, 1.025, 1.04, 1.05,
2.0};
FunctionTable voltageFunction = new FunctionTable(voltageFunctionTable,
6.0 / 5);
double[] condoVoltageFunctionTable = {0.000, 0.89, 0.90, 0.905, 0.91, 1.1,
1.5};
FunctionTable condoVoltageFunction = new FunctionTable(condoVoltageFunctionTable,
6.0 / 5);
Utils.printFunction(voltageFunction, -0.2, 1.2, 0.1);
double stdDischargeTime = 4 * 60;
double stdU = LVU;
double stdP = LVP / 4;
double stdEfficiency = 1.0 - 2.0 / 50.0;
double condoEfficiency = 1.0 - 2.0 / 50.0;
batteryVoltageFunctionTable = voltageFunction;
{
subId = 0;
name = TR_NAME(Type.NONE, "Cost Oriented Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", batteryCableDescriptor, 0.5, true, true, voltageFunction, stdU,
stdP * 1.2, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP, stdDischargeTime * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"Cheap battery" // name, description)
);
desc.setRenderSpec("lowcost");
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 1.0);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Capacity Oriented Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", batteryCableDescriptor, 0.5, true, true, voltageFunction,
stdU / 4, stdP / 2 * 1.2, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP / 2, stdDischargeTime * 8 * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setRenderSpec("capacity");
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 1.0);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
name = TR_NAME(Type.NONE, "Voltage Oriented Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", meduimVoltageCableDescriptor, 0.5, true, true, voltageFunction, stdU * 4,
stdP * 1.2, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP, stdDischargeTime * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setRenderSpec("highvoltage");
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 1.0);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 3;
name = TR_NAME(Type.NONE, "Current Oriented Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", batteryCableDescriptor, 0.5, true, true, voltageFunction, stdU,
stdP * 1.2 * 4, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP * 4, stdDischargeTime / 6 * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setRenderSpec("current");
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 1.0);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Life Oriented Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", batteryCableDescriptor, 0.5, true, true, voltageFunction, stdU,
stdP * 1.2, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP, stdDischargeTime * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife * 8, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setRenderSpec("life");
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 1.0);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 5;
name = TR_NAME(Type.NONE, "Single-use Battery");
BatteryDescriptor desc = new BatteryDescriptor(name,
"BatteryBig", batteryCableDescriptor, 1.0, false, false, voltageFunction, stdU,
stdP * 1.2 * 2, 0.000, // electricalU,
// electricalPMax,electricalDischargeRate
stdP * 2, stdDischargeTime * batteryCapacityFactor, stdEfficiency, stdBatteryHalfLife * 8, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setRenderSpec("coal");
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 32;
name = TR_NAME(Type.NONE, "50V Condensator");
BatteryDescriptor desc = new BatteryDescriptor(name,
"condo200", batteryCableDescriptor, 0.0, true, false,
condoVoltageFunction,
stdU, stdP * 1.2 * 8, 0.005, // electricalU,//
// electricalPMax,electricalDischargeRate
stdP * 8, 4, condoEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"Obselete, must be deleted" // name, description)
);
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 2.0);
transparentNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
{
subId = 36;
name = TR_NAME(I18N.Type.NONE, "200V Condensator");
BatteryDescriptor desc = new BatteryDescriptor(name,
"condo200", highVoltageCableDescriptor, 0.0, true, false,
condoVoltageFunction,
MVU, MVP * 1.5, 0.005, // electricalU,//
// electricalPMax,electricalDischargeRate
MVP, 4, condoEfficiency, stdBatteryHalfLife, // electricalStdP,
// electricalStdDischargeTime,
// electricalStdEfficiency,
// electricalStdHalfLife,
heatTIme, 60, -100, // thermalHeatTime, thermalWarmLimit,
// thermalCoolLimit,
"the battery" // name, description)
);
desc.setCurrentDrop(desc.electricalU * 1.2, desc.electricalStdP * 2.0);
transparentNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
}
private void registerGround(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Ground Cable");
GroundCableDescriptor desc = new GroundCableDescriptor(name, obj.getObj("groundcable"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Hub");
HubDescriptor desc = new HubDescriptor(name, obj.getObj("hub"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalSource(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Source");
ElectricalSourceDescriptor desc = new ElectricalSourceDescriptor(
name, obj.getObj("voltagesource"), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Signal Source");
ElectricalSourceDescriptor desc = new ElectricalSourceDescriptor(
name, obj.getObj("signalsource"), true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerLampSocket(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Lamp Socket A");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("ClassicLampSocket"), false),
LampSocketType.Douille, // LampSocketType
false,
4, 0, 0, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Lamp Socket B Projector");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("ClassicLampSocket"), false),
LampSocketType.Douille, // LampSocketType
false,
10, -90, 90, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Robust Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("RobustLamp"), true),
LampSocketType.Douille, // LampSocketType
false,
3, 0, 0, 0);
desc.setInitialOrientation(-90.f);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 5;
name = TR_NAME(Type.NONE, "Flat Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("FlatLamp"), true),
LampSocketType.Douille, // LampSocketType
false,
3, 0, 0, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 6;
name = TR_NAME(Type.NONE, "Simple Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("SimpleLamp"), true),
LampSocketType.Douille, // LampSocketType
false,
3, 0, 0, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 7;
name = TR_NAME(Type.NONE, "Fluorescent Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("FluorescentLamp"), true),
LampSocketType.Douille, // LampSocketType
false,
4, 0, 0, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
desc.cableLeft = false;
desc.cableRight = false;
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Street Light");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("StreetLight"), true),
LampSocketType.Douille, // LampSocketType
false,
0, 0, 0, 0);
desc.setPlaceDirection(Direction.YN);
GhostGroup g = new GhostGroup();
g.addElement(1, 0, 0);
g.addElement(2, 0, 0);
desc.setGhostGroup(g);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
desc.cameraOpt = false;
}
{
subId = 9;
name = TR_NAME(Type.NONE, "Sconce Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name, new LampSocketStandardObjRender(obj.getObj("SconceLamp"), true),
LampSocketType.Douille, // LampSocketType
true,
3, 0, 0, 0);
desc.setPlaceDirection(new Direction[]{Direction.XP, Direction.XN, Direction.ZP, Direction.ZN});
desc.setInitialOrientation(-90.f);
desc.setUserRotationLibertyDegrees(true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 12;
name = TR_NAME(Type.NONE, "Suspended Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name,
new LampSocketSuspendedObjRender(obj.getObj("RobustLampSuspended"), true, 3),
LampSocketType.Douille, // LampSocketType
false,
3, 0, 0, 0);
desc.setPlaceDirection(Direction.YP);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
desc.cameraOpt = false;
}
{
subId = 13;
name = TR_NAME(Type.NONE, "Long Suspended Lamp Socket");
LampSocketDescriptor desc = new LampSocketDescriptor(name,
new LampSocketSuspendedObjRender(obj.getObj("RobustLampSuspended"), true, 7),
LampSocketType.Douille, // LampSocketType
false,
4, 0, 0, 0);
desc.setPlaceDirection(Direction.YP);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
desc.cameraOpt = false;
}
// TODO: Modern street light.
sixNodeItem.addDescriptor(15 + (id << 6),
new EmergencyLampDescriptor(TR_NAME(Type.NONE, "50V Emergency Lamp"),
lowVoltageCableDescriptor, 10 * 60 * 10, 10, 5, 6, obj.getObj("EmergencyExitLighting")));
sixNodeItem.addDescriptor(16 + (id << 6),
new EmergencyLampDescriptor(TR_NAME(Type.NONE, "200V Emergency Lamp"),
meduimVoltageCableDescriptor, 10 * 60 * 20, 25, 10, 8, obj.getObj("EmergencyExitLighting")));
}
private void registerLampSupply(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Lamp Supply");
LampSupplyDescriptor desc = new LampSupplyDescriptor(
name, obj.getObj("DistributionBoard"),
32
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerPowerSocket(int id) {
int subId;
String name;
PowerSocketDescriptor desc;
{
subId = 1;
name = TR_NAME(Type.NONE, "50V Power Socket");
desc = new PowerSocketDescriptor(
subId, name, obj.getObj("PowerSocket"),
10 //Range for plugged devices (without obstacles)
);
desc.setPlaceDirection(new Direction[]{Direction.XP, Direction.XN, Direction.ZP, Direction.ZN});
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
name = TR_NAME(Type.NONE, "200V Power Socket");
desc = new PowerSocketDescriptor(
subId, name, obj.getObj("PowerSocket"),
10 //Range for plugged devices (without obstacles)
);
desc.setPlaceDirection(new Direction[]{Direction.XP, Direction.XN, Direction.ZP, Direction.ZN});
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerPassiveComponent(int id) {
int subId, completId;
String name;
IFunction function;
FunctionTableYProtect baseFunction = new FunctionTableYProtect(
new double[]{0.0, 0.01, 0.03, 0.1, 0.2, 0.4, 0.8, 1.2}, 1.0,
0, 5);
{
subId = 0;
name = TR_NAME(Type.NONE, "10A Diode");
function = new FunctionTableYProtect(new double[]{0.0, 0.1, 0.3,
1.0, 2.0, 4.0, 8.0, 12.0}, 1.0, 0, 100);
DiodeDescriptor desc = new DiodeDescriptor(
name,// int iconId, String name,
function,
10, // double Imax,
1, 10,
sixNodeThermalLoadInitializer.copy(),
lowVoltageCableDescriptor,
obj.getObj("PowerElectricPrimitives"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "25A Diode");
function = new FunctionTableYProtect(new double[]{0.0, 0.25,
0.75, 2.5, 5.0, 10.0, 20.0, 30.0}, 1.0, 0, 100);
DiodeDescriptor desc = new DiodeDescriptor(
name,// int iconId, String name,
function,
25, // double Imax,
1, 25,
sixNodeThermalLoadInitializer.copy(),
lowVoltageCableDescriptor,
obj.getObj("PowerElectricPrimitives"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Signal Diode");
function = baseFunction.duplicate(1.0, 0.1);
DiodeDescriptor desc = new DiodeDescriptor(name,// int iconId,
// String name,
function, 0.1, // double Imax,
1, 0.1,
sixNodeThermalLoadInitializer.copy(), signalCableDescriptor,
obj.getObj("PowerElectricPrimitives"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 16;
name = TR_NAME(Type.NONE, "Signal 20H inductor");
SignalInductorDescriptor desc = new SignalInductorDescriptor(
name, 20, lowVoltageCableDescriptor
);
sixNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
{
subId = 32;
name = TR_NAME(Type.NONE, "Power Capacitor");
PowerCapacitorSixDescriptor desc = new PowerCapacitorSixDescriptor(
name, obj.getObj("PowerElectricPrimitives"), SerieEE.newE6(-1), 60 * 2000
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 34;
name = TR_NAME(Type.NONE, "Power Inductor");
PowerInductorSixDescriptor desc = new PowerInductorSixDescriptor(
name, obj.getObj("PowerElectricPrimitives"), SerieEE.newE6(-1)
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 36;
name = TR_NAME(Type.NONE, "Power Resistor");
ResistorDescriptor desc = new ResistorDescriptor(
name, obj.getObj("PowerElectricPrimitives"), SerieEE.newE12(-2), 0, false
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 37;
name = TR_NAME(Type.NONE, "Rheostat");
ResistorDescriptor desc = new ResistorDescriptor(
name, obj.getObj("PowerElectricPrimitives"), SerieEE.newE12(-2), 0, true
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 38;
name = TR_NAME(Type.NONE, "Thermistor");
ResistorDescriptor desc = new ResistorDescriptor(
name, obj.getObj("PowerElectricPrimitives"), SerieEE.newE12(-2), -0.01, false
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 39;
name = TR_NAME(Type.NONE, "Large Rheostat");
ThermalDissipatorPassiveDescriptor dissipator = new ThermalDissipatorPassiveDescriptor(
name,
obj.getObj("LargeRheostat"),
1000, -100,// double warmLimit,double coolLimit,
4000, 800,// double nominalP,double nominalT,
10, 1// double nominalTao,double nominalConnectionDrop
);
LargeRheostatDescriptor desc = new LargeRheostatDescriptor(
name, dissipator, veryHighVoltageCableDescriptor, SerieEE.newE12(0)
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerPowerComponent(int id) {
int subId, completId;
String name;
{
subId = 16;
name = TR_NAME(Type.NONE, "Power inductor");
PowerInductorDescriptor desc = new PowerInductorDescriptor(
name, null, SerieEE.newE12(-1)
);
transparentNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
{
subId = 20;
name = TR_NAME(Type.NONE, "Power capacitor");
PowerCapacitorDescriptor desc = new PowerCapacitorDescriptor(
name, null, SerieEE.newE6(-2), 300
);
transparentNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
}
private void registerSwitch(int id) {
int subId, completId;
String name;
IFunction function;
ElectricalSwitchDescriptor desc;
{
subId = 4;
name = TR_NAME(Type.NONE, "Very High Voltage Switch");
desc = new ElectricalSwitchDescriptor(name, stdCableRender3200V,
obj.getObj("HighVoltageSwitch"), VVU, VVP, veryHighVoltageCableDescriptor.electricalRs * 2,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
VVU * 1.5, VVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 0;
name = TR_NAME(Type.NONE, "High Voltage Switch");
desc = new ElectricalSwitchDescriptor(name, stdCableRender800V,
obj.getObj("HighVoltageSwitch"), HVU, HVP, highVoltageCableDescriptor.electricalRs * 2,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
HVU * 1.5, HVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Low Voltage Switch");
desc = new ElectricalSwitchDescriptor(name, stdCableRender50V,
obj.getObj("LowVoltageSwitch"), LVU, LVP, lowVoltageCableDescriptor.electricalRs * 2,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
LVU * 1.5, LVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
name = TR_NAME(Type.NONE, "Medium Voltage Switch");
desc = new ElectricalSwitchDescriptor(name, stdCableRender200V,
obj.getObj("LowVoltageSwitch"), MVU, MVP, meduimVoltageCableDescriptor.electricalRs * 2,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
MVU * 1.5, MVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 3;
name = TR_NAME(Type.NONE, "Signal Switch");
desc = new ElectricalSwitchDescriptor(name, stdCableRenderSignal,
obj.getObj("LowVoltageSwitch"), SVU, SVP, 0.02,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
SVU * 1.5, SVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), true);
sixNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
// 4 taken
{
subId = 8;
name = TR_NAME(Type.NONE, "Signal Switch with LED");
desc = new ElectricalSwitchDescriptor(name, stdCableRenderSignal,
obj.getObj("ledswitch"), SVU, SVP, 0.02,// nominalVoltage,
// nominalPower,
// nominalDropFactor,
SVU * 1.5, SVP * 1.2,// maximalVoltage, maximalPower
cableThermalLoadInitializer.copy(), true);
sixNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
}
private void registerSixNodeMisc(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Modbus RTU");
ModbusRtuDescriptor desc = new ModbusRtuDescriptor(
name,
obj.getObj("RTU")
);
if (modbusEnable) {
sixNodeItem.addDescriptor(subId + (id << 6), desc);
} else {
sixNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Analog Watch");
ElectricalWatchDescriptor desc = new ElectricalWatchDescriptor(
name,
obj.getObj("WallClock"),
20000.0 / (3600 * 40)
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 5;
name = TR_NAME(Type.NONE, "Digital Watch");
ElectricalWatchDescriptor desc = new ElectricalWatchDescriptor(
name,
obj.getObj("DigitalWallClock"),
20000.0 / (3600 * 15)
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Tutorial Sign");
TutorialSignDescriptor desc = new TutorialSignDescriptor(
name, obj.getObj("TutoPlate"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalManager(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Breaker");
ElectricalBreakerDescriptor desc = new ElectricalBreakerDescriptor(name, obj.getObj("ElectricalBreaker"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Energy Meter");
EnergyMeterDescriptor desc = new EnergyMeterDescriptor(name, obj.getObj("EnergyMeter"), 8, 0);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 5;
name = TR_NAME(Type.NONE, "Advanced Energy Meter");
EnergyMeterDescriptor desc = new EnergyMeterDescriptor(name, obj.getObj("AdvancedEnergyMeter"), 7, 8);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 6;
name = TR_NAME(Type.NONE, "Electrical Fuse Holder");
ElectricalFuseHolderDescriptor desc = new ElectricalFuseHolderDescriptor(name, obj.getObj("ElectricalFuse"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 7;
name = TR_NAME(Type.NONE, "Lead Fuse for low voltage cables");
ElectricalFuseDescriptor desc = new ElectricalFuseDescriptor(name, lowVoltageCableDescriptor, obj.getObj("ElectricalFuse"));
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Lead Fuse for medium voltage cables");
ElectricalFuseDescriptor desc = new ElectricalFuseDescriptor(name, meduimVoltageCableDescriptor, obj.getObj("ElectricalFuse"));
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 9;
name = TR_NAME(Type.NONE, "Lead Fuse for high voltage cables");
ElectricalFuseDescriptor desc = new ElectricalFuseDescriptor(name, highVoltageCableDescriptor, obj.getObj("ElectricalFuse"));
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 10;
name = TR_NAME(Type.NONE, "Lead Fuse for very high voltage cables");
ElectricalFuseDescriptor desc = new ElectricalFuseDescriptor(name, veryHighVoltageCableDescriptor, obj.getObj("ElectricalFuse"));
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 11;
name = TR_NAME(Type.NONE, "Blown Lead Fuse");
ElectricalFuseDescriptor desc = new ElectricalFuseDescriptor(name, null, obj.getObj("ElectricalFuse"));
ElectricalFuseDescriptor.Companion.setBlownFuse(desc);
sharedItem.addWithoutRegistry(subId + (id << 6), desc);
}
}
private void registerElectricalSensor(int id) {
int subId, completId;
String name;
ElectricalSensorDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Probe");
desc = new ElectricalSensorDescriptor(name, "electricalsensor",
false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Voltage Probe");
desc = new ElectricalSensorDescriptor(name, "voltagesensor", true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerThermalSensor(int id) {
int subId, completId;
String name;
ThermalSensorDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Thermal Probe");
desc = new ThermalSensorDescriptor(name,
obj.getObj("thermalsensor"), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Temperature Probe");
desc = new ThermalSensorDescriptor(name,
obj.getObj("temperaturesensor"), true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalVuMeter(int id) {
int subId, completId;
String name;
ElectricalVuMeterDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Analog vuMeter");
desc = new ElectricalVuMeterDescriptor(name, "Vumeter", false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "LED vuMeter");
desc = new ElectricalVuMeterDescriptor(name, "Led", true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalAlarm(int id) {
int subId, completId;
String name;
ElectricalAlarmDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Nuclear Alarm");
desc = new ElectricalAlarmDescriptor(name,
obj.getObj("alarmmedium"), 7, "eln:alarma", 11, 1f);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Standard Alarm");
desc = new ElectricalAlarmDescriptor(name,
obj.getObj("alarmmedium"), 7, "eln:smallalarm_critical",
1.2, 2f);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalEnvironmentalSensor(int id) {
int subId, completId;
String name;
{
ElectricalLightSensorDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Daylight Sensor");
desc = new ElectricalLightSensorDescriptor(name, obj.getObj("daylightsensor"), true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Electrical Light Sensor");
desc = new ElectricalLightSensorDescriptor(name, obj.getObj("lightsensor"), false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ElectricalWeatherSensorDescriptor desc;
{
subId = 4;
name = TR_NAME(Type.NONE, "Electrical Weather Sensor");
desc = new ElectricalWeatherSensorDescriptor(name, obj.getObj("electricalweathersensor"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ElectricalWindSensorDescriptor desc;
{
subId = 8;
name = TR_NAME(Type.NONE, "Electrical Anemometer Sensor");
desc = new ElectricalWindSensorDescriptor(name, obj.getObj("Anemometer"), 25);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ElectricalEntitySensorDescriptor desc;
{
subId = 12;
name = TR_NAME(Type.NONE, "Electrical Entity Sensor");
desc = new ElectricalEntitySensorDescriptor(name, obj.getObj("ProximitySensor"), 10);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ElectricalFireDetectorDescriptor desc;
{
subId = 13;
name = TR_NAME(Type.NONE, "Electrical Fire Detector");
desc = new ElectricalFireDetectorDescriptor(name, obj.getObj("FireDetector"), 15, false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ElectricalFireDetectorDescriptor desc;
{
subId = 14;
name = TR_NAME(Type.NONE, "Electrical Fire Buzzer");
desc = new ElectricalFireDetectorDescriptor(name, obj.getObj("FireDetector"), 15, true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
{
ScannerDescriptor desc;
{
subId = 15;
name = TR_NAME(Type.NONE, "Scanner");
desc = new ScannerDescriptor(name, obj.getObj("scanner"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
}
private void registerElectricalRedstone(int id) {
int subId, completId;
String name;
{
ElectricalRedstoneInputDescriptor desc;
subId = 0;
name = TR_NAME(Type.NONE, "Redstone-to-Voltage Converter");
desc = new ElectricalRedstoneInputDescriptor(name, obj.getObj("redtoele"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
ElectricalRedstoneOutputDescriptor desc;
subId = 1;
name = TR_NAME(Type.NONE, "Voltage-to-Redstone Converter");
desc = new ElectricalRedstoneOutputDescriptor(name,
obj.getObj("eletored"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalGate(int id) {
int subId, completId;
String name;
{
ElectricalTimeoutDescriptor desc;
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Timer");
desc = new ElectricalTimeoutDescriptor(name,
obj.getObj("electricaltimer"));
desc.setTickSound("eln:timer", 0.01f);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
ElectricalMathDescriptor desc;
subId = 4;
name = TR_NAME(Type.NONE, "Signal Processor");
desc = new ElectricalMathDescriptor(name,
obj.getObj("PLC"));
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerWirelessSignal(int id) {
int subId, completId;
String name;
{
WirelessSignalRxDescriptor desc;
subId = 0;
name = TR_NAME(Type.NONE, "Wireless Signal Receiver");
desc = new WirelessSignalRxDescriptor(
name,
obj.getObj("wirelesssignalrx")
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
WirelessSignalTxDescriptor desc;
subId = 8;
name = TR_NAME(Type.NONE, "Wireless Signal Transmitter");
desc = new WirelessSignalTxDescriptor(
name,
obj.getObj("wirelesssignaltx"),
wirelessTxRange
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
WirelessSignalRepeaterDescriptor desc;
subId = 16;
name = TR_NAME(Type.NONE, "Wireless Signal Repeater");
desc = new WirelessSignalRepeaterDescriptor(
name,
obj.getObj("wirelesssignalrepeater"),
wirelessTxRange
);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalDataLogger(int id) {
int subId, completId;
String name;
{
ElectricalDataLoggerDescriptor desc;
subId = 0;
name = TR_NAME(Type.NONE, "Data Logger");
desc = new ElectricalDataLoggerDescriptor(name, true,
"DataloggerCRTFloor", 1f, 0.5f, 0f, "\u00a76");
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
ElectricalDataLoggerDescriptor desc;
subId = 1;
name = TR_NAME(Type.NONE, "Modern Data Logger");
desc = new ElectricalDataLoggerDescriptor(name, true,
"FlatScreenMonitor", 0.0f, 1f, 0.0f, "\u00A7a");
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
ElectricalDataLoggerDescriptor desc;
subId = 2;
name = TR_NAME(Type.NONE, "Industrial Data Logger");
desc = new ElectricalDataLoggerDescriptor(name, false,
"IndustrialPanel", 0.25f, 0.5f, 1f, "\u00A7f");
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalRelay(int id) {
int subId, completId;
String name;
ElectricalRelayDescriptor desc;
{
subId = 0;
name = TR_NAME(Type.NONE, "Low Voltage Relay");
desc = new ElectricalRelayDescriptor(
name, obj.getObj("RelayBig"),
lowVoltageCableDescriptor);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Medium Voltage Relay");
desc = new ElectricalRelayDescriptor(
name, obj.getObj("RelayBig"),
meduimVoltageCableDescriptor);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
name = TR_NAME(Type.NONE, "High Voltage Relay");
desc = new ElectricalRelayDescriptor(
name, obj.getObj("relay800"),
highVoltageCableDescriptor);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 3;
name = TR_NAME(Type.NONE, "Very High Voltage Relay");
desc = new ElectricalRelayDescriptor(
name, obj.getObj("relay800"),
veryHighVoltageCableDescriptor);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Signal Relay");
desc = new ElectricalRelayDescriptor(
name, obj.getObj("RelaySmall"),
signalCableDescriptor);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalGateSource(int id) {
int subId, completId;
String name;
ElectricalGateSourceRenderObj signalsourcepot = new ElectricalGateSourceRenderObj(obj.getObj("signalsourcepot"));
ElectricalGateSourceRenderObj ledswitch = new ElectricalGateSourceRenderObj(obj.getObj("ledswitch"));
{
subId = 0;
name = TR_NAME(Type.NONE, "Signal Trimmer");
ElectricalGateSourceDescriptor desc = new ElectricalGateSourceDescriptor(name, signalsourcepot, false,
"trimmer");
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Signal Switch");
ElectricalGateSourceDescriptor desc = new ElectricalGateSourceDescriptor(name, ledswitch, true,
Eln.noSymbols ? "signalswitch" : "switch");
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Signal Button");
ElectricalGateSourceDescriptor desc = new ElectricalGateSourceDescriptor(name, ledswitch, true, "button");
desc.setWithAutoReset();
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 12;
name = TR_NAME(Type.NONE, "Wireless Button");
WirelessSignalSourceDescriptor desc = new WirelessSignalSourceDescriptor(name, ledswitch, wirelessTxRange, true);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 16;
name = TR_NAME(Type.NONE, "Wireless Switch");
WirelessSignalSourceDescriptor desc = new WirelessSignalSourceDescriptor(name, ledswitch, wirelessTxRange, false);
sixNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerLogicalGates(int id) {
Obj3D model = obj.getObj("LogicGates");
sixNodeItem.addDescriptor(0 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "NOT Chip"), model, "NOT", Not.class));
sixNodeItem.addDescriptor(1 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "AND Chip"), model, "AND", And.class));
sixNodeItem.addDescriptor(2 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "NAND Chip"), model, "NAND", Nand.class));
sixNodeItem.addDescriptor(3 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "OR Chip"), model, "OR", Or.class));
sixNodeItem.addDescriptor(4 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "NOR Chip"), model, "NOR", Nor.class));
sixNodeItem.addDescriptor(5 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "XOR Chip"), model, "XOR", Xor.class));
sixNodeItem.addDescriptor(6 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "XNOR Chip"), model, "XNOR", XNor.class));
sixNodeItem.addDescriptor(7 + (id << 6),
new PalDescriptor(TR_NAME(Type.NONE, "PAL Chip"), model));
sixNodeItem.addDescriptor(8 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "Schmitt Trigger Chip"), model, "SCHMITT",
SchmittTrigger.class));
sixNodeItem.addDescriptor(9 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "D Flip Flop Chip"), model, "DFF", DFlipFlop.class));
sixNodeItem.addDescriptor(10 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "Oscillator Chip"), model, "OSC", Oscillator.class));
sixNodeItem.addDescriptor(11 + (id << 6),
new LogicGateDescriptor(TR_NAME(Type.NONE, "JK Flip Flop Chip"), model, "JKFF", JKFlipFlop.class));
}
private void registerAnalogChips(int id) {
id <<= 6;
Obj3D model = obj.getObj("AnalogChips");
sixNodeItem.addDescriptor(id + 0,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "OpAmp"), model, "OP", OpAmp.class));
sixNodeItem.addDescriptor(id + 1, new AnalogChipDescriptor(TR_NAME(Type.NONE, "PID Regulator"), model, "PID",
PIDRegulator.class, PIDRegulatorElement.class, PIDRegulatorRender.class));
sixNodeItem.addDescriptor(id + 2,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Voltage controlled sawtooth oscillator"), model, "VCO-SAW",
VoltageControlledSawtoothOscillator.class));
sixNodeItem.addDescriptor(id + 3,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Voltage controlled sine oscillator"), model, "VCO-SIN",
VoltageControlledSineOscillator.class));
sixNodeItem.addDescriptor(id + 4,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Amplifier"), model, "AMP",
Amplifier.class, AmplifierElement.class, AmplifierRender.class));
sixNodeItem.addDescriptor(id + 5,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Voltage controlled amplifier"), model, "VCA",
VoltageControlledAmplifier.class));
sixNodeItem.addDescriptor(id + 6,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Configurable summing unit"), model, "SUM",
SummingUnit.class, SummingUnitElement.class, SummingUnitRender.class));
sixNodeItem.addDescriptor(id + 7,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Sample and hold"), model, "SAH",
SampleAndHold.class));
sixNodeItem.addDescriptor(id + 8,
new AnalogChipDescriptor(TR_NAME(Type.NONE, "Lowpass filter"), model, "LPF",
Filter.class, FilterElement.class, FilterRender.class));
}
private void registerTransformer(int id) {
int subId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "DC-DC Converter");
TransformerDescriptor desc = new TransformerDescriptor(name, obj.getObj("transformator"),
obj.getObj("feromagneticcorea"), obj.getObj("transformatorCase"), 0.5f);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerHeatFurnace(int id) {
int subId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Stone Heat Furnace");
HeatFurnaceDescriptor desc = new HeatFurnaceDescriptor(name,
"stonefurnace", 1000,
Utils.getCoalEnergyReference() * 2 / 3,// double
// nominalPower,
// double
// nominalCombustibleEnergy,
2, 500,// int combustionChamberMax,double
// combustionChamberPower,
new ThermalLoadInitializerByPowerDrop(780, -100, 10, 2) // thermal
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Fuel Heat Furnace");
FuelHeatFurnaceDescriptor desc = new FuelHeatFurnaceDescriptor(name,
obj.getObj("FuelHeater"), new ThermalLoadInitializerByPowerDrop(780, -100, 10, 2));
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerTurbine(int id) {
int subId, completId;
String name;
FunctionTable TtoU = new FunctionTable(new double[]{0, 0.1, 0.85,
1.0, 1.1, 1.15, 1.18, 1.19, 1.25}, 8.0 / 5.0);
FunctionTable PoutToPin = new FunctionTable(new double[]{0.0, 0.2,
0.4, 0.6, 0.8, 1.0, 1.3, 1.8, 2.7}, 8.0 / 5.0);
{
subId = 1;
name = TR_NAME(Type.NONE, "50V Turbine");
double RsFactor = 0.1;
double nominalU = LVU;
double nominalP = 300 * heatTurbinePowerFactor;
double nominalDeltaT = 250;
TurbineDescriptor desc = new TurbineDescriptor(name, "turbineb", lowVoltageCableDescriptor.render,
TtoU.duplicate(nominalDeltaT, nominalU), PoutToPin.duplicate(nominalP, nominalP), nominalDeltaT,
nominalU, nominalP, nominalP / 40, lowVoltageCableDescriptor.electricalRs * RsFactor, 25.0,
nominalDeltaT / 40, nominalP / (nominalU / 25), "eln:heat_turbine_50v");
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "200V Turbine");
double RsFactor = 0.10;
double nominalU = MVU;
double nominalP = 500 * heatTurbinePowerFactor;
double nominalDeltaT = 350;
TurbineDescriptor desc = new TurbineDescriptor(name, "turbinebblue", meduimVoltageCableDescriptor.render,
TtoU.duplicate(nominalDeltaT, nominalU), PoutToPin.duplicate(nominalP, nominalP), nominalDeltaT,
nominalU, nominalP, nominalP / 40, meduimVoltageCableDescriptor.electricalRs * RsFactor, 50.0,
nominalDeltaT / 40, nominalP / (nominalU / 25), "eln:heat_turbine_200v");
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 9;
SteamTurbineDescriptor desc = new SteamTurbineDescriptor(
TR_NAME(Type.NONE, "Steam Turbine"),
obj.getObj("Turbine")
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 10;
float nominalRads = 800, nominalU = 3200;
float nominalP = 4000;
GeneratorDescriptor desc = new GeneratorDescriptor(
TR_NAME(Type.NONE, "Generator"),
obj.getObj("Generator"),
highVoltageCableDescriptor,
nominalRads, nominalU,
nominalP / (nominalU / 25),
nominalP,
sixNodeThermalLoadInitializer.copy()
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 11;
GasTurbineDescriptor desc = new GasTurbineDescriptor(
TR_NAME(Type.NONE, "Gas Turbine"),
obj.getObj("GasTurbine")
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 12;
StraightJointDescriptor desc = new StraightJointDescriptor(
TR_NAME(Type.NONE, "Joint"),
obj.getObj("StraightJoint"));
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 13;
JointHubDescriptor desc = new JointHubDescriptor(
TR_NAME(Type.NONE, "Joint hub"),
obj.getObj("JointHub"));
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 14;
FlywheelDescriptor desc = new FlywheelDescriptor(
TR_NAME(Type.NONE, "Flywheel"),
obj.getObj("Flywheel"));
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 15;
TachometerDescriptor desc = new TachometerDescriptor(
TR_NAME(Type.NONE, "Tachometer"),
obj.getObj("Tachometer"));
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
public ArrayList<ItemStack> furnaceList = new ArrayList<ItemStack>();
private void registerElectricalFurnace(int id) {
int subId, completId;
String name;
furnaceList.add(new ItemStack(Blocks.furnace));
{
subId = 0;
name = TR_NAME(Type.NONE, "Electrical Furnace");
double[] PfTTable = new double[]{0, 20, 40, 80, 160, 240, 360,
540, 756, 1058.4, 1481.76};
double[] thermalPlostfTTable = new double[PfTTable.length];
for (int idx = 0; idx < thermalPlostfTTable.length; idx++) {
thermalPlostfTTable[idx] = PfTTable[idx]
* Math.pow((idx + 1.0) / thermalPlostfTTable.length, 2)
* 2;
}
FunctionTableYProtect PfT = new FunctionTableYProtect(PfTTable,
800.0, 0, 100000.0);
FunctionTableYProtect thermalPlostfT = new FunctionTableYProtect(
thermalPlostfTTable, 800.0, 0.001, 10000000.0);
ElectricalFurnaceDescriptor desc = new ElectricalFurnaceDescriptor(
name, PfT, thermalPlostfT,// thermalPlostfT;
40// thermalC;
);
electricalFurnace = desc;
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
furnaceList.add(desc.newItemStack());
// Utils.smeltRecipeList.addMachine(desc.newItemStack());
}
// Utils.smeltRecipeList.addMachine(new ItemStack(Blocks.furnace));
}
private ElectricalFurnaceDescriptor electricalFurnace;
private RecipesList maceratorRecipes = new RecipesList();
private void registerMacerator(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "50V Macerator");
MaceratorDescriptor desc = new MaceratorDescriptor(name,
"maceratora", LVU, 200,// double nominalU,double nominalP,
LVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
lowVoltageCableDescriptor,// ElectricalCableDescriptor cable
maceratorRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:macerator");
}
{
subId = 4;
name = TR_NAME(Type.NONE, "200V Macerator");
MaceratorDescriptor desc = new MaceratorDescriptor(name,
"maceratorb", MVU, 400,// double nominalU,double nominalP,
MVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cable
maceratorRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:macerator");
}
}
private RecipesList compressorRecipes = new RecipesList();
private RecipesList plateMachineRecipes = new RecipesList();
private void registerPlateMachine(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "50V Plate Machine");
PlateMachineDescriptor desc = new PlateMachineDescriptor(
name,// String name,
obj.getObj("platemachinea"),
LVU, 200,// double nominalU,double nominalP,
LVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
lowVoltageCableDescriptor,// ElectricalCableDescriptor cable
plateMachineRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:plate_machine");
}
{
subId = 4;
name = TR_NAME(Type.NONE, "200V Plate Machine");
PlateMachineDescriptor desc = new PlateMachineDescriptor(
name,// String name,
obj.getObj("platemachineb"),
MVU, 400,// double nominalU,double nominalP,
MVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cable
plateMachineRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:plate_machine");
}
}
private void registerEggIncubator(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "50V Egg Incubator");
EggIncubatorDescriptor desc = new EggIncubatorDescriptor(
name, obj.getObj("eggincubator"),
lowVoltageCableDescriptor,
LVU, 50);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerCompressor(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "50V Compressor");
CompressorDescriptor desc = new CompressorDescriptor(
name,// String name,
obj.getObj("compressora"),
LVU, 200,// double nominalU,double nominalP,
LVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
lowVoltageCableDescriptor,// ElectricalCableDescriptor cable
compressorRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:compressor_run");
desc.setEndSound(new SoundCommand("eln:compressor_end"));
}
{
subId = 4;
name = TR_NAME(Type.NONE, "200V Compressor");
CompressorDescriptor desc = new CompressorDescriptor(
name,// String name,
obj.getObj("compressorb"),
MVU, 400,// double nominalU,double nominalP,
MVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cable
compressorRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:compressor_run");
desc.setEndSound(new SoundCommand("eln:compressor_end"));
}
}
private RecipesList magnetizerRecipes = new RecipesList();
private void registerMagnetizer(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "50V Magnetizer");
MagnetizerDescriptor desc = new MagnetizerDescriptor(
name,// String name,
obj.getObj("magnetizera"),
LVU, 200,// double nominalU,double nominalP,
LVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
lowVoltageCableDescriptor,// ElectricalCableDescriptor cable
magnetizerRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:Motor");
}
{
subId = 4;
name = TR_NAME(Type.NONE, "200V Magnetizer");
MagnetizerDescriptor desc = new MagnetizerDescriptor(
name,// String name,
obj.getObj("magnetizerb"),
MVU, 400,// double nominalU,double nominalP,
MVU * 1.25,// double maximalU,
new ThermalLoadInitializer(80, -100, 10, 100000.0),// thermal,
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cable
magnetizerRecipes);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
desc.setRunningSound("eln:Motor");
}
}
private void registerSolarPanel(int id) {
int subId, completId;
GhostGroup ghostGroup;
String name;
FunctionTable diodeIfUBase;
diodeIfUBase = new FunctionTableYProtect(new double[]{0.0, 0.002,
0.005, 0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045,
0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 1.0},
1.0, 0, 1.0);
FunctionTable solarIfSBase;
solarIfSBase = new FunctionTable(new double[]{0.0, 0.1, 0.4, 0.6,
0.8, 1.0}, 1);
double LVSolarU = 59;
{
subId = 1;
name = TR_NAME(Type.NONE, "Small Solar Panel");
ghostGroup = new GhostGroup();
SolarPanelDescriptor desc = new SolarPanelDescriptor(name,// String
// name,
obj.getObj("smallsolarpannel"), null,
ghostGroup, 0, 1, 0,// GhostGroup ghostGroup, int
// solarOffsetX,int solarOffsetY,int
// solarOffsetZ,
// FunctionTable solarIfSBase,
null, LVSolarU / 4, 65.0 * solarPanelPowerFactor,// double electricalUmax,double
// electricalPmax,
0.01,// ,double electricalDropFactor
Math.PI / 2, Math.PI / 2 // alphaMin alphaMax
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
name = TR_NAME(Type.NONE, "Small Rotating Solar Panel");
ghostGroup = new GhostGroup();
SolarPanelDescriptor desc = new SolarPanelDescriptor(name,// String
// name,
obj.getObj("smallsolarpannelrot"), lowVoltageCableDescriptor.render,
ghostGroup, 0, 1, 0,// GhostGroup ghostGroup, int
// solarOffsetX,int solarOffsetY,int
// solarOffsetZ,
// FunctionTable solarIfSBase,
null, LVSolarU / 4, solarPanelBasePower * solarPanelPowerFactor,// double electricalUmax,double
// electricalPmax,
0.01,// ,double electricalDropFactor
Math.PI / 4, Math.PI / 4 * 3 // alphaMin alphaMax
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 3;
name = TR_NAME(Type.NONE, "2x3 Solar Panel");
Coordonate groundCoordinate = new Coordonate(1, 0, 0, 0);
ghostGroup = new GhostGroup();
ghostGroup.addRectangle(0, 1, 0, 0, -1, 1);
ghostGroup.removeElement(0, 0, 0);
SolarPanelDescriptor desc = new SolarPanelDescriptor(name,
obj.getObj("bigSolarPanel"), meduimVoltageCableDescriptor.render,
ghostGroup, 1, 1, 0,
groundCoordinate,
LVSolarU * 2, solarPanelBasePower * solarPanelPowerFactor * 8,
0.01,
Math.PI / 2, Math.PI / 2
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
name = TR_NAME(Type.NONE, "2x3 Rotating Solar Panel");
Coordonate groundCoordinate = new Coordonate(1, 0, 0, 0);
ghostGroup = new GhostGroup();
ghostGroup.addRectangle(0, 1, 0, 0, -1, 1);
ghostGroup.removeElement(0, 0, 0);
SolarPanelDescriptor desc = new SolarPanelDescriptor(name,
obj.getObj("bigSolarPanelrot"), meduimVoltageCableDescriptor.render,
ghostGroup, 1, 1, 1,
groundCoordinate,
LVSolarU * 2, solarPanelBasePower * solarPanelPowerFactor * 8,
0.01,
Math.PI / 8 * 3, Math.PI / 8 * 5
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerHeatingCorp(int id) {
int subId, completId;
String name;
HeatingCorpElement element;
{
subId = 0;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "Small 50V Copper Heating Corp"),// iconId,
// name,
LVU, 150,// electricalNominalU, electricalNominalP,
190,// electricalMaximalP)
lowVoltageCableDescriptor// ElectricalCableDescriptor
);
sharedItem.addElement(completId, element);
}
{
subId = 1;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "50V Copper Heating Corp"),// iconId,
// name,
LVU, 250,// electricalNominalU, electricalNominalP,
320,// electricalMaximalP)
lowVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 2;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "Small 200V Copper Heating Corp"),// iconId,
// name,
MVU, 400,// electricalNominalU, electricalNominalP,
500,// electricalMaximalP)
meduimVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 3;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "200V Copper Heating Corp"),// iconId,
// name,
MVU, 600,// electricalNominalU, electricalNominalP,
750,// electricalMaximalP)
highVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 4;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "Small 50V Iron Heating Corp"),// iconId,
// name,
LVU, 180,// electricalNominalU, electricalNominalP,
225,// electricalMaximalP)
lowVoltageCableDescriptor// ElectricalCableDescriptor
);
sharedItem.addElement(completId, element);
}
{
subId = 5;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "50V Iron Heating Corp"),// iconId,
// name,
LVU, 375,// electricalNominalU, electricalNominalP,
480,// electricalMaximalP)
lowVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 6;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "Small 200V Iron Heating Corp"),// iconId,
// name,
MVU, 600,// electricalNominalU, electricalNominalP,
750,// electricalMaximalP)
meduimVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 7;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "200V Iron Heating Corp"),// iconId,
// name,
MVU, 900,// electricalNominalU, electricalNominalP,
1050,// electricalMaximalP)
highVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 8;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "Small 50V Tungsten Heating Corp"),// iconId,
// name,
LVU, 240,// electricalNominalU, electricalNominalP,
300,// electricalMaximalP)
lowVoltageCableDescriptor// ElectricalCableDescriptor
);
sharedItem.addElement(completId, element);
}
{
subId = 9;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "50V Tungsten Heating Corp"),// iconId,
// name,
LVU, 500,// electricalNominalU, electricalNominalP,
640,// electricalMaximalP)
lowVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 10;
completId = subId + (id << 6);
element = new HeatingCorpElement(
TR_NAME(Type.NONE, "Small 200V Tungsten Heating Corp"),// iconId, name,
MVU, 800,// electricalNominalU, electricalNominalP,
1000,// electricalMaximalP)
meduimVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
{
subId = 11;
completId = subId + (id << 6);
element = new HeatingCorpElement(TR_NAME(Type.NONE, "200V Tungsten Heating Corp"),// iconId,
// name,
MVU, 1200,// electricalNominalU, electricalNominalP,
1500,// electricalMaximalP)
highVoltageCableDescriptor);
sharedItem.addElement(completId, element);
}
}
private void registerRegulatorItem(int id) {
int subId, completId;
String name;
IRegulatorDescriptor element;
{
subId = 0;
completId = subId + (id << 6);
element = new RegulatorOnOffDescriptor(TR_NAME(Type.NONE, "On/OFF Regulator 1 Percent"),
"onoffregulator", 0.01);
sharedItem.addElement(completId, element);
}
{
subId = 1;
completId = subId + (id << 6);
element = new RegulatorOnOffDescriptor(TR_NAME(Type.NONE, "On/OFF Regulator 10 Percent"),
"onoffregulator", 0.1);
sharedItem.addElement(completId, element);
}
{
subId = 8;
completId = subId + (id << 6);
element = new RegulatorAnalogDescriptor(TR_NAME(Type.NONE, "Analogic Regulator"),
"Analogicregulator");
sharedItem.addElement(completId, element);
}
}
private double incandescentLampLife;
private double economicLampLife;
private double carbonLampLife;
private double ledLampLife;
public static boolean ledLampInfiniteLife = false;
private void registerLampItem(int id) {
int subId, completId;
double[] lightPower = new double[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15, 20, 25, 30, 40};
double[] lightLevel = new double[16];
double economicPowerFactor = 0.5;
double standardGrowRate = 0.0;
for (int idx = 0; idx < 16; idx++) {
lightLevel[idx] = (idx + 0.49) / 15.0;
}
LampDescriptor element;
{
subId = 0;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "Small 50V Incandescent Light Bulb"),
"incandescentironlamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, LVU, lightPower[12], // nominalU,
// nominalP
lightLevel[12], incandescentLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 1;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "50V Incandescent Light Bulb"),
"incandescentironlamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, LVU, lightPower[14], // nominalU,
// nominalP
lightLevel[14], incandescentLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 2;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "200V Incandescent Light Bulb"),
"incandescentironlamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, MVU, lightPower[14], // nominalU,
// nominalP
lightLevel[14], incandescentLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 4;
completId = subId + (id << 6);
element = new LampDescriptor(
TR_NAME(Type.NONE, "Small 50V Carbon Incandescent Light Bulb"),
"incandescentcarbonlamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, LVU, lightPower[11], // nominalU,
// nominalP
lightLevel[11], carbonLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 5;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "50V Carbon Incandescent Light Bulb"),
"incandescentcarbonlamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, LVU, lightPower[13], // nominalU,
// nominalP
lightLevel[13], carbonLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 16;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "Small 50V Economic Light Bulb"),
"fluorescentlamp", LampDescriptor.Type.eco,
LampSocketType.Douille, LVU, lightPower[12]
* economicPowerFactor, // nominalU, nominalP
lightLevel[12], economicLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 17;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "50V Economic Light Bulb"),
"fluorescentlamp", LampDescriptor.Type.eco,
LampSocketType.Douille, LVU, lightPower[14]
* economicPowerFactor, // nominalU, nominalP
lightLevel[14], economicLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 18;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "200V Economic Light Bulb"),
"fluorescentlamp", LampDescriptor.Type.eco,
LampSocketType.Douille, MVU, lightPower[14]
* economicPowerFactor, // nominalU, nominalP
lightLevel[14], economicLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 32;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "50V Farming Lamp"),
"farminglamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, LVU, 120, // nominalU, nominalP
lightLevel[15], incandescentLampLife, 0.50 // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 36;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "200V Farming Lamp"),
"farminglamp", LampDescriptor.Type.Incandescent,
LampSocketType.Douille, MVU, 120, // nominalU, nominalP
lightLevel[15], incandescentLampLife, 0.50 // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 37;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "50V LED Bulb"),
"ledlamp", LampDescriptor.Type.LED,
LampSocketType.Douille, LVU, lightPower[14] / 2, // nominalU, nominalP
lightLevel[14], ledLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
{
subId = 38;
completId = subId + (id << 6);
element = new LampDescriptor(TR_NAME(Type.NONE, "200V LED Bulb"),
"ledlamp", LampDescriptor.Type.LED,
LampSocketType.Douille, MVU, lightPower[14] / 2, // nominalU, nominalP
lightLevel[14], ledLampLife, standardGrowRate // nominalLight,
// nominalLife
);
sharedItem.addElement(completId, element);
}
}
private void registerProtection(int id) {
int subId, completId;
String name;
{
OverHeatingProtectionDescriptor element;
subId = 0;
completId = subId + (id << 6);
element = new OverHeatingProtectionDescriptor(
TR_NAME(Type.NONE, "Overheating Protection"));
sharedItem.addElement(completId, element);
}
{
OverVoltageProtectionDescriptor element;
subId = 1;
completId = subId + (id << 6);
element = new OverVoltageProtectionDescriptor(
TR_NAME(Type.NONE, "Overvoltage Protection"));
sharedItem.addElement(completId, element);
}
}
private void registerCombustionChamber(int id) {
int subId, completId;
{
CombustionChamber element;
subId = 0;
completId = subId + (id << 6);
element = new CombustionChamber(TR_NAME(Type.NONE, "Combustion Chamber"));
sharedItem.addElement(completId, element);
}
}
private void registerFerromagneticCore(int id) {
int subId, completId;
FerromagneticCoreDescriptor element;
{
subId = 0;
completId = subId + (id << 6);
element = new FerromagneticCoreDescriptor(
TR_NAME(Type.NONE, "Cheap Ferromagnetic Core"), obj.getObj("feromagneticcorea"),// iconId,
// name,
10);
sharedItem.addElement(completId, element);
}
{
subId = 1;
completId = subId + (id << 6);
element = new FerromagneticCoreDescriptor(
TR_NAME(Type.NONE, "Average Ferromagnetic Core"), obj.getObj("feromagneticcorea"),// iconId,
// name,
4);
sharedItem.addElement(completId, element);
}
{
subId = 2;
completId = subId + (id << 6);
element = new FerromagneticCoreDescriptor(
TR_NAME(Type.NONE, "Optimal Ferromagnetic Core"), obj.getObj("feromagneticcorea"),// iconId,
// name,
1);
sharedItem.addElement(completId, element);
}
}
private static OreDescriptor oreTin, oreCopper, oreSilver;
private void registerOre() {
int id;
String name;
{
id = 1;
name = TR_NAME(Type.NONE, "Copper Ore");
OreDescriptor desc = new OreDescriptor(name, id, // int itemIconId,
// String
// name,int
// metadata,
30 * (genCopper ? 1 : 0), 6, 10, 0, 80 // int spawnRate,int
// spawnSizeMin,int
// spawnSizeMax,int spawnHeightMin,int
// spawnHeightMax
);
oreCopper = desc;
oreItem.addDescriptor(id, desc);
addToOre("oreCopper", desc.newItemStack());
}
{
id = 4;
name = TR_NAME(Type.NONE, "Lead Ore");
OreDescriptor desc = new OreDescriptor(name, id, // int itemIconId,
// String
// name,int
// metadata,
8 * (genLead ? 1 : 0), 3, 9, 0, 24 // int spawnRate,int
// spawnSizeMin,int
// spawnSizeMax,int spawnHeightMin,int
// spawnHeightMax
);
oreItem.addDescriptor(id, desc);
addToOre("oreLead", desc.newItemStack());
}
{
id = 5;
name = TR_NAME(Type.NONE, "Tungsten Ore");
OreDescriptor desc = new OreDescriptor(name, id, // int itemIconId,
// String
// name,int
// metadata,
6 * (genTungsten ? 1 : 0), 3, 9, 0, 32 // int spawnRate,int
// spawnSizeMin,int
// spawnSizeMax,int spawnHeightMin,int
// spawnHeightMax
);
oreItem.addDescriptor(id, desc);
addToOre(dictTungstenOre, desc.newItemStack());
}
{
id = 6;
name = TR_NAME(Type.NONE, "Cinnabar Ore");
OreDescriptor desc = new OreDescriptor(name, id, // int itemIconId,
// String
// name,int
// metadata,
3 * (genCinnabar ? 1 : 0), 3, 9, 0, 32 // int spawnRate,int
// spawnSizeMin,int
// spawnSizeMax,int spawnHeightMin,int
// spawnHeightMax
);
oreItem.addDescriptor(id, desc);
addToOre("oreCinnabar", desc.newItemStack());
}
}
private static GenericItemUsingDamageDescriptorWithComment dustTin,
dustCopper, dustSilver;
private static final HashMap<String, ItemStack> dictionnaryOreFromMod = new HashMap<String, ItemStack>();
private void addToOre(String name, ItemStack ore) {
OreDictionary.registerOre(name, ore);
dictionnaryOreFromMod.put(name, ore);
}
private void registerDust(int id) {
int subId, completId;
String name;
GenericItemUsingDamageDescriptorWithComment element;
{
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Copper Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
dustCopper = element;
sharedItem.addElement(completId, element);
Data.addResource(element.newItemStack());
addToOre("dustCopper", element.newItemStack());
}
{
subId = 2;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Iron Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
dustCopper = element;
sharedItem.addElement(completId, element);
Data.addResource(element.newItemStack());
addToOre("dustIron", element.newItemStack());
}
{
id = 5;
name = TR_NAME(Type.NONE, "Lead Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre("dustLead", element.newItemStack());
}
{
id = 6;
name = TR_NAME(Type.NONE, "Tungsten Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre(dictTungstenDust, element.newItemStack());
}
{
id = 7;
name = TR_NAME(Type.NONE, "Gold Dust");
element = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre("dustGold", element.newItemStack());
}
{
id = 8;
name = TR_NAME(Type.NONE, "Coal Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre("dustCoal", element.newItemStack());
}
{
id = 9;
name = TR_NAME(Type.NONE, "Alloy Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre("dustAlloy", element.newItemStack());
}
{
id = 10;
name = TR_NAME(Type.NONE, "Cinnabar Dust");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(id, element);
Data.addResource(element.newItemStack());
addToOre("dustCinnabar", element.newItemStack());
}
}
private GenericItemUsingDamageDescriptorWithComment tinIngot, copperIngot,
silverIngot, plumbIngot, tungstenIngot;
private void registerIngot(int id) {
int subId, completId;
String name;
GenericItemUsingDamageDescriptorWithComment element;
{
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Copper Ingot");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
copperIngot = element;
Data.addResource(element.newItemStack());
addToOre("ingotCopper", element.newItemStack());
}
{
subId = 4;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Lead Ingot");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
plumbIngot = element;
Data.addResource(element.newItemStack());
addToOre("ingotLead", element.newItemStack());
}
{
subId = 5;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Tungsten Ingot");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
tungstenIngot = element;
Data.addResource(element.newItemStack());
addToOre(dictTungstenIngot, element.newItemStack());
}
{
subId = 6;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Ferrite Ingot");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{"useless", "Really useless"});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
Data.addResource(element.newItemStack());
addToOre("ingotFerrite", element.newItemStack());
}
{
subId = 7;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Alloy Ingot");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
Data.addResource(element.newItemStack());
addToOre("ingotAlloy", element.newItemStack());
}
{
subId = 8;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Mercury");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{"useless", "miaou"});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
Data.addResource(element.newItemStack());
addToOre("quicksilver", element.newItemStack());
}
}
private void registerElectricalMotor(int id) {
int subId, completId;
String name;
GenericItemUsingDamageDescriptorWithComment element;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Electrical Motor");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
Data.addResource(element.newItemStack());
}
{
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Advanced Electrical Motor");
element = new GenericItemUsingDamageDescriptorWithComment(name,// iconId,
// name,
new String[]{});
sharedItem.addElement(completId, element);
// GameRegistry.registerCustomItemStack(name,
// element.newItemStack(1));
Data.addResource(element.newItemStack());
}
}
private void registerArmor() {
ItemStack stack;
String name;
{
name = TR_NAME(Type.ITEM, "Copper Helmet");
helmetCopper = (ItemArmor) (new genericArmorItem(ArmorMaterial.IRON, 2, ArmourType.Helmet, "eln:textures/armor/copper_layer_1.png", "eln:textures/armor/copper_layer_2.png")).setUnlocalizedName(name).setTextureName("eln:copper_helmet").setCreativeTab(creativeTab);
GameRegistry.registerItem(helmetCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(helmetCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Chestplate");
plateCopper = (ItemArmor) (new genericArmorItem(ArmorMaterial.IRON, 2, ArmourType.Chestplate, "eln:textures/armor/copper_layer_1.png", "eln:textures/armor/copper_layer_2.png")).setUnlocalizedName(name).setTextureName("eln:copper_chestplate").setCreativeTab(creativeTab);
GameRegistry.registerItem(plateCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(plateCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Leggings");
legsCopper = (ItemArmor) (new genericArmorItem(ArmorMaterial.IRON, 2, ArmourType.Leggings, "eln:textures/armor/copper_layer_1.png", "eln:textures/armor/copper_layer_2.png")).setUnlocalizedName(name).setTextureName("eln:copper_leggings").setCreativeTab(creativeTab);
GameRegistry.registerItem(legsCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(legsCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Boots");
bootsCopper = (ItemArmor) (new genericArmorItem(ArmorMaterial.IRON, 2, ArmourType.Boots, "eln:textures/armor/copper_layer_1.png", "eln:textures/armor/copper_layer_2.png")).setUnlocalizedName(name).setTextureName("eln:copper_boots").setCreativeTab(creativeTab);
GameRegistry.registerItem(bootsCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(bootsCopper));
}
int armorPoint;
String t1, t2;
t1 = "eln:textures/armor/ecoal_layer_1.png";
t2 = "eln:textures/armor/ecoal_layer_2.png";
double energyPerDamage = 500;
int armor, armorMarge;
ArmorMaterial eCoalMaterial = net.minecraftforge.common.util.EnumHelper.addArmorMaterial("ECoal", 10, new int[]{2, 6, 5, 2}, 9);
{
name = TR_NAME(Type.ITEM, "E-Coal Helmet");
armor = 2;
armorMarge = 1;
helmetECoal = (ItemArmor) (new ElectricalArmor(eCoalMaterial, 2, ArmourType.Helmet, t1, t2,
(armor + armorMarge) * energyPerDamage, 250.0,// double
// energyStorage,double
// chargePower
armor / 20.0, armor * energyPerDamage,// double
// ratioMax,double
// ratioMaxEnergy,
energyPerDamage// double energyPerDamage
)).setUnlocalizedName(name).setTextureName("eln:ecoal_helmet").setCreativeTab(creativeTab);
GameRegistry.registerItem(helmetECoal, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(helmetECoal));
}
{
name = TR_NAME(Type.ITEM, "E-Coal Chestplate");
armor = 6;
armorMarge = 2;
plateECoal = (ItemArmor) (new ElectricalArmor(eCoalMaterial, 2, ArmourType.Chestplate, t1, t2,
(armor + armorMarge) * energyPerDamage, 250.0,// double
// energyStorage,double
// chargePower
armor / 20.0, armor * energyPerDamage,// double
// ratioMax,double
// ratioMaxEnergy,
energyPerDamage// double energyPerDamage
)).setUnlocalizedName(name).setTextureName("eln:ecoal_chestplate").setCreativeTab(creativeTab);
GameRegistry.registerItem(plateECoal, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(plateECoal));
}
{
name = TR_NAME(Type.ITEM, "E-Coal Leggings");
armor = 5;
armorMarge = 2;
legsECoal = (ItemArmor) (new ElectricalArmor(eCoalMaterial, 2, ArmourType.Leggings, t1, t2,
(armor + armorMarge) * energyPerDamage, 250.0,// double
// energyStorage,double
// chargePower
armor / 20.0, armor * energyPerDamage,// double
// ratioMax,double
// ratioMaxEnergy,
energyPerDamage// double energyPerDamage
)).setUnlocalizedName(name).setTextureName("eln:ecoal_leggings").setCreativeTab(creativeTab);
GameRegistry.registerItem(legsECoal, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(legsECoal));
}
{
name = TR_NAME(Type.ITEM, "E-Coal Boots");
armor = 2;
armorMarge = 1;
bootsECoal = (ItemArmor) (new ElectricalArmor(eCoalMaterial, 2, ArmourType.Boots, t1, t2,
(armor + armorMarge) * energyPerDamage, 250.0,// double
// energyStorage,double
// chargePower
armor / 20.0, armor * energyPerDamage,// double
// ratioMax,double
// ratioMaxEnergy,
energyPerDamage// double energyPerDamage
)).setUnlocalizedName(name).setTextureName("eln:ecoal_boots").setCreativeTab(creativeTab);
GameRegistry.registerItem(bootsECoal, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(bootsECoal));
}
}
private void registerTool() {
ItemStack stack;
String name;
{
name = TR_NAME(Type.ITEM, "Copper Sword");
swordCopper = (new ItemSword(ToolMaterial.IRON)).setUnlocalizedName(name).setTextureName("eln:copper_sword").setCreativeTab(creativeTab);
GameRegistry.registerItem(swordCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(swordCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Hoe");
hoeCopper = (new ItemHoe(ToolMaterial.IRON)).setUnlocalizedName(name).setTextureName("eln:copper_hoe").setCreativeTab(creativeTab);
GameRegistry.registerItem(hoeCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(hoeCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Shovel");
shovelCopper = (new ItemSpade(ToolMaterial.IRON)).setUnlocalizedName(name).setTextureName("eln:copper_shovel").setCreativeTab(creativeTab);
GameRegistry.registerItem(shovelCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(shovelCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Pickaxe");
pickaxeCopper = new ItemPickaxeEln(ToolMaterial.IRON).setUnlocalizedName(name).setTextureName("eln:copper_pickaxe").setCreativeTab(creativeTab);
GameRegistry.registerItem(pickaxeCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(pickaxeCopper));
}
{
name = TR_NAME(Type.ITEM, "Copper Axe");
axeCopper = new ItemAxeEln(ToolMaterial.IRON).setUnlocalizedName(name).setTextureName("eln:copper_axe").setCreativeTab(creativeTab);
GameRegistry.registerItem(axeCopper, "Eln." + name);
GameRegistry.registerCustomItemStack(name, new ItemStack(axeCopper));
}
}
private void registerSolarTracker(int id) {
int subId, completId;
String name;
SolarTrackerDescriptor element;
{
subId = 0;
completId = subId + (id << 6);
element = new SolarTrackerDescriptor(TR_NAME(Type.NONE, "Solar Tracker") // iconId, name,
);
sharedItem.addElement(completId, element);
}
}
private void registerWindTurbine(int id) {
int subId, completId;
String name;
FunctionTable PfW = new FunctionTable(
new double[]{0.0, 0.1, 0.3, 0.5, 0.8, 1.0, 1.1, 1.15, 1.2},
8.0 / 5.0);
{
subId = 0;
name = TR_NAME(Type.NONE, "Wind Turbine");
WindTurbineDescriptor desc = new WindTurbineDescriptor(
name, obj.getObj("WindTurbineMini"), // name,Obj3D obj,
lowVoltageCableDescriptor,// ElectricalCableDescriptor
// cable,
PfW,// PfW
160 * windTurbinePowerFactor, 10,// double nominalPower,double nominalWind,
LVU * 1.18, 22,// double maxVoltage, double maxWind,
3,// int offY,
7, 2, 2,// int rayX,int rayY,int rayZ,
2, 0.07,// int blockMalusMinCount,double blockMalus
"eln:WINDTURBINE_BIG_SF", 1f // Use the wind turbine sound and play at normal volume (1 => 100%)
);
GhostGroup g = new GhostGroup();
g.addElement(0, 1, 0);
g.addElement(0, 2, -1);
g.addElement(0, 2, 1);
g.addElement(0, 3, -1);
g.addElement(0, 3, 1);
g.addRectangle(0, 0, 1, 3, 0, 0);
desc.setGhostGroup(g);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 16;
name = TR_NAME(Type.NONE, "Water Turbine");
Coordonate waterCoord = new Coordonate(1, -1, 0, 0);
WaterTurbineDescriptor desc = new WaterTurbineDescriptor(
name, obj.getObj("SmallWaterWheel"), // name,Obj3D obj,
lowVoltageCableDescriptor,// ElectricalCableDescriptor
30 * waterTurbinePowerFactor,
LVU * 1.18,
waterCoord,
"eln:water_turbine", 1f
);
GhostGroup g = new GhostGroup();
g.addRectangle(1, 1, 0, 1, -1, 1);
desc.setGhostGroup(g);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private double fuelGeneratorTankCapacity = 20 * 60;
private void registerFuelGenerator(int id) {
int subId;
{
subId = 1;
FuelGeneratorDescriptor descriptor =
new FuelGeneratorDescriptor(TR_NAME(Type.NONE, "50V Fuel Generator"), obj.getObj("FuelGenerator50V"),
lowVoltageCableDescriptor, fuelGeneratorPowerFactor * 300, LVU * 1.05, fuelGeneratorTankCapacity);
transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
{
subId = 2;
FuelGeneratorDescriptor descriptor =
new FuelGeneratorDescriptor(TR_NAME(Type.NONE, "200V Fuel Generator"), obj.getObj("FuelGenerator200V"),
meduimVoltageCableDescriptor, fuelGeneratorPowerFactor * 1500, MVU * 1.05,
fuelGeneratorTankCapacity);
transparentNodeItem.addDescriptor(subId + (id << 6), descriptor);
}
}
private void registerThermalDissipatorPassiveAndActive(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Small Passive Thermal Dissipator");
ThermalDissipatorPassiveDescriptor desc = new ThermalDissipatorPassiveDescriptor(
name,
obj.getObj("passivethermaldissipatora"),
200, -100,// double warmLimit,double coolLimit,
250, 30,// double nominalP,double nominalT,
10, 1// double nominalTao,double nominalConnectionDrop
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 32;
name = TR_NAME(Type.NONE, "Small Active Thermal Dissipator");
ThermalDissipatorActiveDescriptor desc = new ThermalDissipatorActiveDescriptor(
name,
obj.getObj("activethermaldissipatora"),
LVU, 50,// double nominalElectricalU,double
// electricalNominalP,
800,// double nominalElectricalCoolingPower,
lowVoltageCableDescriptor,// ElectricalCableDescriptor
// cableDescriptor,
130, -100,// double warmLimit,double coolLimit,
200, 30,// double nominalP,double nominalT,
10, 1// double nominalTao,double nominalConnectionDrop
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 34;
name = TR_NAME(Type.NONE, "200V Active Thermal Dissipator");
ThermalDissipatorActiveDescriptor desc = new ThermalDissipatorActiveDescriptor(
name,
obj.getObj("200vactivethermaldissipatora"),
MVU, 60,// double nominalElectricalU,double
// electricalNominalP,
1200,// double nominalElectricalCoolingPower,
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cableDescriptor,
130, -100,// double warmLimit,double coolLimit,
200, 30,// double nominalP,double nominalT,
10, 1// double nominalTao,double nominalConnectionDrop
);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerTransparentNodeMisc(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Experimental Transporter");
Coordonate[] powerLoad = new Coordonate[2];
powerLoad[0] = new Coordonate(-1, 0, 1, 0);
powerLoad[1] = new Coordonate(-1, 0, -1, 0);
GhostGroup doorOpen = new GhostGroup();
doorOpen.addRectangle(-4, -3, 2, 2, 0, 0);
GhostGroup doorClose = new GhostGroup();
doorClose.addRectangle(-2, -2, 0, 1, 0, 0);
TeleporterDescriptor desc = new TeleporterDescriptor(
name, obj.getObj("Transporter"),
highVoltageCableDescriptor,
new Coordonate(-1, 0, 0, 0), new Coordonate(-1, 1, 0, 0),
2,// int areaH
powerLoad,
doorOpen, doorClose
);
desc.setChargeSound("eln:transporter", 0.5f);
GhostGroup g = new GhostGroup();
g.addRectangle(-2, 0, 0, 1, -1, -1);
g.addRectangle(-2, 0, 0, 1, 1, 1);
g.addRectangle(-4, -1, 2, 2, 0, 0);
g.addElement(0, 1, 0);
//g.addElement(0, 2, 0);
g.addElement(-1, 0, 0, ghostBlock, ghostBlock.tFloor);
/* g.addElement(1, 0, 0,ghostBlock,ghostBlock.tLadder);
g.addElement(1, 1, 0,ghostBlock,ghostBlock.tLadder);
g.addElement(1, 2, 0,ghostBlock,ghostBlock.tLadder);*/
g.addRectangle(-3, -3, 0, 1, -1, -1);
g.addRectangle(-3, -3, 0, 1, 1, 1);
// g.addElement(-4, 0, -1);
// g.addElement(-4, 0, 1);
desc.setGhostGroup(g);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
/*if (Other.ccLoaded && ComputerProbeEnable) {
subId = 4;
name = "ComputerCraft Probe";
ComputerCraftIoDescriptor desc = new ComputerCraftIoDescriptor(
name,
obj.getObj("passivethermaldissipatora")
);
transparentNodeItem.addWithoutRegistry(subId + (id << 6), desc);
}*/
}
private void registerTurret(int id) {
{
int subId = 0;
String name = TR_NAME(Type.NONE, "800V Defence Turret");
TurretDescriptor desc = new TurretDescriptor(name, "Turret");
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerElectricalAntenna(int id) {
int subId, completId;
String name;
{
subId = 0;
ElectricalAntennaTxDescriptor desc;
name = TR_NAME(Type.NONE, "Low Power Transmitter Antenna");
double P = 250;
desc = new ElectricalAntennaTxDescriptor(name,
obj.getObj("lowpowertransmitterantenna"), 200,// int
// rangeMax,
0.9, 0.7,// double electricalPowerRatioEffStart,double
// electricalPowerRatioEffEnd,
LVU, P,// double electricalNominalVoltage,double
// electricalNominalPower,
LVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
lowVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 1;
ElectricalAntennaRxDescriptor desc;
name = TR_NAME(Type.NONE, "Low Power Receiver Antenna");
double P = 250;
desc = new ElectricalAntennaRxDescriptor(name,
obj.getObj("lowpowerreceiverantenna"), LVU, P,// double
// electricalNominalVoltage,double
// electricalNominalPower,
LVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
lowVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 2;
ElectricalAntennaTxDescriptor desc;
name = TR_NAME(Type.NONE, "Medium Power Transmitter Antenna");
double P = 1000;
desc = new ElectricalAntennaTxDescriptor(name,
obj.getObj("lowpowertransmitterantenna"), 250,// int
// rangeMax,
0.9, 0.75,// double electricalPowerRatioEffStart,double
// electricalPowerRatioEffEnd,
MVU, P,// double electricalNominalVoltage,double
// electricalNominalPower,
MVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
meduimVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 3;
ElectricalAntennaRxDescriptor desc;
name = TR_NAME(Type.NONE, "Medium Power Receiver Antenna");
double P = 1000;
desc = new ElectricalAntennaRxDescriptor(name,
obj.getObj("lowpowerreceiverantenna"), MVU, P,// double
// electricalNominalVoltage,double
// electricalNominalPower,
MVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
meduimVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 4;
ElectricalAntennaTxDescriptor desc;
name = TR_NAME(Type.NONE, "High Power Transmitter Antenna");
double P = 2000;
desc = new ElectricalAntennaTxDescriptor(name,
obj.getObj("lowpowertransmitterantenna"), 300,// int
// rangeMax,
0.95, 0.8,// double electricalPowerRatioEffStart,double
// electricalPowerRatioEffEnd,
HVU, P,// double electricalNominalVoltage,double
// electricalNominalPower,
HVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
highVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
{
subId = 5;
ElectricalAntennaRxDescriptor desc;
name = TR_NAME(Type.NONE, "High Power Receiver Antenna");
double P = 2000;
desc = new ElectricalAntennaRxDescriptor(name,
obj.getObj("lowpowerreceiverantenna"), HVU, P,// double
// electricalNominalVoltage,double
// electricalNominalPower,
HVU * 1.3, P * 1.3,// electricalMaximalVoltage,double
// electricalMaximalPower,
highVoltageCableDescriptor);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
static public GenericItemUsingDamageDescriptor multiMeterElement,
thermometerElement, allMeterElement;
private void registerMeter(int id) {
int subId, completId;
GenericItemUsingDamageDescriptor element;
{
subId = 0;
completId = subId + (id << 6);
element = new GenericItemUsingDamageDescriptor(TR_NAME(Type.NONE, "MultiMeter"));
sharedItem.addElement(completId, element);
multiMeterElement = element;
}
{
subId = 1;
completId = subId + (id << 6);
element = new GenericItemUsingDamageDescriptor(TR_NAME(Type.NONE, "Thermometer"));
sharedItem.addElement(completId, element);
thermometerElement = element;
}
{
subId = 2;
completId = subId + (id << 6);
element = new GenericItemUsingDamageDescriptor(TR_NAME(Type.NONE, "AllMeter"));
sharedItem.addElement(completId, element);
allMeterElement = element;
}
{
subId = 8;
completId = subId + (id << 6);
element = new WirelessSignalAnalyserItemDescriptor(TR_NAME(Type.NONE, "Wireless Analyser"));
sharedItem.addElement(completId, element);
}
}
public static TreeResin treeResin;
private void registerTreeResinAndRubber(int id) {
int subId, completId;
String name;
{
TreeResin descriptor;
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Tree Resin");
descriptor = new TreeResin(name);
sharedItem.addElement(completId, descriptor);
treeResin = descriptor;
addToOre("materialResin", descriptor.newItemStack());
}
{
GenericItemUsingDamageDescriptor descriptor;
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Rubber");
descriptor = new GenericItemUsingDamageDescriptor(name);
sharedItem.addElement(completId, descriptor);
addToOre("itemRubber", descriptor.newItemStack());
}
}
private void registerTreeResinCollector(int id) {
int subId, completId;
String name;
TreeResinCollectorDescriptor descriptor;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Tree Resin Collector");
descriptor = new TreeResinCollectorDescriptor(name, obj.getObj("treeresincolector"));
sixNodeItem.addDescriptor(completId, descriptor);
}
}
private void registerBatteryCharger(int id) {
int subId, completId;
String name;
BatteryChargerDescriptor descriptor;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Weak 50V Battery Charger");
descriptor = new BatteryChargerDescriptor(
name, obj.getObj("batterychargera"),
lowVoltageCableDescriptor,// ElectricalCableDescriptor
// cable,
LVU, 200// double nominalVoltage,double nominalPower
);
sixNodeItem.addDescriptor(completId, descriptor);
}
{
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "50V Battery Charger");
descriptor = new BatteryChargerDescriptor(
name, obj.getObj("batterychargera"),
lowVoltageCableDescriptor,// ElectricalCableDescriptor
// cable,
LVU, 400// double nominalVoltage,double nominalPower
);
sixNodeItem.addDescriptor(completId, descriptor);
}
{
subId = 4;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "200V Battery Charger");
descriptor = new BatteryChargerDescriptor(
name, obj.getObj("batterychargera"),
meduimVoltageCableDescriptor,// ElectricalCableDescriptor
// cable,
MVU, 1000// double nominalVoltage,double nominalPower
);
sixNodeItem.addDescriptor(completId, descriptor);
}
}
private void registerElectricalDrill(int id) {
int subId, completId;
String name;
ElectricalDrillDescriptor descriptor;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Cheap Electrical Drill");
descriptor = new ElectricalDrillDescriptor(name,// iconId, name,
8, 4000 // double operationTime,double operationEnergy
);
sharedItem.addElement(completId, descriptor);
}
{
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Average Electrical Drill");
descriptor = new ElectricalDrillDescriptor(name,// iconId, name,
5, 5000 // double operationTime,double operationEnergy
);
sharedItem.addElement(completId, descriptor);
}
{
subId = 2;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Fast Electrical Drill");
descriptor = new ElectricalDrillDescriptor(name,// iconId, name,
3, 6000 // double operationTime,double operationEnergy
);
sharedItem.addElement(completId, descriptor);
}
}
private void registerOreScanner(int id) {
int subId, completId;
String name;
OreScanner descriptor;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Ore Scanner");
descriptor = new OreScanner(name
);
sharedItem.addElement(completId, descriptor);
}
}
public static MiningPipeDescriptor miningPipeDescriptor;
private void registerMiningPipe(int id) {
int subId, completId;
String name;
MiningPipeDescriptor descriptor;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Mining Pipe");
descriptor = new MiningPipeDescriptor(name// iconId, name
);
sharedItem.addElement(completId, descriptor);
miningPipeDescriptor = descriptor;
}
}
private void registerAutoMiner(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Auto Miner");
Coordonate[] powerLoad = new Coordonate[2];
powerLoad[0] = new Coordonate(-2, -1, 1, 0);
powerLoad[1] = new Coordonate(-2, -1, -1, 0);
Coordonate lightCoord = new Coordonate(-3, 0, 0, 0);
Coordonate miningCoord = new Coordonate(-1, 0, 1, 0);
AutoMinerDescriptor desc = new AutoMinerDescriptor(name,
obj.getObj("AutoMiner"),
powerLoad, lightCoord, miningCoord,
2, 1, 0,
highVoltageCableDescriptor,
1, 50// double pipeRemoveTime,double pipeRemoveEnergy
);
GhostGroup ghostGroup = new GhostGroup();
ghostGroup.addRectangle(-2, -1, -1, 0, -1, 1);
ghostGroup.addRectangle(1, 1, -1, 0, 1, 1);
ghostGroup.addRectangle(1, 1, -1, 0, -1, -1);
ghostGroup.addElement(1, 0, 0);
ghostGroup.addElement(0, 0, 1);
ghostGroup.addElement(0, 1, 0);
ghostGroup.addElement(0, 0, -1);
ghostGroup.removeElement(-1, -1, 0);
desc.setGhostGroup(ghostGroup);
transparentNodeItem.addDescriptor(subId + (id << 6), desc);
}
}
private void registerRawCable(int id) {
int subId, completId;
String name;
{
subId = 0;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Copper Cable");
copperCableDescriptor = new CopperCableDescriptor(name);
sharedItem.addElement(completId, copperCableDescriptor);
Data.addResource(copperCableDescriptor.newItemStack());
}
{
GenericItemUsingDamageDescriptor descriptor;
subId = 1;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Iron Cable");
descriptor = new GenericItemUsingDamageDescriptor(name);
sharedItem.addElement(completId, descriptor);
Data.addResource(descriptor.newItemStack());
}
{
GenericItemUsingDamageDescriptor descriptor;
subId = 2;
completId = subId + (id << 6);
name = TR_NAME(Type.NONE, "Tungsten Cable");
descriptor = new GenericItemUsingDamageDescriptor(name);
sharedItem.addElement(completId, descriptor);
Data.addResource(descriptor.newItemStack());
}
}
private void registerBrush(int id) {
int subId, completId;
BrushDescriptor whiteDesc = null;
String name;
String[] subNames = {
TR_NAME(Type.NONE, "Black Brush"),
TR_NAME(Type.NONE, "Red Brush"),
TR_NAME(Type.NONE, "Green Brush"),
TR_NAME(Type.NONE, "Brown Brush"),
TR_NAME(Type.NONE, "Blue Brush"),
TR_NAME(Type.NONE, "Purple Brush"),
TR_NAME(Type.NONE, "Cyan Brush"),
TR_NAME(Type.NONE, "Silver Brush"),
TR_NAME(Type.NONE, "Gray Brush"),
TR_NAME(Type.NONE, "Pink Brush"),
TR_NAME(Type.NONE, "Lime Brush"),
TR_NAME(Type.NONE, "Yellow Brush"),
TR_NAME(Type.NONE, "Light Blue Brush"),
TR_NAME(Type.NONE, "Magenta Brush"),
TR_NAME(Type.NONE, "Orange Brush"),
TR_NAME(Type.NONE, "White Brush")};
for (int idx = 0; idx < 16; idx++) {
subId = idx;
name = subNames[idx];
BrushDescriptor desc = new BrushDescriptor(name);
sharedItem.addElement(subId + (id << 6), desc);
whiteDesc = desc;
}
ItemStack emptyStack = findItemStack("White Brush");
whiteDesc.setLife(emptyStack, 0);
for (int idx = 0; idx < 16; idx++) {
addShapelessRecipe(emptyStack.copy(),
new ItemStack(Blocks.wool, 1, idx),
new ItemStack(Items.iron_ingot));
}
for (int idx = 0; idx < 16; idx++) {
name = subNames[idx];
addShapelessRecipe(findItemStack(name, 1),
new ItemStack(Items.dye, 1, idx),
emptyStack.copy());
}
}
private void registerElectricalTool(int id) {
int subId, completId;
ItemStack stack;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Small Flashlight");
ElectricalLampItem desc = new ElectricalLampItem(
name,
10, 8, 20, 15, 5, 50,// int light,int range,
6000, 100// , energyStorage,discharg, charge
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Portable Electrical Mining Drill");
ElectricalPickaxe desc = new ElectricalPickaxe(
name,
8, 3,// float strengthOn,float strengthOff,
40000, 200, 800// double energyStorage,double
// energyPerBlock,double chargePower
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 12;
name = TR_NAME(Type.NONE, "Portable Electrical Axe");
ElectricalAxe desc = new ElectricalAxe(
name,
8, 3,// float strengthOn,float strengthOff,
40000, 200, 800// double energyStorage,double
// energyPerBlock,double chargePower
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
}
private void registerPortableItem(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Portable Battery");
BatteryItem desc = new BatteryItem(
name,
20000, 500, 100,// double energyStorage,double
// chargePower,double dischargePower,
2// int priority
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Portable Battery Pack");
BatteryItem desc = new BatteryItem(
name,
60000, 1500, 300,// double energyStorage,double
// chargePower,double dischargePower,
2// int priority
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 16;
name = TR_NAME(Type.NONE, "Portable Condensator");
BatteryItem desc = new BatteryItem(
name,
5000, 2000, 500,// double energyStorage,double
// chargePower,double dischargePower,
1// int priority
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 17;
name = TR_NAME(Type.NONE, "Portable Condensator Pack");
BatteryItem desc = new BatteryItem(
name,
15000, 6000, 1500,// double energyStorage,double
// chargePower,double dischargePower,
1// int priority
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
{
subId = 32;
name = TR_NAME(Type.NONE, "X-Ray Scanner");
PortableOreScannerItem desc = new PortableOreScannerItem(
name, obj.getObj("XRayScanner"),
10000, 400, 300,// double energyStorage,double
// chargePower,double dischargePower,
xRayScannerRange, (float) (Math.PI / 2),// float
// viewRange,float
// viewYAlpha,
32, 20// int resWidth,int resHeight
);
sharedItemStackOne.addElement(subId + (id << 6), desc);
}
}
private void registerFuelBurnerItem(int id) {
sharedItemStackOne.addElement(0 + (id << 6),
new FuelBurnerDescriptor(TR_NAME(Type.NONE, "Small Fuel Burner"), 5000 * fuelHeatFurnacePowerFactor, 2, 1.6f));
sharedItemStackOne.addElement(1 + (id << 6),
new FuelBurnerDescriptor(TR_NAME(Type.NONE, "Medium Fuel Burner"), 10000 * fuelHeatFurnacePowerFactor, 1, 1.4f));
sharedItemStackOne.addElement(2 + (id << 6),
new FuelBurnerDescriptor(TR_NAME(Type.NONE, "Big Fuel Burner"), 25000 * fuelHeatFurnacePowerFactor, 0, 1f));
}
private void registerMiscItem(int id) {
int subId, completId;
String name;
{
subId = 0;
name = TR_NAME(Type.NONE, "Cheap Chip");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
OreDictionary.registerOre(dictCheapChip, desc.newItemStack());
}
{
subId = 1;
name = TR_NAME(Type.NONE, "Advanced Chip");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
OreDictionary.registerOre(dictAdvancedChip, desc.newItemStack());
}
{
subId = 2;
name = TR_NAME(Type.NONE, "Machine Block");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("casingMachine", desc.newItemStack());
}
{
subId = 3;
name = TR_NAME(Type.NONE, "Electrical Probe Chip");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
}
{
subId = 4;
name = TR_NAME(Type.NONE, "Thermal Probe Chip");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
}
{
subId = 6;
name = TR_NAME(Type.NONE, "Copper Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateCopper", desc.newItemStack());
}
{
subId = 7;
name = TR_NAME(Type.NONE, "Iron Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateIron", desc.newItemStack());
}
{
subId = 8;
name = TR_NAME(Type.NONE, "Gold Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateGold", desc.newItemStack());
}
{
subId = 9;
name = TR_NAME(Type.NONE, "Lead Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateLead", desc.newItemStack());
}
{
subId = 10;
name = TR_NAME(Type.NONE, "Silicon Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateSilicon", desc.newItemStack());
}
{
subId = 11;
name = TR_NAME(Type.NONE, "Alloy Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateAlloy", desc.newItemStack());
}
{
subId = 12;
name = TR_NAME(Type.NONE, "Coal Plate");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("plateCoal", desc.newItemStack());
}
{
subId = 16;
name = TR_NAME(Type.NONE, "Silicon Dust");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("dustSilicon", desc.newItemStack());
}
{
subId = 17;
name = TR_NAME(Type.NONE, "Silicon Ingot");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("ingotSilicon", desc.newItemStack());
}
{
subId = 22;
name = TR_NAME(Type.NONE, "Machine Booster");
MachineBoosterDescriptor desc = new MachineBoosterDescriptor(name);
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 23;
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
TR_NAME(Type.NONE, "Advanced Machine Block"), new String[]{}); // TODO: Description.
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
addToOre("casingMachineAdvanced", desc.newItemStack());
}
{
subId = 28;
name = TR_NAME(Type.NONE, "Basic Magnet");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
}
{
subId = 29;
name = TR_NAME(Type.NONE, "Advanced Magnet");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
}
{
subId = 32;
name = TR_NAME(Type.NONE, "Data Logger Print");
DataLogsPrintDescriptor desc = new DataLogsPrintDescriptor(name);
dataLogsPrintDescriptor = desc;
sharedItem.addWithoutRegistry(subId + (id << 6), desc);
}
{
subId = 33;
name = TR_NAME(Type.NONE, "Signal Antenna");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, new String[]{});
sharedItem.addElement(subId + (id << 6), desc);
Data.addResource(desc.newItemStack());
}
{
subId = 40;
name = TR_NAME(Type.NONE, "Player Filter");
EntitySensorFilterDescriptor desc = new EntitySensorFilterDescriptor(name, EntityPlayer.class, 0f, 1f, 0f);
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 41;
name = TR_NAME(Type.NONE, "Monster Filter");
EntitySensorFilterDescriptor desc = new EntitySensorFilterDescriptor(name, IMob.class, 1f, 0f, 0f);
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 42;
name = TR_NAME(Type.NONE, "Animal Filter");
EntitySensorFilterDescriptor desc = new EntitySensorFilterDescriptor(name, EntityAnimal.class, .3f, .3f, 1f);
sharedItem.addElement(subId + (id << 6), desc);
}
{
subId = 48;
name = TR_NAME(Type.NONE, "Wrench");
GenericItemUsingDamageDescriptorWithComment desc = new GenericItemUsingDamageDescriptorWithComment(
name, TR("Electrical age wrench,\nCan be used to turn\nsmall wall blocks").split("\n"));
sharedItem.addElement(subId + (id << 6), desc);
wrenchItemStack = desc.newItemStack();
}
{
subId = 52;
name = TR_NAME(Type.NONE, "Dielectric");
DielectricItem desc = new DielectricItem(name, LVU);
sharedItem.addElement(subId + (id << 6), desc);
}
sharedItem.addElement(53 + (id << 6), new CaseItemDescriptor(TR_NAME(Type.NONE, "Casing")));
}
public DataLogsPrintDescriptor dataLogsPrintDescriptor;
private void recipeGround() {
addRecipe(findItemStack("Ground Cable"),
" C ",
" C ",
"CCC",
'C', findItemStack("Copper Cable"));
}
private void recipeElectricalSource() {
// Trololol
}
private void recipeElectricalCable() {
addRecipe(signalCableDescriptor.newItemStack(1),
"R",
"C",
'C', findItemStack("Iron Cable"),
'R', "itemRubber");
addRecipe(lowVoltageCableDescriptor.newItemStack(1),
"R",
"C",
'C', findItemStack("Copper Cable"),
'R', "itemRubber");
addRecipe(meduimVoltageCableDescriptor.newItemStack(1),
"R",
"C",
'C', lowVoltageCableDescriptor.newItemStack(1),
'R', "itemRubber");
addRecipe(highVoltageCableDescriptor.newItemStack(1),
"R",
"C",
'C', meduimVoltageCableDescriptor.newItemStack(1),
'R', "itemRubber");
addRecipe(signalCableDescriptor.newItemStack(6),
"RRR",
"CCC",
"RRR",
'C', new ItemStack(Items.iron_ingot),
'R', "itemRubber");
addRecipe(lowVoltageCableDescriptor.newItemStack(6),
"RRR",
"CCC",
"RRR",
'C', "ingotCopper",
'R', "itemRubber");
addRecipe(veryHighVoltageCableDescriptor.newItemStack(6),
"RRR",
"CCC",
"RRR",
'C', "ingotAlloy",
'R', "itemRubber");
}
private void recipeThermalCable() {
addRecipe(findItemStack("Copper Thermal Cable", 6),
"SSS",
"CCC",
"SSS",
'S', new ItemStack(Blocks.cobblestone),
'C', "ingotCopper");
addRecipe(findItemStack("Copper Thermal Cable", 1),
"S",
"C",
'S', new ItemStack(Blocks.cobblestone),
'C', findItemStack("Copper Cable"));
}
private void recipeLampSocket() {
addRecipe(findItemStack("Lamp Socket A", 3),
"G ",
"IG",
"G ",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Lamp Socket B Projector", 3),
" I",
"IG",
" I",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Street Light", 1),
"G",
"I",
"I",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Robust Lamp Socket", 3),
"GIG",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Flat Lamp Socket", 3),
"IGI",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Simple Lamp Socket", 3),
" I ",
"GGG",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Fluorescent Lamp Socket", 3),
" I ",
"I I",
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Suspended Lamp Socket", 2),
"I",
"G",
'G', findItemStack("Robust Lamp Socket"),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Long Suspended Lamp Socket", 2),
"I",
"I",
"G",
'G', findItemStack("Robust Lamp Socket"),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Sconce Lamp Socket", 2),
"GCG",
"GIG",
'G', new ItemStack(Blocks.glass_pane),
'C', "dustCoal",
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("50V Emergency Lamp"),
"cbc",
" l ",
" g ",
'c', findItemStack("Low Voltage Cable"),
'b', findItemStack("Portable Battery Pack"),
'l', findItemStack("50V LED Bulb"),
'g', new ItemStack(Blocks.glass_pane));
addRecipe(findItemStack("200V Emergency Lamp"),
"cbc",
" l ",
" g ",
'c', findItemStack("Medium Voltage Cable"),
'b', findItemStack("Portable Battery Pack"),
'l', findItemStack("200V LED Bulb"),
'g', new ItemStack(Blocks.glass_pane));
}
private void recipeLampSupply() {
addRecipe(findItemStack("Lamp Supply", 1),
" I ",
"ICI",
" I ",
'C', "ingotCopper",
'I', new ItemStack(Items.iron_ingot));
}
private void recipePowerSocket() {
addRecipe(findItemStack("50V Power Socket", 16),
"RUR",
"ACA",
'R', "itemRubber",
'U', findItemStack("Copper Plate"),
'A', findItemStack("Alloy Plate"),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("200V Power Socket", 16),
"RUR",
"ACA",
'R', "itemRubber",
'U', findItemStack("Copper Plate"),
'A', findItemStack("Alloy Plate"),
'C', findItemStack("Medium Voltage Cable"));
}
private void recipePassiveComponent() {
addRecipe(findItemStack("Signal Diode", 4),
" RB",
"IIR",
" RB",
'R', new ItemStack(Items.redstone),
'I', findItemStack("Iron Cable"),
'B', "itemRubber");
addRecipe(findItemStack("10A Diode", 3),
" RB",
"IIR",
" RB",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'B', "itemRubber");
addRecipe(findItemStack("25A Diode"),
"D",
"D",
"D",
'D', findItemStack("10A Diode"));
addRecipe(findItemStack("Power Capacitor"),
"cPc",
"III",
'I', new ItemStack(Items.iron_ingot),
'c', findItemStack("Iron Cable"),
'P', "plateIron");
addRecipe(findItemStack("Power Inductor"),
" P ",
"cIc",
"IPI",
'I', new ItemStack(Items.iron_ingot),
'c', findItemStack("Copper Cable"),
'P', "plateIron");
addRecipe(findItemStack("Power Resistor"),
" P ",
"c c",
"IPI",
'I', new ItemStack(Items.iron_ingot),
'c', findItemStack("Copper Cable"),
'P', "plateCopper");
addRecipe(findItemStack("Rheostat"),
" R ",
" MS",
"cmc",
'R', findItemStack("Power Resistor"),
'c', findItemStack("Copper Cable"),
'm', findItemStack("Machine Block"),
'M', findItemStack("Electrical Motor"),
'S', findItemStack("Signal Cable")
);
addRecipe(findItemStack("Thermistor"),
" P ",
"csc",
"IPI",
's', "dustSilicon",
'I', new ItemStack(Items.iron_ingot),
'c', findItemStack("Copper Cable"),
'P', "plateCopper");
addRecipe(findItemStack("Large Rheostat"),
" ",
" D ",
"CRC",
'R', findItemStack("Rheostat"),
'C', findItemStack("Copper Thermal Cable"),
'D', findItemStack("Small Passive Thermal Dissipator")
);
}
private void recipeSwitch() {
/*
* addRecipe(findItemStack("Signal Switch"), " I", " I ", "CAC", 'R', new ItemStack(Items.redstone), 'A', "itemRubber", 'I', findItemStack("Copper Cable"), 'C', findItemStack("Signal Cable"));
*
* addRecipe(findItemStack("Signal Switch with LED"), " RI", " I ", "CAC", 'R', new ItemStack(Items.redstone), 'A', "itemRubber", 'I', findItemStack("Copper Cable"), 'C', findItemStack("Signal Cable"));
*/
addRecipe(findItemStack("Low Voltage Switch"),
" I",
" I ",
"CAC",
'R', new ItemStack(Items.redstone),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("Medium Voltage Switch"),
" I",
"AIA",
"CAC",
'R', new ItemStack(Items.redstone),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Medium Voltage Cable"));
addRecipe(findItemStack("High Voltage Switch"),
"AAI",
"AIA",
"CAC",
'R', new ItemStack(Items.redstone),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("High Voltage Cable"));
addRecipe(findItemStack("Very High Voltage Switch"),
"AAI",
"AIA",
"CAC",
'R', new ItemStack(Items.redstone),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Very High Voltage Cable"));
}
private void recipeElectricalRelay() {
addRecipe(findItemStack("Low Voltage Relay"),
"GGG",
"OIO",
"CRC",
'R', new ItemStack(Items.redstone),
'O', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("Medium Voltage Relay"),
"GGG",
"OIO",
"CRC",
'R', new ItemStack(Items.redstone),
'O', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Medium Voltage Cable"));
addRecipe(findItemStack("High Voltage Relay"),
"GGG",
"OIO",
"CRC",
'R', new ItemStack(Items.redstone),
'O', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("High Voltage Cable"));
addRecipe(findItemStack("Very High Voltage Relay"),
"GGG",
"OIO",
"CRC",
'R', new ItemStack(Items.redstone),
'O', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane),
'A', "itemRubber",
'I', findItemStack("Copper Cable"),
'C', findItemStack("Very High Voltage Cable"));
addRecipe(findItemStack("Signal Relay"),
"GGG",
"OIO",
"CRC",
'R', new ItemStack(Items.redstone),
'O', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane),
'I', findItemStack("Copper Cable"),
'C', findItemStack("Signal Cable"));
}
private void recipeWirelessSignal() {
addRecipe(findItemStack("Wireless Signal Transmitter"),
" S ",
" R ",
"ICI",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'C', dictCheapChip,
'S', findItemStack("Signal Antenna"));
addRecipe(findItemStack("Wireless Signal Repeater"),
"S S",
"R R",
"ICI",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'C', dictCheapChip,
'S', findItemStack("Signal Antenna"));
addRecipe(findItemStack("Wireless Signal Receiver"),
" S ",
"ICI",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'C', dictCheapChip,
'S', findItemStack("Signal Antenna"));
}
private void recipeChips() {
addRecipe(findItemStack("NOT Chip"),
" ",
"cCr",
" ",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("AND Chip"),
" c ",
"cCc",
" c ",
'C', dictCheapChip,
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("NAND Chip"),
" c ",
"cCr",
" c ",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("OR Chip"),
" r ",
"rCr",
" r ",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone));
addRecipe(findItemStack("NOR Chip"),
" r ",
"rCc",
" r ",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("XOR Chip"),
" rr",
"rCr",
" rr",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone));
addRecipe(findItemStack("XNOR Chip"),
" rr",
"rCc",
" rr",
'C', dictCheapChip,
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("PAL Chip"),
"rcr",
"cCc",
"rcr",
'C', dictAdvancedChip,
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("Schmitt Trigger Chip"),
" ",
"cCc",
" ",
'C', dictAdvancedChip,
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("D Flip Flop Chip"),
" ",
"cCc",
" p ",
'C', dictAdvancedChip,
'p', findItemStack("Copper Plate"),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("Oscillator Chip"),
"pdp",
"cCc",
" ",
'C', dictAdvancedChip,
'p', findItemStack("Copper Plate"),
'c', findItemStack("Copper Cable"),
'd', findItemStack("Dielectric"));
addRecipe(findItemStack("JK Flip Flop Chip"),
" p ",
"cCc",
" p ",
'C', dictAdvancedChip,
'p', findItemStack("Copper Plate"),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("Amplifier"),
" r",
"cCc",
" ",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("OpAmp"),
" r",
"cCc",
" c ",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("Configurable summing unit"),
" cr",
"cCc",
" c ",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("Sample and hold"),
" rr",
"cCc",
" c ",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("Voltage controlled sine oscillator"),
"rrr",
"cCc",
" ",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("Voltage controlled sawtooth oscillator"),
" ",
"cCc",
"rrr",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("PID Regulator"),
"rrr",
"cCc",
"rcr",
'r', new ItemStack(Items.redstone),
'c', findItemStack("Copper Cable"),
'C', dictAdvancedChip);
addRecipe(findItemStack("Lowpass filter"),
"CdC",
"cDc",
" s ",
'd', findItemStack("Dielectric"),
'c', findItemStack("Copper Cable"),
'C', findItemStack("Copper Plate"),
'D', findItemStack("Coal Dust"),
's', dictCheapChip);
}
private void recipeTransformer() {
addRecipe(findItemStack("DC-DC Converter"),
"C C",
"III",
'C', findItemStack("Copper Cable"),
'I', new ItemStack(Items.iron_ingot));
}
private void recipeHeatFurnace() {
addRecipe(findItemStack("Stone Heat Furnace"),
"BBB",
"BIB",
"BiB",
'B', new ItemStack(Blocks.stone),
'i', findItemStack("Copper Thermal Cable"),
'I', findItemStack("Combustion Chamber"));
addRecipe(findItemStack("Fuel Heat Furnace"),
"IcI",
"mCI",
"IiI",
'c', findItemStack("Cheap Chip"),
'm', findItemStack("Electrical Motor"),
'C', new ItemStack(Items.cauldron),
'I', new ItemStack(Items.iron_ingot),
'i', findItemStack("Copper Thermal Cable"));
}
private void recipeTurbine() {
addRecipe(findItemStack("50V Turbine"),
" m ",
"HMH",
" E ",
'M', findItemStack("Machine Block"),
'E', findItemStack("Low Voltage Cable"),
'H', findItemStack("Copper Thermal Cable"),
'm', findItemStack("Electrical Motor")
);
addRecipe(findItemStack("200V Turbine"),
"ImI",
"HMH",
"IEI",
'I', "itemRubber",
'M', findItemStack("Advanced Machine Block"),
'E', findItemStack("Medium Voltage Cable"),
'H', findItemStack("Copper Thermal Cable"),
'm', findItemStack("Advanced Electrical Motor"));
addRecipe(findItemStack("Generator"),
"mmm",
"ama",
" ME",
'm', findItemStack("Advanced Electrical Motor"),
'M', findItemStack("Advanced Machine Block"),
'a', firstExistingOre("ingotAluminum", "ingotIron"),
'E', findItemStack("High Voltage Cable")
);
addRecipe(findItemStack("Steam Turbine"),
" a ",
"aAa",
" M ",
'a', firstExistingOre("ingotAluminum", "ingotIron"),
'A', firstExistingOre("blockAluminum", "blockIron"),
'M', findItemStack("Advanced Machine Block")
);
addRecipe(findItemStack("Gas Turbine"),
"msH",
"sSs",
" M ",
'm', findItemStack("Advanced Electrical Motor"),
'H', findItemStack("Copper Thermal Cable"),
's', firstExistingOre("ingotSteel", "ingotIron"),
'S', firstExistingOre("blockSteel", "blockIron"),
'M', findItemStack("Advanced Machine Block")
);
addRecipe(findItemStack("Joint"),
" ",
"iii",
" m ",
'i', "ingotIron",
'm', findItemStack("Machine Block")
);
addRecipe(findItemStack("Joint hub"),
" i ",
"iii",
" m ",
'i', "ingotIron",
'm', findItemStack("Machine Block")
);
addRecipe(findItemStack("Flywheel"),
"iIi",
"ImI",
"iIi",
'i', "ingotIron",
'I', "blockIron",
'm', findItemStack("Machine Block")
);
addRecipe(findItemStack("Tachometer"),
"p ",
"iii",
"cm ",
'i', "ingotIron",
'm', findItemStack("Machine Block"),
'p', findItemStack("Electrical Probe Chip"),
'c', findItemStack("Signal Cable")
);
}
private void recipeBattery() {
addRecipe(findItemStack("Cost Oriented Battery"),
"C C",
"PPP",
"PPP",
'C', findItemStack("Low Voltage Cable"),
'P', "ingotLead",
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Capacity Oriented Battery"),
"PPP",
"PBP",
"PPP",
'B', findItemStack("Cost Oriented Battery"),
'P', "ingotLead");
addRecipe(findItemStack("Voltage Oriented Battery"),
"PPP",
"PBP",
"PPP",
'B', findItemStack("Cost Oriented Battery"),
'P', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Current Oriented Battery"),
"PPP",
"PBP",
"PPP",
'B', findItemStack("Cost Oriented Battery"),
'P', "ingotCopper");
addRecipe(findItemStack("Life Oriented Battery"),
"P P",
" B ",
"P P",
'B', findItemStack("Cost Oriented Battery"),
'P', new ItemStack(Items.gold_ingot));
addRecipe(findItemStack("Single-use Battery"),
"ppp",
"III",
"ppp",
'C', findItemStack("Low Voltage Cable"),
'p', new ItemStack(Items.coal, 1, 0),
'I', "ingotCopper");
addRecipe(findItemStack("Single-use Battery"),
"ppp",
"III",
"ppp",
'C', findItemStack("Low Voltage Cable"),
'p', new ItemStack(Items.coal, 1, 1),
'I', "ingotCopper");
}
private void recipeGridDevices(HashSet<String> oreNames) {
int poleRecipes = 0;
for (String oreName : new String[]{
"ingotAluminum",
"ingotAluminium",
"ingotSteel",
}) {
if (oreNames.contains(oreName)) {
addRecipe(findItemStack("Utility Pole"),
"WWW",
"IWI",
" W ",
'W', "logWood",
'I', oreName
);
poleRecipes++;
}
}
if (poleRecipes == 0) {
// Really?
addRecipe(findItemStack("Utility Pole"),
"WWW",
"IWI",
" W ",
'I', "ingotIron"
);
}
addRecipe(findItemStack("Utility Pole w/DC-DC Converter"),
"HHH",
" TC",
" PH",
'P', findItemStack("Utility Pole"),
'H', findItemStack("High Voltage Cable"),
'C', findItemStack("Optimal Ferromagnetic Core"),
'T', findItemStack("DC-DC Converter")
);
// if (oreNames.contains("sheetPlastic")) {
// addRecipe(findItemStack("Downlink"),
// "H H",
// "PMP",
// "PPP",
// 'P', "sheetPlastic",
// 'M', findItemStack("Machine Block"),
// 'H', findItemStack("High Voltage Cable")
// );
// } else {
// addRecipe(findItemStack("Downlink"),
// "H H",
// "PMP",
// "PPP",
// 'P', "itemRubber",
// 'M', findItemStack("Machine Block"),
// 'H', findItemStack("High Voltage Cable")
// );
// }
}
private void recipeElectricalFurnace() {
addRecipe(findItemStack("Electrical Furnace"),
"III",
"IFI",
"ICI",
'C', findItemStack("Low Voltage Cable"),
'F', new ItemStack(Blocks.furnace),
'I', new ItemStack(Items.iron_ingot));
}
private void recipeSixNodeMisc() {
addRecipe(findItemStack("Analog Watch"),
"crc",
"III",
'c', findItemStack("Iron Cable"),
'r', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Digital Watch"),
"rcr",
"III",
'c', findItemStack("Iron Cable"),
'r', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Hub"),
"I I",
" c ",
"I I",
'c', findItemStack("Copper Cable"),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Energy Meter"),
"IcI",
"IRI",
"IcI",
'c', findItemStack("Copper Cable"),
'R', dictCheapChip,
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Advanced Energy Meter"),
" c ",
"PRP",
" c ",
'c', findItemStack("Copper Cable"),
'R', dictAdvancedChip,
'P', findItemStack("Iron Plate"));
}
private void recipeAutoMiner() {
addRecipe(findItemStack("Auto Miner"),
"MCM",
"BOB",
" P ",
'C', dictAdvancedChip,
'O', findItemStack("Ore Scanner"),
'B', findItemStack("Advanced Machine Block"),
'M', findItemStack("Advanced Electrical Motor"),
'P', findItemStack("Mining Pipe"));
}
private void recipeWindTurbine() {
addRecipe(findItemStack("Wind Turbine"),
" I ",
"IMI",
" B ",
'B', findItemStack("Machine Block"),
'I', "plateIron",
'M', findItemStack("Electrical Motor"));
addRecipe(findItemStack("Water Turbine"),
" I",
"BMI",
" I",
'I', "plateIron",
'B', findItemStack("Machine Block"),
'M', findItemStack("Electrical Motor"));
}
private void recipeFuelGenerator() {
addRecipe(findItemStack("50V Fuel Generator"),
"III",
" BA",
"CMC",
'I', "plateIron",
'B', findItemStack("Machine Block"),
'A', findItemStack("Analogic Regulator"),
'C', findItemStack("Low Voltage Cable"),
'M', findItemStack("Electrical Motor"));
addRecipe(findItemStack("200V Fuel Generator"),
"III",
" BA",
"CMC",
'I', "plateIron",
'B', findItemStack("Advanced Machine Block"),
'A', findItemStack("Analogic Regulator"),
'C', findItemStack("Medium Voltage Cable"),
'M', findItemStack("Advanced Electrical Motor"));
}
private void recipeSolarPanel() {
addRecipe(findItemStack("Small Solar Panel"),
"III",
"CSC",
"III",
'S', "plateSilicon",
'I', new ItemStack(Items.iron_ingot),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("Small Rotating Solar Panel"),
"ISI",
"I I",
'S', findItemStack("Small Solar Panel"),
'M', findItemStack("Electrical Motor"),
'I', new ItemStack(Items.iron_ingot));
for (String metal : new String[] { "blockSteel", "blockAluminum", "blockAluminium", "casingMachineAdvanced" }) {
for (String panel : new String[] {"Small Solar Panel", "Small Rotating Solar Panel"}) {
addRecipe(findItemStack("2x3 Solar Panel"),
"PPP",
"PPP",
"I I",
'P', findItemStack(panel),
'I', metal);
}
}
addRecipe(findItemStack("2x3 Rotating Solar Panel"),
"ISI",
"IMI",
"I I",
'S', findItemStack("2x3 Solar Panel"),
'M', findItemStack("Electrical Motor"),
'I', new ItemStack(Items.iron_ingot));
}
private void recipeThermalDissipatorPassiveAndActive() {
addRecipe(
findItemStack("Small Passive Thermal Dissipator"),
"I I",
"III",
"CIC",
'I', "ingotCopper",
'C', findItemStack("Copper Thermal Cable"));
/* addRecipe(
findItemStack("Small Active Thermal Dissipator"),
"RMR",
"I I",
"III",
'I', "ingotCopper",
'M', findItemStack("Electrical Motor"),
'R', "itemRubber",
'C', findItemStack("Copper Thermal Cable"));*/
addRecipe(
findItemStack("Small Active Thermal Dissipator"),
"RMR",
" D ",
'D', findItemStack("Small Passive Thermal Dissipator"),
'M', findItemStack("Electrical Motor"),
'R', "itemRubber");
/* addRecipe(
findItemStack("200V Active Thermal Dissipator"),
"RMR",
"I I",
"III",
'I', "ingotCopper",
'M', findItemStack("Advanced Electrical Motor"),
'R', "itemRubber",
'C', findItemStack("Copper Thermal Cable"));*/
addRecipe(
findItemStack("200V Active Thermal Dissipator"),
"RMR",
" D ",
'D', findItemStack("Small Passive Thermal Dissipator"),
'M', findItemStack("Advanced Electrical Motor"),
'R', "itemRubber");
}
private void recipeGeneral() {
Utils.addSmelting(treeResin.parentItem,
treeResin.parentItemDamage, findItemStack("Rubber", 1), 0f);
}
private void recipeHeatingCorp() {
addRecipe(findItemStack("Small 50V Copper Heating Corp"),
"C C",
"CCC",
"C C",
'C', findItemStack("Copper Cable"));
addRecipe(findItemStack("50V Copper Heating Corp"),
"C C",
"CCC",
"C C",
'C', "ingotCopper");
addRecipe(findItemStack("Small 200V Copper Heating Corp"),
"CC",
'C', findItemStack("50V Copper Heating Corp"));
addRecipe(findItemStack("200V Copper Heating Corp"),
"CC",
'C', findItemStack("Small 200V Copper Heating Corp"));
addRecipe(findItemStack("Small 50V Iron Heating Corp"),
"C C",
"CCC",
"C C", 'C', findItemStack("Iron Cable"));
addRecipe(findItemStack("50V Iron Heating Corp"),
"C C",
"CCC",
"C C",
'C', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Small 200V Iron Heating Corp"),
"CC",
'C', findItemStack("50V Iron Heating Corp"));
addRecipe(findItemStack("200V Iron Heating Corp"),
"CC",
'C', findItemStack("Small 200V Iron Heating Corp"));
addRecipe(findItemStack("Small 50V Tungsten Heating Corp"),
"C C",
"CCC",
"C C",
'C', findItemStack("Tungsten Cable"));
addRecipe(findItemStack("50V Tungsten Heating Corp"),
"C C",
"CCC",
"C C",
'C', findItemStack("Tungsten Ingot"));
addRecipe(findItemStack("Small 200V Tungsten Heating Corp"),
"CC",
'C', findItemStack("50V Tungsten Heating Corp"));
addRecipe(findItemStack("200V Tungsten Heating Corp"),
"CC",
'C', findItemStack("Small 200V Tungsten Heating Corp"));
}
private void recipeRegulatorItem() {
addRecipe(findItemStack("On/OFF Regulator 10 Percent", 1),
"R R",
" R ",
" I ",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("On/OFF Regulator 1 Percent", 1),
"RRR",
" I ",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Analogic Regulator", 1),
"R R",
" C ",
" I ",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'C', dictCheapChip);
}
private void recipeLampItem() {
// Tungsten
addRecipe(
findItemStack("Small 50V Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', dictTungstenIngot,
'S', findItemStack("Copper Cable"));
addRecipe(findItemStack("50V Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', dictTungstenIngot,
'S', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("200V Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', dictTungstenIngot,
'S', findItemStack("Medium Voltage Cable"));
// CARBON
addRecipe(findItemStack("Small 50V Carbon Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.coal),
'S', findItemStack("Copper Cable"));
addRecipe(findItemStack("Small 50V Carbon Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.coal, 1, 1),
'S', findItemStack("Copper Cable"));
addRecipe(
findItemStack("50V Carbon Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.coal),
'S', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("50V Carbon Incandescent Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.coal, 1, 1),
'S', findItemStack("Low Voltage Cable"));
addRecipe(
findItemStack("Small 50V Economic Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.glowstone_dust),
'S', findItemStack("Copper Cable"));
addRecipe(findItemStack("50V Economic Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.glowstone_dust),
'S', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("200V Economic Light Bulb", 4),
" G ",
"GFG",
" S ",
'G', new ItemStack(Blocks.glass_pane),
'F', new ItemStack(Items.glowstone_dust),
'S', findItemStack("Medium Voltage Cable"));
addRecipe(findItemStack("50V Farming Lamp", 2),
"GGG",
"FFF",
"GSG",
'G', new ItemStack(Blocks.glass_pane),
'F', dictTungstenIngot,
'S', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("200V Farming Lamp", 2),
"GGG",
"FFF",
"GSG",
'G', new ItemStack(Blocks.glass_pane),
'F', dictTungstenIngot,
'S', findItemStack("Medium Voltage Cable"));
addRecipe(findItemStack("50V LED Bulb", 2),
"GGG",
"SSS",
" C ",
'G', new ItemStack(Blocks.glass_pane),
'S', findItemStack("Silicon Ingot"),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("200V LED Bulb", 2),
"GGG",
"SSS",
" C ",
'G', new ItemStack(Blocks.glass_pane),
'S', findItemStack("Silicon Ingot"),
'C', findItemStack("Medium Voltage Cable"));
}
private void recipeProtection() {
addRecipe(findItemStack("Overvoltage Protection", 4),
"SCD",
'S', findItemStack("Electrical Probe Chip"),
'C', dictCheapChip,
'D', new ItemStack(Items.redstone));
addRecipe(findItemStack("Overheating Protection", 4),
"SCD",
'S', findItemStack("Thermal Probe Chip"),
'C', dictCheapChip,
'D', new ItemStack(Items.redstone));
}
private void recipeCombustionChamber() {
addRecipe(findItemStack("Combustion Chamber"),
" L ",
"L L",
" L ",
'L', new ItemStack(Blocks.stone));
}
private void recipeFerromagneticCore() {
addRecipe(findItemStack("Cheap Ferromagnetic Core"),
"LLL",
"L ",
"LLL",
'L', Items.iron_ingot);
addRecipe(findItemStack("Average Ferromagnetic Core"),
"PCP",
'C', findItemStack("Cheap Ferromagnetic Core"),
'P', "plateIron");
addRecipe(findItemStack("Optimal Ferromagnetic Core"),
"P",
"C",
"P",
'C', findItemStack("Average Ferromagnetic Core"),
'P', "plateIron");
}
private void recipeIngot() {
// Done
}
private void recipeDust() {
addShapelessRecipe(findItemStack("Alloy Dust", 2),
"dustIron",
"dustIron",
"dustCoal",
dictTungstenDust);
}
private void addShapelessRecipe(ItemStack output, Object... params) {
GameRegistry.addRecipe(new ShapelessOreRecipe(output, params));
}
private void recipeElectricalMotor() {
addRecipe(findItemStack("Electrical Motor"),
" C ",
"III",
"C C",
'I', new ItemStack(Items.iron_ingot),
'C', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("Advanced Electrical Motor"),
"RCR",
"MIM",
"CRC",
'M', findItemStack("Advanced Magnet"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone),
'C', findItemStack("Medium Voltage Cable"));
// TODO
}
private void recipeSolarTracker() {
addRecipe(findItemStack("Solar Tracker", 4),
"VVV",
"RQR",
"III",
'Q', new ItemStack(Items.quartz),
'V', new ItemStack(Blocks.glass_pane),
'R', new ItemStack(Items.redstone),
'G', new ItemStack(Items.gold_ingot),
'I', new ItemStack(Items.iron_ingot));
}
private void recipeDynamo() {
}
private void recipeWindRotor() {
}
private void recipeMeter() {
addRecipe(findItemStack("MultiMeter"),
"RGR",
"RER",
"RCR",
'G', new ItemStack(Blocks.glass_pane),
'C', findItemStack("Electrical Probe Chip"),
'E', new ItemStack(Items.redstone),
'R', "itemRubber");
addRecipe(findItemStack("Thermometer"),
"RGR",
"RER",
"RCR",
'G', new ItemStack(Blocks.glass_pane),
'C', findItemStack("Thermal Probe Chip"),
'E', new ItemStack(Items.redstone),
'R', "itemRubber");
addShapelessRecipe(findItemStack("AllMeter"),
findItemStack("MultiMeter"),
findItemStack("Thermometer"));
addRecipe(findItemStack("Wireless Analyser"),
" S ",
"RGR",
"RER",
'G', new ItemStack(Blocks.glass_pane),
'S', findItemStack("Signal Antenna"),
'E', new ItemStack(Items.redstone),
'R', "itemRubber");
}
private void recipeElectricalDrill() {
addRecipe(findItemStack("Cheap Electrical Drill"),
"CMC",
" T ",
" P ",
'T', findItemStack("Mining Pipe"),
'C', dictCheapChip,
'M', findItemStack("Electrical Motor"),
'P', new ItemStack(Items.iron_pickaxe));
addRecipe(findItemStack("Average Electrical Drill"),
"RCR",
" D ",
" d ", 'R', Items.redstone,
'C', dictCheapChip,
'D', findItemStack("Cheap Electrical Drill"),
'd', new ItemStack(Items.diamond));
addRecipe(findItemStack("Fast Electrical Drill"),
"MCM",
" T ",
" P ",
'T', findItemStack("Mining Pipe"),
'C', dictAdvancedChip,
'M', findItemStack("Advanced Electrical Motor"),
'P', new ItemStack(Items.diamond_pickaxe));
}
private void recipeOreScanner() {
addRecipe(findItemStack("Ore Scanner"),
"IGI",
"RCR",
"IGI",
'C', dictCheapChip,
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Items.gold_ingot));
}
private void recipeMiningPipe() {
addRecipe(findItemStack("Mining Pipe", 4),
"A",
"A",
"A",
'A', "ingotAlloy");
}
private void recipeTreeResinAndRubber() {
addRecipe(findItemStack("Tree Resin Collector"),
"W W",
"WW ", 'W', "plankWood");
addRecipe(findItemStack("Tree Resin Collector"),
"W W",
" WW", 'W', "plankWood");
}
private void recipeRawCable() {
addRecipe(findItemStack("Copper Cable", 6),
"III",
'I', "ingotCopper");
addRecipe(findItemStack("Iron Cable", 6),
"III",
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Tungsten Cable", 6),
"III",
'I', dictTungstenIngot);
}
private void recipeBatteryItem() {
addRecipe(findItemStack("Portable Battery"),
" I ",
"IPI",
"IPI",
'P', "ingotLead",
'I', new ItemStack(Items.iron_ingot));
addShapelessRecipe(
findItemStack("Portable Battery Pack"),
findItemStack("Portable Battery"), findItemStack("Portable Battery"), findItemStack("Portable Battery"));
}
private void recipeElectricalTool() {
addRecipe(findItemStack("Small Flashlight"),
"GLG",
"IBI",
" I ",
'L', findItemStack("50V Incandescent Light Bulb"),
'B', findItemStack("Portable Battery"),
'G', new ItemStack(Blocks.glass_pane),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Portable Electrical Mining Drill"),
" T ",
"IBI",
" I ",
'T', findItemStack("Average Electrical Drill"),
'B', findItemStack("Portable Battery"),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Portable Electrical Axe"),
" T ",
"IMI",
"IBI",
'T', new ItemStack(Items.iron_axe),
'B', findItemStack("Portable Battery"),
'M', findItemStack("Electrical Motor"),
'I', new ItemStack(Items.iron_ingot));
if (xRayScannerCanBeCrafted) {
addRecipe(findItemStack("X-Ray Scanner"),
"PGP",
"PCP",
"PBP",
'C', dictAdvancedChip,
'B', findItemStack("Portable Battery"),
'P', new ItemStack(Items.iron_ingot),
'G', findItemStack("Ore Scanner"));
}
}
private void recipeECoal() {
addRecipe(findItemStack("E-Coal Helmet"),
"PPP",
"PCP",
'P', "plateCoal",
'C', dictAdvancedChip);
addRecipe(findItemStack("E-Coal Boots"),
" C ",
"P P",
"P P",
'P', "plateCoal",
'C', dictAdvancedChip);
addRecipe(findItemStack("E-Coal Chestplate"),
"P P",
"PCP",
"PPP",
'P', "plateCoal",
'C', dictAdvancedChip);
addRecipe(findItemStack("E-Coal Leggings"),
"PPP",
"PCP",
"P P",
'P', "plateCoal",
'C', dictAdvancedChip);
}
private void recipePortableCapacitor() {
addRecipe(findItemStack("Portable Condensator"),
"RcR",
"wCw",
"RcR",
'C', new ItemStack(Items.redstone),
'R', "itemRubber",
'w', findItemStack("Copper Cable"),
'c', "plateCopper");
addShapelessRecipe(findItemStack("Portable Condensator Pack"),
findItemStack("Portable Condensator"),
findItemStack("Portable Condensator"),
findItemStack("Portable Condensator"));
}
private void recipeMiscItem() {
addRecipe(findItemStack("Cheap Chip"),
" R ",
"RSR",
" R ",
'S', "ingotSilicon",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Advanced Chip"),
"LRL",
"RCR",
"LRL",
'C', dictCheapChip,
'L', "ingotSilicon",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Machine Block"),
"LLL",
"LcL",
"LLL",
'L', new ItemStack(Items.iron_ingot),
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("Advanced Machine Block"),
" C ",
"CcC",
" C ",
'C', "plateAlloy",
'L', "ingotAlloy",
'c', findItemStack("Copper Cable"));
addRecipe(findItemStack("Electrical Probe Chip"),
" R ",
"RCR",
" R ",
'C', findItemStack("High Voltage Cable"),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Thermal Probe Chip"),
" C ",
"RIR",
" C ",
'G', new ItemStack(Items.gold_ingot),
'I', new ItemStack(Items.iron_ingot),
'C', "ingotCopper",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Signal Antenna"),
"c",
"c",
'c', findItemStack("Iron Cable"));
addRecipe(findItemStack("Machine Booster"),
"m",
"c",
"m",
'm', findItemStack("Electrical Motor"),
'c', dictAdvancedChip);
addRecipe(findItemStack("Wrench"),
" c ",
"cc ",
" c",
'c', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Player Filter"),
" g",
"gc",
" g",
'g', new ItemStack(Blocks.glass_pane),
'c', new ItemStack(Items.dye, 1, 2));
addRecipe(findItemStack("Monster Filter"),
" g",
"gc",
" g",
'g', new ItemStack(Blocks.glass_pane),
'c', new ItemStack(Items.dye, 1, 1));
addRecipe(findItemStack("Casing", 8),
"ppp",
"p p",
"ppp",
'p', findItemStack("Iron Plate"));
}
private void recipeMacerator() {
float f = 4000;
maceratorRecipes.addRecipe(new Recipe(findItemStack("Copper Ore"),
new ItemStack[]{findItemStack("Copper Dust", 2)}, 1.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.iron_ore),
new ItemStack[]{findItemStack("Iron Dust", 2)}, 1.5 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.gold_ore),
new ItemStack[]{findItemStack("Gold Dust", 2)}, 3.0 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Lead Ore"),
new ItemStack[]{findItemStack("Lead Dust", 2)}, 2.0 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Tungsten Ore"),
new ItemStack[]{findItemStack("Tungsten Dust", 2)}, 2.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Items.coal, 1, 0),
new ItemStack[]{findItemStack("Coal Dust", 2)}, 1.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Items.coal, 1, 1),
new ItemStack[]{findItemStack("Coal Dust", 2)}, 1.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.sand, 1),
new ItemStack[]{findItemStack("Silicon Dust", 1)}, 3.0 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Cinnabar Ore"),
new ItemStack[]{findItemStack("Cinnabar Dust", 2)}, 2.0 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Copper Ingot"),
new ItemStack[]{findItemStack("Copper Dust", 1)}, 0.5 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Items.iron_ingot),
new ItemStack[]{findItemStack("Iron Dust", 1)}, 0.5 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Items.gold_ingot),
new ItemStack[]{findItemStack("Gold Dust", 1)}, 0.5 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Lead Ingot"),
new ItemStack[]{findItemStack("Lead Dust", 1)}, 0.5 * f));
maceratorRecipes.addRecipe(new Recipe(findItemStack("Tungsten Ingot"),
new ItemStack[]{findItemStack("Tungsten Dust", 1)}, 0.5 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.cobblestone),
new ItemStack[]{new ItemStack(Blocks.gravel)}, 1.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.gravel),
new ItemStack[]{new ItemStack(Items.flint)}, 1.0 * f));
maceratorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.dirt),
new ItemStack[]{new ItemStack(Blocks.sand)}, 1.0 * f));
}
private void recipeMaceratorModOres() {
float f = 4000;
// AE2:
recipeMaceratorModOre(f * 3f, "oreCertusQuartz", "dustCertusQuartz", 3);
recipeMaceratorModOre(f * 1.5f, "crystalCertusQuartz", "dustCertusQuartz", 1);
recipeMaceratorModOre(f * 3f, "oreNetherQuartz", "dustNetherQuartz", 3);
recipeMaceratorModOre(f * 1.5f, "crystalNetherQuartz", "dustNetherQuartz", 1);
recipeMaceratorModOre(f * 1.5f, "crystalFluix", "dustFluix", 1);
}
private void recipeMaceratorModOre(float f, String inputName, String outputName, int outputCount) {
if (!OreDictionary.doesOreNameExist(inputName)) {
LogWrapper.info("No entries for oredict: " + inputName);
return;
}
if (!OreDictionary.doesOreNameExist(outputName)) {
LogWrapper.info("No entries for oredict: " + outputName);
return;
}
ArrayList<ItemStack> inOres = OreDictionary.getOres(inputName);
ArrayList<ItemStack> outOres = OreDictionary.getOres(outputName);
if (inOres.size() == 0) {
LogWrapper.info("No ores in oredict entry: " + inputName);
}
if (outOres.size() == 0) {
LogWrapper.info("No ores in oredict entry: " + outputName);
return;
}
ItemStack output = outOres.get(0).copy();
output.stackSize = outputCount;
LogWrapper.info("Adding mod recipe from " + inputName + " to " + outputName);
for (ItemStack input : inOres) {
maceratorRecipes.addRecipe(new Recipe(input, output, f));
}
}
private void recipePlateMachine() {
float f = 10000;
plateMachineRecipes.addRecipe(new Recipe(
findItemStack("Copper Ingot", plateConversionRatio),
findItemStack("Copper Plate"), 1.0 * f));
plateMachineRecipes.addRecipe(new Recipe(findItemStack("Lead Ingot", plateConversionRatio),
findItemStack("Lead Plate"), 1.0 * f));
plateMachineRecipes.addRecipe(new Recipe(
findItemStack("Silicon Ingot", 4),
findItemStack("Silicon Plate"), 1.0 * f));
plateMachineRecipes.addRecipe(new Recipe(findItemStack("Alloy Ingot", plateConversionRatio),
findItemStack("Alloy Plate"), 1.0 * f));
plateMachineRecipes.addRecipe(new Recipe(new ItemStack(Items.iron_ingot, plateConversionRatio,
0), findItemStack("Iron Plate"), 1.0 * f));
plateMachineRecipes.addRecipe(new Recipe(new ItemStack(Items.gold_ingot, plateConversionRatio,
0), findItemStack("Gold Plate"), 1.0 * f));
}
private void recipeCompressor() {
compressorRecipes.addRecipe(new Recipe(findItemStack("Coal Plate", 4),
new ItemStack[]{new ItemStack(Items.diamond)}, 80000.0));
// extractorRecipes.addRecipe(new
// Recipe("dustCinnabar",new
// ItemStack[]{findItemStack("Purified Cinnabar Dust",1)}, 1000.0));
compressorRecipes.addRecipe(new Recipe(findItemStack("Coal Dust", 4),
findItemStack("Coal Plate"), 4000.0));
compressorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.sand),
findItemStack("Dielectric"), 2000.0));
compressorRecipes.addRecipe(new Recipe(new ItemStack(Blocks.log),
findItemStack("Tree Resin"), 3000.0));
}
private void recipeMagnetizer() {
magnetizerRecipes.addRecipe(new Recipe(new ItemStack(Items.iron_ingot, 2),
new ItemStack[]{findItemStack("Basic Magnet")}, 5000.0));
magnetizerRecipes.addRecipe(new Recipe(findItemStack("Alloy Ingot", 2),
new ItemStack[]{findItemStack("Advanced Magnet")}, 15000.0));
}
private void recipeFuelBurnerItem() {
addRecipe(findItemStack("Small Fuel Burner"),
" ",
" Cc",
" ",
'C', findItemStack("Combustion Chamber"),
'c', findItemStack("Copper Thermal Cable"));
addRecipe(findItemStack("Medium Fuel Burner"),
" ",
" Cc",
" C ",
'C', findItemStack("Combustion Chamber"),
'c', findItemStack("Copper Thermal Cable"));
addRecipe(findItemStack("Big Fuel Burner"),
" ",
"CCc",
"CC ",
'C', findItemStack("Combustion Chamber"),
'c', findItemStack("Copper Thermal Cable"));
}
private void recipeFurnace() {
ItemStack in;
in = findItemStack("Copper Ore");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Copper Ingot"));
in = findItemStack("dustCopper");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Copper Ingot"));
in = findItemStack("Lead Ore");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("ingotLead"));
in = findItemStack("dustLead");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("ingotLead"));
in = findItemStack("Tungsten Ore");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Tungsten Ingot"));
in = findItemStack("Tungsten Dust");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Tungsten Ingot"));
in = findItemStack("ingotAlloy");
// Utils.addSmelting(in.getItem().itemID, in.getItemDamage(),
// findItemStack("Ferrite Ingot"));
in = findItemStack("dustIron");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
new ItemStack(Items.iron_ingot));
in = findItemStack("dustGold");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
new ItemStack(Items.gold_ingot));
in = findItemStack("Tree Resin");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Rubber", 2));
in = findItemStack("Alloy Dust");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Alloy Ingot"));
in = findItemStack("Silicon Dust");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Silicon Ingot"));
// in = findItemStack("Purified Cinnabar Dust");
in = findItemStack("dustCinnabar");
Utils.addSmelting(in.getItem(), in.getItemDamage(),
findItemStack("Mercury"));
}
private void recipeElectricalSensor() {
addRecipe(findItemStack("Voltage Probe", 1),
"SC",
'S', findItemStack("Electrical Probe Chip"),
'C', findItemStack("Signal Cable"));
addRecipe(findItemStack("Electrical Probe", 1),
"SCS",
'S', findItemStack("Electrical Probe Chip"),
'C', findItemStack("Signal Cable"));
}
private void recipeThermalSensor() {
addRecipe(findItemStack("Thermal Probe", 1),
"SCS",
'S', findItemStack("Thermal Probe Chip"),
'C', findItemStack("Signal Cable"));
addRecipe(findItemStack("Temperature Probe", 1),
"SC",
'S', findItemStack("Thermal Probe Chip"),
'C', findItemStack("Signal Cable"));
}
private void recipeTransporter() {
addRecipe(findItemStack("Experimental Transporter", 1),
"RMR",
"RMR",
" R ",
'M', findItemStack("Advanced Machine Block"),
'C', findItemStack("High Voltage Cable"),
'R', dictAdvancedChip);
}
private void recipeTurret() {
addRecipe(findItemStack("800V Defence Turret", 1),
" R ",
"CMC",
" c ",
'M', findItemStack("Advanced Machine Block"),
'C', dictAdvancedChip,
'c', highVoltageCableDescriptor.newItemStack(),
'R', new ItemStack(Blocks.redstone_block));
}
private void recipeMachine() {
addRecipe(findItemStack("50V Macerator", 1),
"IRI",
"FMF",
"IcI",
'M', findItemStack("Machine Block"),
'c', findItemStack("Electrical Motor"),
'F', new ItemStack(Items.flint),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("200V Macerator", 1),
"ICI",
"DMD",
"IcI",
'M', findItemStack("Advanced Machine Block"),
'C', dictAdvancedChip,
'c', findItemStack("Advanced Electrical Motor"),
'D', new ItemStack(Items.diamond),
'I', "ingotAlloy");
addRecipe(findItemStack("50V Compressor", 1),
"IRI",
"FMF",
"IcI",
'M', findItemStack("Machine Block"),
'c', findItemStack("Electrical Motor"),
'F', "plateIron",
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("200V Compressor", 1),
"ICI",
"DMD",
"IcI",
'M', findItemStack("Advanced Machine Block"),
'C', dictAdvancedChip,
'c', findItemStack("Advanced Electrical Motor"),
'D', "plateAlloy",
'I', "ingotAlloy");
addRecipe(findItemStack("50V Plate Machine", 1),
"IRI",
"IMI",
"IcI",
'M', findItemStack("Machine Block"),
'c', findItemStack("Electrical Motor"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("200V Plate Machine", 1),
"DCD",
"DMD",
"DcD",
'M', findItemStack("Advanced Machine Block"),
'C', dictAdvancedChip,
'c', findItemStack("Advanced Electrical Motor"),
'D', "plateAlloy",
'I', "ingotAlloy");
addRecipe(findItemStack("50V Magnetizer", 1),
"IRI",
"cMc",
"III",
'M', findItemStack("Machine Block"),
'c', findItemStack("Electrical Motor"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("200V Magnetizer", 1),
"ICI",
"cMc",
"III",
'M', findItemStack("Advanced Machine Block"),
'C', dictAdvancedChip,
'c', findItemStack("Advanced Electrical Motor"),
'I', "ingotAlloy");
}
private void recipeElectricalGate() {
addShapelessRecipe(findItemStack("Electrical Timer"),
new ItemStack(Items.repeater),
dictCheapChip);
addRecipe(findItemStack("Signal Processor", 1),
"IcI",
"cCc",
"IcI",
'I', new ItemStack(Items.iron_ingot),
'c', findItemStack("Signal Cable"),
'C', dictCheapChip);
}
private void recipeElectricalRedstone() {
addRecipe(findItemStack("Redstone-to-Voltage Converter", 1),
"TCS",
'S', findItemStack("Signal Cable"),
'C', dictCheapChip,
'T', new ItemStack(Blocks.redstone_torch));
addRecipe(findItemStack("Voltage-to-Redstone Converter", 1),
"CTR",
'R', new ItemStack(Items.redstone),
'C', dictCheapChip,
'T', new ItemStack(Blocks.redstone_torch));
}
private void recipeElectricalEnvironmentalSensor() {
addShapelessRecipe(findItemStack("Electrical Daylight Sensor"),
new ItemStack(Blocks.daylight_detector),
findItemStack("Redstone-to-Voltage Converter"));
addShapelessRecipe(findItemStack("Electrical Light Sensor"),
new ItemStack(Blocks.daylight_detector),
new ItemStack(Items.quartz),
findItemStack("Redstone-to-Voltage Converter"));
addRecipe(findItemStack("Electrical Weather Sensor"),
" r ",
"rRr",
" r ",
'R', new ItemStack(Items.redstone),
'r', "itemRubber");
addRecipe(findItemStack("Electrical Anemometer Sensor"),
" I ",
" R ",
"I I",
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Electrical Entity Sensor"),
" G ",
"GRG",
" G ",
'G', new ItemStack(Blocks.glass_pane),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Electrical Fire Detector"),
"cbr",
"p p",
"r r",
'c', findItemStack("Signal Cable"),
'b', dictCheapChip,
'r', "itemRubber",
'p', "plateCopper");
addRecipe(findItemStack("Electrical Fire Buzzer"),
"rar",
"p p",
"r r",
'a', dictAdvancedChip,
'r', "itemRubber",
'p', "plateCopper");
addShapelessRecipe(findItemStack("Scanner"),
new ItemStack(Items.comparator),
dictAdvancedChip);
}
private void recipeElectricalVuMeter() {
for (int idx = 0; idx < 4; idx++) {
addRecipe(findItemStack("Analog vuMeter", 1),
"WWW",
"RIr",
"WSW",
'W', new ItemStack(Blocks.planks, 1, idx),
'R', new ItemStack(Items.redstone),
'I', new ItemStack(Items.iron_ingot),
'r', new ItemStack(Items.dye, 1, 1),
'S', findItemStack("Signal Cable"));
}
for (int idx = 0; idx < 4; idx++) {
addRecipe(findItemStack("LED vuMeter", 1),
" W ",
"WTW",
" S ",
'W', new ItemStack(Blocks.planks, 1, idx),
'T', new ItemStack(Blocks.redstone_torch),
'S', findItemStack("Signal Cable"));
}
}
private void recipeElectricalBreaker() {
addRecipe(findItemStack("Electrical Breaker", 1),
"crC",
'c', findItemStack("Overvoltage Protection"),
'C', findItemStack("Overheating Protection"),
'r', findItemStack("High Voltage Relay"));
}
private void recipeFuses() {
addRecipe(findItemStack("Electrical Fuse Holder", 1),
"i",
" ",
"i",
'i', new ItemStack(Items.iron_ingot));
addRecipe(findItemStack("Lead Fuse for low voltage cables", 4),
"rcr",
'r', findItemStack("itemRubber"),
'c', findItemStack("Low Voltage Cable"));
addRecipe(findItemStack("Lead Fuse for medium voltage cables", 4),
"rcr",
'r', findItemStack("itemRubber"),
'c', findItemStack("Medium Voltage Cable"));
addRecipe(findItemStack("Lead Fuse for high voltage cables", 4),
"rcr",
'r', findItemStack("itemRubber"),
'c', findItemStack("High Voltage Cable"));
addRecipe(findItemStack("Lead Fuse for very high voltage cables", 4),
"rcr",
'r', findItemStack("itemRubber"),
'c', findItemStack("Very High Voltage Cable"));
}
private void recipeElectricalGateSource() {
addRecipe(findItemStack("Signal Trimmer", 1),
"RsR",
"rRr",
" c ",
'M', findItemStack("Machine Block"),
'c', findItemStack("Signal Cable"),
'r', "itemRubber",
's', new ItemStack(Items.stick),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Signal Switch", 3),
" r ",
"rRr",
" c ",
'M', findItemStack("Machine Block"),
'c', findItemStack("Signal Cable"),
'r', "itemRubber",
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Signal Button", 3),
" R ",
"rRr",
" c ",
'M', findItemStack("Machine Block"),
'c', findItemStack("Signal Cable"),
'r', "itemRubber",
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Wireless Switch", 3),
" a ",
"rCr",
" r ",
'M', findItemStack("Machine Block"),
'c', findItemStack("Signal Cable"),
'C', dictCheapChip,
'a', findItemStack("Signal Antenna"),
'r', "itemRubber",
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Wireless Button", 3),
" a ",
"rCr",
" R ",
'M', findItemStack("Machine Block"),
'c', findItemStack("Signal Cable"),
'C', dictCheapChip,
'a', findItemStack("Signal Antenna"),
'r', "itemRubber",
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
// Wireless Switch
// Wireless Button
}
private void recipeElectricalDataLogger() {
addRecipe(findItemStack("Data Logger", 1),
"RRR",
"RGR",
"RCR",
'R', "itemRubber",
'C', dictCheapChip,
'G', new ItemStack(Blocks.glass_pane));
addRecipe(findItemStack("Modern Data Logger", 1),
"RRR",
"RGR",
"RCR",
'R', "itemRubber",
'C', dictAdvancedChip,
'G', new ItemStack(Blocks.glass_pane));
addRecipe(findItemStack("Industrial Data Logger", 1),
"RRR",
"GGG",
"RCR",
'R', "itemRubber",
'C', dictAdvancedChip,
'G', new ItemStack(Blocks.glass_pane));
}
private void recipeSixNodeCache() {
}
private void recipeElectricalAlarm() {
addRecipe(findItemStack("Nuclear Alarm", 1),
"ITI",
"IMI",
"IcI",
'c', findItemStack("Signal Cable"),
'T', new ItemStack(Blocks.redstone_torch),
'I', new ItemStack(Items.iron_ingot),
'M', new ItemStack(Blocks.noteblock));
addRecipe(findItemStack("Standard Alarm", 1),
"MTM",
"IcI",
"III",
'c', findItemStack("Signal Cable"),
'T', new ItemStack(Blocks.redstone_torch),
'I', new ItemStack(Items.iron_ingot),
'M', new ItemStack(Blocks.noteblock));
}
private void recipeElectricalAntenna() {
addRecipe(findItemStack("Low Power Transmitter Antenna", 1),
"R i",
"CI ",
"R i",
'C', dictCheapChip,
'i', new ItemStack(Items.iron_ingot),
'I', "plateIron",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Low Power Receiver Antenna", 1),
"i ",
" IC",
"i ",
'C', dictCheapChip,
'I', "plateIron",
'i', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Medium Power Transmitter Antenna", 1),
"c I",
"CI ",
"c I",
'C', dictAdvancedChip,
'c', dictCheapChip,
'I', "plateIron",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("Medium Power Receiver Antenna", 1),
"I ",
" IC",
"I ",
'C', dictAdvancedChip,
'I', "plateIron",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("High Power Transmitter Antenna", 1),
"C I",
"CI ",
"C I",
'C', dictAdvancedChip,
'c', dictCheapChip,
'I', "plateIron",
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("High Power Receiver Antenna", 1),
"I D",
" IC",
"I D",
'C', dictAdvancedChip,
'I', "plateIron",
'R', new ItemStack(Items.redstone),
'D', new ItemStack(Items.diamond));
}
private void recipeBatteryCharger() {
addRecipe(findItemStack("Weak 50V Battery Charger", 1),
"RIR",
"III",
"RcR",
'c', findItemStack("Low Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("50V Battery Charger", 1),
"RIR",
"ICI",
"RcR",
'C', dictCheapChip,
'c', findItemStack("Low Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
addRecipe(findItemStack("200V Battery Charger", 1),
"RIR",
"ICI",
"RcR",
'C', dictAdvancedChip,
'c', findItemStack("Medium Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.redstone));
}
private void recipeEggIncubator() {
addRecipe(findItemStack("50V Egg Incubator", 1),
"IGG",
"E G",
"CII",
'C', dictCheapChip,
'E', findItemStack("Small 50V Tungsten Heating Corp"),
'I', new ItemStack(Items.iron_ingot),
'G', new ItemStack(Blocks.glass_pane));
}
private void recipeEnergyConverter() {
if (ElnToOtherEnergyConverterEnable) {
addRecipe(new ItemStack(elnToOtherBlockLvu),
"III",
"cCR",
"III",
'C', dictCheapChip,
'c', findItemStack("Low Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', "ingotCopper");
addRecipe(new ItemStack(elnToOtherBlockMvu),
"III",
"cCR",
"III",
'C', dictCheapChip,
'c', findItemStack("Medium Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', dictTungstenIngot);
addRecipe(new ItemStack(elnToOtherBlockHvu),
"III",
"cCR",
"III",
'C', dictAdvancedChip,
'c', findItemStack("High Voltage Cable"),
'I', new ItemStack(Items.iron_ingot),
'R', new ItemStack(Items.gold_ingot));
}
}
private void recipeComputerProbe() {
if (ComputerProbeEnable) {
addRecipe(new ItemStack(computerProbeBlock),
"cIw",
"ICI",
"WIc",
'C', dictAdvancedChip,
'c', findItemStack("Signal Cable"),
'I', new ItemStack(Items.iron_ingot),
'w', findItemStack("Wireless Signal Receiver"),
'W', findItemStack("Wireless Signal Transmitter"));
}
}
private void recipeArmor() {
addRecipe(new ItemStack(helmetCopper),
"CCC",
"C C",
'C', "ingotCopper");
addRecipe(new ItemStack(plateCopper),
"C C",
"CCC",
"CCC",
'C', "ingotCopper");
addRecipe(new ItemStack(legsCopper),
"CCC",
"C C",
"C C",
'C', "ingotCopper");
addRecipe(new ItemStack(bootsCopper),
"C C",
"C C",
'C', "ingotCopper");
}
private void addRecipe(ItemStack output, Object... params) {
GameRegistry.addRecipe(new ShapedOreRecipe(output, params));
}
private void recipeTool() {
addRecipe(new ItemStack(shovelCopper),
"i",
"s",
"s",
'i', "ingotCopper",
's', new ItemStack(Items.stick));
addRecipe(new ItemStack(axeCopper),
"ii",
"is",
" s",
'i', "ingotCopper",
's', new ItemStack(Items.stick));
addRecipe(new ItemStack(hoeCopper),
"ii",
" s",
" s",
'i', "ingotCopper",
's', new ItemStack(Items.stick));
addRecipe(new ItemStack(pickaxeCopper),
"iii",
" s ",
" s ",
'i', "ingotCopper",
's', new ItemStack(Items.stick));
addRecipe(new ItemStack(swordCopper),
"i",
"i",
"s",
'i', "ingotCopper",
's', new ItemStack(Items.stick));
}
private int replicatorRegistrationId = -1;
private void registerReplicator() {
int redColor = (255 << 16);
int orangeColor = (255 << 16) + (200 << 8);
if (replicatorRegistrationId == -1)
replicatorRegistrationId = EntityRegistry.findGlobalUniqueEntityId();
Utils.println("Replicator registred at" + replicatorRegistrationId);
// Register mob
EntityRegistry.registerGlobalEntityID(ReplicatorEntity.class, TR_NAME(Type.ENTITY, "EAReplicator"), replicatorRegistrationId, redColor, orangeColor);
ReplicatorEntity.dropList.add(findItemStack("Iron Dust", 1));
ReplicatorEntity.dropList.add(findItemStack("Copper Dust", 1));
ReplicatorEntity.dropList.add(findItemStack("Gold Dust", 1));
ReplicatorEntity.dropList.add(new ItemStack(Items.redstone));
ReplicatorEntity.dropList.add(new ItemStack(Items.glowstone_dust));
// Add mob spawn
// EntityRegistry.addSpawn(ReplicatorEntity.class, 1, 1, 2, EnumCreatureType.monster, BiomeGenBase.plains);
}
// Registers WIP items.
private void registerWipItems() {
}
public void regenOreScannerFactors() {
PortableOreScannerItem.RenderStorage.blockKeyFactor = null;
oreScannerConfig.clear();
if (addOtherModOreToXRay) {
for (String name : OreDictionary.getOreNames()) {
if (name == null)
continue;
// Utils.println(name + " " +
// OreDictionary.getOreID(name));
if (name.startsWith("ore")) {
for (ItemStack stack : OreDictionary.getOres(name)) {
int id = Utils.getItemId(stack) + 4096 * stack.getItem().getMetadata(stack.getItemDamage());
// Utils.println(OreDictionary.getOreID(name));
boolean find = false;
for (OreScannerConfigElement c : oreScannerConfig) {
if (c.blockKey == id) {
find = true;
break;
}
}
if (!find) {
Utils.println(id + " added to xRay (other mod)");
oreScannerConfig.add(new OreScannerConfigElement(id, 0.15f));
}
}
}
}
}
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.coal_ore), 5 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.iron_ore), 15 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.gold_ore), 40 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.lapis_ore), 40 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.redstone_ore), 40 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.diamond_ore), 100 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(Blocks.emerald_ore), 40 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(oreBlock) + (1 << 12), 10 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(oreBlock) + (4 << 12), 20 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(oreBlock) + (5 << 12), 20 / 100f));
oreScannerConfig.add(new OreScannerConfigElement(Block.getIdFromBlock(oreBlock) + (6 << 12), 20 / 100f));
}
public static double getSmallRs() {
return instance.lowVoltageCableDescriptor.electricalRs;
}
public static void applySmallRs(NbtElectricalLoad aLoad) {
instance.lowVoltageCableDescriptor.applyTo(aLoad);
}
public static void applySmallRs(Resistor r) {
instance.lowVoltageCableDescriptor.applyTo(r);
}
static ItemStack findItemStack(String name, int stackSize) {
ItemStack stack = GameRegistry.findItemStack("Eln", name, stackSize);
if (stack == null) {
stack = dictionnaryOreFromMod.get(name);
stack = Utils.newItemStack(Item.getIdFromItem(stack.getItem()), stackSize, stack.getItemDamage());
}
return stack;
}
private ItemStack findItemStack(String name) {
return findItemStack(name, 1);
}
private String firstExistingOre(String... oreNames) {
for (String oreName : oreNames) {
if (OreDictionary.doesOreNameExist(oreName)) {
return oreName;
}
}
return "";
}
private boolean isDevelopmentRun() {
return (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment");
}
}