/*
* 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.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import matteroverdrive.MatterOverdrive;
import matteroverdrive.entity.*;
import matteroverdrive.entity.monster.EntityMeleeRougeAndroidMob;
import matteroverdrive.entity.monster.EntityMutantScientist;
import matteroverdrive.entity.monster.EntityRangedRogueAndroidMob;
import matteroverdrive.entity.monster.EntityRogueAndroid;
import matteroverdrive.entity.weapon.PlasmaBolt;
import matteroverdrive.handler.ConfigurationHandler;
import matteroverdrive.handler.village.TradeHandlerMadScientist;
import matteroverdrive.handler.village.VillageCreatationMadScientist;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
/**
* Created by Simeon on 5/26/2015.
*/
public class MatterOverdriveEntities
{
public static final int ENTITY_STARTING_ID = 171;
public static EntityRogueAndroid rogueandroid;
public static void init(FMLPreInitializationEvent event,ConfigurationHandler configurationHandler)
{
rogueandroid = new EntityRogueAndroid();
configurationHandler.subscribe(rogueandroid);
}
public static void register(FMLPostInitializationEvent event)
{
MatterOverdrive.configHandler.config.load();
addEntity(EntityFailedPig.class, "failed_pig", 15771042, 0x33CC33,171);
addEntity(EntityFailedCow.class,"failed_cow",4470310,0x33CC33,172);
addEntity(EntityFailedChicken.class,"failed_chicken",10592673,0x33CC33,173);
addEntity(EntityFailedSheep.class, "failed_sheep", 15198183, 0x33CC33,174);
addEntity(EntityVillagerMadScientist.class, "mad_scientist", 0xFFFFFF, 0,175);
addEntity(EntityMutantScientist.class,"mutant_scientist",0xFFFFFF,0x00FF00,176);
addEntity(EntityMeleeRougeAndroidMob.class, "rogue_android", 0xFFFFF, 0,177);
addEntity(EntityRangedRogueAndroidMob.class,"ranged_rogue_android",0xFFFFF, 0,178);
VillagerRegistry.instance().registerVillageTradeHandler(666, new TradeHandlerMadScientist());
VillageCreatationMadScientist creatationMadScientist = new VillageCreatationMadScientist();
VillagerRegistry.instance().registerVillageCreationHandler(creatationMadScientist);
EntityRogueAndroid.addAsBiomeGen(EntityMeleeRougeAndroidMob.class);
EntityRogueAndroid.addAsBiomeGen(EntityRangedRogueAndroidMob.class);
int phaserFireID = loadIDFromConfig(PlasmaBolt.class,"phaser_fire",170);
EntityRegistry.registerGlobalEntityID(PlasmaBolt.class, "phaser_fire", phaserFireID);
MatterOverdrive.configHandler.save();
}
public static int addEntity(Class<? extends Entity> enityClass,String name,int mainColor,int spotsColor,int id)
{
id = loadIDFromConfig(enityClass,name,id);
EntityRegistry.registerGlobalEntityID(enityClass,name,id);
EntityRegistry.registerModEntity(enityClass, name, id, MatterOverdrive.instance, 64, 1, true);
createEgg(id, mainColor, spotsColor);
return id;
}
public static void createEgg(int id,int solidColor,int spotColor)
{
EntityList.entityEggs.put(Integer.valueOf(id), new EntityList.EntityEggInfo(id, solidColor, spotColor));
}
public static int loadIDFromConfig(Class<? extends Entity> entityClass,String name,int id)
{
return MatterOverdrive.configHandler.getInt(getEntityConfigKey(name),ConfigurationHandler.CATEGORY_ENTITIES,id);
}
private static String getEntityConfigKey(String name)
{
return "entity." + name + ".id";
}
}