Advertisement
TechMage66

ExtendedPlayerProperties

Mar 12th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.16 KB | None | 0 0
  1. package com.techmage.magetech.entity;
  2.  
  3. import com.techmage.magetech.handler.PacketHandler;
  4. import com.techmage.magetech.network.PacketSyncLearnedResearch;
  5. import com.techmage.magetech.research.Research;
  6. import net.minecraft.entity.Entity;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.entity.player.EntityPlayerMP;
  9. import net.minecraft.nbt.NBTTagCompound;
  10. import net.minecraft.nbt.NBTTagList;
  11. import net.minecraft.world.World;
  12. import net.minecraftforge.common.IExtendedEntityProperties;
  13.  
  14. import java.util.HashSet;
  15. import java.util.Set;
  16.  
  17. public class ExtendedPlayerProperties implements IExtendedEntityProperties
  18. {
  19.     public static final String EXTENDED_PLAYER_MAGETECH = "ExtendedPlayerMageTech";
  20.  
  21.     private final EntityPlayer player;
  22.     private Set<String> property_research;
  23.  
  24.     public ExtendedPlayerProperties(EntityPlayer player)
  25.     {
  26.         this.player = player;
  27.         this.property_research = new HashSet<String>();
  28.     }
  29.  
  30.     public static final void register(EntityPlayer player)
  31.     {
  32.         player.registerExtendedProperties(ExtendedPlayerProperties.EXTENDED_PLAYER_MAGETECH, new ExtendedPlayerProperties(player));
  33.     }
  34.  
  35.     public static final ExtendedPlayerProperties get(EntityPlayer player)
  36.     {
  37.         if (player != null)
  38.             return (ExtendedPlayerProperties) player.getExtendedProperties(EXTENDED_PLAYER_MAGETECH);
  39.  
  40.         return null;
  41.     }
  42.  
  43.     @Override
  44.     public void saveNBTData(NBTTagCompound nbtTagCompound)
  45.     {
  46.         NBTTagCompound properties = new NBTTagCompound();
  47.         NBTTagList researchList = new NBTTagList();
  48.  
  49.         for (String research : property_research)
  50.         {
  51.             NBTTagCompound tagCompound = new NBTTagCompound();
  52.             tagCompound.setString("Research", research);
  53.             researchList.appendTag(tagCompound);
  54.         }
  55.  
  56.         properties.setTag("PropertiesResearch", researchList);
  57.         nbtTagCompound.setTag(EXTENDED_PLAYER_MAGETECH, properties);
  58.     }
  59.  
  60.     @Override
  61.     public void loadNBTData(NBTTagCompound nbtTagCompound)
  62.     {
  63.         NBTTagCompound properties = (NBTTagCompound) nbtTagCompound.getTag(EXTENDED_PLAYER_MAGETECH);
  64.         NBTTagList researchList = properties.getTagList("PropertiesResearch", 10);
  65.  
  66.         for (int index = 0; index < researchList.tagCount(); index ++)
  67.             property_research.add(researchList.getCompoundTagAt(index).getString("Research"));
  68.     }
  69.  
  70.     public final void syncExtendedProperties()
  71.     {
  72.         PacketHandler.packetReq.sendTo(new PacketSyncLearnedResearch(player), (EntityPlayerMP) player);
  73.     }
  74.  
  75.     @Override
  76.     public void init(Entity entity, World world)
  77.     {
  78.  
  79.     }
  80.  
  81.     public Set<String> getResearch()
  82.     {
  83.         return property_research;
  84.     }
  85.  
  86.     public void addResearch(Research research)
  87.     {
  88.         property_research.add(research.getName());
  89.  
  90.         syncExtendedProperties();
  91.     }
  92.  
  93.     public void setResearch(Set<String> learnedResearch)
  94.     {
  95.         property_research = learnedResearch;
  96.     }
  97.  
  98.     public void resetResearch()
  99.     {
  100.         property_research = new HashSet<String>();
  101.  
  102.         syncExtendedProperties();
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement