Refactoring

This commit is contained in:
Marcel Konrad
2018-07-01 13:31:56 +02:00
parent 4b865d6861
commit 3b976d6ae9
9 changed files with 2037 additions and 2037 deletions

View File

@@ -1,164 +1,164 @@
package exopandora.worldhandler.gui.content.element.impl; package exopandora.worldhandler.gui.content.element.impl;
import java.util.List; import java.util.List;
import exopandora.worldhandler.config.ConfigSkin; import exopandora.worldhandler.config.ConfigSkin;
import exopandora.worldhandler.format.TextFormatting; import exopandora.worldhandler.format.TextFormatting;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.persistence.ButtonValues; import exopandora.worldhandler.gui.button.persistence.ButtonValues;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.element.Element; import exopandora.worldhandler.gui.content.element.Element;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ElementPageList<T, K> extends Element public class ElementPageList<T, K> extends Element
{ {
private final List<T> list; private final List<T> list;
private final ILogicPageList<T, K> logic; private final ILogicPageList<T, K> logic;
private final int length; private final int length;
private final int width; private final int width;
private final int height; private final int height;
private final int[] ids; private final int[] ids;
private final ButtonValues<Integer> values; private final ButtonValues<Integer> values;
public ElementPageList(int x, int y, List<T> list, K initial, int width, int height, int length, Content content, int[] ids, ILogicPageList<T, K> logic) public ElementPageList(int x, int y, List<T> list, K initial, int width, int height, int length, Content content, int[] ids, ILogicPageList<T, K> logic)
{ {
super(x, y); super(x, y);
this.list = list; this.list = list;
this.length = length; this.length = length;
this.width = width; this.width = width;
this.height = height; this.height = height;
this.logic = logic; this.logic = logic;
this.values = content.getPersistence(logic.getId()); this.values = content.getPersistence(logic.getId());
this.ids = ids; this.ids = ids;
this.list.sort((a, b) -> this.logic.translate(a).compareTo(this.logic.translate(b))); this.list.sort((a, b) -> this.logic.translate(a).compareTo(this.logic.translate(b)));
if(this.values.getObject() == null) if(this.values.getObject() == null)
{ {
this.values.setObject(0); this.values.setObject(0);
this.values.setIndex(Math.max(0, this.list.indexOf(this.logic.convert(initial)))); this.values.setIndex(Math.max(0, this.list.indexOf(this.logic.getObject(initial))));
if(initial == null) if(initial == null)
{ {
this.logic.onClick(this.list.get(0)); this.logic.onClick(this.list.get(0));
} }
} }
} }
@Override @Override
public void initGui(Container container) public void initGui(Container container)
{ {
} }
@Override @Override
public void initButtons(Container container) public void initButtons(Container container)
{ {
boolean extended = (this.list.size() == this.length + 1); boolean extended = (this.list.size() == this.length + 1);
if(!extended) if(!extended)
{ {
int buttonWidth = (this.width - 4) / 2; 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 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, ">"); 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; left.enabled = this.values.getObject() > 0;
right.enabled = this.values.getObject() < this.getTotalPages() - 1; right.enabled = this.values.getObject() < this.getTotalPages() - 1;
container.add(left); container.add(left);
container.add(right); container.add(right);
} }
int length = (extended ? this.length + 1 : this.length); int length = (extended ? this.length + 1 : this.length);
for(int x = 0; x < length; x++) for(int x = 0; x < length; x++)
{ {
int index = this.values.getObject() * length + x; int index = this.values.getObject() * length + x;
if(index < this.list.size()) if(index < this.list.size())
{ {
T entry = this.list.get(index); 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); 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 else
{ {
GuiButtonWorldHandler button = new GuiButtonWorldHandler(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, null); GuiButtonWorldHandler button = new GuiButtonWorldHandler(this.ids[2], this.x, this.y + (this.height + 4) * x, this.width, this.height, null);
button.enabled = false; button.enabled = false;
container.add(button); container.add(button);
} }
} }
} }
@Override @Override
public boolean actionPerformed(Container container, GuiButton button) public boolean actionPerformed(Container container, GuiButton button)
{ {
if(button.id == this.ids[0]) if(button.id == this.ids[0])
{ {
int value = this.values.getObject(); int value = this.values.getObject();
if(GuiScreen.isShiftKeyDown()) if(GuiScreen.isShiftKeyDown())
{ {
this.values.setObject(value - Math.min(10, value)); this.values.setObject(value - Math.min(10, value));
} }
else else
{ {
this.values.setObject(value - 1); this.values.setObject(value - 1);
} }
container.initGui(); container.initGui();
return true; return true;
} }
else if(button.id == this.ids[1]) else if(button.id == this.ids[1])
{ {
int value = this.values.getObject(); int value = this.values.getObject();
if(GuiScreen.isShiftKeyDown()) if(GuiScreen.isShiftKeyDown())
{ {
this.values.setObject(value + Math.min(10, this.getTotalPages() - 1 - value)); this.values.setObject(value + Math.min(10, this.getTotalPages() - 1 - value));
} }
else else
{ {
this.values.setObject(value + 1); this.values.setObject(value + 1);
} }
container.initGui(); container.initGui();
return true; return true;
} }
else if(button.id == this.ids[2]) else if(button.id == this.ids[2])
{ {
for(int x = 0; x < this.list.size(); x++) for(int x = 0; x < this.list.size(); x++)
{ {
T entry = this.list.get(x); T entry = this.list.get(x);
if(TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer).equals(button.displayString)) if(TextFormatting.shortenString(this.logic.translate(entry), this.width, Minecraft.getMinecraft().fontRenderer).equals(button.displayString))
{ {
this.values.setIndex(x); this.values.setIndex(x);
this.logic.onClick(entry); this.logic.onClick(entry);
container.initGui(); container.initGui();
return true; return true;
} }
} }
} }
return false; return false;
} }
@Override @Override
public void draw() public void draw()
{ {
Minecraft.getMinecraft().fontRenderer.drawString((this.values.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, ConfigSkin.getHeadlineColor()); Minecraft.getMinecraft().fontRenderer.drawString((this.values.getObject() + 1) + "/" + this.getTotalPages(), this.x, this.y - 11, ConfigSkin.getHeadlineColor());
} }
private int getTotalPages() private int getTotalPages()
{ {
return (int) Math.ceil((float) this.list.size() / this.length); return (int) Math.ceil((float) this.list.size() / this.length);
} }
} }

View File

@@ -1,17 +1,17 @@
package exopandora.worldhandler.gui.content.element.logic; package exopandora.worldhandler.gui.content.element.logic;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public interface ILogicPageList<T, K> extends ILogic public interface ILogicPageList<T, K> extends ILogic
{ {
String translate(T key); String translate(T key);
String getRegistryName(T key); String getRegistryName(T key);
void onClick(T clicked); 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); 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); T getObject(K object);
} }

