diff --git a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java index a176279..5e8ed49 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java +++ b/src/main/java/exopandora/worldhandler/gui/content/element/impl/ElementPageList.java @@ -1,164 +1,164 @@ -package exopandora.worldhandler.gui.content.element.impl; - -import java.util.List; - -import exopandora.worldhandler.config.ConfigSkin; -import exopandora.worldhandler.format.TextFormatting; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.element.Element; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ElementPageList extends Element -{ - private final List list; - private final ILogicPageList logic; - private final int length; - private final int width; - private final int height; - private final int[] ids; - private final ButtonValues values; - - public ElementPageList(int x, int y, List list, K initial, int width, int height, int length, Content content, int[] ids, ILogicPageList logic) - { - super(x, y); - this.list = list; - this.length = length; - this.width = width; - this.height = height; - this.logic = logic; - this.values = content.getPersistence(logic.getId()); - this.ids = ids; - - this.list.sort((a, b) -> this.logic.translate(a).compareTo(this.logic.translate(b))); - - if(this.values.getObject() == null) - { - this.values.setObject(0); - this.values.setIndex(Math.max(0, this.list.indexOf(this.logic.convert(initial)))); - - if(initial == null) - { - this.logic.onClick(this.list.get(0)); - } - } - } - - @Override - public void initGui(Container container) - { - - } - - @Override - public void initButtons(Container container) - { - boolean extended = (this.list.size() == this.length + 1); - - if(!extended) - { - int buttonWidth = (this.width - 4) / 2; - - GuiButtonWorldHandler left = new GuiButtonWorldHandler(this.ids[0], this.x, this.y + (this.height + 4) * this.length, buttonWidth + 1, this.height, "<"); - GuiButtonWorldHandler right = new GuiButtonWorldHandler(this.ids[1], this.x + 5 + buttonWidth, this.y + (this.height + 4) * this.length, buttonWidth, this.height, ">"); - - left.enabled = this.values.getObject() > 0; - right.enabled = this.values.getObject() < this.getTotalPages() - 1; - - container.add(left); - container.add(right); - } - - int length = (extended ? this.length + 1 : this.length); - - for(int x = 0; x < length; x++) - { - int index = this.values.getObject() * length + x; - - if(index < this.list.size()) - { - T entry = this.list.get(index); - this.logic.onRegister(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer), this.logic.getRegistryName(entry), this.values.getIndex() != index, entry, container); - } - else - { - GuiButtonWorldHandler button = new GuiButtonWorldHandler(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, null); - button.enabled = false; - container.add(button); - } - } - } - - @Override - public boolean actionPerformed(Container container, GuiButton button) - { - if(button.id == this.ids[0]) - { - int value = this.values.getObject(); - - if(GuiScreen.isShiftKeyDown()) - { - this.values.setObject(value - Math.min(10, value)); - } - else - { - this.values.setObject(value - 1); - } - - container.initGui(); - return true; - } - else if(button.id == this.ids[1]) - { - int value = this.values.getObject(); - - if(GuiScreen.isShiftKeyDown()) - { - this.values.setObject(value + Math.min(10, this.getTotalPages() - 1 - value)); - } - else - { - this.values.setObject(value + 1); - } - - container.initGui(); - return true; - } - else if(button.id == this.ids[2]) - { - for(int x = 0; x < this.list.size(); x++) - { - T entry = this.list.get(x); - - if(TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer).equals(button.displayString)) - { - this.values.setIndex(x); - this.logic.onClick(entry); - container.initGui(); - return true; - } - } - } - - return false; - } - - @Override - public void draw() - { - Minecraft.getMinecraft().fontRenderer.drawString((this.values.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, ConfigSkin.getHeadlineColor()); - } - - private int getTotalPages() - { - return (int) Math.ceil((float) this.list.size() / this.length); - } -} +package exopandora.worldhandler.gui.content.element.impl; + +import java.util.List; + +import exopandora.worldhandler.config.ConfigSkin; +import exopandora.worldhandler.format.TextFormatting; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.element.Element; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ElementPageList extends Element +{ + private final List list; + private final ILogicPageList logic; + private final int length; + private final int width; + private final int height; + private final int[] ids; + private final ButtonValues values; + + public ElementPageList(int x, int y, List list, K initial, int width, int height, int length, Content content, int[] ids, ILogicPageList logic) + { + super(x, y); + this.list = list; + this.length = length; + this.width = width; + this.height = height; + this.logic = logic; + this.values = content.getPersistence(logic.getId()); + this.ids = ids; + + this.list.sort((a, b) -> this.logic.translate(a).compareTo(this.logic.translate(b))); + + if(this.values.getObject() == null) + { + this.values.setObject(0); + this.values.setIndex(Math.max(0, this.list.indexOf(this.logic.getObject(initial)))); + + if(initial == null) + { + this.logic.onClick(this.list.get(0)); + } + } + } + + @Override + public void initGui(Container container) + { + + } + + @Override + public void initButtons(Container container) + { + boolean extended = (this.list.size() == this.length + 1); + + if(!extended) + { + int buttonWidth = (this.width - 4) / 2; + + GuiButtonWorldHandler left = new GuiButtonWorldHandler(this.ids[0], this.x, this.y + (this.height + 4) * this.length, buttonWidth + 1, this.height, "<"); + GuiButtonWorldHandler right = new GuiButtonWorldHandler(this.ids[1], this.x + 5 + buttonWidth, this.y + (this.height + 4) * this.length, buttonWidth, this.height, ">"); + + left.enabled = this.values.getObject() > 0; + right.enabled = this.values.getObject() < this.getTotalPages() - 1; + + container.add(left); + container.add(right); + } + + int length = (extended ? this.length + 1 : this.length); + + for(int x = 0; x < length; x++) + { + int index = this.values.getObject() * length + x; + + if(index < this.list.size()) + { + T entry = this.list.get(index); + this.logic.onRegister(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer), this.logic.getRegistryName(entry), this.values.getIndex() != index, entry, container); + } + else + { + GuiButtonWorldHandler button = new GuiButtonWorldHandler(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, null); + button.enabled = false; + container.add(button); + } + } + } + + @Override + public boolean actionPerformed(Container container, GuiButton button) + { + if(button.id == this.ids[0]) + { + int value = this.values.getObject(); + + if(GuiScreen.isShiftKeyDown()) + { + this.values.setObject(value - Math.min(10, value)); + } + else + { + this.values.setObject(value - 1); + } + + container.initGui(); + return true; + } + else if(button.id == this.ids[1]) + { + int value = this.values.getObject(); + + if(GuiScreen.isShiftKeyDown()) + { + this.values.setObject(value + Math.min(10, this.getTotalPages() - 1 - value)); + } + else + { + this.values.setObject(value + 1); + } + + container.initGui(); + return true; + } + else if(button.id == this.ids[2]) + { + for(int x = 0; x < this.list.size(); x++) + { + T entry = this.list.get(x); + + if(TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer).equals(button.displayString)) + { + this.values.setIndex(x); + this.logic.onClick(entry); + container.initGui(); + return true; + } + } + } + + return false; + } + + @Override + public void draw() + { + Minecraft.getMinecraft().fontRenderer.drawString((this.values.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, ConfigSkin.getHeadlineColor()); + } + + private int getTotalPages() + { + return (int) Math.ceil((float) this.list.size() / this.length); + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/element/logic/ILogicPageList.java b/src/main/java/exopandora/worldhandler/gui/content/element/logic/ILogicPageList.java index 4062537..5e02776 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/element/logic/ILogicPageList.java +++ b/src/main/java/exopandora/worldhandler/gui/content/element/logic/ILogicPageList.java @@ -1,17 +1,17 @@ -package exopandora.worldhandler.gui.content.element.logic; - -import exopandora.worldhandler.gui.container.Container; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public interface ILogicPageList extends ILogic -{ - String translate(T key); - String getRegistryName(T key); - - void onClick(T clicked); - void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, T value, Container container); - - T convert(K object); +package exopandora.worldhandler.gui.content.element.logic; + +import exopandora.worldhandler.gui.container.Container; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public interface ILogicPageList extends ILogic +{ + String translate(T key); + String getRegistryName(T key); + + void onClick(T clicked); + void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, T value, Container container); + + T getObject(K object); } \ No newline at end of file diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java index 57be352..501c1b6 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentAdvancements.java @@ -1,199 +1,199 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -import com.google.common.collect.Lists; -import com.mojang.realmsclient.gui.ChatFormatting; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderAdvancement; -import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumActionType; -import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumMode; -import exopandora.worldhandler.builder.types.Type; -import exopandora.worldhandler.gui.button.EnumTooltip; -import exopandora.worldhandler.gui.button.GuiButtonList; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.logic.IListButtonLogic; -import exopandora.worldhandler.gui.button.persistence.ButtonValues; -import exopandora.worldhandler.gui.category.Categories; -import exopandora.worldhandler.gui.category.Category; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.container.impl.GuiWorldHandlerContainer; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.Contents; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import exopandora.worldhandler.helper.AdvancementHelper; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentAdvancements extends Content -{ - private final AdvancementHelper helper = new AdvancementHelper(); - private final BuilderAdvancement builderAdvancement = new BuilderAdvancement(EnumMode.values()[0]); - - private GuiButtonList modeButton; - - private final List advancements = Lists.newArrayList(new AdvancementManager(null).getAdvancements()).parallelStream().filter(advancement -> advancement.getDisplay() != null).collect(Collectors.toList()); - - @Override - public ICommandBuilder getCommandBuilder() - { - return this.builderAdvancement; - } - - @Override - public void initGui(Container container, int x, int y) - { - ElementPageList list = new ElementPageList(x, y, this.advancements, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList() - { - @Override - public String translate(Advancement key) - { - return I18n.format(key.getDisplay().getTitle().getUnformattedText()); - } - - @Override - public void onClick(Advancement clicked) - { - builderAdvancement.setAdvancement(clicked.getId()); - } - - @Override - public String getRegistryName(Advancement key) - { - return key.getId().toString(); - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, Advancement value, Container container) - { - GuiButtonWorldHandler button; - container.add(button = new GuiButtonWorldHandler(id, x, y, width, height, display, value.getId().toString(), EnumTooltip.TOP_RIGHT)); - button.enabled = enabled; - } - - @Override - public Advancement convert(String object) - { - return helper.ADVANCEMENT_MANAGER.getAdvancement(Type.parseResourceLocation(object)); - } - - @Override - public String getId() - { - return "advancements"; - } - }); - - container.add(list); - } - - @Override - public void initButtons(Container container, int x, int y) - { - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - - container.add(this.modeButton = new GuiButtonList(2, x + 118, y, 114, 20, EnumTooltip.TOP_RIGHT, this, new IListButtonLogic() - { - private final EnumMode[] values = Arrays.stream(EnumMode.values()).filter(mode -> !mode.equals(EnumMode.EVERYTHING)).toArray(EnumMode[]::new); - - @Override - public void actionPerformed(Container container, GuiButton button, ButtonValues values) - { - builderAdvancement.setMode(values.getObject()); - } - - @Override - public int getMax() - { - return this.values.length; - } - - @Override - public EnumMode getObject(int index) - { - return this.values[index]; - } - - @Override - public String getDisplayString(ButtonValues values) - { - return I18n.format("gui.worldhandler.advancements." + values.getObject().toString()); - } - - @Override - public String getId() - { - return "mode"; - } - })); - - container.add(new GuiButtonWorldHandler(3, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.advancements.grant"))); - container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.advancements.revoke"))); - container.add(new GuiButtonWorldHandler(5, x + 118, y + 72, 114, 20, ChatFormatting.RED + I18n.format("gui.worldhandler.actions.reset"))); - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - switch(button.id) - { - case 2: - this.modeButton.actionPerformed(container, button); - container.initGui(); - break; - case 3: - WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.GRANT)); - break; - case 4: - WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.REVOKE)); - break; - case 5: - Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.CONTINUE.withBuilder(this.builderAdvancement.getBuilder(EnumActionType.REVOKE, EnumMode.EVERYTHING)).withParent(Contents.ADVANCEMENTS))); - break; - default: - break; - } - } - - @Override - public Category getCategory() - { - return Categories.PLAYER; - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.player.advancements"); - } - - @Override - public String getTabTitle() - { - return I18n.format("gui.worldhandler.tab.player.advancements"); - } - - @Override - public Content getActiveContent() - { - return Contents.ADVANCEMENTS; - } - - @Override - public void onPlayerNameChanged(String username) - { - this.builderAdvancement.setPlayer(username); - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import com.google.common.collect.Lists; +import com.mojang.realmsclient.gui.ChatFormatting; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderAdvancement; +import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumActionType; +import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumMode; +import exopandora.worldhandler.builder.types.Type; +import exopandora.worldhandler.gui.button.EnumTooltip; +import exopandora.worldhandler.gui.button.GuiButtonList; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.logic.IListButtonLogic; +import exopandora.worldhandler.gui.button.persistence.ButtonValues; +import exopandora.worldhandler.gui.category.Categories; +import exopandora.worldhandler.gui.category.Category; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.container.impl.GuiWorldHandlerContainer; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import exopandora.worldhandler.helper.AdvancementHelper; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementManager; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentAdvancements extends Content +{ + private final AdvancementHelper helper = new AdvancementHelper(); + private final BuilderAdvancement builderAdvancement = new BuilderAdvancement(EnumMode.values()[0]); + + private GuiButtonList modeButton; + + private final List advancements = Lists.newArrayList(new AdvancementManager(null).getAdvancements()).parallelStream().filter(advancement -> advancement.getDisplay() != null).collect(Collectors.toList()); + + @Override + public ICommandBuilder getCommandBuilder() + { + return this.builderAdvancement; + } + + @Override + public void initGui(Container container, int x, int y) + { + ElementPageList list = new ElementPageList(x, y, this.advancements, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList() + { + @Override + public String translate(Advancement key) + { + return I18n.format(key.getDisplay().getTitle().getUnformattedText()); + } + + @Override + public void onClick(Advancement clicked) + { + builderAdvancement.setAdvancement(clicked.getId()); + } + + @Override + public String getRegistryName(Advancement key) + { + return key.getId().toString(); + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, Advancement value, Container container) + { + GuiButtonWorldHandler button; + container.add(button = new GuiButtonWorldHandler(id, x, y, width, height, display, value.getId().toString(), EnumTooltip.TOP_RIGHT)); + button.enabled = enabled; + } + + @Override + public Advancement getObject(String object) + { + return helper.ADVANCEMENT_MANAGER.getAdvancement(Type.parseResourceLocation(object)); + } + + @Override + public String getId() + { + return "advancements"; + } + }); + + container.add(list); + } + + @Override + public void initButtons(Container container, int x, int y) + { + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + + container.add(this.modeButton = new GuiButtonList(2, x + 118, y, 114, 20, EnumTooltip.TOP_RIGHT, this, new IListButtonLogic() + { + private final EnumMode[] values = Arrays.stream(EnumMode.values()).filter(mode -> !mode.equals(EnumMode.EVERYTHING)).toArray(EnumMode[]::new); + + @Override + public void actionPerformed(Container container, GuiButton button, ButtonValues values) + { + builderAdvancement.setMode(values.getObject()); + } + + @Override + public int getMax() + { + return this.values.length; + } + + @Override + public EnumMode getObject(int index) + { + return this.values[index]; + } + + @Override + public String getDisplayString(ButtonValues values) + { + return I18n.format("gui.worldhandler.advancements." + values.getObject().toString()); + } + + @Override + public String getId() + { + return "mode"; + } + })); + + container.add(new GuiButtonWorldHandler(3, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.advancements.grant"))); + container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.advancements.revoke"))); + container.add(new GuiButtonWorldHandler(5, x + 118, y + 72, 114, 20, ChatFormatting.RED + I18n.format("gui.worldhandler.actions.reset"))); + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + switch(button.id) + { + case 2: + this.modeButton.actionPerformed(container, button); + container.initGui(); + break; + case 3: + WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.GRANT)); + break; + case 4: + WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.REVOKE)); + break; + case 5: + Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.CONTINUE.withBuilder(this.builderAdvancement.getBuilder(EnumActionType.REVOKE, EnumMode.EVERYTHING)).withParent(Contents.ADVANCEMENTS))); + break; + default: + break; + } + } + + @Override + public Category getCategory() + { + return Categories.PLAYER; + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.player.advancements"); + } + + @Override + public String getTabTitle() + { + return I18n.format("gui.worldhandler.tab.player.advancements"); + } + + @Override + public Content getActiveContent() + { + return Contents.ADVANCEMENTS; + } + + @Override + public void onPlayerNameChanged(String username) + { + this.builderAdvancement.setPlayer(username); + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java index 3918069..4bdb728 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentCustomItem.java @@ -1,372 +1,372 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import com.google.common.base.Predicates; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderCustomItem; -import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; -import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; -import exopandora.worldhandler.config.ConfigSliders; -import exopandora.worldhandler.gui.button.GuiButtonList; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.GuiSlider; -import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; -import exopandora.worldhandler.gui.button.responder.AttributeResponder; -import exopandora.worldhandler.gui.button.responder.SimpleResponder; -import exopandora.worldhandler.gui.category.Categories; -import exopandora.worldhandler.gui.category.Category; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.Contents; -import exopandora.worldhandler.gui.content.element.impl.ElementColorMenu; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import exopandora.worldhandler.helper.ResourceHelper; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentCustomItem extends Content -{ - private GuiTextFieldTooltip itemField; - private GuiTextFieldTooltip itemLore1Field; - private GuiTextFieldTooltip itemLore2Field; - - private final BuilderCustomItem builderCutomItem = new BuilderCustomItem(); - - private int startPage; - - private String selectedPage = "start"; - private String item; - - private GuiButtonList colorButton; - - private final List attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList()); - - @Override - public ICommandBuilder getCommandBuilder() - { - return this.builderCutomItem; - } - - @Override - public void init(Container container) - { - for(EnumAttributes attribute : this.builderCutomItem.getAttributes()) - { - double ammount = this.builderCutomItem.getAttributeAmmount(attribute); - - if(ammount > ConfigSliders.getMaxItemAttributes()) - { - this.builderCutomItem.setAttribute(attribute, ConfigSliders.getMaxItemAttributes()); - } - } - - for(Enchantment enchantment : this.builderCutomItem.getEnchantments()) - { - short level = this.builderCutomItem.getEnchantmentLevel(enchantment); - - if(level > ConfigSliders.getMaxItemEnchantment()) - { - this.builderCutomItem.setEnchantment(enchantment, (short) ConfigSliders.getMaxItemEnchantment()); - } - } - } - - @Override - public void initGui(Container container, int x, int y) - { - this.itemField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.item_id")); - this.itemField.setValidator(Predicates.notNull()); - this.itemField.setText(this.item); - - this.itemLore1Field = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_1")); - this.itemLore1Field.setValidator(Predicates.notNull()); - this.itemLore1Field.setText(this.builderCutomItem.getLore1()); - - this.itemLore2Field = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_2")); - this.itemLore2Field.setValidator(Predicates.notNull()); - this.itemLore2Field.setText(this.builderCutomItem.getLore2()); - - if(this.selectedPage.equals("start")) - { - if(this.startPage == 1) - { - ElementColorMenu colors = new ElementColorMenu(this, x, y, "gui.worldhandler.items.custom_item.start.custom_name", this.builderCutomItem.getName(), new int[] {10, 11, 12, 13, 14, 15}); - container.add(colors); - } - } - else if(this.selectedPage.equals("enchant")) - { - ElementPageList enchantments = new ElementPageList(x + 118, y, new ArrayList(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {10, 11, 12}, new ILogicPageList() - { - @Override - public String translate(ResourceLocation key) - { - return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); - } - - @Override - public String getRegistryName(ResourceLocation key) - { - return key.toString(); - } - - @Override - public void onClick(ResourceLocation clicked) - { - - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) - { - container.add(new GuiSlider(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, ConfigSliders.getMaxItemEnchantment(), 0, new SimpleResponder(response -> - { - builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue()); - }))); - } - - @Override - public ResourceLocation convert(String object) - { - if(object != null) - { - return new ResourceLocation(object.toString()); - } - - return null; - } - - @Override - public String getId() - { - return "enchantments"; - } - }); - - container.add(enchantments); - } - else if(this.selectedPage.equals("attributes")) - { - ElementPageList attributes = new ElementPageList(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList() - { - @Override - public String translate(EnumAttributes key) - { - return I18n.format("attribute.name." + key.getAttribute()); - } - - @Override - public void onClick(EnumAttributes clicked) - { - - } - - @Override - public String getRegistryName(EnumAttributes key) - { - return key.getAttribute(); - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) - { - container.add(new GuiSlider(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, -ConfigSliders.getMaxItemAttributes(), ConfigSliders.getMaxItemAttributes(), 0, new AttributeResponder(response -> - { - builderCutomItem.setAttribute(value, response); - }))); - } - - @Override - public EnumAttributes convert(Object object) - { - return null; - } - - @Override - public String getId() - { - return "attributes"; - } - }); - - container.add(attributes); - } - } - - @Override - public void initButtons(Container container, int x, int y) - { - GuiButtonWorldHandler button3; - GuiButtonWorldHandler button4; - GuiButtonWorldHandler button5; - GuiButtonWorldHandler button6; - GuiButtonWorldHandler button7; - GuiButtonWorldHandler button8; - GuiButtonWorldHandler button9; - GuiButtonWorldHandler button10; - GuiButtonWorldHandler button11; - - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - - container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start"))); - container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.enchantment"))); - container.add(button5 = new GuiButtonWorldHandler(5, x, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.attributes"))); - - if(this.selectedPage.equals("start")) - { - button3.enabled = false; - - container.add(button7 = new GuiButtonWorldHandler(6, x + 118, y + 72, 56, 20, "<")); - container.add(button8 = new GuiButtonWorldHandler(7, x + 118 + 60, y + 72, 55, 20, ">")); - - button7.enabled = this.startPage != 0; - button8.enabled = this.startPage != 1; - } - else if(this.selectedPage.equals("enchant")) - { - button4.enabled = false; - } - else if(this.selectedPage.equals("attributes")) - { - button5.enabled = false; - } - - if(!this.builderCutomItem.needsCommandBlock() && !this.builderCutomItem.getName().isSpecial()) - { - container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.items.custom_item.custom_item"))); - } - else - { - container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.place_command_block"))); - } - - button6.enabled = ResourceHelper.isRegisteredItem(this.item); - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - switch(button.id) - { - case 3: - this.selectedPage = "start"; - container.initGui(); - break; - case 4: - this.selectedPage = "enchant"; - container.initGui(); - break; - case 5: - this.selectedPage = "attributes"; - container.initGui(); - break; - case 6: - this.startPage--; - container.initGui(); - break; - case 7: - this.startPage++; - container.initGui(); - break; - case 9: - WorldHandler.sendCommand(this.builderCutomItem, this.builderCutomItem.getName().isSpecial()); - break; - default: - break; - } - } - - @Override - public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) - { - if(this.selectedPage.equals("start")) - { - if(this.startPage == 0) - { - this.itemField.drawTextBox(); - this.itemLore1Field.drawTextBox(); - this.itemLore2Field.drawTextBox(); - } - } - } - - @Override - public void keyTyped(Container container, char charTyped, int keyCode) - { - if(this.itemField.textboxKeyTyped(charTyped, keyCode)) - { - this.item = this.itemField.getText(); - this.builderCutomItem.setItem(this.item); - container.initButtons(); - } - - if(this.itemLore1Field.textboxKeyTyped(charTyped, keyCode)) - { - this.builderCutomItem.setLore1(this.itemLore1Field.getText()); - container.initButtons(); - } - - if(this.itemLore2Field.textboxKeyTyped(charTyped, keyCode)) - { - this.builderCutomItem.setLore2(this.itemLore2Field.getText()); - container.initButtons(); - } - } - - @Override - public void mouseClicked(int mouseX, int mouseY, int mouseButton) - { - if(this.selectedPage.equals("start")) - { - if(this.startPage == 0) - { - this.itemField.mouseClicked(mouseX, mouseY, mouseButton); - this.itemLore1Field.mouseClicked(mouseX, mouseY, mouseButton); - this.itemLore2Field.mouseClicked(mouseX, mouseY, mouseButton); - } - } - } - - @Override - public Category getCategory() - { - return Categories.ITEMS; - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.items.custom_item"); - } - - @Override - public String getTabTitle() - { - return I18n.format("gui.worldhandler.tab.items.custom_item"); - } - - @Override - public Content getActiveContent() - { - return Contents.CUSTOM_ITEM; - } - - @Override - public void onPlayerNameChanged(String username) - { - this.builderCutomItem.setPlayer(username); - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.google.common.base.Predicates; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderCustomItem; +import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; +import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; +import exopandora.worldhandler.config.ConfigSliders; +import exopandora.worldhandler.gui.button.GuiButtonList; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.GuiSlider; +import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; +import exopandora.worldhandler.gui.button.responder.AttributeResponder; +import exopandora.worldhandler.gui.button.responder.SimpleResponder; +import exopandora.worldhandler.gui.category.Categories; +import exopandora.worldhandler.gui.category.Category; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.element.impl.ElementColorMenu; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import exopandora.worldhandler.helper.ResourceHelper; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentCustomItem extends Content +{ + private GuiTextFieldTooltip itemField; + private GuiTextFieldTooltip itemLore1Field; + private GuiTextFieldTooltip itemLore2Field; + + private final BuilderCustomItem builderCutomItem = new BuilderCustomItem(); + + private int startPage; + + private String selectedPage = "start"; + private String item; + + private GuiButtonList colorButton; + + private final List attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList()); + + @Override + public ICommandBuilder getCommandBuilder() + { + return this.builderCutomItem; + } + + @Override + public void init(Container container) + { + for(EnumAttributes attribute : this.builderCutomItem.getAttributes()) + { + double ammount = this.builderCutomItem.getAttributeAmmount(attribute); + + if(ammount > ConfigSliders.getMaxItemAttributes()) + { + this.builderCutomItem.setAttribute(attribute, ConfigSliders.getMaxItemAttributes()); + } + } + + for(Enchantment enchantment : this.builderCutomItem.getEnchantments()) + { + short level = this.builderCutomItem.getEnchantmentLevel(enchantment); + + if(level > ConfigSliders.getMaxItemEnchantment()) + { + this.builderCutomItem.setEnchantment(enchantment, (short) ConfigSliders.getMaxItemEnchantment()); + } + } + } + + @Override + public void initGui(Container container, int x, int y) + { + this.itemField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.item_id")); + this.itemField.setValidator(Predicates.notNull()); + this.itemField.setText(this.item); + + this.itemLore1Field = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_1")); + this.itemLore1Field.setValidator(Predicates.notNull()); + this.itemLore1Field.setText(this.builderCutomItem.getLore1()); + + this.itemLore2Field = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_2")); + this.itemLore2Field.setValidator(Predicates.notNull()); + this.itemLore2Field.setText(this.builderCutomItem.getLore2()); + + if(this.selectedPage.equals("start")) + { + if(this.startPage == 1) + { + ElementColorMenu colors = new ElementColorMenu(this, x, y, "gui.worldhandler.items.custom_item.start.custom_name", this.builderCutomItem.getName(), new int[] {10, 11, 12, 13, 14, 15}); + container.add(colors); + } + } + else if(this.selectedPage.equals("enchant")) + { + ElementPageList enchantments = new ElementPageList(x + 118, y, new ArrayList(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {10, 11, 12}, new ILogicPageList() + { + @Override + public String translate(ResourceLocation key) + { + return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); + } + + @Override + public String getRegistryName(ResourceLocation key) + { + return key.toString(); + } + + @Override + public void onClick(ResourceLocation clicked) + { + + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) + { + container.add(new GuiSlider(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, ConfigSliders.getMaxItemEnchantment(), 0, new SimpleResponder(response -> + { + builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue()); + }))); + } + + @Override + public ResourceLocation getObject(String object) + { + if(object != null) + { + return new ResourceLocation(object.toString()); + } + + return null; + } + + @Override + public String getId() + { + return "enchantments"; + } + }); + + container.add(enchantments); + } + else if(this.selectedPage.equals("attributes")) + { + ElementPageList attributes = new ElementPageList(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList() + { + @Override + public String translate(EnumAttributes key) + { + return I18n.format("attribute.name." + key.getAttribute()); + } + + @Override + public void onClick(EnumAttributes clicked) + { + + } + + @Override + public String getRegistryName(EnumAttributes key) + { + return key.getAttribute(); + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) + { + container.add(new GuiSlider(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, -ConfigSliders.getMaxItemAttributes(), ConfigSliders.getMaxItemAttributes(), 0, new AttributeResponder(response -> + { + builderCutomItem.setAttribute(value, response); + }))); + } + + @Override + public EnumAttributes getObject(Object object) + { + return null; + } + + @Override + public String getId() + { + return "attributes"; + } + }); + + container.add(attributes); + } + } + + @Override + public void initButtons(Container container, int x, int y) + { + GuiButtonWorldHandler button3; + GuiButtonWorldHandler button4; + GuiButtonWorldHandler button5; + GuiButtonWorldHandler button6; + GuiButtonWorldHandler button7; + GuiButtonWorldHandler button8; + GuiButtonWorldHandler button9; + GuiButtonWorldHandler button10; + GuiButtonWorldHandler button11; + + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + + container.add(button3 = new GuiButtonWorldHandler(3, x, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start"))); + container.add(button4 = new GuiButtonWorldHandler(4, x, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.enchantment"))); + container.add(button5 = new GuiButtonWorldHandler(5, x, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.attributes"))); + + if(this.selectedPage.equals("start")) + { + button3.enabled = false; + + container.add(button7 = new GuiButtonWorldHandler(6, x + 118, y + 72, 56, 20, "<")); + container.add(button8 = new GuiButtonWorldHandler(7, x + 118 + 60, y + 72, 55, 20, ">")); + + button7.enabled = this.startPage != 0; + button8.enabled = this.startPage != 1; + } + else if(this.selectedPage.equals("enchant")) + { + button4.enabled = false; + } + else if(this.selectedPage.equals("attributes")) + { + button5.enabled = false; + } + + if(!this.builderCutomItem.needsCommandBlock() && !this.builderCutomItem.getName().isSpecial()) + { + container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.items.custom_item.custom_item"))); + } + else + { + container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.place_command_block"))); + } + + button6.enabled = ResourceHelper.isRegisteredItem(this.item); + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + switch(button.id) + { + case 3: + this.selectedPage = "start"; + container.initGui(); + break; + case 4: + this.selectedPage = "enchant"; + container.initGui(); + break; + case 5: + this.selectedPage = "attributes"; + container.initGui(); + break; + case 6: + this.startPage--; + container.initGui(); + break; + case 7: + this.startPage++; + container.initGui(); + break; + case 9: + WorldHandler.sendCommand(this.builderCutomItem, this.builderCutomItem.getName().isSpecial()); + break; + default: + break; + } + } + + @Override + public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) + { + if(this.selectedPage.equals("start")) + { + if(this.startPage == 0) + { + this.itemField.drawTextBox(); + this.itemLore1Field.drawTextBox(); + this.itemLore2Field.drawTextBox(); + } + } + } + + @Override + public void keyTyped(Container container, char charTyped, int keyCode) + { + if(this.itemField.textboxKeyTyped(charTyped, keyCode)) + { + this.item = this.itemField.getText(); + this.builderCutomItem.setItem(this.item); + container.initButtons(); + } + + if(this.itemLore1Field.textboxKeyTyped(charTyped, keyCode)) + { + this.builderCutomItem.setLore1(this.itemLore1Field.getText()); + container.initButtons(); + } + + if(this.itemLore2Field.textboxKeyTyped(charTyped, keyCode)) + { + this.builderCutomItem.setLore2(this.itemLore2Field.getText()); + container.initButtons(); + } + } + + @Override + public void mouseClicked(int mouseX, int mouseY, int mouseButton) + { + if(this.selectedPage.equals("start")) + { + if(this.startPage == 0) + { + this.itemField.mouseClicked(mouseX, mouseY, mouseButton); + this.itemLore1Field.mouseClicked(mouseX, mouseY, mouseButton); + this.itemLore2Field.mouseClicked(mouseX, mouseY, mouseButton); + } + } + } + + @Override + public Category getCategory() + { + return Categories.ITEMS; + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.items.custom_item"); + } + + @Override + public String getTabTitle() + { + return I18n.format("gui.worldhandler.tab.items.custom_item"); + } + + @Override + public Content getActiveContent() + { + return Contents.CUSTOM_ITEM; + } + + @Override + public void onPlayerNameChanged(String username) + { + this.builderCutomItem.setPlayer(username); + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java index ab59d04..e1cd410 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentEnchantment.java @@ -1,143 +1,143 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.ArrayList; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderEnchantment; -import exopandora.worldhandler.builder.types.Type; -import exopandora.worldhandler.gui.button.EnumTooltip; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.GuiSlider; -import exopandora.worldhandler.gui.button.responder.SimpleResponder; -import exopandora.worldhandler.gui.category.Categories; -import exopandora.worldhandler.gui.category.Category; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.Contents; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentEnchantment extends Content -{ - private final BuilderEnchantment builderEnchantment = new BuilderEnchantment(); - - @Override - public ICommandBuilder getCommandBuilder() - { - return this.builderEnchantment; - } - - @Override - public void initGui(Container container, int x, int y) - { - ElementPageList enchantments = new ElementPageList(x, y, new ArrayList(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {3, 4, 5}, new ILogicPageList() - { - @Override - public String translate(ResourceLocation key) - { - return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); - } - - @Override - public String getRegistryName(ResourceLocation key) - { - return key.toString(); - } - - @Override - public void onClick(ResourceLocation clicked) - { - builderEnchantment.setEnchantment(clicked); - builderEnchantment.setLevel(1); - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) - { - GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registry, EnumTooltip.TOP_RIGHT); - button.enabled = enabled; - container.add(button); - } - - @Override - public ResourceLocation convert(String object) - { - return Type.parseResourceLocation(object); - } - - @Override - public String getId() - { - return "enchantments"; - } - }); - - container.add(enchantments); - } - - @Override - public void initButtons(Container container, int x, int y) - { - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - - container.add(new GuiSlider(this, container, "enchantment", x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.enchantment.level"), 1, Enchantment.REGISTRY.getObject(this.builderEnchantment.getEnchantment()).getMaxLevel(), 1, new SimpleResponder(value -> - { - this.builderEnchantment.setLevel(value.intValue()); - }))); - - container.add(new GuiButtonWorldHandler(2, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.enchantment.enchant"))); - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - switch(button.id) - { - case 2: - WorldHandler.sendCommand(this.builderEnchantment); - container.initGui(); - break; - default: - break; - } - } - - @Override - public Category getCategory() - { - return Categories.ITEMS; - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.items.enchantment"); - } - - @Override - public String getTabTitle() - { - return I18n.format("gui.worldhandler.tab.items.enchantment"); - } - - @Override - public Content getActiveContent() - { - return Contents.ENCHANTMENT; - } - - @Override - public void onPlayerNameChanged(String username) - { - this.builderEnchantment.setPlayer(username); - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.ArrayList; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderEnchantment; +import exopandora.worldhandler.builder.types.Type; +import exopandora.worldhandler.gui.button.EnumTooltip; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.GuiSlider; +import exopandora.worldhandler.gui.button.responder.SimpleResponder; +import exopandora.worldhandler.gui.category.Categories; +import exopandora.worldhandler.gui.category.Category; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentEnchantment extends Content +{ + private final BuilderEnchantment builderEnchantment = new BuilderEnchantment(); + + @Override + public ICommandBuilder getCommandBuilder() + { + return this.builderEnchantment; + } + + @Override + public void initGui(Container container, int x, int y) + { + ElementPageList enchantments = new ElementPageList(x, y, new ArrayList(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {3, 4, 5}, new ILogicPageList() + { + @Override + public String translate(ResourceLocation key) + { + return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); + } + + @Override + public String getRegistryName(ResourceLocation key) + { + return key.toString(); + } + + @Override + public void onClick(ResourceLocation clicked) + { + builderEnchantment.setEnchantment(clicked); + builderEnchantment.setLevel(1); + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) + { + GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registry, EnumTooltip.TOP_RIGHT); + button.enabled = enabled; + container.add(button); + } + + @Override + public ResourceLocation getObject(String object) + { + return Type.parseResourceLocation(object); + } + + @Override + public String getId() + { + return "enchantments"; + } + }); + + container.add(enchantments); + } + + @Override + public void initButtons(Container container, int x, int y) + { + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + + container.add(new GuiSlider(this, container, "enchantment", x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.enchantment.level"), 1, Enchantment.REGISTRY.getObject(this.builderEnchantment.getEnchantment()).getMaxLevel(), 1, new SimpleResponder(value -> + { + this.builderEnchantment.setLevel(value.intValue()); + }))); + + container.add(new GuiButtonWorldHandler(2, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.enchantment.enchant"))); + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + switch(button.id) + { + case 2: + WorldHandler.sendCommand(this.builderEnchantment); + container.initGui(); + break; + default: + break; + } + } + + @Override + public Category getCategory() + { + return Categories.ITEMS; + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.items.enchantment"); + } + + @Override + public String getTabTitle() + { + return I18n.format("gui.worldhandler.tab.items.enchantment"); + } + + @Override + public Content getActiveContent() + { + return Contents.ENCHANTMENT; + } + + @Override + public void onPlayerNameChanged(String username) + { + this.builderEnchantment.setPlayer(username); + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java index 279ccea..5646fd1 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentGamerules.java @@ -1,199 +1,199 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.Arrays; - -import com.google.common.base.Predicates; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderGamerule; -import exopandora.worldhandler.gui.button.EnumTooltip; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; -import exopandora.worldhandler.gui.category.Categories; -import exopandora.worldhandler.gui.category.Category; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.Contents; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.world.GameRules.ValueType; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentGamerules extends Content -{ - private GuiTextFieldTooltip valueField; - - private boolean booleanValue; - private String value; - - private final BuilderGamerule builderGamerule = new BuilderGamerule(); - - @Override - public ICommandBuilder getCommandBuilder() - { - return this.builderGamerule; - } - - @Override - public void initGui(Container container, int x, int y) - { - this.valueField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.value")); - this.valueField.setValidator(Predicates.notNull()); - this.valueField.setText(this.value); - this.valueField.setCursorPositionEnd(); - - ElementPageList rules = new ElementPageList(x, y, Arrays.asList(Minecraft.getMinecraft().world.getGameRules().getRules()), null, 114, 20, 3, this, new int[] {5, 6, 7}, new ILogicPageList() - { - @Override - public String translate(String key) - { - String translated = I18n.format(key); - - if(!translated.equals(key)) - { - return translated; - } - - return I18n.format("gui.worldhandler.gamerules.rule." + key); - } - - @Override - public void onClick(String clicked) - { - builderGamerule.setRule(clicked); - booleanValue = Minecraft.getMinecraft().world.getGameRules().areSameType(clicked, ValueType.BOOLEAN_VALUE); - - if(booleanValue) - { - builderGamerule.setValue(null); - } - else - { - builderGamerule.setValue(value); - } - } - - @Override - public String getRegistryName(String key) - { - return key; - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, String value, Container container) - { - GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT); - button.enabled = enabled; - container.add(button); - } - - @Override - public String convert(String object) - { - return object; - } - - @Override - public String getId() - { - return "gamerules"; - } - }); - - container.add(rules); - } - - @Override - public void initButtons(Container container, int x, int y) - { - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - - if(this.booleanValue) - { - container.add(new GuiButtonWorldHandler(2, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.enable"))); - container.add(new GuiButtonWorldHandler(3, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.generic.disable"))); - } - else - { - container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.perform"))); - } - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - switch(button.id) - { - case 2: - WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(true))); - break; - case 3: - WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(false))); - break; - case 4: - WorldHandler.sendCommand(this.builderGamerule); - break; - default: - break; - } - } - - @Override - public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) - { - if(!this.booleanValue) - { - this.valueField.drawTextBox(); - } - } - - @Override - public void keyTyped(Container container, char typedChar, int keyCode) - { - if(this.valueField.textboxKeyTyped(typedChar, keyCode)) - { - this.value = this.valueField.getText(); - this.builderGamerule.setValue(this.value); - } - } - - @Override - public void mouseClicked(int mouseX, int mouseY, int mouseButton) - { - if(!this.booleanValue) - { - this.valueField.mouseClicked(mouseX, mouseY, mouseButton); - } - } - - @Override - public Category getCategory() - { - return Categories.WORLD; - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.world.gamerules"); - } - - @Override - public String getTabTitle() - { - return I18n.format("gui.worldhandler.tab.world.gamerules"); - } - - @Override - public Content getActiveContent() - { - return Contents.GAMERULES; - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.Arrays; + +import com.google.common.base.Predicates; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderGamerule; +import exopandora.worldhandler.gui.button.EnumTooltip; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; +import exopandora.worldhandler.gui.category.Categories; +import exopandora.worldhandler.gui.category.Category; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.world.GameRules.ValueType; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentGamerules extends Content +{ + private GuiTextFieldTooltip valueField; + + private boolean booleanValue; + private String value; + + private final BuilderGamerule builderGamerule = new BuilderGamerule(); + + @Override + public ICommandBuilder getCommandBuilder() + { + return this.builderGamerule; + } + + @Override + public void initGui(Container container, int x, int y) + { + this.valueField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.value")); + this.valueField.setValidator(Predicates.notNull()); + this.valueField.setText(this.value); + this.valueField.setCursorPositionEnd(); + + ElementPageList rules = new ElementPageList(x, y, Arrays.asList(Minecraft.getMinecraft().world.getGameRules().getRules()), null, 114, 20, 3, this, new int[] {5, 6, 7}, new ILogicPageList() + { + @Override + public String translate(String key) + { + String translated = I18n.format(key); + + if(!translated.equals(key)) + { + return translated; + } + + return I18n.format("gui.worldhandler.gamerules.rule." + key); + } + + @Override + public void onClick(String clicked) + { + builderGamerule.setRule(clicked); + booleanValue = Minecraft.getMinecraft().world.getGameRules().areSameType(clicked, ValueType.BOOLEAN_VALUE); + + if(booleanValue) + { + builderGamerule.setValue(null); + } + else + { + builderGamerule.setValue(value); + } + } + + @Override + public String getRegistryName(String key) + { + return key; + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, String value, Container container) + { + GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT); + button.enabled = enabled; + container.add(button); + } + + @Override + public String getObject(String object) + { + return object; + } + + @Override + public String getId() + { + return "gamerules"; + } + }); + + container.add(rules); + } + + @Override + public void initButtons(Container container, int x, int y) + { + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + + if(this.booleanValue) + { + container.add(new GuiButtonWorldHandler(2, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.enable"))); + container.add(new GuiButtonWorldHandler(3, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.generic.disable"))); + } + else + { + container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.perform"))); + } + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + switch(button.id) + { + case 2: + WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(true))); + break; + case 3: + WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(false))); + break; + case 4: + WorldHandler.sendCommand(this.builderGamerule); + break; + default: + break; + } + } + + @Override + public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) + { + if(!this.booleanValue) + { + this.valueField.drawTextBox(); + } + } + + @Override + public void keyTyped(Container container, char typedChar, int keyCode) + { + if(this.valueField.textboxKeyTyped(typedChar, keyCode)) + { + this.value = this.valueField.getText(); + this.builderGamerule.setValue(this.value); + } + } + + @Override + public void mouseClicked(int mouseX, int mouseY, int mouseButton) + { + if(!this.booleanValue) + { + this.valueField.mouseClicked(mouseX, mouseY, mouseButton); + } + } + + @Override + public Category getCategory() + { + return Categories.WORLD; + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.world.gamerules"); + } + + @Override + public String getTabTitle() + { + return I18n.format("gui.worldhandler.tab.world.gamerules"); + } + + @Override + public Content getActiveContent() + { + return Contents.GAMERULES; + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java index b26ca88..51c798a 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPotions.java @@ -1,262 +1,262 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.ArrayList; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderMultiCommand; -import exopandora.worldhandler.builder.impl.BuilderPotionEffect; -import exopandora.worldhandler.builder.impl.BuilderPotionItem; -import exopandora.worldhandler.config.ConfigSliders; -import exopandora.worldhandler.gui.button.EnumTooltip; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.GuiSlider; -import exopandora.worldhandler.gui.button.responder.SimpleResponder; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import exopandora.worldhandler.gui.content.impl.abstr.ContentChild; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.init.Items; -import net.minecraft.potion.Potion; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentPotions extends ContentChild -{ - private int potionPage; - - private final BuilderPotionEffect builderPotion = new BuilderPotionEffect(); - private final BuilderPotionItem builderPotionItem = new BuilderPotionItem(); - - @Override - public ICommandBuilder getCommandBuilder() - { - return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem); - } - - @Override - public void init(Container container) - { - if(this.builderPotion.getAmplifier() > ConfigSliders.getMaxPotionAmplifier()) - { - this.builderPotion.setAmplifier((byte) ConfigSliders.getMaxPotionAmplifier()); - } - - for(Potion potion : this.builderPotionItem.getPotions()) - { - byte amplifier = this.builderPotionItem.getAmplifier(potion); - - if(amplifier > ConfigSliders.getMaxPotionAmplifier()) - { - this.builderPotionItem.setAmplifier(potion, (byte) ConfigSliders.getMaxPotionAmplifier()); - } - } - } - - @Override - public void initGui(Container container, int x, int y) - { - ElementPageList potions = new ElementPageList(x, y, new ArrayList(Potion.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {15, 16, 17}, new ILogicPageList() - { - @Override - public String translate(ResourceLocation key) - { - return I18n.format(Potion.REGISTRY.getObject(key).getName()); - } - - @Override - public void onClick(ResourceLocation clicked) - { - builderPotion.setEffect(clicked); - } - - @Override - public String getRegistryName(ResourceLocation key) - { - return key.toString(); - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, ResourceLocation value, Container container) - { - GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT); - button.enabled = enabled; - container.add(button); - } - - @Override - public ResourceLocation convert(Potion object) - { - if(object != null) - { - return object.getRegistryName(); - } - - return null; - } - - @Override - public String getId() - { - return "potions"; - } - }); - - container.add(potions); - } - - @Override - public void initButtons(Container container, int x, int y) - { - GuiButtonWorldHandler button6; - GuiButtonWorldHandler button7; - GuiButtonWorldHandler button8; - GuiButtonWorldHandler button9; - GuiButtonWorldHandler button10; - - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - - if(this.potionPage == 0) - { - container.add(new GuiButtonWorldHandler(5, x + 118, y + 12, 114, 20, I18n.format("gui.worldhandler.potions.effect.give"))); - container.add(new GuiButtonWorldHandler(6, x + 118, y + 36, 114, 20, I18n.format("gui.worldhandler.potions.effect.remove"))); - container.add(new GuiButtonWorldHandler(7, x + 118, y + 60, 114, 20, I18n.format("gui.worldhandler.potions.effect.remove_all"))); - } - else if(this.potionPage == 1) - { - Potion potion = this.builderPotion.getEffectAsPotion(); - - container.add(new GuiButtonWorldHandler(8, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potions.effect.ambient", (this.builderPotionItem.getAmbient(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off"))))); - container.add(new GuiButtonWorldHandler(9, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", (this.builderPotion.getHideParticles() ? I18n.format("gui.worldhandler.generic.off") : I18n.format("gui.worldhandler.generic.on"))))); - container.add(new GuiSlider(this, container, "potions_amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, ConfigSliders.getMaxPotionAmplifier(), 0, new SimpleResponder(value -> - { - this.builderPotion.setAmplifier(value.byteValue()); - this.builderPotionItem.setAmplifier(potion, value.byteValue()); - }))); - } - else if(this.potionPage == 2) - { - Potion potion = this.builderPotion.getEffectAsPotion(); - - container.add(new GuiSlider(this, container, "seconds" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder(value -> - { - this.builderPotion.setSeconds(value.intValue()); - this.builderPotionItem.setSeconds(potion, value.intValue()); - }))); - container.add(new GuiSlider(this, container, "minutes" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder(value -> - { - this.builderPotion.setMinutes(value.intValue()); - this.builderPotionItem.setMinutes(potion, value.intValue()); - }))); - container.add(new GuiSlider(this, container, "hours" + potion.getRegistryName(), x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder(value -> - { - this.builderPotion.setHours(value.intValue()); - this.builderPotionItem.setHours(potion, value.intValue()); - }))); - } - else if(this.potionPage == 3) - { - container.add(button6 = new GuiButtonWorldHandler(10, x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect"))); - container.add(button7 = new GuiButtonWorldHandler(14, x + 118, y + 24, 56, 20, I18n.format("gui.worldhandler.potions.effect.tipped_arrow"))); - container.add(button8 = new GuiButtonWorldHandler(11, x + 178, y + 24, 55, 20, I18n.format("gui.worldhandler.potions.effect.bottle"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); - container.add(button9 = new GuiButtonWorldHandler(13, x + 118, y + 48, 56, 20, I18n.format("gui.worldhandler.potions.effect.splash"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); - container.add(button10 = new GuiButtonWorldHandler(12, x + 178, y + 48, 55, 20, I18n.format("gui.worldhandler.potions.effect.lingering"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); - - boolean enabled = this.builderPotion.getAmplifier() >= 0; - - button6.enabled = enabled; - button7.enabled = enabled; - button8.enabled = enabled; - button9.enabled = enabled; - button10.enabled = enabled; - } - - if(this.potionPage > 0) - { - container.add(new GuiButtonWorldHandler(4, x + 118, y + 72, 56, 20, "<")); - container.add(button6 = new GuiButtonWorldHandler(5, x + 118 + 60, y + 72, 55, 20, ">")); - - button6.enabled = this.potionPage < 3; - } - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - Potion potion = this.builderPotion.getEffectAsPotion(); - - switch(button.id) - { - case 4: - this.potionPage--; - container.initGui(); - break; - case 5: - this.potionPage++; - container.initGui(); - break; - case 6: - WorldHandler.sendCommand(this.builderPotion.getRemoveCommand()); - container.initGui(); - break; - case 7: - WorldHandler.sendCommand(this.builderPotion.getClearCommand()); - container.initGui(); - break; - case 8: - this.builderPotionItem.setAmbient(potion, !this.builderPotionItem.getAmbient(potion)); - container.initGui(); - break; - case 9: - this.builderPotion.setHideParticles(!this.builderPotion.getHideParticles()); - this.builderPotionItem.setShowParticles(potion, !this.builderPotionItem.getShowParticles(potion)); - container.initGui(); - break; - case 10: - WorldHandler.sendCommand(this.builderPotion); - this.potionPage = 0; - container.initGui(); - break; - case 11: - WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.POTIONITEM)); - this.potionPage = 0; - container.initGui(); - break; - case 12: - WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.LINGERING_POTION)); - this.potionPage = 0; - container.initGui(); - break; - case 13: - WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.SPLASH_POTION)); - this.potionPage = 0; - container.initGui(); - break; - case 14: - WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.TIPPED_ARROW)); - this.potionPage = 0; - container.initGui(); - break; - default: - break; - } - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.potions"); - } - - @Override - public void onPlayerNameChanged(String username) - { - this.builderPotion.setPlayer(username); - this.builderPotionItem.setPlayer(username); - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.ArrayList; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderMultiCommand; +import exopandora.worldhandler.builder.impl.BuilderPotionEffect; +import exopandora.worldhandler.builder.impl.BuilderPotionItem; +import exopandora.worldhandler.config.ConfigSliders; +import exopandora.worldhandler.gui.button.EnumTooltip; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.GuiSlider; +import exopandora.worldhandler.gui.button.responder.SimpleResponder; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import exopandora.worldhandler.gui.content.impl.abstr.ContentChild; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.init.Items; +import net.minecraft.potion.Potion; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentPotions extends ContentChild +{ + private int potionPage; + + private final BuilderPotionEffect builderPotion = new BuilderPotionEffect(); + private final BuilderPotionItem builderPotionItem = new BuilderPotionItem(); + + @Override + public ICommandBuilder getCommandBuilder() + { + return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem); + } + + @Override + public void init(Container container) + { + if(this.builderPotion.getAmplifier() > ConfigSliders.getMaxPotionAmplifier()) + { + this.builderPotion.setAmplifier((byte) ConfigSliders.getMaxPotionAmplifier()); + } + + for(Potion potion : this.builderPotionItem.getPotions()) + { + byte amplifier = this.builderPotionItem.getAmplifier(potion); + + if(amplifier > ConfigSliders.getMaxPotionAmplifier()) + { + this.builderPotionItem.setAmplifier(potion, (byte) ConfigSliders.getMaxPotionAmplifier()); + } + } + } + + @Override + public void initGui(Container container, int x, int y) + { + ElementPageList potions = new ElementPageList(x, y, new ArrayList(Potion.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {15, 16, 17}, new ILogicPageList() + { + @Override + public String translate(ResourceLocation key) + { + return I18n.format(Potion.REGISTRY.getObject(key).getName()); + } + + @Override + public void onClick(ResourceLocation clicked) + { + builderPotion.setEffect(clicked); + } + + @Override + public String getRegistryName(ResourceLocation key) + { + return key.toString(); + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, ResourceLocation value, Container container) + { + GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT); + button.enabled = enabled; + container.add(button); + } + + @Override + public ResourceLocation getObject(Potion object) + { + if(object != null) + { + return object.getRegistryName(); + } + + return null; + } + + @Override + public String getId() + { + return "potions"; + } + }); + + container.add(potions); + } + + @Override + public void initButtons(Container container, int x, int y) + { + GuiButtonWorldHandler button6; + GuiButtonWorldHandler button7; + GuiButtonWorldHandler button8; + GuiButtonWorldHandler button9; + GuiButtonWorldHandler button10; + + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + + if(this.potionPage == 0) + { + container.add(new GuiButtonWorldHandler(5, x + 118, y + 12, 114, 20, I18n.format("gui.worldhandler.potions.effect.give"))); + container.add(new GuiButtonWorldHandler(6, x + 118, y + 36, 114, 20, I18n.format("gui.worldhandler.potions.effect.remove"))); + container.add(new GuiButtonWorldHandler(7, x + 118, y + 60, 114, 20, I18n.format("gui.worldhandler.potions.effect.remove_all"))); + } + else if(this.potionPage == 1) + { + Potion potion = this.builderPotion.getEffectAsPotion(); + + container.add(new GuiButtonWorldHandler(8, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potions.effect.ambient", (this.builderPotionItem.getAmbient(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off"))))); + container.add(new GuiButtonWorldHandler(9, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", (this.builderPotion.getHideParticles() ? I18n.format("gui.worldhandler.generic.off") : I18n.format("gui.worldhandler.generic.on"))))); + container.add(new GuiSlider(this, container, "potions_amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, ConfigSliders.getMaxPotionAmplifier(), 0, new SimpleResponder(value -> + { + this.builderPotion.setAmplifier(value.byteValue()); + this.builderPotionItem.setAmplifier(potion, value.byteValue()); + }))); + } + else if(this.potionPage == 2) + { + Potion potion = this.builderPotion.getEffectAsPotion(); + + container.add(new GuiSlider(this, container, "seconds" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder(value -> + { + this.builderPotion.setSeconds(value.intValue()); + this.builderPotionItem.setSeconds(potion, value.intValue()); + }))); + container.add(new GuiSlider(this, container, "minutes" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder(value -> + { + this.builderPotion.setMinutes(value.intValue()); + this.builderPotionItem.setMinutes(potion, value.intValue()); + }))); + container.add(new GuiSlider(this, container, "hours" + potion.getRegistryName(), x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder(value -> + { + this.builderPotion.setHours(value.intValue()); + this.builderPotionItem.setHours(potion, value.intValue()); + }))); + } + else if(this.potionPage == 3) + { + container.add(button6 = new GuiButtonWorldHandler(10, x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect"))); + container.add(button7 = new GuiButtonWorldHandler(14, x + 118, y + 24, 56, 20, I18n.format("gui.worldhandler.potions.effect.tipped_arrow"))); + container.add(button8 = new GuiButtonWorldHandler(11, x + 178, y + 24, 55, 20, I18n.format("gui.worldhandler.potions.effect.bottle"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); + container.add(button9 = new GuiButtonWorldHandler(13, x + 118, y + 48, 56, 20, I18n.format("gui.worldhandler.potions.effect.splash"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); + container.add(button10 = new GuiButtonWorldHandler(12, x + 178, y + 48, 55, 20, I18n.format("gui.worldhandler.potions.effect.lingering"), I18n.format("gui.worldhandler.actions.place_command_block"), EnumTooltip.TOP_RIGHT)); + + boolean enabled = this.builderPotion.getAmplifier() >= 0; + + button6.enabled = enabled; + button7.enabled = enabled; + button8.enabled = enabled; + button9.enabled = enabled; + button10.enabled = enabled; + } + + if(this.potionPage > 0) + { + container.add(new GuiButtonWorldHandler(4, x + 118, y + 72, 56, 20, "<")); + container.add(button6 = new GuiButtonWorldHandler(5, x + 118 + 60, y + 72, 55, 20, ">")); + + button6.enabled = this.potionPage < 3; + } + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + Potion potion = this.builderPotion.getEffectAsPotion(); + + switch(button.id) + { + case 4: + this.potionPage--; + container.initGui(); + break; + case 5: + this.potionPage++; + container.initGui(); + break; + case 6: + WorldHandler.sendCommand(this.builderPotion.getRemoveCommand()); + container.initGui(); + break; + case 7: + WorldHandler.sendCommand(this.builderPotion.getClearCommand()); + container.initGui(); + break; + case 8: + this.builderPotionItem.setAmbient(potion, !this.builderPotionItem.getAmbient(potion)); + container.initGui(); + break; + case 9: + this.builderPotion.setHideParticles(!this.builderPotion.getHideParticles()); + this.builderPotionItem.setShowParticles(potion, !this.builderPotionItem.getShowParticles(potion)); + container.initGui(); + break; + case 10: + WorldHandler.sendCommand(this.builderPotion); + this.potionPage = 0; + container.initGui(); + break; + case 11: + WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.POTIONITEM)); + this.potionPage = 0; + container.initGui(); + break; + case 12: + WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.LINGERING_POTION)); + this.potionPage = 0; + container.initGui(); + break; + case 13: + WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.SPLASH_POTION)); + this.potionPage = 0; + container.initGui(); + break; + case 14: + WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.TIPPED_ARROW)); + this.potionPage = 0; + container.initGui(); + break; + default: + break; + } + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.potions"); + } + + @Override + public void onPlayerNameChanged(String username) + { + this.builderPotion.setPlayer(username); + this.builderPotionItem.setPlayer(username); + } +} diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java index 5b169ec..f808202 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentRecipes.java @@ -83,7 +83,7 @@ public class ContentRecipes extends Content } @Override - public IRecipe convert(String object) + public IRecipe getObject(String object) { return CraftingManager.REGISTRY.getObject(Type.parseResourceLocation(object)); } diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java index 9e39267..577a717 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSummon.java @@ -1,681 +1,681 @@ -package exopandora.worldhandler.gui.content.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import org.lwjgl.opengl.GL11; - -import com.google.common.base.Predicates; - -import exopandora.worldhandler.WorldHandler; -import exopandora.worldhandler.builder.ICommandBuilder; -import exopandora.worldhandler.builder.impl.BuilderSummon; -import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; -import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; -import exopandora.worldhandler.config.ConfigSliders; -import exopandora.worldhandler.gui.button.GuiButtonItem; -import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; -import exopandora.worldhandler.gui.button.GuiSlider; -import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; -import exopandora.worldhandler.gui.button.responder.AttributeResponder; -import exopandora.worldhandler.gui.button.responder.SimpleResponder; -import exopandora.worldhandler.gui.category.Categories; -import exopandora.worldhandler.gui.category.Category; -import exopandora.worldhandler.gui.container.Container; -import exopandora.worldhandler.gui.content.Content; -import exopandora.worldhandler.gui.content.Contents; -import exopandora.worldhandler.gui.content.element.impl.ElementPageList; -import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; -import exopandora.worldhandler.util.UtilPlayer; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.EntityList; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.init.MobEffects; -import net.minecraft.potion.Potion; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ContentSummon extends Content -{ - private GuiTextFieldTooltip mobField; - private GuiTextFieldTooltip customNameField; - private GuiTextFieldTooltip passengerField; - - private int potionPage = 0; - private int equipmentPage = 0; - - private String page = "main"; - private String mob; - private String name; - private String passenger; - - private final BuilderSummon builderSummon = new BuilderSummon(); - - private final List attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.MOB).stream()).collect(Collectors.toList()); - - @Override - public ICommandBuilder getCommandBuilder() - { - return this.builderSummon; - } - - @Override - public void init(Container container) - { - for(EnumAttributes attribute : this.builderSummon.getAttributes()) - { - double ammount = this.builderSummon.getAttributeAmmount(attribute); - - if(ammount > ConfigSliders.getMaxSummonAttributes()) - { - this.builderSummon.setAttribute(attribute, ConfigSliders.getMaxSummonAttributes()); - } - } - - for(Potion potion : this.builderSummon.getPotions()) - { - byte amplifier = this.builderSummon.getAmplifier(potion); - - if(amplifier > ConfigSliders.getMaxSummonPotionAmplifier()) - { - this.builderSummon.setAmplifier(potion, (byte) ConfigSliders.getMaxSummonPotionAmplifier()); - } - - int minutes = this.builderSummon.getMinutes(potion); - - if(minutes > ConfigSliders.getMaxSummonPotionMinutes()) - { - this.builderSummon.setMinutes(potion, (int) ConfigSliders.getMaxSummonPotionMinutes()); - } - } - } - - @Override - public void initGui(Container container, int x, int y) - { - this.builderSummon.setDirection(UtilPlayer.getPlayerDirection()); - - this.mobField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.mob_id") + " (" + I18n.format("gui.worldhandler.generic.name") + ")"); - this.mobField.setValidator(Predicates.notNull()); - this.mobField.setText(this.mob); - - this.customNameField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.custom_name")); - this.customNameField.setValidator(Predicates.notNull()); - this.customNameField.setText(this.name); - - this.passengerField = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.passenger_mob_id")); - this.passengerField.setValidator(Predicates.notNull()); - this.passengerField.setText(this.passenger); - - if(this.page.equals("attributes")) - { - ElementPageList attributes = new ElementPageList(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList() - { - @Override - public String translate(EnumAttributes key) - { - return key.getTranslation(); - } - - @Override - public void onClick(EnumAttributes clicked) - { - - } - - @Override - public String getRegistryName(EnumAttributes key) - { - return key.getAttribute(); - } - - @Override - public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) - { - container.add(new GuiSlider(Contents.SUMMON, container, value, x, y, width, height, display, -ConfigSliders.getMaxSummonAttributes(), ConfigSliders.getMaxSummonAttributes(), 0, new AttributeResponder(response -> - { - builderSummon.setAttribute(value, response); - }))); - } - - @Override - public EnumAttributes convert(Object object) - { - return null; - } - - @Override - public String getId() - { - return "attributes"; - } - }); - - container.add(attributes); - } - } - - @Override - public void initButtons(Container container, int x, int y) - { - GuiButtonWorldHandler button3; - GuiButtonWorldHandler button4; - GuiButtonWorldHandler button5; - GuiButtonWorldHandler button6; - GuiButtonWorldHandler button7; - GuiButtonWorldHandler button8; - GuiButtonWorldHandler button9; - GuiButtonWorldHandler button10; - GuiButtonItem button11; - GuiButtonItem button12; - GuiButtonItem button13; - GuiButtonItem button14; - GuiButtonItem button15; - GuiButtonWorldHandler button16; - GuiButtonItem button17; - GuiButtonItem button18; - GuiButtonItem button19; - GuiButtonItem button20; - GuiButtonItem button21; - GuiButtonWorldHandler button22; - GuiButtonItem button23; - GuiButtonItem button24; - GuiButtonItem button25; - GuiButtonItem button26; - GuiButtonItem button27; - GuiButtonWorldHandler button28; - - container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); - container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); - - container.add(button7 = new GuiButtonWorldHandler(12, x, y, 114, 20, I18n.format("gui.worldhandler.entities.summon.start"))); - container.add(button8 = new GuiButtonWorldHandler(3, x, y + 24, 114, 20, I18n.format("gui.worldhandler.entities.summon.potion_effects"))); - container.add(button9 = new GuiButtonWorldHandler(4, x, y + 48, 114, 20, I18n.format("gui.worldhandler.entities.summon.attributes"))); - container.add(button10 = new GuiButtonWorldHandler(5, x, y + 72, 114, 20, I18n.format("gui.worldhandler.entities.summon.equipment"))); - - if(this.page.equals("main")) - { - button7.enabled = false; - - if(!this.builderSummon.needsCommandBlock() && !this.builderSummon.getCustomName().isSpecial()) - { - container.add(button5 = new GuiButtonWorldHandler(9, x + 118, y + 72, 114, 20, I18n.format("gui.worldhandler.title.entities.summon"))); - } - else - { - container.add(button5 = new GuiButtonWorldHandler(9, x + 118, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.place_command_block"))); - } - - button5.enabled = EntityList.isRegistered(this.builderSummon.getEntity()); - } - else if(this.page.equals("potionEffects")) - { - button8.enabled = false; - - container.add(button3 = new GuiButtonWorldHandler(14, x + 118, y + 72, 56, 20, "<")); - container.add(button4 = new GuiButtonWorldHandler(15, x + 118 + 60, y + 72, 55, 20, ">")); - - int count = 0; - - for(ResourceLocation location : this.getSortedPotionList()) - { - Potion potion = Potion.REGISTRY.getObject(location); - - if(!potion.equals(MobEffects.INSTANT_DAMAGE) && !potion.equals(MobEffects.INSTANT_HEALTH)) - { - if(this.potionPage == 0) - { - button3.enabled = false; - } - - if(this.potionPage == Potion.REGISTRY.getKeys().size() - 3) - { - button4.enabled = false; - } - - if(count == this.potionPage) - { - container.add(new GuiSlider(this, container, "amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format(potion.getName()), 0, ConfigSliders.getMaxSummonPotionAmplifier(), 0, new SimpleResponder(value -> - { - this.builderSummon.setAmplifier(potion, value.byteValue()); - }))); - container.add(new GuiSlider(this, container, "duration" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, ConfigSliders.getMaxSummonPotionMinutes(), 0, new SimpleResponder(value -> - { - this.builderSummon.setMinutes(potion, value); - }))); - container.add(new GuiButtonWorldHandler(54, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", this.builderSummon.getShowParticles(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off")))); - break; - } - - count++; - } - } - } - else if(this.page.equals("attributes")) - { - button9.enabled = false; - } - else if(this.page.equals("equipment")) - { - container.add(button3 = new GuiButtonWorldHandler(16, x + 118, y + 72, 56, 20, "<")); - container.add(button4 = new GuiButtonWorldHandler(17, x + 118 + 60, y + 72, 54, 20, ">")); - - if(this.equipmentPage == 0) - { - button3.enabled = false; - - container.add(button11 = new GuiButtonItem(18, x + 118, y, 18, 20, Items.LEATHER_HELMET)); - container.add(button12 = new GuiButtonItem(19, x + 118 + 20 - 1, y, 18, 20, Items.IRON_HELMET)); - container.add(button13 = new GuiButtonItem(20, x + 118 + 20 * 2 - 2, y, 18, 20, Items.CHAINMAIL_HELMET)); - container.add(button14 = new GuiButtonItem(21, x + 118 + 20 * 3 - 3, y, 18, 20, Items.GOLDEN_HELMET)); - container.add(button15 = new GuiButtonItem(22, x + 118 + 20 * 4 - 4, y, 18, 20, Items.DIAMOND_HELMET)); - container.add(button16 = new GuiButtonWorldHandler(23, x + 118 + 20 * 5 - 5, y, 20, 20, null)); - - container.add(button17 = new GuiButtonItem(24, x + 118, y + 24, 18, 20, Items.LEATHER_CHESTPLATE)); - container.add(button18 = new GuiButtonItem(25, x + 118 + 20 - 1, y + 24, 18, 20, Items.IRON_CHESTPLATE)); - container.add(button19 = new GuiButtonItem(26, x + 118 + 20 * 2 - 2, y + 24, 18, 20, Items.CHAINMAIL_CHESTPLATE)); - container.add(button20 = new GuiButtonItem(27, x + 118 + 20 * 3 - 3, y + 24, 18, 20, Items.GOLDEN_CHESTPLATE)); - container.add(button21 = new GuiButtonItem(28, x + 118 + 20 * 4 - 4, y + 24, 18, 20, Items.DIAMOND_CHESTPLATE)); - container.add(button22 = new GuiButtonWorldHandler(29, x + 118 + 20 * 5 - 5, y + 24, 20, 20, null)); - - container.add(button23 = new GuiButtonItem(30, x + 118, y + 48, 18, 20, Items.LEATHER_LEGGINGS)); - container.add(button24 = new GuiButtonItem(31, x + 118 + 20 - 1, y + 48, 18, 20, Items.IRON_LEGGINGS)); - container.add(button25 = new GuiButtonItem(32, x + 118 + 20 * 2 - 2, y + 48, 18, 20, Items.CHAINMAIL_LEGGINGS)); - container.add(button26 = new GuiButtonItem(33, x + 118 + 20 * 3 - 3, y + 48, 18, 20, Items.GOLDEN_LEGGINGS)); - container.add(button27 = new GuiButtonItem(34, x + 118 + 20 * 4 - 4, y + 48, 18, 20, Items.DIAMOND_LEGGINGS)); - container.add(button28 = new GuiButtonWorldHandler(35, x + 118 + 20 * 5 - 5, y + 48, 20, 20, null)); - - button11.enabled = !this.builderSummon.getArmorItem(3).equals(Items.LEATHER_HELMET.getRegistryName()); - button12.enabled = !this.builderSummon.getArmorItem(3).equals(Items.IRON_HELMET.getRegistryName()); - button13.enabled = !this.builderSummon.getArmorItem(3).equals(Items.CHAINMAIL_HELMET.getRegistryName()); - button14.enabled = !this.builderSummon.getArmorItem(3).equals(Items.GOLDEN_HELMET.getRegistryName()); - button15.enabled = !this.builderSummon.getArmorItem(3).equals(Items.DIAMOND_HELMET.getRegistryName()); - button16.enabled = !this.builderSummon.getArmorItem(3).equals(Blocks.AIR.getRegistryName()); - - button17.enabled = !this.builderSummon.getArmorItem(2).equals(Items.LEATHER_CHESTPLATE.getRegistryName()); - button18.enabled = !this.builderSummon.getArmorItem(2).equals(Items.IRON_CHESTPLATE.getRegistryName()); - button19.enabled = !this.builderSummon.getArmorItem(2).equals(Items.CHAINMAIL_CHESTPLATE.getRegistryName()); - button20.enabled = !this.builderSummon.getArmorItem(2).equals(Items.GOLDEN_CHESTPLATE.getRegistryName()); - button21.enabled = !this.builderSummon.getArmorItem(2).equals(Items.DIAMOND_CHESTPLATE.getRegistryName()); - button22.enabled = !this.builderSummon.getArmorItem(2).equals(Blocks.AIR.getRegistryName()); - - button23.enabled = !this.builderSummon.getArmorItem(1).equals(Items.LEATHER_LEGGINGS.getRegistryName()); - button24.enabled = !this.builderSummon.getArmorItem(1).equals(Items.IRON_LEGGINGS.getRegistryName()); - button25.enabled = !this.builderSummon.getArmorItem(1).equals(Items.CHAINMAIL_LEGGINGS.getRegistryName()); - button26.enabled = !this.builderSummon.getArmorItem(1).equals(Items.GOLDEN_LEGGINGS.getRegistryName()); - button27.enabled = !this.builderSummon.getArmorItem(1).equals(Items.DIAMOND_LEGGINGS.getRegistryName()); - button28.enabled = !this.builderSummon.getArmorItem(1).equals(Blocks.AIR.getRegistryName()); - } - else if(this.equipmentPage == 1) - { - button4.enabled = false; - - container.add(button11 = new GuiButtonItem(36, x + 118, y, 18, 20, Items.LEATHER_BOOTS)); - container.add(button12 = new GuiButtonItem(37, x + 118 + 20 - 1, y, 18, 20, Items.IRON_BOOTS)); - container.add(button13 = new GuiButtonItem(38, x + 118 + 20 * 2 - 2, y, 18, 20, Items.CHAINMAIL_BOOTS)); - container.add(button14 = new GuiButtonItem(39, x + 118 + 20 * 3 - 3, y, 18, 20, Items.GOLDEN_BOOTS)); - container.add(button15 = new GuiButtonItem(40, x + 118 + 20 * 4 - 4, y, 18, 20, Items.DIAMOND_BOOTS)); - container.add(button16 = new GuiButtonWorldHandler(41, x + 118 + 20 * 5 - 5, y, 20, 20, null)); - - container.add(button17 = new GuiButtonItem(42, x + 118, y + 24, 18, 20, Items.WOODEN_SWORD)); - container.add(button18 = new GuiButtonItem(43, x + 118 + 20 - 1, y + 24, 18, 20, Items.STONE_SWORD)); - container.add(button19 = new GuiButtonItem(44, x + 118 + 20 * 2 - 2, y + 24, 18, 20, Items.IRON_SWORD)); - container.add(button20 = new GuiButtonItem(45, x + 118 + 20 * 3 - 3, y + 24, 18, 20, Items.GOLDEN_SWORD)); - container.add(button21 = new GuiButtonItem(46, x + 118 + 20 * 4 - 4, y + 24, 18, 20, Items.DIAMOND_SWORD)); - container.add(button22 = new GuiButtonWorldHandler(47, x + 118 + 20 * 5 - 5, y + 24, 20, 20, null)); - - container.add(button23 = new GuiButtonItem(48, x + 118, y + 48, 18, 20, Items.WOODEN_SWORD)); - container.add(button24 = new GuiButtonItem(49, x + 118 + 20 - 1, y + 48, 18, 20, Items.STONE_SWORD)); - container.add(button25 = new GuiButtonItem(50, x + 118 + 20 * 2 - 2, y + 48, 18, 20, Items.IRON_SWORD)); - container.add(button26 = new GuiButtonItem(51, x + 118 + 20 * 3 - 3, y + 48, 18, 20, Items.GOLDEN_SWORD)); - container.add(button27 = new GuiButtonItem(52, x + 118 + 20 * 4 - 4, y + 48, 18, 20, Items.DIAMOND_SWORD)); - container.add(button28 = new GuiButtonWorldHandler(53, x + 118 + 20 * 5 - 5, y + 48, 20, 20, null)); - - button11.enabled = !this.builderSummon.getArmorItem(0).equals(Items.LEATHER_BOOTS.getRegistryName()); - button12.enabled = !this.builderSummon.getArmorItem(0).equals(Items.IRON_BOOTS.getRegistryName()); - button13.enabled = !this.builderSummon.getArmorItem(0).equals(Items.CHAINMAIL_BOOTS.getRegistryName()); - button14.enabled = !this.builderSummon.getArmorItem(0).equals(Items.GOLDEN_BOOTS.getRegistryName()); - button15.enabled = !this.builderSummon.getArmorItem(0).equals(Items.DIAMOND_BOOTS.getRegistryName()); - button16.enabled = !this.builderSummon.getArmorItem(0).equals(Blocks.AIR.getRegistryName()); - - button17.enabled = !this.builderSummon.getHandItem(0).equals(Items.WOODEN_SWORD.getRegistryName()); - button18.enabled = !this.builderSummon.getHandItem(0).equals(Items.STONE_SWORD.getRegistryName()); - button19.enabled = !this.builderSummon.getHandItem(0).equals(Items.IRON_SWORD.getRegistryName()); - button20.enabled = !this.builderSummon.getHandItem(0).equals(Items.GOLDEN_SWORD.getRegistryName()); - button21.enabled = !this.builderSummon.getHandItem(0).equals(Items.DIAMOND_SWORD.getRegistryName()); - button22.enabled = !this.builderSummon.getHandItem(0).equals(Blocks.AIR.getRegistryName()); - - button23.enabled = !this.builderSummon.getHandItem(1).equals(Items.WOODEN_SWORD.getRegistryName()); - button24.enabled = !this.builderSummon.getHandItem(1).equals(Items.STONE_SWORD.getRegistryName()); - button25.enabled = !this.builderSummon.getHandItem(1).equals(Items.IRON_SWORD.getRegistryName()); - button26.enabled = !this.builderSummon.getHandItem(1).equals(Items.GOLDEN_SWORD.getRegistryName()); - button27.enabled = !this.builderSummon.getHandItem(1).equals(Items.DIAMOND_SWORD.getRegistryName()); - button28.enabled = !this.builderSummon.getHandItem(1).equals(Blocks.AIR.getRegistryName()); - } - - button10.enabled = false; - } - } - - @Override - public void actionPerformed(Container container, GuiButton button) - { - switch(button.id) - { - case 3: - this.page = "potionEffects"; - container.initGui(); - break; - case 4: - this.page = "attributes"; - container.initGui(); - break; - case 5: - this.page = "equipment"; - container.initGui(); - break; - case 9: - WorldHandler.sendCommand(this.builderSummon, this.builderSummon.getCustomName().isSpecial()); - break; - case 12: - this.page = "main"; - container.initGui(); - break; - case 14: - this.potionPage--; - container.initGui(); - break; - case 15: - this.potionPage++; - container.initGui(); - break; - case 16: - this.equipmentPage--; - container.initGui(); - break; - case 17: - this.equipmentPage++; - container.initGui(); - break; - case 18: - this.builderSummon.setArmorItem(3, Items.LEATHER_HELMET); - container.initGui(); - break; - case 19: - this.builderSummon.setArmorItem(3, Items.IRON_HELMET); - container.initGui(); - break; - case 20: - this.builderSummon.setArmorItem(3, Items.CHAINMAIL_HELMET); - container.initGui(); - break; - case 21: - this.builderSummon.setArmorItem(3, Items.GOLDEN_HELMET); - container.initGui(); - break; - case 22: - this.builderSummon.setArmorItem(3, Items.DIAMOND_HELMET); - container.initGui(); - break; - case 23: - this.builderSummon.setArmorItem(3, Blocks.AIR); - container.initGui(); - break; - case 24: - this.builderSummon.setArmorItem(2, Items.LEATHER_CHESTPLATE); - container.initGui(); - break; - case 25: - this.builderSummon.setArmorItem(2, Items.IRON_CHESTPLATE); - container.initGui(); - break; - case 26: - this.builderSummon.setArmorItem(2, Items.CHAINMAIL_CHESTPLATE); - container.initGui(); - break; - case 27: - this.builderSummon.setArmorItem(2, Items.GOLDEN_CHESTPLATE); - container.initGui(); - break; - case 28: - this.builderSummon.setArmorItem(2, Items.DIAMOND_CHESTPLATE); - container.initGui(); - break; - case 29: - this.builderSummon.setArmorItem(2, Blocks.AIR); - container.initGui(); - break; - case 30: - this.builderSummon.setArmorItem(1, Items.LEATHER_LEGGINGS); - container.initGui(); - break; - case 31: - this.builderSummon.setArmorItem(1, Items.IRON_LEGGINGS); - container.initGui(); - break; - case 32: - this.builderSummon.setArmorItem(1, Items.CHAINMAIL_LEGGINGS); - container.initGui(); - break; - case 33: - this.builderSummon.setArmorItem(1, Items.GOLDEN_LEGGINGS); - container.initGui(); - break; - case 34: - this.builderSummon.setArmorItem(1, Items.DIAMOND_LEGGINGS); - container.initGui(); - break; - case 35: - this.builderSummon.setArmorItem(1, Blocks.AIR); - container.initGui(); - break; - case 36: - this.builderSummon.setArmorItem(0, Items.LEATHER_BOOTS); - container.initGui(); - break; - case 37: - this.builderSummon.setArmorItem(0, Items.IRON_BOOTS); - container.initGui(); - break; - case 38: - this.builderSummon.setArmorItem(0, Items.CHAINMAIL_BOOTS); - container.initGui(); - break; - case 39: - this.builderSummon.setArmorItem(0, Items.GOLDEN_BOOTS); - container.initGui(); - break; - case 40: - this.builderSummon.setArmorItem(0, Items.DIAMOND_BOOTS); - container.initGui(); - break; - case 41: - this.builderSummon.setArmorItem(0, Blocks.AIR); - container.initGui(); - break; - case 42: - this.builderSummon.setHandItem(0, Items.WOODEN_SWORD); - container.initGui(); - break; - case 43: - this.builderSummon.setHandItem(0, Items.STONE_SWORD); - container.initGui(); - break; - case 44: - this.builderSummon.setHandItem(0, Items.IRON_SWORD); - container.initGui(); - break; - case 45: - this.builderSummon.setHandItem(0, Items.GOLDEN_SWORD); - container.initGui(); - break; - case 46: - this.builderSummon.setHandItem(0, Items.DIAMOND_SWORD); - container.initGui(); - break; - case 47: - this.builderSummon.setHandItem(0, Blocks.AIR); - container.initGui(); - break; - case 48: - this.builderSummon.setHandItem(1, Items.WOODEN_SWORD); - container.initGui(); - break; - case 49: - this.builderSummon.setHandItem(1, Items.STONE_SWORD); - container.initGui(); - break; - case 50: - this.builderSummon.setHandItem(1, Items.IRON_SWORD); - container.initGui(); - break; - case 51: - this.builderSummon.setHandItem(1, Items.GOLDEN_SWORD); - container.initGui(); - break; - case 52: - this.builderSummon.setHandItem(1, Items.DIAMOND_SWORD); - container.initGui(); - break; - case 53: - this.builderSummon.setHandItem(1, Blocks.AIR); - container.initGui(); - break; - case 54: - int count = 0; - - for(ResourceLocation value : this.getSortedPotionList()) - { - Potion potion = Potion.getPotionFromResourceLocation(value.toString()); - - if(!potion.equals(MobEffects.INSTANT_DAMAGE) && !potion.equals(MobEffects.INSTANT_HEALTH)) - { - if(count == this.potionPage) - { - this.builderSummon.setShowParticles(potion, !this.builderSummon.getShowParticles(potion)); - break; - } - - count++; - } - } - container.initGui(); - break; - default: - break; - } - } - - @Override - public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) - { - if(this.page.equals("main")) - { - this.mobField.drawTextBox(); - this.customNameField.drawTextBox(); - this.passengerField.drawTextBox(); - } - else if(this.page.equals("equipment")) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/gui/container/beacon.png")); - - for(int row = 0; row < 3; row++) - { - container.drawTexturedModalRect(x + 116 + 99, y + 2 + 24 * row, 112, 221, 16, 16); - } - } - } - - @Override - public void keyTyped(Container container, char charTyped, int keyCode) - { - if(this.mobField.textboxKeyTyped(charTyped, keyCode)) - { - this.mob = this.mobField.getText(); - this.builderSummon.setEntity(this.mob); - container.initButtons(); - } - - if(this.customNameField.textboxKeyTyped(charTyped, keyCode)) - { - this.name = this.customNameField.getText(); - this.builderSummon.setCustomName(this.name); - container.initButtons(); - } - - if(this.passengerField.textboxKeyTyped(charTyped, keyCode)) - { - this.passenger = this.passengerField.getText(); - this.builderSummon.setPassenger(this.passenger); - container.initButtons(); - } - } - - @Override - public void mouseClicked(int mouseX, int mouseY, int mouseButton) - { - if(this.page.equals("main")) - { - this.mobField.mouseClicked(mouseX, mouseY, mouseButton); - this.customNameField.mouseClicked(mouseX, mouseY, mouseButton); - this.passengerField.mouseClicked(mouseX, mouseY, mouseButton); - } - } - - private List getSortedPotionList() - { - List potions = new ArrayList(Potion.REGISTRY.getKeys()); - potions.sort((a, b) -> I18n.format(Potion.REGISTRY.getObject(a).getName()).compareTo(I18n.format(Potion.REGISTRY.getObject(b).getName()))); - - return potions; - } - - @Override - public Category getCategory() - { - return Categories.ENTITIES; - } - - @Override - public String getTitle() - { - return I18n.format("gui.worldhandler.title.entities.summon"); - } - - @Override - public String getTabTitle() - { - return I18n.format("gui.worldhandler.tab.entities.summon"); - } - - @Override - public String[] getHeadline() - { - String[] headline = new String[2]; - - if(this.page.equals("potionEffects")) - { - headline[1] = (this.potionPage + 1) + "/" + (Potion.REGISTRY.getKeys().size() - 2); - } - else if(this.page.equals("equipment")) - { - headline[1] = (this.equipmentPage + 1) + "/2"; - } - - return headline; - } - - @Override - public Content getActiveContent() - { - return Contents.SUMMON; - } -} +package exopandora.worldhandler.gui.content.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.lwjgl.opengl.GL11; + +import com.google.common.base.Predicates; + +import exopandora.worldhandler.WorldHandler; +import exopandora.worldhandler.builder.ICommandBuilder; +import exopandora.worldhandler.builder.impl.BuilderSummon; +import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; +import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; +import exopandora.worldhandler.config.ConfigSliders; +import exopandora.worldhandler.gui.button.GuiButtonItem; +import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; +import exopandora.worldhandler.gui.button.GuiSlider; +import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; +import exopandora.worldhandler.gui.button.responder.AttributeResponder; +import exopandora.worldhandler.gui.button.responder.SimpleResponder; +import exopandora.worldhandler.gui.category.Categories; +import exopandora.worldhandler.gui.category.Category; +import exopandora.worldhandler.gui.container.Container; +import exopandora.worldhandler.gui.content.Content; +import exopandora.worldhandler.gui.content.Contents; +import exopandora.worldhandler.gui.content.element.impl.ElementPageList; +import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; +import exopandora.worldhandler.util.UtilPlayer; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.EntityList; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.init.MobEffects; +import net.minecraft.potion.Potion; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ContentSummon extends Content +{ + private GuiTextFieldTooltip mobField; + private GuiTextFieldTooltip customNameField; + private GuiTextFieldTooltip passengerField; + + private int potionPage = 0; + private int equipmentPage = 0; + + private String page = "main"; + private String mob; + private String name; + private String passenger; + + private final BuilderSummon builderSummon = new BuilderSummon(); + + private final List attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.MOB).stream()).collect(Collectors.toList()); + + @Override + public ICommandBuilder getCommandBuilder() + { + return this.builderSummon; + } + + @Override + public void init(Container container) + { + for(EnumAttributes attribute : this.builderSummon.getAttributes()) + { + double ammount = this.builderSummon.getAttributeAmmount(attribute); + + if(ammount > ConfigSliders.getMaxSummonAttributes()) + { + this.builderSummon.setAttribute(attribute, ConfigSliders.getMaxSummonAttributes()); + } + } + + for(Potion potion : this.builderSummon.getPotions()) + { + byte amplifier = this.builderSummon.getAmplifier(potion); + + if(amplifier > ConfigSliders.getMaxSummonPotionAmplifier()) + { + this.builderSummon.setAmplifier(potion, (byte) ConfigSliders.getMaxSummonPotionAmplifier()); + } + + int minutes = this.builderSummon.getMinutes(potion); + + if(minutes > ConfigSliders.getMaxSummonPotionMinutes()) + { + this.builderSummon.setMinutes(potion, (int) ConfigSliders.getMaxSummonPotionMinutes()); + } + } + } + + @Override + public void initGui(Container container, int x, int y) + { + this.builderSummon.setDirection(UtilPlayer.getPlayerDirection()); + + this.mobField = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.mob_id") + " (" + I18n.format("gui.worldhandler.generic.name") + ")"); + this.mobField.setValidator(Predicates.notNull()); + this.mobField.setText(this.mob); + + this.customNameField = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.custom_name")); + this.customNameField.setValidator(Predicates.notNull()); + this.customNameField.setText(this.name); + + this.passengerField = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.entities.summon.start.passenger_mob_id")); + this.passengerField.setValidator(Predicates.notNull()); + this.passengerField.setText(this.passenger); + + if(this.page.equals("attributes")) + { + ElementPageList attributes = new ElementPageList(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList() + { + @Override + public String translate(EnumAttributes key) + { + return key.getTranslation(); + } + + @Override + public void onClick(EnumAttributes clicked) + { + + } + + @Override + public String getRegistryName(EnumAttributes key) + { + return key.getAttribute(); + } + + @Override + public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) + { + container.add(new GuiSlider(Contents.SUMMON, container, value, x, y, width, height, display, -ConfigSliders.getMaxSummonAttributes(), ConfigSliders.getMaxSummonAttributes(), 0, new AttributeResponder(response -> + { + builderSummon.setAttribute(value, response); + }))); + } + + @Override + public EnumAttributes getObject(Object object) + { + return null; + } + + @Override + public String getId() + { + return "attributes"; + } + }); + + container.add(attributes); + } + } + + @Override + public void initButtons(Container container, int x, int y) + { + GuiButtonWorldHandler button3; + GuiButtonWorldHandler button4; + GuiButtonWorldHandler button5; + GuiButtonWorldHandler button6; + GuiButtonWorldHandler button7; + GuiButtonWorldHandler button8; + GuiButtonWorldHandler button9; + GuiButtonWorldHandler button10; + GuiButtonItem button11; + GuiButtonItem button12; + GuiButtonItem button13; + GuiButtonItem button14; + GuiButtonItem button15; + GuiButtonWorldHandler button16; + GuiButtonItem button17; + GuiButtonItem button18; + GuiButtonItem button19; + GuiButtonItem button20; + GuiButtonItem button21; + GuiButtonWorldHandler button22; + GuiButtonItem button23; + GuiButtonItem button24; + GuiButtonItem button25; + GuiButtonItem button26; + GuiButtonItem button27; + GuiButtonWorldHandler button28; + + container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); + container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); + + container.add(button7 = new GuiButtonWorldHandler(12, x, y, 114, 20, I18n.format("gui.worldhandler.entities.summon.start"))); + container.add(button8 = new GuiButtonWorldHandler(3, x, y + 24, 114, 20, I18n.format("gui.worldhandler.entities.summon.potion_effects"))); + container.add(button9 = new GuiButtonWorldHandler(4, x, y + 48, 114, 20, I18n.format("gui.worldhandler.entities.summon.attributes"))); + container.add(button10 = new GuiButtonWorldHandler(5, x, y + 72, 114, 20, I18n.format("gui.worldhandler.entities.summon.equipment"))); + + if(this.page.equals("main")) + { + button7.enabled = false; + + if(!this.builderSummon.needsCommandBlock() && !this.builderSummon.getCustomName().isSpecial()) + { + container.add(button5 = new GuiButtonWorldHandler(9, x + 118, y + 72, 114, 20, I18n.format("gui.worldhandler.title.entities.summon"))); + } + else + { + container.add(button5 = new GuiButtonWorldHandler(9, x + 118, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.place_command_block"))); + } + + button5.enabled = EntityList.isRegistered(this.builderSummon.getEntity()); + } + else if(this.page.equals("potionEffects")) + { + button8.enabled = false; + + container.add(button3 = new GuiButtonWorldHandler(14, x + 118, y + 72, 56, 20, "<")); + container.add(button4 = new GuiButtonWorldHandler(15, x + 118 + 60, y + 72, 55, 20, ">")); + + int count = 0; + + for(ResourceLocation location : this.getSortedPotionList()) + { + Potion potion = Potion.REGISTRY.getObject(location); + + if(!potion.equals(MobEffects.INSTANT_DAMAGE) && !potion.equals(MobEffects.INSTANT_HEALTH)) + { + if(this.potionPage == 0) + { + button3.enabled = false; + } + + if(this.potionPage == Potion.REGISTRY.getKeys().size() - 3) + { + button4.enabled = false; + } + + if(count == this.potionPage) + { + container.add(new GuiSlider(this, container, "amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format(potion.getName()), 0, ConfigSliders.getMaxSummonPotionAmplifier(), 0, new SimpleResponder(value -> + { + this.builderSummon.setAmplifier(potion, value.byteValue()); + }))); + container.add(new GuiSlider(this, container, "duration" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, ConfigSliders.getMaxSummonPotionMinutes(), 0, new SimpleResponder(value -> + { + this.builderSummon.setMinutes(potion, value); + }))); + container.add(new GuiButtonWorldHandler(54, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potions.effect.particles", this.builderSummon.getShowParticles(potion) ? I18n.format("gui.worldhandler.generic.on") : I18n.format("gui.worldhandler.generic.off")))); + break; + } + + count++; + } + } + } + else if(this.page.equals("attributes")) + { + button9.enabled = false; + } + else if(this.page.equals("equipment")) + { + container.add(button3 = new GuiButtonWorldHandler(16, x + 118, y + 72, 56, 20, "<")); + container.add(button4 = new GuiButtonWorldHandler(17, x + 118 + 60, y + 72, 54, 20, ">")); + + if(this.equipmentPage == 0) + { + button3.enabled = false; + + container.add(button11 = new GuiButtonItem(18, x + 118, y, 18, 20, Items.LEATHER_HELMET)); + container.add(button12 = new GuiButtonItem(19, x + 118 + 20 - 1, y, 18, 20, Items.IRON_HELMET)); + container.add(button13 = new GuiButtonItem(20, x + 118 + 20 * 2 - 2, y, 18, 20, Items.CHAINMAIL_HELMET)); + container.add(button14 = new GuiButtonItem(21, x + 118 + 20 * 3 - 3, y, 18, 20, Items.GOLDEN_HELMET)); + container.add(button15 = new GuiButtonItem(22, x + 118 + 20 * 4 - 4, y, 18, 20, Items.DIAMOND_HELMET)); + container.add(button16 = new GuiButtonWorldHandler(23, x + 118 + 20 * 5 - 5, y, 20, 20, null)); + + container.add(button17 = new GuiButtonItem(24, x + 118, y + 24, 18, 20, Items.LEATHER_CHESTPLATE)); + container.add(button18 = new GuiButtonItem(25, x + 118 + 20 - 1, y + 24, 18, 20, Items.IRON_CHESTPLATE)); + container.add(button19 = new GuiButtonItem(26, x + 118 + 20 * 2 - 2, y + 24, 18, 20, Items.CHAINMAIL_CHESTPLATE)); + container.add(button20 = new GuiButtonItem(27, x + 118 + 20 * 3 - 3, y + 24, 18, 20, Items.GOLDEN_CHESTPLATE)); + container.add(button21 = new GuiButtonItem(28, x + 118 + 20 * 4 - 4, y + 24, 18, 20, Items.DIAMOND_CHESTPLATE)); + container.add(button22 = new GuiButtonWorldHandler(29, x + 118 + 20 * 5 - 5, y + 24, 20, 20, null)); + + container.add(button23 = new GuiButtonItem(30, x + 118, y + 48, 18, 20, Items.LEATHER_LEGGINGS)); + container.add(button24 = new GuiButtonItem(31, x + 118 + 20 - 1, y + 48, 18, 20, Items.IRON_LEGGINGS)); + container.add(button25 = new GuiButtonItem(32, x + 118 + 20 * 2 - 2, y + 48, 18, 20, Items.CHAINMAIL_LEGGINGS)); + container.add(button26 = new GuiButtonItem(33, x + 118 + 20 * 3 - 3, y + 48, 18, 20, Items.GOLDEN_LEGGINGS)); + container.add(button27 = new GuiButtonItem(34, x + 118 + 20 * 4 - 4, y + 48, 18, 20, Items.DIAMOND_LEGGINGS)); + container.add(button28 = new GuiButtonWorldHandler(35, x + 118 + 20 * 5 - 5, y + 48, 20, 20, null)); + + button11.enabled = !this.builderSummon.getArmorItem(3).equals(Items.LEATHER_HELMET.getRegistryName()); + button12.enabled = !this.builderSummon.getArmorItem(3).equals(Items.IRON_HELMET.getRegistryName()); + button13.enabled = !this.builderSummon.getArmorItem(3).equals(Items.CHAINMAIL_HELMET.getRegistryName()); + button14.enabled = !this.builderSummon.getArmorItem(3).equals(Items.GOLDEN_HELMET.getRegistryName()); + button15.enabled = !this.builderSummon.getArmorItem(3).equals(Items.DIAMOND_HELMET.getRegistryName()); + button16.enabled = !this.builderSummon.getArmorItem(3).equals(Blocks.AIR.getRegistryName()); + + button17.enabled = !this.builderSummon.getArmorItem(2).equals(Items.LEATHER_CHESTPLATE.getRegistryName()); + button18.enabled = !this.builderSummon.getArmorItem(2).equals(Items.IRON_CHESTPLATE.getRegistryName()); + button19.enabled = !this.builderSummon.getArmorItem(2).equals(Items.CHAINMAIL_CHESTPLATE.getRegistryName()); + button20.enabled = !this.builderSummon.getArmorItem(2).equals(Items.GOLDEN_CHESTPLATE.getRegistryName()); + button21.enabled = !this.builderSummon.getArmorItem(2).equals(Items.DIAMOND_CHESTPLATE.getRegistryName()); + button22.enabled = !this.builderSummon.getArmorItem(2).equals(Blocks.AIR.getRegistryName()); + + button23.enabled = !this.builderSummon.getArmorItem(1).equals(Items.LEATHER_LEGGINGS.getRegistryName()); + button24.enabled = !this.builderSummon.getArmorItem(1).equals(Items.IRON_LEGGINGS.getRegistryName()); + button25.enabled = !this.builderSummon.getArmorItem(1).equals(Items.CHAINMAIL_LEGGINGS.getRegistryName()); + button26.enabled = !this.builderSummon.getArmorItem(1).equals(Items.GOLDEN_LEGGINGS.getRegistryName()); + button27.enabled = !this.builderSummon.getArmorItem(1).equals(Items.DIAMOND_LEGGINGS.getRegistryName()); + button28.enabled = !this.builderSummon.getArmorItem(1).equals(Blocks.AIR.getRegistryName()); + } + else if(this.equipmentPage == 1) + { + button4.enabled = false; + + container.add(button11 = new GuiButtonItem(36, x + 118, y, 18, 20, Items.LEATHER_BOOTS)); + container.add(button12 = new GuiButtonItem(37, x + 118 + 20 - 1, y, 18, 20, Items.IRON_BOOTS)); + container.add(button13 = new GuiButtonItem(38, x + 118 + 20 * 2 - 2, y, 18, 20, Items.CHAINMAIL_BOOTS)); + container.add(button14 = new GuiButtonItem(39, x + 118 + 20 * 3 - 3, y, 18, 20, Items.GOLDEN_BOOTS)); + container.add(button15 = new GuiButtonItem(40, x + 118 + 20 * 4 - 4, y, 18, 20, Items.DIAMOND_BOOTS)); + container.add(button16 = new GuiButtonWorldHandler(41, x + 118 + 20 * 5 - 5, y, 20, 20, null)); + + container.add(button17 = new GuiButtonItem(42, x + 118, y + 24, 18, 20, Items.WOODEN_SWORD)); + container.add(button18 = new GuiButtonItem(43, x + 118 + 20 - 1, y + 24, 18, 20, Items.STONE_SWORD)); + container.add(button19 = new GuiButtonItem(44, x + 118 + 20 * 2 - 2, y + 24, 18, 20, Items.IRON_SWORD)); + container.add(button20 = new GuiButtonItem(45, x + 118 + 20 * 3 - 3, y + 24, 18, 20, Items.GOLDEN_SWORD)); + container.add(button21 = new GuiButtonItem(46, x + 118 + 20 * 4 - 4, y + 24, 18, 20, Items.DIAMOND_SWORD)); + container.add(button22 = new GuiButtonWorldHandler(47, x + 118 + 20 * 5 - 5, y + 24, 20, 20, null)); + + container.add(button23 = new GuiButtonItem(48, x + 118, y + 48, 18, 20, Items.WOODEN_SWORD)); + container.add(button24 = new GuiButtonItem(49, x + 118 + 20 - 1, y + 48, 18, 20, Items.STONE_SWORD)); + container.add(button25 = new GuiButtonItem(50, x + 118 + 20 * 2 - 2, y + 48, 18, 20, Items.IRON_SWORD)); + container.add(button26 = new GuiButtonItem(51, x + 118 + 20 * 3 - 3, y + 48, 18, 20, Items.GOLDEN_SWORD)); + container.add(button27 = new GuiButtonItem(52, x + 118 + 20 * 4 - 4, y + 48, 18, 20, Items.DIAMOND_SWORD)); + container.add(button28 = new GuiButtonWorldHandler(53, x + 118 + 20 * 5 - 5, y + 48, 20, 20, null)); + + button11.enabled = !this.builderSummon.getArmorItem(0).equals(Items.LEATHER_BOOTS.getRegistryName()); + button12.enabled = !this.builderSummon.getArmorItem(0).equals(Items.IRON_BOOTS.getRegistryName()); + button13.enabled = !this.builderSummon.getArmorItem(0).equals(Items.CHAINMAIL_BOOTS.getRegistryName()); + button14.enabled = !this.builderSummon.getArmorItem(0).equals(Items.GOLDEN_BOOTS.getRegistryName()); + button15.enabled = !this.builderSummon.getArmorItem(0).equals(Items.DIAMOND_BOOTS.getRegistryName()); + button16.enabled = !this.builderSummon.getArmorItem(0).equals(Blocks.AIR.getRegistryName()); + + button17.enabled = !this.builderSummon.getHandItem(0).equals(Items.WOODEN_SWORD.getRegistryName()); + button18.enabled = !this.builderSummon.getHandItem(0).equals(Items.STONE_SWORD.getRegistryName()); + button19.enabled = !this.builderSummon.getHandItem(0).equals(Items.IRON_SWORD.getRegistryName()); + button20.enabled = !this.builderSummon.getHandItem(0).equals(Items.GOLDEN_SWORD.getRegistryName()); + button21.enabled = !this.builderSummon.getHandItem(0).equals(Items.DIAMOND_SWORD.getRegistryName()); + button22.enabled = !this.builderSummon.getHandItem(0).equals(Blocks.AIR.getRegistryName()); + + button23.enabled = !this.builderSummon.getHandItem(1).equals(Items.WOODEN_SWORD.getRegistryName()); + button24.enabled = !this.builderSummon.getHandItem(1).equals(Items.STONE_SWORD.getRegistryName()); + button25.enabled = !this.builderSummon.getHandItem(1).equals(Items.IRON_SWORD.getRegistryName()); + button26.enabled = !this.builderSummon.getHandItem(1).equals(Items.GOLDEN_SWORD.getRegistryName()); + button27.enabled = !this.builderSummon.getHandItem(1).equals(Items.DIAMOND_SWORD.getRegistryName()); + button28.enabled = !this.builderSummon.getHandItem(1).equals(Blocks.AIR.getRegistryName()); + } + + button10.enabled = false; + } + } + + @Override + public void actionPerformed(Container container, GuiButton button) + { + switch(button.id) + { + case 3: + this.page = "potionEffects"; + container.initGui(); + break; + case 4: + this.page = "attributes"; + container.initGui(); + break; + case 5: + this.page = "equipment"; + container.initGui(); + break; + case 9: + WorldHandler.sendCommand(this.builderSummon, this.builderSummon.getCustomName().isSpecial()); + break; + case 12: + this.page = "main"; + container.initGui(); + break; + case 14: + this.potionPage--; + container.initGui(); + break; + case 15: + this.potionPage++; + container.initGui(); + break; + case 16: + this.equipmentPage--; + container.initGui(); + break; + case 17: + this.equipmentPage++; + container.initGui(); + break; + case 18: + this.builderSummon.setArmorItem(3, Items.LEATHER_HELMET); + container.initGui(); + break; + case 19: + this.builderSummon.setArmorItem(3, Items.IRON_HELMET); + container.initGui(); + break; + case 20: + this.builderSummon.setArmorItem(3, Items.CHAINMAIL_HELMET); + container.initGui(); + break; + case 21: + this.builderSummon.setArmorItem(3, Items.GOLDEN_HELMET); + container.initGui(); + break; + case 22: + this.builderSummon.setArmorItem(3, Items.DIAMOND_HELMET); + container.initGui(); + break; + case 23: + this.builderSummon.setArmorItem(3, Blocks.AIR); + container.initGui(); + break; + case 24: + this.builderSummon.setArmorItem(2, Items.LEATHER_CHESTPLATE); + container.initGui(); + break; + case 25: + this.builderSummon.setArmorItem(2, Items.IRON_CHESTPLATE); + container.initGui(); + break; + case 26: + this.builderSummon.setArmorItem(2, Items.CHAINMAIL_CHESTPLATE); + container.initGui(); + break; + case 27: + this.builderSummon.setArmorItem(2, Items.GOLDEN_CHESTPLATE); + container.initGui(); + break; + case 28: + this.builderSummon.setArmorItem(2, Items.DIAMOND_CHESTPLATE); + container.initGui(); + break; + case 29: + this.builderSummon.setArmorItem(2, Blocks.AIR); + container.initGui(); + break; + case 30: + this.builderSummon.setArmorItem(1, Items.LEATHER_LEGGINGS); + container.initGui(); + break; + case 31: + this.builderSummon.setArmorItem(1, Items.IRON_LEGGINGS); + container.initGui(); + break; + case 32: + this.builderSummon.setArmorItem(1, Items.CHAINMAIL_LEGGINGS); + container.initGui(); + break; + case 33: + this.builderSummon.setArmorItem(1, Items.GOLDEN_LEGGINGS); + container.initGui(); + break; + case 34: + this.builderSummon.setArmorItem(1, Items.DIAMOND_LEGGINGS); + container.initGui(); + break; + case 35: + this.builderSummon.setArmorItem(1, Blocks.AIR); + container.initGui(); + break; + case 36: + this.builderSummon.setArmorItem(0, Items.LEATHER_BOOTS); + container.initGui(); + break; + case 37: + this.builderSummon.setArmorItem(0, Items.IRON_BOOTS); + container.initGui(); + break; + case 38: + this.builderSummon.setArmorItem(0, Items.CHAINMAIL_BOOTS); + container.initGui(); + break; + case 39: + this.builderSummon.setArmorItem(0, Items.GOLDEN_BOOTS); + container.initGui(); + break; + case 40: + this.builderSummon.setArmorItem(0, Items.DIAMOND_BOOTS); + container.initGui(); + break; + case 41: + this.builderSummon.setArmorItem(0, Blocks.AIR); + container.initGui(); + break; + case 42: + this.builderSummon.setHandItem(0, Items.WOODEN_SWORD); + container.initGui(); + break; + case 43: + this.builderSummon.setHandItem(0, Items.STONE_SWORD); + container.initGui(); + break; + case 44: + this.builderSummon.setHandItem(0, Items.IRON_SWORD); + container.initGui(); + break; + case 45: + this.builderSummon.setHandItem(0, Items.GOLDEN_SWORD); + container.initGui(); + break; + case 46: + this.builderSummon.setHandItem(0, Items.DIAMOND_SWORD); + container.initGui(); + break; + case 47: + this.builderSummon.setHandItem(0, Blocks.AIR); + container.initGui(); + break; + case 48: + this.builderSummon.setHandItem(1, Items.WOODEN_SWORD); + container.initGui(); + break; + case 49: + this.builderSummon.setHandItem(1, Items.STONE_SWORD); + container.initGui(); + break; + case 50: + this.builderSummon.setHandItem(1, Items.IRON_SWORD); + container.initGui(); + break; + case 51: + this.builderSummon.setHandItem(1, Items.GOLDEN_SWORD); + container.initGui(); + break; + case 52: + this.builderSummon.setHandItem(1, Items.DIAMOND_SWORD); + container.initGui(); + break; + case 53: + this.builderSummon.setHandItem(1, Blocks.AIR); + container.initGui(); + break; + case 54: + int count = 0; + + for(ResourceLocation value : this.getSortedPotionList()) + { + Potion potion = Potion.getPotionFromResourceLocation(value.toString()); + + if(!potion.equals(MobEffects.INSTANT_DAMAGE) && !potion.equals(MobEffects.INSTANT_HEALTH)) + { + if(count == this.potionPage) + { + this.builderSummon.setShowParticles(potion, !this.builderSummon.getShowParticles(potion)); + break; + } + + count++; + } + } + container.initGui(); + break; + default: + break; + } + } + + @Override + public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) + { + if(this.page.equals("main")) + { + this.mobField.drawTextBox(); + this.customNameField.drawTextBox(); + this.passengerField.drawTextBox(); + } + else if(this.page.equals("equipment")) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("textures/gui/container/beacon.png")); + + for(int row = 0; row < 3; row++) + { + container.drawTexturedModalRect(x + 116 + 99, y + 2 + 24 * row, 112, 221, 16, 16); + } + } + } + + @Override + public void keyTyped(Container container, char charTyped, int keyCode) + { + if(this.mobField.textboxKeyTyped(charTyped, keyCode)) + { + this.mob = this.mobField.getText(); + this.builderSummon.setEntity(this.mob); + container.initButtons(); + } + + if(this.customNameField.textboxKeyTyped(charTyped, keyCode)) + { + this.name = this.customNameField.getText(); + this.builderSummon.setCustomName(this.name); + container.initButtons(); + } + + if(this.passengerField.textboxKeyTyped(charTyped, keyCode)) + { + this.passenger = this.passengerField.getText(); + this.builderSummon.setPassenger(this.passenger); + container.initButtons(); + } + } + + @Override + public void mouseClicked(int mouseX, int mouseY, int mouseButton) + { + if(this.page.equals("main")) + { + this.mobField.mouseClicked(mouseX, mouseY, mouseButton); + this.customNameField.mouseClicked(mouseX, mouseY, mouseButton); + this.passengerField.mouseClicked(mouseX, mouseY, mouseButton); + } + } + + private List getSortedPotionList() + { + List potions = new ArrayList(Potion.REGISTRY.getKeys()); + potions.sort((a, b) -> I18n.format(Potion.REGISTRY.getObject(a).getName()).compareTo(I18n.format(Potion.REGISTRY.getObject(b).getName()))); + + return potions; + } + + @Override + public Category getCategory() + { + return Categories.ENTITIES; + } + + @Override + public String getTitle() + { + return I18n.format("gui.worldhandler.title.entities.summon"); + } + + @Override + public String getTabTitle() + { + return I18n.format("gui.worldhandler.tab.entities.summon"); + } + + @Override + public String[] getHeadline() + { + String[] headline = new String[2]; + + if(this.page.equals("potionEffects")) + { + headline[1] = (this.potionPage + 1) + "/" + (Potion.REGISTRY.getKeys().size() - 2); + } + else if(this.page.equals("equipment")) + { + headline[1] = (this.equipmentPage + 1) + "/2"; + } + + return headline; + } + + @Override + public Content getActiveContent() + { + return Contents.SUMMON; + } +}