Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.techmage.magetech.entity;
- import com.techmage.magetech.handler.PacketHandler;
- import com.techmage.magetech.network.PacketSyncLearnedResearch;
- import com.techmage.magetech.research.Research;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.nbt.NBTTagList;
- import net.minecraft.world.World;
- import net.minecraftforge.common.IExtendedEntityProperties;
- import java.util.HashSet;
- import java.util.Set;
- public class ExtendedPlayerProperties implements IExtendedEntityProperties
- {
- public static final String EXTENDED_PLAYER_MAGETECH = "ExtendedPlayerMageTech";
- private final EntityPlayer player;
- private Set<String> property_research;
- public ExtendedPlayerProperties(EntityPlayer player)
- {
- this.player = player;
- this.property_research = new HashSet<String>();
- }
- public static final void register(EntityPlayer player)
- {
- player.registerExtendedProperties(ExtendedPlayerProperties.EXTENDED_PLAYER_MAGETECH, new ExtendedPlayerProperties(player));
- }
- public static final ExtendedPlayerProperties get(EntityPlayer player)
- {
- if (player != null)
- return (ExtendedPlayerProperties) player.getExtendedProperties(EXTENDED_PLAYER_MAGETECH);
- return null;
- }
- @Override
- public void saveNBTData(NBTTagCompound nbtTagCompound)
- {
- NBTTagCompound properties = new NBTTagCompound();
- NBTTagList researchList = new NBTTagList();
- for (String research : property_research)
- {
- NBTTagCompound tagCompound = new NBTTagCompound();
- tagCompound.setString("Research", research);
- researchList.appendTag(tagCompound);
- }
- properties.setTag("PropertiesResearch", researchList);
- nbtTagCompound.setTag(EXTENDED_PLAYER_MAGETECH, properties);
- }
- @Override
- public void loadNBTData(NBTTagCompound nbtTagCompound)
- {
- NBTTagCompound properties = (NBTTagCompound) nbtTagCompound.getTag(EXTENDED_PLAYER_MAGETECH);
- NBTTagList researchList = properties.getTagList("PropertiesResearch", 10);
- for (int index = 0; index < researchList.tagCount(); index ++)
- property_research.add(researchList.getCompoundTagAt(index).getString("Research"));
- }
- public final void syncExtendedProperties()
- {
- PacketHandler.packetReq.sendTo(new PacketSyncLearnedResearch(player), (EntityPlayerMP) player);
- }
- @Override
- public void init(Entity entity, World world)
- {
- }
- public Set<String> getResearch()
- {
- return property_research;
- }
- public void addResearch(Research research)
- {
- property_research.add(research.getName());
- syncExtendedProperties();
- }
- public void setResearch(Set<String> learnedResearch)
- {
- property_research = learnedResearch;
- }
- public void resetResearch()
- {
- property_research = new HashSet<String>();
- syncExtendedProperties();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement