diff options
author | Detrav <witalyezep@gmail.com> | 2016-10-02 20:52:09 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-10-02 20:52:09 +0300 |
commit | 50b1a61db43acb9e50506119a5a3861affa5a414 (patch) | |
tree | 45c6f01280d1b92a086f21054bcdafea0e01e5c8 /src/main/java/com/detrav/events/DetravEntityDropEvent.java | |
parent | 2c6380276338c912a44697aa183028e655e8b01c (diff) | |
download | GT5-Unofficial-50b1a61db43acb9e50506119a5a3861affa5a414.tar.gz GT5-Unofficial-50b1a61db43acb9e50506119a5a3861affa5a414.tar.bz2 GT5-Unofficial-50b1a61db43acb9e50506119a5a3861affa5a414.zip |
WTF!!!
Diffstat (limited to 'src/main/java/com/detrav/events/DetravEntityDropEvent.java')
-rw-r--r-- | src/main/java/com/detrav/events/DetravEntityDropEvent.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/events/DetravEntityDropEvent.java b/src/main/java/com/detrav/events/DetravEntityDropEvent.java new file mode 100644 index 0000000000..ff733bf7ad --- /dev/null +++ b/src/main/java/com/detrav/events/DetravEntityDropEvent.java @@ -0,0 +1,86 @@ +package com.detrav.events; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import gregtech.api.enums.ItemList; +import gregtech.api.items.GT_MetaGenerated_Item_X01; +import ic2.core.Ic2Items; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.LivingDropsEvent; + +import java.util.Random; + +/** + * Created by Detrav on 02.10.2016. + */ +public class DetravEntityDropEvent { + + final static int baseShance = 40; + static Random random = new Random(); + + @SubscribeEvent + public void onLivingDropsEvent(LivingDropsEvent event) { + if(event.entity.isCreatureType(EnumCreatureType.monster, false)) { + float shance = (baseShance + event.entityLiving.getMaxHealth()); + int count = 0; + while (shance > 100) { + count++; + shance -= 100; + } + + if(count>0) + { + count = (int)Math.pow(count,event.lootingLevel+1) + 1; + + while (count>Ic2Items.coin.getMaxStackSize()) { + ItemStack itemStackToDrop = Ic2Items.coin.copy(); + itemStackToDrop.stackSize = itemStackToDrop.getMaxStackSize(); + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + count -= itemStackToDrop.getMaxStackSize(); + } + ItemStack itemStackToDrop = Ic2Items.coin.copy(); + itemStackToDrop.stackSize = count; + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + } + + count = 0; + + shance = shance*(event.lootingLevel +1); + while (shance > 100) { + count++; + shance -= 100; + } + if(random.nextInt(100) < shance) count ++; + ItemStack itemStackToDrop = ItemList.Credit_Copper.get(count); + event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, + event.entity.posY, event.entity.posZ, itemStackToDrop)); + } + /*if(event.source.getEntity() instanceof EntityPlayer) + { + + ((EntityPlayer)event.source.getEntity()).addChatComponentMessage( + new ChatComponentText(event.entity.toString()) + ); + }*/ + } + + + static boolean inited = false; + + public static void register() { + if (!inited) { + inited = true; + DetravEntityDropEvent handler = new DetravEntityDropEvent(); + MinecraftForge.EVENT_BUS.register(handler); + FMLCommonHandler.instance().bus().register(handler); + } + } +} |