View File

@@ -1,199 +1,199 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.mojang.realmsclient.gui.ChatFormatting; import com.mojang.realmsclient.gui.ChatFormatting;
import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.WorldHandler;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderAdvancement; import exopandora.worldhandler.builder.impl.BuilderAdvancement;
import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumActionType; import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumActionType;
import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumMode; import exopandora.worldhandler.builder.impl.BuilderAdvancement.EnumMode;
import exopandora.worldhandler.builder.types.Type; import exopandora.worldhandler.builder.types.Type;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonList;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.logic.IListButtonLogic; import exopandora.worldhandler.gui.button.logic.IListButtonLogic;
import exopandora.worldhandler.gui.button.persistence.ButtonValues; import exopandora.worldhandler.gui.button.persistence.ButtonValues;
import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Categories;
import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.container.impl.GuiWorldHandlerContainer; import exopandora.worldhandler.gui.container.impl.GuiWorldHandlerContainer;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.Contents; import exopandora.worldhandler.gui.content.Contents;
import exopandora.worldhandler.gui.content.element.impl.ElementPageList; import exopandora.worldhandler.gui.content.element.impl.ElementPageList;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import exopandora.worldhandler.helper.AdvancementHelper; import exopandora.worldhandler.helper.AdvancementHelper;
import net.minecraft.advancements.Advancement; import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.AdvancementManager; import net.minecraft.advancements.AdvancementManager;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ContentAdvancements extends Content public class ContentAdvancements extends Content
{ {
private final AdvancementHelper helper = new AdvancementHelper(); private final AdvancementHelper helper = new AdvancementHelper();
private final BuilderAdvancement builderAdvancement = new BuilderAdvancement(EnumMode.values()[0]); private final BuilderAdvancement builderAdvancement = new BuilderAdvancement(EnumMode.values()[0]);
private GuiButtonList modeButton; private GuiButtonList modeButton;
private final List<Advancement> advancements = Lists.newArrayList(new AdvancementManager(null).getAdvancements()).parallelStream().filter(advancement -> advancement.getDisplay() != null).collect(Collectors.toList()); private final List<Advancement> advancements = Lists.newArrayList(new AdvancementManager(null).getAdvancements()).parallelStream().filter(advancement -> advancement.getDisplay() != null).collect(Collectors.toList());
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderAdvancement; return this.builderAdvancement;
} }
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
ElementPageList<Advancement, String> list = new ElementPageList<Advancement, String>(x, y, this.advancements, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList<Advancement, String>() ElementPageList<Advancement, String> list = new ElementPageList<Advancement, String>(x, y, this.advancements, null, 114, 20, 3, this, new int[] {6, 7, 8}, new ILogicPageList<Advancement, String>()
{ {
@Override @Override
public String translate(Advancement key) public String translate(Advancement key)
{ {
return I18n.format(key.getDisplay().getTitle().getUnformattedText()); return I18n.format(key.getDisplay().getTitle().getUnformattedText());
} }
@Override @Override
public void onClick(Advancement clicked) public void onClick(Advancement clicked)
{ {
builderAdvancement.setAdvancement(clicked.getId()); builderAdvancement.setAdvancement(clicked.getId());
} }
@Override @Override
public String getRegistryName(Advancement key) public String getRegistryName(Advancement key)
{ {
return key.getId().toString(); return key.getId().toString();
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, Advancement value, Container container) 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; GuiButtonWorldHandler button;
container.add(button = new GuiButtonWorldHandler(id, x, y, width, height, display, value.getId().toString(), EnumTooltip.TOP_RIGHT)); container.add(button = new GuiButtonWorldHandler(id, x, y, width, height, display, value.getId().toString(), EnumTooltip.TOP_RIGHT));
button.enabled = enabled; button.enabled = enabled;
} }
@Override @Override
public Advancement convert(String object) public Advancement getObject(String object)
{ {
return helper.ADVANCEMENT_MANAGER.getAdvancement(Type.parseResourceLocation(object)); return helper.ADVANCEMENT_MANAGER.getAdvancement(Type.parseResourceLocation(object));
} }
@Override @Override
public String getId() public String getId()
{ {
return "advancements"; return "advancements";
} }
}); });
container.add(list); container.add(list);
} }
@Override @Override
public void initButtons(Container container, int x, int y) 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(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 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<EnumMode>() container.add(this.modeButton = new GuiButtonList(2, x + 118, y, 114, 20, EnumTooltip.TOP_RIGHT, this, new IListButtonLogic<EnumMode>()
{ {
private final EnumMode[] values = Arrays.stream(EnumMode.values()).filter(mode -> !mode.equals(EnumMode.EVERYTHING)).toArray(EnumMode[]::new); private final EnumMode[] values = Arrays.stream(EnumMode.values()).filter(mode -> !mode.equals(EnumMode.EVERYTHING)).toArray(EnumMode[]::new);
@Override @Override
public void actionPerformed(Container container, GuiButton button, ButtonValues<EnumMode> values) public void actionPerformed(Container container, GuiButton button, ButtonValues<EnumMode> values)
{ {
builderAdvancement.setMode(values.getObject()); builderAdvancement.setMode(values.getObject());
} }
@Override @Override
public int getMax() public int getMax()
{ {
return this.values.length; return this.values.length;
} }
@Override @Override
public EnumMode getObject(int index) public EnumMode getObject(int index)
{ {
return this.values[index]; return this.values[index];
} }
@Override @Override
public String getDisplayString(ButtonValues<EnumMode> values) public String getDisplayString(ButtonValues<EnumMode> values)
{ {
return I18n.format("gui.worldhandler.advancements." + values.getObject().toString()); return I18n.format("gui.worldhandler.advancements." + values.getObject().toString());
} }
@Override @Override
public String getId() public String getId()
{ {
return "mode"; return "mode";
} }
})); }));
container.add(new GuiButtonWorldHandler(3, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.advancements.grant"))); 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(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"))); container.add(new GuiButtonWorldHandler(5, x + 118, y + 72, 114, 20, ChatFormatting.RED + I18n.format("gui.worldhandler.actions.reset")));
} }
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
switch(button.id) switch(button.id)
{ {
case 2: case 2:
this.modeButton.actionPerformed(container, button); this.modeButton.actionPerformed(container, button);
container.initGui(); container.initGui();
break; break;
case 3: case 3:
WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.GRANT)); WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.GRANT));
break; break;
case 4: case 4:
WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.REVOKE)); WorldHandler.sendCommand(this.builderAdvancement.getBuilderForAction(EnumActionType.REVOKE));
break; break;
case 5: case 5:
Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.CONTINUE.withBuilder(this.builderAdvancement.getBuilder(EnumActionType.REVOKE, EnumMode.EVERYTHING)).withParent(Contents.ADVANCEMENTS))); Minecraft.getMinecraft().displayGuiScreen(new GuiWorldHandlerContainer(Contents.CONTINUE.withBuilder(this.builderAdvancement.getBuilder(EnumActionType.REVOKE, EnumMode.EVERYTHING)).withParent(Contents.ADVANCEMENTS)));
break; break;
default: default:
break; break;
} }
} }
@Override @Override
public Category getCategory() public Category getCategory()
{ {
return Categories.PLAYER; return Categories.PLAYER;
} }
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.player.advancements"); return I18n.format("gui.worldhandler.title.player.advancements");
} }
@Override @Override
public String getTabTitle() public String getTabTitle()
{ {
return I18n.format("gui.worldhandler.tab.player.advancements"); return I18n.format("gui.worldhandler.tab.player.advancements");
} }
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {
return Contents.ADVANCEMENTS; return Contents.ADVANCEMENTS;
} }
@Override @Override
public void onPlayerNameChanged(String username) public void onPlayerNameChanged(String username)
{ {
this.builderAdvancement.setPlayer(username); this.builderAdvancement.setPlayer(username);
} }
} }

