/*
* This file is part of Matter Overdrive
* Copyright (c) 2015., Simeon Radivoev, All rights reserved.
*
* Matter Overdrive is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Matter Overdrive is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Matter Overdrive. If not, see <http://www.gnu.org/licenses>.
*/
package matteroverdrive.init;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import matteroverdrive.guide.*;
import matteroverdrive.guide.infograms.InfogramCreates;
import matteroverdrive.guide.infograms.InfogramDepth;
import net.minecraft.item.ItemStack;
/**
* Created by Simeon on 8/29/2015.
*/
@SideOnly(Side.CLIENT)
public class MatterOverdriveGuides
{
public static GuideCategory androidCategory;
public static GuideCategory weaponsCategory;
public static GuideCategory generalCategory;
public static void registerGuideElements(FMLInitializationEvent event)
{
MatterOverdriveGuide.registerGuideElementHandler("text", GuideElementText.class);
MatterOverdriveGuide.registerGuideElementHandler("depth", InfogramDepth.class);
MatterOverdriveGuide.registerGuideElementHandler("creates", InfogramCreates.class);
MatterOverdriveGuide.registerGuideElementHandler("recipe", GuideElementRecipe.class);
MatterOverdriveGuide.registerGuideElementHandler("title", GuideElementTitle.class);
MatterOverdriveGuide.registerGuideElementHandler("image",GuideElementImage.class);
MatterOverdriveGuide.registerGuideElementHandler("preview",GuideElementPreview.class);
MatterOverdriveGuide.registerGuideElementHandler("details",GuideElementDetails.class);
MatterOverdriveGuide.registerGuideElementHandler("tooltip",GuideElementTooltip.class);
}
public static void registerGuides(FMLPostInitializationEvent event)
{
generalCategory = new GuideCategory("general").setHoloIcon("home_icon");
MatterOverdriveGuide.registerCategory(generalCategory);
weaponsCategory = new GuideCategory("weapons").setHoloIcon("ammo");
MatterOverdriveGuide.registerCategory(weaponsCategory);
androidCategory = new GuideCategory("android").setHoloIcon("android_slot_arms");
MatterOverdriveGuide.registerCategory(androidCategory);
//region General
//Ore
addEntry(generalCategory, new MOGuideEntryBlock(MatterOverdriveBlocks.dilithium_ore).setGroup("resources"), 3, 0);
addEntry(generalCategory, new MOGuideEntryBlock(MatterOverdriveBlocks.tritaniumOre).setGroup("resources"), 4, 0);
addEntry(generalCategory, new MOGuideEntryItem(MatterOverdriveItems.dilithium_ctystal).setGroup("resources"), 3, 1);
addEntry(generalCategory, new MOGuideEntryItem(MatterOverdriveItems.tritanium_ingot).setGroup("resources"), 4, 1);
//Machines
addEntry(generalCategory, new MOGuideEntryBlock(MatterOverdriveBlocks.replicator).setGroup("machines"), 0, 0);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.decomposer).setGroup("machines"),1,0);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.recycler).setGroup("machines"),0,1);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.matter_analyzer).setGroup("machines"),1,1);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.pattern_storage).setGroup("machines"),0,2);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.pattern_monitor).setGroup("machines"),1,2);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.transporter).setGroup("machines"),0,3);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.holoSign).setGroup("machines"),1,3);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.inscriber).setGroup("machines"),0,4);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.contractMarket).setGroup("machines"),1,4);
//Power
addEntry(generalCategory,new MOGuideEntry("fusion_reactor").setStackIcons(new ItemStack(MatterOverdriveBlocks.fusion_reactor_controller),
new ItemStack(MatterOverdriveBlocks.fusion_reactor_coil),
new ItemStack(MatterOverdriveBlocks.forceGlass),
new ItemStack(MatterOverdriveBlocks.fusionReactorIO)).setGroup("power"),3,3);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.gravitational_anomaly).setGroup("power"),4,3);
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.solar_panel).setGroup("power"),3,4);
addEntry(generalCategory,new MOGuideEntry("batteries").setStackIcons(new ItemStack(MatterOverdriveItems.battery),new ItemStack(MatterOverdriveItems.hc_battery),new ItemStack(MatterOverdriveItems.creative_battery)).setGroup("power"),4,4);
//Matter
addEntry(generalCategory,new MOGuideEntry("matter_transport").setStackIcons(MatterOverdriveBlocks.heavy_matter_pipe).setGroup("matter"),6,0);
addEntry(generalCategory,new MOGuideEntry("matter_fail").setStackIcons(MatterOverdriveItems.matter_dust).setGroup("matter"),7,0);
addEntry(generalCategory,new MOGuideEntry("matter_plasma",new ItemStack(MatterOverdriveItems.matterContainerFull)).setGroup("matter"),6,1);
addEntry(generalCategory, new MOGuideEntryItem(MatterOverdriveItems.matter_scanner).setGroup("matter"), 7, 1);
addEntry(generalCategory, new MOGuideEntryItem(MatterOverdriveItems.pattern_drive).setGroup("matter"), 6, 2);
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.portableDecomposer).setGroup("matter"),7,2);
//Matter Network
addEntry(generalCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.network_pipe).setGroup("matter_network"),6,4);
addEntry(generalCategory, new MOGuideEntryBlock(MatterOverdriveBlocks.network_switch).setGroup("matter_network"), 7, 4);
addEntry(generalCategory, new MOGuideEntryItem(MatterOverdriveItems.networkFlashDrive).setGroup("matter_network"), 6, 5);
addEntry(generalCategory, new MOGuideEntryBlock(MatterOverdriveBlocks.network_router).setGroup("matter_network"), 7, 5);
//endregion
//Items
int itemsY = 6;
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.spacetime_equalizer).setGroup("items"),0,itemsY);
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.security_protocol).setGroup("items"),1,itemsY);
addEntry(generalCategory,new MOGuideEntry("upgrades").setStackIcons(MatterOverdriveItems.item_upgrade).setGroup("items"),2,itemsY);
addEntry(generalCategory,new MOGuideEntry("drinks").setStackIcons(new ItemStack(MatterOverdriveItems.romulan_ale),new ItemStack(MatterOverdriveItems.earl_gray_tea)).setGroup("items"),3,itemsY);
addEntry(generalCategory,new MOGuideEntry("food").setStackIcons(new ItemStack(MatterOverdriveItems.emergency_ration)).setGroup("items"),4,itemsY);
itemsY++;
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.wrench).setGroup("items"),0,itemsY);
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.transportFlashDrive).setGroup("items"),1,itemsY);
addEntry(generalCategory,new MOGuideEntryItem(MatterOverdriveItems.contract).setGroup("items"),2,itemsY);
//region Weapons
//Weapons
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.phaser).setGroup("weapons"),4,0);
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.phaserRifle).setGroup("weapons"),5,0);
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.omniTool).setGroup("weapons"),6,0);
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.plasmaShotgun).setGroup("weapons"),4,1);
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.ionSniper).setGroup("weapons"),5,1);
addEntry(weaponsCategory,new MOGuideEntry("tritanium_tools").setStackIcons(new ItemStack(MatterOverdriveItems.tritaniumAxe),new ItemStack(MatterOverdriveItems.tritaniumSword),new ItemStack(MatterOverdriveItems.tritaniumHoe),new ItemStack(MatterOverdriveItems.tritaniumPickaxe)).setGroup("weapons"),6,1);
//Parts
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.energyPack).setGroup("parts"),1,0);
addEntry(weaponsCategory,new MOGuideEntry("weapon.modules.barrels").setStackIcons(MatterOverdriveItems.weapon_module_barrel).setGroup("parts"),2,0);
addEntry(weaponsCategory,new MOGuideEntry("weapon.modules.colors").setStackIcons(MatterOverdriveItems.weapon_module_color).setGroup("parts"),1,1);
addEntry(weaponsCategory,new MOGuideEntryItem(MatterOverdriveItems.sniperScope).setGroup("parts"),2,1);
//Armor
addEntry(weaponsCategory,new MOGuideEntry("tritanium_armor").setStackIcons(new ItemStack(MatterOverdriveItems.tritaniumChestplate),new ItemStack(MatterOverdriveItems.tritaniumLeggings),new ItemStack(MatterOverdriveItems.tritaniumBoots),new ItemStack(MatterOverdriveItems.tritaniumHelemet)).setGroup("armor"),1,3);
//Machines
addEntry(weaponsCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.weapon_station).setGroup("machines"),4,3);
//endregion
//region Android
//Items
addEntry(androidCategory,new MOGuideEntry("android.pills").setStackIcons(MatterOverdriveItems.androidPill).setGroup("items"),5,1);
addEntry(androidCategory,new MOGuideEntry("android.parts").setStackIcons(MatterOverdriveItems.androidParts).setGroup("items"),5,2);
addEntry(androidCategory,new MOGuideEntryItem(MatterOverdriveItems.tritaniumSpine).setGroup("items"),5,3);
//Machines
addEntry(androidCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.androidStation).setGroup("machines"),2,2);
addEntry(androidCategory,new MOGuideEntryBlock(MatterOverdriveBlocks.chargingStation).setGroup("machines"),3,2);
//endregion
}
private static void addEntry(GuideCategory category,MOGuideEntry entry,int x,int y)
{
int paddingTop = 16;
int paddingLeft = 18;
category.addEntry(entry);
entry.setGuiPos(paddingLeft + x * 28, paddingTop + y * 28);
entry.setId(MatterOverdriveGuide.getNextFreeID());
MatterOverdriveGuide.registerEntry(entry);
}
}