Files
CustomNPC-Plus/src/main/java/noppes/npcs/controllers/data/DialogOption.java
T
2025-03-13 17:14:45 -04:00

63 lines
1.9 KiB
Java

package noppes.npcs.controllers.data;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.constants.EnumOptionType;
import noppes.npcs.controllers.DialogController;
public class DialogOption {
public int dialogId = -1;
public String title = "Talk";
public EnumOptionType optionType = EnumOptionType.DialogOption;
public int optionColor = 0xe0e0e0;
public String command = "";
public void readNBT(NBTTagCompound compound) {
if (compound == null)
return;
title = compound.getString("Title");
dialogId = compound.getInteger("Dialog");
optionColor = compound.getInteger("DialogColor");
optionType = EnumOptionType.values()[compound.getInteger("OptionType")];
command = compound.getString("DialogCommand");
if (optionColor == 0) {
optionColor = 0xe0e0e0;
}
}
public NBTTagCompound writeNBT() {
NBTTagCompound compound = new NBTTagCompound();
compound.setString("Title", title);
compound.setInteger("OptionType", optionType.ordinal());
compound.setInteger("Dialog", dialogId);
compound.setInteger("DialogColor", optionColor);
compound.setString("DialogCommand", command);
return compound;
}
public boolean hasDialog() {
if (dialogId <= 0)
return false;
if (!DialogController.Instance.hasDialog(dialogId)) {
dialogId = -1;
return false;
}
return true;
}
public Dialog getDialog() {
if (!hasDialog())
return null;
return DialogController.Instance.dialogs.get(dialogId);
}
public boolean isAvailable(EntityPlayer player) {
Dialog dialog = getDialog();
if (dialog == null)
return false;
return dialog.availability.isAvailable(player);
}
}