Advertisement
Guest User

Untitled

a guest
May 30th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. package me.tigreax.nova.management;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.Rectangle;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import java.util.concurrent.atomic.AtomicBoolean;
  8. import me.tigreax.nova.Nova;
  9. import me.tigreax.nova.module.mods.Mod;
  10. import me.tigreax.nova.module.mods.ModCategory;
  11. import me.tigreax.nova.module.mods.ModManager;
  12. import net.minecraft.client.Minecraft;
  13. import net.minecraft.client.settings.GameSettings;
  14. import org.darkstorm.minecraft.gui.AbstractGuiManager;
  15. import org.darkstorm.minecraft.gui.component.Button;
  16. import org.darkstorm.minecraft.gui.component.Component;
  17. import org.darkstorm.minecraft.gui.component.Frame;
  18. import org.darkstorm.minecraft.gui.component.basic.BasicButton;
  19. import org.darkstorm.minecraft.gui.component.basic.BasicFrame;
  20. import org.darkstorm.minecraft.gui.layout.Constraint;
  21. import org.darkstorm.minecraft.gui.layout.GridLayoutManager;
  22. import org.darkstorm.minecraft.gui.layout.GridLayoutManager.HorizontalGridConstraint;
  23. import org.darkstorm.minecraft.gui.listener.ButtonListener;
  24. import org.darkstorm.minecraft.gui.theme.ComponentUI;
  25. import org.darkstorm.minecraft.gui.theme.Theme;
  26.  
  27. public final class GuiManager extends AbstractGuiManager
  28. {
  29. private final AtomicBoolean setup;
  30.  
  31. public GuiManager()
  32. {
  33. this.setup = new AtomicBoolean();
  34. }
  35.  
  36. public void setup()
  37. {
  38. if (!this.setup.compareAndSet(false, true)) {
  39. return;
  40. }
  41. Map categoryFrames = new HashMap();
  42. Nova.getInstance();
  43. for (final Mod module : Nova.getModManager().getMods()) {
  44. if (!module.isCategory(ModCategory.GUI))
  45. {
  46. ModuleFrame frame = (ModuleFrame)categoryFrames.get(module.getCategory());
  47. if (frame == null)
  48. {
  49. String name = module.getCategory().toString().toLowerCase();
  50. name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
  51. frame = new ModuleFrame(name, null);
  52. frame.setTheme(getTheme());
  53. frame.setLayoutManager(new GridLayoutManager(1, 0));
  54. frame.setVisible(true);
  55. frame.setClosable(false);
  56. frame.setMinimized(true);
  57. addFrame(frame);
  58. categoryFrames.put(module.getCategory(), frame);
  59. }
  60. final Mod updateModule = module;
  61. Button button = new BasicButton(
  62. module.getActualName())
  63. {
  64. public void update()
  65. {
  66. setText(
  67. module.getActualName());
  68. }
  69. };
  70. button.addButtonListener(new ButtonListener()
  71. {
  72. public void onButtonPress(Button button)
  73. {
  74. updateModule.toggle();
  75. button.setText(
  76. module.getActualName());
  77. }
  78. });
  79. frame.add(button, new Constraint[] { GridLayoutManager.HorizontalGridConstraint.FILL });
  80. }
  81. }
  82. resizeComponents();
  83. Minecraft minecraft = Minecraft.getMinecraft();
  84. Dimension maxSize = recalculateSizes();
  85. int offsetX = 5; int offsetY = 5;
  86. int scale = minecraft.gameSettings.guiScale;
  87. if (scale == 0) {
  88. scale = 1000;
  89. }
  90. int scaleFactor = 0;
  91. while ((scaleFactor < scale) && (minecraft.displayWidth / (scaleFactor + 1) >= 320) && (minecraft.displayHeight / (scaleFactor + 1) >= 240))
  92. scaleFactor++;
  93. Frame[] arrayOfFrame;
  94. int j = (arrayOfFrame = getFrames()).length;
  95. for (int i = 0; i < j; i++)
  96. {
  97. Frame frame = arrayOfFrame[i];
  98. frame.setX(offsetX);
  99. frame.setY(offsetY);
  100. offsetX += maxSize.width + 5;
  101. if (offsetX + maxSize.width + 5 > minecraft.displayWidth / scaleFactor)
  102. {
  103. offsetX = 5;
  104. offsetY += maxSize.height + 5;
  105. }
  106. }
  107. }
  108.  
  109. protected void resizeComponents()
  110. {
  111. Theme theme = getTheme();
  112. Frame[] frames = getFrames();
  113. Button enable = new BasicButton("Enable");
  114. Button disable = new BasicButton("Disable");
  115. Dimension enableSize = theme.getUIForComponent(enable).getDefaultSize(enable);
  116. Dimension disableSize = theme.getUIForComponent(disable).getDefaultSize(disable);
  117. int buttonWidth = Math.max(enableSize.width, disableSize.width);
  118. int buttonHeight = Math.max(enableSize.height, disableSize.height);
  119. Frame[] arrayOfFrame1;
  120. int j = (arrayOfFrame1 = frames).length;
  121. for (int i = 0; i < j; i++)
  122. {
  123. Frame frame = arrayOfFrame1[i];
  124. if ((frame instanceof ModuleFrame))
  125. {
  126. Component[] arrayOfComponent;
  127. int m = (arrayOfComponent = frame.getChildren()).length;
  128. for (int k = 0; k < m; k++)
  129. {
  130. Component component = arrayOfComponent[k];
  131. if ((component instanceof Button))
  132. {
  133. component.setWidth(buttonWidth);
  134. component.setHeight(buttonHeight);
  135. }
  136. }
  137. }
  138. }
  139. recalculateSizes();
  140. }
  141.  
  142. private Dimension recalculateSizes()
  143. {
  144. Frame[] frames = getFrames();
  145. int maxWidth = 0; int maxHeight = 0;
  146. Frame[] arrayOfFrame1;
  147. int j = (arrayOfFrame1 = frames).length;
  148. for (int i = 0; i < j; i++)
  149. {
  150. Frame frame = arrayOfFrame1[i];
  151. Dimension defaultDimension = frame.getTheme().getUIForComponent(frame).getDefaultSize(frame);
  152. maxWidth = Math.max(maxWidth, defaultDimension.width);
  153. frame.setHeight(defaultDimension.height);
  154. if (frame.isMinimized())
  155. {
  156. Rectangle[] arrayOfRectangle;
  157. int m = (arrayOfRectangle = frame.getTheme().getUIForComponent(frame).getInteractableRegions(frame)).length;
  158. for (int k = 0; k < m; k++)
  159. {
  160. Rectangle area = arrayOfRectangle[k];
  161. maxHeight = Math.max(maxHeight, area.height);
  162. }
  163. }
  164. else
  165. {
  166. maxHeight = Math.max(maxHeight, defaultDimension.height);
  167. }
  168. }
  169. j = (arrayOfFrame1 = frames).length;
  170. for (int i = 0; i < j; i++)
  171. {
  172. Frame frame = arrayOfFrame1[i];
  173. frame.setWidth(maxWidth);
  174. frame.layoutChildren();
  175. }
  176. return new Dimension(maxWidth, maxHeight);
  177. }
  178.  
  179. private class ModuleFrame extends BasicFrame
  180. {
  181. private ModuleFrame()
  182. {
  183. }
  184.  
  185. private ModuleFrame(String title)
  186. {
  187. }
  188. }
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement