Advertisement
Guest User

Untitled

a guest
Apr 9th, 2016
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.14 KB | None | 0 0
  1. public class PlayerInfoWindow {
  2. public static Texture backgroundTexture;
  3. public static final int STATE_INVENTORY = 1;
  4.  
  5. private final float width;
  6. private final float height;
  7.  
  8. private final float x;
  9. private final float y;
  10.  
  11. private Player player;
  12. private Stage stage;
  13. private Image background;
  14. private TextButton inventoryButton;
  15. private TextButton exitButton;
  16.  
  17. private Skin skin;
  18.  
  19. private float menuButtonWidth;
  20. private float menuButtonHeight;
  21. private float menuSpace;
  22.  
  23. private boolean hidden;
  24. private int state;
  25.  
  26. private InventoryDrawable inventoryDrawable;
  27. private ItemDrawable itemDrawable;
  28. private ButtonGroup buttonGroup;
  29.  
  30. public PlayerInfoWindow(Stage stage, Skin skin, Player player, float width, float height, float x, float y) {
  31. this.stage = stage;
  32. this.skin = skin;
  33. this.player = player;
  34.  
  35. this.width = width;
  36. this.height = height;
  37. this.x = x;
  38. this.y = y;
  39.  
  40. state = STATE_INVENTORY;
  41. hidden = true;
  42. menuButtonHeight = height / 8;
  43. menuButtonWidth = width / 6;
  44. menuSpace = 40.0f;
  45.  
  46. background = new Image(backgroundTexture);
  47. background.setSize(width, height);
  48. background.setPosition(x, y);
  49.  
  50. inventoryButton = new TextButton("ITEMS", skin);
  51.  
  52. inventoryButton.background(new TextureRegionDrawable(new TextureRegion(backgroundTexture)));
  53. inventoryButton.setSize(menuButtonWidth, menuButtonHeight);
  54. inventoryButton.setPosition(x + menuSpace, y + height - menuSpace - menuButtonHeight * 0 - menuButtonHeight);
  55.  
  56. exitButton = new TextButton("BACK", skin);
  57.  
  58. exitButton.background(new TextureRegionDrawable(new TextureRegion(backgroundTexture)));
  59. exitButton.setSize(menuButtonWidth, menuButtonHeight);
  60. exitButton.setPosition(x + menuSpace, y + height - menuSpace - menuButtonHeight * 1 - menuButtonHeight);
  61.  
  62.  
  63.  
  64. inventoryButton.addListener(new ClickListener() {
  65. @Override
  66. public void clicked(InputEvent event, float x, float y) {
  67. hide();
  68. show();
  69. state = STATE_INVENTORY;
  70. inventoryDrawable.create();
  71. buttonGroup.clear();
  72. for(int i = 0; i < inventoryDrawable.getButtons().size(); i++) {
  73. buttonGroup.add(inventoryDrawable.getButtons().get(i));
  74. }
  75.  
  76. inventoryDrawable.show();
  77. for(int i = 0; i < inventoryDrawable.getButtons().size(); i++) {
  78. ((TextButton)inventoryDrawable.getButtons().get(i)).addListener(new ClickListener() {
  79. @Override
  80. public void clicked(InputEvent event, float x, float y) {
  81. updateItemDrawable();
  82. }
  83. });
  84. }
  85. itemDrawable.show();
  86. }
  87. });
  88.  
  89. exitButton.addListener(new ClickListener() {
  90. @Override
  91. public void clicked(InputEvent event, float x, float y) {
  92. hide();
  93. }
  94. });
  95.  
  96. inventoryDrawable = new InventoryDrawable(player.inventory, stage, skin, x + menuButtonWidth + menuSpace + menuSpace, y + menuSpace, menuButtonWidth, height - menuSpace * 2);
  97. buttonGroup = new ButtonGroup();
  98.  
  99. for(int i = 0; i < inventoryDrawable.getButtons().size(); i++) {
  100. buttonGroup.add(inventoryDrawable.getButtons().get(i));
  101. }
  102.  
  103. buttonGroup.setMaxCheckCount(1);
  104. buttonGroup.setUncheckLast(true);
  105.  
  106. itemDrawable = new ItemDrawable(stage, skin, (Item)buttonGroup.getChecked().getUserObject(), x + menuButtonWidth * 2 + menuSpace *3, y + height - menuButtonHeight - menuSpace * 2, menuButtonWidth * 2, menuButtonHeight, menuButtonHeight, menuButtonHeight);
  107. updateItemDrawable();
  108. itemDrawable.hide();
  109. }
  110.  
  111. public void show() {
  112. hide();
  113. hidden = false;
  114. stage.addActor(background);
  115. stage.addActor(inventoryButton);
  116. stage.addActor(exitButton);
  117. }
  118.  
  119. public void hide() {
  120. hidden = true;
  121. stage.getActors().removeValue(background, true);
  122. stage.getActors().removeValue(inventoryButton, true);
  123. stage.getActors().removeValue(exitButton, true);
  124. inventoryDrawable.hide();
  125. itemDrawable.hide();
  126. }
  127.  
  128. public void update(float dt) {
  129. if(state == STATE_INVENTORY) {
  130. inventoryDrawable.setButtonsColor(new Color(1.0f, 1.0f, 1.0f, 1.0f));
  131. if(buttonGroup.getChecked() != null) {
  132. buttonGroup.getChecked().setColor(0.7f, 1.0f, 0.7f, 1.0f);
  133. for(int i = 0; i < buttonGroup.getButtons().size; i++) {
  134. if(((TextButton)buttonGroup.getButtons().get(i)).getUserObject() == player.getArmor()) ((TextButton)buttonGroup.getButtons().get(i)).setColor(1.0f, 0.7f, 0.7f, 1.0f);
  135. if(((TextButton)buttonGroup.getButtons().get(i)).getUserObject() == player.getWeapon()) ((TextButton)buttonGroup.getButtons().get(i)).setColor(1.0f, 0.7f, 0.7f, 1.0f);
  136. }
  137. }
  138. else {
  139. itemDrawable.hide();
  140. }
  141. }
  142. }
  143.  
  144. private void updateItemDrawable() {
  145. itemDrawable.hide();
  146. itemDrawable = new ItemDrawable(stage, skin, (Item)buttonGroup.getChecked().getUserObject(), x + menuButtonWidth * 2 + menuSpace *3, y + height - menuButtonHeight - menuSpace * 2, menuButtonWidth * 2, menuButtonHeight, menuButtonHeight, menuButtonHeight);
  147.  
  148. if(itemDrawable.getItem().getClass() == Armor.class) {
  149. if(player.getArmor() == itemDrawable.getItem()) {
  150. addCommandButton("Unequip");
  151. itemDrawable.getButtons().getLast().addListener(new ClickListener() {
  152. @Override
  153. public void clicked(InputEvent event, float x, float y) {
  154. player.equipArmor(null);
  155. }
  156. });
  157. }
  158. else {
  159. addCommandButton("Equip");
  160. itemDrawable.getButtons().getLast().addListener(new ClickListener() {
  161. @Override
  162. public void clicked(InputEvent event, float x, float y) {
  163. player.equipArmor((Armor)itemDrawable.getItem());
  164. }
  165. });
  166. }
  167. }
  168. else if(itemDrawable.getItem().getClass() == Weapon.class) {
  169. if(player.getWeapon() == itemDrawable.getItem()) {
  170. addCommandButton("Unequip");
  171. itemDrawable.getButtons().getLast().addListener(new ClickListener() {
  172. @Override
  173. public void clicked(InputEvent event, float x, float y) {
  174. player.equipWeapon(null);
  175. }
  176. });
  177. }
  178. else {
  179. addCommandButton("Equip");
  180. itemDrawable.getButtons().getLast().addListener(new ClickListener() {
  181. @Override
  182. public void clicked(InputEvent event, float x, float y) {
  183. player.equipWeapon((Weapon) itemDrawable.getItem());
  184. }
  185. });
  186. }
  187. }
  188. else if(itemDrawable.getItem().getClass() == Consumable.class) {
  189. addCommandButton("Use");
  190. itemDrawable.getButtons().getLast().addListener(new ClickListener() {
  191. @Override
  192. public void clicked(InputEvent event, float x, float y) {
  193. player.consume((Consumable) itemDrawable.getItem());
  194. inventoryDrawable.getInventory().removeItem(itemDrawable.getItem());
  195. inventoryDrawable.create();
  196. buttonGroup.clear();
  197. for(TextButton b : inventoryDrawable.getButtons()) {
  198. buttonGroup.add(b);
  199. }
  200. for(int i = 0; i < inventoryDrawable.getButtons().size(); i++) {
  201. ((TextButton)inventoryDrawable.getButtons().get(i)).addListener(new ClickListener() {
  202. @Override
  203. public void clicked(InputEvent event, float x, float y) {
  204. updateItemDrawable();
  205. }
  206. });
  207. }
  208. inventoryDrawable.show();
  209. updateItemDrawable();
  210. }
  211. });
  212. }
  213. itemDrawable.show();
  214. }
  215.  
  216. private void addCommandButton(String text) {
  217. itemDrawable.addCommandButton(text);
  218. itemDrawable.getButtons().getLast().addListener(new UpdateItemListener());
  219. }
  220.  
  221. public boolean isHidden() {
  222. return hidden;
  223. }
  224.  
  225. private class UpdateItemListener extends ClickListener {
  226. @Override
  227. public void clicked(InputEvent event, float x, float y) {
  228. updateItemDrawable();
  229. }
  230. }
  231. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement