summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-03-23 14:51:06 +0000
commit6312636fd9a4d0f56dc7c9ff474a99d879bcb4e9 (patch)
treee3279753210bfb169a00cd3f146a80baf624150e /src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java
parente86949a1ad3269ec66c9de65e2c92f5e66251411 (diff)
Reworked the whole repo.
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java187
1 files changed, 187 insertions, 0 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java b/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java
new file mode 100644
index 0000000..fd7058f
--- /dev/null
+++ b/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java
@@ -0,0 +1,187 @@
+/*
+ * Mod made by DarkKnight during the Modjam 3
+ * It's an awesome mod
+ * I love me! :D
+ */
+package darkknight.jewelrycraft;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.world.gen.structure.MapGenStructureIO;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.oredict.OreDictionary;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.Mod.Instance;
+import cpw.mods.fml.common.ModMetadata;
+import cpw.mods.fml.common.SidedProxy;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.event.FMLServerStartingEvent;
+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.common.registry.VillagerRegistry;
+import cpw.mods.fml.relauncher.Side;
+import darkknight.jewelrycraft.block.BlockList;
+import darkknight.jewelrycraft.commands.JewelrycraftCommands;
+import darkknight.jewelrycraft.config.ConfigHandler;
+import darkknight.jewelrycraft.container.GuiHandler;
+import darkknight.jewelrycraft.curses.CurseList;
+import darkknight.jewelrycraft.damage.DamageSourceList;
+import darkknight.jewelrycraft.effects.EffectsList;
+import darkknight.jewelrycraft.entities.EntityHalfHeart;
+import darkknight.jewelrycraft.entities.EntityHeart;
+import darkknight.jewelrycraft.events.BucketHandler;
+import darkknight.jewelrycraft.events.EntityEventHandler;
+import darkknight.jewelrycraft.events.KeyBindings;
+import darkknight.jewelrycraft.item.ItemList;
+import darkknight.jewelrycraft.lib.Reference;
+import darkknight.jewelrycraft.network.PacketClearColorCache;
+import darkknight.jewelrycraft.network.PacketKeyPressEvent;
+import darkknight.jewelrycraft.network.PacketRequestLiquidData;
+import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
+import darkknight.jewelrycraft.network.PacketSendCurseStats;
+import darkknight.jewelrycraft.network.PacketSendLiquidData;
+import darkknight.jewelrycraft.network.PacketSendPlayerInfo;
+import darkknight.jewelrycraft.recipes.CraftingRecipes;
+import darkknight.jewelrycraft.util.JewelrycraftUtil;
+import darkknight.jewelrycraft.worldGen.Generation;
+import darkknight.jewelrycraft.worldGen.village.ComponentJewelry;
+import darkknight.jewelrycraft.worldGen.village.JCTrades;
+import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler;
+
+@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION)
+public class JewelrycraftMod
+{
+ @Instance (Reference.MODID)
+ public static JewelrycraftMod instance;
+ @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy")
+ public static CommonProxy proxy;
+ public static final Logger logger = Logger.getLogger("Jewelrycraft");
+ public static File dir;
+ public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){
+ @Override
+ public Item getTabIconItem()
+ {
+ return Item.getItemFromBlock(BlockList.jewelCraftingTable);
+ }
+ };
+ public static CreativeTabs liquids = new CreativeTabLiquids("Liquids");
+ public static NBTTagCompound saveData = new NBTTagCompound();
+ public static NBTTagCompound clientData = new NBTTagCompound();
+ public static File liquidsConf;
+ public static SimpleNetworkWrapper netWrapper;
+ public static boolean fancyRender;
+ public static final int MAX_CURSES = 10;
+
+ /**
+ * Pre initialization of mod stuff.
+ *
+ * @param e FMLPreInitializationEvent
+ * @throws IOException Signals that an I/O exception has occurred.
+ */
+ @EventHandler
+ public void preInit(FMLPreInitializationEvent e) throws IOException
+ {
+ ConfigHandler.preInit(e);
+ BlockList.preInit(e);
+ ItemList.preInit(e);
+ CraftingRecipes.preInit(e);
+ CurseList.preInit(e);
+ OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot));
+ OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre));
+ VillagerRegistry.instance().registerVillagerId(3000);
+ VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades());
+ VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler());
+ try{
+ MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry");
+ }
+ catch(Throwable e2){
+ logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10");
+ }
+ MinecraftForge.EVENT_BUS.register(new EntityEventHandler());
+ MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE);
+ BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket);
+
+ ModMetadata metadata = e.getModMetadata();
+ List<String> authorList = new ArrayList<String>();
+
+ authorList.add("DarkKnight (or sor1n)");
+ authorList.add("bspkrs");
+ authorList.add("domi1819");
+
+ dir = e.getModConfigurationDirectory();
+ proxy.preInit();
+ netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID);
+ netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER);
+ netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT);
+ netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT);
+ netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER);
+ netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER);
+ netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT);
+ netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT);
+ metadata.autogenerated = false;
+ metadata.authorList = authorList;
+ metadata.url = "https://github.com/sor1n/Jewelrycraft";
+
+ createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true);
+ createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true);
+
+// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver);
+ }
+
+ public void createEntity(Class<? extends Entity> entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg)
+ {
+ int randomID = EntityRegistry.findGlobalUniqueEntityId();
+ if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor);
+ else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID);
+ EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true);
+ }
+
+ /**
+ * Initializes the world generation and key bindings.
+ *
+ * @param e FMLInitializationEvent
+ */
+ @EventHandler
+ public void init(FMLInitializationEvent e)
+ {
+ GameRegistry.registerWorldGenerator(new Generation(), 0);
+ if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings());
+ new GuiHandler();
+ }
+
+ /**
+ * Post initialization of metals, modifiers and others.
+ *
+ * @param e FMLPostInitializationEvent
+ */
+ @EventHandler
+ public void postInit(FMLPostInitializationEvent e)
+ {
+ JewelrycraftUtil.addMetals();
+ JewelrycraftUtil.jamcrafters();
+ EffectsList.postInit(e);
+ DamageSourceList.postInit(e);
+ proxy.postInit();
+ }
+
+ @Mod.EventHandler
+ public void serverLoad(FMLServerStartingEvent event)
+ {
+ event.registerServerCommand(new JewelrycraftCommands());
+ }
+
+}