// Path: src/main/java/net/mcft/copy/backpacks/client/GuiTextureResource.java
// @SideOnly(Side.CLIENT)
// public class GuiTextureResource extends ResourceLocation {
// 	
// 	public final int defaultWidth;
// 	public final int defaultHeight;
// 	
// 	public GuiTextureResource(String location, int defaultWidth, int defaultHeight) {
// 		super(WearableBackpacks.MOD_ID, "textures/gui/" + location + ".png");
// 		this.defaultWidth = defaultWidth;
// 		this.defaultHeight = defaultHeight;
// 	}
// 	
// 	public void bind() {
// 		Minecraft.getMinecraft().getTextureManager().bindTexture(this);
// 	}
// 	
// 	/** Draws part of the texture to the screen. */
// 	public void drawQuad(int x, int y, int u, int v, int w, int h, float zLevel) {
// 		float scaleX = 1.0F / defaultWidth;
// 		float scaleY = 1.0F / defaultHeight;
// 		Tessellator tess = Tessellator.getInstance();
// 		BufferBuilder vb = tess.getBuffer();
// 		vb.begin(7, DefaultVertexFormats.POSITION_TEX);
// 		vb.pos(x + 0, y + h, zLevel).tex((u + 0) * scaleX, (v + h) * scaleY).endVertex();
// 		vb.pos(x + w, y + h, zLevel).tex((u + w) * scaleX, (v + h) * scaleY).endVertex();
// 		vb.pos(x + w, y + 0, zLevel).tex((u + w) * scaleX, (v + 0) * scaleY).endVertex();
// 		vb.pos(x + 0, y + 0, zLevel).tex((u + 0) * scaleX, (v + 0) * scaleY).endVertex();
// 		tess.draw();
// 	}
// 	
// 	/** Draws part of the texture to the screen. */
// 	public void drawQuad(int x, int y, int u, int v, int w, int h) {
// 		drawQuad(x, y, u, v, w, h, 0);
// 	}
// 	
// }
// 
// Path: src/main/java/net/mcft/copy/backpacks/client/gui/control/GuiButtonIcon.java
// public static final class Icon {
// 	public final GuiTextureResource texture;
// 	public final int u, v, width, height;
// 		
// 	public Icon(GuiTextureResource texture, int u, int v, int width, int height)
// 		{ this.texture = texture; this.u = u; this.v = v; this.width = width; this.height = height; }
// }


import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.mcft.copy.backpacks.client.GuiTextureResource;
import net.mcft.copy.backpacks.client.gui.*;
import net.mcft.copy.backpacks.client.gui.control.*;
import net.mcft.copy.backpacks.client.gui.control.GuiButtonIcon.Icon;
					setText(element.isVisible() ? "yes" : "no");
				}); }});
				addFixed(new GuiLabel(" Enabled: ") {{ setCenteredVertical(); }});
				addWeighted(new GuiButton("yes") {{ setAction(() -> {
					element.setEnabled(!element.isEnabled());
					setText(element.isEnabled() ? "yes" : "no");
				}); }});
			}});
			layout.addFixed(element);
		}
	}
	
	public class ControlsScreen extends GuiContainerScreen {
		public ControlsScreen() {
			container.add(new GuiLayout(Direction.VERTICAL) {{
				setCenteredHorizontal();
				setFillVertical(8);
				
				addFixed(new GuiSlider(Direction.HORIZONTAL) {{
					setFillHorizontal();
					setRange(0, 10);
					setStepSize(1);
				}});
				
				addFixed(new GuiField() {{ setFillHorizontal(); }});
				
				addFixed(new GuiScrollable() {{
					setFillHorizontal();
					setHeight(100);
					setPadding(8);
// Path: src/main/java/net/mcft/copy/backpacks/client/GuiTextureResource.java
// @SideOnly(Side.CLIENT)
// public class GuiTextureResource extends ResourceLocation {
// 	
// 	public final int defaultWidth;
// 	public final int defaultHeight;
// 	
// 	public GuiTextureResource(String location, int defaultWidth, int defaultHeight) {
// 		super(WearableBackpacks.MOD_ID, "textures/gui/" + location + ".png");
// 		this.defaultWidth = defaultWidth;
// 		this.defaultHeight = defaultHeight;
// 	}
// 	
// 	public void bind() {
// 		Minecraft.getMinecraft().getTextureManager().bindTexture(this);
// 	}
// 	
// 	/** Draws part of the texture to the screen. */
// 	public void drawQuad(int x, int y, int u, int v, int w, int h, float zLevel) {
// 		float scaleX = 1.0F / defaultWidth;
// 		float scaleY = 1.0F / defaultHeight;
// 		Tessellator tess = Tessellator.getInstance();
// 		BufferBuilder vb = tess.getBuffer();
// 		vb.begin(7, DefaultVertexFormats.POSITION_TEX);
// 		vb.pos(x + 0, y + h, zLevel).tex((u + 0) * scaleX, (v + h) * scaleY).endVertex();
// 		vb.pos(x + w, y + h, zLevel).tex((u + w) * scaleX, (v + h) * scaleY).endVertex();
// 		vb.pos(x + w, y + 0, zLevel).tex((u + w) * scaleX, (v + 0) * scaleY).endVertex();
// 		vb.pos(x + 0, y + 0, zLevel).tex((u + 0) * scaleX, (v + 0) * scaleY).endVertex();
// 		tess.draw();
// 	}
// 	
// 	/** Draws part of the texture to the screen. */
// 	public void drawQuad(int x, int y, int u, int v, int w, int h) {
// 		drawQuad(x, y, u, v, w, h, 0);
// 	}
// 	
// }
// 
// Path: src/main/java/net/mcft/copy/backpacks/client/gui/control/GuiButtonIcon.java
// public static final class Icon {
// 	public final GuiTextureResource texture;
// 	public final int u, v, width, height;
// 		
// 	public Icon(GuiTextureResource texture, int u, int v, int width, int height)
// 		{ this.texture = texture; this.u = u; this.v = v; this.width = width; this.height = height; }
// }


// Path: src/main/java/net/mcft/copy/backpacks/client/gui/test/GuiTestScreen.java
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.mcft.copy.backpacks.client.GuiTextureResource;
import net.mcft.copy.backpacks.client.gui.*;
import net.mcft.copy.backpacks.client.gui.control.*;
import net.mcft.copy.backpacks.client.gui.control.GuiButtonIcon.Icon;

					setText(element.isVisible() ? "yes" : "no");
				}); }});
				addFixed(new GuiLabel(" Enabled: ") {{ setCenteredVertical(); }});
				addWeighted(new GuiButton("yes") {{ setAction(() -> {
					element.setEnabled(!element.isEnabled());
					setText(element.isEnabled() ? "yes" : "no");
				}); }});
			}});
			layout.addFixed(element);
		}
	}
	
	public class ControlsScreen extends GuiContainerScreen {
		public ControlsScreen() {
			container.add(new GuiLayout(Direction.VERTICAL) {{
				setCenteredHorizontal();
				setFillVertical(8);
				
				addFixed(new GuiSlider(Direction.HORIZONTAL) {{
					setFillHorizontal();
					setRange(0, 10);
					setStepSize(1);
				}});
				
				addFixed(new GuiField() {{ setFillHorizontal(); }});
				
				addFixed(new GuiScrollable() {{
					setFillHorizontal();
					setHeight(100);
					setPadding(8);
					Icon icon = new Icon(new GuiTextureResource("config_icons", 64, 64), 36, 0, 8, 16);