View File

@@ -1,372 +1,372 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.WorldHandler;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderCustomItem; import exopandora.worldhandler.builder.impl.BuilderCustomItem;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes;
import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable; import exopandora.worldhandler.builder.impl.abstr.EnumAttributes.Applyable;
import exopandora.worldhandler.config.ConfigSliders; import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.GuiButtonList; import exopandora.worldhandler.gui.button.GuiButtonList;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; import exopandora.worldhandler.gui.button.GuiTextFieldTooltip;
import exopandora.worldhandler.gui.button.responder.AttributeResponder; import exopandora.worldhandler.gui.button.responder.AttributeResponder;
import exopandora.worldhandler.gui.button.responder.SimpleResponder; import exopandora.worldhandler.gui.button.responder.SimpleResponder;
import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Categories;
import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.Contents; import exopandora.worldhandler.gui.content.Contents;
import exopandora.worldhandler.gui.content.element.impl.ElementColorMenu; import exopandora.worldhandler.gui.content.element.impl.ElementColorMenu;
import exopandora.worldhandler.gui.content.element.impl.ElementPageList; import exopandora.worldhandler.gui.content.element.impl.ElementPageList;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import exopandora.worldhandler.helper.ResourceHelper; import exopandora.worldhandler.helper.ResourceHelper;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ContentCustomItem extends Content public class ContentCustomItem extends Content
{ {
private GuiTextFieldTooltip itemField; private GuiTextFieldTooltip itemField;
private GuiTextFieldTooltip itemLore1Field; private GuiTextFieldTooltip itemLore1Field;
private GuiTextFieldTooltip itemLore2Field; private GuiTextFieldTooltip itemLore2Field;
private final BuilderCustomItem builderCutomItem = new BuilderCustomItem(); private final BuilderCustomItem builderCutomItem = new BuilderCustomItem();
private int startPage; private int startPage;
private String selectedPage = "start"; private String selectedPage = "start";
private String item; private String item;
private GuiButtonList colorButton; private GuiButtonList colorButton;
private final List<EnumAttributes> attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList()); private final List<EnumAttributes> attributes = Stream.concat(EnumAttributes.getAttributesFor(Applyable.BOTH).stream(), EnumAttributes.getAttributesFor(Applyable.PLAYER).stream()).collect(Collectors.toList());
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderCutomItem; return this.builderCutomItem;
} }
@Override @Override
public void init(Container container) public void init(Container container)
{ {
for(EnumAttributes attribute : this.builderCutomItem.getAttributes()) for(EnumAttributes attribute : this.builderCutomItem.getAttributes())
{ {
double ammount = this.builderCutomItem.getAttributeAmmount(attribute); double ammount = this.builderCutomItem.getAttributeAmmount(attribute);
if(ammount > ConfigSliders.getMaxItemAttributes()) if(ammount > ConfigSliders.getMaxItemAttributes())
{ {
this.builderCutomItem.setAttribute(attribute, ConfigSliders.getMaxItemAttributes()); this.builderCutomItem.setAttribute(attribute, ConfigSliders.getMaxItemAttributes());
} }
} }
for(Enchantment enchantment : this.builderCutomItem.getEnchantments()) for(Enchantment enchantment : this.builderCutomItem.getEnchantments())
{ {
short level = this.builderCutomItem.getEnchantmentLevel(enchantment); short level = this.builderCutomItem.getEnchantmentLevel(enchantment);
if(level > ConfigSliders.getMaxItemEnchantment()) if(level > ConfigSliders.getMaxItemEnchantment())
{ {
this.builderCutomItem.setEnchantment(enchantment, (short) ConfigSliders.getMaxItemEnchantment()); this.builderCutomItem.setEnchantment(enchantment, (short) ConfigSliders.getMaxItemEnchantment());
} }
} }
} }
@Override @Override
public void initGui(Container container, int x, int y) 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 = new GuiTextFieldTooltip(x + 118, y, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.item_id"));
this.itemField.setValidator(Predicates.<String>notNull()); this.itemField.setValidator(Predicates.<String>notNull());
this.itemField.setText(this.item); 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 = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_1"));
this.itemLore1Field.setValidator(Predicates.<String>notNull()); this.itemLore1Field.setValidator(Predicates.<String>notNull());
this.itemLore1Field.setText(this.builderCutomItem.getLore1()); 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 = new GuiTextFieldTooltip(x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.start.lore_2"));
this.itemLore2Field.setValidator(Predicates.<String>notNull()); this.itemLore2Field.setValidator(Predicates.<String>notNull());
this.itemLore2Field.setText(this.builderCutomItem.getLore2()); this.itemLore2Field.setText(this.builderCutomItem.getLore2());
if(this.selectedPage.equals("start")) if(this.selectedPage.equals("start"))
{ {
if(this.startPage == 1) 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}); 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); container.add(colors);
} }
} }
else if(this.selectedPage.equals("enchant")) else if(this.selectedPage.equals("enchant"))
{ {
ElementPageList<ResourceLocation, String> enchantments = new ElementPageList<ResourceLocation, String>(x + 118, y, new ArrayList<ResourceLocation>(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {10, 11, 12}, new ILogicPageList<ResourceLocation, String>() ElementPageList<ResourceLocation, String> enchantments = new ElementPageList<ResourceLocation, String>(x + 118, y, new ArrayList<ResourceLocation>(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {10, 11, 12}, new ILogicPageList<ResourceLocation, String>()
{ {
@Override @Override
public String translate(ResourceLocation key) public String translate(ResourceLocation key)
{ {
return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); return I18n.format(Enchantment.REGISTRY.getObject(key).getName());
} }
@Override @Override
public String getRegistryName(ResourceLocation key) public String getRegistryName(ResourceLocation key)
{ {
return key.toString(); return key.toString();
} }
@Override @Override
public void onClick(ResourceLocation clicked) public void onClick(ResourceLocation clicked)
{ {
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) 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<ResourceLocation>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, ConfigSliders.getMaxItemEnchantment(), 0, new SimpleResponder<ResourceLocation>(response -> container.add(new GuiSlider<ResourceLocation>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, 0, ConfigSliders.getMaxItemEnchantment(), 0, new SimpleResponder<ResourceLocation>(response ->
{ {
builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue()); builderCutomItem.setEnchantment(Enchantment.REGISTRY.getObject(value), response.shortValue());
}))); })));
} }
@Override @Override
public ResourceLocation convert(String object) public ResourceLocation getObject(String object)
{ {
if(object != null) if(object != null)
{ {
return new ResourceLocation(object.toString()); return new ResourceLocation(object.toString());
} }
return null; return null;
} }
@Override @Override
public String getId() public String getId()
{ {
return "enchantments"; return "enchantments";
} }
}); });
container.add(enchantments); container.add(enchantments);
} }
else if(this.selectedPage.equals("attributes")) else if(this.selectedPage.equals("attributes"))
{ {
ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList<EnumAttributes, Object>() ElementPageList<EnumAttributes, Object> attributes = new ElementPageList<EnumAttributes, Object>(x + 118, y, this.attributes, null, 114, 20, 3, this, new int[] {13, 14, 15}, new ILogicPageList<EnumAttributes, Object>()
{ {
@Override @Override
public String translate(EnumAttributes key) public String translate(EnumAttributes key)
{ {
return I18n.format("attribute.name." + key.getAttribute()); return I18n.format("attribute.name." + key.getAttribute());
} }
@Override @Override
public void onClick(EnumAttributes clicked) public void onClick(EnumAttributes clicked)
{ {
} }
@Override @Override
public String getRegistryName(EnumAttributes key) public String getRegistryName(EnumAttributes key)
{ {
return key.getAttribute(); return key.getAttribute();
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, EnumAttributes value, Container container) 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<EnumAttributes>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, -ConfigSliders.getMaxItemAttributes(), ConfigSliders.getMaxItemAttributes(), 0, new AttributeResponder(response -> container.add(new GuiSlider<EnumAttributes>(Contents.CUSTOM_ITEM, container, value, x, y, width, height, display, -ConfigSliders.getMaxItemAttributes(), ConfigSliders.getMaxItemAttributes(), 0, new AttributeResponder(response ->
{ {
builderCutomItem.setAttribute(value, response); builderCutomItem.setAttribute(value, response);
}))); })));
} }
@Override @Override
public EnumAttributes convert(Object object) public EnumAttributes getObject(Object object)
{ {
return null; return null;
} }
@Override @Override
public String getId() public String getId()
{ {
return "attributes"; return "attributes";
} }
}); });
container.add(attributes); container.add(attributes);
} }
} }
@Override @Override
public void initButtons(Container container, int x, int y) public void initButtons(Container container, int x, int y)
{ {
GuiButtonWorldHandler button3; GuiButtonWorldHandler button3;
GuiButtonWorldHandler button4; GuiButtonWorldHandler button4;
GuiButtonWorldHandler button5; GuiButtonWorldHandler button5;
GuiButtonWorldHandler button6; GuiButtonWorldHandler button6;
GuiButtonWorldHandler button7; GuiButtonWorldHandler button7;
GuiButtonWorldHandler button8; GuiButtonWorldHandler button8;
GuiButtonWorldHandler button9; GuiButtonWorldHandler button9;
GuiButtonWorldHandler button10; GuiButtonWorldHandler button10;
GuiButtonWorldHandler button11; GuiButtonWorldHandler button11;
container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back"))); 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 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(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(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"))); container.add(button5 = new GuiButtonWorldHandler(5, x, y + 48, 114, 20, I18n.format("gui.worldhandler.items.custom_item.attributes")));
if(this.selectedPage.equals("start")) if(this.selectedPage.equals("start"))
{ {
button3.enabled = false; button3.enabled = false;
container.add(button7 = new GuiButtonWorldHandler(6, x + 118, y + 72, 56, 20, "<")); 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, ">")); container.add(button8 = new GuiButtonWorldHandler(7, x + 118 + 60, y + 72, 55, 20, ">"));
button7.enabled = this.startPage != 0; button7.enabled = this.startPage != 0;
button8.enabled = this.startPage != 1; button8.enabled = this.startPage != 1;
} }
else if(this.selectedPage.equals("enchant")) else if(this.selectedPage.equals("enchant"))
{ {
button4.enabled = false; button4.enabled = false;
} }
else if(this.selectedPage.equals("attributes")) else if(this.selectedPage.equals("attributes"))
{ {
button5.enabled = false; button5.enabled = false;
} }
if(!this.builderCutomItem.needsCommandBlock() && !this.builderCutomItem.getName().isSpecial()) 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"))); container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.items.custom_item.custom_item")));
} }
else else
{ {
container.add(button6 = new GuiButtonWorldHandler(9, x, y + 72, 114, 20, I18n.format("gui.worldhandler.actions.place_command_block"))); 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); button6.enabled = ResourceHelper.isRegisteredItem(this.item);
} }
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
switch(button.id) switch(button.id)
{ {
case 3: case 3:
this.selectedPage = "start"; this.selectedPage = "start";
container.initGui(); container.initGui();
break; break;
case 4: case 4:
this.selectedPage = "enchant"; this.selectedPage = "enchant";
container.initGui(); container.initGui();
break; break;
case 5: case 5:
this.selectedPage = "attributes"; this.selectedPage = "attributes";
container.initGui(); container.initGui();
break; break;
case 6: case 6:
this.startPage--; this.startPage--;
container.initGui(); container.initGui();
break; break;
case 7: case 7:
this.startPage++; this.startPage++;
container.initGui(); container.initGui();
break; break;
case 9: case 9:
WorldHandler.sendCommand(this.builderCutomItem, this.builderCutomItem.getName().isSpecial()); WorldHandler.sendCommand(this.builderCutomItem, this.builderCutomItem.getName().isSpecial());
break; break;
default: default:
break; break;
} }
} }
@Override @Override
public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks)
{ {
if(this.selectedPage.equals("start")) if(this.selectedPage.equals("start"))
{ {
if(this.startPage == 0) if(this.startPage == 0)
{ {
this.itemField.drawTextBox(); this.itemField.drawTextBox();
this.itemLore1Field.drawTextBox(); this.itemLore1Field.drawTextBox();
this.itemLore2Field.drawTextBox(); this.itemLore2Field.drawTextBox();
} }
} }
} }
@Override @Override
public void keyTyped(Container container, char charTyped, int keyCode) public void keyTyped(Container container, char charTyped, int keyCode)
{ {
if(this.itemField.textboxKeyTyped(charTyped, keyCode)) if(this.itemField.textboxKeyTyped(charTyped, keyCode))
{ {
this.item = this.itemField.getText(); this.item = this.itemField.getText();
this.builderCutomItem.setItem(this.item); this.builderCutomItem.setItem(this.item);
container.initButtons(); container.initButtons();
} }
if(this.itemLore1Field.textboxKeyTyped(charTyped, keyCode)) if(this.itemLore1Field.textboxKeyTyped(charTyped, keyCode))
{ {
this.builderCutomItem.setLore1(this.itemLore1Field.getText()); this.builderCutomItem.setLore1(this.itemLore1Field.getText());
container.initButtons(); container.initButtons();
} }
if(this.itemLore2Field.textboxKeyTyped(charTyped, keyCode)) if(this.itemLore2Field.textboxKeyTyped(charTyped, keyCode))
{ {
this.builderCutomItem.setLore2(this.itemLore2Field.getText()); this.builderCutomItem.setLore2(this.itemLore2Field.getText());
container.initButtons(); container.initButtons();
} }
} }
@Override @Override
public void mouseClicked(int mouseX, int mouseY, int mouseButton) public void mouseClicked(int mouseX, int mouseY, int mouseButton)
{ {
if(this.selectedPage.equals("start")) if(this.selectedPage.equals("start"))
{ {
if(this.startPage == 0) if(this.startPage == 0)
{ {
this.itemField.mouseClicked(mouseX, mouseY, mouseButton); this.itemField.mouseClicked(mouseX, mouseY, mouseButton);
this.itemLore1Field.mouseClicked(mouseX, mouseY, mouseButton); this.itemLore1Field.mouseClicked(mouseX, mouseY, mouseButton);
this.itemLore2Field.mouseClicked(mouseX, mouseY, mouseButton); this.itemLore2Field.mouseClicked(mouseX, mouseY, mouseButton);
} }
} }
} }
@Override @Override
public Category getCategory() public Category getCategory()
{ {
return Categories.ITEMS; return Categories.ITEMS;
} }
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.items.custom_item"); return I18n.format("gui.worldhandler.title.items.custom_item");
} }
@Override @Override
public String getTabTitle() public String getTabTitle()
{ {
return I18n.format("gui.worldhandler.tab.items.custom_item"); return I18n.format("gui.worldhandler.tab.items.custom_item");
} }
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {
return Contents.CUSTOM_ITEM; return Contents.CUSTOM_ITEM;
} }
@Override @Override
public void onPlayerNameChanged(String username) public void onPlayerNameChanged(String username)
{ {
this.builderCutomItem.setPlayer(username); this.builderCutomItem.setPlayer(username);
} }
} }

