Guest User

Untitled

a guest
Oct 17th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.00 KB | None | 0 0
  1. package server.world;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import server.model.objects.Object;
  6. import server.util.Misc;
  7. import server.model.players.Client;
  8. import server.Server;
  9.  
  10. /**
  11. * @author Sanity
  12. */
  13.  
  14. public class ObjectManager {
  15.  
  16. public ArrayList<Object> objects = new ArrayList<Object>();
  17. private ArrayList<Object> toRemove = new ArrayList<Object>();
  18. public void process() {
  19. for (Object o : objects) {
  20. if (o.tick > 0)
  21. o.tick--;
  22. else {
  23. updateObject(o);
  24. toRemove.add(o);
  25. }
  26. }
  27. for (Object o : toRemove) {
  28. if (isObelisk(o.newId)) {
  29. int index = getObeliskIndex(o.newId);
  30. if (activated[index]) {
  31. activated[index] = false;
  32. teleportObelisk(index);
  33. }
  34. }
  35. objects.remove(o);
  36. }
  37. toRemove.clear();
  38. }
  39.  
  40. public void removeObject(int x, int y) {
  41. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  42. if (Server.playerHandler.players[j] != null) {
  43. Client c = (Client)Server.playerHandler.players[j];
  44. c.getPA().object(-1, x, y, 0, 10);
  45. }
  46. }
  47. }
  48.  
  49. public void updateObject(Object o) {
  50. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  51. if (Server.playerHandler.players[j] != null) {
  52. Client c = (Client)Server.playerHandler.players[j];
  53. c.getPA().object(o.newId, o.objectX, o.objectY, o.face, o.type);
  54. }
  55. }
  56. }
  57.  
  58. public void placeObject(Object o) {
  59. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  60. if (Server.playerHandler.players[j] != null) {
  61. Client c = (Client)Server.playerHandler.players[j];
  62. if (c.distanceToPoint(o.objectX, o.objectY) <= 60)
  63. c.getPA().object(o.objectId, o.objectX, o.objectY, o.face, o.type);
  64. }
  65. }
  66. }
  67.  
  68. public Object getObject(int x, int y, int height) {
  69. for (Object o : objects) {
  70. if (o.objectX == x && o.objectY == y && o.height == height)
  71. return o;
  72. }
  73. return null;
  74. }
  75.  
  76. public void loadObjects(Client c) {
  77. if (c == null)
  78. return;
  79. for (Object o : objects) {
  80. if (loadForPlayer(o,c))
  81. c.getPA().object(o.objectId, o.objectX, o.objectY, o.face, o.type);
  82. }
  83. loadCustomSpawns(c);
  84. if (c.distanceToPoint(2813, 3463) <= 60) {
  85. c.getFarming().updateHerbPatch();
  86. }
  87. }
  88.  
  89. private int[][] customObjects = {{}};
  90. public void loadCustomSpawns(Client c) {
  91. c.getPA().checkObjectSpawn(412, 3090, 3507, 1, 10); // spec altar
  92. c.getPA().checkObjectSpawn(4151, 2605, 3153, 1, 10); //portal home FunPk
  93. c.getPA().checkObjectSpawn(2619, 2602, 3156, 1, 10); //barrel FunPk
  94. c.getPA().checkObjectSpawn(1032, 2605, 3156, 2, 10); //warning sign FunPk
  95. c.getPA().checkObjectSpawn(1032, 2603, 3156, 2, 10); //warning sign FunPk
  96. c.getPA().checkObjectSpawn(1032, 2602, 3155, 1, 10); //warning sign FunPk
  97. c.getPA().checkObjectSpawn(1032, 2602, 3153, 1, 10); //warning sign FunPk
  98. c.getPA().checkObjectSpawn(-1, 3077, 3495, 1, 10);
  99. c.getPA().checkObjectSpawn(-1, 3077, 3496, 1, 10);
  100. c.getPA().checkObjectSpawn(-1, 3079, 3501, 1, 10);
  101. c.getPA().checkObjectSpawn(-1, 3080, 3501, 1, 10);
  102. c.getPA().checkObjectSpawn(1, 2599, 4777, 1, 10);
  103. c.getPA().checkObjectSpawn(1, 2599, 4780, 1, 10);
  104. c.getPA().checkObjectSpawn(1, 2598, 4780, 1, 10);
  105. c.getPA().checkObjectSpawn(1, 2597, 4780, 1, 10);
  106. c.getPA().checkObjectSpawn(1, 2597, 4779, 1, 10);
  107. c.getPA().checkObjectSpawn(1, 2597, 4778, 1, 10);
  108. c.getPA().checkObjectSpawn(1, 2597, 4777, 1, 10);
  109. c.getPA().checkObjectSpawn(1, 2598, 4777, 1, 10);
  110. c.getPA().checkObjectSpawn(2286, 2598, 4778, 1, 10);
  111. c.getPA().checkObjectSpawn(12356, 3094, 3487, 1, 10);
  112. c.getPA().checkObjectSpawn(2403, 3095, 3487, 2, 10);
  113. c.getPA().checkObjectSpawn(2996, 3083, 3493, 1, 10);//al key chest
  114.  
  115. c.getPA().checkObjectSpawn(14859, 2839, 3439, 0, 10);//runite ore skilling.
  116.  
  117. c.getPA().checkObjectSpawn(13617, 2044, 4521, 1, 10); //Barrelportal donor
  118.  
  119. c.getPA().checkObjectSpawn(411, 3093, 3506, 2, 10); // Curse Prayers
  120.  
  121. c.getPA().checkObjectSpawn(13615, 2036, 4518, 0, 10);
  122. c.getPA().checkObjectSpawn(13620, 2041, 4518, 0, 10);
  123. c.getPA().checkObjectSpawn(13619, 2031, 4518, 0, 10);
  124.  
  125. c.getPA().checkObjectSpawn(6163, 2029, 4527, 1, 10);
  126. c.getPA().checkObjectSpawn(6165, 2029, 4529, 1, 10);
  127. c.getPA().checkObjectSpawn(6166, 2029, 4531, 1, 10);
  128.  
  129. c.getPA().checkObjectSpawn(410, 3099, 3503, 0, 10);
  130.  
  131. c.getPA().checkObjectSpawn(4874, 3084, 3483, 1, 10);
  132. c.getPA().checkObjectSpawn(4875, 3085, 3483, 1, 10);
  133. c.getPA().checkObjectSpawn(4876, 3086, 3483, 0, 10);
  134. c.getPA().checkObjectSpawn(4877, 3087, 3483, 0, 10);
  135. c.getPA().checkObjectSpawn(4878, 3088, 3483, 0, 10);
  136.  
  137. c.getPA().checkObjectSpawn(1596, 3008, 3850, 1, 0);
  138. c.getPA().checkObjectSpawn(1596, 3008, 3849, -1, 0);
  139. c.getPA().checkObjectSpawn(1596, 3040, 10307, -1, 0);
  140. c.getPA().checkObjectSpawn(1596, 3040, 10308, 1, 0);
  141. c.getPA().checkObjectSpawn(1596, 3022, 10311, -1, 0);
  142. c.getPA().checkObjectSpawn(1596, 3022, 10312, 1, 0);
  143. c.getPA().checkObjectSpawn(1596, 3044, 10341, -1, 0);
  144. c.getPA().checkObjectSpawn(1596, 3044, 10342, 1, 0);
  145. c.getPA().checkObjectSpawn(6552, 3097, 3506, 2, 10); //ancient prayers
  146. c.getPA().checkObjectSpawn(409, 3095, 3506, 2, 10);
  147. c.getPA().checkObjectSpawn(2213, 3047, 9779, 1, 10);
  148. c.getPA().checkObjectSpawn(2213, 3080, 9502, 1, 10);
  149. c.getPA().checkObjectSpawn(1530, 3093, 3487, 1, 10);
  150.  
  151. //X Y ID -> ID X Y
  152. c.getPA().checkObjectSpawn(2213, 2855, 3439, -1, 10);
  153. c.getPA().checkObjectSpawn(2090, 2839, 3440, -1, 10);
  154. c.getPA().checkObjectSpawn(2094, 2839, 3441, -1, 10);
  155. c.getPA().checkObjectSpawn(2092, 2839, 3442, -1, 10);
  156. c.getPA().checkObjectSpawn(2096, 2839, 3443, -1, 10);
  157. c.getPA().checkObjectSpawn(2102, 2839, 3444, -1, 10);
  158. c.getPA().checkObjectSpawn(2105, 2839, 3445, 0, 10);
  159. c.getPA().checkObjectSpawn(1276, 2843, 3442, 0, 10);
  160. c.getPA().checkObjectSpawn(1281, 2844, 3499, 0, 10);
  161. c.getPA().checkObjectSpawn(4156, 3083, 3440, 0, 10);
  162. c.getPA().checkObjectSpawn(1308, 2846, 3436, 0, 10);
  163. c.getPA().checkObjectSpawn(1309, 2846, 3439, -1, 10);
  164. c.getPA().checkObjectSpawn(1306, 2850, 3439, -1, 10);
  165. c.getPA().checkObjectSpawn(2783, 2841, 3436, 0, 10);
  166. c.getPA().checkObjectSpawn(2728, 2861, 3429, 0, 10);
  167. c.getPA().checkObjectSpawn(3044, 2857, 3427, -1, 10);
  168. c.getPA().checkObjectSpawn(320, 3048, 10342, 0, 10);
  169. c.getPA().checkObjectSpawn(104, 3083, 3492, 1, 10); //Donatorchest
  170. c.getPA().checkObjectSpawn(-1, 2844, 3440, -1, 10);
  171. c.getPA().checkObjectSpawn(-1, 2846, 3437, -1, 10);
  172. c.getPA().checkObjectSpawn(-1, 2840, 3439, -1, 10);
  173. c.getPA().checkObjectSpawn(-1, 2841, 3443, -1, 10);
  174. c.getPA().checkObjectSpawn(-1, 2851, 3438, -1, 10);
  175.  
  176. if (c.heightLevel == 0) {
  177. c.getPA().checkObjectSpawn(2492, 2911, 3614, 1, 10);
  178. }else{
  179. c.getPA().checkObjectSpawn(-1, 2911, 3614, 1, 10);
  180. }
  181. }
  182.  
  183. public final int IN_USE_ID = 14825;
  184. public boolean isObelisk(int id) {
  185. for (int j = 0; j < obeliskIds.length; j++) {
  186. if (obeliskIds[j] == id)
  187. return true;
  188. }
  189. return false;
  190. }
  191. public int[] obeliskIds = {14829,14830,14827,14828,14826,14831};
  192. public int[][] obeliskCoords = {{3154,3618},{3225,3665},{3033,3730},{3104,3792},{2978,3864},{3305,3914}};
  193. public boolean[] activated = {false,false,false,false,false,false};
  194.  
  195. public void startObelisk(int obeliskId) {
  196. int index = getObeliskIndex(obeliskId);
  197. if (index >= 0) {
  198. if (!activated[index]) {
  199. activated[index] = true;
  200. addObject(new Object(14825, obeliskCoords[index][0], obeliskCoords[index][1], 0, -1, 10, obeliskId,16));
  201. addObject(new Object(14825, obeliskCoords[index][0] + 4, obeliskCoords[index][1], 0, -1, 10, obeliskId,16));
  202. addObject(new Object(14825, obeliskCoords[index][0], obeliskCoords[index][1] + 4, 0, -1, 10, obeliskId,16));
  203. addObject(new Object(14825, obeliskCoords[index][0] + 4, obeliskCoords[index][1] + 4, 0, -1, 10, obeliskId,16));
  204. }
  205. }
  206. }
  207.  
  208. public int getObeliskIndex(int id) {
  209. for (int j = 0; j < obeliskIds.length; j++) {
  210. if (obeliskIds[j] == id)
  211. return j;
  212. }
  213. return -1;
  214. }
  215.  
  216. public void teleportObelisk(int port) {
  217. int random = Misc.random(5);
  218. while (random == port) {
  219. random = Misc.random(5);
  220. }
  221. for (int j = 0; j < Server.playerHandler.players.length; j++) {
  222. if (Server.playerHandler.players[j] != null) {
  223. Client c = (Client)Server.playerHandler.players[j];
  224. int xOffset = c.absX - obeliskCoords[port][0];
  225. int yOffset = c.absY - obeliskCoords[port][1];
  226. if (c.goodDistance(c.getX(), c.getY(), obeliskCoords[port][0] + 2, obeliskCoords[port][1] + 2, 1)) {
  227. c.getPA().startTeleport2(obeliskCoords[random][0] + xOffset, obeliskCoords[random][1] + yOffset, 0);
  228. }
  229. }
  230. }
  231. }
  232.  
  233. public boolean loadForPlayer(Object o, Client c) {
  234. if (o == null || c == null)
  235. return false;
  236. return c.distanceToPoint(o.objectX, o.objectY) <= 60 && c.heightLevel == o.height;
  237. }
  238.  
  239. public void addObject(Object o) {
  240. if (getObject(o.objectX, o.objectY, o.height) == null) {
  241. objects.add(o);
  242. placeObject(o);
  243. }
  244. }
  245.  
  246.  
  247.  
  248.  
  249. }
Add Comment
Please, Sign In to add comment