BloodMagic/1.7.10/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/DemonPacketRegistry.java
2014-10-31 17:29:51 -04:00

80 lines
1.7 KiB
Java

package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import net.minecraft.world.World;
public class DemonPacketRegistry
{
public static Map<String, DemonHoardPacket> packetMap = new HashMap();
public static boolean registerDemonPacket(String string, DemonHoardPacket packet)
{
if(!packetMap.containsValue(string) && packet != null)
{
packetMap.put(string, packet);
return true;
}
return false;
}
public static String getDemonPacketName(DemonType type, int tier)
{
float totalChance = 0;
for(Entry<String, DemonHoardPacket> entry : packetMap.entrySet())
{
DemonHoardPacket packet = entry.getValue();
if(packet == null)
{
continue;
}
totalChance += packet.getRelativeChance(type, tier);
}
for(Entry<String, DemonHoardPacket> entry : packetMap.entrySet())
{
DemonHoardPacket packet = entry.getValue();
if(packet == null)
{
continue;
}
float relativeChance = packet.getRelativeChance(type, tier);
if(relativeChance >= totalChance)
{
return entry.getKey();
}else
{
totalChance -= relativeChance;
}
}
return "";
}
public static int spawnDemons(World world, int x, int y, int z, DemonType type, int tier)
{
return spawnDemons(world, x, y, z, getDemonPacketName(type, tier), type, tier);
}
public static int spawnDemons(World world, int x, int y, int z, String name, DemonType type, int tier)
{
DemonHoardPacket packet = packetMap.get(name);
if(packet != null)
{
return packet.summonDemons(world, x, y, z, type, tier);
}
return 0;
}
}