Advertisement
Guest User

Untitled

a guest
Jun 17th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.80 KB | None | 0 0
  1. package com.resimulators.simukraft.client.gui;
  2.  
  3. import com.resimulators.simukraft.common.entity.entitysim.EntitySim;
  4. import com.resimulators.simukraft.common.tileentity.TileFarm;
  5. import com.resimulators.simukraft.network.HiringPacket;
  6. import com.resimulators.simukraft.network.PacketHandler;
  7. import com.resimulators.simukraft.network.UpdateJobIdPacket;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.client.gui.GuiButton;
  10. import net.minecraft.client.gui.GuiScreen;
  11. import net.minecraft.world.World;
  12. import net.minecraftforge.fml.client.config.GuiButtonExt;
  13. import java.awt.*;
  14. import java.io.IOException;
  15. import java.util.HashSet;
  16. import java.util.List;
  17. import java.util.Set;
  18. import java.util.UUID;
  19.  
  20. public class GuiHire extends GuiScreen {
  21. private String name;
  22. private Set<Integer> sim_id = new HashSet<>();
  23. private World world;
  24. private TileFarm tileEntity;
  25. private int mouseX;
  26. private int mouseY;
  27. private int buttonWidth = 140;
  28. private String status = "";
  29. private SimButton button;
  30. private GuiButton hire_button;
  31. private GuiButton cancel_button;
  32. private Set<UUID> sims = new HashSet<>();
  33. private String profession = "";
  34.  
  35. public GuiHire(TileFarm tileEntity){
  36. this.tileEntity = tileEntity;
  37. this.profession = tileEntity.getProfession();
  38. }
  39. public void add_sim(int id)
  40. {
  41. sim_id.add(id);
  42. }
  43. @Override
  44. public void drawScreen(int mouseX, int mouseY, float partialTicks) {
  45. drawDefaultBackground();
  46. if (!status.equals("hiring")) {
  47. drawString(mc.fontRenderer, profession, (width / 2)-fontRenderer.getStringWidth(profession)/2, height / 4 - 10, Color.WHITE.getRGB());
  48. }
  49. this.mouseX = mouseX;
  50. this.mouseY = mouseY;
  51. super.drawScreen(mouseX, mouseY, partialTicks);
  52.  
  53. }
  54. @Override
  55. public void updateScreen()
  56. {
  57. for (GuiButton button: buttonList)
  58. {
  59. if (button instanceof SimButton )
  60. {
  61. if (!status.equals("hiring"))
  62. {
  63. button.visible = false;
  64. button.enabled = false;
  65. }else
  66. {
  67. button.visible = true;
  68. button.enabled = true;
  69. if (((SimButton) button).clicked)
  70. {
  71. button.visible = false;
  72. button.enabled = false;
  73. }else
  74. {
  75. button.visible = true;
  76. button.enabled = true;
  77. }
  78. }
  79. }}}
  80.  
  81. @Override
  82. public void initGui() {
  83. buttonList.clear();
  84. buttonList.add(hire_button = new GuiButton(0,width/2 - buttonWidth/2,height-60,buttonWidth,20,"Hire"));
  85. buttonList.add(cancel_button = new GuiButton(1,width/2 - buttonWidth/2,height-30,buttonWidth,20,"Cancel"));
  86. if(status.equals("hiring"))
  87. {
  88. hire_button.enabled = false;
  89. hire_button.visible = false;
  90. cancel_button.enabled = false;
  91. cancel_button.visible = false;
  92. }
  93. int ypos = 30;
  94. int i = 0;
  95. int pos = 0;
  96. sims.clear();
  97. world = Minecraft.getMinecraft().world;
  98. int num = 0;
  99. List<String> names = tileEntity.getnames();
  100. for (int id: tileEntity.getSims())
  101. {
  102. int xpos = pos*100+20+pos*5;
  103.  
  104. if (xpos > width - 60)
  105. {
  106. pos = 0;
  107. xpos = pos*100+20;
  108. ypos += 25;
  109.  
  110. }
  111. System.out.print(id);
  112. EntitySim sim =(EntitySim) world.getEntityByID(id);
  113. sim_id.add(id);
  114. System.out.println(names);
  115. System.out.println(names.get(num));
  116. name = names.get(num);
  117. if (name == null){
  118. name = "Error";}
  119. buttonList.add(button = new SimButton(i,xpos,ypos,name,id));
  120. if (!status.equals("hiring"))
  121. {
  122. button.visible = false;
  123. button.enabled = false;
  124. }
  125. if(ypos > height-40)
  126. {
  127. button.enabled = false;
  128. button.visible = false;
  129. button.clicked = true;
  130. }
  131. i++;
  132. pos++;
  133. num++;
  134. }
  135.  
  136. super.initGui();
  137. }
  138.  
  139. @Override
  140. protected void actionPerformed(GuiButton button) throws IOException {
  141. switch (button.id){
  142. case 0:
  143. status = "hiring";
  144. button.visible = false;
  145. button.enabled = false;
  146. case 1:
  147.  
  148. }
  149. if (button instanceof SimButton)
  150. {
  151. ((SimButton) button).clicked = true;
  152. tileEntity.setHired(true);
  153. PacketHandler.INSTANCE.sendToServer(new HiringPacket(((SimButton) button).simid,tileEntity.getProfessionint()));
  154. System.out.println("Sending id packet");
  155. PacketHandler.INSTANCE.sendToServer(new UpdateJobIdPacket(((SimButton) button).simid,tileEntity.getPos().getX(),tileEntity.getPos().getY(),tileEntity.getPos().getZ()));
  156. mc.displayGuiScreen(null);
  157. }
  158.  
  159.  
  160. super.actionPerformed(button);
  161.  
  162.  
  163. }
  164.  
  165.  
  166. @Override
  167. public boolean doesGuiPauseGame() {
  168. return false;
  169. }
  170.  
  171. private class SimButton extends GuiButtonExt {
  172. boolean clicked = false;
  173. int simid;
  174. EntitySim sim;
  175. private SimButton(int id, int x, int y, String string, int sim_id ){
  176. super(id, x, y, 100, 20, string);
  177. simid = sim_id;
  178. sim = (EntitySim) world.getEntityByID(sim_id);
  179.  
  180.  
  181. }
  182. }
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement