Advertisement
Guest User

Untitled

a guest
May 26th, 2020
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.37 KB | None | 0 0
  1. public class PlayerData implements IPlayerData
  2. {
  3. public int[] bindedArtes = new int[9]; //binding of player artes. 0 is first click, 1 is second, etc. The value is the index of the arte in ArteHandler.
  4. public ArteHandler artes = new ArteHandler();
  5. protected int pArteCoolDown; //The duration of the cast. If chainCount is 0, it does nothing.
  6. //if chainCount is > 0 but currentpArte is -1, then it will tick to 6. If it does, then it resets the chainCount. Else, it counts till the end of the tick.
  7. public int currentCol; //Whether the selected arte is on left, middle, or right
  8. public int currentpArte;
  9. public float attackProgress;
  10. private boolean inBufferZone;
  11. public boolean activatepArte;
  12.  
  13. private final PlayerEntity player;
  14. private final EntityDataManager privateData;
  15.  
  16. private final static DataParameter<Float> MANA = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.FLOAT);
  17. private final static DataParameter<Float> REGEN = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.FLOAT);
  18. private final static DataParameter<Float> ACC = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.FLOAT);
  19.  
  20. private final static DataParameter<Integer>R0C0 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  21. private final static DataParameter<Integer>R1C0 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  22. private final static DataParameter<Integer>R2C0 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  23. private final static DataParameter<Integer>R0C1 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  24. private final static DataParameter<Integer>R1C1 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  25. private final static DataParameter<Integer>R2C1 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  26. private final static DataParameter<Integer>R0C2 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  27. private final static DataParameter<Integer>R1C2 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  28. private final static DataParameter<Integer>R2C2 = EntityDataManager.createKey(PlayerEntity.class, DataSerializers.VARINT);
  29.  
  30.  
  31.  
  32. public PlayerData()
  33. {
  34. this.player = null;
  35. this.manaRegenTime = 5.0F;
  36. this.regenTime = 0;
  37. this.privateData = null;
  38. this.regenRate = 1.0F;
  39. this.pArteCoolDown = 0;
  40. this.currentpArte = 0;
  41. this.currentCol = 0;
  42. this.attackProgress = 1.0F;
  43. this.activatepArte = false;
  44. this.inBufferZone = true;
  45. this.playermaxMana = 256;
  46. this.playerMana = playermaxMana;
  47.  
  48. bindedArtes[0] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  49. bindedArtes[1] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  50. bindedArtes[2] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  51. bindedArtes[3] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  52. bindedArtes[4] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  53. bindedArtes[5] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  54. bindedArtes[6] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  55. bindedArtes[7] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  56. bindedArtes[8] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  57. }
  58. public PlayerData(PlayerEntity player)
  59. {
  60. this.player = player;
  61. this.manaRegenTime = 5.0F;
  62. this.regenTime = 0;
  63. this.regenRate = 0.0F;
  64. this.pArteCoolDown = 0;
  65. this.currentpArte = 0;
  66. this.currentCol = 0;
  67. this.attackProgress = 1.0F;
  68. this.activatepArte = false;
  69. this.inBufferZone = true;
  70. this.playermaxMana = 256;
  71. this.playerMana = playermaxMana;
  72.  
  73. bindedArtes[0] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  74. bindedArtes[1] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  75. bindedArtes[2] = ArteHandler.ARTES.QUICK_SLASH.ordinal();
  76. bindedArtes[3] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  77. bindedArtes[4] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  78. bindedArtes[5] = ArteHandler.ARTES.SCATTERING_SLASH.ordinal();
  79. bindedArtes[6] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  80. bindedArtes[7] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  81. bindedArtes[8] = ArteHandler.ARTES.DEMON_FANG.ordinal();
  82.  
  83. privateData = player.getDataManager();
  84. privateData.register(MANA, 0.0F);
  85.  
  86. privateData.register(R0C0,0);
  87. privateData.register(R1C0,0);
  88. privateData.register(R2C0,0);
  89.  
  90. privateData.register(R0C1,0);
  91. privateData.register(R1C1,0);
  92. privateData.register(R2C1,0);
  93.  
  94. privateData.register(R0C2,0);
  95. privateData.register(R1C2,0);
  96. privateData.register(R2C2,0);
  97. }
  98. public void onJoinWorld()
  99. {
  100. setPlayerStats();
  101. if (this.player.world.isRemote)
  102. {
  103. Necropolis_of_Nostalgia.packetHandler.sendToServer(new PlayerSyncCapability());
  104. }
  105. }
  106. public void onTick()
  107. {
  108. if (this.player.world.isRemote)
  109. {
  110. //clientside player logic here
  111. }
  112. else
  113. {
  114. if (this.syncCount == 1200)
  115. {
  116. Necropolis_of_Nostalgia.packetHandler.sendTo(new SyncPlayerStats(this.playerMana, bindedArtes[0],bindedArtes[1],bindedArtes[2],bindedArtes[3],
  117. bindedArtes[4],bindedArtes[5],bindedArtes[6],bindedArtes[7],bindedArtes[8]),this.player);
  118. }
  119. else if (this.syncCount == 0)
  120. {
  121. this.syncCount = 1200;
  122. }
  123. else
  124. this.syncCount--;
  125. }
  126. updateMana();
  127. }
  128. public void doAttack(int key)
  129. {
  130. artes.t_arte[bindedArtes[key]].setPlayer(this.player);
  131. artes.t_arte[bindedArtes[key]].startAttack();
  132. }
  133.  
  134. public void bindArtes()
  135. {
  136. if (!this.player.world.isRemote)
  137. {
  138. privateData.set(R0C0,bindedArtes[0]);
  139. privateData.set(R1C0,bindedArtes[1]);
  140. privateData.set(R2C0,bindedArtes[2]);
  141.  
  142. privateData.set(R0C1,bindedArtes[3]);
  143. privateData.set(R1C1,bindedArtes[4]);
  144. privateData.set(R2C1,bindedArtes[5]);
  145.  
  146. privateData.set(R0C2,bindedArtes[6]);
  147. privateData.set(R1C2,bindedArtes[7]);
  148. privateData.set(R2C2,bindedArtes[8]);
  149. }
  150. }
  151.  
  152. public void activateArte(int arteIndex)
  153. {
  154. this.consumeMana(50.0F);
  155. System.out.printf("Mana: %f", this.playerMana);
  156. }
  157. public void consumeMana(float points)
  158. {
  159. if (this.playerMana - points < 0.0F)
  160. {
  161. this.playerMana = 0.0F;
  162. }
  163. else
  164. {
  165. this.playerMana -= points;
  166. }
  167.  
  168. if (!this.player.world.isRemote)
  169. {
  170. Necropolis_of_Nostalgia.packetHandler.sendTo(new SyncPlayerStats(this.playerMana, bindedArtes[0],bindedArtes[1],bindedArtes[2],bindedArtes[3],
  171. bindedArtes[4],bindedArtes[5],bindedArtes[6],bindedArtes[7],bindedArtes[8]), this.player);
  172. }
  173. }
  174. public void fillMana(float points)
  175. {
  176. if (this.playerMana + points > playermaxMana)
  177. {
  178. this.playerMana = this.playermaxMana;
  179. }
  180. else
  181. {
  182. this.playerMana += points;
  183. }
  184. }
  185. private void updateMana()
  186. {
  187. if (getMana() > playermaxMana)
  188. {
  189. setMana(playermaxMana);
  190. }
  191. else
  192. {
  193. regenTime += 1.0F/ 20.0F;
  194. if (regenTime >= 3.0F / manaRegenTime)
  195. {
  196. if (this.getMana() < this.playermaxMana)
  197. {
  198. this.fillMana(regenRate);
  199. }
  200. regenTime-= 3.0F / manaRegenTime;
  201. }
  202. }
  203. if (this)
  204. privateData.set(MANA, this.getMana());
  205. }
  206. private void setPlayerStats()
  207. {
  208. this.setManaRegenRate(1.0F);
  209. this.playermaxMana = 256F;
  210. this.pArteCoolDown = 0;
  211. this.currentpArte = 0;
  212. this.attackProgress = 1.0F;
  213. this.activatepArte = false;
  214. this.inBufferZone = true;
  215. }
  216. public void setActivatepArte(boolean val)
  217. {
  218. this.activatepArte = val;
  219. }
  220. public void setMana(float points)
  221. {
  222. this.playerMana = points;
  223. privateData.set(MANA, points);
  224. }
  225. public void setcurrentPArte(int key)
  226. {
  227. this.currentpArte = key;
  228. this.pArteCoolDown = 0;
  229. }
  230.  
  231. public void setArteAtIndices(int[] args)
  232. {
  233. for (int i = 0; i < 9; i++)
  234. {
  235. this.bindedArtes[i] = args[i];
  236. }
  237. if (!this.player.world.isRemote)
  238. {
  239. privateData.set(R0C0,bindedArtes[0]);
  240. privateData.set(R1C0,bindedArtes[1]);
  241. privateData.set(R2C0,bindedArtes[2]);
  242.  
  243. privateData.set(R0C1,bindedArtes[3]);
  244. privateData.set(R1C1,bindedArtes[4]);
  245. privateData.set(R2C1,bindedArtes[5]);
  246.  
  247. privateData.set(R0C2,bindedArtes[6]);
  248. privateData.set(R1C2,bindedArtes[7]);
  249. privateData.set(R2C2,bindedArtes[8]);
  250. }
  251. }
  252.  
  253. public void setArteAtIndex(int i1, int i2) //i2 is the index within the full list of artes
  254. {
  255. this.bindedArtes[i1] = bindedArtes[i2];
  256. }
  257. public int getArteAtIndex(int i1)
  258. {
  259. return this.bindedArtes[i1];
  260. }
  261.  
  262. public void setMouseClick(int key)
  263. {
  264. this.currentCol = key;
  265. }
  266. public int getMouseClick()
  267. {
  268. return this.currentCol;
  269. }
  270. public boolean getInBufferZone()
  271. {
  272. return this.inBufferZone;
  273. }
  274. public int getCurrentpArte()
  275. {
  276. return bindedArtes[this.currentpArte + this.currentCol * 3];
  277. }
  278. public int getCurrentArteIndex()
  279. {
  280. return this.currentpArte + this.currentCol * 3;
  281. }
  282. public float getpArteTime()
  283. {
  284. if (this.inBufferZone == true)
  285. {
  286. return 1.0F;
  287. }
  288. else
  289. {
  290. return 0.0F;
  291. }
  292. }
  293. public float getMana()
  294. {
  295. return this.playerMana;
  296. }
  297. public float getManaRegenTime()
  298. {
  299. return this.manaRegenTime;
  300. }
  301.  
  302. public void forceUpdate()
  303. {
  304. privateData.setDirty(MANA);
  305. privateData.setDirty(R0C0);
  306. privateData.setDirty(R1C0);
  307. privateData.setDirty(R2C0);
  308.  
  309. privateData.setDirty(R0C1);
  310. privateData.setDirty(R1C1);
  311. privateData.setDirty(R2C1);
  312.  
  313. privateData.setDirty(R0C2);
  314. privateData.setDirty(R1C2);
  315. privateData.setDirty(R2C2);
  316. }
  317. public void printArtes()
  318. {
  319. System.out.print(this.player.world.isRemote);
  320. System.out.print(privateData.get(R0C0));
  321. System.out.print(privateData.get(R1C0));
  322. System.out.print(privateData.get(R1C0));
  323. System.out.print(privateData.get(R0C1));
  324. System.out.print(privateData.get(R1C1));
  325. System.out.print(privateData.get(R1C1));
  326. System.out.print(privateData.get(R0C2));
  327. System.out.print(privateData.get(R1C2));
  328. System.out.print(privateData.get(R1C2));
  329. }
  330. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement