Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.tigreax.nova.management;
- import java.awt.Dimension;
- import java.awt.Rectangle;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.concurrent.atomic.AtomicBoolean;
- import me.tigreax.nova.Nova;
- import me.tigreax.nova.module.mods.Mod;
- import me.tigreax.nova.module.mods.ModCategory;
- import me.tigreax.nova.module.mods.ModManager;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.settings.GameSettings;
- import org.darkstorm.minecraft.gui.AbstractGuiManager;
- import org.darkstorm.minecraft.gui.component.Button;
- import org.darkstorm.minecraft.gui.component.Component;
- import org.darkstorm.minecraft.gui.component.Frame;
- import org.darkstorm.minecraft.gui.component.basic.BasicButton;
- import org.darkstorm.minecraft.gui.component.basic.BasicFrame;
- import org.darkstorm.minecraft.gui.layout.Constraint;
- import org.darkstorm.minecraft.gui.layout.GridLayoutManager;
- import org.darkstorm.minecraft.gui.layout.GridLayoutManager.HorizontalGridConstraint;
- import org.darkstorm.minecraft.gui.listener.ButtonListener;
- import org.darkstorm.minecraft.gui.theme.ComponentUI;
- import org.darkstorm.minecraft.gui.theme.Theme;
- public final class GuiManager extends AbstractGuiManager
- {
- private final AtomicBoolean setup;
- public GuiManager()
- {
- this.setup = new AtomicBoolean();
- }
- public void setup()
- {
- if (!this.setup.compareAndSet(false, true)) {
- return;
- }
- Map categoryFrames = new HashMap();
- Nova.getInstance();
- for (final Mod module : Nova.getModManager().getMods()) {
- if (!module.isCategory(ModCategory.GUI))
- {
- ModuleFrame frame = (ModuleFrame)categoryFrames.get(module.getCategory());
- if (frame == null)
- {
- String name = module.getCategory().toString().toLowerCase();
- name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
- frame = new ModuleFrame(name, null);
- frame.setTheme(getTheme());
- frame.setLayoutManager(new GridLayoutManager(1, 0));
- frame.setVisible(true);
- frame.setClosable(false);
- frame.setMinimized(true);
- addFrame(frame);
- categoryFrames.put(module.getCategory(), frame);
- }
- final Mod updateModule = module;
- Button button = new BasicButton(
- module.getActualName())
- {
- public void update()
- {
- setText(
- module.getActualName());
- }
- };
- button.addButtonListener(new ButtonListener()
- {
- public void onButtonPress(Button button)
- {
- updateModule.toggle();
- button.setText(
- module.getActualName());
- }
- });
- frame.add(button, new Constraint[] { GridLayoutManager.HorizontalGridConstraint.FILL });
- }
- }
- resizeComponents();
- Minecraft minecraft = Minecraft.getMinecraft();
- Dimension maxSize = recalculateSizes();
- int offsetX = 5; int offsetY = 5;
- int scale = minecraft.gameSettings.guiScale;
- if (scale == 0) {
- scale = 1000;
- }
- int scaleFactor = 0;
- while ((scaleFactor < scale) && (minecraft.displayWidth / (scaleFactor + 1) >= 320) && (minecraft.displayHeight / (scaleFactor + 1) >= 240))
- scaleFactor++;
- Frame[] arrayOfFrame;
- int j = (arrayOfFrame = getFrames()).length;
- for (int i = 0; i < j; i++)
- {
- Frame frame = arrayOfFrame[i];
- frame.setX(offsetX);
- frame.setY(offsetY);
- offsetX += maxSize.width + 5;
- if (offsetX + maxSize.width + 5 > minecraft.displayWidth / scaleFactor)
- {
- offsetX = 5;
- offsetY += maxSize.height + 5;
- }
- }
- }
- protected void resizeComponents()
- {
- Theme theme = getTheme();
- Frame[] frames = getFrames();
- Button enable = new BasicButton("Enable");
- Button disable = new BasicButton("Disable");
- Dimension enableSize = theme.getUIForComponent(enable).getDefaultSize(enable);
- Dimension disableSize = theme.getUIForComponent(disable).getDefaultSize(disable);
- int buttonWidth = Math.max(enableSize.width, disableSize.width);
- int buttonHeight = Math.max(enableSize.height, disableSize.height);
- Frame[] arrayOfFrame1;
- int j = (arrayOfFrame1 = frames).length;
- for (int i = 0; i < j; i++)
- {
- Frame frame = arrayOfFrame1[i];
- if ((frame instanceof ModuleFrame))
- {
- Component[] arrayOfComponent;
- int m = (arrayOfComponent = frame.getChildren()).length;
- for (int k = 0; k < m; k++)
- {
- Component component = arrayOfComponent[k];
- if ((component instanceof Button))
- {
- component.setWidth(buttonWidth);
- component.setHeight(buttonHeight);
- }
- }
- }
- }
- recalculateSizes();
- }
- private Dimension recalculateSizes()
- {
- Frame[] frames = getFrames();
- int maxWidth = 0; int maxHeight = 0;
- Frame[] arrayOfFrame1;
- int j = (arrayOfFrame1 = frames).length;
- for (int i = 0; i < j; i++)
- {
- Frame frame = arrayOfFrame1[i];
- Dimension defaultDimension = frame.getTheme().getUIForComponent(frame).getDefaultSize(frame);
- maxWidth = Math.max(maxWidth, defaultDimension.width);
- frame.setHeight(defaultDimension.height);
- if (frame.isMinimized())
- {
- Rectangle[] arrayOfRectangle;
- int m = (arrayOfRectangle = frame.getTheme().getUIForComponent(frame).getInteractableRegions(frame)).length;
- for (int k = 0; k < m; k++)
- {
- Rectangle area = arrayOfRectangle[k];
- maxHeight = Math.max(maxHeight, area.height);
- }
- }
- else
- {
- maxHeight = Math.max(maxHeight, defaultDimension.height);
- }
- }
- j = (arrayOfFrame1 = frames).length;
- for (int i = 0; i < j; i++)
- {
- Frame frame = arrayOfFrame1[i];
- frame.setWidth(maxWidth);
- frame.layoutChildren();
- }
- return new Dimension(maxWidth, maxHeight);
- }
- private class ModuleFrame extends BasicFrame
- {
- private ModuleFrame()
- {
- }
- private ModuleFrame(String title)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement