mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 00:37:52 +00:00
Pickup notification
This commit is contained in:
1 parent
ce276375b2
commit
a1385f4797
7 files changed
+71
-1
No files matched your search
@@ -13,7 +13,10 @@
|
||||
*/
|
||||
package cpw.mods.fml.common;
|
||||
|
||||
import net.minecraft.src.EntityItem;
|
||||
import net.minecraft.src.EntityPlayer;
|
||||
|
||||
public interface IPickupNotifier
|
||||
{
|
||||
void notifyPickup(Object... pickupData);
|
||||
void notifyPickup(EntityItem item, EntityPlayer player);
|
||||
}
|
||||
@@ -80,4 +80,6 @@ public interface BaseModProxy
|
||||
public abstract void receiveCustomPacket(Packet250CustomPayload packet);
|
||||
|
||||
public abstract void receiveChatPacket(String text);
|
||||
|
||||
public abstract void onItemPickup(EntityPlayer player, ItemStack item);
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import net.minecraft.src.BaseMod;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.ICraftingHandler;
|
||||
import cpw.mods.fml.common.IFuelHandler;
|
||||
import cpw.mods.fml.common.IPickupNotifier;
|
||||
import cpw.mods.fml.common.IWorldGenerator;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.TickType;
|
||||
@@ -137,4 +138,9 @@ public class ModLoaderHelper
|
||||
{
|
||||
return new ModLoaderConnectionHandler(mod);
|
||||
}
|
||||
|
||||
public static IPickupNotifier buildPickupHelper(BaseModProxy mod)
|
||||
{
|
||||
return new ModLoaderPickupNotifier(mod);
|
||||
}
|
||||
}
|
||||
@@ -505,6 +505,7 @@ public class ModLoaderModContainer implements ModContainer
|
||||
GameRegistry.registerWorldGenerator(ModLoaderHelper.buildWorldGenHelper(mod));
|
||||
GameRegistry.registerFuelHandler(ModLoaderHelper.buildFuelHelper(mod));
|
||||
GameRegistry.registerCraftingHandler(ModLoaderHelper.buildCraftingHelper(mod));
|
||||
GameRegistry.registerPickupHandler(ModLoaderHelper.buildPickupHelper(mod));
|
||||
NetworkRegistry.instance().registerConnectionHandler(ModLoaderHelper.buildConnectionHelper(mod));
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package cpw.mods.fml.common.modloader;
|
||||
|
||||
import net.minecraft.src.EntityItem;
|
||||
import net.minecraft.src.EntityPlayer;
|
||||
import cpw.mods.fml.common.IPickupNotifier;
|
||||
|
||||
public class ModLoaderPickupNotifier implements IPickupNotifier
|
||||
{
|
||||
|
||||
private BaseModProxy mod;
|
||||
|
||||
public ModLoaderPickupNotifier(BaseModProxy mod)
|
||||
{
|
||||
this.mod = mod;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyPickup(EntityItem item, EntityPlayer player)
|
||||
{
|
||||
mod.onItemPickup(player, item.field_70294_a);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import java.util.logging.Level;
|
||||
|
||||
import net.minecraft.src.BiomeGenBase;
|
||||
import net.minecraft.src.CraftingManager;
|
||||
import net.minecraft.src.EntityItem;
|
||||
import net.minecraft.src.EntityPlayer;
|
||||
import net.minecraft.src.FurnaceRecipes;
|
||||
import net.minecraft.src.IChunkProvider;
|
||||
@@ -27,6 +28,7 @@ import cpw.mods.fml.common.FMLLog;
|
||||
import cpw.mods.fml.common.ICraftingHandler;
|
||||
import cpw.mods.fml.common.IDispenseHandler;
|
||||
import cpw.mods.fml.common.IFuelHandler;
|
||||
import cpw.mods.fml.common.IPickupNotifier;
|
||||
import cpw.mods.fml.common.IWorldGenerator;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.LoaderException;
|
||||
@@ -42,6 +44,7 @@ public class GameRegistry
|
||||
private static List<IFuelHandler> fuelHandlers = Lists.newArrayList();
|
||||
private static List<ICraftingHandler> craftingHandlers = Lists.newArrayList();
|
||||
private static List<IDispenseHandler> dispenserHandlers = Lists.newArrayList();
|
||||
private static List<IPickupNotifier> pickupHandlers = Lists.newArrayList();
|
||||
|
||||
/**
|
||||
* Register a world generator - something that inserts new block types into the world
|
||||
@@ -244,4 +247,16 @@ public class GameRegistry
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerPickupHandler(IPickupNotifier handler)
|
||||
{
|
||||
pickupHandlers.add(handler);
|
||||
}
|
||||
|
||||
public static void onPickupNotification(EntityPlayer player, EntityItem item)
|
||||
{
|
||||
for (IPickupNotifier notify : pickupHandlers)
|
||||
{
|
||||
notify.notifyPickup(item, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
--- ../src-base/common/net/minecraft/src/EntityItem.java
|
||||
+++ ../src-work/common/net/minecraft/src/EntityItem.java
|
||||
@@ -1,6 +1,8 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
import java.util.Iterator;
|
||||
+
|
||||
+import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
||||
public class EntityItem extends Entity
|
||||
{
|
||||
@@ -225,6 +227,8 @@
|
||||
p_70100_1_.func_71029_a(AchievementList.field_76027_z);
|
||||
}
|
||||
|
||||
+ GameRegistry.onPickupNotification(p_70100_1_, this);
|
||||
+
|
||||
this.field_70170_p.func_72956_a(this, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||
p_70100_1_.func_71001_a(this, var2);
|
||||
|
||||
Reference in new issue
Block a user