Advertisement
Guest User

Untitled

a guest
Feb 7th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.20 KB | None | 0 0
  1. kkpackage com.battleos;
  2.  
  3. import java.awt.Toolkit;
  4. import java.awt.event.KeyEvent;
  5.  
  6. /**
  7. * Handles all the login screen components.
  8. *
  9. * @author Daniel
  10. *
  11. */
  12. public class LoginRenderer {
  13.  
  14. /**
  15. * Client instance.
  16. */
  17. private final Client client;
  18.  
  19. /**
  20. * The current state of login screen.
  21. */
  22. private int state;
  23.  
  24. /**
  25. * The current state of login screen.
  26. */
  27. private int world;
  28.  
  29. /**
  30. * Login Renderer Constructor.
  31. *
  32. * @param client
  33. */
  34. public LoginRenderer(Client client) {
  35. this.client = client;
  36. client.loginMessage1 = "Welcome to Battle-OS!";
  37. client.loginMessage2 = "Please enter your username and password.";
  38. setState(0);
  39. setWorld(0);
  40. }
  41.  
  42. /**
  43. * Draws the login elements to the screen.
  44. */
  45. public void display() {
  46.  
  47. if (Client.loginScreenIP == null) {
  48. // creates the image producer if it doesn't exist to avoid null
  49. // pointers.
  50. Client.loginScreenIP = new ImageProducer(765, 503);
  51. // clears the image
  52. Raster.reset();
  53. }
  54.  
  55. int centerX = Client.frameWidth / 2, centerY = Client.frameHeight / 2;
  56. client.refreshFrameSize();
  57.  
  58. // Displays Images
  59. displayImage();
  60.  
  61. // Main screen
  62. if (getState() == 0) {
  63. Client.cacheSprite[57].drawARGBSprite((Client.frameWidth / 2) - (Client.cacheSprite[57].width / 2) + 191, (Client.frameHeight / 2) - (Client.cacheSprite[57].height / 2));
  64.  
  65. // Capes Lock
  66. if (Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
  67. client.newBoldFont.drawRAString("Caps lock enabled!", 345 + 290, 330 - 50, 0xE3BA14, 10);
  68. }
  69.  
  70. // Display Accounts
  71. displayAccounts();
  72.  
  73. // Login Messges
  74. if (client.loginMessage2.length() == 0) {
  75. client.smallFont.method382(0xB0AFAB, centerX + 190, client.loginMessage1, centerY + 60, true);
  76. } else {
  77. client.smallFont.method382(0xB0AFAB, centerX + 190, client.loginMessage1, centerY + 50, true);
  78. client.smallFont.method382(0xB0AFAB, centerX + 190, client.loginMessage2, centerY + 65, true);
  79. }
  80.  
  81. // Main Texts
  82. client.newBoldFont.drawRAString("Username:", 530, 100, 0xFFFFFF, 10);
  83. client.newBoldFont.drawRAString("Password:", 530, 185, 0xFFFFFF, 10);
  84. client.newBoldFont.drawRAString("Accounts:", 530, 395, 0xFFFFFF, 10);
  85.  
  86. // Username
  87. client.regularText.method389(true, centerX + 80, 0xFFFFFF, Utility.formatName(client.myUsername) + ((client.loginScreenCursorPos == 0) & (Client.tick % 40 < 20) ? "|" : ""), centerY - 105);
  88.  
  89. // Password
  90. client.regularText.method389(true, centerX + 80, 0xFFFFFF, StringUtils.passwordAsterisks(client.myPassword) + ((client.loginScreenCursorPos == 1) & (Client.tick % 40 < 20) ? "|" : ""), centerY - 27);
  91.  
  92. // Login Hover
  93. if (client.mouseInRegion(centerX + 68, centerY + 76, centerX + 307, centerY + 113)) {
  94. Client.cacheSprite[179].drawSprite(451, 331, 46);
  95. }
  96.  
  97. // Username Hover
  98. if (client.mouseInRegion(centerX + 75, centerY - 133, centerX + 305, centerY - 101)) {
  99. Client.cacheSprite[183].drawSprite(458, 150, 46);
  100. }
  101.  
  102. // Password Hover
  103. if (client.mouseInRegion(centerX + 74, centerY - 60, centerX + 305, centerY - 27)) {
  104. Client.cacheSprite[191].drawSprite(457, 225, 46);
  105. }
  106.  
  107. // Remember Me
  108. client.regularText.method382(0xFFFFFF, centerX + 175, "Remember credentials", centerY + 8, true);
  109. if (!Configuration.REMEMBER_ME) {
  110. if (client.mouseInRegion(centerX + 77, centerY - 4, centerX + 107, centerY + 7)) {
  111. Client.cacheSprite[188].drawSprite(458, 247, 46);
  112. } else {
  113. Client.cacheSprite[187].drawSprite(458, 247, 46);
  114. }
  115. } else {
  116. if (client.mouseInRegion(centerX + 77, centerY - 4, centerX + 107, centerY + 7)) {
  117. Client.cacheSprite[190].drawSprite(458, 247, 46);
  118. } else {
  119. Client.cacheSprite[189].drawSprite(458, 247, 46);
  120. }
  121. }
  122.  
  123. // World
  124. client.smallFont.method382(0xFFFFFF, 722, "World Options:", 481, true);
  125. client.smallFont.method382(0xFFFFFF, 722, getWorld() == 0 ? "Main" : "Development", 493, true);
  126.  
  127. if (client.mouseInRegion(centerX + 303, centerY + 212, centerX + 377, centerY + 245)) {
  128. Raster.drawAlphaPixels(685, 463, 75, 35, 0xAFC3C9, 50, true);
  129. } else {
  130. Raster.drawAlphaPixels(685, 463, 75, 35, 0xFFFFFF, 50, true);
  131. }
  132.  
  133. } else {
  134. // World Selection
  135. Client.cacheSprite[178].drawARGBSprite((Client.frameWidth / 2) - (Client.cacheSprite[178].width / 2) + 191, (Client.frameHeight / 2) - (Client.cacheSprite[178].height / 2));
  136.  
  137. // Back
  138. if (client.mouseInRegion(centerX + 70, centerY + 91, centerX + 305, centerY + 125)) {
  139. Client.cacheSprite[180].drawSprite(451, 340, 46);
  140.  
  141. }
  142.  
  143. // Economy
  144. if (client.mouseInRegion(centerX + 74, centerY - 128, centerX + 307, centerY - 56)) {
  145. Client.cacheSprite[181].drawSprite(456, 124, 46);
  146. }
  147.  
  148. // Development
  149. if (client.mouseInRegion(centerX + 74, centerY - 55, centerX + 307, centerY - 8)) {
  150. Client.cacheSprite[182].drawSprite(456, 195, 46);
  151. }
  152.  
  153. }
  154.  
  155. // Client Version
  156. client.smallFont.method382(0xFFFFFF, centerX + 335, "Version: " + Configuration.CACHE_VERSION, centerY - 230, true);
  157.  
  158. // Debug Message
  159. if (Configuration.DEBUG_MODE) {
  160. client.newSmallFont.drawBasicString("Debug Mode:", 10, 20);
  161. client.newSmallFont.drawBasicString("MouseX: " + (client.mouseX - (Client.frameWidth / 2)) + " Mouse Y: " + (client.mouseY - (Client.frameHeight / 2)), 10, 35);
  162. }
  163.  
  164. // Draws the screen
  165. Client.loginScreenIP.drawGraphics(client.graphics, 0, 0);
  166. Raster.reset();
  167. }
  168.  
  169. /**
  170. * Handles clicking in the loginscreen.
  171. */
  172. public void click() {
  173. int centerX = Client.frameWidth / 2, centerY = Client.frameHeight / 2;
  174.  
  175. // Main screen
  176. if (getState() == 0) {
  177.  
  178. // Remember Credentials
  179. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 77, centerY - 4, centerX + 107, centerY + 7)) {
  180. Configuration.REMEMBER_ME = !Configuration.REMEMBER_ME;
  181. }
  182.  
  183. // World
  184. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 303, centerY + 212, centerX + 377, centerY + 245)) {
  185. setState(1);
  186. }
  187.  
  188. // Username
  189. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 75, centerY - 133, centerX + 305, centerY - 101)) {// User
  190. client.loginScreenCursorPos = 0;
  191. }
  192.  
  193. // Password
  194. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 74, centerY - 60, centerX + 305, centerY - 27)) {
  195. client.loginScreenCursorPos = 1;
  196. }
  197.  
  198. // Accounts
  199. int yPos = centerY + 165;
  200. if (AccountManager.accounts != null) {
  201. for (int index = 0; index < AccountManager.getAccounts().size(); index++, yPos += 30) {
  202. AccountData accountData = AccountManager.getAccounts().get(index);
  203. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 71, yPos, centerX + 244, yPos + 20)) {
  204. if (accountData.username.length() > 0 && accountData.password.length() > 0) {
  205. if (client.myUsername != accountData.username || client.myPassword != accountData.password) {
  206. client.myUsername = accountData.username;
  207. client.myPassword = accountData.password;
  208. }
  209. client.login(accountData.username, accountData.password, false);
  210. if (Client.loggedIn) {
  211. return;
  212. }
  213. }
  214. }
  215. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 245, yPos, centerX + 300, yPos + 20)) {
  216. AccountManager.removeAccount(accountData);
  217. }
  218. }
  219. }
  220.  
  221. // Login
  222. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 68, centerY + 76, centerX + 307, centerY + 113)) {
  223. client.login(client.myUsername, client.myPassword, false);
  224. if (Client.loggedIn) {
  225. return;
  226. }
  227. }
  228. do {
  229. int line = client.readChar(-796);
  230. if (line == -1) {
  231. break;
  232. }
  233. boolean flag1 = false;
  234. for (int i2 = 0; i2 < Client.validUserPassChars.length(); i2++) {
  235. if (line != Client.validUserPassChars.charAt(i2)) {
  236. continue;
  237. }
  238. flag1 = true;
  239. break;
  240. }
  241. if (client.loginScreenCursorPos == 0) {
  242. if (line == 8 && client.myUsername.length() > 0) {
  243. client.myUsername = client.myUsername.substring(0, client.myUsername.length() - 1);
  244. }
  245. if (line == 9 || line == 10 || line == 13) {
  246. client.loginScreenCursorPos = 1;
  247. }
  248. if (flag1) {
  249. client.myUsername += (char) line;
  250. }
  251. if (client.myUsername.length() > 12) {
  252. client.myUsername = client.myUsername.substring(0, 12);
  253. }
  254. } else if (client.loginScreenCursorPos == 1) {
  255. if (line == 8 && client.myPassword.length() > 0) {
  256. client.myPassword = client.myPassword.substring(0, client.myPassword.length() - 1);
  257. }
  258. if (line == 9 || line == 10 || line == 13) {
  259. client.login(client.myUsername, client.myPassword, false);
  260. }
  261. if (flag1) {
  262. client.myPassword += (char) line;
  263. }
  264. if (client.myPassword.length() > 20) {
  265. client.myPassword = client.myPassword.substring(0, 20);
  266. }
  267. }
  268. } while (true);
  269. return;
  270.  
  271. } else {
  272. // World Selection
  273.  
  274. // Back
  275. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 70, centerY + 91, centerX + 305, centerY + 125)) {
  276. setState(0);
  277. }
  278.  
  279. // Economy
  280. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 74, centerY - 128, centerX + 307, centerY - 56)) {
  281. Client.server = Configuration.SERVER_IP;
  282. setWorld(0);
  283. setState(0);
  284. }
  285.  
  286. // Development
  287. if (client.lastMetaModifier == 1 && client.mouseInRegion(centerX + 74, centerY - 55, centerX + 307, centerY - 8)) {
  288. Client.server = "127.0.0.1";
  289. setWorld(1);
  290. setState(0);
  291. }
  292.  
  293. }
  294.  
  295. }
  296.  
  297. /**
  298. * Displays all player's accounts.
  299. */
  300. private void displayAccounts() {
  301. final int centerX = Client.frameWidth / 2, centerY = Client.frameHeight / 2;
  302. int yPos = centerY + 165;
  303. if (AccountManager.accounts != null) {
  304. for (int index = 0; index < 3; index++, yPos += 30) {
  305. if (index >= AccountManager.getAccounts().size()) {
  306. break;
  307. }
  308. Client.cacheSprite[184].drawARGBSprite(centerX + 70, yPos);
  309. if (client.mouseInRegion(centerX + 71, yPos, centerX + 244, yPos + 20)) {
  310. Client.cacheSprite[185].drawSprite(centerX + 70, yPos);
  311. }
  312. if (client.mouseInRegion(centerX + 245, yPos, centerX + 300, yPos + 20)) {
  313. Client.cacheSprite[186].drawSprite(centerX + 70, yPos);
  314. }
  315. AccountData accountData = AccountManager.getAccounts().get(index);
  316. if (accountData != null) {
  317. int rights = accountData.rank - 1;
  318. client.newSmallFont.drawCenteredString((rights != -1 ? "<img=" + rights + "> " : "") + Utility.formatName(accountData.username), centerX + 158, yPos + 16, 0xFFFFFF, 0);
  319. client.smallFont.method382(0xF01313, centerX + 272, "Delete", yPos + 16, true);
  320.  
  321. }
  322. }
  323. }
  324. }
  325.  
  326. /**
  327. * Ticks for sliding images
  328. */
  329. private int ticks = 0;
  330.  
  331. /**
  332. * Idle time for sliding images.
  333. */
  334. private int idle = 0;
  335.  
  336. /**
  337. * Scroll for sliding images.
  338. */
  339. private double scroll = 0;
  340.  
  341. /**
  342. * Display sliding images.
  343. */
  344. private void displayImage() {
  345.  
  346. int time = 150;
  347.  
  348. Sprite sprite;
  349. Sprite sprite2;
  350.  
  351. if (ticks == 0) {
  352. sprite = Client.cacheSprite[58];
  353. sprite2 = Client.cacheSprite[59];
  354. } else if (ticks == 1) {
  355. sprite = Client.cacheSprite[59];
  356. sprite2 = Client.cacheSprite[60];
  357. } else if (ticks == 2) {
  358. sprite = Client.cacheSprite[60];
  359. sprite2 = Client.cacheSprite[61];
  360. } else if (ticks == 3) {
  361. sprite = Client.cacheSprite[61];
  362. sprite2 = Client.cacheSprite[58];
  363. } else {
  364. sprite = Client.cacheSprite[58];
  365. sprite2 = Client.cacheSprite[59];
  366. ticks = 0;
  367. }
  368.  
  369. sprite2.drawARGBSprite((Client.frameWidth / 2) - (int) scroll, (Client.frameHeight / 2) - (sprite2.height / 2));
  370. sprite.drawARGBSprite((Client.frameWidth / 2) - (sprite.width / 2) - 191 - (int) scroll, (Client.frameHeight / 2) - (sprite.height / 2));
  371.  
  372. if (idle++ >= time) {
  373. scroll += 10;
  374. }
  375.  
  376. if (scroll > 0) {
  377. if (scroll >= 382) {
  378. scroll = 0;
  379. idle = 0;
  380. ticks++;
  381. }
  382. }
  383. }
  384.  
  385. /** Setters & Getters */
  386.  
  387. public int getState() {
  388. return state;
  389. }
  390.  
  391. public void setState(int state) {
  392. this.state = state;
  393. }
  394.  
  395. public int getWorld() {
  396. return world;
  397. }
  398.  
  399. public void setWorld(int world) {
  400. this.world = world;
  401. }
  402.  
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement