Extend IContent by IGuiEventListener and implement method hooks

This commit is contained in:
Marcel Konrad
2020-05-23 21:28:17 +02:00
parent 5561857f49
commit 1acdaa34b6
3 changed files with 103 additions and 15 deletions

View File

@@ -15,12 +15,18 @@ import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public abstract class Container extends Screen implements IContainer
{
protected final List<IMenu> menus = new ArrayList<IMenu>();
protected Container(ITextComponent title)
{
super(title);
}
protected final List<IMenu> menus = new ArrayList<IMenu>();
@Override
public void init()
{
super.init();
}
@Override
public <T extends Widget> T add(T button)
@@ -34,12 +40,6 @@ public abstract class Container extends Screen implements IContainer
return textfield;
}
@Override
public void init()
{
super.init();
}
@Override
public void add(Menu menu)
{

View File

@@ -535,14 +535,9 @@ public class GuiWorldHandler extends Container
}
@Override
public boolean charTyped(char charTyped, int keyCode)
public void mouseMoved(double xPos, double mouseY)
{
if(this.nameField.isFocused())
{
this.nameField.setCursorPositionEnd();
}
return super.charTyped(charTyped, keyCode);
this.content.mouseMoved(xPos, mouseY);
}
@Override
@@ -553,9 +548,47 @@ public class GuiWorldHandler extends Container
this.nameField.setCursorPositionEnd();
}
if(this.content.mouseClicked(mouseX, mouseY, keyCode))
{
return true;
}
return super.mouseClicked(mouseX, mouseY, keyCode);
}
@Override
public boolean mouseReleased(double mouseX, double mouseY, int keyCode)
{
if(this.content.mouseReleased(mouseX, mouseY, keyCode))
{
return true;
}
return super.mouseReleased(mouseX, mouseY, keyCode);
}
@Override
public boolean mouseDragged(double mouseX, double mouseY, int keyCode, double deltaX, double deltaY)
{
if(this.content.mouseDragged(mouseX, mouseY, keyCode, deltaX, deltaY))
{
return true;
}
return super.mouseDragged(mouseX, mouseY, keyCode, deltaX, deltaY);
}
@Override
public boolean mouseScrolled(double mouseX, double mouseY, double distance)
{
if(this.content.mouseScrolled(mouseX, mouseY, distance))
{
return true;
}
return super.mouseScrolled(mouseX, mouseY, distance);
}
@Override
public boolean keyPressed(int keyCode, int scanCode, int modifiers)
{
@@ -572,9 +605,63 @@ public class GuiWorldHandler extends Container
return true;
}
if(this.content.keyPressed(keyCode, scanCode, modifiers))
{
return true;
}
return super.keyPressed(keyCode, scanCode, modifiers);
}
@Override
public boolean keyReleased(int keyCode, int scanCode, int modifiers)
{
if(this.content.keyReleased(keyCode, scanCode, modifiers))
{
return true;
}
return super.keyReleased(keyCode, scanCode, modifiers);
}
@Override
public boolean charTyped(char charTyped, int keyCode)
{
if(this.nameField.isFocused())
{
this.nameField.setCursorPositionEnd();
}
if(this.content.charTyped(charTyped, keyCode))
{
return true;
}
return super.charTyped(charTyped, keyCode);
}
@Override
public boolean changeFocus(boolean focus)
{
if(this.content.changeFocus(focus))
{
return true;
}
return super.changeFocus(focus);
}
@Override
public boolean isMouseOver(double mouseX, double mouseY)
{
if(this.content.isMouseOver(mouseX, mouseY))
{
return true;
}
return super.isMouseOver(mouseX, mouseY);
}
private void defaultColor()
{
this.defaultColor(1.0F);

View File

@@ -6,11 +6,12 @@ import javax.annotation.Nullable;
import exopandora.worldhandler.builder.ICommandBuilder;
import exopandora.worldhandler.gui.category.Category;
import exopandora.worldhandler.gui.container.Container;
import net.minecraft.client.gui.IGuiEventListener;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public interface IContent
public interface IContent extends IGuiEventListener
{
default void init(Container container)
{