diff --git a/src/main/java/tconstruct/TConstruct.java b/src/main/java/tconstruct/TConstruct.java index f348352bece..c09fa182d5a 100644 --- a/src/main/java/tconstruct/TConstruct.java +++ b/src/main/java/tconstruct/TConstruct.java @@ -89,6 +89,7 @@ public void preInit (FMLPreInitializationEvent event) basinCasting = new LiquidCasting(); chiselDetailing = new Detailing(); + recipes = new TRecipes(); content = new TContent(); MinecraftForge.EVENT_BUS.register(new TEventHandlerAchievement()); diff --git a/src/main/java/tconstruct/blocks/GlassBlock.java b/src/main/java/tconstruct/blocks/GlassBlock.java index aeb3366b1c2..863cacb0c26 100644 --- a/src/main/java/tconstruct/blocks/GlassBlock.java +++ b/src/main/java/tconstruct/blocks/GlassBlock.java @@ -1,13 +1,11 @@ package tconstruct.blocks; +import cpw.mods.fml.relauncher.*; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.Entity; import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.*; public class GlassBlock extends TConstructBlock { diff --git a/src/main/java/tconstruct/items/armor/Knapsack.java b/src/main/java/tconstruct/items/armor/Knapsack.java index 03218861ab6..3bc4b6e36a2 100644 --- a/src/main/java/tconstruct/items/armor/Knapsack.java +++ b/src/main/java/tconstruct/items/armor/Knapsack.java @@ -1,5 +1,11 @@ package tconstruct.items.armor; +import tconstruct.TConstruct; +import tconstruct.util.player.*; + +import net.minecraft.entity.Entity; +import net.minecraft.world.World; + import java.util.List; import tconstruct.items.CraftingItem; @@ -29,5 +35,20 @@ public void addInformation (ItemStack stack, EntityPlayer player, List list, boo break; } } + + @Override + public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack itemStack) + { + TPlayerStats stats = TConstruct.playerTracker.getPlayerStats(player.username); + KnapsackInventory inv = stats.knapsack; + + if (stats != null && inv != null) { + for(int i = 0; i < inv.getSizeInventory(); i++){ + if(inv.getStackInSlot(i) != null){ + inv.getStackInSlot(i).getItem().onUpdate(inv.getStackInSlot(i), player.worldObj, player, i, false); + } + } + } + } } diff --git a/src/main/java/tconstruct/util/TEventHandler.java b/src/main/java/tconstruct/util/TEventHandler.java index 9aaef942915..eef7b41d903 100644 --- a/src/main/java/tconstruct/util/TEventHandler.java +++ b/src/main/java/tconstruct/util/TEventHandler.java @@ -1,5 +1,9 @@ package tconstruct.util; +import tconstruct.util.player.ArmorExtended; + +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; + import java.util.Random; import net.minecraft.block.Block; @@ -620,6 +624,25 @@ public void bucketFill (FillBucketEvent evt) } } + @ForgeSubscribe + public void livingUpdate (LivingUpdateEvent event) + { + if(event.entityLiving instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer) event.entityLiving; + TPlayerStats stats = TConstruct.playerTracker.getPlayerStats(player.username); + + if(stats != null){ + ArmorExtended armor = stats.armor; + for(int i = 0; i < armor.getSizeInventory(); i++){ + if(armor.getStackInSlot(i) != null){ + armor.getStackInSlot(i).getItem().onUpdate(armor.getStackInSlot(i), player.worldObj, player, i, false); + armor.getStackInSlot(i).getItem().onArmorTickUpdate(player.worldObj, player, armor.getStackInSlot(i)); + } + } + } + } + } + //Player interact event - prevent breaking of tank air blocks in creative @ForgeSubscribe public void playerInteract (PlayerInteractEvent event)