View File

@@ -1,143 +1,143 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.ArrayList; import java.util.ArrayList;
import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.WorldHandler;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderEnchantment; import exopandora.worldhandler.builder.impl.BuilderEnchantment;
import exopandora.worldhandler.builder.types.Type; import exopandora.worldhandler.builder.types.Type;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
import exopandora.worldhandler.gui.button.responder.SimpleResponder; import exopandora.worldhandler.gui.button.responder.SimpleResponder;
import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Categories;
import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.Contents; import exopandora.worldhandler.gui.content.Contents;
import exopandora.worldhandler.gui.content.element.impl.ElementPageList; import exopandora.worldhandler.gui.content.element.impl.ElementPageList;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ContentEnchantment extends Content public class ContentEnchantment extends Content
{ {
private final BuilderEnchantment builderEnchantment = new BuilderEnchantment(); private final BuilderEnchantment builderEnchantment = new BuilderEnchantment();
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderEnchantment; return this.builderEnchantment;
} }
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
ElementPageList<ResourceLocation, String> enchantments = new ElementPageList<ResourceLocation, String>(x, y, new ArrayList<ResourceLocation>(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {3, 4, 5}, new ILogicPageList<ResourceLocation, String>() ElementPageList<ResourceLocation, String> enchantments = new ElementPageList<ResourceLocation, String>(x, y, new ArrayList<ResourceLocation>(Enchantment.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {3, 4, 5}, new ILogicPageList<ResourceLocation, String>()
{ {
@Override @Override
public String translate(ResourceLocation key) public String translate(ResourceLocation key)
{ {
return I18n.format(Enchantment.REGISTRY.getObject(key).getName()); return I18n.format(Enchantment.REGISTRY.getObject(key).getName());
} }
@Override @Override
public String getRegistryName(ResourceLocation key) public String getRegistryName(ResourceLocation key)
{ {
return key.toString(); return key.toString();
} }
@Override @Override
public void onClick(ResourceLocation clicked) public void onClick(ResourceLocation clicked)
{ {
builderEnchantment.setEnchantment(clicked); builderEnchantment.setEnchantment(clicked);
builderEnchantment.setLevel(1); builderEnchantment.setLevel(1);
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registry, boolean enabled, ResourceLocation value, Container container) 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); GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registry, EnumTooltip.TOP_RIGHT);
button.enabled = enabled; button.enabled = enabled;
container.add(button); container.add(button);
} }
@Override @Override
public ResourceLocation convert(String object) public ResourceLocation getObject(String object)
{ {
return Type.parseResourceLocation(object); return Type.parseResourceLocation(object);
} }
@Override @Override
public String getId() public String getId()
{ {
return "enchantments"; return "enchantments";
} }
}); });
container.add(enchantments); container.add(enchantments);
} }
@Override @Override
public void initButtons(Container container, int x, int y) 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(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 GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
container.add(new GuiSlider<String>(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<String>(value -> container.add(new GuiSlider<String>(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<String>(value ->
{ {
this.builderEnchantment.setLevel(value.intValue()); this.builderEnchantment.setLevel(value.intValue());
}))); })));
container.add(new GuiButtonWorldHandler(2, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.enchantment.enchant"))); container.add(new GuiButtonWorldHandler(2, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.items.enchantment.enchant")));
} }
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
switch(button.id) switch(button.id)
{ {
case 2: case 2:
WorldHandler.sendCommand(this.builderEnchantment); WorldHandler.sendCommand(this.builderEnchantment);
container.initGui(); container.initGui();
break; break;
default: default:
break; break;
} }
} }
@Override @Override
public Category getCategory() public Category getCategory()
{ {
return Categories.ITEMS; return Categories.ITEMS;
} }
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.items.enchantment"); return I18n.format("gui.worldhandler.title.items.enchantment");
} }
@Override @Override
public String getTabTitle() public String getTabTitle()
{ {
return I18n.format("gui.worldhandler.tab.items.enchantment"); return I18n.format("gui.worldhandler.tab.items.enchantment");
} }
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {
return Contents.ENCHANTMENT; return Contents.ENCHANTMENT;
} }
@Override @Override
public void onPlayerNameChanged(String username) public void onPlayerNameChanged(String username)
{ {
this.builderEnchantment.setPlayer(username); this.builderEnchantment.setPlayer(username);
} }
} }

