package advancedsystemsmanager.compatibility.thaumcraft.setting;
import advancedsystemsmanager.flow.setting.Setting;
import advancedsystemsmanager.network.ASMPacket;
import advancedsystemsmanager.reference.Names;
import net.minecraft.nbt.NBTTagCompound;
import thaumcraft.api.aspects.Aspect;
import java.util.ArrayList;
import java.util.List;
public class AspectSetting extends Setting<Aspect>
{
public static final String NBT_ASPECT_TAG = "AspectTag";
public Aspect aspect;
public AspectSetting(int id)
{
super(id);
}
@Override
public void clear()
{
super.clear();
aspect = null;
setDefaultAmount();
}
@Override
public List<String> getMouseOver()
{
List<String> ret = new ArrayList<String>();
if (aspect == null)
{
ret.add(Names.NO_ASPECT_SELECTED);
} else
{
ret.add(aspect.getName());
}
ret.add("");
ret.add(Names.CHANGE_ASPECT);
if (aspect != null)
{
ret.add(Names.EDIT_SETTING);
}
return ret;
}
@Override
public int getDefaultAmount()
{
return 1;
}
@Override
public Aspect getContent()
{
return aspect;
}
@Override
public boolean isValid()
{
return aspect != null;
}
@Override
public void copyFrom(Setting setting)
{
aspect = ((AspectSetting)setting).getContent();
}
@Override
public void setContent(Aspect obj)
{
aspect = obj;
}
@Override
public boolean isContentEqual(Aspect check)
{
return check == aspect;
}
@Override
public void save(NBTTagCompound settingTag)
{
super.save(settingTag);
settingTag.setString(NBT_ASPECT_TAG, aspect.getTag());
}
@Override
public void load(NBTTagCompound settingTag)
{
super.load(settingTag);
aspect = Aspect.getAspect(settingTag.getString(NBT_ASPECT_TAG));
}
@Override
public void writeContentData(ASMPacket packet)
{
super.writeContentData(packet);
packet.writeStringToBuffer(aspect.getTag());
}
@Override
public void readContentData(ASMPacket packet)
{
super.readContentData(packet);
aspect = Aspect.getAspect(packet.readStringFromBuffer());
}
}