2022-10-26 19:42:44 +02:00
|
|
|
package assemblyline.common;
|
|
|
|
|
|
|
|
import assemblyline.common.CommonProxy;
|
|
|
|
import assemblyline.common.TabAssemblyLine;
|
|
|
|
import assemblyline.common.block.BlockCrate;
|
|
|
|
import assemblyline.common.block.BlockTurntable;
|
|
|
|
import assemblyline.common.block.ItemBlockCrate;
|
|
|
|
import assemblyline.common.machine.BlockManipulator;
|
|
|
|
import assemblyline.common.machine.BlockRejector;
|
|
|
|
import assemblyline.common.machine.armbot.BlockArmbot;
|
|
|
|
import assemblyline.common.machine.belt.BlockConveyorBelt;
|
|
|
|
import assemblyline.common.machine.command.GrabDictionary;
|
|
|
|
import assemblyline.common.machine.crane.BlockCraneController;
|
|
|
|
import assemblyline.common.machine.crane.BlockCraneFrame;
|
|
|
|
import assemblyline.common.machine.detector.BlockDetector;
|
|
|
|
import assemblyline.common.machine.encoder.BlockEncoder;
|
|
|
|
import assemblyline.common.machine.encoder.ItemDisk;
|
|
|
|
import assemblyline.common.machine.imprinter.BlockImprinter;
|
|
|
|
import assemblyline.common.machine.imprinter.ItemImprinter;
|
|
|
|
import assemblyline.common.network.MessageEncoder;
|
|
|
|
import assemblyline.common.network.MessageEncoderHandler;
|
|
|
|
import cpw.mods.fml.common.FMLCommonHandler;
|
|
|
|
import cpw.mods.fml.common.FMLLog;
|
|
|
|
import cpw.mods.fml.common.Loader;
|
|
|
|
import cpw.mods.fml.common.Mod;
|
|
|
|
import cpw.mods.fml.common.ModMetadata;
|
|
|
|
import cpw.mods.fml.common.SidedProxy;
|
|
|
|
import cpw.mods.fml.common.Mod.EventHandler;
|
|
|
|
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
|
|
|
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
|
|
|
import cpw.mods.fml.common.network.IGuiHandler;
|
|
|
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
|
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
import net.minecraft.init.Blocks;
|
|
|
|
import net.minecraft.init.Items;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.item.crafting.IRecipe;
|
|
|
|
import net.minecraftforge.common.config.Configuration;
|
|
|
|
import net.minecraftforge.oredict.ShapedOreRecipe;
|
|
|
|
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
|
|
|
import universalelectricity.prefab.TranslationHelper;
|
|
|
|
import universalelectricity.prefab.multiblock.BlockMulti;
|
|
|
|
|
2022-12-10 09:43:49 +01:00
|
|
|
@Mod(modid="AssemblyLine", name="Assembly Line", version=AssemblyLine.VERSION, dependencies="required-after:basiccomponents", useMetadata=true)
|
2022-10-26 19:42:44 +02:00
|
|
|
public class AssemblyLine {
|
|
|
|
public static final String MOD_ID = "AssemblyLine";
|
|
|
|
public static final String MOD_NAME = "Assembly Line";
|
2022-12-10 09:43:49 +01:00
|
|
|
public static final String VERSION = "1.0.0";
|
2022-10-26 19:42:44 +02:00
|
|
|
public static final String CHANNEL = "AssemblyLine";
|
|
|
|
@SidedProxy(clientSide="assemblyline.client.ClientProxy", serverSide="assemblyline.common.CommonProxy")
|
|
|
|
public static CommonProxy proxy;
|
|
|
|
@Mod.Instance(value="AssemblyLine")
|
|
|
|
public static AssemblyLine instance;
|
|
|
|
@Mod.Metadata(value="AssemblyLine")
|
|
|
|
public static ModMetadata meta;
|
|
|
|
public static final String LANGUAGE_PATH = "/assets/assemblyline/languages/";
|
|
|
|
private static final String[] LANGUAGES_SUPPORTED;
|
|
|
|
public static final Configuration CONFIGURATION;
|
|
|
|
public static final int BLOCK_ID_PREFIX = 3030;
|
|
|
|
public static Block blockConveyorBelt;
|
|
|
|
public static Block blockManipulator;
|
|
|
|
public static BlockCrate blockCrate;
|
|
|
|
public static Block blockImprinter;
|
|
|
|
public static Block blockEncoder;
|
|
|
|
public static Block blockDetector;
|
|
|
|
public static Block blockRejector;
|
|
|
|
public static Block blockArmbot;
|
|
|
|
public static Block blockCraneController;
|
|
|
|
public static Block blockCraneFrame;
|
|
|
|
public static Block blockTurntable;
|
|
|
|
public static BlockMulti blockMulti;
|
|
|
|
public static final int ITEM_ID_PREFIX = 13030;
|
|
|
|
public static Item itemImprint;
|
|
|
|
public static Item itemDisk;
|
|
|
|
public static ItemStack ic2Wrench;
|
|
|
|
public static Logger FMLog;
|
|
|
|
public static final boolean DEBUG = false;
|
|
|
|
public static boolean REQUIRE_NO_POWER;
|
|
|
|
public static SimpleNetworkWrapper NETWORK;
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void preInit(FMLPreInitializationEvent event) {
|
|
|
|
//FMLog.setParent(FMLLog.getLogger());
|
|
|
|
instance = this;
|
|
|
|
CONFIGURATION.load();
|
|
|
|
blockConveyorBelt = new BlockConveyorBelt();
|
|
|
|
blockManipulator = new BlockManipulator();
|
|
|
|
blockCrate = new BlockCrate();
|
|
|
|
blockImprinter = new BlockImprinter();
|
|
|
|
blockDetector = new BlockDetector();
|
|
|
|
blockRejector = new BlockRejector();
|
|
|
|
blockEncoder = new BlockEncoder();
|
|
|
|
blockArmbot = new BlockArmbot();
|
|
|
|
blockMulti = new BlockMulti();
|
|
|
|
blockCraneController = new BlockCraneController();
|
|
|
|
blockCraneFrame = new BlockCraneFrame();
|
|
|
|
blockTurntable = new BlockTurntable();
|
|
|
|
itemImprint = new ItemImprinter();
|
|
|
|
itemDisk = new ItemDisk();
|
|
|
|
REQUIRE_NO_POWER = !CONFIGURATION.get("general", "requirePower", true).getBoolean(true);
|
|
|
|
CONFIGURATION.save();
|
|
|
|
NetworkRegistry.INSTANCE.registerGuiHandler((Object)this, (IGuiHandler)proxy);
|
|
|
|
NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID);
|
|
|
|
NETWORK.registerMessage(new MessageEncoderHandler(), MessageEncoder.class, 0, Side.SERVER);
|
|
|
|
GameRegistry.registerBlock(blockConveyorBelt, "conveyor_belt");
|
|
|
|
GameRegistry.registerBlock(blockCrate, ItemBlockCrate.class, "crate");
|
|
|
|
GameRegistry.registerBlock(blockManipulator, "manipulator");
|
|
|
|
GameRegistry.registerBlock(blockImprinter, "imprinter");
|
|
|
|
GameRegistry.registerBlock(blockEncoder, "encoder");
|
|
|
|
GameRegistry.registerBlock(blockDetector, "detector");
|
|
|
|
GameRegistry.registerBlock(blockRejector, "rejector");
|
|
|
|
GameRegistry.registerBlock(blockArmbot, "armbot");
|
|
|
|
GameRegistry.registerBlock(blockTurntable, "turntable");
|
|
|
|
GameRegistry.registerBlock(blockCraneController, "crane_controller");
|
|
|
|
GameRegistry.registerBlock(blockCraneFrame, "crane_frame");
|
|
|
|
GameRegistry.registerItem(itemDisk, "disk");
|
|
|
|
GameRegistry.registerItem(itemImprint, "imprint");
|
|
|
|
TabAssemblyLine.itemStack = new ItemStack(blockConveyorBelt);
|
|
|
|
proxy.preInit();
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void load(FMLInitializationEvent evt) {
|
|
|
|
proxy.init();
|
|
|
|
GrabDictionary.registerList();
|
|
|
|
FMLog.info("Loaded: " + TranslationHelper.loadLanguages(LANGUAGE_PATH, LANGUAGES_SUPPORTED) + " languages.");
|
|
|
|
this.createStandardRecipes();
|
|
|
|
this.createUERecipes();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void createUERecipes() {
|
|
|
|
System.out.println("BasicComponents Found...adding UE recipes for Assembly Line.");
|
2022-12-18 17:12:41 +01:00
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockArmbot, new Object[]{"II ", "SIS", "MCM", Character.valueOf('S'), "plateSteel", Character.valueOf('C'), "circuitAdvanced", Character.valueOf('I'), "ingotSteel", Character.valueOf('M'), "motor"}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(itemDisk, new Object[]{"III", "ICI", "III", Character.valueOf('I'), itemImprint, Character.valueOf('C'), "circuitAdvanced"}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockEncoder, new Object[]{"SIS", "SCS", "SSS", Character.valueOf('I'), itemImprint, Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), "circuitAdvanced"}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockDetector, new Object[]{"SES", "SCS", "S S", Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), "circuitBasic", Character.valueOf('E'), Items.ender_eye}));
|
2022-10-26 19:42:44 +02:00
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(blockConveyorBelt, 10), new Object[]{"III", "WMW", Character.valueOf('I'), "ingotSteel", Character.valueOf('W'), Blocks.planks, Character.valueOf('M'), "motor"}));
|
2022-12-18 17:12:41 +01:00
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockRejector, new Object[]{"WPW", "@R@", Character.valueOf('@'), "ingotSteel", Character.valueOf('R'), Items.redstone, Character.valueOf('P'), Blocks.piston, Character.valueOf('C'), "circuitBasic", Character.valueOf('W'), "copperWire"}));
|
2022-10-26 19:42:44 +02:00
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockTurntable, new Object[]{"M", "P", Character.valueOf('M'), "motor", Character.valueOf('P'), Blocks.piston}));
|
2022-12-18 17:12:41 +01:00
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapelessOreRecipe(new ItemStack(blockManipulator, 2), new Object[]{Blocks.dispenser, "circuitBasic"}));
|
2022-10-26 19:42:44 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
private void createStandardRecipes() {
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(itemImprint, 2), new Object[]{"R", "P", "I", Character.valueOf('P'), Items.paper, Character.valueOf('R'), Items.redstone, Character.valueOf('I'), new ItemStack(Items.dye, 1, 0)}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(blockImprinter, new Object[]{"SIS", "SPS", "WCW", Character.valueOf('S'), Items.iron_ingot, Character.valueOf('C'), Blocks.chest, Character.valueOf('W'), Blocks.crafting_table, Character.valueOf('P'), Blocks.piston, Character.valueOf('I'), new ItemStack(Items.dye, 1, 0)}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(blockCrate, 1, 0), new Object[]{"TST", "S S", "TST", Character.valueOf('S'), Items.iron_ingot, Character.valueOf('T'), Blocks.log}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(blockCrate, 1, 1), new Object[]{"TST", "SCS", "TST", Character.valueOf('C'), new ItemStack(blockCrate, 1, 0), Character.valueOf('S'), Items.iron_ingot, Character.valueOf('T'), Blocks.log}));
|
|
|
|
GameRegistry.addRecipe((IRecipe)new ShapedOreRecipe(new ItemStack(blockCrate, 1, 2), new Object[]{"TST", "SCS", "TST", Character.valueOf('C'), new ItemStack(blockCrate, 1, 1), Character.valueOf('S'), Items.iron_ingot, Character.valueOf('T'), Blocks.log}));
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void printSidedData(String data) {
|
|
|
|
System.out.print(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? "[C]" : "[S]");
|
|
|
|
System.out.println(" " + data);
|
|
|
|
}
|
|
|
|
|
|
|
|
static {
|
|
|
|
LANGUAGES_SUPPORTED = new String[]{"en_US"};
|
|
|
|
CONFIGURATION = new Configuration(new File(Loader.instance().getConfigDir(), "UniversalElectricity/AssemblyLine.cfg"));
|
|
|
|
ic2Wrench = null;
|
|
|
|
FMLog = Logger.getLogger(MOD_NAME);
|
|
|
|
REQUIRE_NO_POWER = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|