View File

@@ -1,199 +1,199 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.Arrays; import java.util.Arrays;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.WorldHandler;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderGamerule; import exopandora.worldhandler.builder.impl.BuilderGamerule;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiTextFieldTooltip; import exopandora.worldhandler.gui.button.GuiTextFieldTooltip;
import exopandora.worldhandler.gui.category.Categories; import exopandora.worldhandler.gui.category.Categories;
import exopandora.worldhandler.gui.category.Category; import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.Content; import exopandora.worldhandler.gui.content.Content;
import exopandora.worldhandler.gui.content.Contents; import exopandora.worldhandler.gui.content.Contents;
import exopandora.worldhandler.gui.content.element.impl.ElementPageList; import exopandora.worldhandler.gui.content.element.impl.ElementPageList;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.world.GameRules.ValueType; import net.minecraft.world.GameRules.ValueType;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ContentGamerules extends Content public class ContentGamerules extends Content
{ {
private GuiTextFieldTooltip valueField; private GuiTextFieldTooltip valueField;
private boolean booleanValue; private boolean booleanValue;
private String value; private String value;
private final BuilderGamerule builderGamerule = new BuilderGamerule(); private final BuilderGamerule builderGamerule = new BuilderGamerule();
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return this.builderGamerule; return this.builderGamerule;
} }
@Override @Override
public void initGui(Container container, int x, int y) 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 = new GuiTextFieldTooltip(x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.value"));
this.valueField.setValidator(Predicates.notNull()); this.valueField.setValidator(Predicates.notNull());
this.valueField.setText(this.value); this.valueField.setText(this.value);
this.valueField.setCursorPositionEnd(); this.valueField.setCursorPositionEnd();
ElementPageList<String, String> rules = new ElementPageList<String, String>(x, y, Arrays.asList(Minecraft.getMinecraft().world.getGameRules().getRules()), null, 114, 20, 3, this, new int[] {5, 6, 7}, new ILogicPageList<String, String>() ElementPageList<String, String> rules = new ElementPageList<String, String>(x, y, Arrays.asList(Minecraft.getMinecraft().world.getGameRules().getRules()), null, 114, 20, 3, this, new int[] {5, 6, 7}, new ILogicPageList<String, String>()
{ {
@Override @Override
public String translate(String key) public String translate(String key)
{ {
String translated = I18n.format(key); String translated = I18n.format(key);
if(!translated.equals(key)) if(!translated.equals(key))
{ {
return translated; return translated;
} }
return I18n.format("gui.worldhandler.gamerules.rule." + key); return I18n.format("gui.worldhandler.gamerules.rule." + key);
} }
@Override @Override
public void onClick(String clicked) public void onClick(String clicked)
{ {
builderGamerule.setRule(clicked); builderGamerule.setRule(clicked);
booleanValue = Minecraft.getMinecraft().world.getGameRules().areSameType(clicked, ValueType.BOOLEAN_VALUE); booleanValue = Minecraft.getMinecraft().world.getGameRules().areSameType(clicked, ValueType.BOOLEAN_VALUE);
if(booleanValue) if(booleanValue)
{ {
builderGamerule.setValue(null); builderGamerule.setValue(null);
} }
else else
{ {
builderGamerule.setValue(value); builderGamerule.setValue(value);
} }
} }
@Override @Override
public String getRegistryName(String key) public String getRegistryName(String key)
{ {
return key; return key;
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, String value, Container container) 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); GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT);
button.enabled = enabled; button.enabled = enabled;
container.add(button); container.add(button);
} }
@Override @Override
public String convert(String object) public String getObject(String object)
{ {
return object; return object;
} }
@Override @Override
public String getId() public String getId()
{ {
return "gamerules"; return "gamerules";
} }
}); });
container.add(rules); container.add(rules);
} }
@Override @Override
public void initButtons(Container container, int x, int y) 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(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 GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame")));
if(this.booleanValue) if(this.booleanValue)
{ {
container.add(new GuiButtonWorldHandler(2, x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.generic.enable"))); 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"))); container.add(new GuiButtonWorldHandler(3, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.generic.disable")));
} }
else else
{ {
container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.perform"))); container.add(new GuiButtonWorldHandler(4, x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.actions.perform")));
} }
} }
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
switch(button.id) switch(button.id)
{ {
case 2: case 2:
WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(true))); WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(true)));
break; break;
case 3: case 3:
WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(false))); WorldHandler.sendCommand(this.builderGamerule.getBuilderForValue(String.valueOf(false)));
break; break;
case 4: case 4:
WorldHandler.sendCommand(this.builderGamerule); WorldHandler.sendCommand(this.builderGamerule);
break; break;
default: default:
break; break;
} }
} }
@Override @Override
public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks) public void drawScreen(Container container, int x, int y, int mouseX, int mouseY, float partialTicks)
{ {
if(!this.booleanValue) if(!this.booleanValue)
{ {
this.valueField.drawTextBox(); this.valueField.drawTextBox();
} }
} }
@Override @Override
public void keyTyped(Container container, char typedChar, int keyCode) public void keyTyped(Container container, char typedChar, int keyCode)
{ {
if(this.valueField.textboxKeyTyped(typedChar, keyCode)) if(this.valueField.textboxKeyTyped(typedChar, keyCode))
{ {
this.value = this.valueField.getText(); this.value = this.valueField.getText();
this.builderGamerule.setValue(this.value); this.builderGamerule.setValue(this.value);
} }
} }
@Override @Override
public void mouseClicked(int mouseX, int mouseY, int mouseButton) public void mouseClicked(int mouseX, int mouseY, int mouseButton)
{ {
if(!this.booleanValue) if(!this.booleanValue)
{ {
this.valueField.mouseClicked(mouseX, mouseY, mouseButton); this.valueField.mouseClicked(mouseX, mouseY, mouseButton);
} }
} }
@Override @Override
public Category getCategory() public Category getCategory()
{ {
return Categories.WORLD; return Categories.WORLD;
} }
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.world.gamerules"); return I18n.format("gui.worldhandler.title.world.gamerules");
} }
@Override @Override
public String getTabTitle() public String getTabTitle()
{ {
return I18n.format("gui.worldhandler.tab.world.gamerules"); return I18n.format("gui.worldhandler.tab.world.gamerules");
} }
@Override @Override
public Content getActiveContent() public Content getActiveContent()
{ {
return Contents.GAMERULES; return Contents.GAMERULES;
} }
} }

