aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav/events/DetravEntityDropEvent.java
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-10-02 20:52:09 +0300
committerDetrav <witalyezep@gmail.com>2016-10-02 20:52:09 +0300
commit50b1a61db43acb9e50506119a5a3861affa5a414 (patch)
tree45c6f01280d1b92a086f21054bcdafea0e01e5c8 /src/main/java/com/detrav/events/DetravEntityDropEvent.java
parent2c6380276338c912a44697aa183028e655e8b01c (diff)
downloadGT5-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.java86
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);
+ }
+ }
+}