package mattparks.mods.space.venus;
import java.io.File;
import mattparks.mods.space.core.Constants;
import mattparks.mods.space.core.util.ConfigManagerCore;
import mattparks.mods.space.core.util.SpaceUtil;
import mattparks.mods.space.venus.blocks.VenusBlocks;
import mattparks.mods.space.venus.dimension.TeleportTypeVenus;
import mattparks.mods.space.venus.dimension.WorldProviderVenus;
import mattparks.mods.space.venus.entities.EntityEvolvedBlaze;
import mattparks.mods.space.venus.entities.EntityVenusianTNT;
import mattparks.mods.space.venus.entities.EntityVenusianVillager;
import mattparks.mods.space.venus.items.VenusItems;
import mattparks.mods.space.venus.proxy.CommonProxyVenus;
import mattparks.mods.space.venus.util.ConfigManagerVenus;
import mattparks.mods.space.venus.util.RecipeManagerVenus;
import micdoodle8.mods.galacticraft.api.GalacticraftRegistry;
import micdoodle8.mods.galacticraft.api.galaxies.CelestialBody;
import micdoodle8.mods.galacticraft.api.galaxies.GalaxyRegistry;
import micdoodle8.mods.galacticraft.api.galaxies.Planet;
import micdoodle8.mods.galacticraft.api.recipe.CompressorRecipes;
import micdoodle8.mods.galacticraft.api.world.IAtmosphericGas;
import micdoodle8.mods.galacticraft.core.GalacticraftCore;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
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.registry.GameRegistry;
@Mod(modid = Constants.MOD_ID_VENUS, name = Constants.MOD_NAME_VENUS, version = Constants.VERSION, dependencies = "required-after:GalacticraftCore;required-after:SpaceCore;")
public class VenusCore {
public static final String ASSET_PREFIX = "spacevenus";
public static final String TEXTURE_PREFIX = VenusCore.ASSET_PREFIX + ":";
public static Planet planetVenus;
@SidedProxy(clientSide = "mattparks.mods.space.venus.proxy.ClientProxyVenus", serverSide = "mattparks.mods.space.venus.proxy.CommonProxyVenus")
public static CommonProxyVenus proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
new ConfigManagerVenus(new File(event.getModConfigurationDirectory(), "4Space/venus.cfg"));
this.proxy.preInit(event);
}
public static void registerBlock(Block block, Class<? extends ItemBlock> itemBlockClass) {
GameRegistry.registerBlock(block, itemBlockClass, block.getUnlocalizedName().replace("tile.", ""));
}
public static void registerItem(Item item) {
GameRegistry.registerItem(item, item.getUnlocalizedName().replace("item.", ""));
}
@EventHandler
public void init(FMLInitializationEvent event) {
if (ConfigManagerVenus.idVenusEnabled) {
VenusBlocks.init();
VenusItems.init();
VenusCore.planetVenus = (Planet) new Planet("venus").setParentSolarSystem(GalacticraftCore.solarSystemSol).setRingColorRGB(0.1F, 0.9F, 0.6F).setPhaseShift(2.0F).setRelativeSize(0.5319F).setRelativeDistanceFromCenter(new CelestialBody.ScalableDistance(0.75F, 0.75F)).setRelativeOrbitTime(0.61527929901423877327491785323111F);
VenusCore.planetVenus.setBodyIcon(new ResourceLocation(GalacticraftCore.ASSET_PREFIX, "textures/gui/celestialbodies/venus.png"));
VenusCore.planetVenus.setDimensionInfo(ConfigManagerVenus.idDimensionVenus, WorldProviderVenus.class).setTierRequired(2);
VenusCore.planetVenus.atmosphereComponent(IAtmosphericGas.CO2).atmosphereComponent(IAtmosphericGas.HELIUM).atmosphereComponent(IAtmosphericGas.ARGON);
GalaxyRegistry.registerPlanet(VenusCore.planetVenus);
GalacticraftRegistry.registerTeleportType(WorldProviderVenus.class, new TeleportTypeVenus());
GalacticraftRegistry.registerRocketGui(WorldProviderVenus.class, new ResourceLocation(VenusCore.TEXTURE_PREFIX + "textures/gui/venusRocketGui.png"));
CompressorRecipes.addShapelessRecipe(new ItemStack(VenusItems.venusBasicItem, 2, 5), new ItemStack(VenusItems.venusBasicItem, 1, 0));
CompressorRecipes.addShapelessRecipe(new ItemStack(VenusItems.venusBasicItem, 1, 5), new ItemStack(VenusItems.venusBasicItem, 1, 1));
CompressorRecipes.addShapelessRecipe(new ItemStack(VenusItems.venusBasicItem, 1, 6), new ItemStack(VenusItems.venusBasicItem, 1, 2));
CompressorRecipes.addShapelessRecipe(new ItemStack(VenusItems.venusBasicItem, 1, 7), new ItemStack(VenusItems.venusBasicItem, 1, 3));
CompressorRecipes.addShapelessRecipe(new ItemStack(VenusItems.venusBasicItem, 3, 8), new ItemStack(VenusItems.venusBasicItem, 1, 5), new ItemStack(VenusItems.venusBasicItem, 1, 6), new ItemStack(VenusItems.venusBasicItem, 1, 7));
this.registerTileEntities();
this.registerCreatures();
this.registerOtherEntities();
}
this.proxy.init(event);
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
RecipeManagerVenus.loadRecipes();
this.proxy.postInit(event);
}
private void registerTileEntities() {
}
private void registerCreatures() {
if (!ConfigManagerCore.idRealisticEnabled) {
SpaceUtil.registerSpaceCreature(EntityEvolvedBlaze.class, "EvolvedBlaze", -771829, -870131);
SpaceUtil.registerSpaceCreature(EntityVenusianVillager.class, "VenusianVillager", SpaceUtil.to32BitColor(255, 103, 181, 145), 16167425);
}
}
private void registerOtherEntities() {
SpaceUtil.registerSpaceNonMobEntity(EntityVenusianTNT.class, "VenusianTNT", 150, 1, true);
}
@EventHandler
public static void PreLoad(FMLPreInitializationEvent PreEvent) {
proxy.registerRenderInfo();
}
}