View File

@@ -1,262 +1,262 @@
package exopandora.worldhandler.gui.content.impl; package exopandora.worldhandler.gui.content.impl;
import java.util.ArrayList; import java.util.ArrayList;
import exopandora.worldhandler.WorldHandler; import exopandora.worldhandler.WorldHandler;
import exopandora.worldhandler.builder.ICommandBuilder; import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.builder.impl.BuilderMultiCommand; import exopandora.worldhandler.builder.impl.BuilderMultiCommand;
import exopandora.worldhandler.builder.impl.BuilderPotionEffect; import exopandora.worldhandler.builder.impl.BuilderPotionEffect;
import exopandora.worldhandler.builder.impl.BuilderPotionItem; import exopandora.worldhandler.builder.impl.BuilderPotionItem;
import exopandora.worldhandler.config.ConfigSliders; import exopandora.worldhandler.config.ConfigSliders;
import exopandora.worldhandler.gui.button.EnumTooltip; import exopandora.worldhandler.gui.button.EnumTooltip;
import exopandora.worldhandler.gui.button.GuiButtonWorldHandler; import exopandora.worldhandler.gui.button.GuiButtonWorldHandler;
import exopandora.worldhandler.gui.button.GuiSlider; import exopandora.worldhandler.gui.button.GuiSlider;
import exopandora.worldhandler.gui.button.responder.SimpleResponder; import exopandora.worldhandler.gui.button.responder.SimpleResponder;
import exopandora.worldhandler.gui.container.Container; import exopandora.worldhandler.gui.container.Container;
import exopandora.worldhandler.gui.content.element.impl.ElementPageList; import exopandora.worldhandler.gui.content.element.impl.ElementPageList;
import exopandora.worldhandler.gui.content.element.logic.ILogicPageList; import exopandora.worldhandler.gui.content.element.logic.ILogicPageList;
import exopandora.worldhandler.gui.content.impl.abstr.ContentChild; import exopandora.worldhandler.gui.content.impl.abstr.ContentChild;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public class ContentPotions extends ContentChild public class ContentPotions extends ContentChild
{ {
private int potionPage; private int potionPage;
private final BuilderPotionEffect builderPotion = new BuilderPotionEffect(); private final BuilderPotionEffect builderPotion = new BuilderPotionEffect();
private final BuilderPotionItem builderPotionItem = new BuilderPotionItem(); private final BuilderPotionItem builderPotionItem = new BuilderPotionItem();
@Override @Override
public ICommandBuilder getCommandBuilder() public ICommandBuilder getCommandBuilder()
{ {
return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem); return new BuilderMultiCommand(this.builderPotion, this.builderPotionItem);
} }
@Override @Override
public void init(Container container) public void init(Container container)
{ {
if(this.builderPotion.getAmplifier() > ConfigSliders.getMaxPotionAmplifier()) if(this.builderPotion.getAmplifier() > ConfigSliders.getMaxPotionAmplifier())
{ {
this.builderPotion.setAmplifier((byte) ConfigSliders.getMaxPotionAmplifier()); this.builderPotion.setAmplifier((byte) ConfigSliders.getMaxPotionAmplifier());
} }
for(Potion potion : this.builderPotionItem.getPotions()) for(Potion potion : this.builderPotionItem.getPotions())
{ {
byte amplifier = this.builderPotionItem.getAmplifier(potion); byte amplifier = this.builderPotionItem.getAmplifier(potion);
if(amplifier > ConfigSliders.getMaxPotionAmplifier()) if(amplifier > ConfigSliders.getMaxPotionAmplifier())
{ {
this.builderPotionItem.setAmplifier(potion, (byte) ConfigSliders.getMaxPotionAmplifier()); this.builderPotionItem.setAmplifier(potion, (byte) ConfigSliders.getMaxPotionAmplifier());
} }
} }
} }
@Override @Override
public void initGui(Container container, int x, int y) public void initGui(Container container, int x, int y)
{ {
ElementPageList<ResourceLocation, Potion> potions = new ElementPageList<ResourceLocation, Potion>(x, y, new ArrayList(Potion.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {15, 16, 17}, new ILogicPageList<ResourceLocation, Potion>() ElementPageList<ResourceLocation, Potion> potions = new ElementPageList<ResourceLocation, Potion>(x, y, new ArrayList(Potion.REGISTRY.getKeys()), null, 114, 20, 3, this, new int[] {15, 16, 17}, new ILogicPageList<ResourceLocation, Potion>()
{ {
@Override @Override
public String translate(ResourceLocation key) public String translate(ResourceLocation key)
{ {
return I18n.format(Potion.REGISTRY.getObject(key).getName()); return I18n.format(Potion.REGISTRY.getObject(key).getName());
} }
@Override @Override
public void onClick(ResourceLocation clicked) public void onClick(ResourceLocation clicked)
{ {
builderPotion.setEffect(clicked); builderPotion.setEffect(clicked);
} }
@Override @Override
public String getRegistryName(ResourceLocation key) public String getRegistryName(ResourceLocation key)
{ {
return key.toString(); return key.toString();
} }
@Override @Override
public void onRegister(int id, int x, int y, int width, int height, String display, String registryKey, boolean enabled, ResourceLocation value, Container container) 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); GuiButtonWorldHandler button = new GuiButtonWorldHandler(id, x, y, width, height, display, registryKey, EnumTooltip.TOP_RIGHT);
button.enabled = enabled; button.enabled = enabled;
container.add(button); container.add(button);
} }
@Override @Override
public ResourceLocation convert(Potion object) public ResourceLocation getObject(Potion object)
{ {
if(object != null) if(object != null)
{ {
return object.getRegistryName(); return object.getRegistryName();
} }
return null; return null;
} }
@Override @Override
public String getId() public String getId()
{ {
return "potions"; return "potions";
} }
}); });
container.add(potions); container.add(potions);
} }
@Override @Override
public void initButtons(Container container, int x, int y) public void initButtons(Container container, int x, int y)
{ {
GuiButtonWorldHandler button6; GuiButtonWorldHandler button6;
GuiButtonWorldHandler button7; GuiButtonWorldHandler button7;
GuiButtonWorldHandler button8; GuiButtonWorldHandler button8;
GuiButtonWorldHandler button9; GuiButtonWorldHandler button9;
GuiButtonWorldHandler button10; GuiButtonWorldHandler button10;
container.add(new GuiButtonWorldHandler(1, x + 118, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.backToGame"))); 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"))); container.add(new GuiButtonWorldHandler(0, x, y + 96, 114, 20, I18n.format("gui.worldhandler.generic.back")));
if(this.potionPage == 0) 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(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(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"))); container.add(new GuiButtonWorldHandler(7, x + 118, y + 60, 114, 20, I18n.format("gui.worldhandler.potions.effect.remove_all")));
} }
else if(this.potionPage == 1) else if(this.potionPage == 1)
{ {
Potion potion = this.builderPotion.getEffectAsPotion(); 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(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 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<Potion>(this, container, "potions_amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, ConfigSliders.getMaxPotionAmplifier(), 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "potions_amplifier" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect.amplifier"), 0, ConfigSliders.getMaxPotionAmplifier(), 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setAmplifier(value.byteValue()); this.builderPotion.setAmplifier(value.byteValue());
this.builderPotionItem.setAmplifier(potion, value.byteValue()); this.builderPotionItem.setAmplifier(potion, value.byteValue());
}))); })));
} }
else if(this.potionPage == 2) else if(this.potionPage == 2)
{ {
Potion potion = this.builderPotion.getEffectAsPotion(); Potion potion = this.builderPotion.getEffectAsPotion();
container.add(new GuiSlider<Potion>(this, container, "seconds" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "seconds" + potion.getRegistryName(), x + 118, y, 114, 20, I18n.format("gui.worldhandler.potion.time.seconds"), 0, 59, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setSeconds(value.intValue()); this.builderPotion.setSeconds(value.intValue());
this.builderPotionItem.setSeconds(potion, value.intValue()); this.builderPotionItem.setSeconds(potion, value.intValue());
}))); })));
container.add(new GuiSlider<Potion>(this, container, "minutes" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "minutes" + potion.getRegistryName(), x + 118, y + 24, 114, 20, I18n.format("gui.worldhandler.potion.time.minutes"), 0, 59, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setMinutes(value.intValue()); this.builderPotion.setMinutes(value.intValue());
this.builderPotionItem.setMinutes(potion, value.intValue()); this.builderPotionItem.setMinutes(potion, value.intValue());
}))); })));
container.add(new GuiSlider<Potion>(this, container, "hours" + potion.getRegistryName(), x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder<Potion>(value -> container.add(new GuiSlider<Potion>(this, container, "hours" + potion.getRegistryName(), x + 118, y + 48, 114, 20, I18n.format("gui.worldhandler.potion.time.hours"), 0, 99, 0, new SimpleResponder<Potion>(value ->
{ {
this.builderPotion.setHours(value.intValue()); this.builderPotion.setHours(value.intValue());
this.builderPotionItem.setHours(potion, value.intValue()); this.builderPotionItem.setHours(potion, value.intValue());
}))); })));
} }
else if(this.potionPage == 3) else if(this.potionPage == 3)
{ {
container.add(button6 = new GuiButtonWorldHandler(10, x + 118, y, 114, 20, I18n.format("gui.worldhandler.potions.effect"))); 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(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(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(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)); 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; boolean enabled = this.builderPotion.getAmplifier() >= 0;
button6.enabled = enabled; button6.enabled = enabled;
button7.enabled = enabled; button7.enabled = enabled;
button8.enabled = enabled; button8.enabled = enabled;
button9.enabled = enabled; button9.enabled = enabled;
button10.enabled = enabled; button10.enabled = enabled;
} }
if(this.potionPage > 0) if(this.potionPage > 0)
{ {
container.add(new GuiButtonWorldHandler(4, x + 118, y + 72, 56, 20, "<")); container.add(new GuiButtonWorldHandler(4, x + 118, y + 72, 56, 20, "<"));
container.add(button6 = new GuiButtonWorldHandler(5, x + 118 + 60, y + 72, 55, 20, ">")); container.add(button6 = new GuiButtonWorldHandler(5, x + 118 + 60, y + 72, 55, 20, ">"));
button6.enabled = this.potionPage < 3; button6.enabled = this.potionPage < 3;
} }
} }
@Override @Override
public void actionPerformed(Container container, GuiButton button) public void actionPerformed(Container container, GuiButton button)
{ {
Potion potion = this.builderPotion.getEffectAsPotion(); Potion potion = this.builderPotion.getEffectAsPotion();
switch(button.id) switch(button.id)
{ {
case 4: case 4:
this.potionPage--; this.potionPage--;
container.initGui(); container.initGui();
break; break;
case 5: case 5:
this.potionPage++; this.potionPage++;
container.initGui(); container.initGui();
break; break;
case 6: case 6:
WorldHandler.sendCommand(this.builderPotion.getRemoveCommand()); WorldHandler.sendCommand(this.builderPotion.getRemoveCommand());
container.initGui(); container.initGui();
break; break;
case 7: case 7:
WorldHandler.sendCommand(this.builderPotion.getClearCommand()); WorldHandler.sendCommand(this.builderPotion.getClearCommand());
container.initGui(); container.initGui();
break; break;
case 8: case 8:
this.builderPotionItem.setAmbient(potion, !this.builderPotionItem.getAmbient(potion)); this.builderPotionItem.setAmbient(potion, !this.builderPotionItem.getAmbient(potion));
container.initGui(); container.initGui();
break; break;
case 9: case 9:
this.builderPotion.setHideParticles(!this.builderPotion.getHideParticles()); this.builderPotion.setHideParticles(!this.builderPotion.getHideParticles());
this.builderPotionItem.setShowParticles(potion, !this.builderPotionItem.getShowParticles(potion)); this.builderPotionItem.setShowParticles(potion, !this.builderPotionItem.getShowParticles(potion));
container.initGui(); container.initGui();
break; break;
case 10: case 10:
WorldHandler.sendCommand(this.builderPotion); WorldHandler.sendCommand(this.builderPotion);
this.potionPage = 0; this.potionPage = 0;
container.initGui(); container.initGui();
break; break;
case 11: case 11:
WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.POTIONITEM)); WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.POTIONITEM));
this.potionPage = 0; this.potionPage = 0;
container.initGui(); container.initGui();
break; break;
case 12: case 12:
WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.LINGERING_POTION)); WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.LINGERING_POTION));
this.potionPage = 0; this.potionPage = 0;
container.initGui(); container.initGui();
break; break;
case 13: case 13:
WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.SPLASH_POTION)); WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.SPLASH_POTION));
this.potionPage = 0; this.potionPage = 0;
container.initGui(); container.initGui();
break; break;
case 14: case 14:
WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.TIPPED_ARROW)); WorldHandler.sendCommand(this.builderPotionItem.getBuilderForPotion(Items.TIPPED_ARROW));
this.potionPage = 0; this.potionPage = 0;
container.initGui(); container.initGui();
break; break;
default: default:
break; break;
} }
} }
@Override @Override
public String getTitle() public String getTitle()
{ {
return I18n.format("gui.worldhandler.title.potions"); return I18n.format("gui.worldhandler.title.potions");
} }
@Override @Override
public void onPlayerNameChanged(String username) public void onPlayerNameChanged(String username)
{ {
this.builderPotion.setPlayer(username); this.builderPotion.setPlayer(username);
this.builderPotionItem.setPlayer(username); this.builderPotionItem.setPlayer(username);
} }
} }

View File

@@ -83,7 +83,7 @@ public class ContentRecipes extends Content
} }
@Override @Override
public IRecipe convert(String object) public IRecipe getObject(String object)
{ {
return CraftingManager.REGISTRY.getObject(Type.parseResourceLocation(object)); return CraftingManager.REGISTRY.getObject(Type.parseResourceLocation(object));
} }