mirror of
https://github.com/GTNewHorizons/AE2FluidCraft-Rework.git
synced 2026-11-11 15:57:55 +00:00
Universal GUI (#340)
Co-authored-by: Kogepan229 <kogepan25629@gmail.com> Co-authored-by: Martin Robertz <dream-master@gmx.net>
This commit is contained in:
213 files changed
+1859
-19432
No files matched your search
@@ -0,0 +1,98 @@
|
||||
package com.glodblock.github.client;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.renderer.entity.RenderItem;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
import org.lwjgl.input.Mouse;
|
||||
|
||||
import com.glodblock.github.FluidCraft;
|
||||
import com.glodblock.github.loader.ItemAndBlockHolder;
|
||||
import com.glodblock.github.network.CPacketCustomButtonUpdate;
|
||||
import com.glodblock.github.network.CPacketSwitchGuis;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.SidelessMode;
|
||||
import appeng.client.gui.widgets.GuiImgButton;
|
||||
import appeng.client.gui.widgets.GuiTabButton;
|
||||
import appeng.core.sync.network.NetworkHandler;
|
||||
import appeng.core.sync.packets.PacketConfigButton;
|
||||
import appeng.helpers.ICustomButtonDataObject;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class FluidInterfaceButtons implements ICustomButtonDataObject {
|
||||
|
||||
private GuiImgButton sidelessMode;
|
||||
private GuiTabButton switcher;
|
||||
private final boolean fullBlock;
|
||||
public SidelessMode sidelessSate;
|
||||
|
||||
public FluidInterfaceButtons(final boolean fullBlock) {
|
||||
this.fullBlock = fullBlock;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void initCustomButtons(int guiLeft, int guiTop, int xSize, int ySize, int xOffset, int yOffset,
|
||||
List<GuiButton> buttonList) {
|
||||
if (fullBlock) {
|
||||
this.sidelessMode = new GuiImgButton(
|
||||
guiLeft - 18,
|
||||
guiTop + yOffset,
|
||||
Settings.SIDELESS_MODE,
|
||||
SidelessMode.SIDELESS);
|
||||
buttonList.add(this.sidelessMode);
|
||||
}
|
||||
|
||||
this.switcher = new GuiTabButton(
|
||||
guiLeft + 132,
|
||||
guiTop,
|
||||
!fullBlock ? ItemAndBlockHolder.FLUID_INTERFACE.stack() : ItemAndBlockHolder.INTERFACE.stack(),
|
||||
StatCollector.translateToLocal("ae2fc.tooltip.switch_fluid_interface"),
|
||||
RenderItem.getInstance());
|
||||
buttonList.add(this.switcher);
|
||||
|
||||
FluidCraft.proxy.netHandler.sendToServer(new CPacketCustomButtonUpdate());
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public boolean actionPerformedCustomButtons(final GuiButton btn) {
|
||||
if (btn == this.switcher) {
|
||||
FluidCraft.proxy.netHandler.sendToServer(new CPacketSwitchGuis());
|
||||
return true;
|
||||
} else if (fullBlock && btn == this.sidelessMode) {
|
||||
final boolean backwards = Mouse.isButtonDown(1);
|
||||
NetworkHandler.instance.sendToServer(new PacketConfigButton(this.sidelessMode.getSetting(), backwards));
|
||||
FluidCraft.proxy.netHandler.sendToServer(new CPacketCustomButtonUpdate());
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readData(NBTTagCompound tag) {}
|
||||
|
||||
@Override
|
||||
public void writeData(NBTTagCompound tag) {}
|
||||
|
||||
@Override
|
||||
public void readByte(ByteBuf buf) {
|
||||
this.sidelessMode.set(SidelessMode.values()[buf.readInt()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeByte(ByteBuf buf) {
|
||||
buf.writeInt(this.sidelessSate.ordinal());
|
||||
}
|
||||
|
||||
public void setSidelessMode(SidelessMode sm) {
|
||||
this.sidelessSate = sm;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user