diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiNpcPartyOptions.java b/src/main/java/noppes/npcs/client/gui/SubGuiNpcPartyOptions.java index 0f045423c..0604b6c62 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiNpcPartyOptions.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiNpcPartyOptions.java @@ -3,6 +3,7 @@ package noppes.npcs.client.gui; import net.minecraft.client.gui.GuiButton; import noppes.npcs.client.gui.util.*; import noppes.npcs.constants.EnumPartyExchange; +import noppes.npcs.constants.EnumPartyObjectives; import noppes.npcs.constants.EnumPartyRequirements; import noppes.npcs.controllers.data.PartyOptions; @@ -24,33 +25,38 @@ public class SubGuiNpcPartyOptions extends SubGuiInterface implements ITextfield super.initGui(); //Allow party - T/F button - addButton(new GuiNpcButton(0, guiLeft + 90, guiTop + 10, 60, 20, + addButton(new GuiNpcButton(0, guiLeft + 130, guiTop + 10, 60, 20, new String[]{"gui.no", "gui.yes"}, options.allowParty ? 1 : 0)); addLabel(new GuiNpcLabel(1, "party.allowParty", guiLeft + 10, guiTop + 17)); if (options.allowParty) { //Party requirements - enum button - addButton(new GuiNpcButton(5, guiLeft + 110, guiTop + 35, 60, 20, + addButton(new GuiNpcButton(5, guiLeft + 130, guiTop + 35, 60, 20, EnumPartyRequirements.values(), options.partyRequirements.ordinal())); addLabel(new GuiNpcLabel(6, "party.partyRequirements", guiLeft + 10, guiTop + 42)); //Party rewards - enum button - addButton(new GuiNpcButton(10, guiLeft + 110, guiTop + 60, 60, 20, + addButton(new GuiNpcButton(10, guiLeft + 130, guiTop + 60, 60, 20, EnumPartyExchange.values(), options.rewardControl.ordinal())); addLabel(new GuiNpcLabel(11, "party.partyRewards", guiLeft + 10, guiTop + 67)); //Complete for - enum button - addButton(new GuiNpcButton(15, guiLeft + 110, guiTop + 85, 60, 20, + addButton(new GuiNpcButton(15, guiLeft + 130, guiTop + 85, 60, 20, EnumPartyExchange.values(), options.completeFor.ordinal())); addLabel(new GuiNpcLabel(16, "party.completeFor", guiLeft + 10, guiTop + 92)); + //Objective Requirement - enum button + addButton(new GuiNpcButton(18, guiLeft + 130, guiTop + 110, 60, 20, + EnumPartyObjectives.values(), options.objectiveRequirement.ordinal())); + addLabel(new GuiNpcLabel(19, "party.objectiveRequirement", guiLeft + 10, guiTop + 117)); + //max party size - number field - GuiNpcTextField textField = new GuiNpcTextField(20, this, guiLeft + 110, guiTop + 110, + GuiNpcTextField textField = new GuiNpcTextField(20, this, guiLeft + 130, guiTop + 135, 40, 20, String.valueOf(options.maxPartySize)); textField.integersOnly = true; textField.setMinMaxDefault(1, Integer.MAX_VALUE, 4); addTextField(textField); - addLabel(new GuiNpcLabel(20, "party.maxPartySize", guiLeft + 10, guiTop + 117)); + addLabel(new GuiNpcLabel(20, "party.maxPartySize", guiLeft + 10, guiTop + 142)); } addButton(new GuiNpcButton(66, guiLeft + 20, guiTop + 192, 90, 20, "gui.done")); @@ -72,6 +78,9 @@ public class SubGuiNpcPartyOptions extends SubGuiInterface implements ITextfield case 15: options.completeFor = EnumPartyExchange.valueOf(guibutton.displayString); break; + case 18: + options.objectiveRequirement = EnumPartyObjectives.valueOf(guibutton.displayString); + break; case 66: close(); break; diff --git a/src/main/java/noppes/npcs/controllers/data/PartyOptions.java b/src/main/java/noppes/npcs/controllers/data/PartyOptions.java index aaad76ba3..b75c9eb90 100644 --- a/src/main/java/noppes/npcs/controllers/data/PartyOptions.java +++ b/src/main/java/noppes/npcs/controllers/data/PartyOptions.java @@ -4,13 +4,18 @@ import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.api.handler.data.IPartyOptions; import noppes.npcs.config.ConfigMain; import noppes.npcs.constants.EnumPartyExchange; +import noppes.npcs.constants.EnumPartyObjectives; import noppes.npcs.constants.EnumPartyRequirements; public class PartyOptions implements IPartyOptions { public boolean allowParty = false; - public EnumPartyRequirements partyRequirements = EnumPartyRequirements.Leader; - public EnumPartyExchange rewardControl = EnumPartyExchange.Leader; + + public EnumPartyRequirements partyRequirements = EnumPartyRequirements.Leader; + + public EnumPartyExchange rewardControl = EnumPartyExchange.Leader; public EnumPartyExchange completeFor = EnumPartyExchange.Leader; + + public EnumPartyObjectives objectiveRequirement = EnumPartyObjectives.All; public int maxPartySize = ConfigMain.DefaultMaxPartySize; public void readFromNBT(NBTTagCompound compound) @@ -22,6 +27,7 @@ public class PartyOptions implements IPartyOptions { rewardControl = EnumPartyExchange.values()[compound.getInteger("RewardControl")]; completeFor = EnumPartyExchange.values()[compound.getInteger("CompleteFor")]; maxPartySize = compound.getInteger("MaxPartySize"); + objectiveRequirement = EnumPartyObjectives.values()[compound.getInteger("ObjectiveRequirement")]; } else { if(compound.hasKey("PartyRequirements")){ @@ -36,11 +42,15 @@ public class PartyOptions implements IPartyOptions { if(compound.hasKey("MaxPartySize")){ compound.removeTag("MaxPartySize"); } + if(compound.hasKey("ObjectiveRequirement")){ + compound.removeTag("ObjectiveRequirement"); + } - partyRequirements = EnumPartyRequirements.Leader; + partyRequirements = EnumPartyRequirements.Leader; rewardControl = EnumPartyExchange.Leader; completeFor = EnumPartyExchange.Leader; maxPartySize = ConfigMain.DefaultMaxPartySize; + objectiveRequirement = EnumPartyObjectives.All; } } public NBTTagCompound writeToNBT() @@ -52,6 +62,7 @@ public class PartyOptions implements IPartyOptions { compound.setInteger("RewardControl", rewardControl.ordinal()); compound.setInteger("CompleteFor", completeFor.ordinal()); compound.setInteger("MaxPartySize", maxPartySize); + compound.setInteger("ObjectiveRequirement", objectiveRequirement.ordinal()); } else { if(compound.hasKey("PartyRequirements")){ @@ -66,23 +77,30 @@ public class PartyOptions implements IPartyOptions { if(compound.hasKey("MaxPartySize")){ compound.removeTag("MaxPartySize"); } + if(compound.hasKey("ObjectiveRequirement")){ + compound.removeTag("ObjectiveRequirement"); + } } return compound; } + @Override public boolean isAllowParty() { return allowParty; } + @Override public void setAllowParty(boolean allowParty) { this.allowParty = allowParty; } + @Override public int getPartyRequirements() { return partyRequirements.ordinal(); } + @Override public void setPartyRequirements(int partyReq) { if (partyReq < 0 || partyReq >= EnumPartyRequirements.values().length) { return; @@ -90,10 +108,12 @@ public class PartyOptions implements IPartyOptions { this.partyRequirements = EnumPartyRequirements.values()[partyReq]; } + @Override public int getRewardControl() { return rewardControl.ordinal(); } + @Override public void setRewardControl(int rewardCon) { if (rewardCon < 0 || rewardCon >= EnumPartyExchange.values().length) { return; @@ -101,10 +121,12 @@ public class PartyOptions implements IPartyOptions { this.rewardControl = EnumPartyExchange.values()[rewardCon]; } + @Override public int getCompleteFor() { return completeFor.ordinal(); } + @Override public void setCompleteFor(int compFor) { if (compFor < 0 || compFor >= EnumPartyExchange.values().length) { return; @@ -112,6 +134,17 @@ public class PartyOptions implements IPartyOptions { this.completeFor = EnumPartyExchange.values()[compFor]; } + public int getObjectiveRequirement() { + return objectiveRequirement.ordinal(); + } + + public void setObjectiveRequirement(int requirement) { + if (requirement < 0 || requirement >= EnumPartyObjectives.values().length) { + return; + } + this.objectiveRequirement = EnumPartyObjectives.values()[requirement]; + } + @Override public int getMaxPartySize() { return maxPartySize;