From ea801299db815cab4589d30bef5d4b8bced0c598 Mon Sep 17 00:00:00 2001 From: soultek101 Date: Thu, 22 Jan 2015 21:15:39 -0500 Subject: [PATCH 1/3] PZ 1.4a update --- build.gradle | 4 +- eclipse/.metadata/.lock | 0 eclipse/.metadata/.log | 1490 +++++ eclipse/.metadata/.mylyn/repositories.xml.zip | Bin 0 -> 442 bytes .../0/a097aff9ea9d00141ce0d62fbd2fd1cf | 217 + .../10/00edbdef9f9d00141ce0d62fbd2fd1cf | 206 + .../10/705a993d129d001411accd8c5614e9d3 | 949 +++ .../12/804ba5a49d9d00141ce0d62fbd2fd1cf | 206 + .../13/70db2d57389d001411accd8c5614e9d3 | 271 + .../14/5065ed78009e00141ce0d62fbd2fd1cf | 209 + .../14/708430a0a99b0014146ffb65627d3cc9 | 93 + .../16/00b7645beb9d00141ce0d62fbd2fd1cf | 238 + .../16/603187f8339d001411accd8c5614e9d3 | 83 + .../16/f0a5f551979a00141f13f9c36e449edd | 590 ++ .../17/8023138d619c00141eb99f8dbeb9f10c | 94 + .../17/80efe975729b0014146ffb65627d3cc9 | 963 +++ .../19/005e9ee2339d001411accd8c5614e9d3 | 148 + .../19/60fc5059a29d00141ce0d62fbd2fd1cf | 206 + .../19/90a1d9e7339d001411accd8c5614e9d3 | 103 + .../1c/2018d9626e9b0014146ffb65627d3cc9 | 938 +++ .../1d/f07d59b7e39d00141ce0d62fbd2fd1cf | 75 + .../1e/8095fcc4369d001411accd8c5614e9d3 | 239 + .../1f/f0e8ef939c9d00141ce0d62fbd2fd1cf | 206 + .../20/e0f5ea735c9c00141eb99f8dbeb9f10c | 224 + .../22/70cbe4e1959a00141f13f9c36e449edd | 590 ++ .../24/e09d66f8df9d00141ce0d62fbd2fd1cf | 114 + .../26/20bddcc9ac9d00141ce0d62fbd2fd1cf | 102 + .../28/1046b085039e00141ce0d62fbd2fd1cf | 262 + .../29/700e455aa49d00141ce0d62fbd2fd1cf | 210 + .../2b/20349f36a79d00141ce0d62fbd2fd1cf | 80 + .../2b/60dfba46039e00141ce0d62fbd2fd1cf | 262 + .../2e/2054cfe89f9d00141ce0d62fbd2fd1cf | 201 + .../2e/50f7d7a5a99b0014146ffb65627d3cc9 | 150 + .../2f/30f50d36ea9d00141ce0d62fbd2fd1cf | 214 + .../34/a0190315939b0014146ffb65627d3cc9 | 967 +++ .../36/0064e4195c9c00141eb99f8dbeb9f10c | 224 + .../3b/905e415f339d001411accd8c5614e9d3 | 100 + .../3b/b0e94ad1119d001411accd8c5614e9d3 | 97 + .../3b/f043d83ae99d00141ce0d62fbd2fd1cf | 214 + .../3c/40974af2df9d00141ce0d62fbd2fd1cf | 5 + .../3c/80039812f89d00141ce0d62fbd2fd1cf | 115 + .../3d/2065fd2ed99d00141ce0d62fbd2fd1cf | 85 + .../3f/30cd27e26c9b0014146ffb65627d3cc9 | 98 + .../3f/406c1827929b0014146ffb65627d3cc9 | 963 +++ .../40/409989c99a9d00141ce0d62fbd2fd1cf | 201 + .../40/605c5e3fa99d00141ce0d62fbd2fd1cf | 107 + .../41/a004cdf1a49d00141ce0d62fbd2fd1cf | 210 + .../44/d0fb5d6ca99d00141ce0d62fbd2fd1cf | 123 + .../45/102da81c9a9b0014146ffb65627d3cc9 | 973 +++ .../45/1073c893949b0014146ffb65627d3cc9 | 980 +++ .../47/2065b774f29d00141ce0d62fbd2fd1cf | 240 + .../47/d079e1a2fd9d00141ce0d62fbd2fd1cf | 384 ++ .../49/90bdae2aaf9d00141ce0d62fbd2fd1cf | 46 + .../4c/c07995e9e09d00141ce0d62fbd2fd1cf | 75 + .../4d/d0348f61a49d00141ce0d62fbd2fd1cf | 210 + .../5/60c770e45f9c00141eb99f8dbeb9f10c | 265 + .../5/905ee571e09d00141ce0d62fbd2fd1cf | 74 + .../54/7041a989999b0014146ffb65627d3cc9 | 973 +++ .../54/9064b38ba29d00141ce0d62fbd2fd1cf | 201 + .../55/90c93ca5ea9d00141ce0d62fbd2fd1cf | 218 + .../56/a0403741e19d00141ce0d62fbd2fd1cf | 75 + .../58/90c209cf2d9d001411accd8c5614e9d3 | 83 + .../59/2026be5c729b0014146ffb65627d3cc9 | 965 +++ .../59/40ae0c88a39d00141ce0d62fbd2fd1cf | 210 + .../59/a00d1e2ee49a001414c08c0578854e21 | 177 + .../5b/4038614a999d00141ce0d62fbd2fd1cf | 80 + .../5b/9099c6efe19d00141ce0d62fbd2fd1cf | 115 + .../5b/c0bcdbea6c9b0014146ffb65627d3cc9 | 98 + .../5e/90fe3751f59d00141ce0d62fbd2fd1cf | 240 + .../5f/5087d84d2e9d001411accd8c5614e9d3 | 100 + .../5f/a0b729389a9d00141ce0d62fbd2fd1cf | 201 + .../61/002df29ba29d00141ce0d62fbd2fd1cf | 206 + .../62/00a5ecadeb9d00141ce0d62fbd2fd1cf | 238 + .../63/70da9808a49d00141ce0d62fbd2fd1cf | 210 + .../64/a0c29a12f89d00141ce0d62fbd2fd1cf | 231 + .../64/b06e568f5f9c00141eb99f8dbeb9f10c | 242 + .../64/f07cf7ed339d001411accd8c5614e9d3 | 103 + .../65/90591cd8019e00141ce0d62fbd2fd1cf | 262 + .../68/10f01602369d001411accd8c5614e9d3 | 103 + .../68/70f75619649c00141eb99f8dbeb9f10c | 265 + .../69/5082a6bb619c00141eb99f8dbeb9f10c | 265 + .../69/a094bff52d9d001411accd8c5614e9d3 | 100 + .../69/c0105f38a09d00141ce0d62fbd2fd1cf | 201 + .../6b/e0a4681e629c00141eb99f8dbeb9f10c | 265 + .../6c/108e7d2d389d001411accd8c5614e9d3 | 271 + .../6e/d011093fe89d00141ce0d62fbd2fd1cf | 215 + .../6f/807fe4f5719b0014146ffb65627d3cc9 | 965 +++ .../70/d0be894bfe9d00141ce0d62fbd2fd1cf | 388 ++ .../71/019b8dd7e99d00141ce0d62fbd2fd1cf | 214 + .../73/60722945319d001411accd8c5614e9d3 | 947 +++ .../73/90e39ebaa49d00141ce0d62fbd2fd1cf | 210 + .../76/007d4c315f9c00141eb99f8dbeb9f10c | 224 + .../77/003cd19eed9d00141ce0d62fbd2fd1cf | 238 + .../77/008f1c509e9d00141ce0d62fbd2fd1cf | 158 + .../77/501976f8029e00141ce0d62fbd2fd1cf | 262 + .../78/00748ca0029e00141ce0d62fbd2fd1cf | 262 + .../78/60217f2d9b9b0014146ffb65627d3cc9 | 949 +++ .../7a/107aa5ccac9d00141ce0d62fbd2fd1cf | 102 + .../7c/800895b2a89b0014146ffb65627d3cc9 | 150 + .../7c/806d080e2d9d001411accd8c5614e9d3 | 100 + .../7e/507b49c89e9d00141ce0d62fbd2fd1cf | 158 + .../80/40962b70939b0014146ffb65627d3cc9 | 980 +++ .../81/806b9211a49a00141f13f9c36e449edd | 595 ++ .../82/10a24c14dc9d00141ce0d62fbd2fd1cf | 126 + .../84/30d1c933a09d00141ce0d62fbd2fd1cf | 206 + .../86/606a124ded9d00141ce0d62fbd2fd1cf | 238 + .../87/b0c836e8629c00141eb99f8dbeb9f10c | 265 + .../89/5093960c049e00141ce0d62fbd2fd1cf | 271 + .../89/c05fa8052c9d001411accd8c5614e9d3 | 101 + .../8c/50d95e72a99d00141ce0d62fbd2fd1cf | 126 + .../9/d0a0ba21e89d00141ce0d62fbd2fd1cf | 205 + .../90/c09c0f86959b0014146ffb65627d3cc9 | 980 +++ .../92/90dc68b6979b0014146ffb65627d3cc9 | 970 +++ .../92/b0066fbc969b0014146ffb65627d3cc9 | 54 + .../93/80d23adda29d00141ce0d62fbd2fd1cf | 212 + .../95/30bc042ca59d00141ce0d62fbd2fd1cf | 210 + .../97/4025577e379d001411accd8c5614e9d3 | 252 + .../98/505b2999ea9d00141ce0d62fbd2fd1cf | 218 + .../98/70968f3d129d001411accd8c5614e9d3 | 94 + .../99/505079aa639c00141eb99f8dbeb9f10c | 265 + .../99/c0213a912e9d001411accd8c5614e9d3 | 100 + .../9e/e0f081e9639c00141eb99f8dbeb9f10c | 265 + .../9f/10f27e5d969a00141f13f9c36e449edd | 590 ++ .../a1/201e6426979b0014146ffb65627d3cc9 | 54 + .../a2/104aac85e59d00141ce0d62fbd2fd1cf | 175 + .../a3/00d1cb81e49d00141ce0d62fbd2fd1cf | 75 + .../a3/00f488fe989b0014146ffb65627d3cc9 | 970 +++ .../a3/e021880fec9d00141ce0d62fbd2fd1cf | 238 + .../a6/10c8694c5d9c00141eb99f8dbeb9f10c | 97 + .../a8/202c452c9b9d00141ce0d62fbd2fd1cf | 201 + .../a8/708a1374369d001411accd8c5614e9d3 | 239 + .../ab/806748ea9a9b0014146ffb65627d3cc9 | 973 +++ .../ac/e07ca595969a00141f13f9c36e449edd | 590 ++ .../ac/f09a70f12f9d001411accd8c5614e9d3 | 100 + .../ad/208d48baaa9b0014146ffb65627d3cc9 | 150 + .../ad/90257858c39d00141ce0d62fbd2fd1cf | 126 + .../ae/b0e8f4cca39d00141ce0d62fbd2fd1cf | 210 + .../ae/f06ad844db9d00141ce0d62fbd2fd1cf | 169 + .../b0/8088833d129d001411accd8c5614e9d3 | 101 + .../b1/d0ecd055e39d00141ce0d62fbd2fd1cf | 75 + .../b2/601f91ef999d00141ce0d62fbd2fd1cf | 201 + .../b2/b086930caf9d00141ce0d62fbd2fd1cf | 46 + .../b7/f0191d22299d001411accd8c5614e9d3 | 97 + .../b8/304e9e539a9b0014146ffb65627d3cc9 | 973 +++ .../b9/10e9b945619c00141eb99f8dbeb9f10c | 89 + .../b9/40b18b48629c00141eb99f8dbeb9f10c | 265 + .../ba/602b4edeaf9d00141ce0d62fbd2fd1cf | 79 + .../ba/d0cc5e61e29d00141ce0d62fbd2fd1cf | 75 + .../bd/e0bb4914dc9d00141ce0d62fbd2fd1cf | 210 + .../c/e085512d949b0014146ffb65627d3cc9 | 980 +++ .../c0/e071ef78e49d00141ce0d62fbd2fd1cf | 75 + .../c2/10a83d9d9a9b0014146ffb65627d3cc9 | 973 +++ .../c2/5038683d129d001411accd8c5614e9d3 | 265 + .../c3/b09105e6df9d00141ce0d62fbd2fd1cf | 0 .../c3/d0630699969b0014146ffb65627d3cc9 | 977 +++ .../c4/a01b1a9a349d001411accd8c5614e9d3 | 103 + .../c6/e0e685b2649c00141eb99f8dbeb9f10c | 265 + .../ca/806ce68a329d001411accd8c5614e9d3 | 100 + .../cb/50829525ee9d00141ce0d62fbd2fd1cf | 240 + .../cc/c0daaadfe79d00141ce0d62fbd2fd1cf | 189 + .../cd/f0be1a1e029e00141ce0d62fbd2fd1cf | 262 + .../cf/30614f14dc9d00141ce0d62fbd2fd1cf | 212 + .../d3/202322ed949b0014146ffb65627d3cc9 | 980 +++ .../d3/70af276de09d00141ce0d62fbd2fd1cf | 75 + .../d4/2053dbd6959a00141f13f9c36e449edd | 588 ++ .../d4/e0d71c87629c00141eb99f8dbeb9f10c | 265 + .../d7/9049b1d8e09d00141ce0d62fbd2fd1cf | 100 + .../d9/60e789ec2c9d001411accd8c5614e9d3 | 82 + .../d9/b049b356379d001411accd8c5614e9d3 | 238 + .../da/408d2c4fec9d00141ce0d62fbd2fd1cf | 238 + .../db/90907b8c739b0014146ffb65627d3cc9 | 963 +++ .../db/e08f178cea9d00141ce0d62fbd2fd1cf | 116 + .../dc/609c3e66029e00141ce0d62fbd2fd1cf | 262 + .../dc/905f0b08389d001411accd8c5614e9d3 | 256 + .../df/a0334df5949b0014146ffb65627d3cc9 | 980 +++ .../df/d08a3c289b9b0014146ffb65627d3cc9 | 973 +++ .../e/90d2a412e99d00141ce0d62fbd2fd1cf | 54 + .../e2/d0bf67d55f9c00141eb99f8dbeb9f10c | 242 + .../e5/5094845dec9d00141ce0d62fbd2fd1cf | 238 + .../e8/a01666a4009e00141ce0d62fbd2fd1cf | 169 + .../ed/9077183f9a9d00141ce0d62fbd2fd1cf | 201 + .../ed/f0ab577eaf9d00141ce0d62fbd2fd1cf | 46 + .../ee/10853b4d5f9c00141eb99f8dbeb9f10c | 242 + .../ef/30cf9a55c39d00141ce0d62fbd2fd1cf | 126 + .../ef/b024c867649c00141eb99f8dbeb9f10c | 265 + .../f/105ab0ba339d001411accd8c5614e9d3 | 147 + .../f/40edcfb8629c00141eb99f8dbeb9f10c | 265 + .../f1/00db5e30969b0014146ffb65627d3cc9 | 980 +++ .../f1/10b3665d9f9d00141ce0d62fbd2fd1cf | 201 + .../f7/a0b981ca029e00141ce0d62fbd2fd1cf | 262 + .../f8/f01ead49a39d00141ce0d62fbd2fd1cf | 212 + .../fa/00f317eced9d00141ce0d62fbd2fd1cf | 240 + .../fb/709cb2549f9d00141ce0d62fbd2fd1cf | 206 + .../fc/40859d095c9c00141eb99f8dbeb9f10c | 224 + .../fd/8004b8c3aa9b0014146ffb65627d3cc9 | 95 + .../.location | Bin 158 -> 174 bytes .../e4/b9/22/81/35/63/15/1a/history.index | Bin 0 -> 104 bytes .../e4/b9/22/81/35/63/15/73/15/history.index | Bin 0 -> 136 bytes .../e4/b9/22/81/35/63/15/73/1d/history.index | Bin 0 -> 2655 bytes .../e4/b9/22/81/35/63/15/73/35/history.index | Bin 0 -> 691 bytes .../e4/b9/22/81/35/63/15/73/96/history.index | Bin 0 -> 1800 bytes .../e4/b9/22/81/35/63/15/7a/history.index | Bin 0 -> 403 bytes .../e4/b9/22/81/35/63/15/9f/history.index | Bin 0 -> 280 bytes .../e4/b9/22/81/35/63/15/history.index | Bin 0 -> 450 bytes .../.projects/Minecraft/.location | Bin 0 -> 88 bytes .../.projects/Minecraft/.markers | Bin 7903 -> 8918 bytes .../Minecraft/org.eclipse.jdt.core/state.dat | Bin 0 -> 464783 bytes .../.root/.indexes/properties.index | Bin 282 -> 203 bytes .../org.eclipse.core.resources/.root/14.tree | Bin 0 -> 843155 bytes .../.safetable/org.eclipse.core.resources | Bin 2588 -> 1757 bytes .../.settings/org.eclipse.debug.ui.prefs | 8 +- .../.settings/org.eclipse.jdt.core.prefs | 18 +- .../.settings/org.eclipse.jdt.launching.prefs | 2 + .../.settings/org.eclipse.jdt.ui.prefs | 21 + .../org.eclipse.jst.j2ee.webservice.ui.prefs | 2 + .../.settings/org.eclipse.m2e.discovery.prefs | 2 + .../org.eclipse.mylyn.context.core.prefs | 2 + .../.settings/org.eclipse.mylyn.java.ui.prefs | 3 + .../org.eclipse.mylyn.monitor.ui.prefs | 2 + .../org.eclipse.mylyn.tasks.ui.prefs | 4 + .../.settings/org.eclipse.pde.api.tools.prefs | 2 + .../.settings/org.eclipse.rse.core.prefs | 3 + .../.settings/org.eclipse.rse.ui.prefs | 2 + .../.settings/org.eclipse.search.prefs | 2 + .../.settings/org.eclipse.team.cvs.ui.prefs | 2 + .../.settings/org.eclipse.team.ui.prefs | 2 + .../.settings/org.eclipse.ui.ide.prefs | 7 +- .../.settings/org.eclipse.ui.workbench.prefs | 4 + .../.settings/org.eclipse.wst.jsdt.ui.prefs | 10 + .../org.eclipse.debug.ui/dialog_settings.xml | 8 + .../launchConfigurationHistory.xml | 14 +- .../org.eclipse.e4.workbench/workbench.xmi | 2662 ++++++++ .../.project | 18 + .../org.eclipse.jdt.core/1052857711.index | Bin 0 -> 12558 bytes .../org.eclipse.jdt.core/1098371184.index | Bin 0 -> 9521 bytes .../org.eclipse.jdt.core/1101424302.index | Bin 0 -> 29837 bytes .../org.eclipse.jdt.core/118309519.index | Bin 0 -> 170881 bytes .../org.eclipse.jdt.core/1221077128.index | Bin 0 -> 587835 bytes .../org.eclipse.jdt.core/1244022644.index | Bin 0 -> 4249 bytes .../org.eclipse.jdt.core/1369127545.index | Bin 0 -> 45849 bytes .../org.eclipse.jdt.core/152417710.index | Bin 0 -> 57664 bytes .../org.eclipse.jdt.core/1538849528.index | Bin 0 -> 28682 bytes .../org.eclipse.jdt.core/1611401267.index | Bin 0 -> 9041 bytes .../org.eclipse.jdt.core/1645669158.index | Bin 0 -> 3010 bytes .../org.eclipse.jdt.core/1684446089.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/1691994056.index | Bin 0 -> 706170 bytes .../org.eclipse.jdt.core/1700302528.index | Bin 0 -> 753677 bytes .../org.eclipse.jdt.core/1751657460.index | Bin 0 -> 272191 bytes .../org.eclipse.jdt.core/1821145857.index | Bin 0 -> 44572 bytes .../org.eclipse.jdt.core/182735413.index | Bin 0 -> 580677 bytes .../org.eclipse.jdt.core/1956400885.index | Bin 0 -> 39925 bytes .../org.eclipse.jdt.core/2010491873.index | Bin 0 -> 14034 bytes .../org.eclipse.jdt.core/2060131720.index | Bin 0 -> 541333 bytes .../org.eclipse.jdt.core/2097454686.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/2161353423.index | Bin 0 -> 22799 bytes .../org.eclipse.jdt.core/238188904.index | Bin 0 -> 159109 bytes .../org.eclipse.jdt.core/2386222545.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/2389961009.index | Bin 0 -> 1416120 bytes .../org.eclipse.jdt.core/2394657268.index | Bin 0 -> 92770 bytes .../org.eclipse.jdt.core/2450825834.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/2457829919.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/2497256829.index | Bin 0 -> 6344 bytes .../org.eclipse.jdt.core/2503134553.index | Bin 0 -> 2807455 bytes .../org.eclipse.jdt.core/2506227017.index | Bin 0 -> 26751 bytes .../org.eclipse.jdt.core/2516313630.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/2519713.index | Bin 0 -> 2152 bytes .../org.eclipse.jdt.core/2573849602.index | Bin 0 -> 302459 bytes .../org.eclipse.jdt.core/2705315894.index | Bin 0 -> 123652 bytes .../org.eclipse.jdt.core/270724262.index | Bin 0 -> 681636 bytes .../org.eclipse.jdt.core/2708055714.index | Bin 0 -> 111866 bytes .../org.eclipse.jdt.core/2718416753.index | Bin 0 -> 760195 bytes .../org.eclipse.jdt.core/286606776.index | Bin 0 -> 469327 bytes .../org.eclipse.jdt.core/2906365617.index | Bin 0 -> 104628 bytes .../org.eclipse.jdt.core/2943934462.index | Bin 0 -> 11973 bytes .../org.eclipse.jdt.core/3012441036.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/3016090828.index | Bin 0 -> 273324 bytes .../org.eclipse.jdt.core/3016371023.index | Bin 0 -> 66947 bytes .../org.eclipse.jdt.core/3051738776.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/3063041929.index | Bin 0 -> 83830 bytes .../org.eclipse.jdt.core/3162266258.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/3167461448.index | Bin 0 -> 33551 bytes .../org.eclipse.jdt.core/3224974857.index | Bin 0 -> 56935 bytes .../org.eclipse.jdt.core/3384726767.index | Bin 0 -> 31974 bytes .../org.eclipse.jdt.core/3414163197.index | Bin 0 -> 146305 bytes .../org.eclipse.jdt.core/3468416279.index | Bin 0 -> 219176 bytes .../org.eclipse.jdt.core/3549880408.index | Bin 0 -> 112032 bytes .../org.eclipse.jdt.core/3586105114.index | Bin 0 -> 67362 bytes .../org.eclipse.jdt.core/3622643147.index | Bin 0 -> 104842 bytes .../org.eclipse.jdt.core/3636524074.index | Bin 0 -> 1739064 bytes .../org.eclipse.jdt.core/3708397438.index | Bin 0 -> 1434316 bytes .../org.eclipse.jdt.core/3716563934.index | Bin 0 -> 20957 bytes .../org.eclipse.jdt.core/3784454021.index | Bin 0 -> 3409 bytes .../org.eclipse.jdt.core/3816558584.index | Bin 0 -> 90455 bytes .../org.eclipse.jdt.core/3826651658.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/3829748403.index | Bin 0 -> 71756 bytes .../org.eclipse.jdt.core/3926188048.index | Bin 0 -> 85073 bytes .../org.eclipse.jdt.core/4058166084.index | Bin 0 -> 80711 bytes .../org.eclipse.jdt.core/4097989794.index | Bin 0 -> 134833 bytes .../org.eclipse.jdt.core/4162861437.index | Bin 0 -> 3616292 bytes .../org.eclipse.jdt.core/4183445374.index | Bin 0 -> 28467 bytes .../org.eclipse.jdt.core/4204397735.index | Bin 0 -> 47119 bytes .../org.eclipse.jdt.core/4223854747.index | Bin 0 -> 170881 bytes .../org.eclipse.jdt.core/4257325822.index | Bin 0 -> 6784 bytes .../org.eclipse.jdt.core/539610362.index | Bin 0 -> 120922 bytes .../org.eclipse.jdt.core/648820999.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/730660110.index | Bin 0 -> 27409 bytes .../org.eclipse.jdt.core/735681076.index | Bin 0 -> 11083876 bytes .../org.eclipse.jdt.core/836682720.index | Bin 0 -> 25 bytes .../org.eclipse.jdt.core/859056245.index | Bin 0 -> 157978 bytes .../org.eclipse.jdt.core/904470838.index | Bin 0 -> 7352 bytes .../org.eclipse.jdt.core/973982085.index | Bin 0 -> 104842 bytes .../assumedExternalFilesCache | Bin 0 -> 4 bytes .../org.eclipse.jdt.core/externalFilesCache | Bin 0 -> 16809 bytes .../externalLibsTimeStamps | Bin 0 -> 10862 bytes .../org.eclipse.jdt.core/invalidArchivesCache | Bin 0 -> 4 bytes .../org.eclipse.jdt.core/javaLikeNames.txt | 1 + .../org.eclipse.jdt.core/nonChainingJarsCache | Bin 0 -> 9509 bytes .../org.eclipse.jdt.core/savedIndexNames.txt | 79 + .../variablesAndContainers.dat | Bin 0 -> 1835 bytes .../org.eclipse.jdt.launching/.install.xml | 4 + .../libraryInfos.xml | 22 + .../org.eclipse.jdt.ui/OpenTypeHistory.xml | 2 + .../QualifiedTypeNameHistory.xml | 7 + .../org.eclipse.jdt.ui/dialog_settings.xml | 9 + .../org.eclipse.jdt.ui/jdt-images/0.png | Bin 0 -> 137 bytes .../org.eclipse.jdt.ui/jdt-images/1.png | Bin 0 -> 210 bytes .../org.eclipse.jdt.ui/jdt-images/10.png | Bin 0 -> 147 bytes .../org.eclipse.jdt.ui/jdt-images/11.png | Bin 0 -> 238 bytes .../org.eclipse.jdt.ui/jdt-images/12.png | Bin 0 -> 220 bytes .../org.eclipse.jdt.ui/jdt-images/13.png | Bin 0 -> 283 bytes .../org.eclipse.jdt.ui/jdt-images/14.png | Bin 0 -> 188 bytes .../org.eclipse.jdt.ui/jdt-images/15.png | Bin 0 -> 388 bytes .../org.eclipse.jdt.ui/jdt-images/16.png | Bin 0 -> 436 bytes .../org.eclipse.jdt.ui/jdt-images/17.png | Bin 0 -> 568 bytes .../org.eclipse.jdt.ui/jdt-images/2.png | Bin 0 -> 509 bytes .../org.eclipse.jdt.ui/jdt-images/3.png | Bin 0 -> 105 bytes .../org.eclipse.jdt.ui/jdt-images/4.png | Bin 0 -> 281 bytes .../org.eclipse.jdt.ui/jdt-images/5.png | Bin 0 -> 147 bytes .../org.eclipse.jdt.ui/jdt-images/6.png | Bin 0 -> 223 bytes .../org.eclipse.jdt.ui/jdt-images/7.png | Bin 0 -> 280 bytes .../org.eclipse.jdt.ui/jdt-images/8.png | Bin 0 -> 183 bytes .../org.eclipse.jdt.ui/jdt-images/9.png | Bin 0 -> 478 bytes .../Minecraft/2015/1/1/refactorings.history | 4 + .../Minecraft/2015/1/1/refactorings.index | 1 + .../Minecraft/2015/1/3/refactorings.history | 3 + .../Minecraft/2015/1/3/refactorings.index | 7 + .../dialog_settings.xml | 7 + .../0.log | 0 .../logback.1.5.0.20140606-0033.xml | 43 + .../.cache/clean-cache.properties | 2 + .../.plugins/org.eclipse.rse.core/.log | 0 ...al.core.RSELocalConnectionInitializer.mark | 0 .../FP.local.files_0/node.properties | 57 + .../H.local_16/node.properties | 25 + .../PRF.belfam_laptop1_0/node.properties | 7 + .../.plugins/org.eclipse.rse.ui/.log | 0 .../org.eclipse.search/dialog_settings.xml | 91 + .../org.eclipse.team.cvs.core/.running | 0 .../org.eclipse.ui.ide/dialog_settings.xml | 10 + .../dialog_settings.xml | 30 + .../dialog_settings.xml | 15 + .../org.eclipse.ui.workbench/workingsets.xml | 4 + .../externalLibsTimeStamps | Bin 0 -> 573 bytes .../libraries/baseBrowserLibrary.js | 5393 +++++++++++++++++ .../libraries/browserWindow.js | 618 ++ .../libraries/dom5.js | 922 +++ .../libraries/system.js | 1458 +++++ .../libraries/xhr.js | 104 + .../variablesAndContainers.dat | Bin 0 -> 12 bytes .../OpenTypeHistory.xml | 2 + .../QualifiedTypeNameHistory.xml | 2 + .../task-tags.properties | 3 + eclipse/.metadata/version.ini | 3 + .../common/CommonProxyProjectZulu.java | 7 + .../projectzulu/common/DeathGamerules.java | 241 +- .../projectzulu/common/KeyHandler.java | 54 + .../common/ProjectZulu_Blocks.java | 6 +- .../projectzulu/common/ProjectZulu_Core.java | 7 + .../common/ProjectZulu_Dungeon.java | 5 +- .../projectzulu/common/ProjectZulu_Mobs.java | 13 +- .../common/api/CustomEntityList.java | 5 +- .../projectzulu/common/api/ItemList.java | 1 + .../common/blocks/BlockAloeVera.java | 8 +- .../common/blocks/BlockCampfire.java | 8 +- .../common/blocks/ItemHammerTool.java | 490 +- .../common/blocks/ItemShearsTool.java | 84 + .../common/blocks/ItemThrowingRock.java | 54 + .../common/blocks/ItemZuluArmor.java | 2 +- .../HammerToolDeclaration.java | 19 +- .../SpikesDeclaration.java | 10 +- .../ThrowingRockDeclaration.java | 29 + .../common/blocks/spike/BlockSpikes.java | 35 +- .../projectzulu/common/core/DefaultProps.java | 2 +- .../common/core/EventHookContainerClass.java | 112 + .../projectzulu/common/core/GuiID.java | 1 + .../projectzulu/common/core/ItemGenerics.java | 2 +- .../common/core/ZuluGuiHandler.java | 9 +- .../common/core/network/PZPacketHandler.java | 10 +- .../common/mobs/BossHealthDisplayTicker.java | 43 +- .../common/mobs/ContainerCamelInventory.java | 168 + .../common/mobs/EntityAFightorFlight.java | 12 + .../common/mobs/GuiScreenCamelInventory.java | 88 + .../common/mobs/GuiScreenHorseInventory.java | 75 + .../common/mobs/entity/EntityAntRavager.java | 124 + .../common/mobs/entity/EntityBeaver.java | 2 +- .../common/mobs/entity/EntityBeetleAS.java | 130 + .../common/mobs/entity/EntityBeetleBS.java | 130 + .../common/mobs/entity/EntityBloomDoom.java | 120 + .../common/mobs/entity/EntityCamel.java | 946 +++ .../common/mobs/entity/EntityCentipede.java | 24 +- .../common/mobs/entity/EntityDuckEgg.java | 11 +- .../mobs/entity/EntityGenericAnimal.java | 4 +- .../common/mobs/entity/EntityGoat.java | 20 +- .../common/mobs/entity/EntityHorseBase.java | 6 +- .../common/mobs/entity/EntityHorseBlack.java | 4 +- .../common/mobs/entity/EntityMaster.java | 6 +- .../common/mobs/entity/EntityMonkey.java | 209 + .../mobs/entity/EntityMummyPharaoh.java | 3 +- .../common/mobs/entity/EntityPZBat.java | 224 + .../common/mobs/entity/EntityRabbit.java | 4 +- .../mobs/entity/EntityThrowingRock.java | 81 + .../mobs/entityai/EntityAIAvoidEntity.java | 43 +- .../common/mobs/entityai/EntityAIPanic.java | 9 +- .../entitydefaults/AntRavegerDeclaration.java | 76 + .../entitydefaults/ArmadilloDeclaration.java | 13 +- .../entitydefaults/BeetleASDeclaration.java | 79 + .../entitydefaults/BeetleBSDeclaration.java | 79 + .../entitydefaults/BloomDoomDeclaration.java | 83 + .../mobs/entitydefaults/CamelDeclaration.java | 80 + .../mobs/entitydefaults/DeerDeclaration.java | 2 +- .../entitydefaults/HorseBlackDeclaration.java | 7 +- .../entitydefaults/MonkeyDeclaration.java | 72 + .../mobs/entitydefaults/PZBatDeclaration.java | 75 + .../entitydefaults/RabbitDeclaration.java | 7 + .../mobs/entitydefaults/RhinoDeclaration.java | 3 +- .../ThrowingRockDeclaration.java | 34 + .../common/mobs/models/ModelAntRavager.java | 418 ++ .../common/mobs/models/ModelBeetleAS.java | 187 + .../common/mobs/models/ModelBeetleBS.java | 187 + .../common/mobs/models/ModelBloomDoom.java | 264 + .../common/mobs/models/ModelCamel.java | 338 ++ .../common/mobs/models/ModelCentipede.java | 96 +- .../common/mobs/models/ModelDeer.java | 5 +- .../common/mobs/models/ModelFollower.java | 69 +- .../common/mobs/models/ModelGoat.java | 2 +- .../common/mobs/models/ModelHorse.java | 4 +- .../common/mobs/models/ModelMonkeyTailed.java | 262 + .../common/mobs/models/ModelPZBat.java | 116 + .../common/mobs/models/ModelRabbit.java | 2 +- .../common/mobs/packets/PZPacketKeyBind.java | 98 + .../common/mobs/packets/PZPacketNameSync.java | 1 - .../mobs/renders/RenderGenericHorse.java | 7 + .../mobs/renders/RenderGenericIdleMT.java | 28 + .../mobs/renders/RenderGenericLiving.java | 3 +- .../mobs/renders/RenderMummyPharaoh.java | 2 +- .../common/mobs/renders/RenderSnow.java | 2 +- .../common/mobs/renders/RenderThrowRock.java | 165 + .../mobs/renders/RenderThrowingRock.java | 120 + .../common/potion/EventHandleNullPotions.java | 2 + .../world/retroGenerator/ChunkCoord.java | 83 + .../world/retroGenerator/IRetroGenerator.java | 15 + .../common/world/retroGenerator/Location.java | 114 + .../retroGenerator/RetroGenSaveData.java | 62 + .../RetroactiveWorldGenerator.java | 95 + .../assets/projectzulublock/lang/en_US.lang | 1 + .../textures/items/flintandstone.png | Bin 0 -> 190 bytes .../textures/items/throwingrock.png | Bin 0 -> 575 bytes .../assets/projectzulucore/lang/en_US.lang | 3 + .../assets/projectzulumob/lang/en_US.lang | 10 +- .../assets/projectzulumob/lang/ru_RU.lang | 9 +- .../assets/projectzulumob/sounds.json | 14 + .../sounds/mob/beetlehurtsound1.ogg | Bin 0 -> 13158 bytes .../sounds/mob/beetlelivingsound1.ogg | Bin 0 -> 77464 bytes .../sounds/mob/beetlelivingsound2.ogg | Bin 0 -> 75988 bytes .../sounds/mob/camelhurtsound1.ogg | Bin 0 -> 15331 bytes .../sounds/mob/camellivingsound1.ogg | Bin 0 -> 83707 bytes .../sounds/mob/camellivingsound2.ogg | Bin 0 -> 82146 bytes .../sounds/mob/centipedehurtsound1.ogg | Bin 0 -> 27189 bytes .../sounds/mob/centipedelivingsound1.ogg | Bin 0 -> 51875 bytes .../sounds/mob/centipedelivingsound2.ogg | Bin 0 -> 55133 bytes .../sounds/mob/doombloomhurtsound1.ogg | Bin 0 -> 12089 bytes .../sounds/mob/doombloomlivingsound1.ogg | Bin 0 -> 58239 bytes .../sounds/mob/doombloomlivingsound2.ogg | Bin 0 -> 36626 bytes .../sounds/mob/monkeyhurtsound1.ogg | Bin 0 -> 4454 bytes .../sounds/mob/monkeylivingsound1.ogg | Bin 0 -> 19771 bytes .../sounds/mob/monkeylivingsound2.ogg | Bin 0 -> 13948 bytes .../sounds/mob/pzbathurtsound1.ogg | Bin 0 -> 10269 bytes .../sounds/mob/pzbatlivingsound1.ogg | Bin 0 -> 50283 bytes .../sounds/mob/pzbatlivingsound2.ogg | Bin 0 -> 57927 bytes .../sounds/mob/ravanthurtsound1.ogg | Bin 0 -> 12099 bytes .../sounds/mob/ravantlivingsound1.ogg | Bin 0 -> 40721 bytes .../sounds/mob/ravantlivingsound2.ogg | Bin 0 -> 23408 bytes .../projectzulumob/textures/antravager.png | Bin 0 -> 3256 bytes .../projectzulumob/textures/beetleas1.png | Bin 0 -> 715 bytes .../projectzulumob/textures/beetleas2.png | Bin 0 -> 803 bytes .../projectzulumob/textures/beetleas3.png | Bin 0 -> 1335 bytes .../projectzulumob/textures/beetlebs1.png | Bin 0 -> 658 bytes .../projectzulumob/textures/beetlebs2.png | Bin 0 -> 696 bytes .../projectzulumob/textures/beetlebs3.png | Bin 0 -> 680 bytes .../projectzulumob/textures/bloomdoom0.png | Bin 0 -> 2002 bytes .../textures/bloomdoomidle0.png | Bin 0 -> 1929 bytes .../assets/projectzulumob/textures/camel.png | Bin 0 -> 6766 bytes .../projectzulumob/textures/camel_saddled.png | Bin 0 -> 6302 bytes .../projectzulumob/textures/giantrat0.png | Bin 1665 -> 1663 bytes .../assets/projectzulumob/textures/goat0.png | Bin 3497 -> 3446 bytes .../assets/projectzulumob/textures/goat1.png | Bin 2405 -> 2390 bytes .../assets/projectzulumob/textures/goat2.png | Bin 2504 -> 2513 bytes .../assets/projectzulumob/textures/monkey.png | Bin 0 -> 2760 bytes .../assets/projectzulumob/textures/pzbat.png | Bin 0 -> 2254 bytes .../projectzulumob/textures/rabbit0.png | Bin 409 -> 576 bytes .../projectzulumob/textures/rabbit1.png | Bin 546 -> 533 bytes .../projectzulumob/textures/rabbit2.png | Bin 591 -> 576 bytes .../projectzulumob/textures/rabbit3.png | Bin 0 -> 555 bytes .../projectzulumob/textures/rabbit4.png | Bin 0 -> 566 bytes .../projectzulumob/textures/rabbit5.png | Bin 0 -> 553 bytes .../projectzulumob/textures/rabbit6.png | Bin 0 -> 563 bytes .../projectzulumob/textures/rabbit7.png | Bin 0 -> 536 bytes .../projectzulumob/textures/rabbit8.png | Bin 0 -> 541 bytes .../projectzulumob/textures/ripperfin1.png | Bin 1204 -> 1223 bytes .../projectzulumob/textures/serpent.png | Bin 689 -> 880 bytes .../projectzulumob/textures/throwingrock.png | Bin 0 -> 581 bytes src/main/resources/mcmod.info | 2 +- 522 files changed, 76274 insertions(+), 563 deletions(-) create mode 100644 eclipse/.metadata/.lock create mode 100644 eclipse/.metadata/.log create mode 100644 eclipse/.metadata/.mylyn/repositories.xml.zip create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/a097aff9ea9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/00edbdef9f9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/705a993d129d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/804ba5a49d9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/70db2d57389d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/5065ed78009e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/708430a0a99b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00b7645beb9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/603187f8339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/f0a5f551979a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/8023138d619c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/80efe975729b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/005e9ee2339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/60fc5059a29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/90a1d9e7339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/2018d9626e9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/f07d59b7e39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/8095fcc4369d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/f0e8ef939c9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/e0f5ea735c9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/70cbe4e1959a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e09d66f8df9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/20bddcc9ac9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/1046b085039e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/700e455aa49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/20349f36a79d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/60dfba46039e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/2054cfe89f9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/50f7d7a5a99b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/30f50d36ea9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/a0190315939b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/0064e4195c9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/905e415f339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/b0e94ad1119d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/f043d83ae99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/40974af2df9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/80039812f89d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/2065fd2ed99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30cd27e26c9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/406c1827929b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/409989c99a9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/605c5e3fa99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/a004cdf1a49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0fb5d6ca99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/102da81c9a9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/1073c893949b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/2065b774f29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/d079e1a2fd9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/90bdae2aaf9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/c07995e9e09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/d0348f61a49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/60c770e45f9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/905ee571e09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/7041a989999b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/9064b38ba29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/90c93ca5ea9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0403741e19d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/90c209cf2d9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/2026be5c729b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40ae0c88a39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/a00d1e2ee49a001414c08c0578854e21 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/4038614a999d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/9099c6efe19d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/c0bcdbea6c9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/90fe3751f59d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/5087d84d2e9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/a0b729389a9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/002df29ba29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/00a5ecadeb9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/70da9808a49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/a0c29a12f89d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b06e568f5f9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/f07cf7ed339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90591cd8019e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/10f01602369d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/70f75619649c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/5082a6bb619c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/a094bff52d9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0105f38a09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/e0a4681e629c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/108e7d2d389d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d011093fe89d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/807fe4f5719b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0be894bfe9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/019b8dd7e99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/60722945319d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/90e39ebaa49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/007d4c315f9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/003cd19eed9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/008f1c509e9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/501976f8029e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/00748ca0029e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/60217f2d9b9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/107aa5ccac9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/800895b2a89b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/806d080e2d9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/507b49c89e9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/40962b70939b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/806b9211a49a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/10a24c14dc9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/30d1c933a09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/606a124ded9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0c836e8629c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5093960c049e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/c05fa8052c9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/50d95e72a99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/d0a0ba21e89d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c09c0f86959b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/90dc68b6979b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/b0066fbc969b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/80d23adda29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/30bc042ca59d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/4025577e379d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/505b2999ea9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/70968f3d129d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/505079aa639c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/c0213a912e9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/e0f081e9639c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/10f27e5d969a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/201e6426979b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/104aac85e59d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00d1cb81e49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00f488fe989b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/e021880fec9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/10c8694c5d9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/202c452c9b9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/708a1374369d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/806748ea9a9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/e07ca595969a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/f09a70f12f9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/208d48baaa9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/90257858c39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/b0e8f4cca39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/f06ad844db9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/8088833d129d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d0ecd055e39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/601f91ef999d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/b086930caf9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0191d22299d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/304e9e539a9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/10e9b945619c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/40b18b48629c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/602b4edeaf9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0cc5e61e29d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0bb4914dc9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/e085512d949b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/e071ef78e49d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/10a83d9d9a9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/5038683d129d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/b09105e6df9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/d0630699969b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a01b1a9a349d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0e685b2649c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/806ce68a329d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50829525ee9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/c0daaadfe79d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/f0be1a1e029e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/30614f14dc9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/202322ed949b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/70af276de09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/2053dbd6959a00141f13f9c36e449edd create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e0d71c87629c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/9049b1d8e09d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/60e789ec2c9d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/b049b356379d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/408d2c4fec9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/90907b8c739b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e08f178cea9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/609c3e66029e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/905f0b08389d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/a0334df5949b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/d08a3c289b9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/90d2a412e99d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/d0bf67d55f9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/5094845dec9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/a01666a4009e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/9077183f9a9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/f0ab577eaf9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/10853b4d5f9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30cf9a55c39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/b024c867649c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/105ab0ba339d001411accd8c5614e9d3 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/40edcfb8629c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/00db5e30969b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/10b3665d9f9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0b981ca029e00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f01ead49a39d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/00f317eced9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/709cb2549f9d00141ce0d62fbd2fd1cf create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/40859d095c9c00141eb99f8dbeb9f10c create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/8004b8c3aa9b0014146ffb65627d3cc9 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/1a/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/15/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/1d/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/35/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/96/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/7a/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/9f/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/14.tree create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.api.tools.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs create mode 100644 eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders/.project create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1052857711.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1098371184.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1101424302.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/118309519.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1221077128.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1244022644.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1369127545.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/152417710.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1538849528.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1611401267.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1645669158.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1684446089.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1691994056.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1700302528.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1751657460.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1821145857.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/182735413.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/1956400885.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2010491873.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2060131720.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2097454686.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2161353423.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/238188904.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2386222545.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2389961009.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2394657268.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2450825834.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2457829919.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2497256829.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2503134553.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2506227017.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2516313630.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2519713.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2573849602.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2705315894.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/270724262.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2708055714.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2718416753.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/286606776.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2906365617.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/2943934462.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3012441036.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3016090828.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3016371023.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3051738776.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3063041929.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3162266258.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3167461448.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3224974857.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3384726767.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3414163197.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3468416279.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3549880408.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3586105114.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3622643147.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3636524074.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3708397438.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3716563934.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3784454021.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3816558584.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3826651658.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3829748403.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/3926188048.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4058166084.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4097989794.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4162861437.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4183445374.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4204397735.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4223854747.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/4257325822.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/539610362.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/648820999.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/730660110.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/735681076.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/836682720.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/859056245.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/904470838.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/973982085.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.launching/.install.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/0.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/1.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/10.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/11.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/12.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/13.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/14.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/15.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/16.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/17.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/2.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/3.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/4.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/5.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/6.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/7.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/8.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.jdt.ui/jdt-images/9.png create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/1/1/refactorings.history create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/1/1/refactorings.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/1/3/refactorings.history create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/1/3/refactorings.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log create mode 100644 eclipse/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.5.0.20140606-0033.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.core/.log create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.core/initializerMarks/org.eclipse.rse.internal.core.RSELocalConnectionInitializer.mark create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.belfam_laptop1_0/FP.local.files_0/node.properties create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.belfam_laptop1_0/H.local_16/node.properties create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.core/profiles/PRF.belfam_laptop1_0/node.properties create mode 100644 eclipse/.metadata/.plugins/org.eclipse.rse.ui/.log create mode 100644 eclipse/.metadata/.plugins/org.eclipse.search/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.team.cvs.core/.running create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/externalLibsTimeStamps create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/libraries/baseBrowserLibrary.js create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/libraries/browserWindow.js create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/libraries/dom5.js create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/libraries/system.js create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/libraries/xhr.js create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.core/variablesAndContainers.dat create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.ui/OpenTypeHistory.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.jsdt.ui/QualifiedTypeNameHistory.xml create mode 100644 eclipse/.metadata/.plugins/org.eclipse.wst.sse.core/task-tags.properties create mode 100644 eclipse/.metadata/version.ini create mode 100644 src/main/java/com/stek101/projectzulu/common/KeyHandler.java create mode 100644 src/main/java/com/stek101/projectzulu/common/blocks/ItemShearsTool.java create mode 100644 src/main/java/com/stek101/projectzulu/common/blocks/ItemThrowingRock.java create mode 100644 src/main/java/com/stek101/projectzulu/common/blocks/itemblockdeclarations/ThrowingRockDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/ContainerCamelInventory.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/GuiScreenCamelInventory.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/GuiScreenHorseInventory.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityAntRavager.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityBeetleAS.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityBeetleBS.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityBloomDoom.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityCamel.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityMonkey.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityPZBat.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entity/EntityThrowingRock.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/AntRavegerDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/BeetleASDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/BeetleBSDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/BloomDoomDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/CamelDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/MonkeyDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/PZBatDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/entitydefaults/ThrowingRockDeclaration.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelAntRavager.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelBeetleAS.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelBeetleBS.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelBloomDoom.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelCamel.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelMonkeyTailed.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/models/ModelPZBat.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/packets/PZPacketKeyBind.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/renders/RenderGenericIdleMT.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/renders/RenderThrowRock.java create mode 100644 src/main/java/com/stek101/projectzulu/common/mobs/renders/RenderThrowingRock.java create mode 100644 src/main/java/com/stek101/projectzulu/common/world/retroGenerator/ChunkCoord.java create mode 100644 src/main/java/com/stek101/projectzulu/common/world/retroGenerator/IRetroGenerator.java create mode 100644 src/main/java/com/stek101/projectzulu/common/world/retroGenerator/Location.java create mode 100644 src/main/java/com/stek101/projectzulu/common/world/retroGenerator/RetroGenSaveData.java create mode 100644 src/main/java/com/stek101/projectzulu/common/world/retroGenerator/RetroactiveWorldGenerator.java create mode 100644 src/main/resources/assets/projectzulublock/textures/items/flintandstone.png create mode 100644 src/main/resources/assets/projectzulublock/textures/items/throwingrock.png create mode 100644 src/main/resources/assets/projectzulucore/lang/en_US.lang create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/beetlehurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/beetlelivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/beetlelivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/camelhurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/camellivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/camellivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/centipedehurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/centipedelivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/centipedelivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/doombloomhurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/doombloomlivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/doombloomlivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/monkeyhurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/monkeylivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/monkeylivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/pzbathurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/pzbatlivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/pzbatlivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/ravanthurtsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/ravantlivingsound1.ogg create mode 100644 src/main/resources/assets/projectzulumob/sounds/mob/ravantlivingsound2.ogg create mode 100644 src/main/resources/assets/projectzulumob/textures/antravager.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetleas1.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetleas2.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetleas3.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetlebs1.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetlebs2.png create mode 100644 src/main/resources/assets/projectzulumob/textures/beetlebs3.png create mode 100644 src/main/resources/assets/projectzulumob/textures/bloomdoom0.png create mode 100644 src/main/resources/assets/projectzulumob/textures/bloomdoomidle0.png create mode 100644 src/main/resources/assets/projectzulumob/textures/camel.png create mode 100644 src/main/resources/assets/projectzulumob/textures/camel_saddled.png create mode 100644 src/main/resources/assets/projectzulumob/textures/monkey.png create mode 100644 src/main/resources/assets/projectzulumob/textures/pzbat.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit3.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit4.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit5.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit6.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit7.png create mode 100644 src/main/resources/assets/projectzulumob/textures/rabbit8.png create mode 100644 src/main/resources/assets/projectzulumob/textures/throwingrock.png diff --git a/build.gradle b/build.gradle index a031865..61dd0dd 100644 --- a/build.gradle +++ b/build.gradle @@ -17,12 +17,12 @@ buildscript { apply plugin: 'forge' -version = "1.7.10-1.3c" +version = "1.7.10-1.4a" group= "com.stek101.projectzulu" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "ProjectZulu" minecraft { - version = "1.7.10-10.13.1.1217" + version = "1.7.10-10.13.2.1230" runDir = "eclipse" } diff --git a/eclipse/.metadata/.lock b/eclipse/.metadata/.lock new file mode 100644 index 0000000..e69de29 diff --git a/eclipse/.metadata/.log b/eclipse/.metadata/.log new file mode 100644 index 0000000..b0d1e3c --- /dev/null +++ b/eclipse/.metadata/.log @@ -0,0 +1,1490 @@ +!SESSION 2015-01-01 14:05:55.914 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-01 14:05:59.288 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-01 14:06:34.381 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-01 14:07:02.805 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-01 14:07:02.806 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-01 14:13:08.613 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-01 14:13:08.613 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/src PZ pre 1.3/main/java/com/stek101/projectzulu/common]) + +!ENTRY org.eclipse.core.resources 4 566 2015-01-01 14:13:09.160 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-01-01 14:13:28.791 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-01 14:13:31.151 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-01 14:13:34.230 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-01 14:13:35.137 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-01 14:13:50.093 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-01 14:13:50.093 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-01 14:19:06.326 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-01 14:19:06.326 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/bin/assets/projectzulublock]) +!SESSION 2015-01-04 09:57:46.387 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-04 09:57:49.138 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-04 09:57:56.076 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-04 09:58:33.035 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-04 09:58:33.037 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-04 12:44:19.397 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-04 12:44:19.426 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/assets/minecraft]) +!SESSION 2015-01-04 20:30:49.901 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-04 20:30:52.743 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-04 20:31:19.773 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-04 20:32:13.328 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-04 20:32:13.407 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2015-01-11 20:01:05.186 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-11 20:01:07.817 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-11 20:01:14.020 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-11 20:01:42.329 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-11 20:01:42.331 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-11 22:02:11.794 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-11 22:02:11.855 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/eclipse/.metadata/.plugins]) + +!ENTRY org.eclipse.core.resources 4 566 2015-01-11 22:02:12.000 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-01-12 00:05:44.546 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-12 00:05:47.001 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-12 00:06:00.124 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-12 00:06:02.969 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 00:06:40.194 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 00:06:40.195 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 01:39:59.940 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-12 01:39:59.942 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/src/main/resources/assets/projectzulumob]) +!SESSION 2015-01-12 10:30:20.508 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-12 10:30:26.054 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-12 10:32:04.593 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.osgi 2 0 2015-01-12 10:34:51.523 +!MESSAGE While loading class "org.eclipse.jdt.internal.core.builder.JavaBuilder", thread "Thread[Worker-0,5,main]" timed out waiting (5016ms) for thread "Thread[main,6,main]" to finish starting bundle "org.eclipse.jdt.core_3.10.0.v20140902-0626 [909]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "org.eclipse.jdt.internal.core.builder.JavaBuilder" may not be fully initialized. +!STACK 0 +org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; osgi.identity="org.eclipse.jdt.core"; type="osgi.bundle"; version:Version="3.10.0.v20140902-0626"; singleton:="true" [id=909] STARTED [STARTED] + at org.eclipse.osgi.container.Module.lockStateChange(Module.java:329) + at org.eclipse.osgi.container.Module.start(Module.java:389) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320) + at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:395) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) + at java.lang.ClassLoader.loadClass(Unknown Source) + at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568) + at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) + at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) + at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) + at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) + at org.eclipse.core.internal.events.BuildManager.instantiateBuilder(BuildManager.java:907) + at org.eclipse.core.internal.events.BuildManager.initializeBuilder(BuildManager.java:860) + at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:545) + at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:574) + at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:244) + at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302) + at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358) + at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381) + at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) + at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) + at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) + +!ENTRY org.eclipse.osgi 2 0 2015-01-12 10:34:56.540 +!MESSAGE While loading class "org.eclipse.jdt.internal.core.builder.ImageBuilderInternalException", thread "Thread[Worker-0,5,main]" timed out waiting (5017ms) for thread "Thread[main,6,main]" to finish starting bundle "org.eclipse.jdt.core_3.10.0.v20140902-0626 [909]". To avoid deadlock, thread "Thread[Worker-0,5,main]" is proceeding but "org.eclipse.jdt.internal.core.builder.ImageBuilderInternalException" may not be fully initialized. +!STACK 0 +org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; osgi.identity="org.eclipse.jdt.core"; type="osgi.bundle"; version:Version="3.10.0.v20140902-0626"; singleton:="true" [id=909] STARTED [STARTED] + at org.eclipse.osgi.container.Module.lockStateChange(Module.java:329) + at org.eclipse.osgi.container.Module.start(Module.java:389) + at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:454) + at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107) + at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:531) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324) + at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320) + at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:395) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345) + at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337) + at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) + at java.lang.ClassLoader.loadClass(Unknown Source) + at java.lang.Class.getDeclaredConstructors0(Native Method) + at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) + at java.lang.Class.getConstructor0(Unknown Source) + at java.lang.Class.newInstance(Unknown Source) + at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) + at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) + at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) + at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) + at org.eclipse.core.internal.events.BuildManager.instantiateBuilder(BuildManager.java:907) + at org.eclipse.core.internal.events.BuildManager.initializeBuilder(BuildManager.java:860) + at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:545) + at org.eclipse.core.internal.events.BuildManager.getBuilder(BuildManager.java:574) + at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:244) + at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302) + at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358) + at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381) + at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) + at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) + at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 10:38:06.722 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 10:38:06.724 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 16:55:23.181 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 16:55:23.441 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-12 16:55:23.442 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompCls]) + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 16:55:23.785 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-01-12 19:52:55.845 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-12 19:52:58.997 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-12 19:54:52.162 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-12 19:54:53.692 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 19:55:35.331 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 19:55:35.332 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2015-01-12 21:29:26.476 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-12 21:29:43.250 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-12 21:36:51.584 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 21:38:33.285 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-12 21:38:33.286 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 22:16:38.073 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-12 22:16:38.088 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/net/minecraft]) + +!ENTRY org.eclipse.core.resources 4 566 2015-01-12 22:16:38.323 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-01-13 00:08:11.595 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-13 00:08:14.081 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-13 00:09:29.808 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 00:09:56.997 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 00:09:56.999 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-13 00:12:23.029 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-13 00:12:23.032 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/bin/assets/projectzulumob]) +!SESSION 2015-01-13 00:16:02.105 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-13 00:16:04.418 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-13 00:16:08.293 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 00:16:26.717 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 00:16:26.717 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-13 00:39:56.532 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-13 00:39:56.532 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/src/main/resources/assets/projectzuluworld]) +!SESSION 2015-01-13 15:36:53.846 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-13 15:36:56.340 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-13 15:37:05.634 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-13 15:37:11.757 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 15:37:46.243 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-13 15:37:46.243 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-14 00:06:00.498 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 2 2015-01-14 00:06:00.545 +!MESSAGE An internal error occurred during: "Win32 refresh daemon". +!STACK 0 +java.lang.NullPointerException + at org.eclipse.core.internal.localstore.FileSystemResourceManager.asyncRefresh(FileSystemResourceManager.java:137) + at org.eclipse.core.internal.localstore.FileSystemResourceManager.isSynchronized(FileSystemResourceManager.java:722) + at org.eclipse.core.internal.resources.Resource.isSynchronized(Resource.java:1543) + at org.eclipse.core.internal.resources.refresh.win32.Win32Monitor$Handle.postRefreshRequest(Win32Monitor.java:204) + at org.eclipse.core.internal.resources.refresh.win32.Win32Monitor$ResourceHandle.handleNotification(Win32Monitor.java:293) + at org.eclipse.core.internal.resources.refresh.win32.Win32Monitor.waitForNotification(Win32Monitor.java:593) + at org.eclipse.core.internal.resources.refresh.win32.Win32Monitor.run(Win32Monitor.java:507) + at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-14 00:06:00.545 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/sources/java/com/stek101/projectzulu/common]) + +!ENTRY org.eclipse.core.resources 4 566 2015-01-14 00:06:00.701 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-14 00:06:00.764 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-01-14 20:34:36.377 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-14 20:34:39.320 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-14 20:35:11.549 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-14 20:35:13.812 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-14 20:35:48.239 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-14 20:35:48.651 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.equinox.event 4 0 2015-01-15 14:32:18.086 +!MESSAGE Exception while dispatching event org.osgi.service.event.Event [topic=org/eclipse/e4/ui/model/ui/UIElement/widget/SET] to handler org.eclipse.e4.ui.services.internal.events.UIEventHandler@6e6135e5 +!STACK 0 +java.lang.NullPointerException + at org.eclipse.ui.internal.NavigationHistory.getDisplay(NavigationHistory.java:176) + at org.eclipse.ui.internal.NavigationHistory.markEditor(NavigationHistory.java:193) + at org.eclipse.ui.internal.WorkbenchPage.updateActiveEditorSources(WorkbenchPage.java:407) + at org.eclipse.ui.internal.WorkbenchPage.firePartClosed(WorkbenchPage.java:4995) + at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart$1.handleEvent(CompatibilityPart.java:98) + at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) + at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:187) + at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:156) + at org.eclipse.swt.widgets.Display.syncExec(Display.java:4734) + at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:218) + at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36) + at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197) + at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) + at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) + at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135) + at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78) + at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39) + at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81) + at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59) + at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374) + at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.setWidget(UIElementImpl.java:261) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.unbindWidget(SWTPartRenderer.java:149) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer$1.widgetDisposed(SWTPartRenderer.java:137) + at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066) + at org.eclipse.swt.widgets.Widget.release(Widget.java:816) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:874) + at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:165) + at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:789) + at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1290) + at org.eclipse.swt.widgets.Widget.release(Widget.java:819) + at org.eclipse.swt.widgets.Widget.dispose(Widget.java:454) + at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:447) + at org.eclipse.swt.widgets.Shell.dispose(Shell.java:715) + at org.eclipse.swt.widgets.Display.release(Display.java:3811) + at org.eclipse.swt.graphics.Device.dispose(Device.java:295) + at org.eclipse.swt.widgets.Display.messageProc(Display.java:3292) + at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544) + at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:498) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705) + at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339) + at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1626) + at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036) + at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) + at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756) + at org.eclipse.jface.window.Window.runEventLoop(Window.java:832) + at org.eclipse.jface.window.Window.open(Window.java:808) + at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:341) + at org.eclipse.jface.dialogs.MessageDialogWithToggle.open(MessageDialogWithToggle.java:114) + at org.eclipse.jface.dialogs.MessageDialogWithToggle.openOkCancelConfirm(MessageDialogWithToggle.java:209) + at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.promptOnExit(IDEWorkbenchWindowAdvisor.java:218) + at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$2.handleEvent(IDEWorkbenchAdvisor.java:171) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) + at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4346) + at org.eclipse.swt.widgets.Display.messageProc(Display.java:3305) + at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) + at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544) + at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:498) + at org.eclipse.swt.widgets.Control.windowProc(Control.java:4705) + at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339) + at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1626) + at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2075) + at org.eclipse.swt.widgets.Display.windowProc(Display.java:5036) + at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) + at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) +!SESSION 2015-01-15 18:51:06.779 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-15 18:51:09.201 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.core.resources 2 10035 2015-01-15 18:51:12.841 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-15 18:51:15.351 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.jst.j2ee.core 4 0 2015-01-15 18:51:39.456 +!MESSAGE +!STACK 0 +java.lang.InterruptedException + at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:102) + at org.eclipse.jst.j2ee.internal.J2EEInit.aquireInitializePackageContentsLock(J2EEInit.java:454) + at org.eclipse.jst.j2ee.ejb.internal.impl.EjbPackageImpl.freeze(EjbPackageImpl.java:1757) + at org.eclipse.jst.j2ee.ejb.internal.impl.EjbPackageImpl.init(EjbPackageImpl.java:325) + at org.eclipse.jst.j2ee.ejb.EjbPackage.(EjbPackage.java:1916) + at org.eclipse.jst.j2ee.ejb.internal.impl.EjbFactoryImpl.getPackage(EjbFactoryImpl.java:671) + at org.eclipse.jst.j2ee.internal.provider.J2EEAdapterFactoryLabelProvider.(J2EEAdapterFactoryLabelProvider.java:42) + at org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider.initialize(J2EELabelProvider.java:57) + at org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider.init(J2EELabelProvider.java:246) + at org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension$2.run(NavigatorContentExtension.java:176) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension.getLabelProvider(NavigatorContentExtension.java:169) + at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.findStyledText(NavigatorContentServiceLabelProvider.java:163) + at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.getStyledText(NavigatorContentServiceLabelProvider.java:151) + at org.eclipse.ui.internal.navigator.NavigatorDecoratingLabelProvider$StyledLabelProviderAdapter.getStyledText(NavigatorDecoratingLabelProvider.java:67) + at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.getStyledText(DelegatingStyledCellLabelProvider.java:206) + at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:199) + at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:106) + at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:136) + at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:154) + at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:949) + at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:114) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50) + at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178) + at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1029) + at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:472) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50) + at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178) + at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2150) + at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:843) + at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:818) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:791) + at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:611) + at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:762) + at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1543) + at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:790) + at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1527) + at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1436) + at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366) + at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397) + at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1519) + at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:292) + at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1675) + at org.eclipse.ui.navigator.CommonNavigator.createPartControl(CommonNavigator.java:212) + at org.eclipse.ui.navigator.resources.ProjectExplorer.createPartControl(ProjectExplorer.java:93) + at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:141) + at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155) + at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:327) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) + at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888) + at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:869) + at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:120) + at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:337) + at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258) + at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) + at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104) + at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73) + at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55) + at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:127) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$6.run(PartRenderingEngine.java:547) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:531) + at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:69) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1250) + at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:100) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68) + at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68) + at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103) + at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:100) + at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68) + at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68) + at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:664) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1078) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-15 18:51:54.552 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-15 18:51:54.552 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-01-15 23:40:06.025 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-01-15 23:40:06.075 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/eclipse/.metadata/.plugins]) +!SESSION 2015-01-16 11:01:36.892 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_11 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.jee.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product + +!ENTRY org.eclipse.jpt.dbws.eclipselink.ui 4 0 2015-01-16 11:01:39.979 +!MESSAGE FrameworkEvent ERROR +!STACK 0 +org.osgi.framework.BundleException: Could not resolve module: org.eclipse.jpt.dbws.eclipselink.ui [394] + Bundle was not resolved because of a uses contraint violation. + org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] because it is exposed to package 'javax.xml.bind' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] and javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] via two dependency chains. + +Chain 1: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.wst.common.project.facet.ui)(&(bundle-version>=1.3.0)(!(bundle-version>=2.0.0)))) + | + provide: osgi.wiring.bundle: org.eclipse.wst.common.project.facet.ui + org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.1.v20140909-1633"; singleton:="true"] + +Chain 2: + org.eclipse.jpt.dbws.eclipselink.ui [osgi.identity; osgi.identity="org.eclipse.jpt.dbws.eclipselink.ui"; type="osgi.bundle"; version:Version="1.1.100.v201310142259"; singleton:="true"] + require: (&(osgi.wiring.bundle=org.eclipse.persistence.dbws.builder)(&(bundle-version>=2.3.0)(!(bundle-version>=3.0.0)))) + | + provide: osgi.wiring.bundle; bundle-version:Version="2.6.0.v20130815-a4708b6"; osgi.wiring.bundle="org.eclipse.persistence.dbws.builder" + org.eclipse.persistence.dbws.builder [osgi.identity; osgi.identity="org.eclipse.persistence.dbws.builder"; type="osgi.bundle"; version:Version="2.6.0.v20130815-a4708b6"] + import: (osgi.wiring.package=javax.xml.bind) + | + export: osgi.wiring.package: javax.xml.bind + javax.xml.bind [osgi.identity; osgi.identity="javax.xml.bind"; type="osgi.bundle"; version:Version="2.1.9.v201005080401"] + at org.eclipse.osgi.container.Module.start(Module.java:434) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) + at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) + at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) + at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-01-16 11:01:58.842 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-16 11:02:54.086 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-01-16 11:02:54.086 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\BELFAM_ADMIN'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.osgi 4 0 2015-01-17 00:40:29.392 +!MESSAGE Shutdown error +!STACK 1 +java.lang.InterruptedException + at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(Unknown Source) + at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(Unknown Source) + at org.eclipse.osgi.container.SystemModule.waitForStop(SystemModule.java:119) + at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle.waitForStop(EquinoxBundle.java:260) + at org.eclipse.osgi.launch.Equinox.waitForStop(Equinox.java:181) + at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:436) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:254) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) diff --git a/eclipse/.metadata/.mylyn/repositories.xml.zip b/eclipse/.metadata/.mylyn/repositories.xml.zip new file mode 100644 index 0000000000000000000000000000000000000000..57101ee459c93b8a54311bf09ff0d8c04f03be0f GIT binary patch literal 442 zcmWIWW@Zs#;Nak3;3`yfV?Y7|Kz31TL4I*&Nq$jgYO!8LZqC~fUvFkZfxp^{<(s<{ zlzh9{Z9BWd4o>zdUw-?-O_h{M+iu6_XYF4Sn(_5j?u?YUdwafnEH}^g@G;m>7xD+Xzt5<_T=2$u%6zvTV$40<#jl8 ziFlk2?3uT|OKE##qUSMVE%8_9+wOd_2p9it<6^>lZmz5DdTE|zEsx}uzt7j}S$aZ2 z`oOZK*H+E=IpN`oL*kE4v72XyCao#p=v*|-P{pQZUSd=K0h`i=R%K-yZI@X55r7C84fKU=Ikj? z%ys_g+;d{8!)l(juX5A=PyTdz$sOIPHYYY872fk<`HjEayW|7B**WICn!v5W$iU#j o!oU#V&B!FefCy(~IZ!yG0`yQ1@MdKLsbB;`J0P6~G?jq?0H@)r82|tP literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/a097aff9ea9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/a097aff9ea9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..2dd87b9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/a097aff9ea9d00141ce0d62fbd2fd1cf @@ -0,0 +1,217 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/00edbdef9f9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/00edbdef9f9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..375baf2 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/00edbdef9f9d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 20f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/705a993d129d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/705a993d129d001411accd8c5614e9d3 new file mode 100644 index 0000000..9716af8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/705a993d129d001411accd8c5614e9d3 @@ -0,0 +1,949 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + entityplayermp.setPositionAndUpdate(this.posX + 0.3D, this.posY, this.posZ); + + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/804ba5a49d9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/804ba5a49d9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6efb84f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/804ba5a49d9d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 10f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + /* sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + */ + sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/70db2d57389d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/70db2d57389d001411accd8c5614e9d3 new file mode 100644 index 0000000..58c2129 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/70db2d57389d001411accd8c5614e9d3 @@ -0,0 +1,271 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityCentipede; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 2 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 3) && (bugType <= 5) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else if ((bugType >= 6) && (bugType <= 8) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount3; i++) { + EntityCentipede entity = new EntityCentipede(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + + if (event.block == Blocks.leaves || event.block == Blocks.leaves2){ + int stickDrop = rand1.nextInt(3); + + if (stickDrop == 2) { + ItemStack itemstack1 = new ItemStack(Items.stick, 1); + + double xrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double yrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double zrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + EntityItem itemDrop1 = new EntityItem(event.world, (double) event.x + xrand, (double) event.y + yrand, (double) event.z + zrand, itemstack1); + itemDrop1.delayBeforeCanPickup = 10; + event.world.spawnEntityInWorld(itemDrop1); + + } + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/5065ed78009e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/5065ed78009e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..1f9bf7e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/5065ed78009e00141ce0d62fbd2fd1cf @@ -0,0 +1,209 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMoveTowardsRestriction; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityMonkey extends EntityGenericAnimal implements IAnimals{ + //private EntityAIArrowAttack aiRockAttack = new EntityAIArrowAttack(this, 1.0D, 20, 60, 15.0F); + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + private boolean throwRock = false; + private int throwCooldown = 6 * 20; + private int throwTimer = 100; + private int stage = 1; + + public EntityMonkey(World par1World) { + super(par1World); + setSize(1.4f, 0.9f); + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + tasks.addTask(4, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.bread, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWander(this, 0.8f, 120)); + tasks.addTask(9, new EntityAIMoveTowardsRestriction(this, 1.0f)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(16, new Byte((byte)0)); + } + + /** + * Updates the WatchableObject (Byte) created in entityInit(), setting it to 0x01 if par1 is true or 0x00 if it is + * false. + */ + public void setBesideClimbableBlock(boolean p_70839_1_) + { + byte b0 = this.dataWatcher.getWatchableObjectByte(16); + + if (p_70839_1_) + { + b0 = (byte)(b0 | 1); + } + else + { + b0 &= -2; + } + + this.dataWatcher.updateObject(16, Byte.valueOf(b0)); + } + + /** + * returns true if this entity is by a ladder, false otherwise + */ + @Override + public boolean isOnLadder() + { + return this.isBesideClimbableBlock(); + } + + /** + * Returns true if the WatchableObject (Byte) is 0x01 otherwise returns false. The WatchableObject is updated using + * setBesideClimableBlock. + */ + public boolean isBesideClimbableBlock() + { + return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; + } + + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.apple); + } + + /* If Shoot Timer is 0, tell Entity its Allowed to Shoot a Rock*/ + if (throwTimer == 0) { + this.throwRock = true; + this.throwTimer = this.throwCooldown; + + //EntityPlayer targetedEntity = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + if (this.angerLevel > 0){ + if (this.throwRock == true && !worldObj.isRemote) { + this.throwRockAtTarget(); + this.throwRock = false; + } + } + } + + this.throwTimer = Math.max(this.throwTimer - 1, 0); + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "monkeylivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "monkeyhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Items.bread) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + protected void updateAITick() { + super.updateAITick(); + this.setBesideClimbableBlock(this.isCollidedHorizontally); + } + + private void throwRockAtTarget() { + EntityPlayer targetedEntity = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + + if (targetedEntity != null) { + EntityThrowingRock entityTR = new EntityThrowingRock(this.worldObj, this); + double d0 = targetedEntity.posX - this.posX; + double d1 = targetedEntity.posY + (double)targetedEntity.getEyeHeight() - 1.100000023841858D - entityTR.posY; + double d2 = targetedEntity.posZ - this.posZ; + float f1 = MathHelper.sqrt_double(d0 * d0 + d2 * d2) * 0.2F; + entityTR.setThrowableHeading(d0, d1 + (double)f1, d2, 1.6F, 12.0F); + this.playSound("random.bow", 1.0F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F)); + this.worldObj.spawnEntityInWorld(entityTR); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/708430a0a99b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/708430a0a99b0014146ffb65627d3cc9 new file mode 100644 index 0000000..59b02de --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/14/708430a0a99b0014146ffb65627d3cc9 @@ -0,0 +1,93 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.ItemGenerics; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityRabbit; +import com.stek101.projectzulu.common.mobs.models.ModelRabbit; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLivingMT; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class RabbitDeclaration extends SpawnableDeclaration { + private final List entityTextures = new ArrayList (); + + public RabbitDeclaration() { + super("Rabbit", 21, EntityRabbit.class, EnumCreatureType.creature); + setSpawnProperties(15, 100, 2, 4); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (239 << 16) + (179 << 8) + 83; + eggColor2 = (237 << 16) + (208 << 8) + 166; + + entityTextures.add("textures/rabbit0.png"); + entityTextures.add("textures/rabbit1.png"); + entityTextures.add("textures/rabbit2.png"); + entityTextures.add("textures/rabbit3.png"); + entityTextures.add("textures/rabbit4.png"); + entityTextures.add("textures/rabbit5.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, ItemList.scrapMeat, 0, 10); + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, + ItemList.genericCraftingItems, ItemGenerics.Properties.SmallHeart.meta(), 4); + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, + ItemList.genericCraftingItems, ItemGenerics.Properties.RabbitsFoot.meta(), 8); + customMobData.entityProperties = new EntityProperties(5f, 1.0f, 0.3f, 100f, 0.0f, 32.0f, 1.0f, 10D).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelRabbit(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/rabbit.png")); + return new RenderGenericLivingMT(new ModelRabbit(), 0.5f, entityTextures); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.savanna.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.birchForest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.birchForestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.addAll(typeToArray(Type.SAVANNA)); + nonFrozenForest.removeAll(typeToArray(Type.SNOWY)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00b7645beb9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00b7645beb9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..b375699 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/00b7645beb9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + setAngerLevel(400); + } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/603187f8339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/603187f8339d001411accd8c5614e9d3 new file mode 100644 index 0000000..2fc0b6c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/603187f8339d001411accd8c5614e9d3 @@ -0,0 +1,83 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericIdle; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.25f).createFromConfig(config, mobName); + //customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.3f, 0.0f, 0.0f, 32.0f, 50f, 16D).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/bloomdoom.png")); + + return new RenderGenericIdle(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom0.png"), new ResourceLocation(DefaultProps.mobKey, "textures/bloomdoomidle0.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/f0a5f551979a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/f0a5f551979a00141f13f9c36e449edd new file mode 100644 index 0000000..02738ff --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/16/f0a5f551979a00141f13f9c36e449edd @@ -0,0 +1,590 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if (maxDropXP + percKeptXp > 100){ + ProjectZuluLog.warning("Warning : The total of MaxDropXP and percKeptXP is greater than 100. Resetting to default"); + maxDropXP = 100; + percKeptXp = 0; + } + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + System.out.println("total player xp to drop : " + xpDropped ); + System.out.println("subtotal player xp minus xpDropped : " + (player.experienceTotal - xpDropped)); + System.out.println("player kepXp percent : " + ((float) percKeptXp / 100)); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/8023138d619c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/8023138d619c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..cbae878 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/8023138d619c00141eb99f8dbeb9f10c @@ -0,0 +1,94 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleAS; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleBS; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelFishA; +import com.stek101.projectzulu.common.mobs.models.ModelSandWorm; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericIdle; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLivingMT; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.20f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/bloomdoom.png")); + + return new RenderGenericIdle(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom0.png"), new ResourceLocation(DefaultProps.mobKey, "textures/bloomdoomidle.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/80efe975729b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/80efe975729b0014146ffb65627d3cc9 new file mode 100644 index 0000000..1b39354 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/80efe975729b0014146ffb65627d3cc9 @@ -0,0 +1,963 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + + this.riddenByEntity.setPosition(this.posX + 1, this.posY + 1, this.posZ); + this.riddenByEntity.fallDistance = 0.0F; + this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/005e9ee2339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/005e9ee2339d001411accd8c5614e9d3 new file mode 100644 index 0000000..8f8100b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/005e9ee2339d001411accd8c5614e9d3 @@ -0,0 +1,148 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 5, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } + + + +@Override +public boolean attackEntityAsMob(Entity p_70652_1_) +{ + System.out.println("attacking attacking attacking"); + float f = (float)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + int i = 0; + + if (p_70652_1_ instanceof EntityLivingBase) + { + f += EnchantmentHelper.getEnchantmentModifierLiving(this, (EntityLivingBase)p_70652_1_); + i += EnchantmentHelper.getKnockbackModifier(this, (EntityLivingBase)p_70652_1_); + } + + boolean flag = p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), f); + + if (flag) + { + if (i > 0) + { + p_70652_1_.addVelocity((double)(-MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F), 0.1D, (double)(MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F)); + this.motionX *= 0.6D; + this.motionZ *= 0.6D; + } + + int j = EnchantmentHelper.getFireAspectModifier(this); + + if (j > 0) + { + p_70652_1_.setFire(j * 4); + } + + if (p_70652_1_ instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a((EntityLivingBase)p_70652_1_, this); + } + + EnchantmentHelper.func_151385_b(this, p_70652_1_); + } + + return flag; +} + + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/60fc5059a29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/60fc5059a29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..9691843 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/60fc5059a29d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = -5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/90a1d9e7339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/90a1d9e7339d001411accd8c5614e9d3 new file mode 100644 index 0000000..b631dd8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/90a1d9e7339d001411accd8c5614e9d3 @@ -0,0 +1,103 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 5, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/2018d9626e9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/2018d9626e9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..47d15e3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/2018d9626e9b0014146ffb65627d3cc9 @@ -0,0 +1,938 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/f07d59b7e39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/f07d59b7e39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..04631be --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/f07d59b7e39d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("PZBat", 65, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.25f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/8095fcc4369d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/8095fcc4369d001411accd8c5614e9d3 new file mode 100644 index 0000000..4b8d772 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/8095fcc4369d001411accd8c5614e9d3 @@ -0,0 +1,239 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + + if (bugType <= 5 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 6) && (bugType <= 7)) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/f0e8ef939c9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/f0e8ef939c9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..d294c24 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/f0e8ef939c9d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 10f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.98f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /*sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/e0f5ea735c9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/e0f5ea735c9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..b276282 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/e0f5ea735c9c00141eb99f8dbeb9f10c @@ -0,0 +1,224 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + /*armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI));*/ + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.8883F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.8883F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/70cbe4e1959a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/70cbe4e1959a00141f13f9c36e449edd new file mode 100644 index 0000000..8c1574a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/70cbe4e1959a00141f13f9c36e449edd @@ -0,0 +1,590 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if (maxDropXP + percKeptXp > 100){ + ProjectZuluLog.warning("Warning : The total of MaxDropXP and percKeptXP is greater than 100. Resetting to default"); + maxDropXP = 100; + percKeptXp = 0; + } + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + System.out.println("total player xp to drop : " + xpDropped ); + System.out.println("subtotal player xp minus xpDropped : " + (player.experienceTotal - xpDropped)); + System.out.println("player kepXp percent : " + ((float) percKeptXp / 100))); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e09d66f8df9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e09d66f8df9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..1483fe5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e09d66f8df9d00141ce0d62fbd2fd1cf @@ -0,0 +1,114 @@ +package com.stek101.projectzulu.common.mobs.models; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBase; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.util.MathHelper; + +@SideOnly(Side.CLIENT) +public class ModelPZBat extends ModelBase +{ + private ModelRenderer batHead; + /** The body box of the bat model. */ + private ModelRenderer batBody; + /** The inner right wing box of the bat model. */ + private ModelRenderer batRightWing; + /** The inner left wing box of the bat model. */ + private ModelRenderer batLeftWing; + /** The outer right wing box of the bat model. */ + private ModelRenderer batOuterRightWing; + /** The outer left wing box of the bat model. */ + private ModelRenderer batOuterLeftWing; + private static final String __OBFID = "CL_00000830"; + + public ModelBat() + { + this.textureWidth = 64; + this.textureHeight = 64; + this.batHead = new ModelRenderer(this, 0, 0); + this.batHead.addBox(-3.0F, -3.0F, -3.0F, 6, 6, 6); + ModelRenderer modelrenderer = new ModelRenderer(this, 24, 0); + modelrenderer.addBox(-4.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer); + ModelRenderer modelrenderer1 = new ModelRenderer(this, 24, 0); + modelrenderer1.mirror = true; + modelrenderer1.addBox(1.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer1); + this.batBody = new ModelRenderer(this, 0, 16); + this.batBody.addBox(-3.0F, 4.0F, -3.0F, 6, 12, 6); + this.batBody.setTextureOffset(0, 34).addBox(-5.0F, 16.0F, 0.0F, 10, 6, 1); + this.batRightWing = new ModelRenderer(this, 42, 0); + this.batRightWing.addBox(-12.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterRightWing = new ModelRenderer(this, 24, 16); + this.batOuterRightWing.setRotationPoint(-12.0F, 1.0F, 1.5F); + this.batOuterRightWing.addBox(-8.0F, 1.0F, 0.0F, 8, 12, 1); + this.batLeftWing = new ModelRenderer(this, 42, 0); + this.batLeftWing.mirror = true; + this.batLeftWing.addBox(2.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterLeftWing = new ModelRenderer(this, 24, 16); + this.batOuterLeftWing.mirror = true; + this.batOuterLeftWing.setRotationPoint(12.0F, 1.0F, 1.5F); + this.batOuterLeftWing.addBox(0.0F, 1.0F, 0.0F, 8, 12, 1); + this.batBody.addChild(this.batRightWing); + this.batBody.addChild(this.batLeftWing); + this.batRightWing.addChild(this.batOuterRightWing); + this.batLeftWing.addChild(this.batOuterLeftWing); + } + + /** + * not actually sure this is size, is not used as of now, but the model would be recreated if the value changed and + * it seems a good match for a bats size + */ + public int getBatSize() + { + return 36; + } + + /** + * Sets the models various rotation angles then renders the model. + */ + public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_) + { + EntityBat entitybat = (EntityBat)p_78088_1_; + float f6; + + if (entitybat.getIsBatHanging()) + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = (float)Math.PI - p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = (float)Math.PI; + this.batHead.setRotationPoint(0.0F, -2.0F, 0.0F); + this.batRightWing.setRotationPoint(-3.0F, 0.0F, 3.0F); + this.batLeftWing.setRotationPoint(3.0F, 0.0F, 3.0F); + this.batBody.rotateAngleX = (float)Math.PI; + this.batRightWing.rotateAngleX = -0.15707964F; + this.batRightWing.rotateAngleY = -((float)Math.PI * 2F / 5F); + this.batOuterRightWing.rotateAngleY = -1.7278761F; + this.batLeftWing.rotateAngleX = this.batRightWing.rotateAngleX; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterLeftWing.rotateAngleY = -this.batOuterRightWing.rotateAngleY; + } + else + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = 0.0F; + this.batHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batRightWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batLeftWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batBody.rotateAngleX = ((float)Math.PI / 4F) + MathHelper.cos(p_78088_4_ * 0.1F) * 0.15F; + this.batBody.rotateAngleY = 0.0F; + this.batRightWing.rotateAngleY = MathHelper.cos(p_78088_4_ * 1.3F) * (float)Math.PI * 0.25F; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterRightWing.rotateAngleY = this.batRightWing.rotateAngleY * 0.5F; + this.batOuterLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY * 0.5F; + } + + this.batHead.render(p_78088_7_); + this.batBody.render(p_78088_7_); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/20bddcc9ac9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/20bddcc9ac9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..ddf8823 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/20bddcc9ac9d00141ce0d62fbd2fd1cf @@ -0,0 +1,102 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityCentipede extends EntityMaster implements IMob { + + public EntityCentipede(World par1World) { + super(par1World); + setSize(0.65f, 0.5f); + + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false, 2.5f * 2.5f)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + // tasks.addTask(5, new EntityAIMate(this, moveSpeed)); + // tasks.addTask(6, new EntityAITempt(this, moveSpeed, Blocks.tallgrass, false)); + // tasks.addTask(7, new EntityAIFollowParent(this, moveSpeed)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 20)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityLiving.class, 16.0F, 0, false, true, IMob.mobSelector)); + } + + /** + * Checks to make sure the light is not too bright where the mob is spawning + */ + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + int var1 = xCoord; + int var2 = yCoord; + int var3 = zCoord; + if (this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, var1, var2, var3) > this.rand.nextInt(32)) { + return false; + } else { + int var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + + if (this.worldObj.isThundering()) { + int var5 = this.worldObj.skylightSubtracted; + this.worldObj.skylightSubtracted = 10; + var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + this.worldObj.skylightSubtracted = var5; + } + + return var4 <= this.rand.nextInt(8); + } + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "duckliving"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "duckliving"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void updateAITick() { + super.updateAITick(); + /* Become Hostile at Night */ + float var3 = this.getBrightness(1.0F); + if (var3 < 0.5) { + angerLevel = 120; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/1046b085039e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/1046b085039e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..b3e8b88 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/1046b085039e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 2f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/700e455aa49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/700e455aa49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..696578c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/700e455aa49d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/20349f36a79d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/20349f36a79d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..679ba9a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/20349f36a79d00141ce0d62fbd2fd1cf @@ -0,0 +1,80 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityCentipede extends EntityMaster implements IMob { + + public EntityCentipede(World par1World) { + super(par1World); + setSize(0.65f, 0.5f); + + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false, 2.5f * 2.5f)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + // tasks.addTask(5, new EntityAIMate(this, moveSpeed)); + // tasks.addTask(6, new EntityAITempt(this, moveSpeed, Blocks.tallgrass, false)); + // tasks.addTask(7, new EntityAIFollowParent(this, moveSpeed)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 20)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityLiving.class, 16.0F, 0, false, true, IMob.mobSelector)); + } + + /** + * Checks to make sure the light is not too bright where the mob is spawning + */ + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + int var1 = xCoord; + int var2 = yCoord; + int var3 = zCoord; + if (this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, var1, var2, var3) > this.rand.nextInt(32)) { + return false; + } else { + int var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + + if (this.worldObj.isThundering()) { + int var5 = this.worldObj.skylightSubtracted; + this.worldObj.skylightSubtracted = 10; + var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + this.worldObj.skylightSubtracted = var5; + } + + return var4 <= this.rand.nextInt(8); + } + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + public void updateAITick() { + super.updateAITick(); + /* Become Hostile at Night */ + float var3 = this.getBrightness(1.0F); + if (var3 < 0.5) { + angerLevel = 120; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/60dfba46039e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/60dfba46039e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..24e53d8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/60dfba46039e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/2054cfe89f9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/2054cfe89f9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..bc6856e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/2054cfe89f9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 20f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/50f7d7a5a99b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/50f7d7a5a99b0014146ffb65627d3cc9 new file mode 100644 index 0000000..d222828 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2e/50f7d7a5a99b0014146ffb65627d3cc9 @@ -0,0 +1,150 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityRabbit extends EntityGenericAnimal implements IAnimals { + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + + public EntityRabbit(World par1World) { + super(par1World); + setSize(0.5f, 0.5f); + + Random rand1 = new Random(); + this.textureID = rand1.nextInt(6); + + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange, true); + } + + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f, true)); + // tasks.addTask(3, new EntityAIAttackOnCollide(this, moveSpeed, false)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + tasks.addTask(5, new EntityAIMate(this, 1.0f, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.carrot, false, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.apple, false, true)); + + tasks.addTask(7, new EntityAIFollowParent(this, 1.1f)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 40, true)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EntityLiving.class, 16.0F, 0, false, true, + // IMob.mobSelector)); + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() { + return 0; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbithurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + @Override + protected String getDeathSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitdead"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && (itemStack.getItem() == Items.apple || itemStack.getItem() == Items.carrot)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { /* Does Not Play a Step Sound */ + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/30f50d36ea9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/30f50d36ea9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..8287b96 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/30f50d36ea9d00141ce0d62fbd2fd1cf @@ -0,0 +1,214 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/a0190315939b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/a0190315939b0014146ffb65627d3cc9 new file mode 100644 index 0000000..d6e8d26 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/a0190315939b0014146ffb65627d3cc9 @@ -0,0 +1,967 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + //if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + //{ + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + //// if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D); + + System.out.println("Player facing value " + playerFacing); + + + this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + // } + //} + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/0064e4195c9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/0064e4195c9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..0330ed4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/0064e4195c9c00141eb99f8dbeb9f10c @@ -0,0 +1,224 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + /*armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI));*/ + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.8883F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.8883F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/905e415f339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/905e415f339d001411accd8c5614e9d3 new file mode 100644 index 0000000..cd13e1c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/905e415f339d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 5, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/b0e94ad1119d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/b0e94ad1119d001411accd8c5614e9d3 new file mode 100644 index 0000000..ba680d7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/b0e94ad1119d001411accd8c5614e9d3 @@ -0,0 +1,97 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/f043d83ae99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/f043d83ae99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3984443 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/f043d83ae99d00141ce0d62fbd2fd1cf @@ -0,0 +1,214 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.bone); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/40974af2df9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/40974af2df9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..5ca07e6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/40974af2df9d00141ce0d62fbd2fd1cf @@ -0,0 +1,5 @@ +package com.stek101.projectzulu.common.mobs.models; + +public class ModelPZBat { + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/80039812f89d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/80039812f89d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6c832ae --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/80039812f89d00141ce0d62fbd2fd1cf @@ -0,0 +1,115 @@ +package com.stek101.projectzulu.common.mobs.models; + +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ModelPZBat extends ModelBase +{ + private ModelRenderer batHead; + /** The body box of the bat model. */ + private ModelRenderer batBody; + /** The inner right wing box of the bat model. */ + private ModelRenderer batRightWing; + /** The inner left wing box of the bat model. */ + private ModelRenderer batLeftWing; + /** The outer right wing box of the bat model. */ + private ModelRenderer batOuterRightWing; + /** The outer left wing box of the bat model. */ + private ModelRenderer batOuterLeftWing; + + public ModelPZBat() + { + this.textureWidth = 64; + this.textureHeight = 64; + this.batHead = new ModelRenderer(this, 0, 0); + this.batHead.addBox(-3.0F, -3.0F, -3.0F, 6, 6, 6); + ModelRenderer modelrenderer = new ModelRenderer(this, 24, 0); + modelrenderer.addBox(-4.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer); + ModelRenderer modelrenderer1 = new ModelRenderer(this, 24, 0); + modelrenderer1.mirror = true; + modelrenderer1.addBox(1.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer1); + this.batBody = new ModelRenderer(this, 0, 16); + this.batBody.addBox(-3.0F, 4.0F, -3.0F, 6, 12, 6); + this.batBody.setTextureOffset(0, 34).addBox(-5.0F, 16.0F, 0.0F, 10, 6, 1); + this.batRightWing = new ModelRenderer(this, 42, 0); + this.batRightWing.addBox(-12.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterRightWing = new ModelRenderer(this, 24, 16); + this.batOuterRightWing.setRotationPoint(-12.0F, 1.0F, 1.5F); + this.batOuterRightWing.addBox(-8.0F, 1.0F, 0.0F, 8, 12, 1); + this.batLeftWing = new ModelRenderer(this, 42, 0); + this.batLeftWing.mirror = true; + this.batLeftWing.addBox(2.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterLeftWing = new ModelRenderer(this, 24, 16); + this.batOuterLeftWing.mirror = true; + this.batOuterLeftWing.setRotationPoint(12.0F, 1.0F, 1.5F); + this.batOuterLeftWing.addBox(0.0F, 1.0F, 0.0F, 8, 12, 1); + this.batBody.addChild(this.batRightWing); + this.batBody.addChild(this.batLeftWing); + this.batRightWing.addChild(this.batOuterRightWing); + this.batLeftWing.addChild(this.batOuterLeftWing); + } + + /** + * not actually sure this is size, is not used as of now, but the model would be recreated if the value changed and + * it seems a good match for a bats size + */ + public int getBatSize() + { + return 36; + } + + /** + * Sets the models various rotation angles then renders the model. + */ + public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_) + { + EntityPZBat entitybat = (EntityPZBat)p_78088_1_; + float f6; + + /* if (entitybat.getIsBatHanging()) + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = (float)Math.PI - p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = (float)Math.PI; + this.batHead.setRotationPoint(0.0F, -2.0F, 0.0F); + this.batRightWing.setRotationPoint(-3.0F, 0.0F, 3.0F); + this.batLeftWing.setRotationPoint(3.0F, 0.0F, 3.0F); + this.batBody.rotateAngleX = (float)Math.PI; + this.batRightWing.rotateAngleX = -0.15707964F; + this.batRightWing.rotateAngleY = -((float)Math.PI * 2F / 5F); + this.batOuterRightWing.rotateAngleY = -1.7278761F; + this.batLeftWing.rotateAngleX = this.batRightWing.rotateAngleX; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterLeftWing.rotateAngleY = -this.batOuterRightWing.rotateAngleY; + } + else*/ + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = 0.0F; + this.batHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batRightWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batLeftWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batBody.rotateAngleX = ((float)Math.PI / 4F) + MathHelper.cos(p_78088_4_ * 0.1F) * 0.15F; + this.batBody.rotateAngleY = 0.0F; + this.batRightWing.rotateAngleY = MathHelper.cos(p_78088_4_ * 1.3F) * (float)Math.PI * 0.25F; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterRightWing.rotateAngleY = this.batRightWing.rotateAngleY * 0.5F; + this.batOuterLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY * 0.5F; + } + + this.batHead.render(p_78088_7_); + this.batBody.render(p_78088_7_); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/2065fd2ed99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/2065fd2ed99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..cb36348 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/2065fd2ed99d00141ce0d62fbd2fd1cf @@ -0,0 +1,85 @@ +package com.stek101.projectzulu.common.blocks; + +import java.util.Random; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entity.EntityOstrichEgg; + +public class ItemFlintAndStone extends Item{ + + public ItemFlintAndStone(boolean full3D, String name) { + super(); + this.maxStackSize = 1; + this.setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setMaxDamage(32); + bFull3D = full3D; + setHasSubtypes(true); + setUnlocalizedName(name); + setTextureName(DefaultProps.blockKey + ":" + name); + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + if (p_77648_7_ == 0) + { + --p_77648_5_; + } + + if (p_77648_7_ == 1) + { + ++p_77648_5_; + } + + if (p_77648_7_ == 2) + { + --p_77648_6_; + } + + if (p_77648_7_ == 3) + { + ++p_77648_6_; + } + + if (p_77648_7_ == 4) + { + --p_77648_4_; + } + + if (p_77648_7_ == 5) + { + ++p_77648_4_; + } + + if (!p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_)) + { + return false; + } + else + { + if (p_77648_3_.isAirBlock(p_77648_4_, p_77648_5_, p_77648_6_)) + { + Random rand1 = new Random(); + p_77648_3_.playSoundEffect((double)p_77648_4_ + 0.5D, (double)p_77648_5_ + 0.5D, (double)p_77648_6_ + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F); + + if (rand1.nextInt(3) == 0){ + p_77648_3_.setBlock(p_77648_4_, p_77648_5_, p_77648_6_, Blocks.fire); + } + } + + p_77648_1_.damageItem(1, p_77648_2_); + return true; + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30cd27e26c9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30cd27e26c9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..ea836f6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/30cd27e26c9b0014146ffb65627d3cc9 @@ -0,0 +1,98 @@ +package com.stek101.projectzulu.common.mobs.packets; + +import io.netty.buffer.ByteBuf; + +import java.io.IOException; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.network.PacketBuffer; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.ProjectZuluLog; +import com.stek101.projectzulu.common.mobs.entity.EntityCamel; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; + +public class PZPacketKeyBind implements IMessage, IMessageHandler { + private String keyBindCode; + private int keyBindValue; + + public PZPacketKeyBind setPacketData (String keyCode, int keyValue) { + this.keyBindCode = keyCode; + this.keyBindValue = keyValue; + return this; + } + + /** + * Called when this message is received. + */ + + @Override + public IMessage onMessage(PZPacketKeyBind message, MessageContext ctx) { + if(ctx.side != Side.SERVER) return null; + + if (message.keyBindCode.equalsIgnoreCase("jump")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + ((EntityCamel)player.ridingEntity).setMountJump(); + } + } + if (message.keyBindCode.equalsIgnoreCase("inventory")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, player.ridingEntity.getEntityId(), 0, 0); + } + } + + if (message.keyBindCode.equalsIgnoreCase("dismount")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, player.ridingEntity.getEntityId(), 0, 0); + } + } + return null; + } + + /** + * Reads the message from bytes. + */ + @Override + public void fromBytes(ByteBuf buf) { + PacketBuffer buffer = new PacketBuffer(buf); + + try { + int kBCLength = buffer.readInt(); + this.keyBindCode = buffer.readStringFromBuffer(kBCLength); + this.keyBindValue = buffer.readInt(); + + } catch (Exception e) { + ProjectZuluLog.severe("There was a problem decoding the packet in PZPacketKeyBind : " + buffer + ".", this); + e.printStackTrace(); + } + } + + /** + * Writes the message into bytes. + */ + @Override + public void toBytes(ByteBuf buf) { + PacketBuffer buffer = new PacketBuffer(buf); + try { + buffer.writeInt(this.keyBindCode.length()); + buffer.writeStringToBuffer(this.keyBindCode); + buffer.writeInt(this.keyBindValue); + + } catch (IOException e) { + ProjectZuluLog.severe("There was a problem encoding the packet in PZPacketKeyBind : " + buffer + ".", this); + e.printStackTrace(); + } + + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/406c1827929b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/406c1827929b0014146ffb65627d3cc9 new file mode 100644 index 0000000..b4ef687 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/406c1827929b0014146ffb65627d3cc9 @@ -0,0 +1,963 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + + this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + this.riddenByEntity.fallDistance = 0.0F; + this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/409989c99a9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/409989c99a9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..0e519a9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/409989c99a9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/605c5e3fa99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/605c5e3fa99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..09dd993 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/605c5e3fa99d00141ce0d62fbd2fd1cf @@ -0,0 +1,107 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/a004cdf1a49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/a004cdf1a49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3fa64d8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/a004cdf1a49d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 25f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0fb5d6ca99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0fb5d6ca99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..a27be74 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0fb5d6ca99d00141ce0d62fbd2fd1cf @@ -0,0 +1,123 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/102da81c9a9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/102da81c9a9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..85cf1fe --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/102da81c9a9b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + // if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + // { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 2, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 2, this.posY, this.posZ); + } + + + + // } + // } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/1073c893949b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/1073c893949b0014146ffb65627d3cc9 new file mode 100644 index 0000000..43d11ef --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/1073c893949b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + entityplayermp.setPosition(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ + 10); + } + if (playerFacing == 1){ + entityplayermp.setPosition(entityplayermp.posX - 10, entityplayermp.posY, entityplayermp.posZ); + } + if (playerFacing == 2){ + entityplayermp.setPosition(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ - 10); + } + if (playerFacing == 3){ + entityplayermp.setPosition(entityplayermp.posX + 10, entityplayermp.posY, entityplayermp.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/2065b774f29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/2065b774f29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..d19825c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/2065b774f29d00141ce0d62fbd2fd1cf @@ -0,0 +1,240 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } + + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/d079e1a2fd9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/d079e1a2fd9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..371351e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/47/d079e1a2fd9d00141ce0d62fbd2fd1cf @@ -0,0 +1,384 @@ +package com.stek101.projectzulu.common.blocks; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.temperature.ITempBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockCampfire extends Block implements ITempBlock { + public enum Type { + Wood(0, "Wood Campfire"), Stone(1, "Stone Campfire"), WoodFire(2, "Lit Campfire"), StoneFire(3, + "Lit Stone Campfire"); + + private int meta; + private final String displayName; + @SideOnly(Side.CLIENT) + private IIcon icon; + + Type(int meta, String displayName) { + this.meta = meta; + this.displayName = displayName; + } + + public int meta() { + return meta; + } + + public String displayName() { + return displayName; + } + + public void setIcon(IIcon icon) { + this.icon = icon; + } + + public IIcon getIcon() { + return icon; + } + + public static Type getTypeByMeta(int meta) { + for (Type type : Type.values()) { + if (type.meta == meta) { + return type; + } + } + return null; + } + } + + public final int renderID; + + public BlockCampfire(int renderID) { + super(Material.wood); + setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setTickRandomly(true); + setBlockBounds(0f, 0.0F, 0.0f, 1.0f, 0.35f, 1.0f); + setHardness(0.5F); + setStepSound(Block.soundTypeStone); + this.renderID = renderID; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int par1, int par2) { + return BlockCampfire.Type.getTypeByMeta(par2).getIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister) { + for (Type type : Type.values()) { + type.setIcon(par1IconRegister.registerIcon(getTextureName() + "_" + type.toString().toLowerCase())); + } + } + + @Override + public void onBlockAdded(World par1World, int par2, int par3, int par4) { + if (par1World.getBlockMetadata(par2, par3, par4) > 1) { + this.setLightLevel(1.0f); + } else { + this.setLightLevel(0); + } + super.onBlockAdded(par1World, par2, par3, par4); + } + + @Override + public int getLightValue(IBlockAccess world, int x, int y, int z) { + if (world.getBlockMetadata(x, y, z) > 1) { + return 15; + } else { + return 0; + } + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { + int meta = par1World.getBlockMetadata(par2, par3, par4); + + /* Handle Fire Spreading, if Stone only Upwards, if Wood adjacent and upwards */ + if (par1World.getGameRules().getGameRuleBooleanValue("doFireTick")) { + + if (meta > 1) { + if (canBlockCatchFire(par1World, par2, par3 + 1, par4, ForgeDirection.UP)) { + par1World.setBlock(par2, par3 + 1, par4, Blocks.fire); + } + } + + if (meta == 2) { + if (canBlockCatchFire(par1World, par2, par3, par4 + 1, ForgeDirection.NORTH)) { + par1World.setBlock(par2, par3, par4 + 1, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2, par3, par4 - 1, ForgeDirection.SOUTH)) { + par1World.setBlock(par2, par3, par4 - 1, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2 + 1, par3, par4, ForgeDirection.WEST)) { + par1World.setBlock(par2 + 1, par3, par4, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2 - 1, par3, par4, ForgeDirection.EAST)) { + par1World.setBlock(par2 - 1, par3, par4, Blocks.fire); + } + } + + } + super.updateTick(par1World, par2, par3, par4, par5Random); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { + //return AxisAlignedBB.getAABBPool().getAABB(par2 + this.minX, par3 + this.minY, par4 + this.minZ, + // par2 + this.maxX, par3 + 0.3, par4 + this.maxZ); + return AxisAlignedBB.getBoundingBox(par2 + this.minX, par3 + this.minY, par4 + this.minZ, + par2 + this.maxX, par3 + 0.3, par4 + this.maxZ); + } + + /** + * checks to see if you can place this block can be placed on that side of a block: BlockLever overrides + */ + @Override + public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) { + + if (par5 != 1) { + return false; + } + + return this.canPlaceBlockAt(par1World, par2, par3, par4); + } + + @SideOnly(Side.CLIENT) + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + for (Type type : Type.values()) { + par3List.add(new ItemStack(this, 1, type.meta)); + } + } + + @Override + public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, + int par6, float par7, float par8, float par9) { + + /* Make sure Player Item is not Null */ + if (par5EntityPlayer.getCurrentEquippedItem() != null) { + /* If Fire is not Lit and Coal is in Hand, Light Fire */ + if (par1World.getBlockMetadata(par2, par3, par4) < 2 + && (par5EntityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(Blocks.torch))) { + if (!par5EntityPlayer.capabilities.isCreativeMode) { + par5EntityPlayer.getCurrentEquippedItem().stackSize -= 1; + } + par1World.setBlockMetadataWithNotify(par2, par3, par4, + par1World.getBlockMetadata(par2, par3, par4) + 2, 3); + return true; + } + + /* If Fire is Lit and Water is in Hand, Put out Fire */ + if (par1World.getBlockMetadata(par2, par3, par4) > 1 + && par5EntityPlayer.getCurrentEquippedItem().getItem() == Items.water_bucket) { + + if (!par5EntityPlayer.capabilities.isCreativeMode) { + par5EntityPlayer.inventory.setInventorySlotContents(par5EntityPlayer.inventory.currentItem, + new ItemStack(Items.bucket)); + } + par1World.setBlockMetadataWithNotify(par2, par3, par4, + par1World.getBlockMetadata(par2, par3, par4) - 2, 3); + return true; + } + } + return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { + + if (par1World.getBlockMetadata(par2, par3, par4) > 1) { + if (par5Random.nextInt(24) == 0) { + par1World.playSound(par2 + 0.5F, par3 + 0.5F, par4 + 0.5F, "fire.fire", 1.0F + par5Random.nextFloat(), + par5Random.nextFloat() * 0.7F + 0.3F, false); + } + + int var6; + float var7; + float var8; + float var9; + if (!World.doesBlockHaveSolidTopSurface(par1World, par2, par3 - 1, par4) + && !canBlockCatchFire(par1World, par2, par3 - 1, par4, ForgeDirection.UP)) { + if (Blocks.fire.canCatchFire(par1World, par2 - 1, par3, par4, ForgeDirection.UP)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat() * 0.1F; + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2 + 1, par3, par4, ForgeDirection.WEST)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + 1 - par5Random.nextFloat() * 0.1F; + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3, par4 - 1, ForgeDirection.SOUTH)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat() * 0.1F; + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3, par4 + 1, ForgeDirection.NORTH)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + 1 - par5Random.nextFloat() * 0.1F; + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3 + 1, par4, ForgeDirection.DOWN)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + 1 - par5Random.nextFloat() * 0.1F; + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + } else { + for (var6 = 0; var6 < 3; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat() * 0.5F + 0.5F; + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + } + + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + } + + /** + * Side sensitive version that calls the block function. + * + * @param world The current world + * @param x X Position + * @param y Y Position + * @param z Z Position + * @param face The side the fire is coming from + * @return True if the face can catch fire. + */ + public boolean canBlockCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) { + Block block = world.getBlock(x, y, z); + if (block != null) { + return block.isFlammable(world, x, y, z, face); + } + return false; + } + + /** + * Side sensitive version that calls the block function. + * + * @param world The current world + * @param x X Position + * @param y Y Position + * @param z Z Position + * @param oldChance The previous maximum chance. + * @param face The side the fire is coming from + * @return The chance of the block catching fire, or oldChance if it is higher + */ + public int getChanceToEncourageFire(World world, int x, int y, int z, int oldChance, ForgeDirection face) { + int newChance = 0; + Block block = world.getBlock(x, y, z); + if (block != null) { + newChance = block.getFireSpreadSpeed(world, x, y, z, face); + } + return (newChance > oldChance ? newChance : oldChance); + } + + @Override + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) { + if (par1World.getBlockMetadata(par2, par3, par4) > 1 + && par1World.getGameRules().getGameRuleBooleanValue("doesCampfireBurn")) { + par5Entity.setFire(1); + } + super.onEntityCollidedWithBlock(par1World, par2, par3, par4, par5Entity); + } + + @Override + public float getAddToPlayTempByNearbyBlock(EntityPlayer player, int blockPosX, int blockPosY, int blockPosZ, + Float playerTemp, float playerLocationTemp) { + return 0.0f; + } + + @Override + public float getAddToLocTempByNearbyBlock(EntityPlayer player, int blockPosX, int blockPosY, int blockPosZ, + Float playerTemp, float playerLocationTemp) { + if (player.worldObj.getBlockMetadata(blockPosX, blockPosY, blockPosZ) > 1) { + return 0.1f; + } + return 0.00f; + } + + @Override + public float getAddToHeatTransferByBlock(EntityPlayer player, float playerTemp, float playerLocationTemp, + float currentHeatRate) { + return 0.0f; + } + + @Override + public boolean getBooleanCauseFastHeatTransferByBlock(EntityPlayer player, float playerTemp, + float playerLocationTemp, float currentHeatRate) { + if (playerLocationTemp > playerTemp) { + return true; + } else { + return false; + } + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + ret.add(new ItemStack(this, 1, metadata)); + return ret; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/90bdae2aaf9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/90bdae2aaf9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3242fe5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/90bdae2aaf9d00141ce0d62fbd2fd1cf @@ -0,0 +1,46 @@ +package com.stek101.projectzulu.common.blocks; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entity.EntityOstrichEgg; + +public class ItemFlintAndStone extends Item{ + + public ItemFlintAndStone(boolean full3D, String name) { + super(); + this.maxStackSize = 16; + this.setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setMaxDamage(5); + bFull3D = full3D; + setHasSubtypes(true); + setUnlocalizedName(name); + setTextureName(DefaultProps.blockKey + ":" + name); + } + + /** + * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer + */ + + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) + { + if (!p_77659_3_.capabilities.isCreativeMode) + { + --p_77659_1_.stackSize; + } + + p_77659_2_.playSoundAtEntity(p_77659_3_, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!p_77659_2_.isRemote) + { + p_77659_2_.spawnEntityInWorld(new EntityOstrichEgg(p_77659_2_, p_77659_3_)); + } + + return p_77659_1_; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/c07995e9e09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/c07995e9e09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..8bca054 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/c07995e9e09d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("Bat", 64, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (38 << 16) + (103 << 8) + 255; + eggColor2 = (224 << 16) + (233 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/d0348f61a49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/d0348f61a49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..4e8362c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/d0348f61a49d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 0f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/60c770e45f9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/60c770e45f9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..aa25699 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/60c770e45f9c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/905ee571e09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/905ee571e09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..cd7bb74 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/905ee571e09d00141ce0d62fbd2fd1cf @@ -0,0 +1,74 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("Bat", 64, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (38 << 16) + (103 << 8) + 255; + eggColor2 = (224 << 16) + (233 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/7041a989999b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/7041a989999b0014146ffb65627d3cc9 new file mode 100644 index 0000000..dae850b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/7041a989999b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 2, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 2, this.posY, this.posZ); + } + + + + // } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/9064b38ba29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/9064b38ba29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..f95f5d6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/9064b38ba29d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = -5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/90c93ca5ea9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/90c93ca5ea9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..8ff2adb --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/90c93ca5ea9d00141ce0d62fbd2fd1cf @@ -0,0 +1,218 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0403741e19d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0403741e19d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..cfe3353 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0403741e19d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("Bat", 64, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/90c209cf2d9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/90c209cf2d9d001411accd8c5614e9d3 new file mode 100644 index 0000000..106ae3c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/90c209cf2d9d001411accd8c5614e9d3 @@ -0,0 +1,83 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericIdle; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.20f).createFromConfig(config, mobName); + //customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.3f, 0.0f, 0.0f, 32.0f, 50f, 16D).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/bloomdoom.png")); + + return new RenderGenericIdle(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom0.png"), new ResourceLocation(DefaultProps.mobKey, "textures/bloomdoomidle0.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/2026be5c729b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/2026be5c729b0014146ffb65627d3cc9 new file mode 100644 index 0000000..dcbdd58 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/2026be5c729b0014146ffb65627d3cc9 @@ -0,0 +1,965 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + + this.riddenByEntity.setPosition(this.posX + 1, this.posY + 1, this.posZ); + this.riddenByEntity.fallDistance = 0.0F; + this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + + this.setDead(); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40ae0c88a39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40ae0c88a39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..e4d6cab --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/40ae0c88a39d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/a00d1e2ee49a001414c08c0578854e21 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/a00d1e2ee49a001414c08c0578854e21 new file mode 100644 index 0000000..e3d4b73 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/a00d1e2ee49a001414c08c0578854e21 @@ -0,0 +1,177 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityGoat extends EntityGenericAnimal implements IAnimals { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + private int timeUntilNextMilking; + private int milkCounter; + private boolean giveMilk; + + + public EntityGoat(World par1World) { + super(par1World); + setSize(1.2f, 0.9f); + + milkCounter = 0; + giveMilk = false; + Random rand1 = new Random(); + this.textureID = rand1.nextInt(3); + this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(4, new EntityAIMate(this, 0.8f)); + tasks.addTask(5, new EntityAITempt(this, 0.9f, Items.wheat, false)); + tasks.addTask(6, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(8, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.apple); + } + + /* Basic timer to determine whether entity can be milked or not */ + if (!this.worldObj.isRemote && !this.isChild() && --this.timeUntilNextMilking <= 0) + { + giveMilk = true; + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + } + + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goatlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goathurt"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Items.wheat) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + +// @Override +// protected void dropRareDrop(int par1) { +// if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { +// entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 7), 1); +// } +// super.dropRareDrop(par1); +// } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if (itemstack != null && itemstack.getItem() == Items.bucket && !p_70085_1_.capabilities.isCreativeMode && (giveMilk == true)) + { + if (itemstack.stackSize-- == 1) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, new ItemStack(Items.milk_bucket)); + } + else if (!p_70085_1_.inventory.addItemStackToInventory(new ItemStack(Items.milk_bucket))) + { + p_70085_1_.dropPlayerItemWithRandomChoice(new ItemStack(Items.milk_bucket, 1, 0), false); + } + this.giveMilk = false; + this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + return true; + } + else + { + return super.interact(p_70085_1_); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/4038614a999d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/4038614a999d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..1ba0d02 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/4038614a999d00141ce0d62fbd2fd1cf @@ -0,0 +1,80 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityCentipede extends EntityMaster implements IMob { + + public EntityCentipede(World par1World) { + super(par1World); + setSize(0.55f, 0.4f); + + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false, 2.5f * 2.5f)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + // tasks.addTask(5, new EntityAIMate(this, moveSpeed)); + // tasks.addTask(6, new EntityAITempt(this, moveSpeed, Blocks.tallgrass, false)); + // tasks.addTask(7, new EntityAIFollowParent(this, moveSpeed)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 20)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityLiving.class, 16.0F, 0, false, true, IMob.mobSelector)); + } + + /** + * Checks to make sure the light is not too bright where the mob is spawning + */ + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + int var1 = xCoord; + int var2 = yCoord; + int var3 = zCoord; + if (this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, var1, var2, var3) > this.rand.nextInt(32)) { + return false; + } else { + int var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + + if (this.worldObj.isThundering()) { + int var5 = this.worldObj.skylightSubtracted; + this.worldObj.skylightSubtracted = 10; + var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + this.worldObj.skylightSubtracted = var5; + } + + return var4 <= this.rand.nextInt(8); + } + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + public void updateAITick() { + super.updateAITick(); + /* Become Hostile at Night */ + float var3 = this.getBrightness(1.0F); + if (var3 < 0.5) { + angerLevel = 120; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/9099c6efe19d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/9099c6efe19d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6b92e17 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/9099c6efe19d00141ce0d62fbd2fd1cf @@ -0,0 +1,115 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.EntityBat; +import net.minecraft.util.MathHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ModelPZBat extends ModelBase +{ + private ModelRenderer batHead; + /** The body box of the bat model. */ + private ModelRenderer batBody; + /** The inner right wing box of the bat model. */ + private ModelRenderer batRightWing; + /** The inner left wing box of the bat model. */ + private ModelRenderer batLeftWing; + /** The outer right wing box of the bat model. */ + private ModelRenderer batOuterRightWing; + /** The outer left wing box of the bat model. */ + private ModelRenderer batOuterLeftWing; + private static final String __OBFID = "CL_00000830"; + + public ModelPZBat() + { + this.textureWidth = 64; + this.textureHeight = 64; + this.batHead = new ModelRenderer(this, 0, 0); + this.batHead.addBox(-3.0F, -3.0F, -3.0F, 6, 6, 6); + ModelRenderer modelrenderer = new ModelRenderer(this, 24, 0); + modelrenderer.addBox(-4.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer); + ModelRenderer modelrenderer1 = new ModelRenderer(this, 24, 0); + modelrenderer1.mirror = true; + modelrenderer1.addBox(1.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer1); + this.batBody = new ModelRenderer(this, 0, 16); + this.batBody.addBox(-3.0F, 4.0F, -3.0F, 6, 12, 6); + this.batBody.setTextureOffset(0, 34).addBox(-5.0F, 16.0F, 0.0F, 10, 6, 1); + this.batRightWing = new ModelRenderer(this, 42, 0); + this.batRightWing.addBox(-12.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterRightWing = new ModelRenderer(this, 24, 16); + this.batOuterRightWing.setRotationPoint(-12.0F, 1.0F, 1.5F); + this.batOuterRightWing.addBox(-8.0F, 1.0F, 0.0F, 8, 12, 1); + this.batLeftWing = new ModelRenderer(this, 42, 0); + this.batLeftWing.mirror = true; + this.batLeftWing.addBox(2.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterLeftWing = new ModelRenderer(this, 24, 16); + this.batOuterLeftWing.mirror = true; + this.batOuterLeftWing.setRotationPoint(12.0F, 1.0F, 1.5F); + this.batOuterLeftWing.addBox(0.0F, 1.0F, 0.0F, 8, 12, 1); + this.batBody.addChild(this.batRightWing); + this.batBody.addChild(this.batLeftWing); + this.batRightWing.addChild(this.batOuterRightWing); + this.batLeftWing.addChild(this.batOuterLeftWing); + } + + /** + * not actually sure this is size, is not used as of now, but the model would be recreated if the value changed and + * it seems a good match for a bats size + */ + public int getBatSize() + { + return 36; + } + + /** + * Sets the models various rotation angles then renders the model. + */ + public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_) + { + EntityBat entitybat = (EntityBat)p_78088_1_; + float f6; + + if (entitybat.getIsBatHanging()) + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = (float)Math.PI - p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = (float)Math.PI; + this.batHead.setRotationPoint(0.0F, -2.0F, 0.0F); + this.batRightWing.setRotationPoint(-3.0F, 0.0F, 3.0F); + this.batLeftWing.setRotationPoint(3.0F, 0.0F, 3.0F); + this.batBody.rotateAngleX = (float)Math.PI; + this.batRightWing.rotateAngleX = -0.15707964F; + this.batRightWing.rotateAngleY = -((float)Math.PI * 2F / 5F); + this.batOuterRightWing.rotateAngleY = -1.7278761F; + this.batLeftWing.rotateAngleX = this.batRightWing.rotateAngleX; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterLeftWing.rotateAngleY = -this.batOuterRightWing.rotateAngleY; + } + else + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = 0.0F; + this.batHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batRightWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batLeftWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batBody.rotateAngleX = ((float)Math.PI / 4F) + MathHelper.cos(p_78088_4_ * 0.1F) * 0.15F; + this.batBody.rotateAngleY = 0.0F; + this.batRightWing.rotateAngleY = MathHelper.cos(p_78088_4_ * 1.3F) * (float)Math.PI * 0.25F; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterRightWing.rotateAngleY = this.batRightWing.rotateAngleY * 0.5F; + this.batOuterLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY * 0.5F; + } + + this.batHead.render(p_78088_7_); + this.batBody.render(p_78088_7_); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/c0bcdbea6c9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/c0bcdbea6c9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..def5539 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/c0bcdbea6c9b0014146ffb65627d3cc9 @@ -0,0 +1,98 @@ +package com.stek101.projectzulu.common.mobs.packets; + +import io.netty.buffer.ByteBuf; + +import java.io.IOException; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.network.PacketBuffer; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.ProjectZuluLog; +import com.stek101.projectzulu.common.mobs.entity.EntityCamel; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; + +public class PZPacketKeyBind implements IMessage, IMessageHandler { + private String keyBindCode; + private int keyBindValue; + + public PZPacketKeyBind setPacketData (String keyCode, int keyValue) { + this.keyBindCode = keyCode; + this.keyBindValue = keyValue; + return this; + } + + /** + * Called when this message is received. + */ + + @Override + public IMessage onMessage(PZPacketKeyBind message, MessageContext ctx) { + if(ctx.side != Side.SERVER) return null; + + if (message.keyBindCode.equalsIgnoreCase("jump")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + ((EntityCamel)player.ridingEntity).setMountJump(); + } + } + if (message.keyBindCode.equalsIgnoreCase("inventory")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, player.ridingEntity.getEntityId(), 0, 0); + } + } + + if (message.keyBindCode.equalsIgnoreCase("dismount")){ + EntityPlayerMP player = ctx.getServerHandler().playerEntity; + if (player.ridingEntity != null && player.ridingEntity instanceof EntityCamel) + { + ((EntityCamel)player.ridingEntity).disMount(); + } + } + return null; + } + + /** + * Reads the message from bytes. + */ + @Override + public void fromBytes(ByteBuf buf) { + PacketBuffer buffer = new PacketBuffer(buf); + + try { + int kBCLength = buffer.readInt(); + this.keyBindCode = buffer.readStringFromBuffer(kBCLength); + this.keyBindValue = buffer.readInt(); + + } catch (Exception e) { + ProjectZuluLog.severe("There was a problem decoding the packet in PZPacketKeyBind : " + buffer + ".", this); + e.printStackTrace(); + } + } + + /** + * Writes the message into bytes. + */ + @Override + public void toBytes(ByteBuf buf) { + PacketBuffer buffer = new PacketBuffer(buf); + try { + buffer.writeInt(this.keyBindCode.length()); + buffer.writeStringToBuffer(this.keyBindCode); + buffer.writeInt(this.keyBindValue); + + } catch (IOException e) { + ProjectZuluLog.severe("There was a problem encoding the packet in PZPacketKeyBind : " + buffer + ".", this); + e.printStackTrace(); + } + + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/90fe3751f59d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/90fe3751f59d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..0ab0d68 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/90fe3751f59d00141ce0d62fbd2fd1cf @@ -0,0 +1,240 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyBats = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityPZBat + && (((EntityPZBat) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } + + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/5087d84d2e9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/5087d84d2e9d001411accd8c5614e9d3 new file mode 100644 index 0000000..aebe73a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/5087d84d2e9d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.5f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/a0b729389a9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/a0b729389a9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..706ea76 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/a0b729389a9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/002df29ba29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/002df29ba29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..c6c284e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/002df29ba29d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/00a5ecadeb9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/00a5ecadeb9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..ec34d6b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/00a5ecadeb9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/70da9808a49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/70da9808a49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..fe02a1a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/70da9808a49d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = -21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/a0c29a12f89d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/a0c29a12f89d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..c99357f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/a0c29a12f89d00141ce0d62fbd2fd1cf @@ -0,0 +1,231 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyBats = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "pzbathurtsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "pzbatlivingsound"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityPZBat + && (((EntityPZBat) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } + + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b06e568f5f9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b06e568f5f9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..43c31dc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/b06e568f5f9c00141eb99f8dbeb9f10c @@ -0,0 +1,242 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise;; + leg1.rotationPointY =; + leg2.rotationPointY =; + leg3.rotationPointY =; + leg4.rotationPointY =; + leg5.rotationPointY =; + leg6.rotationPointY =; + leg7.rotationPointY =; + leg8.rotationPointY =; + + } + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/f07cf7ed339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/f07cf7ed339d001411accd8c5614e9d3 new file mode 100644 index 0000000..9f17048 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/f07cf7ed339d001411accd8c5614e9d3 @@ -0,0 +1,103 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 5, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90591cd8019e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90591cd8019e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..5103bc1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90591cd8019e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.85f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + GL11.glPushMatrix(); + GL11.glScalef(0.85F, 0.85F, 0.85F); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/10f01602369d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/10f01602369d001411accd8c5614e9d3 new file mode 100644 index 0000000..59d9e59 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/10f01602369d001411accd8c5614e9d3 @@ -0,0 +1,103 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/70f75619649c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/70f75619649c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..2ad0cad --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/70f75619649c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -4.1f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/5082a6bb619c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/5082a6bb619c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..7c377a8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/5082a6bb619c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -9f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/a094bff52d9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/a094bff52d9d001411accd8c5614e9d3 new file mode 100644 index 0000000..0d1097b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/a094bff52d9d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.5f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0105f38a09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0105f38a09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3933254 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/c0105f38a09d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 0f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/e0a4681e629c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/e0a4681e629c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..500fe38 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/e0a4681e629c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -7f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/108e7d2d389d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/108e7d2d389d001411accd8c5614e9d3 new file mode 100644 index 0000000..5bb4c1b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6c/108e7d2d389d001411accd8c5614e9d3 @@ -0,0 +1,271 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityCentipede; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 2 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 3) && (bugType <= 5) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else if ((bugType >= 6) && (bugType <= 8) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount3; i++) { + EntityCentipede entity = new EntityCentipede(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + + if (event.block == Blocks.leaves || event.block == Blocks.leaves2){ + int stickDrop = rand1.nextInt(3); + + if (stickDrop == 2) { + ItemStack itemstack1 = new ItemStack(Items.stick, 1); + + double xrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double yrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double zrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + EntityItem itemDrop1 = new EntityItem(event.world, (double) x + xrand, (double) y + yrand, (double) z + zrand, itemstack1); + itemDrop1.delayBeforeCanPickup = 10; + event.world.spawnEntityInWorld(itemDrop1); + + } + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d011093fe89d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d011093fe89d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..52f8535 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d011093fe89d00141ce0d62fbd2fd1cf @@ -0,0 +1,215 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.bone); + } + + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/807fe4f5719b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/807fe4f5719b0014146ffb65627d3cc9 new file mode 100644 index 0000000..77a7088 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/807fe4f5719b0014146ffb65627d3cc9 @@ -0,0 +1,965 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ); + this.riddenByEntity.fallDistance = 0.0F; + this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + + this.setDead(); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0be894bfe9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0be894bfe9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..5b55c1e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/d0be894bfe9d00141ce0d62fbd2fd1cf @@ -0,0 +1,388 @@ +package com.stek101.projectzulu.common.blocks; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.temperature.ITempBlock; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockCampfire extends Block implements ITempBlock { + public enum Type { + Wood(0, "Wood Campfire"), Stone(1, "Stone Campfire"), WoodFire(2, "Lit Campfire"), StoneFire(3, + "Lit Stone Campfire"); + + private int meta; + private final String displayName; + @SideOnly(Side.CLIENT) + private IIcon icon; + + Type(int meta, String displayName) { + this.meta = meta; + this.displayName = displayName; + } + + public int meta() { + return meta; + } + + public String displayName() { + return displayName; + } + + public void setIcon(IIcon icon) { + this.icon = icon; + } + + public IIcon getIcon() { + return icon; + } + + public static Type getTypeByMeta(int meta) { + for (Type type : Type.values()) { + if (type.meta == meta) { + return type; + } + } + return null; + } + } + + public final int renderID; + + public BlockCampfire(int renderID) { + super(Material.wood); + setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setTickRandomly(true); + setBlockBounds(0f, 0.0F, 0.0f, 1.0f, 0.35f, 1.0f); + setHardness(0.5F); + setStepSound(Block.soundTypeStone); + this.renderID = renderID; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int par1, int par2) { + return BlockCampfire.Type.getTypeByMeta(par2).getIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister par1IconRegister) { + for (Type type : Type.values()) { + type.setIcon(par1IconRegister.registerIcon(getTextureName() + "_" + type.toString().toLowerCase())); + } + } + + @Override + public void onBlockAdded(World par1World, int par2, int par3, int par4) { + if (par1World.getBlockMetadata(par2, par3, par4) > 1) { + this.setLightLevel(1.0f); + } else { + this.setLightLevel(0); + } + super.onBlockAdded(par1World, par2, par3, par4); + } + + @Override + public int getLightValue(IBlockAccess world, int x, int y, int z) { + if (world.getBlockMetadata(x, y, z) > 1) { + return 15; + } else { + return 0; + } + } + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { + int meta = par1World.getBlockMetadata(par2, par3, par4); + + /* Handle Fire Spreading, if Stone only Upwards, if Wood adjacent and upwards */ + if (par1World.getGameRules().getGameRuleBooleanValue("doFireTick")) { + + if (meta > 1) { + if (canBlockCatchFire(par1World, par2, par3 + 1, par4, ForgeDirection.UP)) { + par1World.setBlock(par2, par3 + 1, par4, Blocks.fire); + } + } + + if (meta == 2) { + if (canBlockCatchFire(par1World, par2, par3, par4 + 1, ForgeDirection.NORTH)) { + par1World.setBlock(par2, par3, par4 + 1, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2, par3, par4 - 1, ForgeDirection.SOUTH)) { + par1World.setBlock(par2, par3, par4 - 1, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2 + 1, par3, par4, ForgeDirection.WEST)) { + par1World.setBlock(par2 + 1, par3, par4, Blocks.fire); + } else if (canBlockCatchFire(par1World, par2 - 1, par3, par4, ForgeDirection.EAST)) { + par1World.setBlock(par2 - 1, par3, par4, Blocks.fire); + } + } + + } + super.updateTick(par1World, par2, par3, par4, par5Random); + } + + /** + * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been + * cleared to be reused) + */ + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { + //return AxisAlignedBB.getAABBPool().getAABB(par2 + this.minX, par3 + this.minY, par4 + this.minZ, + // par2 + this.maxX, par3 + 0.3, par4 + this.maxZ); + return AxisAlignedBB.getBoundingBox(par2 + this.minX, par3 + this.minY, par4 + this.minZ, + par2 + this.maxX, par3 + 0.3, par4 + this.maxZ); + } + + /** + * checks to see if you can place this block can be placed on that side of a block: BlockLever overrides + */ + @Override + public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5) { + + if (par5 != 1) { + return false; + } + + return this.canPlaceBlockAt(par1World, par2, par3, par4); + } + + @SideOnly(Side.CLIENT) + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + for (Type type : Type.values()) { + par3List.add(new ItemStack(this, 1, type.meta)); + } + } + + @Override + public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, + int par6, float par7, float par8, float par9) { + + /* Make sure Player Item is not Null */ + if (par5EntityPlayer.getCurrentEquippedItem() != null) { + /* If Fire is not Lit and Coal is in Hand, Light Fire */ + if (par1World.getBlockMetadata(par2, par3, par4) < 2 + && ( + (par5EntityPlayer.getCurrentEquippedItem().getItem() == Item.getItemFromBlock(Blocks.torch)) + || + (par5EntityPlayer.getCurrentEquippedItem().getItem() == Items.flint_and_steel) + )) { + if (!par5EntityPlayer.capabilities.isCreativeMode) { + par5EntityPlayer.getCurrentEquippedItem().stackSize -= 1; + } + par1World.setBlockMetadataWithNotify(par2, par3, par4, + par1World.getBlockMetadata(par2, par3, par4) + 2, 3); + return true; + } + + /* If Fire is Lit and Water is in Hand, Put out Fire */ + if (par1World.getBlockMetadata(par2, par3, par4) > 1 + && par5EntityPlayer.getCurrentEquippedItem().getItem() == Items.water_bucket) { + + if (!par5EntityPlayer.capabilities.isCreativeMode) { + par5EntityPlayer.inventory.setInventorySlotContents(par5EntityPlayer.inventory.currentItem, + new ItemStack(Items.bucket)); + } + par1World.setBlockMetadataWithNotify(par2, par3, par4, + par1World.getBlockMetadata(par2, par3, par4) - 2, 3); + return true; + } + } + return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { + + if (par1World.getBlockMetadata(par2, par3, par4) > 1) { + if (par5Random.nextInt(24) == 0) { + par1World.playSound(par2 + 0.5F, par3 + 0.5F, par4 + 0.5F, "fire.fire", 1.0F + par5Random.nextFloat(), + par5Random.nextFloat() * 0.7F + 0.3F, false); + } + + int var6; + float var7; + float var8; + float var9; + if (!World.doesBlockHaveSolidTopSurface(par1World, par2, par3 - 1, par4) + && !canBlockCatchFire(par1World, par2, par3 - 1, par4, ForgeDirection.UP)) { + if (Blocks.fire.canCatchFire(par1World, par2 - 1, par3, par4, ForgeDirection.UP)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat() * 0.1F; + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2 + 1, par3, par4, ForgeDirection.WEST)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + 1 - par5Random.nextFloat() * 0.1F; + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3, par4 - 1, ForgeDirection.SOUTH)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + par5Random.nextFloat() * 0.1F; + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3, par4 + 1, ForgeDirection.NORTH)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat(); + var9 = par4 + 1 - par5Random.nextFloat() * 0.1F; + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + if (canBlockCatchFire(par1World, par2, par3 + 1, par4, ForgeDirection.DOWN)) { + for (var6 = 0; var6 < 2; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + 1 - par5Random.nextFloat() * 0.1F; + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + } else { + for (var6 = 0; var6 < 3; ++var6) { + var7 = par2 + par5Random.nextFloat(); + var8 = par3 + par5Random.nextFloat() * 0.5F + 0.5F; + var9 = par4 + par5Random.nextFloat(); + par1World.spawnParticle("largesmoke", var7, var8, var9, 0.0D, 0.0D, 0.0D); + } + } + + } + + super.randomDisplayTick(par1World, par2, par3, par4, par5Random); + } + + /** + * Side sensitive version that calls the block function. + * + * @param world The current world + * @param x X Position + * @param y Y Position + * @param z Z Position + * @param face The side the fire is coming from + * @return True if the face can catch fire. + */ + public boolean canBlockCatchFire(IBlockAccess world, int x, int y, int z, ForgeDirection face) { + Block block = world.getBlock(x, y, z); + if (block != null) { + return block.isFlammable(world, x, y, z, face); + } + return false; + } + + /** + * Side sensitive version that calls the block function. + * + * @param world The current world + * @param x X Position + * @param y Y Position + * @param z Z Position + * @param oldChance The previous maximum chance. + * @param face The side the fire is coming from + * @return The chance of the block catching fire, or oldChance if it is higher + */ + public int getChanceToEncourageFire(World world, int x, int y, int z, int oldChance, ForgeDirection face) { + int newChance = 0; + Block block = world.getBlock(x, y, z); + if (block != null) { + newChance = block.getFireSpreadSpeed(world, x, y, z, face); + } + return (newChance > oldChance ? newChance : oldChance); + } + + @Override + public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) { + if (par1World.getBlockMetadata(par2, par3, par4) > 1 + && par1World.getGameRules().getGameRuleBooleanValue("doesCampfireBurn")) { + par5Entity.setFire(1); + } + super.onEntityCollidedWithBlock(par1World, par2, par3, par4, par5Entity); + } + + @Override + public float getAddToPlayTempByNearbyBlock(EntityPlayer player, int blockPosX, int blockPosY, int blockPosZ, + Float playerTemp, float playerLocationTemp) { + return 0.0f; + } + + @Override + public float getAddToLocTempByNearbyBlock(EntityPlayer player, int blockPosX, int blockPosY, int blockPosZ, + Float playerTemp, float playerLocationTemp) { + if (player.worldObj.getBlockMetadata(blockPosX, blockPosY, blockPosZ) > 1) { + return 0.1f; + } + return 0.00f; + } + + @Override + public float getAddToHeatTransferByBlock(EntityPlayer player, float playerTemp, float playerLocationTemp, + float currentHeatRate) { + return 0.0f; + } + + @Override + public boolean getBooleanCauseFastHeatTransferByBlock(EntityPlayer player, float playerTemp, + float playerLocationTemp, float currentHeatRate) { + if (playerLocationTemp > playerTemp) { + return true; + } else { + return false; + } + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + ret.add(new ItemStack(this, 1, metadata)); + return ret; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/019b8dd7e99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/019b8dd7e99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..590486b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/019b8dd7e99d00141ce0d62fbd2fd1cf @@ -0,0 +1,214 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.bone); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/60722945319d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/60722945319d001411accd8c5614e9d3 new file mode 100644 index 0000000..47b68f3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/60722945319d001411accd8c5614e9d3 @@ -0,0 +1,947 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + entityplayermp.setPositionAndUpdate(this.posX + 0.3D, this.posY, this.posZ); + + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/90e39ebaa49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/90e39ebaa49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..2fcb2b4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/73/90e39ebaa49d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/007d4c315f9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/007d4c315f9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..152b9b1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/007d4c315f9c00141eb99f8dbeb9f10c @@ -0,0 +1,224 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + /*armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI));*/ + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/003cd19eed9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/003cd19eed9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6787fc7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/003cd19eed9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/008f1c509e9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/008f1c509e9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..30f939e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/008f1c509e9d00141ce0d62fbd2fd1cf @@ -0,0 +1,158 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityMaster extends EntityGenericAnimal { + + List followerList = new ArrayList(); + int numberOfFollowers = 9; + + boolean spawnFollowers = true; + + /* Represents the increments between each slave-Piece, used to determine number of locations needed to track */ + int distanceIncrements = 5; + float distancePerIncrement; + + boolean isPositionListSetup = false; + LinkedList positionList = new LinkedList(); + + public EntityMaster(World par1World) { + super(par1World); + + distancePerIncrement = width / distanceIncrements; + while (followerList.size() < numberOfFollowers) { + followerList.add(null); + } + } + + @Override + public boolean canBePushed() { + return false; + } + + /* Handling of Child Entities Position Must be Handled on Server and Client Side */ + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + + if (!isPositionListSetup) { + double xzOffset = 0; + while (positionList.size() < numberOfFollowers * distanceIncrements + 1) { + positionList.add(Vec3.createVectorHelper(posX + xzOffset, posY, posZ)); + xzOffset += distancePerIncrement; + } + isPositionListSetup = true; + } + + /* Calculate Position Array, used to set the target position for Followers */ + double minDistanceToIterateList = distancePerIncrement; + while (calcDistance(posX, posZ, positionList.getFirst().xCoord, positionList.getFirst().zCoord) > minDistanceToIterateList) { + + double xDist = posX - positionList.getFirst().xCoord; + double zDist = posZ - positionList.getFirst().zCoord; + + double scaleFactor = (minDistanceToIterateList / calcDistance(posX, posZ, positionList.getFirst().xCoord, + positionList.getFirst().zCoord)); + double actualXCoord = positionList.getFirst().xCoord + xDist * scaleFactor; + double actualZCoord = positionList.getFirst().zCoord + zDist * scaleFactor; + + positionList.addFirst(Vec3.createVectorHelper(actualXCoord, posY, actualZCoord)); + positionList.removeLast(); + } + + /* + * Store the Values Gotten from positionList.get from previous iteration Used to Calculate TargetRotation + */ + double prevX = posX; + double prevZ = posZ; + for (int i = 0; i < followerList.size(); i++) { + + if (followerList.get(i) != null) { + EntityFollower entityFollower = followerList.get(i); + + /* Get Position From Position List */ + double setXAround = positionList.get((i + 1) * distanceIncrements).xCoord; + double setZAround = positionList.get((i + 1) * distanceIncrements).zCoord; + double setYAround = positionList.get((i + 1) * distanceIncrements).yCoord; + entityFollower.setTargetPosition(Vec3.createVectorHelper(setXAround, posY, setZAround)); + + entityFollower + .setTargetRotation((float) (Math.atan2(setXAround - prevX, prevZ - setZAround) * (180.0 / Math.PI))); + prevX = setXAround; + prevZ = setZAround; + + /* Check if Prev Point is Dead, is so, I should probably be killed to */ + if (i > 0 && followerList.get(i - 1) != null) { + if (followerList.get(i - 1).isDead) { + entityFollower.shouldBeDying = true; + } + } + } + } + } + + /* Creation of Child Entities should only be Done on Server */ + @Override + public void updateAITick() { + + /* Count Number of Followers, used to determine if more followers should be spawned */ + int currentNumOfFollowers = 0; + for (int i = 0; i < followerList.size(); i++) { + /* Spawn new Followers if Neccesary */ + if (followerList.get(i) == null || (followerList.get(i).isDead && spawnFollowers)) { + followerList.set(i, new EntityFollower(worldObj, posX, posY, posZ, this, i)); + worldObj.spawnEntityInWorld(followerList.get(i)); + } + EntityFollower entityFollower = followerList.get(i); + + /* Count Number of Followers, used to determine if more followers should be spawned */ + if (!entityFollower.isDead) { + currentNumOfFollowers += 1; + } + } + + /* Check if We should Spawn More Followers */ + spawnFollowers = currentNumOfFollowers < numberOfFollowers ? true : false; + super.updateAITick(); + } + + /** + * Code to Assign body to Head, called by Body client Side to establish link + */ + public boolean linkFollowerWithMaster(EntityFollower entityFollower, int followerIndex) { + if (followerList.get(followerIndex) != null && !followerList.get(followerIndex).isDead) { + return false; + } + followerList.set(followerIndex, entityFollower); + return true; + } + + /* Shares Damage with Followers */ + public boolean attackEntityFromChild(EntityFollower var1, DamageSource var2, float var3) { + if (super.attackEntityFrom(var2, var3)) { + for (int i = 0; i < followerList.size(); i++) { + EntityFollower entityFollower = followerList.get(i); + if (entityFollower != null) { + entityFollower.hurtChildFromMaster(var2, var3); + } + } + return true; + } + return false; + } + + @Override + protected boolean canDespawn() { + return true; + } + + private double calcDistance(double x1, double z1, double x2, double z2) { + return Math.sqrt((x2 - x1) * (x2 - x1) + (z2 - z1) * (z2 - z1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/501976f8029e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/501976f8029e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..0e5f66e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/77/501976f8029e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 8f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/00748ca0029e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/00748ca0029e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..2453eb8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/00748ca0029e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 20f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/60217f2d9b9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/60217f2d9b9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..f3c3abd --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/60217f2d9b9b0014146ffb65627d3cc9 @@ -0,0 +1,949 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + entityplayermp.setPositionAndUpdate(this.posX + 0.5D, this.posY, this.posZ); + + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/107aa5ccac9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/107aa5ccac9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..8234366 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/107aa5ccac9d00141ce0d62fbd2fd1cf @@ -0,0 +1,102 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityCentipede extends EntityMaster implements IMob { + + public EntityCentipede(World par1World) { + super(par1World); + setSize(0.65f, 0.5f); + + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false, 2.5f * 2.5f)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + // tasks.addTask(5, new EntityAIMate(this, moveSpeed)); + // tasks.addTask(6, new EntityAITempt(this, moveSpeed, Blocks.tallgrass, false)); + // tasks.addTask(7, new EntityAIFollowParent(this, moveSpeed)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 20)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityLiving.class, 16.0F, 0, false, true, IMob.mobSelector)); + } + + /** + * Checks to make sure the light is not too bright where the mob is spawning + */ + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + int var1 = xCoord; + int var2 = yCoord; + int var3 = zCoord; + if (this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, var1, var2, var3) > this.rand.nextInt(32)) { + return false; + } else { + int var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + + if (this.worldObj.isThundering()) { + int var5 = this.worldObj.skylightSubtracted; + this.worldObj.skylightSubtracted = 10; + var4 = this.worldObj.getBlockLightValue(var1, var2, var3); + this.worldObj.skylightSubtracted = var5; + } + + return var4 <= this.rand.nextInt(8); + } + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "centlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "centhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void updateAITick() { + super.updateAITick(); + /* Become Hostile at Night */ + float var3 = this.getBrightness(1.0F); + if (var3 < 0.5) { + angerLevel = 120; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/800895b2a89b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/800895b2a89b0014146ffb65627d3cc9 new file mode 100644 index 0000000..30d5be6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/800895b2a89b0014146ffb65627d3cc9 @@ -0,0 +1,150 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityRabbit extends EntityGenericAnimal implements IAnimals { + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + + public EntityRabbit(World par1World) { + super(par1World); + setSize(0.5f, 0.5f); + + Random rand1 = new Random(); + this.textureID = rand1.nextInt(5); + + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange, true); + } + + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f, true)); + // tasks.addTask(3, new EntityAIAttackOnCollide(this, moveSpeed, false)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + tasks.addTask(5, new EntityAIMate(this, 1.0f, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.carrot, false, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.apple, false, true)); + + tasks.addTask(7, new EntityAIFollowParent(this, 1.1f)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 40, true)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EntityLiving.class, 16.0F, 0, false, true, + // IMob.mobSelector)); + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() { + return 0; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbithurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + @Override + protected String getDeathSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitdead"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && (itemStack.getItem() == Items.apple || itemStack.getItem() == Items.carrot)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { /* Does Not Play a Step Sound */ + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/806d080e2d9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/806d080e2d9d001411accd8c5614e9d3 new file mode 100644 index 0000000..ee76b30 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/806d080e2d9d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/507b49c89e9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/507b49c89e9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..9a13a3c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/507b49c89e9d00141ce0d62fbd2fd1cf @@ -0,0 +1,158 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityMaster extends EntityGenericAnimal { + + List followerList = new ArrayList(); + int numberOfFollowers = 5; + + boolean spawnFollowers = true; + + /* Represents the increments between each slave-Piece, used to determine number of locations needed to track */ + int distanceIncrements = 3; + float distancePerIncrement; + + boolean isPositionListSetup = false; + LinkedList positionList = new LinkedList(); + + public EntityMaster(World par1World) { + super(par1World); + + distancePerIncrement = width / distanceIncrements; + while (followerList.size() < numberOfFollowers) { + followerList.add(null); + } + } + + @Override + public boolean canBePushed() { + return false; + } + + /* Handling of Child Entities Position Must be Handled on Server and Client Side */ + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + + if (!isPositionListSetup) { + double xzOffset = 0; + while (positionList.size() < numberOfFollowers * distanceIncrements + 1) { + positionList.add(Vec3.createVectorHelper(posX + xzOffset, posY, posZ)); + xzOffset += distancePerIncrement; + } + isPositionListSetup = true; + } + + /* Calculate Position Array, used to set the target position for Followers */ + double minDistanceToIterateList = distancePerIncrement; + while (calcDistance(posX, posZ, positionList.getFirst().xCoord, positionList.getFirst().zCoord) > minDistanceToIterateList) { + + double xDist = posX - positionList.getFirst().xCoord; + double zDist = posZ - positionList.getFirst().zCoord; + + double scaleFactor = (minDistanceToIterateList / calcDistance(posX, posZ, positionList.getFirst().xCoord, + positionList.getFirst().zCoord)); + double actualXCoord = positionList.getFirst().xCoord + xDist * scaleFactor; + double actualZCoord = positionList.getFirst().zCoord + zDist * scaleFactor; + + positionList.addFirst(Vec3.createVectorHelper(actualXCoord, posY, actualZCoord)); + positionList.removeLast(); + } + + /* + * Store the Values Gotten from positionList.get from previous iteration Used to Calculate TargetRotation + */ + double prevX = posX; + double prevZ = posZ; + for (int i = 0; i < followerList.size(); i++) { + + if (followerList.get(i) != null) { + EntityFollower entityFollower = followerList.get(i); + + /* Get Position From Position List */ + double setXAround = positionList.get((i + 1) * distanceIncrements).xCoord; + double setZAround = positionList.get((i + 1) * distanceIncrements).zCoord; + double setYAround = positionList.get((i + 1) * distanceIncrements).yCoord; + entityFollower.setTargetPosition(Vec3.createVectorHelper(setXAround, posY, setZAround)); + + entityFollower + .setTargetRotation((float) (Math.atan2(setXAround - prevX, prevZ - setZAround) * (180.0 / Math.PI))); + prevX = setXAround; + prevZ = setZAround; + + /* Check if Prev Point is Dead, is so, I should probably be killed to */ + if (i > 0 && followerList.get(i - 1) != null) { + if (followerList.get(i - 1).isDead) { + entityFollower.shouldBeDying = true; + } + } + } + } + } + + /* Creation of Child Entities should only be Done on Server */ + @Override + public void updateAITick() { + + /* Count Number of Followers, used to determine if more followers should be spawned */ + int currentNumOfFollowers = 0; + for (int i = 0; i < followerList.size(); i++) { + /* Spawn new Followers if Neccesary */ + if (followerList.get(i) == null || (followerList.get(i).isDead && spawnFollowers)) { + followerList.set(i, new EntityFollower(worldObj, posX, posY, posZ, this, i)); + worldObj.spawnEntityInWorld(followerList.get(i)); + } + EntityFollower entityFollower = followerList.get(i); + + /* Count Number of Followers, used to determine if more followers should be spawned */ + if (!entityFollower.isDead) { + currentNumOfFollowers += 1; + } + } + + /* Check if We should Spawn More Followers */ + spawnFollowers = currentNumOfFollowers < numberOfFollowers ? true : false; + super.updateAITick(); + } + + /** + * Code to Assign body to Head, called by Body client Side to establish link + */ + public boolean linkFollowerWithMaster(EntityFollower entityFollower, int followerIndex) { + if (followerList.get(followerIndex) != null && !followerList.get(followerIndex).isDead) { + return false; + } + followerList.set(followerIndex, entityFollower); + return true; + } + + /* Shares Damage with Followers */ + public boolean attackEntityFromChild(EntityFollower var1, DamageSource var2, float var3) { + if (super.attackEntityFrom(var2, var3)) { + for (int i = 0; i < followerList.size(); i++) { + EntityFollower entityFollower = followerList.get(i); + if (entityFollower != null) { + entityFollower.hurtChildFromMaster(var2, var3); + } + } + return true; + } + return false; + } + + @Override + protected boolean canDespawn() { + return true; + } + + private double calcDistance(double x1, double z1, double x2, double z2) { + return Math.sqrt((x2 - x1) * (x2 - x1) + (z2 - z1) * (z2 - z1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/40962b70939b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/40962b70939b0014146ffb65627d3cc9 new file mode 100644 index 0000000..7b358d5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/40962b70939b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + //if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + //{ + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + //// if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ + 10); + } + if (playerFacing == 1){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX - 10, entityplayermp.posY, entityplayermp.posZ); + } + if (playerFacing == 2){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ - 10); + } + if (playerFacing == 3){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX + 10, entityplayermp.posY, entityplayermp.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + // } + //} + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/806b9211a49a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/806b9211a49a00141f13f9c36e449edd new file mode 100644 index 0000000..e5167e9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/81/806b9211a49a00141f13f9c36e449edd @@ -0,0 +1,595 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if ((maxDropXP > 100) && (maxDropXP < 0)){ + ProjectZuluLog.warning("Warning : The value of MaxDropXP is INVALID. Resetting to default value of 100"); + maxDropXP = 100; + } + + if ((percKeptXp > 100) && (percKeptXp < 0)){ + ProjectZuluLog.warning("Warning : The value of percKeptXp is INVALID. Resetting to default value of 0"); + percKeptXp = 0; + } + + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + System.out.println("total player xp to drop : " + xpDropped ); + System.out.println("subtotal player xp minus xpDropped : " + (player.experienceTotal - xpDropped)); + System.out.println("player kepXp percent : " + ((float) percKeptXp / 100)); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/10a24c14dc9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/10a24c14dc9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..8a25fb7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/10a24c14dc9d00141ce0d62fbd2fd1cf @@ -0,0 +1,126 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + if (getEntityState() != EntityStates.idle){ + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomlivingsound"; + } + return null; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 8D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/30d1c933a09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/30d1c933a09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..c645cf1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/30d1c933a09d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 0f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/606a124ded9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/606a124ded9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..19ea979 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/606a124ded9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0c836e8629c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0c836e8629c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..b61cf7a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/b0c836e8629c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -2.5f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5093960c049e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5093960c049e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..a13ea6b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/5093960c049e00141ce0d62fbd2fd1cf @@ -0,0 +1,271 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityCentipede; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(15) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 2 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 3) && (bugType <= 5) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else if ((bugType >= 6) && (bugType <= 8) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount3; i++) { + EntityCentipede entity = new EntityCentipede(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + + if (event.block == Blocks.leaves || event.block == Blocks.leaves2){ + int stickDrop = rand1.nextInt(3); + + if (stickDrop == 2) { + ItemStack itemstack1 = new ItemStack(Items.stick, 1); + + double xrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double yrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + double zrand = (double) (event.world.rand.nextFloat() * 0.7F) + (double) (0.3F) * 0.5D; + EntityItem itemDrop1 = new EntityItem(event.world, (double) event.x + xrand, (double) event.y + yrand, (double) event.z + zrand, itemstack1); + itemDrop1.delayBeforeCanPickup = 10; + event.world.spawnEntityInWorld(itemDrop1); + + } + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/c05fa8052c9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/c05fa8052c9d001411accd8c5614e9d3 new file mode 100644 index 0000000..3c72605 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/c05fa8052c9d001411accd8c5614e9d3 @@ -0,0 +1,101 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, (Items.dye, 15), false)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/50d95e72a99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/50d95e72a99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..5cbd60b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/50d95e72a99d00141ce0d62fbd2fd1cf @@ -0,0 +1,126 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + if (getEntityState() != EntityStates.idle) + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomlivingsound"; + + return null; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/d0a0ba21e89d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/d0a0ba21e89d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..c3e7c66 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/d0a0ba21e89d00141ce0d62fbd2fd1cf @@ -0,0 +1,205 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + protected void dropRareDrop(int par1) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + } + super.dropRareDrop(par1); + } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c09c0f86959b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c09c0f86959b0014146ffb65627d3cc9 new file mode 100644 index 0000000..109de4d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/c09c0f86959b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ + 5); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 5, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 5); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 5, this.posY, this.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/90dc68b6979b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/90dc68b6979b0014146ffb65627d3cc9 new file mode 100644 index 0000000..14dec58 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/90dc68b6979b0014146ffb65627d3cc9 @@ -0,0 +1,970 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(event.targetX - 2, event.targetY, event.targetZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(event.targetX + 2, event.targetY, event.targetZ); + } + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/b0066fbc969b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/b0066fbc969b0014146ffb65627d3cc9 new file mode 100644 index 0000000..43ea262 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/b0066fbc969b0014146ffb65627d3cc9 @@ -0,0 +1,54 @@ +package com.stek101.projectzulu.common; + +import net.minecraft.client.Minecraft; + +import com.stek101.projectzulu.common.mobs.packets.PZPacketKeyBind; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + + +public class KeyHandler { + //public static KeyBinding mount_jump; + //public static KeyBinding mount_inv; + private PZPacketKeyBind message; + private Minecraft mc; + public static KeyHandler instance; + + public KeyHandler(){ + instance = this; + //mount_jump = new KeyBinding("key.ping", Keyboard.KEY_0, "key.categories.pz"); + // Define the "pong" binding, with (unlocalized) name "key.pong" and + // the category with (unlocalized) name "key.categories.mymod" and + // key code 25 ("P", LWJGL constant: Keyboard.KEY_P) + //mount_inv = new KeyBinding("key.pong", Keyboard.KEY_P, "key.categories.pz"); + + // Register both KeyBindings to the ClientRegistry + //ClientRegistry.registerKeyBinding(mount_jump); + //ClientRegistry.registerKeyBinding(mount_inv); + } + + + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onKeyInput(InputEvent.KeyInputEvent event) { + if(Minecraft.getMinecraft().inGameHasFocus) { + if(Minecraft.getMinecraft().gameSettings.keyBindJump.getIsKeyPressed()) + { + message = new PZPacketKeyBind().setPacketData("jump", 90); + ProjectZulu_Core.packetHandler.sendToServer(message); + } + if(Minecraft.getMinecraft().gameSettings.keyBindInventory.getIsKeyPressed()){ + message = new PZPacketKeyBind().setPacketData("inventory", 0); + ProjectZulu_Core.packetHandler.sendToServer(message); + } + if(Minecraft.getMinecraft().gameSettings.keyBindSneak.getIsKeyPressed()){ + message = new PZPacketKeyBind().setPacketData("dismount", 0); + ProjectZulu_Core.packetHandler.sendToServer(message); + } + + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/80d23adda29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/80d23adda29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6fbcd71 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/80d23adda29d00141ce0d62fbd2fd1cf @@ -0,0 +1,212 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/30bc042ca59d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/30bc042ca59d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..f361b73 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/30bc042ca59d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 29f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/4025577e379d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/4025577e379d001411accd8c5614e9d3 new file mode 100644 index 0000000..39832e0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/4025577e379d001411accd8c5614e9d3 @@ -0,0 +1,252 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityCentipede; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 2 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 3) && (bugType <= 5) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else if ((bugType >= 6) && (bugType <= 8) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount3; i++) { + EntityCentipede entity = new EntityCentipede(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/505b2999ea9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/505b2999ea9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..790a39a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/505b2999ea9d00141ce0d62fbd2fd1cf @@ -0,0 +1,218 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/70968f3d129d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/70968f3d129d001411accd8c5614e9d3 new file mode 100644 index 0000000..e158a97 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/70968f3d129d001411accd8c5614e9d3 @@ -0,0 +1,94 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleAS; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleBS; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelFishA; +import com.stek101.projectzulu.common.mobs.models.ModelSandWorm; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericIdle; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLivingMT; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.20f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/bloomdoom.png")); + + return new RenderGenericIdle(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom0.png"), new ResourceLocation(DefaultProps.mobKey, "textures/bloomdoomidle0.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/505079aa639c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/505079aa639c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..086e370 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/505079aa639c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -3.5f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/c0213a912e9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/c0213a912e9d001411accd8c5614e9d3 new file mode 100644 index 0000000..1e872fa --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/c0213a912e9d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 5f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/e0f081e9639c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/e0f081e9639c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..358c500 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/e0f081e9639c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -3.8f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/10f27e5d969a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/10f27e5d969a00141f13f9c36e449edd new file mode 100644 index 0000000..02738ff --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/10f27e5d969a00141f13f9c36e449edd @@ -0,0 +1,590 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if (maxDropXP + percKeptXp > 100){ + ProjectZuluLog.warning("Warning : The total of MaxDropXP and percKeptXP is greater than 100. Resetting to default"); + maxDropXP = 100; + percKeptXp = 0; + } + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + System.out.println("total player xp to drop : " + xpDropped ); + System.out.println("subtotal player xp minus xpDropped : " + (player.experienceTotal - xpDropped)); + System.out.println("player kepXp percent : " + ((float) percKeptXp / 100)); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/201e6426979b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/201e6426979b0014146ffb65627d3cc9 new file mode 100644 index 0000000..adeb6e0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/201e6426979b0014146ffb65627d3cc9 @@ -0,0 +1,54 @@ +package com.stek101.projectzulu.common; + +import net.minecraft.client.Minecraft; + +import com.stek101.projectzulu.common.mobs.packets.PZPacketKeyBind; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + + +public class KeyHandler { + //public static KeyBinding mount_jump; + //public static KeyBinding mount_inv; + private PZPacketKeyBind message; + private Minecraft mc; + public static KeyHandler instance; + + public KeyHandler(){ + instance = this; + //mount_jump = new KeyBinding("key.ping", Keyboard.KEY_0, "key.categories.pz"); + // Define the "pong" binding, with (unlocalized) name "key.pong" and + // the category with (unlocalized) name "key.categories.mymod" and + // key code 25 ("P", LWJGL constant: Keyboard.KEY_P) + //mount_inv = new KeyBinding("key.pong", Keyboard.KEY_P, "key.categories.pz"); + + // Register both KeyBindings to the ClientRegistry + //ClientRegistry.registerKeyBinding(mount_jump); + //ClientRegistry.registerKeyBinding(mount_inv); + } + + + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onKeyInput(InputEvent.KeyInputEvent event) { + if(Minecraft.getMinecraft().inGameHasFocus) { + if(Minecraft.getMinecraft().gameSettings.keyBindJump.getIsKeyPressed()) + { + message = new PZPacketKeyBind().setPacketData("jump", 90); + ProjectZulu_Core.packetHandler.sendToServer(message); + } + if(Minecraft.getMinecraft().gameSettings.keyBindInventory.getIsKeyPressed()){ + message = new PZPacketKeyBind().setPacketData("inventory", 0); + ProjectZulu_Core.packetHandler.sendToServer(message); + } + // if(Minecraft.getMinecraft().gameSettings.keyBindSneak.getIsKeyPressed()){ + // message = new PZPacketKeyBind().setPacketData("dismount", 0); + // ProjectZulu_Core.packetHandler.sendToServer(message); + // } + + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/104aac85e59d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/104aac85e59d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..b801de2 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/104aac85e59d00141ce0d62fbd2fd1cf @@ -0,0 +1,175 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + } + + this.maxFlightHeight = 5; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + // this.tasks.addTask(2, new EntityAIAttackOnCollide(this, this.moveSpeed, false)); + this.tasks.addTask(6, new EntityAIFlyingWander(this, (float) moveSpeed)); + // this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + // this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + protected void dropRareDrop(int par1) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + } + super.dropRareDrop(par1); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00d1cb81e49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00d1cb81e49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..ac4d5d5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00d1cb81e49d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("PZBat", 65, EntityPZBat.class, EnumCreatureType.monster); + setSpawnProperties(10, 5, 4, 4); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(6f, 1.0f, 0.3f, 100f, 0.0f, 32.0f, 30.0f, 10D).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00f488fe989b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00f488fe989b0014146ffb65627d3cc9 new file mode 100644 index 0000000..5fa81b1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/00f488fe989b0014146ffb65627d3cc9 @@ -0,0 +1,970 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(event.targetX - 2, event.targetY, event.targetZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(event.targetX + 2, event.targetY, event.targetZ); + } + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/e021880fec9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/e021880fec9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..2c583e6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/e021880fec9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/10c8694c5d9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/10c8694c5d9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..f4e57a1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/10c8694c5d9c00141eb99f8dbeb9f10c @@ -0,0 +1,97 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 6; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/202c452c9b9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/202c452c9b9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..0c54af6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/202c452c9b9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/708a1374369d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/708a1374369d001411accd8c5614e9d3 new file mode 100644 index 0000000..70018ac --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/708a1374369d001411accd8c5614e9d3 @@ -0,0 +1,239 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + + if (bugType <= 5 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 6) && (bugType <= 7)) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/806748ea9a9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/806748ea9a9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..c3d9182 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/806748ea9a9b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + // if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + // { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + /* System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 1D, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 1D, this.posY, this.posZ); + }*/ + + entityplayermp.setPositionAndUpdate(this.posX + 0.5D, this.posY, this.posZ); + + // } + // } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/e07ca595969a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/e07ca595969a00141f13f9c36e449edd new file mode 100644 index 0000000..efb428b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/e07ca595969a00141f13f9c36e449edd @@ -0,0 +1,590 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if (maxDropXP + percKeptXp > 100){ + ProjectZuluLog.warning("Warning : The total of MaxDropXP and percKeptXP is greater than 100. Resetting to default"); + maxDropXP = 100; + percKeptXp = 0; + } + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + //System.out.println("total player xp to drop : " + xpDropped ); + //System.out.println("subtotal player xp minus xpDropped : " + (player.experienceTotal - xpDropped)); + //System.out.println("player kepXp percent : " + ((float) percKeptXp / 100)); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + //System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/f09a70f12f9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/f09a70f12f9d001411accd8c5614e9d3 new file mode 100644 index 0000000..6de9b7e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/f09a70f12f9d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 15f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/208d48baaa9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/208d48baaa9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..da3cf42 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/208d48baaa9b0014146ffb65627d3cc9 @@ -0,0 +1,150 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityRabbit extends EntityGenericAnimal implements IAnimals { + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + + public EntityRabbit(World par1World) { + super(par1World); + setSize(0.5f, 0.5f); + + Random rand1 = new Random(); + this.textureID = rand1.nextInt(8); + + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange, true); + } + + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f, true)); + // tasks.addTask(3, new EntityAIAttackOnCollide(this, moveSpeed, false)); + // tasks.addTask(4, new EntityAIFollowOwner(this, moveSpeed, 10.0F, 2.0F)); + + tasks.addTask(5, new EntityAIMate(this, 1.0f, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.carrot, false, true)); + tasks.addTask(6, new EntityAITempt(this, 1.2f, Items.apple, false, true)); + + tasks.addTask(7, new EntityAIFollowParent(this, 1.1f)); + tasks.addTask(9, new EntityAIWander(this, 1.0f, 40, true)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + // targetTasks.addTask(4, new EntityAINearestAttackableTarget(this, EntityLiving.class, 16.0F, 0, false, true, + // IMob.mobSelector)); + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() { + return 0; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbithurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + @Override + protected String getDeathSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "rabbitdead"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && (itemStack.getItem() == Items.apple || itemStack.getItem() == Items.carrot)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { /* Does Not Play a Step Sound */ + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/90257858c39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/90257858c39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..08787f3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/90257858c39d00141ce0d62fbd2fd1cf @@ -0,0 +1,126 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + if (getEntityState() != EntityStates.idle){ + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomlivingsound"; + } + return null; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 10D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/b0e8f4cca39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/b0e8f4cca39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..af38925 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/b0e8f4cca39d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = -21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/f06ad844db9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/f06ad844db9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..bc63639 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ae/f06ad844db9d00141ce0d62fbd2fd1cf @@ -0,0 +1,169 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityGoat extends EntityGenericAnimal implements IAnimals { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + private int timeUntilNextMilking; + private int milkCounter; + private boolean giveMilk; + + + public EntityGoat(World par1World) { + super(par1World); + setSize(1.2f, 0.9f); + + milkCounter = 0; + giveMilk = false; + Random rand1 = new Random(); + this.textureID = rand1.nextInt(3); + this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(4, new EntityAIMate(this, 0.8f)); + tasks.addTask(5, new EntityAITempt(this, 0.9f, Items.wheat, false)); + tasks.addTask(6, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(8, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.apple); + } + + /* Basic timer to determine whether entity can be milked or not */ + if (!this.worldObj.isRemote && !this.isChild() && --this.timeUntilNextMilking <= 0) + { + giveMilk = true; + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + } + + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goatlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goathurt"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Items.wheat) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if (itemstack != null && itemstack.getItem() == Items.bucket && !p_70085_1_.capabilities.isCreativeMode && (giveMilk == true)) + { + if (itemstack.stackSize-- == 1) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, new ItemStack(Items.milk_bucket)); + } + else if (!p_70085_1_.inventory.addItemStackToInventory(new ItemStack(Items.milk_bucket))) + { + p_70085_1_.dropPlayerItemWithRandomChoice(new ItemStack(Items.milk_bucket, 1, 0), false); + } + this.giveMilk = false; + this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + return true; + } + else + { + return super.interact(p_70085_1_); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/8088833d129d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/8088833d129d001411accd8c5614e9d3 new file mode 100644 index 0000000..0b885b0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/8088833d129d001411accd8c5614e9d3 @@ -0,0 +1,101 @@ +package com.stek101.projectzulu.common; + +import java.io.File; + +import net.minecraftforge.common.MinecraftForge; + +import com.stek101.projectzulu.common.core.CustomEntityManager; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.ChangeVanillaDrops; +import com.stek101.projectzulu.common.mobs.entitydefaults.AlligatorDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.AntRavegerDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ArmadilloDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearBlackDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearBrownDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearPolarDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeaverDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeetleASDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeetleBSDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BloomDoomDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BlueFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BoarDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CamelDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CentipedeDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CrowDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DeerDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DuckDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DuckEggDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.EagleDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ElephantDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FishADeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FishBDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FollowerDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FoxDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FrogDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GiantRatDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GiraffeDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GoatDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GorillaDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GreenFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HauntedArmorDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HornbillDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HorseBlackDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.LizardDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.LizardSpitDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MammothDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MimicDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MinotaurDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MonkeyDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MummyDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.OstrichDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.OstrichEggDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PelicanDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PenguinDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PharaohDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RabbitDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RedFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RhinoDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RipperFinDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.SandwormDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.SkeletonnDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ThrowingRockDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.TreeEntDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.VultureDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.YellowFinchDeclaration; + +import cpw.mods.fml.common.event.FMLInitializationEvent; + +public class ProjectZulu_Mobs extends BaseModule { + + @Override + public String getIdentifier() { + return DefaultProps.MobsModId; + } + + @Override + public void registration(CustomEntityManager manager) { + manager.addEntity(new ArmadilloDeclaration(), new SandwormDeclaration(), new LizardDeclaration(), + new LizardSpitDeclaration(), new PharaohDeclaration(), new MummyDeclaration(), + new VultureDeclaration(), new TreeEntDeclaration(), new MammothDeclaration(), new FoxDeclaration(), + new BoarDeclaration(), new MimicDeclaration(), new AlligatorDeclaration(), new FrogDeclaration(), + new PenguinDeclaration(), new BeaverDeclaration(), new BearBlackDeclaration(), + new BearBrownDeclaration(), new BearPolarDeclaration(), new OstrichDeclaration(), + new RhinoDeclaration(), new RabbitDeclaration(), new RedFinchDeclaration(), + new GreenFinchDeclaration(), new BlueFinchDeclaration(), new GorillaDeclaration(), + new GiraffeDeclaration(), new ElephantDeclaration(), new HorseBlackDeclaration(), + //new HorseBrownDeclaration(), new HorseDarkBlackDeclaration(), new HorseBeigeDeclaration(), + //new HorseDarkBrownDeclaration(), new HorseGreyDeclaration(), new HorseWhiteDeclaration(), + new EagleDeclaration(), new HornbillDeclaration(), new PelicanDeclaration(), new MinotaurDeclaration(), + new HauntedArmorDeclaration(), new CentipedeDeclaration(), new FollowerDeclaration(), + new YellowFinchDeclaration(), new GoatDeclaration(), new DuckDeclaration(), + new DuckEggDeclaration(), new DeerDeclaration(), new SkeletonnDeclaration(), new FishADeclaration(), + new RipperFinDeclaration(), new OstrichEggDeclaration(), new GiantRatDeclaration(), new FishBDeclaration(), + new CrowDeclaration(), new CamelDeclaration(), new MonkeyDeclaration(), new ThrowingRockDeclaration(), // new AntRavegerDeclaration(), + new BeetleASDeclaration(), new BeetleBSDeclaration(), new BloomDoomDeclaration()); + } + + @Override + public void init(FMLInitializationEvent event, File configDirectory) { + MinecraftForge.EVENT_BUS.register(new ChangeVanillaDrops()); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d0ecd055e39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d0ecd055e39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6006d85 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/d0ecd055e39d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("PZBat", 65, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/601f91ef999d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/601f91ef999d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..4349cc1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/601f91ef999d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 1.3f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(f5); + body.render(f5); + sidebody3.render(f5); + sidebody1.render(f5); + ANTENLEFROT1.render(f5); + ANTENRIGROT1.render(f5); + LEG11ROT.render(f5); + LEG21ROT.render(f5); + LEG31ROT.render(f5); + LEG41ROT.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/b086930caf9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/b086930caf9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..fe6ff0d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/b086930caf9d00141ce0d62fbd2fd1cf @@ -0,0 +1,46 @@ +package com.stek101.projectzulu.common.blocks; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entity.EntityOstrichEgg; + +public class ItemFlintStone extends Item{ + + public ItemFlintStone(boolean full3D, String name) { + super(); + this.maxStackSize = 16; + this.setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setMaxDamage(5); + bFull3D = full3D; + setHasSubtypes(true); + setUnlocalizedName(name); + setTextureName(DefaultProps.blockKey + ":" + name); + } + + /** + * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer + */ + + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) + { + if (!p_77659_3_.capabilities.isCreativeMode) + { + --p_77659_1_.stackSize; + } + + p_77659_2_.playSoundAtEntity(p_77659_3_, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!p_77659_2_.isRemote) + { + p_77659_2_.spawnEntityInWorld(new EntityOstrichEgg(p_77659_2_, p_77659_3_)); + } + + return p_77659_1_; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0191d22299d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0191d22299d001411accd8c5614e9d3 new file mode 100644 index 0000000..870772a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0191d22299d001411accd8c5614e9d3 @@ -0,0 +1,97 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/304e9e539a9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/304e9e539a9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..9dec70d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/304e9e539a9b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + // if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + // { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2D); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 2D, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 2D); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 2D, this.posY, this.posZ); + } + + entityplayermp.setPositionAndUpdate(this.posX + 2D, this.posY, this.posZ); + + // } + // } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/10e9b945619c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/10e9b945619c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..4c1ddd8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/10e9b945619c00141eb99f8dbeb9f10c @@ -0,0 +1,89 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleAS; +import com.stek101.projectzulu.common.mobs.models.ModelBeetleBS; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelFishA; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLivingMT; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.20f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/40b18b48629c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/40b18b48629c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..f010945 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/40b18b48629c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -8f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/602b4edeaf9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/602b4edeaf9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..76ccbeb --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/602b4edeaf9d00141ce0d62fbd2fd1cf @@ -0,0 +1,79 @@ +package com.stek101.projectzulu.common.blocks; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entity.EntityOstrichEgg; + +public class ItemFlintAndStone extends Item{ + + public ItemFlintAndStone(boolean full3D, String name) { + super(); + this.maxStackSize = 1; + this.setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setMaxDamage(32); + bFull3D = full3D; + setHasSubtypes(true); + setUnlocalizedName(name); + setTextureName(DefaultProps.blockKey + ":" + name); + } + + /** + * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return + * True if something happen and false if it don't. This is for ITEMS, not BLOCKS + */ + public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + if (p_77648_7_ == 0) + { + --p_77648_5_; + } + + if (p_77648_7_ == 1) + { + ++p_77648_5_; + } + + if (p_77648_7_ == 2) + { + --p_77648_6_; + } + + if (p_77648_7_ == 3) + { + ++p_77648_6_; + } + + if (p_77648_7_ == 4) + { + --p_77648_4_; + } + + if (p_77648_7_ == 5) + { + ++p_77648_4_; + } + + if (!p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_)) + { + return false; + } + else + { + if (p_77648_3_.isAirBlock(p_77648_4_, p_77648_5_, p_77648_6_)) + { + p_77648_3_.playSoundEffect((double)p_77648_4_ + 0.5D, (double)p_77648_5_ + 0.5D, (double)p_77648_6_ + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F); + p_77648_3_.setBlock(p_77648_4_, p_77648_5_, p_77648_6_, Blocks.fire); + } + + p_77648_1_.damageItem(1, p_77648_2_); + return true; + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0cc5e61e29d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0cc5e61e29d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..a9d7ec0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/d0cc5e61e29d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("Bat", 65, EntityPZBat.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0bb4914dc9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0bb4914dc9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..6f776f3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bd/e0bb4914dc9d00141ce0d62fbd2fd1cf @@ -0,0 +1,210 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 27f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + float var8 = 1.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + GL11.glPopMatrix(); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/e085512d949b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/e085512d949b0014146ffb65627d3cc9 new file mode 100644 index 0000000..c2d840c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/e085512d949b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ + 10); + } + if (playerFacing == 1){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX - 10, entityplayermp.posY, entityplayermp.posZ); + } + if (playerFacing == 2){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX, entityplayermp.posY, entityplayermp.posZ - 10); + } + if (playerFacing == 3){ + entityplayermp.setPositionAndUpdate(entityplayermp.posX + 10, entityplayermp.posY, entityplayermp.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/e071ef78e49d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/e071ef78e49d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..f3d3430 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/e071ef78e49d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; +import com.stek101.projectzulu.common.mobs.models.ModelPZBat; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("PZBat", 65, EntityPZBat.class, EnumCreatureType.monster); + setSpawnProperties(10, 5, 4, 4); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (16 << 16) + (16 << 8) + 255; + eggColor2 = (161 << 16) + (161 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.25f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelPZBat(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/pzbat.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/10a83d9d9a9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/10a83d9d9a9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..8a3bb8d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/10a83d9d9a9b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + // if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + // { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 1D, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 1D, this.posY, this.posZ); + } + + entityplayermp.setPositionAndUpdate(this.posX + 1D, this.posY, this.posZ); + + // } + // } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/5038683d129d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/5038683d129d001411accd8c5614e9d3 new file mode 100644 index 0000000..4acb8ec --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/5038683d129d001411accd8c5614e9d3 @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -4.15f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/b09105e6df9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/b09105e6df9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..e69de29 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/d0630699969b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/d0630699969b0014146ffb65627d3cc9 new file mode 100644 index 0000000..65b515c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c3/d0630699969b0014146ffb65627d3cc9 @@ -0,0 +1,977 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(event.targetX - 2, event.targetY, event.targetZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(event.targetX, event.targetY, event.targetZ - 2); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(event.targetX + 2, event.targetY, event.targetZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a01b1a9a349d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a01b1a9a349d001411accd8c5614e9d3 new file mode 100644 index 0000000..620bdea --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/a01b1a9a349d001411accd8c5614e9d3 @@ -0,0 +1,103 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0e685b2649c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0e685b2649c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..3de6b9f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0e685b2649c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -4.2f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/806ce68a329d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/806ce68a329d001411accd8c5614e9d3 new file mode 100644 index 0000000..0d35251 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/806ce68a329d001411accd8c5614e9d3 @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50829525ee9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50829525ee9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..72ccf15 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/50829525ee9d00141ce0d62fbd2fd1cf @@ -0,0 +1,240 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 2)); + success = true; + } + return success; + } + + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/c0daaadfe79d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/c0daaadfe79d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..f7a85be --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/c0daaadfe79d00141ce0d62fbd2fd1cf @@ -0,0 +1,189 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + } + + this.maxFlightHeight = 5; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + + // this.tasks.addTask(2, new EntityAIAttackOnCollide(this, this.moveSpeed, false)); + this.tasks.addTask(6, new EntityAIFlyingWander(this, (float) moveSpeed)); + // this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + // this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, + // EntityStates.looking), EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + protected boolean shouldPanic() { + return true; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + /* If We are above Solid Ground, have a small Chance at Landing */ + if (this.rand.nextInt(100) == 0 + && this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 400; + } + + /* If Posing, Check if We should Stay Flee */ + if (getEntityState() == EntityStates.posture) { + /* If we are not on a Normal Block, Fly Free */ + if (!this.worldObj.getBlock(MathHelper.floor_double(this.posX), (int) this.posY - 1, + MathHelper.floor_double(this.posZ)).isNormalCube()) { + stayStillTimer = 0; + } else { + /* Chance to Chance Direction We are Facing ?--Do We Care?--? */ + if (this.rand.nextInt(200) == 0) { + this.rotationYawHead = this.rand.nextInt(360); + } + + /* If Player is nearby, Entity Should Fly away, think Pigeons */ + if (this.worldObj.getClosestPlayerToEntity(this, 4.0D) != null || this.rand.nextInt(400) == 0) { + stayStillTimer = 0; + } + } + /* + * Deincrement stayStillTimer, if it hits zero Entity Should Fly : Note that timer is likely being set to + * max again by the initial shouldSit check + */ + stayStillTimer = Math.max(stayStillTimer - 1, 0); + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + protected void dropRareDrop(int par1) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + } + super.dropRareDrop(par1); + } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLiving) { + ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + success = true; + } + return success; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/f0be1a1e029e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/f0be1a1e029e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..4c96bb5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/f0be1a1e029e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.85f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/30614f14dc9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/30614f14dc9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..38006fd --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cf/30614f14dc9d00141ce0d62fbd2fd1cf @@ -0,0 +1,212 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = -21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + // float var8 = 2.0F; + // GL11.glPushMatrix(); + // GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + // GL11.glPopMatrix(); + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/202322ed949b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/202322ed949b0014146ffb65627d3cc9 new file mode 100644 index 0000000..26f9b6b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/202322ed949b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + entityplayermp.setPosition(this.posX, this.posY, this.posZ + 5); + } + if (playerFacing == 1){ + entityplayermp.setPosition(this.posX - 5, this.posY, this.posZ); + } + if (playerFacing == 2){ + entityplayermp.setPosition(this.posX, this.posY, this.posZ - 5); + } + if (playerFacing == 3){ + entityplayermp.setPosition(this.posX + 5, this.posY, this.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/70af276de09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/70af276de09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..954d53c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/70af276de09d00141ce0d62fbd2fd1cf @@ -0,0 +1,75 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.init.Items; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBlueFinch; +import com.stek101.projectzulu.common.mobs.models.ModelFinch; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLiving; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class PZBatDeclaration extends SpawnableDeclaration { + + public PZBatDeclaration() { + super("Blue Finch", 24, EntityBlueFinch.class, EnumCreatureType.ambient); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (38 << 16) + (103 << 8) + 255; + eggColor2 = (224 << 16) + (233 << 8) + 255; + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(8f, 0.0f, 0.22f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + return new RenderGenericLiving(new ModelFinch(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/finch_blue.png")); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/2053dbd6959a00141f13f9c36e449edd b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/2053dbd6959a00141f13f9c36e449edd new file mode 100644 index 0000000..41aa63b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/2053dbd6959a00141f13f9c36e449edd @@ -0,0 +1,588 @@ +package com.stek101.projectzulu.common; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.logging.Level; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; +import net.minecraft.world.GameRules; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; +import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.base.Optional; +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.blocks.tombstone.TileEntityTombstone; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.ObfuscationHelper; +import com.stek101.projectzulu.common.core.ProjectZuluLog; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class DeathGamerules { + int maxDropXP = 100; + int percKeptXp = 0; + + int armorDeathDamage = 0; + int inventoryDeathDamage = 0; + int hotbarDeathDamage = 0; + + int armorDropDamage = 0; + int inventoryDropDamage = 0; + int hotbarDropDamage = 0; + + int armorDropChance = 100; + int inventoryDropChance = 100; + int hotbarDropChance = 100; + + int armorMaxDrop = 0; + int inventoryMaxDrop = 0; + int hotbarMaxDrop = 0; + + boolean tombstoneOnDeath = true; + boolean tombstoneAbsorbDrops = true; + boolean doDropEvent = true; + + boolean keepInventoryDefault = false; + boolean dropArmorDefault = false; + boolean dropInventoryDefault = false; + boolean dropHotbarDefault = false; + boolean dropXPDefault = false; + + /*boolean dropInventory = false; + boolean dropHotbar = false; + boolean dropArmor = false; + boolean dropXP = false;*/ + + + private ExperienceRedistributor redistributor; + private ItemBlacklist itemBlacklist; + + public DeathGamerules() { + redistributor = new ExperienceRedistributor(); + FMLCommonHandler.instance().bus().register(redistributor); + } + + public DeathGamerules loadConfiguration(File modConfigDirectory) { + itemBlacklist = new ItemBlacklist(); + Configuration config = new Configuration(new File(modConfigDirectory, DefaultProps.configDirectory + + DefaultProps.defaultConfigFile)); + config.load(); + itemBlacklist.loadFromConfig(config); + + tombstoneOnDeath = config.get("General Controls", "Drop Tombstone On Death", tombstoneOnDeath).getBoolean( + tombstoneOnDeath); + tombstoneAbsorbDrops = config.get("General Controls", "Tombstone Absorb Drops", tombstoneAbsorbDrops) + .getBoolean(tombstoneAbsorbDrops); + doDropEvent = config.get("General Controls", "doDropEvent", doDropEvent).getBoolean(doDropEvent); + + String category = "General Controls.gamerule_settings"; + maxDropXP = config + .get(category + ".Experience", "maxDropXP", 100, + "Maximum amount XP dropped on Death. The rest is lost if not kept via percKeptXp. 100 is vanilla default") + .getInt(100); + keepInventoryDefault = config.get(category, "keepInventoryDefault", false, + "The Default settings for the keepInventory gamerule").getBoolean(false); + Property keptXpProperty = config.get(category + ".Experience", "percKeptXp", 0, + "Percentage of XP (minus dropped amount) kept with the player on respawn."); + percKeptXp = keptXpProperty.getInt(); + if (percKeptXp < 0 || percKeptXp > 100) { + percKeptXp = percKeptXp < 0 ? 0 : percKeptXp > 100 ? 100 : percKeptXp; + keptXpProperty.set(percKeptXp); + } + dropArmorDefault = config.get(category + ".Armor", "isEnabledDefault", false, + "The Default settings for the dropArmor gamerule").getBoolean(false); + dropInventoryDefault = config.get(category + ".Inventory", "isEnabledDefault", false, + "The Default settings for the dropInventory gamerule").getBoolean(false); + dropHotbarDefault = config.get(category + ".Hotbar", "isEnabledDefault", false, + "The Default settings for the dropHotbar gamerule").getBoolean(false); + dropXPDefault = config.get(category + ".Experience", "isEnabledDefault", false, + "The Default settings for the dropXP gamerule").getBoolean(false); + + armorDeathDamage = handlePropMinMax(config.get(category + ".Armor", "armorDeathDamage", 0, + "Percentage of Max durability dealth on Death to armor slot items"), 0, 0, 100); + inventoryDeathDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDeathDamage", 0, + "Percentage of Max durability dealth on Death to inventory slot items"), 0, 0, 100); + hotbarDeathDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDeathDamage", 0, + "Percentage of Max durability dealth on Death to hotbar slot items"), 0, 0, 100); + + armorDropDamage = handlePropMinMax(config.get(category + ".Armor", "armorDropDamage", 0, + "Percentage of Max durability dealth on Drop to armor slot items"), 0, 0, 100); + inventoryDropDamage = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropDamage", 0, + "Percentage of Max durability dealth on Drop to inventory slot items"), 0, 0, 100); + hotbarDropDamage = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropDamage", 0, + "Percentage of Max durability dealth on Drop to hotbar slot items"), 0, 0, 100); + + armorDropChance = handlePropMinMax(config.get(category + ".Armor", "armorDropChance", 100, + "Chance that each armor slot item will drop on death"), 100, 0, 100); + inventoryDropChance = handlePropMinMax(config.get(category + ".Inventory", "inventoryDropChance", 100, + "Chance that each inventory slot item will drop on death"), 100, 0, 100); + hotbarDropChance = handlePropMinMax(config.get(category + ".Hotbar", "hotbarDropChance", 100, + "Chance that each hotbar slot item will drop on death"), 100, 0, 100); + + armorMaxDrop = handlePropMinMax(config.get(category + ".Armor", "armorMaxDrop", 0, + "Max number of armor slot items that can drop on death."), 0, 0, null); + inventoryMaxDrop = handlePropMinMax(config.get(category + ".Inventory", "inventoryMaxDrop", 0, + "Max number of inventory slot items that can drop on death"), 0, 0, null); + hotbarMaxDrop = handlePropMinMax(config.get(category + ".Hotbar", "hotbarMaxDrop", 0, + "Max number of hotbar slot items that can drop on death"), 0, 0, null); + config.save(); + return this; + } + + private int handlePropMinMax(Property prop, int value, Integer min, Integer max) { + value = prop.getInt(value); + if (min != null && value < min) { + prop.set(min); + value = min; + } else if (max != null && value > max) { + prop.set(max); + value = max; + } + return value; + } + + @SubscribeEvent + public void worldLoad(WorldEvent.Load event) { + GameRules gameRule = event.world.getGameRules(); + + // if (createGameruleIfAbsent(gameRule, "pzKeepInventory", keepInventoryDefault)) { + // System.out.println("******** pzKeepInventory rule is not present, creating it....."); + // + // gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + // } + + //createGameruleIfAbsent(gameRule, "dropInventory", dropInventoryDefault); + //createGameruleIfAbsent(gameRule, "dropHotbar", dropHotbarDefault); + //createGameruleIfAbsent(gameRule, "dropArmor", dropArmorDefault); + //createGameruleIfAbsent(gameRule, "dropXP", dropXPDefault); + gameRule.setOrCreateGameRule("keepInventory", Boolean.toString(keepInventoryDefault)); + gameRule.setOrCreateGameRule("dropInventory", String.valueOf(dropInventoryDefault)); + gameRule.setOrCreateGameRule("dropHotbar", String.valueOf(dropHotbarDefault)); + gameRule.setOrCreateGameRule("dropArmor", String.valueOf(dropArmorDefault)); + gameRule.setOrCreateGameRule("dropXP", String.valueOf(dropXPDefault)); + } + + private boolean createGameruleIfAbsent(GameRules gameRule, String gameruleName, boolean value) { + boolean added = false; + if (!gameRule.hasRule(gameruleName)) { + gameRule.addGameRule(gameruleName, Boolean.toString(value)); + added = true; + } + ProjectZuluLog.info("Gamerule %s is set to %s", gameruleName, gameRule.getGameRuleBooleanValue(gameruleName)); + return added; + } + + @SubscribeEvent + public void onPlayerDeath(PlayerDropsEvent event) { + ArrayList drops = event.drops; + int minDistance = 0; + Optional tombStoneBlock = BlockList.tombstone; + + if (tombStoneBlock.isPresent()) { + if (event.entity instanceof EntityPlayerMP) { + GameRules gameRules = event.entity.worldObj.getGameRules(); + + boolean dropInventory = gameRules.getGameRuleBooleanValue("dropInventory"); + boolean dropHotbar = gameRules.getGameRuleBooleanValue("dropHotbar"); + boolean dropArmor = gameRules.getGameRuleBooleanValue("dropArmor"); + boolean dropXP = gameRules.getGameRuleBooleanValue("dropXP"); + + String tombmsg =""; + EntityPlayer player = (EntityPlayer) event.entity; + + if (event.source.isExplosion()) { + minDistance = 10; + } + + TileEntityTombstone tombstone = tombstoneOnDeath ? placeTombstone(player, minDistance) : null; + + if (tombstone != null) { + //tombstone.setSignString(event.source.func_151519_b((EntityPlayer) event.entity).toString()); + tombstone.setSignString("HERE LIES " + event.source.func_151519_b((EntityPlayer) event.entity).getUnformattedTextForChat().toUpperCase()); + } + + /* Tombstone will not add drops */ + if (!dropInventory && !dropHotbar && !dropArmor && !dropXP) { + return; + } + + player.captureDrops = true; + //player.capturedDrops.clear(); + + /* Get items/XP to drop and clear them from Player */ + int xpDropped = 0; + + if (dropXP) { + if (!player.worldObj.isRemote) { + if (maxDropXP + percKeptXp > 100){ + ProjectZuluLog.warning("Warning : The total of MaxDropXP and percKeptXP is greater than 100. Resetting to default"); + maxDropXP = 100; + percKeptXp = 0; + } + //xpDropped = player.experienceTotal; + System.out.println("total player xp on death : " + player.experienceTotal); + + xpDropped = (int) (player.experienceTotal * ((float) maxDropXP/100)); + + System.out.println("total player xp to drop : " + xpDropped ); + + int keptXp = (int) ((player.experienceTotal - xpDropped) * ((float) percKeptXp / 100)); + //xpDropped = xpDropped > maxDropXP ? maxDropXP : xpDropped; + + System.out.println("total player xp to keep : " + keptXp ); + + redistributor.addExperience(player, keptXp >= 0 ? keptXp : 0); + player.experienceLevel = 0; + player.experienceTotal = 0; + player.experience = 0; + } + } + + List itemsToDrop = new ArrayList(); + + if (dropArmor) { + itemsToDrop.addAll(dropArmor(player)); + } + + if (dropInventory) { + itemsToDrop.addAll(dropInventory(player)); + } + + if (dropHotbar) { + itemsToDrop.addAll(dropHotbar(player)); + } + + dropItems(player, itemsToDrop); + + boolean isCancelled = false; + + // Need to understand this lines more but so far feature repair is working... + // if (doDropEvent) { + // PlayerDropsEvent dropEvent = createPlayerDropEvent(player, event.source, player.capturedDrops); + // isCancelled = MinecraftForge.EVENT_BUS.post(dropEvent); + // } + + player.captureDrops = false; + if (!isCancelled) { + /* Handler actually Dropping Items or Placing them in Tombstone */ + if (tombstoneAbsorbDrops && tombstone != null) { + for (EntityItem entityItem : player.capturedDrops) { + tombstone.addDrop(entityItem.getEntityItem()); + } + tombstone.experience = xpDropped; + player.capturedDrops.clear(); + } else { + if (tombstoneAbsorbDrops) { + System.out.println("Tombstone could not be placed so items dropping normally."); + ProjectZuluLog.warning("Tombstone could not be placed so items dropping normally."); + } + while (xpDropped > 0) { + int j = EntityXPOrb.getXPSplit(xpDropped); + xpDropped -= j; + player.worldObj.spawnEntityInWorld(new EntityXPOrb(player.worldObj, player.posX, player.posY, + player.posZ, j)); + } + for (EntityItem item : player.capturedDrops) { + player.joinEntityItemWithWorld(item); + } + } + } else { + System.out.println("Tombstone drop event cancelled"); + ProjectZuluLog.warning("Player drop event was cancelled, so items will not be dropped per convention." + + "Results may not desireable, consider disabling 'doDropEvent' in the config."); + } + } + } + } + + private void dropItems(EntityPlayer player, List drops) { + for (ItemStack itemDrop : drops) { + player.inventory.player.dropPlayerItemWithRandomChoice(itemDrop, true); + } + } + + private PlayerDropsEvent createPlayerDropEvent(EntityPlayer player, DamageSource damageSource, + ArrayList drops) { + int recentlyHit; + try { + recentlyHit = ObfuscationHelper.getCatchableFieldFromReflection("field_70718_bc", EntityLivingBase.class, + player, Integer.class); + } catch (NoSuchFieldException e) { + recentlyHit = ObfuscationHelper.getFieldFromReflection("recentlyHit", EntityLivingBase.class, player, + Integer.class); + } + return new PlayerDropsEvent(player, damageSource, player.capturedDrops, recentlyHit > 0); + } + + private TileEntityTombstone placeTombstone(EntityPlayer player, int minDistance) { + Optional chunkCoordinate = findValidTombstoneLocation(player, minDistance); + if (chunkCoordinate.isPresent()) { + /* Place a Tombstone */ + player.worldObj.setBlock(chunkCoordinate.get().posX, chunkCoordinate.get().posY, + chunkCoordinate.get().posZ, BlockList.tombstone.get()); + TileEntity tileEntity = player.worldObj.getTileEntity(chunkCoordinate.get().posX, + chunkCoordinate.get().posY, chunkCoordinate.get().posZ); + StringBuilder sb = new StringBuilder(); + sb.append("A tombstone has been set to mark the 'passing' of ").append(player.getCommandSenderName()).append(" at ["); + sb.append(chunkCoordinate.get().posX).append(", "); + sb.append(chunkCoordinate.get().posY).append(", "); + sb.append(chunkCoordinate.get().posZ).append("]"); + player.addChatMessage(new ChatComponentText(sb.toString())); + if (tileEntity != null && tileEntity instanceof TileEntityTombstone) { + ProjectZuluLog.debug(Level.INFO, sb.toString()); + return (TileEntityTombstone) tileEntity; + } + } + ProjectZuluLog.warning("Failed to find location to place tombstone at player location {X:%s, Y:%s, Z:%s}", + player.posX, player.posY, player.posZ); + return null; + } + + private Optional findValidTombstoneLocation(EntityPlayer player, int minDistance) { + final int maxRadius = 100; + + /** Search an increasing square box (only check edge) for a valid location */ + for (int radius = minDistance; radius < maxRadius; radius++) { + List validLocations = new ArrayList(); + validLocations.addAll(searchXPlaneAt(-radius, radius, player)); + validLocations.addAll(searchXPlaneAt(radius, radius, player)); + validLocations.addAll(searchZPlaneAt(-radius, radius, player)); + validLocations.addAll(searchZPlaneAt(radius, radius, player)); + validLocations.addAll(searchYPlaneAt(-radius, radius, player)); + validLocations.addAll(searchYPlaneAt(radius, radius, player)); + ChunkCoordinates closestPoint = null; + + float bestDistance = 0; + + for (ChunkCoordinates chunkCoordinates : validLocations) { + if (closestPoint != null) { + float distance = chunkCoordinates.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + if (distance < bestDistance) { + bestDistance = distance; + closestPoint = chunkCoordinates; + } + } else { + closestPoint = chunkCoordinates; + bestDistance = closestPoint.getDistanceSquared((int) player.posX, (int) player.posY, + (int) player.posZ); + } + } + if (closestPoint != null) { + return Optional.of(closestPoint); + } + } + return Optional.absent(); + } + + private List searchXPlaneAt(int xOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchZPlaneAt(int zOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int yOffset = -radius; yOffset <= radius; yOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private List searchYPlaneAt(int yOffset, int radius, EntityPlayer player) { + List matches = new ArrayList(); + for (int xOffset = -radius; xOffset <= radius; xOffset++) { + for (int zOffset = -radius; zOffset <= radius; zOffset++) { + ChunkCoordinates chunkCoordinates = new ChunkCoordinates((int) (player.posX + xOffset), + (int) (player.posY + yOffset), (int) (player.posZ + zOffset)); + if (isLocationValid(player, chunkCoordinates.posX, chunkCoordinates.posY, chunkCoordinates.posZ)) { + matches.add(chunkCoordinates); + } + } + } + return matches; + } + + private boolean isLocationValid(EntityPlayer player, int posX, int posY, int posZ) { + if ((player.worldObj.isAirBlock(posX, posY, posZ) || player.worldObj.getBlock(posX, posY, posZ).getMaterial().isReplaceable()) && player.worldObj.getBlock(posX, posY - 1, posZ).isOpaqueCube() + && !player.worldObj.getBlock(posX, posY, posZ).getMaterial().equals(Material.water)) + { + return true; + } + return false; + } + + private List dropArmor(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.armorInventory.length]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + + shuffleArray(placeArray, player.worldObj.rand); + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.armorInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((armorMaxDrop == 0 || countDrops < armorMaxDrop) + && (armorDropChance - player.worldObj.rand.nextInt(100) >= 1)) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? armorDeathDamage + armorDropDamage : armorDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.armorInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.armorInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private List dropInventory(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + if (player.inventory.mainInventory.length > 8) { + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[player.inventory.mainInventory.length - 9]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i + 9; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + + boolean shouldDrop = false; + if ((inventoryMaxDrop == 0 || countDrops < inventoryMaxDrop) + && inventoryDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + + int percentDamage = shouldDrop ? inventoryDeathDamage + inventoryDropDamage : inventoryDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + } + } + return itemsToDrop; + } + + private List dropHotbar(EntityPlayer player) { + List itemsToDrop = new ArrayList(); + + int inventorySize = player.inventory.mainInventory.length > 9 ? 9 : player.inventory.mainInventory.length; + /* Array to determine the order the inventory array is processed. */ + int[] placeArray = new int[inventorySize]; + for (int i = 0; i < placeArray.length; i++) { + placeArray[i] = i; + } + shuffleArray(placeArray, player.worldObj.rand); + + int countDrops = 0; + for (int i = 0; i < placeArray.length; ++i) { + int slot = placeArray[i]; + ItemStack itemStack = player.inventory.mainInventory[slot]; + if (itemStack == null || itemBlacklist.isItemBlacklisted(itemStack)) { + continue; + } + boolean shouldDrop = false; + if ((hotbarMaxDrop == 0 || countDrops < hotbarMaxDrop) + && hotbarDropChance - player.worldObj.rand.nextInt(100) >= 1) { + shouldDrop = true; + } + int percentDamage = shouldDrop ? hotbarDeathDamage + hotbarDropDamage : hotbarDeathDamage; + percentDamage = percentDamage > 100 ? 100 : percentDamage; + itemStack.attemptDamageItem(itemStack.getMaxDamage() * percentDamage / 100, player.worldObj.rand); + + boolean itemDestroyed = itemStack.isItemStackDamageable() + && itemStack.getItemDamage() > itemStack.getMaxDamage(); + if (itemDestroyed) { + player.inventory.mainInventory[slot] = null; + } + + if (shouldDrop) { + if (!itemDestroyed) { + itemsToDrop.add(itemStack); + } + player.inventory.mainInventory[slot] = null; + countDrops++; + } + + } + return itemsToDrop; + } + + private void shuffleArray(int[] array, Random random) { + for (int i = array.length - 1; i >= 0; i--) { + int index = random.nextInt(i + 1); + int a = array[index]; + array[index] = array[i]; + array[i] = a; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e0d71c87629c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e0d71c87629c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..4741021 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/e0d71c87629c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -10f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/9049b1d8e09d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/9049b1d8e09d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3f91321 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/9049b1d8e09d00141ce0d62fbd2fd1cf @@ -0,0 +1,100 @@ +package com.stek101.projectzulu.common; + +import java.io.File; + +import net.minecraftforge.common.MinecraftForge; + +import com.stek101.projectzulu.common.core.CustomEntityManager; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.ChangeVanillaDrops; +import com.stek101.projectzulu.common.mobs.entitydefaults.AlligatorDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ArmadilloDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearBlackDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearBrownDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BearPolarDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeaverDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeetleASDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BeetleBSDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BloomDoomDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BlueFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.BoarDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CamelDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CentipedeDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.CrowDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DeerDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DuckDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.DuckEggDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.EagleDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ElephantDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FishADeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FishBDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FollowerDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FoxDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.FrogDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GiantRatDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GiraffeDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GoatDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GorillaDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.GreenFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HauntedArmorDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HornbillDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.HorseBlackDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.LizardDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.LizardSpitDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MammothDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MimicDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MinotaurDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MonkeyDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.MummyDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.OstrichDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.OstrichEggDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PelicanDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PenguinDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.PharaohDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RabbitDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RedFinchDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RhinoDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.RipperFinDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.SandwormDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.SkeletonnDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.ThrowingRockDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.TreeEntDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.VultureDeclaration; +import com.stek101.projectzulu.common.mobs.entitydefaults.YellowFinchDeclaration; + +import cpw.mods.fml.common.event.FMLInitializationEvent; + +public class ProjectZulu_Mobs extends BaseModule { + + @Override + public String getIdentifier() { + return DefaultProps.MobsModId; + } + + @Override + public void registration(CustomEntityManager manager) { + manager.addEntity(new ArmadilloDeclaration(), new SandwormDeclaration(), new LizardDeclaration(), + new LizardSpitDeclaration(), new PharaohDeclaration(), new MummyDeclaration(), + new VultureDeclaration(), new TreeEntDeclaration(), new MammothDeclaration(), new FoxDeclaration(), + new BoarDeclaration(), new MimicDeclaration(), new AlligatorDeclaration(), new FrogDeclaration(), + new PenguinDeclaration(), new BeaverDeclaration(), new BearBlackDeclaration(), + new BearBrownDeclaration(), new BearPolarDeclaration(), new OstrichDeclaration(), + new RhinoDeclaration(), new RabbitDeclaration(), new RedFinchDeclaration(), + new GreenFinchDeclaration(), new BlueFinchDeclaration(), new GorillaDeclaration(), + new GiraffeDeclaration(), new ElephantDeclaration(), new HorseBlackDeclaration(), + //new HorseBrownDeclaration(), new HorseDarkBlackDeclaration(), new HorseBeigeDeclaration(), + //new HorseDarkBrownDeclaration(), new HorseGreyDeclaration(), new HorseWhiteDeclaration(), + new EagleDeclaration(), new HornbillDeclaration(), new PelicanDeclaration(), new MinotaurDeclaration(), + new HauntedArmorDeclaration(), new CentipedeDeclaration(), new FollowerDeclaration(), + new YellowFinchDeclaration(), new GoatDeclaration(), new DuckDeclaration(), + new DuckEggDeclaration(), new DeerDeclaration(), new SkeletonnDeclaration(), new FishADeclaration(), + new RipperFinDeclaration(), new OstrichEggDeclaration(), new GiantRatDeclaration(), new FishBDeclaration(), + new CrowDeclaration(), new CamelDeclaration(), new MonkeyDeclaration(), new ThrowingRockDeclaration(), // new AntRavegerDeclaration(), + new BeetleASDeclaration(), new BeetleBSDeclaration(), new BloomDoomDeclaration()); + } + + @Override + public void init(FMLInitializationEvent event, File configDirectory) { + MinecraftForge.EVENT_BUS.register(new ChangeVanillaDrops()); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/60e789ec2c9d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/60e789ec2c9d001411accd8c5614e9d3 new file mode 100644 index 0000000..dd57bfc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/60e789ec2c9d001411accd8c5614e9d3 @@ -0,0 +1,82 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.HashSet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityBloomDoom; +import com.stek101.projectzulu.common.mobs.models.ModelBloomDoom; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericIdle; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BloomDoomDeclaration extends SpawnableDeclaration { + //private final List entityTextures = new ArrayList (); + + public BloomDoomDeclaration() { + super("BloomDoom", 64, EntityBloomDoom.class, EnumCreatureType.creature); + setSpawnProperties(10, 5, 1, 1); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (133 << 16) + (233 << 8) + 0; + eggColor2 = (101 << 16) + (200 << 8) + 143; + + // entityTextures.add("textures/beetlebs1.png"); + // entityTextures.add("textures/beetlebs2.png"); + // entityTextures.add("textures/beetlebs3.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + //ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, Items.feather, 0, 8); + customMobData.entityProperties = new EntityProperties(15f, 3.0f, 0.20f).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/bloomdoom.png")); + + return new RenderGenericIdle(new ModelBloomDoom(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + "textures/bloomdoom0.png"), new ResourceLocation(DefaultProps.mobKey, "textures/bloomdoomidle0.png")); + + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.removeAll(typeToArray(Type.FROZEN)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/b049b356379d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/b049b356379d001411accd8c5614e9d3 new file mode 100644 index 0000000..f4f0d5a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/b049b356379d001411accd8c5614e9d3 @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 3 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 6) && (bugType <= 7)) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/408d2c4fec9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/408d2c4fec9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..cd90f1c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/408d2c4fec9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + //this.setSize(0.5f, 0.5f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + // @Override + // public boolean attackEntityAsMob(Entity entity) { + // boolean success = super.attackEntityAsMob(entity); + // if (entity instanceof EntityLiving) { + // ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + // success = true; + // } + // return success; + // } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/90907b8c739b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/90907b8c739b0014146ffb65627d3cc9 new file mode 100644 index 0000000..6dff60c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/90907b8c739b0014146ffb65627d3cc9 @@ -0,0 +1,963 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + // if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ + 10); + this.riddenByEntity.fallDistance = 0.0F; + this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e08f178cea9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e08f178cea9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..ecb695c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/e08f178cea9d00141ce0d62fbd2fd1cf @@ -0,0 +1,116 @@ +package com.stek101.projectzulu.common.mobs.models; + +import com.stek101.projectzulu.common.mobs.entity.EntityPZBat; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ModelPZBat extends ModelBase +{ + private ModelRenderer batHead; + /** The body box of the bat model. */ + private ModelRenderer batBody; + /** The inner right wing box of the bat model. */ + private ModelRenderer batRightWing; + /** The inner left wing box of the bat model. */ + private ModelRenderer batLeftWing; + /** The outer right wing box of the bat model. */ + private ModelRenderer batOuterRightWing; + /** The outer left wing box of the bat model. */ + private ModelRenderer batOuterLeftWing; + private static final String __OBFID = "CL_00000830"; + + public ModelPZBat() + { + this.textureWidth = 64; + this.textureHeight = 64; + this.batHead = new ModelRenderer(this, 0, 0); + this.batHead.addBox(-3.0F, -3.0F, -3.0F, 6, 6, 6); + ModelRenderer modelrenderer = new ModelRenderer(this, 24, 0); + modelrenderer.addBox(-4.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer); + ModelRenderer modelrenderer1 = new ModelRenderer(this, 24, 0); + modelrenderer1.mirror = true; + modelrenderer1.addBox(1.0F, -6.0F, -2.0F, 3, 4, 1); + this.batHead.addChild(modelrenderer1); + this.batBody = new ModelRenderer(this, 0, 16); + this.batBody.addBox(-3.0F, 4.0F, -3.0F, 6, 12, 6); + this.batBody.setTextureOffset(0, 34).addBox(-5.0F, 16.0F, 0.0F, 10, 6, 1); + this.batRightWing = new ModelRenderer(this, 42, 0); + this.batRightWing.addBox(-12.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterRightWing = new ModelRenderer(this, 24, 16); + this.batOuterRightWing.setRotationPoint(-12.0F, 1.0F, 1.5F); + this.batOuterRightWing.addBox(-8.0F, 1.0F, 0.0F, 8, 12, 1); + this.batLeftWing = new ModelRenderer(this, 42, 0); + this.batLeftWing.mirror = true; + this.batLeftWing.addBox(2.0F, 1.0F, 1.5F, 10, 16, 1); + this.batOuterLeftWing = new ModelRenderer(this, 24, 16); + this.batOuterLeftWing.mirror = true; + this.batOuterLeftWing.setRotationPoint(12.0F, 1.0F, 1.5F); + this.batOuterLeftWing.addBox(0.0F, 1.0F, 0.0F, 8, 12, 1); + this.batBody.addChild(this.batRightWing); + this.batBody.addChild(this.batLeftWing); + this.batRightWing.addChild(this.batOuterRightWing); + this.batLeftWing.addChild(this.batOuterLeftWing); + } + + /** + * not actually sure this is size, is not used as of now, but the model would be recreated if the value changed and + * it seems a good match for a bats size + */ + public int getBatSize() + { + return 36; + } + + /** + * Sets the models various rotation angles then renders the model. + */ + public void render(Entity p_78088_1_, float p_78088_2_, float p_78088_3_, float p_78088_4_, float p_78088_5_, float p_78088_6_, float p_78088_7_) + { + EntityPZBat entitybat = (EntityPZBat)p_78088_1_; + float f6; + + /* if (entitybat.getIsBatHanging()) + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = (float)Math.PI - p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = (float)Math.PI; + this.batHead.setRotationPoint(0.0F, -2.0F, 0.0F); + this.batRightWing.setRotationPoint(-3.0F, 0.0F, 3.0F); + this.batLeftWing.setRotationPoint(3.0F, 0.0F, 3.0F); + this.batBody.rotateAngleX = (float)Math.PI; + this.batRightWing.rotateAngleX = -0.15707964F; + this.batRightWing.rotateAngleY = -((float)Math.PI * 2F / 5F); + this.batOuterRightWing.rotateAngleY = -1.7278761F; + this.batLeftWing.rotateAngleX = this.batRightWing.rotateAngleX; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterLeftWing.rotateAngleY = -this.batOuterRightWing.rotateAngleY; + } + else*/ + { + f6 = (180F / (float)Math.PI); + this.batHead.rotateAngleX = p_78088_6_ / (180F / (float)Math.PI); + this.batHead.rotateAngleY = p_78088_5_ / (180F / (float)Math.PI); + this.batHead.rotateAngleZ = 0.0F; + this.batHead.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batRightWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batLeftWing.setRotationPoint(0.0F, 0.0F, 0.0F); + this.batBody.rotateAngleX = ((float)Math.PI / 4F) + MathHelper.cos(p_78088_4_ * 0.1F) * 0.15F; + this.batBody.rotateAngleY = 0.0F; + this.batRightWing.rotateAngleY = MathHelper.cos(p_78088_4_ * 1.3F) * (float)Math.PI * 0.25F; + this.batLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY; + this.batOuterRightWing.rotateAngleY = this.batRightWing.rotateAngleY * 0.5F; + this.batOuterLeftWing.rotateAngleY = -this.batRightWing.rotateAngleY * 0.5F; + } + + this.batHead.render(p_78088_7_); + this.batBody.render(p_78088_7_); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/609c3e66029e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/609c3e66029e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..35bdddc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/609c3e66029e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 25f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/905f0b08389d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/905f0b08389d001411accd8c5614e9d3 new file mode 100644 index 0000000..ea16d71 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/905f0b08389d001411accd8c5614e9d3 @@ -0,0 +1,256 @@ +package com.stek101.projectzulu.common.core; + +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; +import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; + +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleAS; +import com.stek101.projectzulu.common.mobs.entity.EntityBeetleBS; +import com.stek101.projectzulu.common.mobs.entity.EntityCentipede; +import com.stek101.projectzulu.common.mobs.entity.EntityTreeEnt; + +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class EventHookContainerClass { + // zLevel is protected float copied from GUI along with drawTexturedModelRect + protected float zLevel = 0.0F; + boolean nearBossTriggered = false; + + Random classRand = new Random(); + + @SubscribeEvent + public void onPlayerUpdateStarve(LivingUpdateEvent event) { + World worldObj = event.entity.worldObj; + if (worldObj != null && event.entity != null && event.entity instanceof EntityPlayer) { + + EntityPlayer thePlayer = (EntityPlayer) event.entity; + + int var1 = MathHelper.floor_double(thePlayer.posX); + int var2 = MathHelper.floor_double(thePlayer.boundingBox.minY); + int var3 = MathHelper.floor_double(thePlayer.posZ); + BiomeGenBase currentBiome = worldObj.getBiomeGenForCoords(var1, var3); + boolean isDesertSun = worldObj.canBlockSeeTheSky(var1, var2, var3) && worldObj.isDaytime() == true + && (currentBiome == BiomeGenBase.desert || currentBiome == BiomeGenBase.desertHills); + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + if (!thePlayer.capabilities.isCreativeMode && isDesertSun == true + && Loader.isModLoaded(DefaultProps.BlocksModId)) { + float exhaustion = 0.0032f; + switch (worldObj.difficultySetting) { + case PEACEFUL: + exhaustion = 0.0f; + break; + case EASY: + exhaustion = 0.0032f * 1; + break; + case NORMAL: + exhaustion = 0.0032f * 2; + break; + case HARD: + exhaustion = 0.0032f * 3; + default: + break; + } + + for (int i = 0; i < 4; i++) { + if (thePlayer.inventory.armorInventory[i] == null) { + exhaustion -= (exhaustion - exhaustion * 0.4) / 4f; + break; + } + } + thePlayer.addExhaustion(Math.max(exhaustion, 0)); + } + } + } + + /* Armor Effect Only Occurs When Block/Item Package is Installed */ + @SubscribeEvent + public void cactusArmorDamage(LivingHurtEvent event) { + if (Loader.isModLoaded(DefaultProps.BlocksModId) && event.entity != null + && event.entity instanceof EntityPlayer && event.source.getSourceOfDamage() instanceof EntityLiving) { + EntityPlayer hurtEntity = (EntityPlayer) event.entity; + EntityLiving attackingEntity = (EntityLiving) event.source.getSourceOfDamage(); + if (attackingEntity != null && event.source.getDamageType() == "mob") { + + double cactusDamage = 0; + if (hurtEntity.inventory.armorInventory[3] != null && ItemList.cactusArmorHead.isPresent() + && hurtEntity.inventory.armorInventory[3].getItem() == ItemList.cactusArmorHead.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[2] != null && ItemList.cactusArmorChest.isPresent() + && hurtEntity.inventory.armorInventory[2].getItem() == ItemList.cactusArmorChest.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[1] != null && ItemList.cactusArmorLeg.isPresent() + && hurtEntity.inventory.armorInventory[1].getItem() == ItemList.cactusArmorLeg.get()) { + cactusDamage += 0.5; + } + if (hurtEntity.inventory.armorInventory[0] != null && ItemList.cactusArmorBoots.isPresent() + && hurtEntity.inventory.armorInventory[0].getItem() == ItemList.cactusArmorBoots.get()) { + cactusDamage += 0.5; + } + + if (cactusDamage > 0) { + attackingEntity.attackEntityFrom(DamageSource.causeThornsDamage(hurtEntity), + MathHelper.ceiling_double_int(cactusDamage)); + } + + } + } + } + + /** + * Used to Notify nearby Treeents they should be attacking this Player. Triggered by the Player breaking Wood Only + * notifies TreeEnts that are looking at the Player + */ + @SubscribeEvent + public void treeEntDefendForest(BreakSpeed event) { + if (Loader.isModLoaded(DefaultProps.MobsModId)) { + if (event.entity != null && event.entity instanceof EntityPlayer + && (event.block == Blocks.log || event.block == Blocks.log2)) { + EntityPlayer player = (EntityPlayer) (event.entity); + World worldObj = player.worldObj; + AxisAlignedBB playerBounding = player.boundingBox.copy(); + playerBounding = playerBounding.expand(24, 24, 24); + List listOfTreeEnts = player.worldObj + .getEntitiesWithinAABB(EntityTreeEnt.class, playerBounding); + if (!listOfTreeEnts.isEmpty()) { + Iterator entIterator = listOfTreeEnts.iterator(); + while (entIterator.hasNext()) { + Entity entity = (Entity) entIterator.next(); + if (((EntityTreeEnt) entity).getAngerLevel() <= 0 + && worldObj.rayTraceBlocks( + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ)) == null) { + // worldObj.getWorldVec3Pool().getVecFromPool(player.posX, + // player.posY + player.getEyeHeight(), player.posZ), + Vec3.createVectorHelper((double)player.posX, (double)player.posY + player.getEyeHeight(), (double)player.posZ), + // worldObj.getWorldVec3Pool().getVecFromPool(entity.posX, entity.posY, + // entity.posZ) + Vec3.createVectorHelper((double)entity.posX, (double)entity.posY, (double) entity.posZ) + ) == null) { + if (!worldObj.isRemote) { + ((EntityTreeEnt) entity).setAttackTarget(player); + } + ((EntityTreeEnt) entity).setAngerLevel(60); + } + } + } + } + } + + } + + @SubscribeEvent + public void onBreakBlock(BreakEvent event) + { + Random rand1 = new Random(); + + //TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (event.block == Blocks.tallgrass || event.block == Blocks.grass || event.block == Blocks.vine + || event.block == Blocks.brown_mushroom_block || event.block == Blocks.yellow_flower + || event.block == Blocks.red_flower || event.block == Blocks.deadbush || event.block == Blocks.double_plant + || event.block == Blocks.leaves || event.block == Blocks.leaves2) + { + // Makes sure to only run on server, entity spawns must be done on server + if (!event.world.isRemote && rand1.nextInt(20) == 0) { + int bugType = rand1.nextInt(10); + int bugCount1 = rand1.nextInt(2); + int bugCount2 = rand1.nextInt(2); + int bugCount3 = rand1.nextInt(2); + + if (bugType <= 2 ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + for (int i=0; i <= bugCount2; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + + } else if ((bugType >= 3) && (bugType <= 5) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleAS entity = new EntityBeetleAS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else if ((bugType >= 6) && (bugType <= 8) ) { + for (int i=0; i <= bugCount1; i++) { + EntityBeetleBS entity = new EntityBeetleBS(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } else { + for (int i=0; i <= bugCount3; i++) { + EntityCentipede entity = new EntityCentipede(event.world); + + // Places the entity close to the coords of the block (par2 = x, par3 = y, par4 = z) + entity.setLocationAndAngles((double)event.x + 0.5D, (double)event.y, (double)event.z + 0.5D, 0.0F, 0.0F); + + // Insert the bug in the world + event.world.spawnEntityInWorld(entity); + + // Creates the "puff" effect + entity.spawnExplosionParticle(); + } + } + + if (event.block == Blocks.leaves || event.block == Blocks.leaves2){ + + } + } + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/a0334df5949b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/a0334df5949b0014146ffb65627d3cc9 new file mode 100644 index 0000000..84b2295 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/a0334df5949b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + System.out.println("Player facing value " + playerFacing); + + if (playerFacing == 0){ + this.riddenByEntity..setPosition(this.posX, this.posY, this.posZ + 5); + } + if (playerFacing == 1){ + this.riddenByEntity..setPosition(this.posX - 5, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity..setPosition(this.posX, this.posY, this.posZ - 5); + } + if (playerFacing == 3){ + this.riddenByEntity..setPosition(this.posX + 5, this.posY, this.posZ); + } + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/d08a3c289b9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/d08a3c289b9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..5685a17 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/df/d08a3c289b9b0014146ffb65627d3cc9 @@ -0,0 +1,973 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + //this.moveEntity(this.posX, this.posY, this.posZ); + // if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + // { + //EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + // { // Don't indent to lower patch size + System.out.println("player position is at " + entityplayermp.posX + " " + entityplayermp.posY + " " + entityplayermp.posZ); + int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + if (playerFacing == 0){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 1D, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 1D); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 1D, this.posY, this.posZ); + } + + //entityplayermp.setPositionAndUpdate(this.posX + 0.5D, this.posY, this.posZ); + + // } + // } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/90d2a412e99d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/90d2a412e99d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..f10a05b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/90d2a412e99d00141ce0d62fbd2fd1cf @@ -0,0 +1,54 @@ +package com.stek101.projectzulu.common.api; + + +import java.util.EnumSet; +import java.util.HashMap; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; + +import com.google.common.base.CharMatcher; +import com.google.common.base.Optional; + +public enum CustomEntityList { + CREEPERBLOSSOMPRIMED, ARMADILLO, SANDWORM, LIZARD, MUMMYPHARAOH, MUMMY, VULTURE, TREEENT, MAMMOTH, FOX, BOAR, + MIMIC, ALLIGATOR, FROG, PENGUIN, BEAVER, BLACKBEAR, BROWNBEAR, POLARBEAR, OSTRICH, RHINO, RABBIT, + REDFINCH, BLUEFINCH, GREENFINCH, GORILLA, GIRAFFE, ELEPHANT, HORSE, EAGLE, HORNBILL, PELICAN, MINOTAUR, HAUNTEDARMOR, + CENTIPEDE, HORSERANDOM, LIZARDSPIT, FOLLOWER, YELLOWFINCH, GOAT, DUCK, DUCKEGG, DEER, SKELETONN, FISHA, RIPPERFIN, + OSTRICHEGG, GIANTRAT, FISHB, CROW, CAMEL, MONKEY, THROWINGROCK, RAVAGERANT, BEETLEAS, BEETLEBS, BLOOMDOOM, BAT; + + public Optional modData = Optional.absent(); + private static final HashMap lookupEnum = new HashMap(); + static { + for (CustomEntityList entry : EnumSet.allOf(CustomEntityList.class)) + lookupEnum.put(entry.toString().toLowerCase(), entry); + } + + public static CustomEntityList getByName(String mobName) { + if (mobName == null) { + return null; + } + + String[] nameParts = CharMatcher.anyOf(" ").removeFrom(mobName).toLowerCase().split("\\."); + CustomEntityList result; + if (nameParts.length > 1) { + result = lookupEnum.get(nameParts[nameParts.length - 1]); + } else { + result = lookupEnum.get(nameParts[0]); + } + if (result == null) { +// ProjectZuluLog.info("Custom Entity Lookup Failed %s Does not Seem to Exist", CharMatcher.anyOf(" ") +// .removeFrom(mobName).toLowerCase()); + } + return result; + } + + public static CustomEntityList getByEntity(Entity entity) { + String mobName = EntityList.getEntityString(entity); + if(mobName != null){ + return getByName(mobName); + }else{ + return null; + } + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/d0bf67d55f9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/d0bf67d55f9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..29b1fdd --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/d0bf67d55f9c00141eb99f8dbeb9f10c @@ -0,0 +1,242 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + } + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/5094845dec9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/5094845dec9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..3844ccc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/5094845dec9d00141ce0d62fbd2fd1cf @@ -0,0 +1,238 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + // @Override + // public boolean attackEntityAsMob(Entity entity) { + // boolean success = super.attackEntityAsMob(entity); + // if (entity instanceof EntityLiving) { + // ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40, 1)); + // success = true; + // } + // return success; + // } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/a01666a4009e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/a01666a4009e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..c7dafb7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/a01666a4009e00141ce0d62fbd2fd1cf @@ -0,0 +1,169 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Random; + +import net.minecraft.entity.EntityList; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityGoat extends EntityGenericAnimal implements IAnimals { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + private int timeUntilNextMilking; + private int milkCounter; + private boolean giveMilk; + + + public EntityGoat(World par1World) { + super(par1World); + setSize(1.2f, 0.9f); + + milkCounter = 0; + giveMilk = true; + Random rand1 = new Random(); + this.textureID = rand1.nextInt(3); + this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(4, new EntityAIMate(this, 0.8f)); + tasks.addTask(5, new EntityAITempt(this, 0.9f, Items.wheat, false)); + tasks.addTask(6, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(8, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.apple); + } + + /* Basic timer to determine whether entity can be milked or not */ + if (!this.worldObj.isRemote && !this.isChild() && --this.timeUntilNextMilking <= 0) + { + giveMilk = true; + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + } + + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goatlivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "goathurt"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Items.wheat) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if (itemstack != null && itemstack.getItem() == Items.bucket && !p_70085_1_.capabilities.isCreativeMode && (giveMilk == true)) + { + if (itemstack.stackSize-- == 1) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, new ItemStack(Items.milk_bucket)); + } + else if (!p_70085_1_.inventory.addItemStackToInventory(new ItemStack(Items.milk_bucket))) + { + p_70085_1_.dropPlayerItemWithRandomChoice(new ItemStack(Items.milk_bucket, 1, 0), false); + } + //this.giveMilk = false; + //this.timeUntilNextMilking = this.rand.nextInt(6000) + 6000; + return true; + } + else + { + return super.interact(p_70085_1_); + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/9077183f9a9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/9077183f9a9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..4fd3910 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/9077183f9a9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 5f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/f0ab577eaf9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/f0ab577eaf9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..83566ac --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/f0ab577eaf9d00141ce0d62fbd2fd1cf @@ -0,0 +1,46 @@ +package com.stek101.projectzulu.common.blocks; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entity.EntityOstrichEgg; + +public class ItemFlintAndStone extends Item{ + + public ItemFlintAndStone(boolean full3D, String name) { + super(); + this.maxStackSize = 1; + this.setCreativeTab(ProjectZulu_Core.projectZuluCreativeTab); + setMaxDamage(32); + bFull3D = full3D; + setHasSubtypes(true); + setUnlocalizedName(name); + setTextureName(DefaultProps.blockKey + ":" + name); + } + + /** + * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer + */ + + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) + { + if (!p_77659_3_.capabilities.isCreativeMode) + { + --p_77659_1_.stackSize; + } + + p_77659_2_.playSoundAtEntity(p_77659_3_, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!p_77659_2_.isRemote) + { + p_77659_2_.spawnEntityInWorld(new EntityOstrichEgg(p_77659_2_, p_77659_3_)); + } + + return p_77659_1_; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/10853b4d5f9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/10853b4d5f9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..3310873 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/10853b4d5f9c00141eb99f8dbeb9f10c @@ -0,0 +1,242 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY =; + armRightB1.rotationPointY =; + lowerBody.rotationPointY =; + leg1.rotationPointY =; + leg2.rotationPointY =; + leg3.rotationPointY =; + leg4.rotationPointY =; + leg5.rotationPointY =; + leg6.rotationPointY =; + leg7.rotationPointY =; + leg8.rotationPointY =; + + } + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30cf9a55c39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30cf9a55c39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..38dd346 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/30cf9a55c39d00141ce0d62fbd2fd1cf @@ -0,0 +1,126 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.0f, 1.0f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + if (getEntityState() != EntityStates.idle){ + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomlivingsound"; + } + return null; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "dbloomhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && ticksExisted % (10 * 20) == 0) { + heal(1); + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + @Override + public boolean interact(EntityPlayer par1EntityPlayer) { + entityAttackedReaction(par1EntityPlayer); + return super.interact(par1EntityPlayer); + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/b024c867649c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/b024c867649c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..d2ee7a5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/b024c867649c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -4.3f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/105ab0ba339d001411accd8c5614e9d3 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/105ab0ba339d001411accd8c5614e9d3 new file mode 100644 index 0000000..1f5f05c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/105ab0ba339d001411accd8c5614e9d3 @@ -0,0 +1,147 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; + +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +public class EntityBloomDoom extends EntityGenericAnimal implements IMob { + + protected int wakeUpTimer = 0; + + public int getWakeUpTimer() { + return wakeUpTimer; + } + + boolean shouldHover = false; + + public EntityBloomDoom(World par1World) { + super(par1World); + setSize(1.5f, 1.5f); + getNavigator().setAvoidsWater(true); + + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.25f)); + tasks.addTask(2, new EntityAIStayStill(this, EntityStates.idle)); + tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(5, new EntityAIWander(this, 1.0f, 120)); + targetTasks.addTask(3, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(4, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 5, true)); + } + + public EntityBloomDoom(World par1World, double parx, double pary, double parz, boolean shouldHover) { + this(par1World); + setLocationAndAngles(parx, pary, parz, 1, 1); + setPosition(parx, pary, parz); + this.shouldHover = shouldHover; + } + + @Override + public int getTotalArmorValue() { + return 2; + } + + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "mimicliving"; + } + + @Override + public void onLivingUpdate() { + if (shouldHover == true) { + this.motionY = 0; + if (ticksExisted > (20 * 10)) { + shouldHover = false; + } + } + + super.onLivingUpdate(); + + /* If Player is Still Nearby after activation, do not become passive */ + if (getEntityState() != EntityStates.idle && worldObj.getClosestPlayerToEntity(this, 5D) != null) { + setAngerLevel(400); + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() { + if (getEntityState() == EntityStates.idle) { + return false; + } else { + return !this.isDead; + } + } + + // Called when player interacts with mob, eg get milk, saddle + // @Override + // public boolean interact(EntityPlayer par1EntityPlayer) { + // entityAttackedReaction(par1EntityPlayer); + // return super.interact(par1EntityPlayer); + // } + + + +@Override +public boolean attackEntityAsMob(Entity p_70652_1_) +{ + float f = (float)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + int i = 0; + + if (p_70652_1_ instanceof EntityLivingBase) + { + f += EnchantmentHelper.getEnchantmentModifierLiving(this, (EntityLivingBase)p_70652_1_); + i += EnchantmentHelper.getKnockbackModifier(this, (EntityLivingBase)p_70652_1_); + } + + boolean flag = p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), f); + + if (flag) + { + if (i > 0) + { + p_70652_1_.addVelocity((double)(-MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F), 0.1D, (double)(MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F) * (float)i * 0.5F)); + this.motionX *= 0.6D; + this.motionZ *= 0.6D; + } + + int j = EnchantmentHelper.getFireAspectModifier(this); + + if (j > 0) + { + p_70652_1_.setFire(j * 4); + } + + if (p_70652_1_ instanceof EntityLivingBase) + { + EnchantmentHelper.func_151384_a((EntityLivingBase)p_70652_1_, this); + } + + EnchantmentHelper.func_151385_b(this, p_70652_1_); + } + + return flag; +} + + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/40edcfb8629c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/40edcfb8629c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..eb681d8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/40edcfb8629c00141eb99f8dbeb9f10c @@ -0,0 +1,265 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; +import com.stek101.projectzulu.common.mobs.entity.EntityGenericAnimal; +import com.stek101.projectzulu.common.mobs.entity.EntityStates; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + EntityGenericAnimal var5 = (EntityGenericAnimal) par1EntityLiving; + + /* State Based Animations */ + if (var5.getEntityState() != EntityStates.idle) { + float heightToRaise = 0.0f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + else + { + float heightToRaise = -3f; + Shape1.rotationPointY = -8F - heightToRaise; + Shape2.rotationPointY = -8F - heightToRaise; + armLeftA1.rotationPointY = 10F - heightToRaise; + armLeftA2.rotationPointY = 8.5F - heightToRaise; + armLeftB1.rotationPointY = 0F - heightToRaise; + armRightA1.rotationPointY = 10F - heightToRaise; + armRightA2.rotationPointY = 8.5F - heightToRaise; + armRightB1.rotationPointY = 0F - heightToRaise; + lowerBody.rotationPointY = 20F - heightToRaise; + leg1.rotationPointY = 21F - heightToRaise; + leg2.rotationPointY = 21F - heightToRaise; + leg3.rotationPointY = 21F - heightToRaise; + leg4.rotationPointY =21F - heightToRaise; + leg5.rotationPointY =22F - heightToRaise; + leg6.rotationPointY =21F - heightToRaise; + leg7.rotationPointY =22F - heightToRaise; + leg8.rotationPointY =21F - heightToRaise; + } + + + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.6662F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.6662F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/00db5e30969b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/00db5e30969b0014146ffb65627d3cc9 new file mode 100644 index 0000000..a4f8729 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/00db5e30969b0014146ffb65627d3cc9 @@ -0,0 +1,980 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.util.EnumSet; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.inventory.AnimalChest; +import net.minecraft.inventory.IInvBasic; +import net.minecraft.inventory.InventoryBasic; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.EnderTeleportEvent; + +import com.stek101.projectzulu.common.ProjectZulu_Core; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.core.packets.PZPacketTameParticle; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFollowParent; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIMate; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIPanic; +import com.stek101.projectzulu.common.mobs.entityai.EntityAITempt; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIWander; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class EntityCamel extends EntityGenericAnimal implements IInvBasic { + + private EntityAFightorFlight EAFF; + private CustomEntityList entityEntry; + private float aggroLevel; + private double aggroRange; + public boolean camelSaddled; + public AnimalChest camelChest; + private static final int[] armorValues = new int[] {0, 5, 7, 11}; + private boolean animalChested; + protected float jumpPower = 0.0f; + protected boolean mountJumping; + public boolean mountJump = false; + private World parWorld; + private int field_110285_bP; + + public EntityCamel(World par1World) { + super(par1World); + setSize(1.6f, 1.8f); + //animalChested = true; + this.setChested(false); + this.setSaddled(false); + this.camelSaddled = false; + this.parWorld = par1World; + this.setPosition(this.posX, this.posY, this.posZ); + this.entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + + /* Check if aggroLevel and aggroRange have valid values to activate AFoF */ + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + getNavigator().setAvoidsWater(true); + tasks.addTask(0, new EntityAISwimming(this)); + tasks.addTask(1, new EntityAIPanic(this, 1.0f)); + tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0f, false)); + tasks.addTask(3, new EntityAILookIdle(this)); + tasks.addTask(5, new EntityAIMate(this, 0.8f)); + tasks.addTask(6, new EntityAITempt(this, 0.9f, Items.water_bucket, false)); + tasks.addTask(7, new EntityAIFollowParent(this, 0.9f)); + tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + tasks.addTask(9, new EntityAIWander(this, 0.8f, 120)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + this.createCamelChest(); + } + + @Override + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(22, Integer.valueOf(0)); //mount armor + this.dataWatcher.addObject(26, Integer.valueOf(0)); //chested aka saddle bags + } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj, Items.water_bucket); + } + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camellivingsound"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "camelhurtsound"; + } + + @Override + public int getTalkInterval() { + return 160; + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + if (itemStack != null && itemStack.getItem() == Item.getItemFromBlock(Blocks.leaves)) { + this.setAngerLevel(0); + this.setFleeTick(0); + return true; + + } else { + return super.isValidBreedingItem(itemStack); + } + } + + @Override + public boolean isValidTamingItem(ItemStack itemStack) { + if (itemStack == null) { + return false; + } + + if (itemStack.getItem() == Items.water_bucket) { + return true; + } + return super.isValidTamingItem(itemStack); + } + + @Override + public boolean isRideable() { + return true; + } + + private void createCamelChest() + { + AnimalChest animalchest = this.camelChest; + this.camelChest = new AnimalChest("CamelChest", 17); + this.camelChest.func_110133_a(this.getCommandSenderName()); + + if (animalchest != null) + { + animalchest.func_110132_b((IInvBasic) this); + int i = Math.min(animalchest.getSizeInventory(), this.camelChest.getSizeInventory()); + + for (int j = 0; j < i; ++j) + { + ItemStack itemstack = animalchest.getStackInSlot(j); + + if (itemstack != null) + { + this.camelChest.setInventorySlotContents(j, itemstack.copy()); + } + } + animalchest = null; + } + + this.camelChest.func_110134_a((IInvBasic) this); + } + + public void func_146086_d(ItemStack p_146086_1_) + { + this.dataWatcher.updateObject(22, Integer.valueOf(this.getCamelArmorIndex(p_146086_1_))); + //this.func_110230_cF(); + } + + /** + * 0 = iron, 1 = gold, 2 = diamond + */ + private int getCamelArmorIndex(ItemStack p_110260_1_) + { + if (p_110260_1_ == null) + { + return 0; + } + else + { + Item item = p_110260_1_.getItem(); + return item == Items.iron_horse_armor ? 1 : (item == Items.golden_horse_armor ? 2 : (item == Items.diamond_horse_armor ? 3 : 0)); + } + } + + public void setCamelSaddled(boolean p_110251_1_) + { + //this.setHorseWatchableBoolean(4, p_110251_1_); + this.setSaddled(true); + } + + /** + * Called by InventoryBasic.onInventoryChanged() on a array that is never filled. + */ + @Override + public void onInventoryChanged(InventoryBasic p_76316_1_) + { + int i = this.getMountArmorValue(); + boolean flag = this.isCamelSaddled(); + //this.func_110232_cE(); + + if (this.ticksExisted > 20) + { + if (!(p_76316_1_.getStackInSlot(0) == null)) { + if (p_76316_1_.getStackInSlot(0).getItem() ==Items.saddle){ + this.setSaddled(true); + this.playSound("mob.horse.leather", 0.5F, 1.0F); + } + }else + { + this.setSaddled(false); + } + + if (i == 0 && i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + else if (i != this.getMountArmorValue()) + { + this.playSound("mob.horse.armor", 0.5F, 1.0F); + } + } + } + + public boolean isCamelSaddled() + { + return this.getSaddled(); + } + +/* public boolean isChested() + { + return this.animalChested; + }*/ + + public int getMountArmorValue() + { + return this.dataWatcher.getWatchableObjectInt(22); + } + + +/* public EntityGenericAgeable createChild(EntityGenericAgeable p_90011_1_) { + //EntityCamel entity = (EntityCamel)p_90011_1_; + EntityCamel entityCamel1 = new EntityCamel(this.worldObj); + return entityCamel1; + //return null; + }*/ + + /** + * Called when the entity is attacked. + */ + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + Entity entity = p_70097_1_.getEntity(); + return this.riddenByEntity != null && this.riddenByEntity.equals(entity) ? false : super.attackEntityFrom(p_70097_1_, p_70097_2_); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + @Override + public int getTotalArmorValue() + { + //return armorValues[this.getMountArmorValue()]; + return 2; + } + + public void dropChests() + { + if (!this.worldObj.isRemote && this.isChested()) + { + this.dropItem(Item.getItemFromBlock(Blocks.chest), 1); + this.setChested(false); + } + } + + /* public void setChested(boolean p_110207_1_) + { + this.animalChested = p_110207_1_; + }*/ + + @Override + public boolean shouldNotifySimilar(EntityPlayer attackingPlayer) { + return true; + } + + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + @Override + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(this.isTamed()){ + if (itemstack != null && itemstack.getItem() == Items.spawn_egg) + { + return super.interact(p_70085_1_); + } + + else + if (this.isAdultCamel() && p_70085_1_.isSneaking()) + { + this.openGUI(p_70085_1_); + return true; + } + else if (this.isAdultCamel() && this.riddenByEntity != null) + { + return super.interact(p_70085_1_); + } + else if (itemstack != null && this.isValidBreedingItem(itemstack)) + { + return super.interact(p_70085_1_); + } + else + { + if (itemstack != null) + { + boolean flag = false; + + // if (this.func_110259_cr()) + // { + byte b0 = -1; + + if (itemstack.getItem() == Items.stick) + { + b0 = 1; + } + + /* if (itemstack.getItem() == Items.iron_horse_armor) + { + b0 = 1; + } + else if (itemstack.getItem() == Items.golden_horse_armor) + { + b0 = 2; + } + else if (itemstack.getItem() == Items.diamond_horse_armor) + { + b0 = 3; + }*/ + + if (b0 >= 0) + { + this.openGUI(p_70085_1_); + return true; + } + // } + + if (!flag ) + { + float f = 0.0F; + short short1 = 0; + byte b1 = 0; + + if (itemstack.getItem() == Items.wheat) + { + f = 2.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.sugar) + { + f = 1.0F; + short1 = 30; + b1 = 3; + } + else if (itemstack.getItem() == Items.bread) + { + f = 7.0F; + short1 = 180; + b1 = 3; + } + else if (Block.getBlockFromItem(itemstack.getItem()) == Blocks.hay_block) + { + f = 20.0F; + short1 = 180; + } + else if (itemstack.getItem() == Items.apple) + { + f = 3.0F; + short1 = 60; + b1 = 3; + } + else if (itemstack.getItem() == Items.golden_carrot) + { + f = 4.0F; + short1 = 60; + b1 = 5; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + else if (itemstack.getItem() == Items.golden_apple) { + + f = 10.0F; + short1 = 240; + b1 = 10; + + if (this.isTamed() && this.getGrowingAge() == 0) + { + flag = true; + //this.func_146082_f(p_70085_1_); + } + } + + if (this.getHealth() < this.getMaxHealth() && f > 0.0F) + { + this.heal(f); + flag = true; + } + + /*if (!this.isAdultHorse() && short1 > 0) + { + this.addGrowth(short1); + flag = true; + }*/ + + /*if (b1 > 0 && (flag || !this.isTamed())) + { + flag = true; + this.increaseTemper(b1); + }*/ + + if (flag) + { + this.worldObj.playSoundAtEntity(this, "eating", 1.0F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F); + } + } + + if (!flag && !this.isChested() && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + this.setChested(true); + this.playSound("mob.chickenplop", 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); + flag = true; + this.createCamelChest(); + } + + if (!flag && this.func_110253_bW() && !this.isCamelSaddled() && itemstack.getItem() == Items.saddle) + { + this.openGUI(p_70085_1_); + return true; + } + + if (flag) + { + if (!p_70085_1_.capabilities.isCreativeMode && --itemstack.stackSize == 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + return true; + } + } + + if (this.func_110253_bW() && this.riddenByEntity == null) + { + if (itemstack != null && itemstack.interactWithEntity(p_70085_1_, this)) + { + return true; + } + else + { + this.func_110237_h(p_70085_1_); + return true; + } + } + else + { + return super.interact(p_70085_1_); + } + } + } + else if (itemstack != null && itemstack.getItem() == Items.saddle ) + { + return false; + } + else if (itemstack != null && itemstack.getItem() == Item.getItemFromBlock(Blocks.chest)) + { + return false; + } + else if(itemstack != null && this.isValidTamingItem(itemstack)) { + if (!p_70085_1_.capabilities.isCreativeMode){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, + new ItemStack(Items.bucket)); + } + + if (itemstack.stackSize <= 0){ + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if(!worldObj.isRemote){ + boolean tameEffectSuccess = false; + + if(rand.nextInt(3) == 0){ + this.setTamed(true); + this.setAttackTarget((EntityLiving)null); + this.setHealth(getMaxHealth()); + this.setOwner(p_70085_1_.getCommandSenderName()); + setEntityTamed(getDefaultEntityName()); + tameEffectSuccess = true; + } + + /* Send Tame Effect Packet */ + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + DataOutputStream data = new DataOutputStream(bytes); + /* Write PacketID into Packet */ + try { + data.writeInt(5); + } catch (Exception e) { + e.printStackTrace(); + } + + /* Write Temperature Into Packet */ + try { + data.writeInt(getEntityId()); + data.writeBoolean(tameEffectSuccess); + } catch (Exception e) { + e.printStackTrace(); + } + PZPacketTameParticle message = new PZPacketTameParticle().setPacketData(getEntityId(), tameEffectSuccess); + ProjectZulu_Core.packetHandler.sendToAllAround(message, new TargetPoint(dimension, posX, posY, posZ, 10)); + } + return true; + } + if(super.interact(p_70085_1_)){ + return true; + } + + return false; + } + + public boolean isAdultCamel() + { + return !this.isChild(); + } + + public void openGUI(EntityPlayer player) + { + if (!this.worldObj.isRemote && (this.riddenByEntity == null || this.riddenByEntity == player) && this.isTamed()) + { + this.camelChest.func_110133_a(this.getCommandSenderName()); + if (player.inventory == null){ + } + + if (this.camelChest == null) { + } + player.openGui(ProjectZulu_Core.modInstance, 5, player.worldObj, this.getEntityId(), 0, 0); + } + } + + /** + * Gets the name of this command sender (usually username, but possibly "Rcon") + */ + public String getCommandSenderName() + { + //if (this.hasCustomNameTag()) + //{ + return this.getCustomNameTag(); + //} + + } + + public boolean func_110253_bW() + { + return this.isAdultCamel(); + } + + private void func_110237_h(EntityPlayer p_110237_1_) + { + p_110237_1_.rotationYaw = this.rotationYaw; + p_110237_1_.rotationPitch = this.rotationPitch; + + if (!this.worldObj.isRemote) + { + p_110237_1_.mountEntity(this); + } + } + + public static boolean func_146085_a(Item p_146085_0_) + { + return p_146085_0_ == Items.iron_horse_armor || p_146085_0_ == Items.golden_horse_armor || p_146085_0_ == Items.diamond_horse_armor; + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + p_70014_1_.setBoolean("ChestedCamel", this.isChested()); + + if (this.isChested()) + { + NBTTagList nbttaglist = new NBTTagList(); + + for (int i = 2; i < this.camelChest.getSizeInventory(); ++i) + { + ItemStack itemstack = this.camelChest.getStackInSlot(i); + + if (itemstack != null) + { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte)i); + itemstack.writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + p_70014_1_.setTag("Items", nbttaglist); + } + + if (this.camelChest.getStackInSlot(1) != null) + { + p_70014_1_.setTag("ArmorItem", this.camelChest.getStackInSlot(1).writeToNBT(new NBTTagCompound())); + } + + if (this.camelChest.getStackInSlot(0) != null) + { + p_70014_1_.setTag("SaddleItem", this.camelChest.getStackInSlot(0).writeToNBT(new NBTTagCompound())); + } + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + this.setChested(p_70037_1_.getBoolean("ChestedCamel")); + + if (this.isChested()) + { + NBTTagList nbttaglist = p_70037_1_.getTagList("Items", 10); + this.createCamelChest(); + + for (int i = 0; i < nbttaglist.tagCount(); ++i) + { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if (j >= 2 && j < this.camelChest.getSizeInventory()) + { + this.camelChest.setInventorySlotContents(j, ItemStack.loadItemStackFromNBT(nbttagcompound1)); + } + } + } + + ItemStack itemstack; + + /* if (p_70037_1_.hasKey("ArmorItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("ArmorItem")); + + if (itemstack != null && func_146085_a(itemstack.getItem())) + { + this.camelChest.setInventorySlotContents(1, itemstack); + } + }*/ + + if (p_70037_1_.hasKey("SaddleItem", 10)) + { + itemstack = ItemStack.loadItemStackFromNBT(p_70037_1_.getCompoundTag("SaddleItem")); + + if (itemstack != null && itemstack.getItem() == Items.saddle) + { + this.camelChest.setInventorySlotContents(0, itemstack); + } + } + else if (p_70037_1_.getBoolean("Saddle")) + { + this.camelChest.setInventorySlotContents(0, new ItemStack(Items.saddle)); + } + } + + /** + * Moves the entity based on the specified heading. Args: strafe, forward + */ + @Override + public void moveEntityWithHeading(float moveStrafe, float moveForward) + { + + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase + && this.getSaddled()) + { + // Apply Rider Movement: + EntityLivingBase rider = (EntityLivingBase)this.riddenByEntity; + + this.prevRotationYaw = this.rotationYaw = rider.rotationYaw; + this.rotationPitch = rider.rotationPitch * 0.5F; + this.setRotation(this.rotationYaw, this.rotationPitch); + this.rotationYawHead = this.renderYawOffset = this.rotationYaw; + moveStrafe = ((EntityLivingBase)rider).moveStrafing * 0.5F; + moveForward = ((EntityLivingBase)rider).moveForward; + + // Jumping Controls: + if(!this.isMountJumping() && this.onGround) { + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)this.riddenByEntity; + //ExtendedPlayer playerExt = ExtendedPlayer.getForPlayer(player); + if(this.mountJump) + this.startJumping(); + } + } + + // Jumping Behaviour: + if(this.getJumpPower() > 0.0F && !this.isMountJumping() && this.onGround) { + this.motionY = this.getMountJumpHeight() * (double)this.getJumpPower(); + if(this.isPotionActive(Potion.jump)) + this.motionY += (double)((float)(this.getActivePotionEffect(Potion.jump).getAmplifier() + 1) * 0.1F); + this.setMountJumping(true); + this.isAirBorne = true; + if(moveForward > 0.0F) { + float f2 = MathHelper.sin(this.rotationYaw * (float)Math.PI / 180.0F); + float f3 = MathHelper.cos(this.rotationYaw * (float)Math.PI / 180.0F); + this.motionX += (double)(-0.4F * f2 * this.jumpPower); + this.motionZ += (double)(0.4F * f3 * this.jumpPower); + } + if(!this.worldObj.isRemote) + this.playSound("mob.horse.jump", 0.4F, 1.0F); + this.setJumpPower(0); + } + //this.jumpMovementFactor = (float)(this.getAIMoveSpeed() * this.getGlideScale()); + this.stepHeight = 1.0F; + this.jumpMovementFactor = this.getAIMoveSpeed() * 0.1F; + + // Apply Movement: + if(!this.worldObj.isRemote) { + this.setAIMoveSpeed((float)this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue()); + super.moveEntityWithHeading(moveStrafe, moveForward); + } + + // Clear Jumping: + if(this.onGround) { + this.setJumpPower(0); + this.setMountJumping(false); + this.mountJump = false; + } + + // Animate Limbs: + this.prevLimbSwingAmount = this.limbSwingAmount; + double d0 = this.posX - this.prevPosX; + double d1 = this.posZ - this.prevPosZ; + float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; + if (f4 > 1.0F) + f4 = 1.0F; + this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; + this.limbSwing += this.limbSwingAmount; + } + else + { + this.stepHeight = 0.5F; + this.jumpMovementFactor = 0.02F; + super.moveEntityWithHeading(moveStrafe, moveForward); + } + } + + /** + * returns true if all the conditions for steering the entity are met. For pigs, this is true if it is being ridden + * by a player and the player is holding a carrot-on-a-stick + */ + @Override + public boolean canBeSteered() + { + return false; + } + + /** + * Called when the mob's health reaches 0. + */ + @Override + public void onDeath(DamageSource p_70645_1_) + { + super.onDeath(p_70645_1_); + + if (!this.worldObj.isRemote) + { + this.dropChestItems(); + } + } + + public void dropChestItems() + { + this.dropItemsInChest(this, this.camelChest); + this.dropChests(); + } + + private void dropItemsInChest(Entity p_110240_1_, AnimalChest p_110240_2_) + { + if (p_110240_2_ != null && !this.worldObj.isRemote) + { + for (int i = 0; i < p_110240_2_.getSizeInventory(); ++i) + { + ItemStack itemstack = p_110240_2_.getStackInSlot(i); + + if (itemstack != null) + { + this.entityDropItem(itemstack, 0.0F); + } + } + } + } + + /** + * Returns true if this entity should push and be pushed by other entities when colliding. + */ + @Override + public boolean canBePushed() + { + return this.riddenByEntity == null; + } + + @Override + public double getMountedYOffset() { + return 2.6f; + } + + // ========== Jumping Start ========== + public void startJumping() { + this.setJumpPower(); + } + + // ========== Jump Power ========== + public void setJumpPower(int power) { + if(power < 0) + power = 0; + if(power > 99) + power = 99; + if(power < 90) + this.jumpPower = 1.0F * ((float)power / 89.0F); + else + this.jumpPower = 1.0F + (1.0F * ((float)(power - 89) / 10.0F)); + } + + public void setJumpPower() { + this.setJumpPower(89); + } + + public float getJumpPower() { + return this.jumpPower; + } + + // ========== Gliding ========== + public double getGlideScale() { + return 0.1F; + } + + // ========== Jumping ========== + public double getMountJumpHeight() { + return 0.5D; + } + + public boolean isMountJumping() { + return this.mountJumping; + } + + public void setMountJumping(boolean set) { + this.mountJumping = set; + } + + public void setMountJump(){ + this.mountJump = true; + } + + private boolean getCamelWatchableBoolean(int p_110233_1_) + { + return (this.dataWatcher.getWatchableObjectInt(26) & p_110233_1_) != 0; + } + + private void setCamelWatchableBoolean(int p_110208_1_, boolean p_110208_2_) + { + int j = this.dataWatcher.getWatchableObjectInt(26); + + if (p_110208_2_) + { + this.dataWatcher.updateObject(26, Integer.valueOf(j | p_110208_1_)); + } + else + { + this.dataWatcher.updateObject(26, Integer.valueOf(j & ~p_110208_1_)); + } + } + + public boolean isChested() + { + return this.getCamelWatchableBoolean(8); + } + + public void setChested(boolean p_110207_1_) + { + this.setCamelWatchableBoolean(8, p_110207_1_); + } + + public void riderDismount(){ + if (!this.worldObj.isRemote) + { + if (this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayerMP) + { + EntityPlayerMP entityplayermp = (EntityPlayerMP)this.riddenByEntity; + this.moveEntity(this.posX, this.posY, this.posZ + 2); + if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) + { + // EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); + // if (!MinecraftForge.EVENT_BUS.post(event)) + { // Don't indent to lower patch size + //if (this.getThrower().isRiding()) + // { + // this.getThrower().mountEntity((Entity)null); + // } + // int playerFacing = MathHelper.floor_double((double)((this.riddenByEntity.rotationYaw * 4F) / 360F) + 0.5D) & 3; + + // System.out.println("Player facing value " + playerFacing); + + /* if (playerFacing == 0){ + this.riddenByEntity.moveEntity(p_70091_1_, p_70091_3_, p_70091_5_);(this.posX, this.posY, this.posZ + 5); + } + if (playerFacing == 1){ + this.riddenByEntity.setPosition(this.posX - 5, this.posY, this.posZ); + } + if (playerFacing == 2){ + this.riddenByEntity.setPosition(this.posX, this.posY, this.posZ - 5); + } + if (playerFacing == 3){ + this.riddenByEntity.setPosition(this.posX + 5, this.posY, this.posZ); + }*/ + + + //this.riddenByEntity.setPosition(this.posX + 10, this.posY, this.posZ); + //this.riddenByEntity.fallDistance = 0.0F; + //this.riddenByEntity.attackEntityFrom(DamageSource.fall, event.attackDamage); + } + } + } + } + } + +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/10b3665d9f9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/10b3665d9f9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..0e697ac --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/10b3665d9f9d00141ce0d62fbd2fd1cf @@ -0,0 +1,201 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelCentipede extends ModelBase { + + float heightToRaise = 10f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelCentipede() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + ANTENLEFROT1.render(renderScale * f5); + ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + ANTENLEFROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENLEFROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + ANTENRIGROT2.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + ANTENRIGROT3.rotateAngleX = (float) (-15 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.6662F + (float) Math.PI)); + + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0b981ca029e00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0b981ca029e00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..65fab78 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/a0b981ca029e00141ce0d62fbd2fd1cf @@ -0,0 +1,262 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import org.lwjgl.opengl.GL11; + +import com.stek101.projectzulu.common.core.ModelHelper; + +public class ModelMonkeyTailed extends ModelBase { + + float heightToRaise = 15f; + float renderScale = 0.80f; + + //fields + ModelRenderer HEAD; + ModelRenderer neck; + ModelRenderer snoutHEAD; + ModelRenderer earLeft; + ModelRenderer earRight; + ModelRenderer BODYbase; + ModelRenderer BODYtop; + ModelRenderer leftTopArm; + ModelRenderer leftBotArm; + ModelRenderer rightTopArm; + ModelRenderer rightBotArm; + ModelRenderer leftTopLeg; + ModelRenderer leftBotLeg; + ModelRenderer rightTopLeg; + ModelRenderer rightBotLeg; + ModelRenderer tailBase; + ModelRenderer tailExt1; + ModelRenderer tailExt2; + + public ModelMonkeyTailed() + { + textureWidth = 64; + textureHeight = 64; + + HEAD = new ModelRenderer(this, 1, 1); + HEAD.addBox(-2F, -4F, -3F, 5, 5, 5); + HEAD.setRotationPoint(0.5F, 11F - heightToRaise, -5F); + HEAD.setTextureSize(64, 64); + HEAD.mirror = true; + setRotation(HEAD, 0.1745329F, 0F, 0F); + neck = new ModelRenderer(this, 19, 44); + neck.addBox(-2F, -2F, -1F, 3, 4, 3); + neck.setRotationPoint(1.5F, 11F - heightToRaise, -4F); + neck.setTextureSize(64, 64); + neck.mirror = true; + setRotation(neck, 0.0174533F, 0F, 0F); + snoutHEAD = new ModelRenderer(this, 21, 1); + snoutHEAD.addBox(-1F, -1F, -3F, 3, 3, 5); + //snoutHEAD.setRotationPoint(0.5F, 10.2F, -7F); + snoutHEAD.setRotationPoint(0F, -0.9F, -1.0F); + snoutHEAD.setTextureSize(64, 64); + snoutHEAD.mirror = true; + setRotation(snoutHEAD, 0.1745329F, 0F, 0F); + HEAD.addChild(snoutHEAD); + earLeft = new ModelRenderer(this, 1, 44); + earLeft.addBox(0F, -1F, 0F, 3, 3, 1); + //earLeft.setRotationPoint(2F, 8.4F, -5F); + earLeft.setRotationPoint(2.0F, -2.6F, 0F); + earLeft.setTextureSize(64, 64); + earLeft.mirror = true; + setRotation(earLeft, 0.1396263F, 0F, 0F); + HEAD.addChild(earLeft); + earRight = new ModelRenderer(this, 1, 50); + earRight.addBox(-2F, -1F, 0F, 3, 3, 1); + //earRight.setRotationPoint(-1F, 8.4F, -5F); + earRight.setRotationPoint(-2.0F, -2.6F, 0F); + earRight.setTextureSize(64, 64); + earRight.mirror = true; + setRotation(earRight, 0.1396263F, 0F, 0F); + HEAD.addChild(earRight); + BODYbase = new ModelRenderer(this, 1, 12); + BODYbase.addBox(-2F, -2F, -2F, 6, 5, 12); + BODYbase.setRotationPoint(0F, 11F - heightToRaise, -1F); + BODYbase.setTextureSize(64, 64); + BODYbase.mirror = true; + setRotation(BODYbase, -0.2974289F, 0F, 0F); + BODYtop = new ModelRenderer(this, 1, 30); + BODYtop.addBox(-2F, -1F, -2F, 5, 4, 8); + BODYtop.setRotationPoint(0.5F, 9.5F - heightToRaise, 0F); + BODYtop.setTextureSize(64, 64); + BODYtop.mirror = true; + setRotation(BODYtop, -0.2974289F, 0F, 0F); + leftTopArm = new ModelRenderer(this, 37, 1); + leftTopArm.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopArm.setRotationPoint(3F, 11F - heightToRaise, -2F); + leftTopArm.setTextureSize(64, 64); + leftTopArm.mirror = true; + setRotation(leftTopArm, -0.1858931F, 0F, 0F); + leftBotArm = new ModelRenderer(this, 37, 12); + leftBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //leftBotArm.setRotationPoint(4F, 16F, -3F); + leftBotArm.setRotationPoint(1.0F, 5.0F, 0.0F); + leftBotArm.setTextureSize(64, 64); + leftBotArm.mirror = true; + setRotation(leftBotArm, -0.5576792F, 0F, 0F); + leftTopArm.addChild(leftBotArm); + rightTopArm = new ModelRenderer(this, 51, 1); + rightTopArm.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopArm.setRotationPoint(-2F, 11F - heightToRaise, -2F); + rightTopArm.setTextureSize(64, 64); + rightTopArm.mirror = true; + setRotation(rightTopArm, -0.1858931F, 0F, 0F); + rightBotArm = new ModelRenderer(this, 51, 12); + rightBotArm.addBox(-1F, 0F, -1F, 3, 8, 3); + //rightBotArm.setRotationPoint(-3F, 16F, -3F); + rightBotArm.setRotationPoint(-1.0F, 5.0F, 0.0F); + rightBotArm.setTextureSize(64, 64); + rightBotArm.mirror = true; + setRotation(rightBotArm, -0.5576792F, 0F, 0F); + rightTopArm.addChild(rightBotArm); + leftTopLeg = new ModelRenderer(this, 37, 25); + leftTopLeg.addBox(0F, -1F, -1F, 3, 7, 3); + leftTopLeg.setRotationPoint(2F, 13F - heightToRaise, 6F); + leftTopLeg.setTextureSize(64, 64); + leftTopLeg.mirror = true; + setRotation(leftTopLeg, -0.6108652F, 0F, 0F); + leftBotLeg = new ModelRenderer(this, 37, 36); + leftBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //leftBotLeg.setRotationPoint(3F, 17F, 3F); + leftBotLeg.setRotationPoint(1F, 4F, 0F); + leftBotLeg.setTextureSize(64, 64); + leftBotLeg.mirror = true; + setRotation(leftBotLeg, 0.3717861F, 0F, 0F); + leftTopLeg.addChild(leftBotLeg); + rightTopLeg = new ModelRenderer(this, 51, 25); + rightTopLeg.addBox(-2F, -1F, -1F, 3, 7, 3); + rightTopLeg.setRotationPoint(-1F, 13F - heightToRaise, 6F); + rightTopLeg.setTextureSize(64, 64); + rightTopLeg.mirror = true; + setRotation(rightTopLeg, -0.6108652F, 0F, 0F); + rightBotLeg = new ModelRenderer(this, 51, 36); + rightBotLeg.addBox(-1F, 0F, -1F, 3, 7, 3); + //rightBotLeg.setRotationPoint(-2F, 17F, 3F); + rightBotLeg.setRotationPoint(-1F, 4F, 0F); + rightBotLeg.setTextureSize(64, 64); + rightBotLeg.mirror = true; + setRotation(rightBotLeg, 0.3717861F, 0F, 0F); + rightTopLeg.addChild(rightBotLeg); + tailBase = new ModelRenderer(this, 1, 56); + tailBase.addBox(0F, 0F, 0F, 1, 1, 6); + tailBase.setRotationPoint(0.5F, 13F - heightToRaise, 7F); + tailBase.setTextureSize(64, 64); + tailBase.mirror = true; + setRotation(tailBase, 0F, 0F, 0F); + tailExt1 = new ModelRenderer(this, 16, 56); + tailExt1.addBox(0F, 0F, 0F, 1, 1, 6); + tailExt1.setRotationPoint(0.5F, 13F - heightToRaise, 13F); + tailExt1.setTextureSize(64, 64); + tailExt1.mirror = true; + setRotation(tailExt1, -0.5576792F, 0F, 0F); + tailExt2 = new ModelRenderer(this, 29, 55); + tailExt2.addBox(0F, 0F, 0F, 1, 1, 7); + tailExt2.setRotationPoint(0.5F, 15.9F - heightToRaise, 18F); + tailExt2.setTextureSize(64, 64); + tailExt2.mirror = true; + setRotation(tailExt2, -0.9856463F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + + if (this.isChild) { + float var8 = 2.0F; + GL11.glPushMatrix(); + GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + //GL11.glTranslatef(field_78145_x, field_78145_g * f5, field_78151_h * f5); + HEAD.render(renderScale * f5); + neck.render(renderScale * f5); + BODYbase.render(renderScale * f5); + BODYtop.render(renderScale * f5); + leftTopArm.render(renderScale * f5); + rightTopArm.render(renderScale * f5); + leftTopLeg.render(renderScale * f5); + rightTopLeg.render(renderScale * f5); + tailBase.render(renderScale * f5); + tailExt1.render(renderScale * f5); + tailExt2.render(renderScale * f5); + GL11.glPopMatrix(); + } else { + //GL11.glPushMatrix(); + // GL11.glScalef(0.85F, 0.85F, 0.85F); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + HEAD.render(f5); + neck.render(f5); + //snoutHEAD.render(f5); + //earLeft.render(f5); + //earRight.render(f5); + BODYbase.render(f5); + BODYtop.render(f5); + leftTopArm.render(f5); + //leftBotArm.render(f5); + rightTopArm.render(f5); + //rightBotArm.render(f5); + leftTopLeg.render(f5); + //leftBotLeg.render(f5); + rightTopLeg.render(f5); + //rightBotLeg.render(f5); + tailBase.render(f5); + tailExt1.render(f5); + tailExt2.render(f5); + // GL11.glPopMatrix(); + } + + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + + leftTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + //leftBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + ///leftBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + /// .abs(Math.log(par3 + 1))); + + //rightBotArm.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + // * ModelHelper.abs(Math.log(par3 + 1))); + + ///rightBotArm.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + + leftTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.8F * ModelHelper + .abs(Math.log(par3 + 1))); + + rightTopLeg.rotateAngleX = (float) (MathHelper.cos(par2 * 0.6662F) * 1.8F * ModelHelper.abs(Math.log(par3 + 1))); + leftBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2 + (float) Math.PI) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + rightBotLeg.rotateAngleX = (float) Math.abs(MathHelper.cos(par2 * 0.6662F / 2) * 1.8F + * ModelHelper.abs(Math.log(par3 + 1))); + + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + HEAD.rotateAngleY = f3 / (180F / (float)Math.PI); + HEAD.rotateAngleX = f3 / (180F / (float)Math.PI); + //HEAD.rotateAngleX = Math.min(Math.max(f4, -14), +15) * (float) (Math.PI / 180f); + //HEAD.rotateAngleY = Math.min(Math.max(f3, -15), +15) * (float) (Math.PI / 180f); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f01ead49a39d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f01ead49a39d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..632b7be --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f01ead49a39d00141ce0d62fbd2fd1cf @@ -0,0 +1,212 @@ +package com.stek101.projectzulu.common.mobs.models; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 21f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + // float var8 = 2.0F; + // GL11.glPushMatrix(); + // GL11.glScalef(1.0F / var8, 1.0F / var8, 1.0F / var8); + // GL11.glTranslatef(0.0F, 24.0F * f5, 0.0F); + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + // GL11.glPopMatrix(); + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/00f317eced9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/00f317eced9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..4c92ef6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/00f317eced9d00141ce0d62fbd2fd1cf @@ -0,0 +1,240 @@ +package com.stek101.projectzulu.common.mobs.entity; + +import java.util.EnumSet; +import java.util.Iterator; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumSkyBlock; +import net.minecraft.world.World; + +import com.stek101.projectzulu.common.api.BlockList; +import com.stek101.projectzulu.common.api.CustomEntityList; +import com.stek101.projectzulu.common.core.DefaultProps; +import com.stek101.projectzulu.common.mobs.EntityAFightorFlight; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIAttackOnCollide; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIFlyingWander; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIHurtByTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAINearestAttackableTarget; +import com.stek101.projectzulu.common.mobs.entityai.EntityAIStayStill; + +import cpw.mods.fml.common.Loader; + +public class EntityPZBat extends EntityGenericAnimal implements IAnimals { + int stayStillTimer = 0; + private EntityAFightorFlight EAFF; + private float aggroLevel; + private double aggroRange; + boolean manyVultures = false; + //private int maxTargetHealthToAttack = (Integer) CustomEntityList.getByEntity(this).modData.get().customData + // .get("maxTargetHealth"); + float curiosity = 0; + int ticksToCheckAbilities = 3; + + public EntityPZBat(World par1World) { + super(par1World); + // noClip = true; + setSize(1.0f, 1.4f); + + float moveSpeed = 0.22f; + CustomEntityList entityEntry = CustomEntityList.getByName(EntityList.getEntityString(this)); + if (entityEntry != null && entityEntry.modData.get().entityProperties != null) { + // TODO: Switch to this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue()??? + moveSpeed = entityEntry.modData.get().entityProperties.moveSpeed; + this.aggroLevel = entityEntry.modData.get().entityProperties.aggroLevel; + this.aggroRange = entityEntry.modData.get().entityProperties.aggroRange; + } + + if (Math.round(this.aggroRange) != 0) { + EAFF = new EntityAFightorFlight().setEntity(this, worldObj, this.aggroLevel, this.aggroRange); + } + + this.maxFlightHeight = 7; + this.getNavigator().setAvoidsWater(true); + this.tasks.addTask(2, new EntityAIStayStill(this, EntityStates.posture)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0f, false)); + this.tasks.addTask(4, new EntityAIFlyingWander(this, (float) moveSpeed)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 16.0F)); + + targetTasks.addTask(1, new EntityAIHurtByTarget(this, false, false)); + targetTasks.addTask(2, + new EntityAINearestAttackableTarget(this, EnumSet.of(EntityStates.attacking, EntityStates.looking), + EntityPlayer.class, 16.0F, 0, true)); + } + + @Override + public boolean defaultGrounded() { + return false; + } + + /** + * Called when the mob is falling. Calculates and applies fall damage. + */ + @Override + protected void fall(float par1) { + } + + /** + * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance + * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround + */ + @Override + protected void updateFallState(double par1, boolean par3) { + } + + @Override + public int getTotalArmorValue() { + return 1; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + @Override + protected String getLivingSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "birdhurt"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + @Override + protected String getHurtSound() { + return DefaultProps.mobKey + ":" + DefaultProps.entitySounds + "bird"; + } + + @Override + public int getTalkInterval() { + return 120; + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + if (Math.round(this.aggroRange) != 0) { + EAFF.updateEntityAFF(worldObj); + } + } + + /** + * Plays step sound at given x, y, z for the entity + */ + @Override + protected void func_145780_a(int xCoord, int yCoord, int zCoord, Block stepBlock) { + this.worldObj.playSoundAtEntity(this, "sounds.birdplop", 1.0F, 1.0F); + } + + @Override + public boolean isValidBreedingItem(ItemStack itemStack) { + return false; + } + + @Override + public void updateAIState() { + if (stayStillTimer > 0) { + entityState = EntityStates.posture; + } else { + super.updateAIState(); + } + } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if (ticksExisted % ticksToCheckAbilities == 0) { + + /* Check if their is a nearby Player to Follow */ + EntityPlayer nearbyPlayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 100.0D); + if (nearbyPlayer != null) { + int distToTargetXZ = (int) Math.sqrt(Math.pow(nearbyPlayer.posX - this.posX, 2) + + Math.pow(nearbyPlayer.posZ - this.posZ, 2)); + if (distToTargetXZ < 16) { + curiosity = 140; + } + } + shouldFollow = curiosity > 0 ? true : false; + curiosity = Math.max(curiosity - ticksToCheckAbilities, 0); + + /* + * Assuming we're following a Player, check if We Should Attack by Comparing number of Nearby Vultures to + * the Health of our Target + */ + Entity targetedEntity = nearbyPlayer; + if (curiosity > 0 && targetedEntity != null) { + int nearbyVultures = 0; + AxisAlignedBB var15 = this.boundingBox.copy(); + var15 = var15.expand(10, 10, 10); + List nearbyEntities = this.worldObj.getEntitiesWithinAABB(EntityVulture.class, var15); + if (nearbyEntities != null && !nearbyEntities.isEmpty()) { + Iterator var10 = nearbyEntities.iterator(); + + while (var10.hasNext()) { + Entity var4 = (Entity) var10.next(); + if (var4 instanceof EntityVulture + && (((EntityVulture) var4).getEntityState() == EntityStates.following || ((EntityVulture) var4) + .getEntityState() == EntityStates.attacking)) { + nearbyVultures += 1; + } + } + } + // if (((EntityLivingBase) targetedEntity).getHealth() < maxTargetHealthToAttack + // && ((EntityLivingBase) targetedEntity).getHealth() < nearbyVultures * 4) { + // setAngerLevel(400); + // } + } + } + } + + /** + * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to + * prevent them from trampling crops + */ + @Override + protected boolean canTriggerWalking() { + return false; + } + + // @Override + // protected boolean isValidLightLevel(World world, int xCoord, int yCoord, int zCoord) { + // return this.worldObj.getSavedLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord) < 1; + // } + + @Override + protected boolean isValidLocation(World world, int xCoord, int yCoord, int zCoord) { + return worldObj.canBlockSeeTheSky(xCoord, yCoord, zCoord); + } + + // @Override + // protected void dropRareDrop(int par1) { + // if (Loader.isModLoaded(DefaultProps.BlocksModId) && BlockList.mobHeads.isPresent()) { + // entityDropItem(new ItemStack(BlockList.mobHeads.get(), 1, 0), 1); + // } + // super.dropRareDrop(par1); + // } + + @Override + public boolean attackEntityAsMob(Entity entity) { + boolean success = super.attackEntityAsMob(entity); + if (entity instanceof EntityLivingBase) { + ((EntityLivingBase)entity).addPotionEffect(new PotionEffect(Potion.poison.id, 40)); + success = true; + } + return success; + } + + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/709cb2549f9d00141ce0d62fbd2fd1cf b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/709cb2549f9d00141ce0d62fbd2fd1cf new file mode 100644 index 0000000..e500dcf --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/709cb2549f9d00141ce0d62fbd2fd1cf @@ -0,0 +1,206 @@ +package com.stek101.projectzulu.common.mobs.models; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +import com.stek101.projectzulu.common.mobs.entity.EntityFollower; + +public class ModelFollower extends ModelBase { + + float heightToRaise = 10f; + float renderScale = 0.5f; + + ModelRenderer sidebody2; + ModelRenderer body; + ModelRenderer sidebody3; + ModelRenderer sidebody1; + ModelRenderer ANTENLEFROT1; + ModelRenderer ANTENRIGROT1; + ModelRenderer LEG11ROT; + ModelRenderer LEG21ROT; + ModelRenderer LEG31ROT; + ModelRenderer LEG41ROT; + private ModelRenderer ANTENLEFROT2; + private ModelRenderer ANTENLEFROT3; + private ModelRenderer ANTENRIGROT2; + private ModelRenderer ANTENRIGROT3; + private ModelRenderer LEG12ROT; + private ModelRenderer LEG22ROT; + private ModelRenderer LEG32ROT; + private ModelRenderer LEG42ROT; + + public ModelFollower() { + textureWidth = 64; + textureHeight = 32; + setTextureOffset("ANTENLEFROT1.antenlef1", 54, 0); + setTextureOffset("ANTENLEFROT2.antenlef2", 50, 0); + setTextureOffset("ANTENLEFROT3.antenlef3", 47, 0); + setTextureOffset("ANTENRIGROT1.antenrig1", 54, 0); + setTextureOffset("ANTENRIGROT2.antenrig2", 50, 0); + setTextureOffset("ANTENRIGROT3.antenrig3", 47, 0); + setTextureOffset("LEG11ROT.leg11", 34, 0); + setTextureOffset("LEG12ROT.leg12", 34, 3); + setTextureOffset("LEG21ROT.leg21", 34, 0); + setTextureOffset("LEG22ROT.leg22", 34, 3); + setTextureOffset("LEG31ROT.leg31", 34, 0); + setTextureOffset("LEG32ROT.leg32", 34, 3); + setTextureOffset("LEG41ROT.leg41", 34, 0); + setTextureOffset("LEG42ROT.leg42", 34, 3); + + sidebody2 = new ModelRenderer(this, 42, 17); + sidebody2.addBox(0F, -2.5F, -5F, 1, 5, 10); + sidebody2.setRotationPoint(4.5F, 18.5F - heightToRaise, 0F); + sidebody2.setTextureSize(64, 32); + sidebody2.mirror = true; + setRotation(sidebody2, 0F, 0F, 0F); + body = new ModelRenderer(this, 0, 14); + body.addBox(-4.5F, -3F, -12F, 9, 6, 12); + body.setRotationPoint(0F, 18.5F - heightToRaise, 6F); + body.setTextureSize(64, 32); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + sidebody3 = new ModelRenderer(this, 0, 2); + sidebody3.addBox(-3F, 0F, -5.5F, 6, 1, 11); + sidebody3.setRotationPoint(0F, 21.5F - heightToRaise, 0F); + sidebody3.setTextureSize(64, 32); + sidebody3.mirror = true; + setRotation(sidebody3, 0F, 0F, 0F); + sidebody1 = new ModelRenderer(this, 42, 17); + sidebody1.addBox(-1F, -2.5F, -5F, 1, 5, 10); + sidebody1.setRotationPoint(-4.5F, 18.5F - heightToRaise, 0F); + sidebody1.setTextureSize(64, 32); + sidebody1.mirror = true; + setRotation(sidebody1, 0F, 0F, 0F); + ANTENLEFROT1 = new ModelRenderer(this, "ANTENLEFROT1"); + ANTENLEFROT1.setRotationPoint(-3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENLEFROT1, -0.5235988F, 0.5235988F, 0F); + ANTENLEFROT1.mirror = true; + ANTENLEFROT1.addBox("antenlef1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENLEFROT2 = new ModelRenderer(this, "ANTENLEFROT2"); + ANTENLEFROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENLEFROT2, -0.5235988F, 0F, 0F); + ANTENLEFROT2.mirror = true; + ANTENLEFROT2.addBox("antenlef2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENLEFROT3 = new ModelRenderer(this, "ANTENLEFROT3"); + ANTENLEFROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENLEFROT3, -0.5235988F, 0F, 0F); + ANTENLEFROT3.mirror = true; + ANTENLEFROT3.addBox("antenlef3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENLEFROT2.addChild(ANTENLEFROT3); + ANTENLEFROT1.addChild(ANTENLEFROT2); + ANTENRIGROT1 = new ModelRenderer(this, "ANTENRIGROT1"); + ANTENRIGROT1.setRotationPoint(3F, 17.5F - heightToRaise, -6F); + setRotation(ANTENRIGROT1, -0.5235988F, -0.5235988F, 0F); + ANTENRIGROT1.mirror = true; + ANTENRIGROT1.addBox("antenrig1", -0.5F, -0.5F, -4F, 1, 1, 4); + ANTENRIGROT2 = new ModelRenderer(this, "ANTENRIGROT2"); + ANTENRIGROT2.setRotationPoint(0F, 0F, -4F); + setRotation(ANTENRIGROT2, -0.5235988F, 0F, 0F); + ANTENRIGROT2.mirror = true; + ANTENRIGROT2.addBox("antenrig2", -0.5F, -0.5F, -3F, 1, 1, 3); + ANTENRIGROT3 = new ModelRenderer(this, "ANTENRIGROT3"); + ANTENRIGROT3.setRotationPoint(0F, 0F, -3F); + setRotation(ANTENRIGROT3, -0.5235988F, 0F, 0F); + ANTENRIGROT3.mirror = true; + ANTENRIGROT3.addBox("antenrig3", -0.5F, -0.5F, -2F, 1, 1, 2); + ANTENRIGROT2.addChild(ANTENRIGROT3); + ANTENRIGROT1.addChild(ANTENRIGROT2); + LEG11ROT = new ModelRenderer(this, "LEG11ROT"); + LEG11ROT.setRotationPoint(-3F, 22F - heightToRaise, -3F); + setRotation(LEG11ROT, 0F, 0F, -0.1745329F); + LEG11ROT.mirror = true; + LEG11ROT.addBox("leg11", -4F, -0.5F, -1F, 4, 1, 2); + LEG12ROT = new ModelRenderer(this, "LEG12ROT"); + LEG12ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG12ROT, 0F, 0F, -0.7853982F); + LEG12ROT.mirror = true; + LEG12ROT.addBox("leg12", -2F, -0.5F, -1F, 2, 1, 2); + LEG11ROT.addChild(LEG12ROT); + LEG21ROT = new ModelRenderer(this, "LEG21ROT"); + LEG21ROT.setRotationPoint(3F, 22F - heightToRaise, -3F); + setRotation(LEG21ROT, 0F, 0F, 0.1745329F); + LEG21ROT.mirror = true; + LEG21ROT.addBox("leg21", 0F, -0.5F, -1F, 4, 1, 2); + LEG22ROT = new ModelRenderer(this, "LEG22ROT"); + LEG22ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG22ROT, 0F, 0F, 0.7853982F); + LEG22ROT.mirror = true; + LEG22ROT.addBox("leg22", 0F, -0.5F, -1F, 2, 1, 2); + LEG21ROT.addChild(LEG22ROT); + LEG31ROT = new ModelRenderer(this, "LEG31ROT"); + LEG31ROT.setRotationPoint(-3F, 22F - heightToRaise, 3F); + setRotation(LEG31ROT, 0F, 0F, -0.1745329F); + LEG31ROT.mirror = true; + LEG31ROT.addBox("leg31", -4F, -0.5F, -1F, 4, 1, 2); + LEG32ROT = new ModelRenderer(this, "LEG32ROT"); + LEG32ROT.setRotationPoint(-4F, 0F, 0F); + setRotation(LEG32ROT, 0F, 0F, -0.7853982F); + LEG32ROT.mirror = true; + LEG32ROT.addBox("leg32", -2F, -0.5F, -1F, 2, 1, 2); + LEG31ROT.addChild(LEG32ROT); + LEG41ROT = new ModelRenderer(this, "LEG41ROT"); + LEG41ROT.setRotationPoint(3F, 22F - heightToRaise, 3F); + setRotation(LEG41ROT, 0F, 0F, 0.1745329F); + LEG41ROT.mirror = true; + LEG41ROT.addBox("leg41", 0F, -0.5F, -1F, 4, 1, 2); + LEG42ROT = new ModelRenderer(this, "LEG42ROT"); + LEG42ROT.setRotationPoint(4F, 0F, 0F); + setRotation(LEG42ROT, 0F, 0F, 0.7853982F); + LEG42ROT.mirror = true; + LEG42ROT.addBox("leg42", 0F, -0.5F, -1F, 2, 1, 2); + LEG41ROT.addChild(LEG42ROT); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + float scale = f5; + if (entity instanceof EntityFollower && ((EntityFollower) entity).getFollowerIndex() % 2 == 0) { + scale = f5 * 0.58f; + } + + sidebody2.render(renderScale * f5); + body.render(renderScale * f5); + sidebody3.render(renderScale * f5); + sidebody1.render(renderScale * f5); + //ANTENLEFROT1.render(renderScale * f5); + //ANTENRIGROT1.render(renderScale * f5); + LEG11ROT.render(renderScale * f5); + LEG21ROT.render(renderScale * f5); + LEG31ROT.render(renderScale * f5); + LEG41ROT.render(renderScale * f5); + + /* sidebody2.render(scale); + body.render(scale); + sidebody3.render(scale); + sidebody1.render(scale); + LEG11ROT.render(scale); + LEG21ROT.render(scale); + LEG31ROT.render(scale); + LEG41ROT.render(scale);*/ + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + LEG11ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG21ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + LEG31ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + LEG41ROT.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity par7Entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, par7Entity); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/40859d095c9c00141eb99f8dbeb9f10c b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/40859d095c9c00141eb99f8dbeb9f10c new file mode 100644 index 0000000..6ed0ed9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fc/40859d095c9c00141eb99f8dbeb9f10c @@ -0,0 +1,224 @@ +package com.stek101.projectzulu.common.mobs.models; + +import java.util.Random; + +import com.stek101.projectzulu.common.core.ModelHelper; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; + +public class ModelBloomDoom extends ModelBase +{ + //fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer armLeftA1; + ModelRenderer armLeftA2; + ModelRenderer armLeftB1; + ModelRenderer armRightA1; + ModelRenderer armRightA2; + ModelRenderer armRightB1; + ModelRenderer lowerBody; + ModelRenderer leg1; + ModelRenderer leg2; + ModelRenderer leg3; + ModelRenderer leg4; + ModelRenderer leg5; + ModelRenderer leg6; + ModelRenderer leg7; + ModelRenderer leg8; + + public ModelBloomDoom() + { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 69, 1); + Shape1.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape1.setRotationPoint(-1F, -8F, 0F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 1); + Shape2.addBox(-8F, 0F, 0F, 16, 30, 0); + Shape2.setRotationPoint(0F, -8F, 0F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 1.570796F, 0F); + armLeftA1 = new ModelRenderer(this, 51, 12); + armLeftA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armLeftA1.setRotationPoint(3.5F, 10F, -1F); + armLeftA1.setTextureSize(128, 32); + armLeftA1.mirror = true; + setRotation(armLeftA1, -1.396263F, 0F, 0F); + armLeftA2 = new ModelRenderer(this, 61, 15); + armLeftA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armLeftA2.setRotationPoint(0F, 8.5F, 0F); + armLeftA2.setTextureSize(128, 32); + armLeftA2.mirror = true; + setRotation(armLeftA2, 0F, 0F, 0F); + armLeftA1.addChild(armLeftA2); + armLeftB1 = new ModelRenderer(this, 55, 1); + armLeftB1.addBox(0.5F, -7F, 0F, 1, 7, 0); + armLeftB1.setRotationPoint(2F, 0F, 0F); + armLeftB1.setTextureSize(128, 32); + armLeftB1.mirror = true; + setRotation(armLeftB1, 0F, 0F, 0F); + armRightA1 = new ModelRenderer(this, 51, 22); + armRightA1.addBox(-1.5F, -1F, 0F, 3, 9, 0); + armRightA1.setRotationPoint(-4.5F, 10F, -1F); + armRightA1.setTextureSize(128, 32); + armRightA1.mirror = true; + setRotation(armRightA1, -1.396263F, 0F, 0F); + armRightA2 = new ModelRenderer(this, 61, 23); + armRightA2.addBox(-1.5F, -1F, 0F, 3, 7, 0); + armRightA2.setRotationPoint(0F, 8.5F, 0F); + armRightA2.setTextureSize(128, 32); + armRightA2.mirror = true; + setRotation(armRightA2, 0F, 0F, 0F); + armRightA1.addChild(armRightA2); + armRightB1 = new ModelRenderer(this, 51, 1); + armRightB1.addBox(-1.5F, -7F, 0F, 1, 7, 0); + armRightB1.setRotationPoint(-2F, 0F, -1F); + armRightB1.setTextureSize(128, 32); + armRightB1.mirror = true; + setRotation(armRightB1, 0F, 0F, 0F); + lowerBody = new ModelRenderer(this, 102, 22); + lowerBody.addBox(-4F, 0F, -2F, 6, 3, 6); + lowerBody.setRotationPoint(1F, 20F, -1F); + lowerBody.setTextureSize(128, 32); + lowerBody.mirror = true; + setRotation(lowerBody, 0F, 0F, 0F); + leg1 = new ModelRenderer(this, 36, 12); + leg1.addBox(-5F, 0F, -1F, 5, 1, 1); + leg1.setRotationPoint(-2F, 21F, 2F); + leg1.setTextureSize(128, 32); + leg1.mirror = true; + setRotation(leg1, 0F, 0.4363323F, -0.3839724F); + leg2 = new ModelRenderer(this, 36, 18); + leg2.addBox(0F, 0F, -1F, 5, 1, 1); + leg2.setRotationPoint(2F, 21F, 2F); + leg2.setTextureSize(128, 32); + leg2.mirror = true; + setRotation(leg2, 0F, -0.4363323F, 0.3839724F); + leg3 = new ModelRenderer(this, 36, 0); + leg3.addBox(-5F, 0F, -1F, 5, 1, 1); + leg3.setRotationPoint(-2F, 21F, -1F); + leg3.setTextureSize(128, 32); + leg3.mirror = true; + setRotation(leg3, 0F, -0.4363323F, -0.3839724F); + leg4 = new ModelRenderer(this, 36, 6); + leg4.addBox(0F, 0F, -1F, 5, 1, 1); + leg4.setRotationPoint(2F, 21F, -1.033333F); + leg4.setTextureSize(128, 32); + leg4.mirror = true; + setRotation(leg4, 0F, 0.4363323F, 0.3839724F); + leg5 = new ModelRenderer(this, 36, 23); + leg5.addBox(-1F, 0F, -2F, 1, 5, 1); + leg5.setRotationPoint(2F, 22F, -1F); + leg5.setTextureSize(128, 32); + leg5.mirror = true; + setRotation(leg5, -0.9424778F, -0.1745329F, 0F); + leg6 = new ModelRenderer(this, 36, 23); + leg6.addBox(-1F, 0F, 0F, 1, 5, 1); + leg6.setRotationPoint(-1F, 21F, 1F); + leg6.setTextureSize(128, 32); + leg6.mirror = true; + setRotation(leg6, 0.9424778F, -0.1745329F, 0F); + leg7 = new ModelRenderer(this, 41, 23); + leg7.addBox(-1F, 0F, -2F, 1, 5, 1); + leg7.setRotationPoint(-1F, 22F, -1F); + leg7.setTextureSize(128, 32); + leg7.mirror = true; + setRotation(leg7, -0.9424778F, 0.1745329F, 0F); + leg8 = new ModelRenderer(this, 41, 23); + leg8.addBox(-1F, 0F, 0F, 1, 5, 1); + leg8.setRotationPoint(2F, 21F, 1F); + leg8.setTextureSize(128, 32); + leg8.mirror = true; + setRotation(leg8, 0.9424778F, 0.1745329F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Shape1.render(f5); + Shape2.render(f5); + armLeftA1.render(f5); + //armLeftA2.render(f5); + //armLeftB1.render(f5); + armRightA1.render(f5); + //armRightA2.render(f5); + //armRightB1.render(f5); + lowerBody.render(f5); + leg1.render(f5); + leg2.render(f5); + leg3.render(f5); + leg4.render(f5); + leg5.render(f5); + leg6.render(f5); + leg7.render(f5); + leg8.render(f5); + } + + @Override + public void setLivingAnimations(EntityLivingBase par1EntityLiving, float par2, float par3, float par4) { + super.setLivingAnimations(par1EntityLiving, par2, par3, par4); + + /*armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armLeftA1.rotateAngleX = (float) (-75 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI)); + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 20 * Math.PI / 180 + * MathHelper.cos(par2 * 0.8884F + (float) Math.PI));*/ + leg1.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg2.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg3.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg4.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; //MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg5.rotateAngleY = MathHelper.cos(par2 * 0.6662F) * 1.4F * par3; + leg7.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + leg8.rotateAngleY = MathHelper.cos(par2 * 0.6662F * 2f + 1 / 4 * (float) Math.PI) * 0.1F * par3; + leg6.rotateAngleY = MathHelper.cos(par2 * 0.6662F + (float) Math.PI) * 1.4F * par3; + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + Random rand1 = new Random(); + + int randActLeft = rand1.nextInt(3); + int randActRight = rand1.nextInt(3); + + if (randActLeft == 1) { + armLeftA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.8883F + (float) Math.PI)); + armLeftA1.rotateAngleZ = 0F; + + + + armLeftA2.rotateAngleZ = 0F; + armLeftA2.rotateAngleX = MathHelper.cos(f * 0.8883F + (float) Math.PI); + } + + if (randActRight == 0) { + armRightA1.rotateAngleX = (float) (-85 * Math.PI / 180 + 50 * Math.PI / 180 + * MathHelper.cos(f * 0.8883F)); + armRightA2.rotateAngleX = MathHelper.cos(f * 0.8883F); + } + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/8004b8c3aa9b0014146ffb65627d3cc9 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/8004b8c3aa9b0014146ffb65627d3cc9 new file mode 100644 index 0000000..a5accf4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/8004b8c3aa9b0014146ffb65627d3cc9 @@ -0,0 +1,95 @@ +package com.stek101.projectzulu.common.mobs.entitydefaults; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.BiomeDictionary.Type; +import net.minecraftforge.common.config.Configuration; + +import com.stek101.projectzulu.common.api.CustomMobData; +import com.stek101.projectzulu.common.api.ItemList; +import com.stek101.projectzulu.common.core.ConfigHelper; +import com.stek101.projectzulu.common.core.ItemGenerics; +import com.stek101.projectzulu.common.core.entitydeclaration.EntityProperties; +import com.stek101.projectzulu.common.core.entitydeclaration.SpawnableDeclaration; +import com.stek101.projectzulu.common.mobs.entity.EntityRabbit; +import com.stek101.projectzulu.common.mobs.models.ModelRabbit; +import com.stek101.projectzulu.common.mobs.renders.RenderGenericLivingMT; +import com.stek101.projectzulu.common.mobs.renders.RenderWrapper; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class RabbitDeclaration extends SpawnableDeclaration { + private final List entityTextures = new ArrayList (); + + public RabbitDeclaration() { + super("Rabbit", 21, EntityRabbit.class, EnumCreatureType.creature); + setSpawnProperties(15, 100, 2, 4); + setRegistrationProperties(128, 3, true); + setDropAmount(0, 1); + + eggColor1 = (239 << 16) + (179 << 8) + 83; + eggColor2 = (237 << 16) + (208 << 8) + 166; + + entityTextures.add("textures/rabbit0.png"); + entityTextures.add("textures/rabbit1.png"); + entityTextures.add("textures/rabbit2.png"); + entityTextures.add("textures/rabbit3.png"); + entityTextures.add("textures/rabbit4.png"); + entityTextures.add("textures/rabbit5.png"); + entityTextures.add("textures/rabbit6.png"); + entityTextures.add("textures/rabbit7.png"); + } + + @Override + public void outputDataToList(Configuration config, CustomMobData customMobData) { + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, ItemList.scrapMeat, 0, 10); + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, + ItemList.genericCraftingItems, ItemGenerics.Properties.SmallHeart.meta(), 4); + ConfigHelper.configDropToMobData(config, "MOB CONTROLS." + mobName, customMobData, + ItemList.genericCraftingItems, ItemGenerics.Properties.RabbitsFoot.meta(), 8); + customMobData.entityProperties = new EntityProperties(5f, 1.0f, 0.3f, 100f, 0.0f, 32.0f, 1.0f, 10D).createFromConfig(config, mobName); + super.outputDataToList(config, customMobData); + } + + @Override + @SideOnly(Side.CLIENT) + public RenderWrapper getEntityrender(Class entityClass) { + //return new RenderGenericLiving(new ModelRabbit(), 0.5f, new ResourceLocation(DefaultProps.mobKey, + // "textures/rabbit.png")); + return new RenderGenericLivingMT(new ModelRabbit(), 0.5f, entityTextures); + } + + @Override + public HashSet getDefaultBiomesToSpawn() { + HashSet defaultBiomesToSpawn = new HashSet(); + defaultBiomesToSpawn.add(BiomeGenBase.plains.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.forestHills.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.savanna.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.birchForest.biomeName); + defaultBiomesToSpawn.add(BiomeGenBase.birchForestHills.biomeName); + defaultBiomesToSpawn.add("Autumn Woods"); + defaultBiomesToSpawn.add("Birch Forest"); + defaultBiomesToSpawn.add("Forested Hills"); + defaultBiomesToSpawn.add("Forested Island"); + defaultBiomesToSpawn.add("Green Hills"); + defaultBiomesToSpawn.add("Redwood Forest"); + defaultBiomesToSpawn.add("Lush Redwoods"); + defaultBiomesToSpawn.add("Temperate Rainforest"); + defaultBiomesToSpawn.add("Woodlands"); + + HashSet nonFrozenForest = new HashSet(); + nonFrozenForest.addAll(typeToArray(Type.FOREST)); + nonFrozenForest.addAll(typeToArray(Type.PLAINS)); + nonFrozenForest.addAll(typeToArray(Type.SAVANNA)); + nonFrozenForest.removeAll(typeToArray(Type.SNOWY)); + defaultBiomesToSpawn.addAll(nonFrozenForest); + return defaultBiomesToSpawn; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.location b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.location index 8313868bfe0d7813ba596abecf44a688883b2eaf..9dd797324724e495ec0d5671a07b1ac324921327 100644 GIT binary patch delta 65 zcmbQoxQ@}%VPkir@*V~eDb;Du7f;?N$50m<x VplfKLXK1Wvq-SVkZaz`76adj>6Wjm* delta 49 zcmZ3-IFC`&VPkir@*V~eDb;Du7f;?N$B-8qN}Sfm*nTV=9OfYRQhBVm*{~sGB8fKv_$CTTm})D2iNrX>R&u>=@aF4Gr73&uyCTFLX6zc~>1%O%Jsg+Kdc`14z0~nYN?796aXEuX~NdE8Cq*|Mk&6ajg Uy%-r749==QLKa_t#TqOQ0DYD*$p8QV literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/1d/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/1d/history.index new file mode 100644 index 0000000000000000000000000000000000000000..81d4623f58761d538cd9a64fcd1fc19d835a45bd GIT binary patch literal 2655 zcmb`|YfPJE6bJAZ#*i(;6)abA7IsnM$_pD|6G83{DwiUPhI`v}qtMc>lnodQjL23e zWF3@Sfl{{NfMAB0fFr_i;sUx!(L_K<2FiV)Wm_|K25rw1;`xprnkK*ed(L^EoIbB5 zMNu}?+jOp6KudU{96F14nnw$y5;|8Q%=Yp2p=EMumQbK5%oFFCT_Vk)B~pGaEzD7f z6a{nye8uogak-cI$CM@aY}Bx}iDJ6V{6zQDW21jHG(F~6m>OMn<6{4!xte(FR@;Y) zrBX?_=|d)PVqA@8PNNB=v8pHL2~_*@KlmDX#~Z}GM>X$ZKVP)~lW`~0;Cz%g&DI`oUIPUO$yzd%29VmWB&*0?tFh7rc!Mji8msb@A?LuCG1r^LT>!N4V+tA zz5h4l!HGA(smD&MYsmGHE_7$@%A>~{m@hdwI;4?fD{)Fbav+pNRH zTYd??!{hTso3{b0BC@Ze!SwHzJ`?iK1&q9#dk+qV`*ggu9l7)Ccfm_+s=M2eSL%ky zL2mgr2;)hFVsePC8FJ4EAJfBczKB{{o`Z{1mQ){TkNmV&0^Kv*i`flmDyt&m`bzEP58 zhhvOtZk6h6c`kD0T|Rip@5^~|F4Gr73-(wm1LGwrlh7NmgbZc>pSJ-=jXbBaB6Z+Vo_pAW`3R?$S?-B1jF_p#&a1& z1lOGH2@`pF+0%E=2QNkjh6#r_&+8(Ie{I+X7EgHI`9=pxJZ>R7SiE3bzpW6G_>Q%W zuR-QCC=2%{&S4Od+d02?-_DObhPUd$;sP&sx+06OeU=6mXNaKOyFrObNtq=Wer0N4 z*>QN)Yz7gL{NJfbwKgZ+{mwiCxv`+dV8Kcx@wxwwg2fraDR)ailv5(6Q#cteo^E^s z3@(`m*Yx-5Up&v3k@*$mlm~_HE0D$gi&MbjA8I4FKSok-^Cb~1e&Nl9P-JnHP0g#h$NmP90V3WP&xJG10?aEO#Wc;32{#gk;T6~_5+I-tXI!P L78iTr3l;|e?gANh literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/96/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/81/35/63/15/73/96/history.index new file mode 100644 index 0000000000000000000000000000000000000000..7e14426ef5dabd0d86342f221d861e6362fb6493 GIT binary patch literal 1800 zcmbuG+9Ixi&C!}&u z41ya!we(TOZ7lXpL)6XpB1G8JzZoDeUsvyJMC$~#oB$`u%PfE-BTk{G zhriO`*$}vhHu<={e%^if_PU_j8RVVAhro@E1I|h0w&@g_H{~u)An&(P7hl{ri~WFx zx~1NG8oRBKI!RsT%O!Fu6<5j@(f9KcDE9wXZg!guhUf~vk&H`okF$asUhMdQOJnb+ zWg=0tP1rZAxla%2mqdoW|92<2;Q4SgF4=f2EgAXV>%?UmNTMavHs6tAj}tZ0=SgXA zGoiWu*>w)w<#3*FMt&ytEI5%YbAD-@rjR`C+|uQg+jtd64VH^<~+XDyq-UAB;L?6*Eg zfE#6DZ#>YxqEj2``pf-d#;G_?9l!LW1K~+TdAkFbh97YKX>B_H%gckQ7rwd&B9R>J z%4sJ2@b1<#w(cMPR^w@K%g{DQHuB(%YH;!Q(fiod{3>w!c-SfI(y~gLzg@EzdrWQx z&9~)+WA~mY2bYvzvntTO)6Yu4<%8O(EaZn()W`acyuu!OSr2)OCcO^(q_YT|SFtk< tyIn+`98VQuPl}gA-abF0JB;?tTF3+^%Bf)NrW)$v3ezg=U4Ami{{3gSEdL-th(<;_e?_)kKbhZ z6eP~zOqzuO5H~~t-4O4apHvLBc7o@|8xQ6(h{!y+roUJJ;(5V^>>ohJH*_@H3IW9h z*PQJM6M1?0m5m6*T1V2XbxBPu$#751O)VE?({*h_=B3IQ>P(`Z;w6z78m$b7mFfpxECy5aQex^sYvP*U+w{m QD+J%ZhAe*T&UUak0BFjv1poj5 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.location b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.location index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..45a325cc3ffd56ae0498cc85e7fbf2eea265d58d 100644 GIT binary patch literal 88 zcmZ?R*xjhShe1S2b=vdAllRFnXoLoN>g%Uv=A>HbyISd|Kf{q>lqs88XD*s e8tWP985)_J>ocH$0};PJgUt#2+*7@~{1^a&>lsx5 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers index 779454c067f4f15ca672f77866525526a9b8b5ec..e30e07c95e42a7e1d3b2d1d2ed66460ff4644783 100644 GIT binary patch literal 8918 zcmd6tO>7%Q6vwBw8yi{*X=w`qm7!4DLYpm!k5Yk3nxt(?+*q;O(t@bQyAylr-5oPC zo5pZLAc4dIgy4V#NQloHoDkxG5aPsZnq9|msg1E)dZ!Z`n?FDRqz9k{BRCk%SB_9+AeELxa_D=n+rOsh-{$} zDoGv)n@%}-ls__2Lzmf2BC3iAl|v}^G+G--DkdGKNZqCIp+$Xt(s%UL7g3HmIgD0) zhKe4Qk~C-@t*gyU%;0hEX$z@?N^QZoV5$S}0IM!{LGIDOt5cz0xCUN3a=!3`iz@#a z1OW25Z?(B%@M}s@uX3sq{?Q9zeMBQgZSk~8ZSm72wM47khYwMOXPJWmoMN^QEHLpM zJl>>s3$r=Q6t;l8~eN8Jtvst#s8tS@mepTnW`q3u|PpMjaIwp}8dDFE+_0RFrY zJ+fSY9gn5UD_bN!jijz-tZ~Tur+pu33OtB&M*3*P_HL!&IDrUN)w2oy-6T;hMrIn3|v5Q zJk1+;(pQjH@KKIk?l-8wlM75Lnc^7RW5Xf-oHDd8)Iok3ewAW!V zXQ>2g#JA~A{r<&&IZoVw?%271|Na!9_iLcPKJ)yOg9KWkE`yBO3-rBAKnrCP(85P6 z9Oy^{^o8e^Q5?oKQJB&%@zBbt17u0y{x}oP;%6qDrQItW=bjMfcV9n%9v<9=F9)92 zsleVMyxHrdBblgPaj%K$6|E$ycf`A%dsG*VwZlwen+L9=D@%{hL%CF?VjeI3g5|rM}1gh|a2~^>mBv318?`?^3x`V_yNg7Lc+?&~O-fG18 z@(RZp7b4I9h^m7NW#iCU=#5|RWTT0VG@o1HG_Q-D^L})Cxip;s&NL_nvmm+Xz1$gcX(L^iiNiR?^Ni+EfrT%OcD8VL=p@En52p>ZX<@eoQA zLFb6A;1ut`b&5$F`kBxcg#HeGkai-=QzGTsD7F0dW&iYg53^-nuSP(-^mJzu9{H`A z=&ifQL~q@ZBzhYndM+Ge>4HteHB2FJCMNJxY}`$mjDt>_p@lpA(twP6YSFmaew{mB zi-U~1j_j^Tq!s0F&LsM-hfSjII+G;&%4kJ0Hm?ec>G6rM@Ej*FRlo#~i}bO<<`~y&@dED1q-V>sCOunT zP1199>}nm~#x)+FPtA*oK3KHwSl^3zY^n;aV_PT5X>joF9*gv%{LW0mi?b%-#YU3w zjgj!6?dUu=#|3mM9h#zibWwSExyto)&nm;M+)JZMSMjZx6c2rGRJ<)o@!m)=jF8~0 z7%nz6Dxfh59y&p7@a0|Dp}am9NLwRmL-z!(!_+AS%H0u^i&M*wwIP%VC_|u8TY=(Z zF|l-G?QNN;6hARi`67wR+K9>oc%e#L{J(4Ftm+FjmNq#9d!9wDqw)yyG3_rf{?#pf>5|B2|_qt+6Pfp&px5a z5gUiWh!mF$k4EPU7Z;Y_<%y9*Hy?-5JyZZN&X6)5~Er6Nl25CJv=Y}%ZJ;N}Ry81%Zr cQR_4%^Av}5I8+)?h(NSXi_!4`;IFZN0Kf@E^#A|> delta 1720 zcmZ9MOH5N)9LCSNx9#QjLTRCeQu??>t%^WX&}3l72kNAvMUYleMiyhxjqM^%1!spg;_t~bi(e3Ch^x*$yVxql=j1bYP@AQiK}FxEX2$yQb*1T4sy-nr73=LQ(Prj z<|!8-e>pv5g>{parkwtpgzcYzt2Q~PrH^OEJ9GMQN*~U&9MitmXl+dY=x?eXe5}mJ zFIZnfezVl2L?K^3eF62Al#Y=9Bo9qr2bBFeP|6{o&dR?kpEK&-Ow~`zD8J08wY+l^ z>x_RdLUjhT4)vR&{!x4sss^ayHbhmt0;;vVPdUO1PA#IOiF#08L#alf#3vAyDn@yY zr~x!k0yUFX2ZJI2`6P()d4Rg?Xi*j+DwcSO_LoqdlxSiEt|BKK0io&-04`Q$lsu2A zwtkuodVLYH-&sweW{9z9&~3ih&2K>KOQ2~No2V8JQ~>a80g#RF=58UQO5w)cWYkke zI^1h0W(N%a3&#<>z+HEbC=NJ|eCjuJpyW7=bg3{a+qH2mIX;%rh6~do7}K%>EN$<> zQgVXjJ5QUd4J@5gV}`DQH*SW;TM9BIRFv&rmRv?^YwKxeD}WnzLBNIqAZKc$3LRJa z9OP49p`E4Vd2fh9B0!1N043r8O?tPutQ?wrWVEty-T$EL7O3tE#a`6xEj1?R>Kdst z214MUP^<*!8sCr$=4eiyTrivk&;_r6bMQLo9{biSe;V!!XwNctnGDqjXaWLK>I72S z2js*0cD67k=S>g79ZipnWul{SMfqqi{O8w{9GS=s7VgS;*~t&wxs^Nb0cW3OGr6H! z!2ObW9jyd+?%J!5X0m#2`Lam92TSK1Si0=Ya@*Ea&-R`UHMUmm92`_RpI5uJ+=Q0R ze%GYxIrW>PditoE*76xO+0&Qm+8tN*ygH^2>gkE>$V8sR#E>#%e5wadsw9qKe%NHD60>sAH$p3sz3Qz$*Sj!($GL>YBe;gu>n)l O2+Yq7J17(De)(^5N diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat new file mode 100644 index 0000000000000000000000000000000000000000..05ec832b72134b73f3e789ba28cc91434077c9a9 GIT binary patch literal 464783 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%0A3^wq%U6r2# zA!9ekkyG6Z_o*KS2(8YAD6|ar1q<$+3`fwD0eb1Toj!j9?^Hh=IYOj9S|90iRUR$$ zjMaMv90^Am=gsgtSld`P8Y85S7_{@^{@B*rq_yfFwOMNu1vR7Bd#HY%+)F!t2F7fn z;%VBgJsd3eU2EJe0E)ZRx2qI|ks%X0MHP-zh^81cG z0QW1u5?*1bFRL>^9+a0a%rudd`9BEZ!nt)Tg($$oM$=mBb(+4dorerUzo#5!LeS4F zAQM_}Zn4X)`MSy(DH5So;sssESWQ|HHO(TMTj-LjdBPwKyhph)Vu)_1 zk^wFnI*^G^fD>Ug^IU3DN)5t1R_I&5it8m*v7CR#yb!@Mxw{*E6;blnRDELo4am%U zAq*|Do4GMw=57|q3WM;X&lr8mJS;wZ*VW!syYok1T~u*z)-L%ufMcxS^wTWuSYR9r2s!h;4np_i%QQRt4 za9+)NV%z!a5MUM*_#k*E>O|A{7A70ot=%*7`yP3krU%jCr3Q6 z-d%eVk&X=+MfpYQi(v^Yh3mliy<^CD;!SWfEQ5VvKgW(W);`L}9z$mFOv)8PCp)&a z@~9`uY4tWR!?EaqkaCCBkeB(RNA$S{=+ONNc{pV58^GL6au0!no0s>{;U|tA3^8gP zD4*~UPC{6SibFAA-AkjwXcF!n=iKAr1UM0dPWxVcdDv*OY`?&`*8{~mucqub;Op=; z_^NXmtSuxsHu<>sWeI?pN(GNx*u z28{zau?&=av`iT(&9)$0f!e~#KJOOgIdnLcK`EaMGKB&6XhBfkB>oiuSDY?S@BsYiH6rn>0|T zZ^p?dI&1;ELv#solNHxUWh;ePdL)Wgn%}ahc+XXEHS7k9U@}vA@v1hvU1z36OzTgHaL>)ns zxjozn4KW!jpBR0Z80)LoOvAd6oGlzmhp^UGl`odth#sO{NR}(&Y2@iJ5B7&MU@q(h z&xG|LV;W~T+{#x^mm2p@xWloW+blNZChW3+j8DO`3C=tRz}}GY^4SKWJ6-E1q;M?k z2qTNA(=HBU+4?wg8mtaIFhP0m6ZcHQ?l15$eF-Z{$1-6zu6qQ}`z0x1_bjyR%Cne| z5puGK#$vJFILw6YKt8BXhJ|p7`q6L~SVMg(N&osBcn+Ko7XXjSqrYNp9+0Fz@Zflp z@x~TH#>*IsU@^qAVhHD!2OM+MLv+T9QRYKPZ#?)6M^nsY{@S>8Y{M_+r@O;?H z*i%8h7&cBEUA_;ODK`s=gKVPh2imfeSsSvj9v~Cj^$F6tmL-1kePFKH*jG^PC`MehTy3}ihu=RDi7OqoHJqLAeb^^_! znq5dCaG5?c^tlmkf}7zMN+2u5lpV>foxp;kbMXqI=)46P{U;MoN+IcPN5J^-!d58_K9=;i$oPw42`n{TESoS**d7WC zAYpYlNQu>cB+GZ_lft!qH@PRo-S>ulU|&eTahM75CJW39z53b8N5frUjlI+0bY-by z^q;Nh-s@PxD+qD3;RHAlPJ)wRA)ErILc;MN^UQ;!o;hIr5|)`m`yeHrp*$CoawbZH zpP|nIj;%@>#M7guzwjHL@x9!4(nk1AI;`;639sQdjuL*uZMYnVaNF=aOS$hR`O((%{;)hD|M?1#Re<@R!=suB}9O2A>A!gLKsF0h%;fGj81jlhh`u*U%+xYl3sz zFL%y%%4>nNTJ9?n{ZiygzrsJsv4_A|CECv;={bB&Y*J!vk z#;kQ0Vx1JWRY*i$)IZQCVWsyF7wdNkTn34htKe$b4Hm&-h}C1g>%iEppOT64o8V?x z2K^}RooW7f8^Xq3kI1tu?pLs-^M0c3KsZQ!$A|k&xIO;9F}8sj`dC~_)x$-$3hDlym-SK+eG)@NjZuELLdhb#ml5eVC23=kEAH%(H zpRj(fwsl}T^`EJ~PdSsU2kXNIupw*&F-TGeuP9rvtw)Psl;@YR{eujF&?GiWvct&N6_L=0XA%rE*9-=%% za{VW5eNQeSm~h@5LOc)XolPEV&IjPnpsgtWAQ`>)f<=&!PG~QMc;?Bl5JFrC|0(%2 z$T~+1QpPwyyY&q&Jbj~-y|g*&$wssky%>H{*%id_-umVWO@v zbk@bWi#`d8a4@dh`Z50I{e}_ak48#k>~eLFArlFVRLy~L<+p75eGtE@7d%; z-rCGPVvsHeDZ9rzjeUo5NN5a_2+M-vG$Giy)jlKwt9{AnF(0B!jJh{W6s;ZY`D_E> zp#_XuZ;(nZUh%*YQU>AObBq#ItT>JQ9?9~9pHJ_m%-bp?Ray9@5O28*PK33|!a7)*UqYu9B5j*Cy0mL@(%@)M*IcvH6tf6_s97t4hpcR}JndSP%7$Klr>2f!G zTl;*7Gv>TDWblloPv>QdA$K!~A)5$Hq}>U3Xk++t9#QuEeFf`{Qo#O1yPTD7HNzBZ zmu=c^e596s2N?yW4U z#>R1Tj^ioM1d)-K80EDd53Sy8o)0?yeC>U2FE@e*sI$m~JEeQIZv!**;fX73Ph-if zFHy7vvc|0S8p!&1aNeVKUZT7ZPBzv9*2NoI>%-q`y8%MJwKX?y^-|?!kadj1EMTm% zeVwhmJvg_#E}TN%W)9w0pQ*j?g(ZDwoiTVm(WeHUS)3zI5QkYq^Ts)F0_+GprgUtP zJZY7lEHr8H5a;mT|LOzQ_V2xn>4BmH$v2ksU!5O+f+xn262dvFg zh5A%|j)l8G+H4`Ag@ESCLVf|;y;uDrbB45#i16i}EG$wVc4Fbb!scY2wZ|Fe!0Dhq z*mT9wGPV>kc$$8Ua#A#&harK*eD~QaAj5Pesx51vEr^^P8GgRk6vQobcMlx54^kwD^5e(luSKsZFjb9mm^qXnD z^R%6B+FSLbTxI-nJ>FD3dNqqNU-u`D9SQ%aJw#-2^cq}iEig|!ijFTPt)*m{8%b1=#zIui+5WGpsK8;{C&K8s}{En@g}&MIY@Mb68dOJJ$p^HXO0AiI z%zVRpIQul4vF286qFbUSt5oxh)z3cV`wX`m>q0mU4uI1^pFu`CLwPQUs0p)BqBZCB zvrzMhE7>TwgpZVs{>#rj*&~~-n)7$#8|=~jCo=Zf8}KzY4#UnnOFfPl2c8X6oX>|^ zlSx5Wo_l_Uj9p#=0%4GmKBj)3`X}^XSNW&<9RmHV)NJSm+38frPJx9G{tkwNoNwN; zA&f2fdByf+bGVdDc8V?LL+l)Tgx~mkKC6vNR1f{h__#ON76^O!G}i{&q|7&b z|6IkGnJdPM(YAK{9x`L(GXpZuwvaiuQ{6lbJAf!1U2ywK`o*KOKnpHg^=YKV=KJ@R zYsw&HU#30vJxCl2vAip4-OLK!c*T649w_Df0Gt9(l{JZP)d zCl^3;z7C>m^o-s!VH`Gd4#KnHu76G67idF#E*rzw+Hh3#B*vZx;XDTDK#oO6>!`QL z0fbHT=MEpy`$E#sjQJtwZv_@G;hzw^TE9Et4t@5AJ~_*I*RbbA!F*;wqjbDxaw^gM zv4+V+AwuzPJTQu{*B^7lqMc8yg5nc|#7aXT?8keum@TuIHQ^#?R!M>0h3XFh(^QGI zwX~(rgW$xHWYT9ie*f8GENHnevKhOYq%F)o09jle&mve1OJFI*p6lEX0v9Nzr(iF>mJE3iWbBucC&RG9KiB?BZ6|@47`ViXlrwhb zFjxI5Fn5z&y1!697&3O_CUcb=z2_-TO(mTYRI=OPU>FcQCGGaeEbQszH1ca?m*ifL z^n9p!p;DfuBnbC(p3fsa8!F%NS*BAz`EL!{Ga7zgG||6(wyMvCMvYlG!^vo3>oD{qJ|Ft@!}<;q+a>C80ts&TdC>6PblDz; zdq%7$Tia*IEg$A{xo1Jw>oc4LSH>5v$~GqU?O%yn_c1BwtM&n7RO60Kf#a3K=d;YY zmHJdzQ+*c6A*!woUL+j8z+aH z3Q})DTlD~tZmXokAwyROYdZuEg$0f!LYk~ciDbEo!&D(Dj)cr?nX;`2X(b!2qkfd~ z-eB=@-fWZN5M5-JEln1se`T@Nv5sv^&L!zqbd0Wa?tF=$f3-i%(>7#;vWDoJH9*!= zGWBX?-vOHJk~I}WudSbK(EPq3nX{~gj$`An6U^3TJ!K8slSgWsM7r>oJ6*b$Pq=h` zF~BBdxQgDH8&~!8RFE;z&ZG4@gMHhv7$*uhMDxtDG5;AZ{#Bp5)p<(Uz{d+h>p67(E5#d?g=oE*_6Ol1ZE@wyb2Z62!`5%dy3f}(9YRdz z%Qd2J-Qt0nBNmDd(TxS`r;>7VopT<5`;8Own#IN&v(T)G-t~+Wn0lhe+^uEW_i#M! zeF7w>nym9qa#wf?WWwEG5iEu!uoQ$*@=E!=z)i|GgYlY+de4HIm-}Nc6lo#zCFG^# z%gD>fSCE&JuOhFokT)yG)enN`%%bH!zgZB%yZ>T+a!EbIvFMGAqIaLTju0sMBRWU- z=o`JG{{o24AuPJy07GF{2o?%ui)cOFUn<{9{vYziB(EKNDfw^Y%gJBS`8MT)Av*UU zpVJ|{$0*T#HMm{VHffv&7eUH7$g=I!c}zOC&x3Q7c~N;tl>Sqdc|-MN<;GA5OuUzn zO04b;$w~V{7BvoHzx_J>cxB>y@X%$BV+TM(_5?(?&Dl;n4;y&p1KOq-ht9=od2f|G zxt4lk2nLRxMK|*oJ%&l1rEMpmPx4WFfxa7oxduCmd5%T5hS(68&&QyK@D_4o^tFLO z>uqyjFF@1^7X{vsd&@z>=LIpu3ftT)Bst|U;9b?8q)%RRmTl8FNCf8dv9$ ztIeG^4oI13>pC{sc#|BP3k;NtLKP3b5c-BH7Yk(MHD*aKF?z^}K|)G6sOYvOxt`)v zU{~c3#XHM*Qpe!cWt=JmhO@}SVHa)T2f^iUY2hGS(Cik<-_wfIZ2;L-FVWmVc94~-Dy-$oP^^2VZL&xPdr~nK3W_zOYcg3XX=|+{+04@{GO`L zWe4${Bo?bHx^ub2WfR}!e)|d9=o`HUvAzm1-u-vy#FQ~9 zT@vHvm5H^K_j^O}J&1d5T|Uu2X1xZoh9=gNxMSk&b8tEw1&z7Wkx?G;5ltrG|0QYu zSl@f$K65ZaVj#X2qqTpl{4?$2>X}q5t@PHEL5i<8xnnE!ts%P6XV?fW27lB?KZzmE z5Eapxian!_A`whzGc}(B5YT~@-+i?T0~sZky53dh2s5$VXUHGG58+3^ z%B@=-*0IT=kNQQzUpwa+&IvmSqtUQgqHQrOvhIZL0+2CVN0QO&2B6pAax4t$xU|q} zpHJQc--GW1U0X*RhsQM;ZnN}}#P=yuu5r^ymZ(3ajk4Jf)So8B{DhCa`nh9pgBVX^`DVY+LQ1n|Snd(nUfTD8 zZy0}9@|)yY&U>`nl6(~dZy_3aP>fLa4##P;=v*($g@z{QIe%65F1cul)RM!U z*Z#V5V>=F5jk7~+&c|Yl^2Nw`WO!c;v4eRheA*$4#9oiIzscVeExs39CtI*z-k;?C zM!DXF=X|pFiH&P$LHsg7n~UQvXIiU(L9ELYu$BQoTmoE8#-@4kfde=o(KOhj=CL%=+@C ztMxwhNg%UTeUBML$;x@GKYV!;~pqLLlK94~lZXQf7!|&s#!ZstFr zz;Xm8J!GD>wI{SgR_5OWVziJYEVAEh_O8{o+NVQOkhK&e5aso2IEWXgJ)!i}G;9eN zU%`{_*7R-dJfU1qzC(u5cxb#UA(N2$G29FH888-%2h1T6Qa?rcXHI#(dL~^DvXGFn zAy7W~yM7uu1)|4@H+JnD9`8lBrf+gvv!|?Ml&!VhLr$a%@2Nvx)|k%>2uC3`#6{n% zYqvC}qXfJHaY!kaH^}H_eL&zL`lMguQ5iUvJ`PTU(_tR$4`)EabT2ymh>WN4)^d{^ zf^XM$Ash$?sXvuOYSC?k%+}kqFV%W66AghbEz5M2*| zy^SUGsxIsZ(!p{!y1cc7CXuJxgJ_5+J}rbM9Go~xXnm}2x+t71W1}%1dCw_Fysoi<)<2R z9>fXeK#UaQ^qpfl$BOaJfVt3c%pnGbk*2yIrcch_6~ceUc_K^#I+yf9|G(rn8e8v` z1nxI>c)x`V@0@FJo!Cz~QN1tBf^Zba3{O+&h~w5|@_6-Q;7-W;z5?2Ye=nKu4wY{+ z{-gd29gqJAs>k(>#@HkL#BKtya37BMhtnZEJ^}KHA0?yIAZQAYTaw{6ysi!cqg*fGoSi;YB1CGyG( zx1{JqPY6q-Je6eS=0d;R+suaSaKbAF&nG{p{zz-g`Vx^@qjeRp=|@Gbf6d;$M8{t{ zo+y|Jvy}1kX#4iEk(jP;)|t=8A=mH5@SLM$8y;Klkw(h?C4R?W{y4!4jklfgZY6nS zbvaz79FNOf6|Vk{xE`*AE3`$~gi@TSA^s|5-ki@{1CVZg|ObW${&N;-$nKCmzB2jkH9 z))=__@NyG!Q`ihPhqOup5%g4wvid3I(k{I}N7HV5V^)1TlUwIPA z;Q2e$Z4QxdiMKgPeIdzV^0!jjhpJ!14(1u&=`~yXX2&^8GR(8mo!!Nb z?F?;bL42^{y#Jt>^Ke}@3)UBB%?__hUu!5%ZC&NMwT!$31W|Q79H*Rg${%WL8)J(x zb{J!ia)Zns<@)^$bNvDSs2+cN8;So%+|luiL5AW}t$X16Oe}`YgZ{WA^JNOUB%w1<* z0pHpZ=u}51>uOn79ew^2{si~Ky6}MZlgU5BgYc00LhEAtW{26_E;XC4!F8A)RbpcF z7Ags{B)ro|{O<^7Leg z=GEVF*R_nDkG}POsjLaRK*|{)Yk*Ky*=N?RAw=Rn8$3Y3^VPyKA?@`u)G&f%XiO?`v9V=XaS zwqPSnwDxsurhanZuwr%M@mx5|SXYu3nP>T}Im+^KYn&95$*1M&Pn7Feblw&$qMn%w zN2^o8T+R7L7t>tW%G+p(qp%WI*8=P`k2q_L)flTCt5*kR?cGSSP>u2S%k{V5-c4|` zHs{yzXZ~28IZQQ{z+CBHe-WUo`qy6uk1FHS0{qebqHZn%S%3ST46lD#Ydj#IouO~> z;x$OGXN5S~v;AX(Uklf%r!5@~l#OpgT-gm+T=_!PC1l8p+ajgjOuuEyGe~6R3t;Vg zfp@e{B9DZl;AnWJwo@P(YT;P<9#F^J%|EEs=EAXX=W5_pAv;;T+3Pk}seF}ZqN`H5 z%Mo|&TO7X}E^}_P@XA;hYcuZfgQ&7;*S_2~EryLZUZtIJo6URs1;&1%ww-`ywxG@7 z+K6uBq|JF+jyQ7+FqrN6Lz*#egN(_zA^FuD?6FWd7~M)JlbuH znf2@rvDIW)Q*m}G$2#$s-Ao?~@)^Tq3%$>d9>B=EUq&3l- zeQ@@`<$IcOti53-aE5vgyaIkN0+HJ~NO`hj3|1m}1M)$52&Tdo`g~SjhO0SN*-wk? zYJb32Njz@LX-?n8>-3^oxTXO9! zOhFVI<@H@28|2UG70#1VIeYXB=k>qCM;xC={sY_&`qUqFd zijDA8#o_({IIJ&&OPv>fXT$dD#)yN*Ve15u;LVn}>%3elN zYyIvaqijAgNTXAncWx@YJ^#4C=oP<*z4A4OeMufu{T0c(ix*EbFOQDyP1-FH-S_(5 zt=hMB&Ry_%_^SGI^na#FH&ixxxju=8>ix>QKv<1Fh)eW!|ExUZsqus=p7vtx(IZy2 z$Sy*o?<{HZ9NoUGd_JUqKAHOy5Tc^PhlqJ8>iD{H>cu_1$W-=uyLWZezPF-Z7ego?*iYXRb`wYA}I7WJs1K0k`G{t99KYRt1*{(MZE_w^Fyyet>0-fK+$cI_pSp$h-G^(bZH<^K4r#m1r~pG_sFndrUbbM*VU1*>;sF(g!!8r{-Wlit*JgZi@gnYgrNiJyh?9m4{=@=eljdnPO>;2PEdX->;}6+7=9W&9r*m% z0yqqgpw~juB6`V0vF2&8C+r1#!#=Pt><8m86Z$cnXO-m*tk}vsp8x-ur9i-IOGa%zBwkxkLz5`CRE`ak$TkOj z*N3FTHVQ~y;aYX8wrd@q3e(_XxC9JR|H`p9DkqyI=`15>kT=3jj{iIPJn|0=E#Y*G z)suvJyTR+#uiykfb^Nz5$GMV7Zwuvl$`6tMNj|90xyotJL^Jt@Nfp^kogHS!k9N%!-JLzaW-FLy?(hX^y4e9eD z$L|7bsgp$SC%;8L;26iu)-`vbWnQ8fVRte-hpWkohgJ#?N7bRePjMuRE^&+d@Q+8P zmHa$OW?u2g9?qNi2wGQiB$2%4grn{92s34A6VH?@$?6k~xAIvYNrU8|iRWSHl^n@+ zYvOZ4^vc$n@vLg}F;O0Qlq=YIC&%3d`n--Dci#JzUk`79*QyJiJbKAv zo3azW-FX-4%Q35uLiAl-o3)QVn(5N5WR2~~bKxxLf;F|Qd+!fGi?sa)m7f)R* zca7QQbKO1Z^6#Xq(v>y3GIMs;Wu3VS2-fDYO3Bn&8;^@pZ*leL{a1q(VA!W$7w%)zUus)NnY|J}6{X6Hs-^1dg2k=y z4WX^H#V50fwctsRw&)Zxhe+t&W4t@z4()uu@!RE|K26e|G3Yn^%cjod>U^}>HB=#L zYi-7yP_IU(tl65%%~RH%PYe|9wuR`o5m;}1cp48gXoyI;PiB3+YOFCILMGx0@#mAz zQ8#d&H}~G)lr!K=_3t^B2}8^w;GEV=;H8csyCJ@X+}3H1o3{kt+tmecxq7}4hu6Y& zhI$jc8U7mH0&j)4f&RUBz~8_->G^x-Zb9B)oQq)tbNwrMka3nNM}Nts_bzR8Zwc78 zzHMtvGD%WuU82kh@|wAN1JI)+F`i!i4%T*DzlokJC$S|_j3%zuTsn!>5^>ILj9;EL zuc01?JP+uT#Fb~sy-9R1UMord%Z|~#IPsy{T$K}jdBrwxlq(%S97JD|S)Fx@*y>*E z+e7ban7&)NS?n<#8cif!Zf)&w@{(WA$adrt!EY)O!LUR<`Q=PGM2i7$F~pzHjM z8JmZ*dCE||5?-PIp5#A+vEx4_DZWSf0>D!eYLa9LN}_D%8{gYjJ=`pY*yIS~9g%|@ z!e1!r2S4cAjv_x}mpJuSuyKD5#u$#`&I9`033q58GUTd6abD_{)R+Y`!XSc?SUxlS zKkLiF6MS^4pOFU2O!O1M`WM<`Sr&I?c$ldrZVXTjwfVA1W@ zsP`>jHu9<^`a5LiTTS01GimZtJ|-VdM@czJKS?_!y+k^xxX^Smu9kBtoK(>MFqy%z zT*Z}>6W4;c@&;u3=J<%E^UcZj>Dtc$VUe&b=Vq>0Eb~r+84z!=$g&5B%Stij`A~FN z+qvtKIX|B(pigXlR2I4o>dJ)-QTz#DKG}sk}ugGFI%=iAzsV6wc;)frX z#4_2q^>W^b2Nd^;#bS*pKie3`l1R%RnrLppYnDu|D|%*}=-FRDxw^}XCCA65r|7$k z945)w<@$ld!PP%`GI@jUHLuGqAe*=0+wXEM;>F#+(eDNr@~ArcMyI*Xxee%^Jd*rU zj6)Re8a+R+&dBvML$FEny`9mw6V)fRe@eRr=J$5R%d(KE@E|+{sb372z?u+mTMOb% zC&NPJ>mYL=K3>#&H~Be;65Ek?(D9czq)>||wKs1cp4kSVIMG0Oz&sUvP+ z)XS7JXcXO;JPhIx#vS}hi;>3Oq>i8pITd0PHKRGR9fvsyPK1WohUk!#a}hgmst|rD zG=#6Od^niDki3!pKY>rGzn(;5^ZKZ)LG#!S(5xMSyK2^o?QS zd2xy+x?(VE8(Rpcz^T?b53;t5aXP4%tN(m5>F+?0#s*I#k5UewZD_m|=iQIeCH;4W zaGmp>2$LWl-glCcLc?_&!a4_$x3=;o&dXfUr-_)|l||&>$#siX-$2oC;2Z1M1r9NMb>sFg#Xx~9~3PP*_wjy zkHIID*LCdw#^5+E!9cn4IQbOiq2S03bJ=*xrX{L+q_#H4&5tj-r<1RO+q6%GO<^r~ z60E2F1!S^96Rm=;^Be8ALLxU2dk##3%+=3;`EGk0vs`(mD{lq@raZ|=R?P>w&A9dP zQ999`P9_;%MDx6V@Khob^_9#!=cLXSZ^$25$fr%=-t`L7?Mfg0Z0y)3kW`aJN5Q0< z?O+ishNQivkTfj{O9bpfZbikpWEPvnC9UlM(QEXQ@ds_$U!)(h%9DVc7en+3$wslP z!MJ%^lbvq9Z1AX$hC+Ju-U6aK!po*A>3<1i4Oz?X;8N0DwyIgmS@#TRjFCN8-^ld| zF$U|G5F0VZDnFacgjpa$b7!6~DtG4D6eV;=h^pSJ&z*3GWBWs&q?O*8FVH6o&SJNA z-aRDZ$|noU8nPhs*C(bDrZVy4UC?iw%lh3l$)Sbyrm3^sNnP9=)*FVMu|C4dd z-*Mgw3y-lv>;|wQYy|P}l@W4M2$_xi?ffAE;%J;vHcofX=jCjS-w4Sogx?z~$ZS8R4*kM@^~dh%S0XAK@>WK$6R`rb0^ z_EiXpmqfoK$>?<7_lU*JK5M;qs<{|o#Q{twW#bu=UWR{3B!NZrMv* z6y@VA`U^0!18GfiT;Ax-)h7fYb9ih1n77>rIDcmtNe$iG&68uh0;l|oZ@a_Q;lQ!F z+v4iU%He7$gsborUdCbAd1k3+&D+Clm_j!JQD?mVE@F81kRJ)v3mrQIo&w>m@4$~~ z8;$q!i4Eg)HN*iE1Y5!rVGT&;p?keB9i*xHW=8y_a_Tt|(e*9bLM*S%6NvKEBqYB8 zUI@2p+Y}tj1-N=WNH_J1;KkavGZfOwPb?X!N(8K~Zbwo6#>`skPf~uZWABHLsvigk zK{C+!+J2XUK8nq3uCfGpRf9q6viQ5LDA+w=^Sg$gZ*JXP^#SM z^~ozw1}<@0($W)v7c}ot@=m4xlQ!Oybk#hyC|;SXcNB~lP7tllQ;pn2_s-VmSYtf^ z>h+(sy;oa2Wf3ffC9o7ufD<7eDALCk!YObnzd%&`47iGpKh-t|5`m53_EQcAG0KqP zdK{zlv-ZJ_VBdhn6Qf5AhKJl7SBbQEt91|FgM5SDcWYY!;o@-E1&)ARmS(~@M2Cit zS<174!SjTrM5I*Rjbnw6?*O~h-&N20!^0xT+QWf058u?bceb>Rz`W(F>#=LrelWyw zqjNsbfEsdn*%q283@2+qcn}PwfA~5|_fvC1A_RH06IO`GM2i9HM5BJqo9xjj$xo5e zFF$iCN)Rzdy(kkz%N=3FOaI&NmSeTUfVJ|v{=fa&BZ~f8uRWhdXgq&c;0^zs*PhOu z?3ak(CI8P{dlttTw_DN62S0HVBCXTmjE9L1!L2jlLiIRt(&@7xsV&BSg0X%K_ky(9 zlFC}ADSzLwgmshN;)D#=ypB#f?7d6jJ>=DY%;bkG{BipZPuqpEq|1 zxP$xvqf@B-v4+h_N|yH^alH`g6JQ|$*0k~qZ~)4Z+%7< zGDBgO0j^U{JsmByJi@$Ic`8f;7lE=b&56Hq{Eh1U6!W;hO+3dKBCp5jHRVG<{h#E6 zRA9Jz3)oD38*&$Oa)`k~Vu0JUNij)TgOn6K6CqhR$I1)1^5~bbtE;rFO+Fv4cI->) zAuj33h3`?nNz6IwM1zQY%-Hd7$*;SBbv*eh$A%2l7PajcYU>** zzhG}MR({3a;`Pn1*xU4MB|_8Vd{oTofWV1V-3+5a2ej8i`=N?O1~H)zEZa)OSz`)jTpz|!d|d9>;wD4elQL*0m<2w^k$K>VGhiNd9Xjs2Lw0XUv!Kv7CTq~0`kkpvJu#o zjGmJKnFDf@LPSl`HJ%kcH-*iWqhs`oKI0Jm8eOATJTtmYff%IGFM374=ox2d$Zoti zI@S=~LUtVM>@=i9luS7X(lJCF2FJaLJ_G|RM(RSvO78~($jdU=BNXHr|q4H9YI!a{SlcT5|$tIUZVay$b4BZ{@O97 zxmW2)))D$1^ zc;khTu`(u7x?dq5fcv3OY(?QJo*6@Prs5z-s6VK@k#QH0PXhB+Tldc+(s!V1bQf9m zxtYl16K*rE*M5WJQ(>C&_sCc_tXvGSV%THdEUvi{jcz&WU&|#QHQAT+xtW~pob8lv zQU0BEMfu;u9K(M^`wQV#efnh98>)Xw{VaX90OS>&FV}vV@(^J?$I9&|y{jwX3dg5I zjPYeMx;Gx0H9QYO)cSC!GOwzxB17!+;cD|auXDKa`{5eL=vzGNDeBic{#D26m+yyX zE72INUPJjzI7z$t%R>aB=xZH=twK1Q3=A^HDe}axJ}-tj5q5+MQqMwp*(yDHlrD;4 z5>gA5c|^XXQ76Sj$=zUAu!s`gNh2X(0VJVYa8YD?lBe~MQ9|G}a!=R`_J)06U)T@E zVJ0wcdF^#JnNWN-ne=lP91F*3I|rTv=feeXE}UnH9IVAitqw3$Eh1V7>Sd0DA>_w_ z7Qtd@Qdia$zL32_3Y&+6teJzA_l)WjUZs_*6Ir z7DD{XoMj&zUgID0VSflev02uAI)pp6ET8yK3u@><7q*1(n3S8~*&M97K0lo{P ztF$$XkD{Ekd?9CuocgWW&C&do(-@=k2W<@jS!6z$uhHMU^#!T$qIw#6(a=GQtG=&3 zypXBt6wkBP=DBOx9K;Jn%CO?~y6Th|elA)z*&>)*?e^Bs$Y{wLDPGt4tlTKNQ>{-@H)n{oRQdOXgwQtj&83DQdY814PkQk{w4 zv+$ef_`fZcTogy&l!Dj7b;_xWfTWUUYm&0YsnJ@DSw4NN-%saYandsR^b(QmSJ$XJ{4cDmmbAK&o zX9JS8HJgyKVN)%03X;)HNB!I=axM%L@mJ~x8E6OcNq~UX)?_YTyFt9bWWA}Rl-2$a z`DcBeZW!pWeD800fO9&3uY3-C6t-0V8GKd0Uy^@-f7Q=;J?C`)P5n0{l6udAHQ*|E z4_xe+`MQ}$zwW=NUuftZ^4OOnH6BjvzNAKV{4xk=E0Fvg4mlcSO#Li< z)`hgkarTA%)Yk(#Rdg>-^GxNxfp*lK? zJvx-zjM!28z`3TWcJzI*wu4BHTW$mT*RXu6VR%E*eVuwZP1gOBb2)t-8>;4aZyk=^ zF;4eh^)1NPsN=k|NWagMH^Y^Hx9)d=KAmex19X1~Y|#C+b8!;;weKMHZ+(zFo7_&@ zR?6Q|KG3=5>`hjGEqovF-DQUk-)bFY&M&CXC!;TZI%}xkMGDUD2efZ*yz7+dRd(+m zG9Fv>*sosQIlI8&%KSUK|2pSeOU0g@w>oyRdFWXDmXFkUE05;)b8H`A&$iYzJ=Q(yHC?+}7e7nYD&)UmvU3AOmcxdd2!?G#DUHO*v zi8&`hD?lIj>qrKD#MhCG_ZN8`d2tlo{Na_3ZgN_iX}=t<&iFI&s{RFZcO7)5`*7=Ekm2FM&kmK~%} zR!T<>cv|_ys>eXA8gBLk znJAZ;`jRxvG|=0~iy-x!z=i6+hPNn3S%hT3Y#wqi5@M>KYU5tbBc|#N+Cl^cLsYpS zuSFuO`Z3%K_t9gKw!u<)f?!pB@R&NB6>mHII$Muv5%ZpA8IL zNq=RB{S%yUg#17>?+s%3HbeHNL+bm&I2f-tgEU5OTj$>ccfuX&+c<}_luc}SnFnk- zxP3^9$tQEv;QZn|S#t~40BbIM#hKWtzBC;-RWNZTU17s>tF~+PnF`b3Vo0=vuuRBd zMmIcl7XK#WeIH^h6LqJMA?_jliI83I3Y=+l!;}5MqrHhMPh_q#PK@(>xLO(EAv>F# zynC+xTKTEU55WEKXGk>V6GC=}8myzfECrT-+uFZ+g! zLMY|q9gq06jmx9xI&c((%G9%(wrW3gny_ElAM@y4ufH*RH;_+;jOF|?PR28CH?H<* z3Qy9vA1>WLD8~XBC!ZP6*R8%Hg(Sa`T-D>(!`q&*%hcoBt3l%L>F{=V2W8^Ni(oM< zfu*n>TnHhcuXwgSJubIgOkS#MK)7 z2fo{^Fsts}seS;g-aj^^R4=9#texv2tY_jJ&nGf|dsPPB7$VbX(CSTOva*@0b0O`^ zK*q=lJMY$&33{~beNmg0_r3&Q*4J3MBKF$T&XWN2GQ`-#d2!a*=ceJx}YAIV8HSCzrMW)~)>wG7{usDofQ&c#)M~jfSm3xYsb2=S!Aq@eXJC)cYt`Ro zZEscn9Qix)qx5~b_E%8h)7o%a_`8ARtj(68{0wA@I){tnwC*-0hwL5!*3dO?{d)3X z_&wmMdw}u7FWY8Yk)Oh~tg|{wS--;NJZ;~G@4!9qUHBfj619E+Kh&QiR-C=s5#Hmx z3$*`8c@y%-WOP~$@;M9|F7Z{`=abHBY)JHv>RbU#U-oWCpVqMUI!%S10a9`j2MYt0Le4yWw?Mj5B=Uy|W8e1^Yq z2%inNvy{Wh_7GmC(CIkxtK{+IG4K@#w;#j9$Bp@Oyr$nmZHIu&`nXmxf-kv321AqudNl5G4iP(^_&<(q+_BnCnZy?quFJy zTvNNsaR}+GoS#WXj8`rzQ7lSj4Cj>b)+g71jK3-5ynL>J{`~cIDJ+D?8EJ*-Cs-5j ztTK+27z@?$+<5115U+|glE$RUiC#Na=V-U^?)@YWd93dNnuzN)5yx9v$Z8>@UIa+Y z<~-@JwEzyo#|+p;+m}FEtXaCn8wbD6Q~rxYXN)rs_J{d!0K~%%f-@kI8IPVQGCxAE z^bd!R5}D!kF-K=I!Vw@sE9>uGt{ncC!eflkijGZmc0^@~PQFlHKi=z@dGf2imI!J6 zT=^5)Wck**{az)|t#f|8dPk(Xs4N-mz3w&#^ax(!~fZ4ro?=3129 zciBCDfF5@l>O+t;wVnFcm07mF9WUmnS$5#zng6BgCqrMcq`>St>sM)u4$p)B0tY)- z`mONJ^=10WAoa_Ep1DTUuOX4qdy4Yw;I*dtqPBw}5tjAk6OU-tKTkQt_9L=hmIE6@ zK9n1DWaWX2^prE$>bjgnvS!)ct)srTGOMn1m$#`t-*S91OoGf6*UR`rq*QyT$NkJv z=4wcBPHq{B((#_pD<{8i02{(akTEv_bCqWhQ^~k|=E!GgUG++QGNV7I zi@W9?E#E{f_h=6)KLjBm6NQktrkvk?fIJ75z*6I#0gl)D))rG+RPP%kg=*v0VV~#Z z9;!A*ZH#g+^i*Z;-Lbgx1plKC_pAP>{s;Iy{7BmnX}Jf?H&zn{g`o44v*_q_KQttU znCQ-638D5o$g^RQIiKmAKf#~DdHMEg;l|-+CsHG@j&~codOPsothw3|b~4^a$aiat zVe?5oZ}g0}-xShytY^Y3ov%|*TRLUXTj5&h6JJQ5>e$6_2}Jo=Gz4y@-!kPH zg1@Q$CS~DN&xSe5m%*j*T*naJHC`MchOFn2j9LqWaw8r?%~uvm%}r?&#@TAtTj+05 zD}B`WLFe57mqXte#Sqh-mo*HB`C7)|1l3jA8KcQ%J@Yh#m&bl_kc77Oygti|{IXeK zs2I0?8p&XJ4Owo28N1$HIYxPpW6o((L5x(=OJkt$u5YnH9P{QF;~0pC424SxA%vH! zLcE?KDibC;%1z-WPX3g-$*Zp^f12D4C^vXy!wAKQCy*xs!!*$|nroYz%Cb{BOh4X} z8_a4?WuJOy<*$?4t9>AmwJXU1+E?qaF03paF>+Ew`Tiw?Rx@Fi`V#72?ieSjPf`D^ z@^OxFr1G;Bj#GAUN08<(k4GnyNlkMh&c>nQDCHsEf#gBzL(Y}=jM*g=j&WFcjS<3o zrJ7^WJC3$F;ImxxGG?6R%Ou_FHnzu` zMf%>Q96K(6!vUYIt+c1DW9-SwpCPv-ai90Y^%U}Rj;{|Jz=klKe(_P#Z=7v=*xH!) zkvT86+7HI9)%o2xEBm(J;P~;{XKH(?@^pw}J_EwZRN$boQ|wV3dDyYTJ$)-K^iCP{7bU2L|geh$TcW~ zJj?On)KBT*9awdQIuC8Gn~9RVhU#9ejRy?hS2XFoxuy=%`4n@ETt8bm_gpv&8sfHB zjy}U_e3;Bb9gi*u%eO7+Yn0CcU%ZYFm#5;C_(Zvpvm1|5$Pe?9_FiDC1p$$mXr0{24ckM)-1a5uH@rJzbloIv>YMBL>}%~bb5qP4Z+n<%=do% z4u@ho0~gNn z2;+2e9_$Ziz+BjiZWoZ|Zo+i*V!g5**x0tti@t4WJcaJve^Tec!{Iv7>%MYfT20@C zZ-|ZF>wyq17b_lHzJzibIUl0`0kF5R5ts|i=!I{kJFO6&4@Vg2x(1qG9O5(SQ7}sU z-J0TInVh04d*@mG*s*)zK3pu+7xBHWf@UaZ4KW5I)GtZJiSc%79b%yK0O6b)u%fhDU z@Cz8VK-glT;!-y|em&fv-nU3|2bHT%Yq4Y3n(!asBXmSWZxOjOyvDH?0>Zj1+U0iL zt&B4j)XNsG?`=8)cFv6*m={{uOhc6v(7f;^IGWZQolS3Iq`q;89?i^l>d=A5kLGK zp#2cVsnelT-V}5w+|kfM*vg&}4l!rp-J}lFZ(#3Na7B z{m?f=N$~nM270vT1T79RcvgV$a@jZE=(B?MJK5n~@OSWT_*;F?p~H@_lk)l6I9z## zAUBl{ryHyx$@*M)j-0YI6i7X;os%wwOCXCq0Zs&A zxUy%P<#H$|mHmT-H~AvIarlH|2ZDT8^m{3J zG7P1FymhZ%sVzD_4;q4mbkUXmqt8B@TbI1OFHhEwAbCW27WyjkHg#S!cpkd1`Z4N% zMShtS`sMlP>(vj2=$G7?&s=Euo2MM!7`|L7rJ!7m>sO`2IK+wx%jN`xmmB73M8T|d|^Eg9LmFn&uLp9HUJzgw|;9c&yhDH8NKBB z@V6g~t51RBm1i3E2g>0ge1w^EU*?#=K?cU$-tmbH8dAdn=PY~DzOxhq%LvH~gC|_!;4H@Y0%>jS zFOvOik{wj*9s17I77i{0=f}y1A9fVS_>3v>(ZY8Eu>SuVF=G@2Vjzl=!N$tUQac+# zI~z+cpq@eW78W9kUcpm%4=>^|d@p3gLeRk9gzP4nKl5jHS@;C&Qb+|ZesRUV1zuk( zZv0m!04`Jh1Eeqzk85gDBa*l&kSX{k5R9!Q(2Y_6C&p&T3h4Yfz3mDv zpaoU`#gogg>Yi=5PVb*|1-yob9A7aZh+ad1v{Ya+SdU|vLHlCec;e4MuPP& z>lw%+bMjaNc{tWNXP_tvK;_b>|0na!L~S=?6;;dlf;eKt{tM>hsomNy54qcxz&Lom I9DEh@UNwJ$y#N3J literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index index 322708a1f0444e99193c2506c5f4cd8b4b12f55c..ed0a305985e35a744bb6757f75f010261c14c8a3 100644 GIT binary patch delta 29 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∋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
+
+ + + +
+
diff --git a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml index 1208f60..4f31d87 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml @@ -1,18 +1,18 @@ - - + + + + + - - - - - + + diff --git a/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi new file mode 100644 index 0000000..aa7a42b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -0,0 +1,2662 @@ + + + + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration + ModelMigrationProcessor.001 + + + + + + topLevel + shellMaximized + + + + + persp.actionSet:org.eclipse.rse.core.search.searchActionSet + persp.actionSet:org.eclipse.search.searchActionSet + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation + persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo + persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet + persp.actionSet:org.eclipse.mylyn.doc.actionSet + persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation + persp.actionSet:org.eclipse.ui.cheatsheets.actionSet + persp.actionSet:org.eclipse.ui.actionSet.keyBindings + persp.actionSet:org.eclipse.ui.actionSet.openFiles + persp.actionSet:org.eclipse.jst.j2ee.J2eeMainActionSet + persp.actionSet:org.eclipse.jdt.ui.JavaActionSet + persp.actionSet:org.eclipse.debug.ui.launchActionSet + persp.actionSet:org.eclipse.debug.ui.debugActionSet + persp.actionSet:org.eclipse.ui.NavigateActionSet + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.wst.server.ui.ServersView + persp.viewSC:org.eclipse.datatools.connectivity.DataSourceExplorerNavigator + persp.viewSC:org.eclipse.ui.views.BookmarkView + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.ui.views.PropertySheet + persp.viewSC:org.eclipse.ui.views.ResourceNavigator + persp.viewSC:org.eclipse.wst.common.snippets.internal.ui.SnippetsView + persp.viewSC:org.eclipse.ui.views.AllMarkersView + persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks + persp.viewSC:org.eclipse.search.ui.views.SearchView + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.showIn:org.eclipse.ui.navigator.ProjectExplorer + persp.newWizSC:org.eclipse.jpt.jpa.ui.wizard.newJpaProject + persp.perspSC:org.eclipse.jpt.ui.jpaPerspective + persp.perspSC:org.eclipse.debug.ui.DebugPerspective + persp.perspSC:org.eclipse.jdt.ui.JavaPerspective + persp.perspSC:org.eclipse.ui.resourcePerspective + persp.perspSC:org.eclipse.wst.web.ui.webDevPerspective + persp.newWizSC:org.eclipse.jst.j2ee.ui.project.facet.EarProjectWizard + persp.newWizSC:org.eclipse.jst.servlet.ui.project.facet.WebProjectWizard + persp.newWizSC:org.eclipse.jst.ejb.ui.project.facet.EjbProjectWizard + persp.newWizSC:org.eclipse.jst.j2ee.jca.ui.internal.wizard.ConnectorProjectWizard + persp.newWizSC:org.eclipse.jst.j2ee.ui.project.facet.appclient.AppClientProjectWizard + persp.newWizSC:org.eclipse.wst.web.ui.internal.wizards.SimpleWebProjectWizard + persp.newWizSC:org.eclipse.jpt.ui.wizard.newJpaProject + persp.newWizSC:org.eclipse.jst.servlet.ui.internal.wizard.AddServletWizard + persp.newWizSC:org.eclipse.jst.ejb.ui.internal.wizard.AddSessionBeanWizard + persp.newWizSC:org.eclipse.jst.ejb.ui.internal.wizard.AddMessageDrivenBeanWizard + persp.newWizSC:org.eclipse.jpt.ui.wizard.newEntity + persp.newWizSC:org.eclipse.jst.ws.creation.ui.wizard.serverwizard + persp.newWizSC:org.eclipse.ui.wizards.new.folder + persp.newWizSC:org.eclipse.ui.wizards.new.file + persp.actionSet:org.eclipse.wst.server.ui.internal.webbrowser.actionSet + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet + persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ProjectWizard + persp.actionSet:org.eclipse.wst.ws.explorer.explorer + + + newtablook + + + + + + + + + + newtablook + Minimized + + + + + + newtablook + Minimized + + + + + + + + + + + + + + + + + + + + + + + + View + categoryTag:Help + + + View + categoryTag:Help + + + View + categoryTag:General + + + + newtablook + org.eclipse.e4.primaryDataStack + EditorStack + active + + + Editor + org.eclipse.jdt.ui.CompilationUnitEditor + removeOnHide + + + + Editor + org.eclipse.jdt.ui.CompilationUnitEditor + removeOnHide + + + + Editor + org.eclipse.jdt.ui.CompilationUnitEditor + removeOnHide + + + + Editor + org.eclipse.jdt.ui.CompilationUnitEditor + removeOnHide + + + + Editor + org.eclipse.jdt.ui.CompilationUnitEditor + removeOnHide + active + activeOnClose + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + menuContribution:popup + popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu + + + + + View + categoryTag:General + + + View + categoryTag:Java + + + View + categoryTag:Java Browsing + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + menuContribution:popup + popup:org.eclipse.ui.views.AllMarkersView + popup:org.eclipse.ui.ide.MarkersView + + + + + View + categoryTag:General + + + View + categoryTag:Server + + + View + categoryTag:Data Management + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + menuContribution:popup + popup:org.eclipse.debug.ui.ProcessConsoleType.#ContextMenu + + + + + View + categoryTag:General + + + View + categoryTag:General + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + + + + View + categoryTag:General + + ViewMenu + menuContribution:menu + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + menuContribution:popup + popup:org.eclipse.jdt.ui.outline + + + + + View + categoryTag:Mylyn + + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + Draggable + + + Draggable + + + Draggable + + + Draggable + + + Draggable + + + Draggable + + + toolbarSeparator + + + + Draggable + + + + toolbarSeparator + + + + toolbarSeparator + + + + Draggable + + + stretch + SHOW_RESTORE_MENU + + + Draggable + HIDEABLE + SHOW_RESTORE_MENU + + + + + stretch + + + Draggable + + + Draggable + + + + + TrimStack + + + + + TrimStack + + + TrimStack + + + TrimStack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + platform:win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Editor + + + View + categoryTag:Ant + + + View + categoryTag:Data Management + + + View + categoryTag:Data Management + + + View + categoryTag:Data Management + + + View + categoryTag:Help + + + View + categoryTag:Debug + + + View + categoryTag:Java + + + View + categoryTag:JPA + + + View + categoryTag:JPA + + + View + categoryTag:JavaServer Faces + + + View + categoryTag:JavaServer Faces + + + View + categoryTag:Web Services + + + View + categoryTag:Maven + + + View + categoryTag:Maven + + + View + categoryTag:Plug-in Development + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:Remote Systems + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:CVS + + + View + categoryTag:CVS + + + View + categoryTag:Team + + + View + categoryTag:Team + + + View + categoryTag:Terminal + + + View + categoryTag:General + + + View + categoryTag:Help + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:Debug + + + View + categoryTag:JavaScript + + + View + categoryTag:JavaScript + + + View + categoryTag:JavaScript + + + View + categoryTag:JavaScript + + + View + categoryTag:JavaScript + + + View + categoryTag:Server + + + View + categoryTag:XML + + + View + categoryTag:XML + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Debug + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:Git + + + View + categoryTag:General + + + View + categoryTag:Java + + + View + categoryTag:Java + + + View + categoryTag:Java Browsing + + + View + categoryTag:Java Browsing + + + View + categoryTag:Java Browsing + + + View + categoryTag:Java Browsing + + + View + categoryTag:Java + + + View + categoryTag:General + + + View + categoryTag:Java + + + View + categoryTag:Java + + + View + categoryTag:Mylyn + + + View + categoryTag:Mylyn + + + View + categoryTag:Mylyn + + + View + categoryTag:API Tools + + + View + categoryTag:Plug-in Development + + + View + categoryTag:Plug-in Development + + + View + categoryTag:Plug-in Development + + + View + categoryTag:Plug-in Development + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:General + + + View + categoryTag:XML + + + View + categoryTag:XML + + + View + categoryTag:XML + + + + glue + move_after:PerspectiveSpacer + SHOW_RESTORE_MENU + + + move_after:Spacer Glue + HIDEABLE + SHOW_RESTORE_MENU + + + glue + move_after:SearchField + SHOW_RESTORE_MENU + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders/.project b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders/.project new file mode 100644 index 0000000..3a37754 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/.org.eclipse.jdt.core.external.folders/.project @@ -0,0 +1,18 @@ + + + .org.eclipse.jdt.core.external.folders + + + + + + + + + + .link0 + 2 + C:/Users/BELFAM_ADMIN/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.10-10.13.2.1277/start + + + diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1052857711.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1052857711.index new file mode 100644 index 0000000000000000000000000000000000000000..70542746a56f720e45493ab4561bd4b488c46547 GIT binary patch literal 12558 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 G^Zx+CKW| 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 Msxv`}o*nJ~UlT00eEZ(>% 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 -j<#o7d*L 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 AEdT%j literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1221077128.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1221077128.index new file mode 100644 index 0000000000000000000000000000000000000000..b94c51ce31fc965f6dbff4322e7a371ea7eaf9b7 GIT binary patch literal 587835 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 z z(E0mHIH7!CDblwBc0c33V3c^OYH-lWzfg=o32CCn&?(&o+lB-2U8DP*7T-W_jV%M6 zwb)kPTxV7zEs|pI`VIXw;HpQEi!_6uqNgAQPmTd{R6RU)A!iywnbnf~aagYhCDW(l z=4jQ&&5~pf_esFB4gt%jy^HKKdFB3nLnF>CMWh;*w<;%ULH6oeI`okYlFTe6bOemp z*a_I_^%wzQHh84>G(RJ%<>Ao{w~h86s<^0ijptG)bx=@ZbA=U)OzxZW>SavfwA}md z_zo5eY})kiaA8V9`wd`j^{eTAk7_`}wAN)EoHMfMW<5X4axNP1As zkm>7{tsKezf>;}N>hMtv3Tk`O5tdM$97v(6?9_y7Goe0e5cO^?Ye2Z5n`rC*mJ+~X zNm6~>yV^8OL_N=HK2J@(0Fm*qMR-$pC>J>(alB|9vbFI!7piv&zia|Ys|~IzY<{1> z=3%Ovnh8Yxg@A5yh((^5w&Ps>GCML>g4(-hc zeZAe&=QxP3H;aI+(??0D;{L5yFP=lQVkdTQ=GizY5FywZ9vN{u{RuTW9!oPyEG_*~?7*$^8V zIMp_5W?~5VDIpNqPU;bO$FHQNy%VIlm{?pa=K()aE>Tz%z$78#La^q9TSs#M#9Z(& zWKTY}y26*0dFab>=o5Y+cO=mq2}H?DjiOxQMZ&;tR;_%+Tt?pcM^Oc>(kbNXWEiW6 zH7tv)_XpDw4nsvK$AUuKZLM1}J$i<_onu18>{Sr65fetj+jGRy^6R*`3R0?phfWrihG`f=znh{-~uiR%@6Y2{yx7uK9EhgQfXZ9ljf zLUHzpUx^A;EfW|wiv8hXu_Lu&wuC*6Cs72f3inz`s%mwdKKnBLx>g9+iDzVZz)q|^ zFG)wAXsD3q7fi7fLx4Y=`_XIBs^qZF9P`$HjCu$D`qnhRe^N<)$sJGFDl~9C+|{!~ zqf-Jaer&6dr}J*0u@dXXOW2n4jzo&~T%?a#sRLusWmz9RoK8JhhG4hRji9IsEG8t| zZ@VPpXY0s+tK7!xpua2`Ns+DVfOVw}X>-~_9sP&oiDxTk+V(;w*41h&B9(j84&zBD z5{Pq#Mvo2;9GJ$MF3X-ZgCyWZj?r+?G#<|(P&Kc;gWS;%h*B_8edZq6HeQuMdod?`X_bnu;vK26{nneUbBE6f=ie_RCyR}2;wXMR>XdusolbdDz zLG7Oz8(5k*AD5~4JNPP-(D19?cksZ>QwpWzMbh`(~r`BkTicCoCTmI z?NCJ$=!c#twSQ_tEm^8;gP=tz;e06`Gwr%Pc%2ZYJ>&{$E4@U)PQ{vdyjsa9D)N01 zGx=zS7l%Npqnw`vA#1D{+5cm16SL6bi=UrXTsM?S&j?d z@=MY8)!CveI@eKRcSh!2k3ycnXHyNQ6z`)_>Ue==FQ_Ix>5}T)wc>2{dWw92F%Wba zf-TCXug77L9L(SMYm=_I?AfiA0*nfBG#0Axrz@x1SH>{NwmoPe&0$TPA@u2ca}lzd)mu#dFU5uXOKXt<()p6WD*${rrdBjb=?P=Pu)POWjV>0fR225E^p z++x(7&gB;+n>^Pqm&%zXr!hRjxa&~6r!`;iT6rsl_Zt2UWI<&ID?n9d##BlvP)UW1 zwSUSo7g5v$HJMWQQ%lFjDRsB>k2+$>8s{fqisfFQ@_ zc~B72cC;G2qF-dPP;JFZy5n9&lJBC%RdmFuWczh@?37U#Pp5c$UA;Uc59Q-&KF0@G zv92&*&Hjy-(NMdO=|gw9665t#v?68l3ZIdh#;|Wk(nYa_u@daAAgzGW2@1Ss3(}G) z$bQ7>CmsoIGcUarU+Zbj+kJ!V$&~n9th_?oMIez)trYlZIu9TUb*<*16I(rJ_*3E(en`J!~@ zCNk}U367u~IAf7K0wF1rvIxc#4IYpC&CA4(MSEstr`*CX8|YKv!Aqdoy8-Ra%0`>K zdPyscyG}Q)bUFY;&q5(^nNx-I?H^RAdz($g$D@tHdRpw7$k*NKNhvl~WDtDD)S(G1 zR!p@cJj)9N+QtbW9HEQ}>vToqSF3~4qb@yf{~6-p1*^Ujb$FFGaeFl_i zH<$`dU0Qj!)&pqCU{fESFnz=JZGF8j^ch$%qeiNGYJiu*e_Wu9Na4dSxw|y`z6|Pw zgFGs`6G9925vsO24RwU zX{L2}C$)kD_aTCFav@47{@Quiv1pfk3GIGL^gf*iz88vKnLYn1Zs*%#i;(H|(9#@6*h_3Q+%6G(MazZ`%0o6w2x3zQb7U#kJgX|#*jmf`Z-J-% zVn8dGk%c7(qO5GV(H&ZG6*r61xm@MNu~7%ae8|T`8PXZ5 ztSl2#gzPapsTC~th=-7O`(c|6Hyt&MHCtNh!^KmERF~5c{Y)W+>gsm;4ovT%!b>8R zjUSC-d?Zn4V4Hsz`ed8z;zq!+eVLsjz@$Y(8i)^X>p zcp2L5T~~K_+EVIohPlXT+~R6+gOh#feC<1yoy#kTlv}2lH-9OzD{wV%qk3DmkEMoq zif7BCCringW&psGi%mx1^p>`|D}5q;lHQW<0<8FNF7UEz>f@RYw$>sXaXhxYe;633 z8`-!b6PY+|Kz(X%qq3EeuFFnAi-X`4<|VbE`Y_7asTFP?ED(bs;rhnhO*SYyyvhJR%YmsB76(!gwe0X zG8f0J{8VDRC@sveqfilz&o{ncHcL@oSVi1M^q~kVKdiTnr&um`9r(5SK=X-uYpVvO z_>Bsg(z4q|haxk}M?cLur2rjDO0G^%<=UHd4S*;Pah+mQ>p;`$ix#*f};u(3*jQuGQ+;agV~uJr8`~KQ!J?hGg-8eLs~uL#Cn& zI{Kcw6zu!VoR#^}a}(4VM&00ihw~;u_@?2i`P|^+Q1dZ!aOl0wj$Zt+D1$iJ(Snh^ zHXfd;?8>NbI{Mr*Jjh%dsSy!hbDDa(w{F|o+ta1Q*}kx~0d<%yB z7ygDOLcJ5jgb4i*)Hoem>T=XIPBFjR9oQ0OsSGJ6Sk|QNK3cu+#k+aG+!e{iS!&`LcXYLj1_c*HMJJolDQz@JW03dR*44wqVc^!*W^m8rue42b$@SumXy zTw!{%LZR6g{|(R6k<*1$FoC94nnq0UcID8O3&bWW9n>NN2vrBMkuwCnp)F(Kcp`db zX!UifRlK3($it@$l#5*a6V4h5TIwH>kjaw7V~{*HL$sQHt?c5==`Z*Ac01trqKFu& zb=~eh)n*Uh7T9ZLfS;bu9JDL8>+lBni7=Ib!J)eqNNn91hw9#17AxXl}=hV zVU`*M?XEIyz~5^K!~AWt$&K8GVk(YGyuE``n(p7mY>NkAM2a?&A`m$;#RrB~3E;76 zZ9oTv(~-uaQhIyJ6APpryQI?^|IoO<@t`tdalH2QwefCt$(4$q8x6Z8030<%su=F_ zb+5SP~d<6m<5T$(MaP_fcl%BMuA zs?--D6|%;e7E;8qzT<+6yl1n-;Ht=P9|CQv!Kzskg}&rmbG1JFcWuE6HO_;6z`Z17 zF75L5W_e+lRhbwpdN-8Tqhu(CCW*uF9ehysqyhhYQQ|`SFzaj*buNj6bFxYN zEG`MEeK@valUM?~j`$=*FEBTw#LwcBXpM7fu}O$KB)B9VCUg`CRNOp;Q(`toiMjYB zKyTM3oJpP0FoR@dAhM440wjuJr3ys0DCecKCYfsv;CJUyw4jPkB|4G>5(7d)>P(ww z-75=@q!PayW!p!QEZpjQBLyL`t~E$IRd5G9wc`MchyruwM3Q--xD^$7hADR!pNa}t z5|t=`uz0eeA7RO0+iy>t=G>ifDQ!jb<2S&ZU#OQ$wg5$KElp_1Q7VR@mEEEG1_MR( zl5n#xIqAQ3oe%;Z#b;%bew_Ya0eE(jm#k?6r5WR&(l}IH9`gCDvMtK8s2sxpLgDjc z_%C}@jpz-n_6=Oim}i#on`G$?#J#AX<@!sUR>{m)44zy7A17KQ-=*GMI?Pq zWr)k3J;O8yk6Y0Q3xG3U#$x=?uTxdtOBUqbqE|!F?j|z_T9>?- zo4X_+xYJC#F%YS5YCu#x*|>J?X9YvUrUV1jvH*DX;Ej`}NH^AETZG{rbX#Q^*ceBJs$tea3Q@pZomp7 z9VA~-Gm-KAKSrj#kwl3rcO}(*$C^<{Rl?qp?y=CrQbI=4Y$}< zJ%=Eck`|YSQu@840}K?!-j=;5a1A@-oknNA8y}52X(XzBj+R8;zt$a8I)he4Y!**d zpp>%jWT|oz(uJT5vW*VZYtt{KZh>}{S;BFPDloQ+0Q0c1;xl+F7D9*iru2DQnC3T*VxvDrJwvOOpNtPl( z&M~kz^U@z?u(b|gRm#@+B^tJIJ4lXSOv>j&DI^wUuy~k%>ky}1Vw`8Zk+e$%>$8%) z|M4p3QUu==Md#t$6hdbST@X9!W$iSA*yPP=l?(QjjT)U(d zLLK^ld$HzhETAvs8zk;ZpZ$} zWi>X*t`g)AvM@KLMS~0zatcuQqCuL6t(zvCqxsIMcpvAt(Kfw4t-2-mOxCL+k^VY} zXL@>0DwH<-Y?yRsh8he{RIp|Bo|xBCdvHeT8W_s@OI*gE?pT#8FTkWH94T2cNl#!h zM<=vFS<2=$?jfM|mb04i!hsguWv+#B z^M6rA7I$)dYM@o=qK>3`TAtEktuqfGq2@ZjsFj=(194clYnuP+MT#Yklo*ey)@EKo z1yO^YT9IN0TPeta(31o(AVg-N=Ouaqh+OU(g8ttsr>JYR82@yc>l?W2Fb%lWAJ-N z>j+LI-KYqo#72fDqkG*?^Uegl_{IWxn)Y`jpsAW6Wu{yi;D1JjZjIPc%3u9EWe1|> z9Q>LJNAjti?_u?pra?d2k7kx(yQd!u?IuNx8w4q!XdSB z&PT3Z7_~dnXB)Srm4jnbI4{KIW1}}a)Y4gaWeR4}f?Y^6q)8_dqxiHfj^R1Nz|H%_qnIgI0W(PzI$pwh)L)idoMfji`lwnnd z{DRS_KTV5iWk>BI^EFo+hafO>1&gHnSzLF{>;?i+Dz)-5edx}RD#k)^L^76Ev#j;p z;ds;oPP}QSj5#dT$1J&WEqa|+dfB?6p{jB*wVDqj8R#mtG@4zuk&UU^z+^OChbjKC zOf_v`VFs@s8WE60pMePz?A>a``5i44Z+33&+=kTXlI3dQ3zesl{*uf0Xk@ZLK6pLC zf(XuUQaL^EVt|>igJp<*IRZpg08ua48#`Po;HvVVj@8V(9E3y zI@u%By_$4^?T=BAkQ`8O&NOB`DW$wsM&}Ut&}XW$#gQSp?4)e~RULpu$N*vfdDOtx zyrYuBM^l~8bDI?ld@d32`wDyL3`QPW28)N8FJBW5#0PWlc_;3Uoslz1GTebG{)hAs zS-EmKg=@R9)LzxLv>yuwldxB}110`# z0+dCni^*T{zJ7js2aDc_Ml~-+m74ZK9Q%B3*QhONp$w&eKydKQx+dQ3>52(mmhaiw zN_%-__93!hbM_6?ko|gm(2x}ac875{Hxe(9AaMvng5vT9gt~`r&*|k31%-HtD-6d$gp<4l@*07xrRb(rlyzVi1MIm328mZS77^KN z?Cx3SonO4)y^|#%Z#Ldbd{GtIQOHM$J-dNmK@=}h12ti_l;c>(q>rT)g~wsrrcHet zclw)<&E%T%wp+5Re1pG!BAqckhZCJ@`37?0RJ5E)6LYo_p0m$xLu;SB#1HP^Z|hh^ zR!RF=oDutP87`9%h%!AvY^L*Br*xOJ6nLoo|LyWb1!q2Skv%58KP^ViFOL-a)OJzqY^=3sP)nzGG`5BwsK5;OTx?49EY zgduHw0ID7t#u}zj>oh-O3U>=r2#iFbPpKsMz;-l#%&hH23jTA_MRF|A{eaT$`5?E4 zxUHfE?+V|I4qa6*uPD&YC<7P5+}s13(jxicwK!J2zKb;7(5Ww7?AkJlAp+eov|5G_ z_k_b)JEb~-kGd#B*@48BD+;mNp->>9b@IsW2mpkOSKp zp4erIqkTgFzkDQ4D{4m4M4Z6ywMLRByXc^)3g{n|q#Rw9D$KSoLc#k|=OHyBv8OA@ zmuR4drpo_09)<>I+(p*pVFxa!5`fCzYQH)^Yhrp|jh~8tqqXwOucn7|OfDGFq32KY zy-ty%kiK{`u2$Xk(N-)-*TW0;%gyfQhURt6KZZpi&qT=jT*vUsX(@%{svKsa@l4!I z+aE0gdLSowL3bY2)NjMiS)}7k;2f@xi}EsF=y);qzg{C=N@9{UL9~Lh382dsx(Xhs zbZTQl5d@;bzxLHGtM#+!wOVA3ZqUj3Bt0U1p}_wmAc0y@p;lFT0b{9yTGKXqfcsc9 z$boB!+6AE_;3AwW*We+Is&gevOE>FQNK*4Sv!~Tn4#=@bx#Larp!K{lz8m zNlG4{O0}7Eh7osB>bRIP$E6L(CaIF{&O-qP8~Z8e+>RHjIdz{i>x9U$3-82Fv-h+z zvrk+I74{XLT6cR>*fH@?s4#I?Gp7H%2etEHW}^^}E#a|=lVYh+J*$9zomKg7Yw%Ss z!-MNKt@SROY__y+EMn0+V1Q6k?6kpQ(s5GrIu@Ho`XO9pDN(a4>+_?n&?Qb{V;?Yk z_ZW||hH^g*o1^U72;6rpb-;Q~yp4*vh+-8oqK5~l#(MYXITUla#Kk&{VCuH++c-LP z2s1iC**HyaQUTlhNs=qph%{ z9%`Xn&!8!dMV6O=)n}zyEzQ2r6Fd`raw?K1%8iczn)x$4$)7Y9B3a}KfC7kDqD7JZ z0!Bzcd#e1A=K#Nl{?JcSqq+jmAi23#Ni%r&>wbm=V%@ZW$gx~EnyULS?Xo1 z)+)|ue;P=KSh3e|M&ASp*E>yf|6x|}Gn6I2OpdLq@!H0_!NL7=pW3{D$GU_?*v7%Qsd;mA*k|x}IV5juzMWAW|7Y`~&Hvi` zSo7no_@ANi|E~EDJoMLC{cktF%jzp}wU|@63<9uo=mWTvllV&=&x2@wL&qlK$1NRw z#7gG0iq0UC8+8|3i`FDg`-ym)Zs!{6@mxC)h)w#SyhM!swWu z8x~)jpbL)(>jCapA3eiMc5nJ{`V0$mCyFT+=7*TDSco(8B3!}(=;eQxmu|iCpZRsa z<`+DNSJR7a>e!MNi2rz(v3JLJ+w@JBe^L#LEQyp)w4p@1khLBe6L^OQ>qswYB#d1! z2o6x8OtXiD`A8hh5o_(ErruA{_fS-uJ2mWyS-+4av9*UFYjyXs=M#fhs zd6|EhkNfl=`od8UREl=6#0J_bn-2M6#nA~|iuQ9gaym6}0EsSv=JD62Iz_!g)NA#n z$=?0l&@HPKfrsp}3I3DDex@|M*e;-AE#}V*jbFa5Ldw|Pj<&(XR4A7d-S#7==pdoA zysUcdfQA{hzZ6X^+b4C8D;A^lEUI*z`E0ckzgjhMMcT&{nq;Y{H-qZLaWj9-E z=Dj!%b@*kw9Zz>-B<58$_)Sm~jNIn+59YxpCS8`U zr2dNca5&pxEz}p%!a+?M)3>@VDXmuIAbf-Nt+4zl$W*pSzp7BXRkm1* zMf4UpnO$3V_HNcXQ-@pTof7vW=RntBmzI@~f9H+cH|9*wHA#b4wAz(JWep_($00@I zdemh^ox0l@me>NL+BWVrmZzf|GXYOUTO#j%F>ko@R96~FF11vp7%$R%1dlyIg}exR z`Kd}+oLXXU=D8k<8&IZ5=n^4c&I$Nf%D`XJ=kvc|K%QeIDSDM^!*!J?*MJ7Ww>P zu{$3w#q0>BH9A|FgiO?-+e6^Sc)L1Hw373^@ggN_m)T|{=OeDz=FCBa^F=_0TE=lU~t(K*OVQIHtqR0lRS&^!Of0>tYvX3b2myS zF@!wC2by0>OGbt&D7{4Pr4Dnau#d1ebiUlBHX}&T3_?WwtTo~>i+HGa z)}CC`>4!%kz$yo_1)pHWPNehsaV}$5%{1L3M`0zw`#egPRD#HVc2gd;awrWUGNM~) zqtelM*e=8zsZ3qK!>Cr=GIU!V5a3HE0RnU)up6bwZpQ*ASTrfvk@0>Ju3&++YjmB` zCGNX+Q7tQ#-YTtsDU-5xmkF;EtC~8B z34sgPC|B`9SUj!jP$5!_$qHsYI!RYg48({PTM6RnR0YB@>qurxnMa+F|HHV_9yuvK z9gGd9091=KUu! zQ8hn+1ZlBtUkh7jT+AW|zWGM*oi4=Ay1iFN^+p!yNP1o_+8iWQSu;W%U~MiIZl@Dv*;jyv(J*Gh$zhJ$F91o3O zfRV`!{e!}K#iw)LU?e?v#tmdy5F7G&kqywlC+57u@1;F6uHXlYhYat3Vq<`+*0w#e z|DgzP&WrC$Ju@zz&7lJDwSB{a2Pmt6GFG{Fu7w;+n`d08bU@h4(>3HE=Bt}@#DLB@ zu6Sa8+BWlw`663v2FBO^+!tMt`es~oPhV?GwOD0K+m^C?ILFg6pkxXy2&E@Gt?e{3ZsC{AW?rSzzQoSag_}UqlT-z%dKDjrI{XDnM zbT9H6`#8D-&@;yq7x%sPg=tc$_sBQhldhSukUsF0DsLARFTtQhv8U(BoZv^&#u>lg zv3`B8HXzfMlz;A_^H+uZw)f9x_zceQo6>bNE~UmXFK#7!#RYsEIp$&~mZk2Ew+bI3 z%~Nf`+TKxn*74)k7uui6%j4HO`TkiBZI*m_StXoPvh(K`;*PX;#tTVY&&Kg00YU~B>wSF+LSv$@`YOvbZkT(;L#YUa1i^w=I zVg*PoVDKlOkj4M~bW2o~@RVYf)opFJw0wi_j4$OAaKYNGo6467bRdQg!OVZ|I{=Gt z+g0*|pM?hf;4BX=)@CW)olnRT_4LTC|Hdra6c5?EfgHnxuGjVqKAZ8|yVJTETf9r- zk{mbB{W}sjGkzzC=sMyQdDNJ&xo-K|^sE^_Wp++COb(aN{i_eoV)?2dAgrHk$DDWl z?ktPMW=feAtjnCgeQ=iF?y7F?M9`eSy?B}J%?`Lf1ug~^|$Z+IwlzyD^t|v~;vNQ6y)>S@<|26AVC&c%8>EapkfIXN^e2CIu zRGLSMpbOO7v(qgQv;TIZV-{yWymT@shqc2yh^Zd$6bz(ap798tv7sO1HEK|0aemvL zYYO_oh-r>}JzX{98p7T964kthIevZo%+x#M*Ch)h0c&?P%U{|Tsr4|&=g)Gvc#SL% zkxEwRG!n7K49*T#OlCWa}hS9qGTPucvRM&FkA)I_lBu zFLK=_>EZN9`Wh2tzm@(i{m=BB^j*e0Gesa>He)$?^|6i)eYf_f_NT4A;yco`b6>xK1#)LSx}7_=)L$lg6-LfH0ujw_NeoalL$M37^&9zt zYJbdG8Xc%!1(l3a$gy%Qa$CP;`{Nl68gFLqUN*;b?jCIXGj}gnxSZsC;!=3|Y;KR3 z1Ac~`ymS^tSarsXuZty~xyIpZ-I1=HA$%o5n$tq98I%c%=>2Q6SlXGYZtnG4kfJwA z3|GZzt?#r&id_h!kTvlI?DDSin1R17zn%WoS){9{XCXTKOX*kRnm^x-BMmm=mrwY% zUrYyP{P+pHFUGpOVX@nJEoQp&+2+cfKRu1rBY<*=`VFlV>R-Abr~2xjl^@nWYhT%{ zBJRf=9{*6KSX@I?_MOo}HXOO9)vRnLso= zq1g8i({m7Ud;4A#$LzynYuW1qT+eUaE`x{o3z|VCpQ$7j0SV{u{^4ocA&sIxR$iSq z0iywA^orW&^+QsA)24;;_UV`Rr{_Ad5MZd4TZnIis)Z(Ql4dLD*4rQ0duxMr?4Q!c zU6^;x&8eceDp;vMir>4n9o2Wj_TB#;q+orzP~lD6S@Ij`%Kl3To}T=BY0E4ZoBf7H z!`E(D|5jYz^7G8p_e3rkHhY$Dwy#m`!uw_sOu0tt!kf0T`qi4jocIg5KJnMH7|KWh zK7k*9E?pZ92SM6je|7K33+sQamz(5~SSzkco9z))3s}E~C84zza*nF+wXcV(TfIH! zBjm4`MJeLps1`Y~*3@G0dO62cl=uv}s4o=JFT)M4n)T#KyO!knv?a@u%+Wh`B3(Y~ zuS*A4`|H$x_|f#V*~ON7PLtXXq>Xx*><`x$(wnhk2s$9xEoFdnp(akSdn;~e|1@|dyoN;@0&!UPscah|1@)(()b(g$T({DDEtFKS!R=1`X z{{MTSSnK+tdbz?W-;{P#4u}$o^{;6!*Ob3ru(tfatZ2hgnehV-C$fC}wDf|y72SJi z-@ruMcfGM~U%7eT-pj6f*5#Pcx^49jt@pRMI@AxgU1IyCosVBWO{g?EvbWi$d`fusa(|zd+>HhT7#)7o5%}tx} zwmKDU-xr~Stk9?xr-PE?#Gvbf>Lu6^fKRx*y z>BYa;4QA#T=D0&=dg(8C2g!}$93`DG%QE%$=q(nfXIa~pFuiS^tl)N6f2u4mNWZIo z#;=41aG7eBUw<*}{zc!b6;jTzW^2+-#va!H?6VyvTl%3=R5oe;_KZKaub0=sP>W-K znQZBb$6UF?_4~~{mw@p1(zVuhoGVA#e)Ml~;J2n<>Jdc0MRoTg>?OFZ`F!Aes+P! zdq~dnRhapoqz!G}MX%iI=}+DAEH(|_IwUS%+GP!%!GF-6$&LB@bluN$rEMalhLCLb zi~WDpy$6_FS9v%7S~kUUlY0fXbzf_xRk4iZvf7p8mDQ|WSw<3GM!O^JShG7~XIBLR z*x-OoNFYGy33jN#5PAr`mxSifLJ!4MW55PN2s<cfXEs3B4~=#T)vFK$ud+8NCi zi3_$DM7H$Vo{(8pB%I(hF`S7N#2FU<%Ev+hC8(T0mBuS*D2bNSkRJE>6*HcY3U7x3x>rfida7q@0o@+Ec*320NL2>3>b_fFfk{3=OEZ(G*QkZ_ z$c+9yU6UEj%Dv8@34P6dP-dFn(UQzG)_>8HC`-Xj^_#)(3I?k`u19KyhBCZ+{8|@X zn^{?F5m}g(Xm|UMCfE4>;2Je8NyeKDB@e>fUCe$3I(5v#!*Wjx6A_ru^8k%6p}y!0 ziM^>+n1z|=l@Ys{;8zmc!w}go?nVDP1niZMogHylbL1LS@|5Yh@0pH8FZM9zL3xFs zLf)FS*@#U8J>N?rtE`$t#!A*V?<{&_WUy>lT3V~2BX{N7BA!1UEW=u!_nA3Mi^!Wu z2sxMaSCPv?cRFY(V(iP^@(UxDNymv~jEc{A>9yB)($hU5c5vnT z#l4G1;JMD8cfR*s6)G{bYFF7!hK`h{r~E(h*U_6`wRj=j=FL-_8EvsRtJRssF=*tL zz5c55Suk}lHzYsa#vtwUzFoF#$(19^g0EX%gO1}H^rmZi1&+>FDW~#@1eXh-)t$K^uYg@BAt{;C=is-+QpL7r&BjFmj=oqFiKSwlv>H zumH?$;TjDo&9_`}ngd0s0gD4_oHW6y8Bs2!2DP6(QmD8m^Aeq*;&pUQl#?<+7SBcV z-~hu%Ulb#43m8b;+vd}^#AzXIJalAg8u3gn)oY5^iy{tb=1Y7Ki9Bq<*Y1oR;o(x} z&W^BvO3aHSuh_ddtNQq^Z}sOPn1kyWA%hKCQ0xPr85m`V%~v0wzwoZt7+RXYm{Ec= zEJ25ktXt(jnEBY>fx!Xh1M4DjK>TK6SBj2elkxK(@qMrCaNp}=wDbz^$=ZT-p@Ub9 z6gz?Q<0%gDp;$sJ=AyI|0|80~ww4MV@Ng4_ge%6f6p27epCt zqEPd|*|$fa#A-3E#=bi;R+BMWZ}_;#SgqU8dhGF$AY+^T=ewFcxKSNkPW^_+>L!f@ zeF&;euljuI=YW@~F{wP{b9iA?*8Q$|H#er5lQzSxrL{pso&t}lvdc_MOitefcLYAc>dxmJ5 zX9Z_O{mU?_ZxfoiP7QGv9%CnF6I&i!{4^2~yS`Yc&Y)-~yn$*gYG%%B*Z6{s6SkcZdE$4&rqkKC(Ba&`@O;>X37^yesC3P-u^%xT7EWzxfjzISzZSt*3z|6Z=z1{BQ0|YiW_^ zqIP#F3!0(;0fN`*#*AgNzp%H2ig2Z;iUeW6ZcDX*TCoNbO6XWvIM^&8nT@WmgsA)) zk}_FshjFl&!v;KO0RQA#1cQ?e_7kr1FKK!63lK{gplQteEQQ&9bhG=HK;;#|)cpc! zV|mG99*~&#W(oWa5$xWuW~wm3#qH2)5PA5n_%zZ~al0%+b2e2_3>QIlTft^}0=s5# zbz)VjZKbsVo$gP=Pfb97#9$Ynuf997F|o>;New9SPsT!=Gtv2xcrABh2oroN>wRU> zd)nXNu1G?JfEkxK89*Oz)H32K`uv-3o{ev`b}MZNZjc8v%*g~+%CJAWignJM&x@pa zm&BQlvR%;beMnI$IzCl>AYyt(@hsFcl(O!Keap*%Wo5Gx$wT6|(>U@T^B`?M>UnvW zpBm9sz>pV7e~gko?63B$2)NmMmW#6gNOY(8HP!B*)xj&WM8~bW5x%w>ZMOs@`0&j# z>v>au(?*1nAq!!&ne8=8Ox1e@?bJR+ouiP5jje@cZLn*+(d&m1vg>dnJ)y% zmK@;JDcX%j0Lht^kr<#jRV?iB%EZTrDZ}Mh1VKc+%wTX+=Ajhu_DC|9phk1dn27B_ z*_FY1ffuF%tzhrD5g_g`Labk6tDYS>3JhFeTsG=)zfB45G_BkBbI;5 z^~aKk)x1OOi=3ykazbljQ-ji{dH0F*Ts=v^LBSj z%tnyLwBJXCxVmkaZ8Y+X&87W;zhHd-|IJepuhESk8cLr4X3(Kf5BDY4M#jyuVy)MEm zIT{+REqyp~sQf!3`?qSgWHXmWjf(6+nlr;t#2zKxQ1Tc30qqE(gr_VTihg~Bj&`>T zCrlj1BV0q(>@Cd_p?Ta4pS3RM8ClztM@9aegL3gM<(y6PbXC+!@{; zk+T)uxtn2h7z4zMBe=!p@FA2Q7bX>)!6vO{VFo5mKFRwd>?w>v4)^1RE=wNnXCph4 zAn`+m{lBFZO>D<0$I4umDAQWY015ul&bX9aPP|T#yY2sq`vC{R?jB{m^ z6YxYfDNw_tJ$~iPGnZE6Zl&EBu8q&2jZW1V-0D2F8m(<{9_GVFUlUfGpYXxxco>3d zZ6Q4G?95o_m({3m9$IlD{XDVP)?eB*0o+OkiM`v!gY=G3b$Ds?hSF}Z8Bj4f(|nG7 z^n~cx_Se2TI^NQ5h1cdVaw3u!P1dd+6&6C9x9T2QuGTsjHPJ?vd)R?(p#IkiLLC%>j8j5?R(6*Oj}t=mY-WTiO_4#%wud zKt(f;?+BBhK7_03mqOTF`Ix&M9^%y;6R9rA{9lCVY6mVFO=@`+bzX)kTf3=)hn*KG zb}RagGM@y7ff)NrP`*M4aXAoU;g{*Abp1pXaiK-f-HBU{d>$@iTz^k#bH5hn!ilo` z{R%CKWxu4^BbhTBV#Uc)@1iSXL)$NQu{P1`lZz79sH|b!%q`3!&US8YuWmuGW=mAP zzw;0vbW*TcHzJm7ZjzGE^qDO{nTr;pqQxap=B9= zs+P)B2kI96hYuy{vDY+}`cr9fQ>Ku+X*k_)UX|Q+k{ILeoEMs(LO<^lG3x0L$)L#o zv`ome>B;FDXsV#i$2=z9YLRqQ?kdlMPx|4VBy&r0!+L_-X=^%nx|dF_soCUsf?#;x0+Sl*KmbG{i_=j!f40QAFreS=;UBou6UhnV1_vPmi#0x93bH4vFx;nKEW;czfc=R`!u+pIJJuMq*cm9W_ zbNFdyd2{@C#1eFf;>FPs@gh@FF(nvQ>ho{YNJ%Wm9Ty2@6=(gh>z@g4PK3alsghYa z`=LY3>{bw94cl*KTn9TomZmd<+gg;__aF*mW(Rk$@?2UQh~xnjrqYB+P2qr4c>iXm zYJdcjxQ7u|F0{#%;u_hHu1uBv)scn0OBVX^1saLMFw3sj`Lxj+*T&S>Zya1Uvbou$ zJ;-ik&~dBKM7E0zy{h|3!g|sBcstyjuvWZ=5C&vb=S*y_wX%Vsh~!v* zGi~zBXjU)Cov>NmDVde^@UN4G5ryO+&{%axT|J@>9zt@zOlkySWYsMo!KiJV7Jp%_FHeeA_J{O7oFs<(c|(I zucbBiBXv}{Fd;zg{dthDK2jq<>zeDLOf^PnYuhvDQit#sb@F%8Gx$1FM|={+ zJsz;dIA4m?aavOYz~j!sb7mTXFuPgHGSOQT>>QCZx|(# z`gW;9F{h3@;<)jDbI=;#(UE|o)IP>`9(NTZ4@jApw?{mhDYB&Rlsm!7h&x_F5?hZ& z9jmahlU}1+iKxl$e-c^Tqi0RV4n!Q++>xWnkl)bijMde<7I{4@_qbw;!kV&6mU~!2 z`C24TNPA?pzPMU7a&F`QG3CJXU;GKQBUi=($uV|hr|6OW8h_NsNleWyPzg2HLZpo^ zM<}rM(X{un_0#EzL0AFnsT_qpi7xf1y{VKJ?XqyOlZCSG&0=HtFlC$j!ur^2B0aM* z)3d&IXp`R+NjA1nnSm}tq$F(!wVHw>yLm+Zle#0n9dY#A1@r8-DA5IGIs31%NWJMP zXcKI`Np91-PIu{#L`vG5O*c8}cOs*%t8hEvY#Rf2tzT1rf*Zox^pAKa>(x*GtQIM6 z*9Jfj1Aku`c_16ck-uxSH_ld5k{rmbr7={6&RdZadtQz;SJ37CYAs~hGu=Mq7H^wE zoCn!xQ2RCYIr_GXZ2Xb0o;R81H96&ShlaQ1+bAIh&E88}E$#=4TksOW9Lf`{`)sL` zf0{vqP37^;bTvES1}D)19hh7!Oz5Sc{x%4WS{uyo{sqZ9il*K89x{-)H&C!U-@&s5 zQ8HaUHx^LpdvaO^gn#$fFdULu{(n%_`c3f|ZI?{o!*})Ak*c)?0-fHFyL)puynf>& zw5$EYnFH|-i<8sUP7nFDPS)xN7?+C&kPax7$U0r?KRbCebFNO;_$n>85GnM}y<#C6 z{8usWd!HqivDpvNGVd?J1bvf}GljDEO)|Q6S(~^nTM=BJ{V%!#q9Z!uA~0*LZ!|4M zP%VzmaB+8@-2-%IFzV@hI|+7cntFR5CEK0-WklE>s+0>;+&Q!~Jp&B0)G?Jw{mmG- zW!?3mh>X0xQkm>SI%Ega{5B%9`)%k`F_o!KbU$e9(6}@bZ*_>3wnfEh?2iOOKQcX5 zb^eja1@Z}nSlcHQLYqrJ_#HMx;>=Y>f`Z62HeZa>eY`dD0%|hQXEhypP`=IY25sue?^BH%36!r@W^2S?uK+5OjIoGC#TN}xO z^mVp ztcm1WxoOaLI`_By+1?uQPvka+a39~@()@_(DGlLMgvsB*CuzG;F|*UpPeV=7;pY(A z_e%Z$S})z$&H|3N)_k5WAKAUmy_hz)Gj|8A-F4oc2zsKG;$CUVz)hFYjFAhO_#0zD zOWc#{ClTvc{ati(JKNOA(T-cv>6Vv7n7;M*AIvjptHt|0*k$czYM|s=tEf+@s0g zRb=AmlOqwn(PZ4J>G4u!Z*1i39}%h*3H%7Xaz3ocLDgf1fQ;+`i*LfYMawG>8QFxOjZVbE< zcD+4LNS=>2635ohQeOQzkre%mHJ1r>A{Bek7$wzgK&!uZTPab3diJkUvuHk(dfNw*yGn+)TzI(?Kc(@N`{64!?*i|yW_pl(_?(fy23 z6o&J=fHi;89!1uinF7AnT<@zg{3m}+f&~*Zt-GSUn!G^mTyVJ<$FTL&y;m{g&V>OG zcKqnLB)T#ln4Hc~yO`F-sHL@wi8{$utFnm(u^oY|%)XTt3+VZpUwfRd6lh6S_I9sL zFdbhiTqfR-%`062-44u{WaN?2T^TR=Cc5R}E$8{rTCP`r5fuc1%<=%rz@?exTBB%?P517N z3cs*ei%GS%2V0TskIq2QGtHU&7;TJy(QN8glYX2wcQ~m!6I#vt$&Tl>4#?)0@KL(D z)hkK*=iV~V*QcqQDM;M3?v;-; z-fq;3><0y1jcRM09LIGFA^}*a{e#*Z8hhw}sVtIfp+AF?HpMOwF~-mLEHYg^hG+^b z`+qVfIPXWF2pUSx4xmBm(;n#}g~~!oWwAo3SRQLB5DUes{gAG1K21uK^R`kyfi~$J z!O_#fc2`!HPnbgPtQR9MR1T7NK$r97%~Jbk!bM2^PLFViEWj5H9zESRQJI-!KEVWn z1&j|g8Dv$3?4a7=)aONvdh2=ItH=9J03j8&>Yt^}48c-+KDba-Q26gi_~HM7B|i@XTv< zxqQ?8sPXr~gpS2nrnKb4`8{GT>#-BwhzRb<8RO*^z0~M}iOIdqiH2#ujg@d;OYU9s z0qmbsMEhcsG1nD$P8IiuV}8?Qj1u{9%%39lgj4fe%$y+|!I7vLb|+Hy%8`}%};t=_+3ZPiN=*I_%6Y8`?)nfs z`C{XRCqLeG^H7u54ylJpPOw)Kmpt1n|0P0-0kpuNs>T_iAZk1VU#QG1tTVwqvQ}W- zIvMI{Fc|D;wjQal#Ed960b5!2u{rz`{422!<}O-0D#GxMj0WPCJ8t$TkqVi@I3N{Q zrId>4D5}za0Idoqw?*nXTHI0m5Z8qLiRrD69Rm3}*H5V@Vvc z#lpOjz77(9K7z!Fe;{|w+IbN%mfN#b#ad=+8RsC;=Ob}y*J*|MPG0JFw9SMbW!Lcy zI*iZ=H10S|>H0`mQHT5hvGUIY8+D=HLES*v zz`f%|3Bd7XZ=ZU2GkuSiXJ%qyz*9>l;Ht?Kt7ubZ3K{NiVGH{yW4^TfLw-GIT`a}e zO$+6=?`l(UR}gik5j?_1&UM9oXk|9Ew^G?9MYA{&)rB7KuEyvp&zTZ_$#xb_PaN~V zOVsDue!4DmS8LV}YuujE_Pnca2?(3D=a{3q@x635$A;jZ`^CpsLUCJ#OC$55SZ$Nr zxq{YYjy3>Niws$jMZrEI&etZ>{WJhfIJqN$)ntnA1_gm+eAd~N``&*D(lj!`ZODhq z9sCaJ$y~>(sVUg1H8U)C*h4|f@W`3F*bCES?eEalnYG~)+mEm@rpSj3Ue8Ap6f4NRp=0tsu32R&X#bc?_%L7;>;sKf5g$TNnU^9!2h`y;Hp`B3y`@ z-f&1aS;>7R!y=h}&wese^hJt-WWqo)?2=`@B6SxnNy%%aNx%EZd{lq5wW~3l) zd@^eX^`AdB=Qkn_SLdw8_R#)(UvJUVis=_%!8PuGu#Gz9M$7!ct#=@k^|-@caM*Va z`{7}Km~--+bLU(%XX%^`bDlKk1#@0J=e2X*GUq)lON?2$*8;V;8ThqMi{yKWRGf#^ z(v9uG2*@e42@a{%#~7{LCpKq-6k59`B6}EyA?v#en*0zUOcK0wR1<||K*Kfd>DL!I zt7=!phmmws^;084wjC@3?LS)1baEu@RnfV_vI+gBY(kh0EF{yHN%9U>`!=nLCI*Ny z>-@zvNCyw65i|eR%7$+F@ap~nXIPuq`_~a?%oe$C({?Za?itLk zri0ukD0rF8i+lL@KU4c4kwg$o(kRml;>$1jb1vWAAMIYmB$zj~ht|h8)!XT&l5!eK>M(K?Y5Y+XO; z4(I}j%1>++x1SVeV5oI}(2jz9srTLiBDsdH6T?U9uu5GnN@Llzo%tlntKnv=ZKH+x z7(Q4n7bb#i6ZX#C-)xu(5lZGw?Hxzc<`&`L12Yp72mNo_2nBx;jma3qz3k283W*XU zxZBmUzEIsGx?wtHSNfm)mxR)Km@H8h8gzaKElAGgzN1h?jd)1@o}7F3!ANSa79};! zUD0l@P%VvS6vjl2a#zY~Wz0Cg+H6;Y(5azX8yh#2P#Y!n0G0a1v?Ees8d5a0X-lAw zxHhpaqvdshkM5eOaz4ly__Ospdsip$tv*U*fd3oRk;$8q$gD zkEMTX(iVZ~#h;7*<`6)4pCUX-pmXCE+LnY>`R$weFn-+)Nu6-MZf?!c3;sJ=-Q*tl zin)}A9}VO^mb2F(x)w3&u-E}WljlMWjZSB|y2*}=Y?#|KM#IBr(VBT$3&#{DtGgf% zczYH&Xm_S2v<|3OjibpoXuDX1+*f6EpKrI7)U)YA)6Bx;=y<0Fq<=%^orb3-Seji7 zSb>@e$)8gsZqTCS*IG2?eT+8|2) zG~eK_V-XIvSBG~r5y~YjqJA(E^kW))AOJA4qBCxPM|&@3XUbmgFFLwhK>NU|%-*sy zJ^&}`fzcv@ci<9BV=C2*GIS7DtOM!aBNtn?xoylPU(wO_KtR{5Y_Ywc(e+IUXvjEP zO!&Lbwpbonv$@5L_eab+u68{c>1ZwV4BGZxxU@?mfh?I+C;#4^!L`pt7Eg0^Eh)_( z|HoMD9`9aaxtleKQM`C|XV+OBS$|WD>-=#C6^v8OS_4YicpsS_5kXoTc}=2xr>bab zKDK}CZSERYO=v+ZQa8D{wAqY*^$ultR!27n8Fh6lK>T6EJ0>xdVTnV#QEk?f~0+X;k6qTk#-Y1PI=EeUpMrxCr%?x)g^!A9;Gerg0#OA+=i%x$E zLP~C!si5^Hq8PIA2e2U&Oz5!74s|v}O}!FFIX4Js;H1;l<-+c2CYqt0+0F^#irC8l zy<9xg-3JV5-qdJo%4F(@Wb{ z*VmyRMPW(^aR)j(7Yz8cu{gH9lv)PZm(bx#|4zFFgxX$d;NT=%Z96ta@UcEidpcW8 zNEnhRN_fR|WMCQbky_nH-2Qg)0IukVJPf1rG>qe7ANunqY+%% zvp)!;`;_#xb=ykxW~MEeQhUlv->8;kRPo9SSB{YVrK9-l8ImYQA9i%97CyC z(F8SIB)mbf+SGm(lWw&54nhl)cZ|G%j_-~{QF~_6yoLWZ!U9t&l=h^FoSEh5<0AYw z4BE(9yna%oJp9ViSSiCgl_Q9Cs~ovw9wEI;t;U_R*FBNgZ-q`oU}{UV+=XkekHot7 zPwYkDd}*IX%BF7C=qmxiYoDbd>&9^RC}IulhDjk5WsvsM^e_IzJPg>t-o<-jp>jxE z++!g}`M;-w_>-AC#xCnmj)*54Ru6E1r*OVD4*H?!6#bn{@zKZ>aAtQh#it@~hJ!5X z?PQXVL@=|H@t=qUME334RXPA_VljmyZAu8wX-;73lp9XKZV6i_s6AqJU*v9Zy`A07 zXCjp{H>|$Cqj!Ekt!bw;7IQEQ%o!{-cmQ(LSR6SO%3XAJs*lqRL0Zeu9&|LCMuFwY zvBBx;N<_&EM}j9J&HiffddI}{FeUNm9MuL=y*ol{-SwMt7!(!k3r;1TE1T!9Dy$&9@v-1bPl88jBDAJqYG$qQqC#nkhY`L z!pqF?%aQ#79Xdp+_r;N_Bg*&Q2&jleTJ2E*Ni+W41E&n2wj=V!0xCrV^-)QDsf~wQO1N*VAZC6NCX#GKi<(rcX6sNUCS?*!B#-Fo8YVyH|5tk*F&={NI zO1%_eI+j`Jg)~R@6C-qx&uxR~3@qfS1sbx{7YU&=4s#)XvW2)0+yyKl&pP8xk@uAZ zy3UL4>HD4=k$ZSYlE(|uP+$XDklyR=&QZVqDPqnM)|B6OM1-$vBbVKQ1gBSX4ccmf|C7=BH?WfMxkr3blyPmm_D)mL-c9X)qTI>M(mxth$6)f8cs_V_>(wD_v8paSvzpOp5wY=nS;cVyxA<^A*g^Y6YoG5TeJP zGQgmXGt=m@)6+8?>zf!}m6YcCR)l=nP!Q4B+AG_sZ}iqSqSuWP8X@;!)-Q>y&NNeN zD=2)l)qjFD(0_>Fwh&K#&E{D4^~h~nW~WdmoW}kXeHGTOA05#cGxaZ{0*LdlC(9?o_q6L=w-kwn`=)sqaR? z|Mj#;=x7qrr^sPxSVl^f2apz^wPT|L6JnD;@VrPtCL@A*&tV81oAFV@qC2>J9+O$c z9kPmcSX^<@*IPp0VrFWpI5~RIeC1&o69WIv?GkrlS3i%yuG=BkTgwjQ;}BJX;|Qf= zw_8v9)qdjbXo$X?of6d|e>p=j;ps*J_G<-%x@ z?MvBl{$2&3r0ZtwAgzwoqt2$|*`hg0?c80MxsXRzKZ>peT-{iLq?9RU%I`Zrg}MCp zt$@0Jr|k^S>kE^my)%$G{BCwK6XO&rU*P{=T`7-2(veUzTL>(X2qN1=%z5o^BDNiu zDq4K>@63ggM@43^VvBEI3AP}#y|ybN=7nlnZovxHWNND;8lOsHl0q>h<}PLtZKY9S z#`>cpyhEA<0-&@YD$55QO*toWQ1J))8LV4^3fG4J@Ik*4!^!dD=pK{U+18C0saH9a z6OFX8wAX*X>f$o2BeO7#valMbyOdnA@bU0F-7hD)Z=)rx;y=ybO%k&j2<7RX(AE~j zLe*>wHzBFG83biu&&V#kgW31dvZh1xM0G8xg;uull~V@hfvvMLI=f!muN=&mxL9^| zgKpdx5%?`@;GRC>YiW5H$nOr3C0EXjjg7-T;%v(#`qVC=E8Cc0xKP?3%@p`>TkEea zpnylQS`62p{ROR9*G@9sFlr(Dp+Gi}_{NAXov~=E^yWQPm4R@kpb4le8cdCDim~Z)BY?rY1Zs(n} zyshWzzhzJKwdxl%JCRM)Z*MPerWIniZIRg*Q+}WwGLfExH1!YC@`P%pa%A$85Fgbr z0<=;Yavoi0)kI}g?sq~%qqX1tF=81)AV=-G=G$@9Dt8$}Sh)Vj1(Bq7HC}+SSOFW- zzW!#UGM`BZ8$*yQt2SSzjdBGx1+}_!)b9bLVg##+_LF7HmRvbk|%f)+?IMx`H-$dIN(i*Dvl}FoI_8;mGt7mPEWUfrRa$g5EX9#Mb^gg3e8P z8MwgW%<_zgv4FiX9Q>Byn(3(eEfFm+C)qh?-K!!BGp`#ZY0k>yk&=TORx^{9ieq_~ z_4$a=I~6D*+#y}E_P^wpXfqfi+HUrA^F4D9r~EnAAB%fFuB9v0w;v*)Egl(1jH`=* z8Eor4M7&tqbk?gQeiMC*T*#??;ShJSr0GtsjX;G|C}N*b{$~D%)^g-Z05nqfMT^69 z^_WPXb^;PUOxL$FpT>iqY@w{NLg9U-VP@8NFI|GnHnTi|YD+>7F;69kMAdBRPtFFfmWIc7i#V8>{0xG`ua} z2?A+g_FlRo29-wfZka{DF?ted5#{`)qhtInEnriY=+C2-iTS0S_k(9L}uE z0lQ|uL}F8mkIMSb?4YmHB8FaT9&}gJd!3ZVH}>zTspSo{qDe_HjS;nCx?dW>CObSa zB5bGd?o|y*fA;Z8z*=0E=vsM2;0;KJapFf-aWsQjZ+&LO55_`)jd5u*^zSlUxpzTt zq~)Sue$^JbY*g*ajD%MkX~mU!GTQYOn^r4QA+7-2!|jD5VkfMiH2EcOku-?-5I%+ z_n5kD8R7pv60@=Dz;qE|G{^|{;XfRGH!b&~O})F*^Qjc!f0Yo=`k9e11+_&>>3Azp zwcNR7K?OVJ1~7#; zK1?@cvh(^2d(jk|3*~T{wz2DP;f_th=M*NAKwo!3eF9|Wyc|zGk9wtSZ1BOB;i1J# zBUg+KaYkmH78|fjWnL|lnm}VPr6$l!<<$6L&I~%xc3V0|s?fC~oE*1Nou0x}(=Dn@ zYu@hP(cmK~W*$M`rytRM^pkdI1MJq8+*%WME~ym(N2=M>PL?do7IddSp*z+w)y~w1 zQT%3;OYNvPUsn?`2=q#My4XvX(cU0l+!{7qP!bfg=Jn8G(0y8NlBlVEqOZON#kan!6!&^?kI^_frKcn?I|iiI-$5etA$iUellS)va62 zqpk`eirTY3q9+BNA+js`iH94fl1FZZISPg^k5E_@ZrMJflt3H_*>!P5mKc5!G1;eg zVF`VUi`QXaJD@-8fc~(9FK>r2UN86l!XNL5 z&D^zc`6V~@99YnOU}4V>ZoQRLJcsC%47KlC*mFMqddClMy%l=MKhr|5!q147yjak4 zE(IH$FJk9mn6~~i_UUmu9ZMy87WORse&$f}{1>ldimaz$`GI$cd5S$ePwmKHc`0Yn zYI#&%%o2);NZghfX(g7B1 za6{*2Z^%5m+z?BLJ5;V%IkRh5af)wh=gcm-sK!(1OqH+{-5d|c;+`Xaco&|s@gKRL zEJ{CF>+De%i|tG3k9oPK`>GwF6E!bEvC9Ll+G}Z^I=U1I7xc`Pt3p}o75!=5+=V^& z-j%(W=Ad%~gU;DB&qSjDtO_{AW91rZXV3+SH9%sRrudO=^}(4Bh&h&N;`RQ*lys%^ zt!Ef@TXfX5)Z4EjBU5p${?^Oj|3VLC^bFhkxA)^Adk&k2_2$yL#HndqfH_c+@obv6 zC{=doFoumOfsFc_Y25Nt)6Ez3rP+PTgQ_y+(-omOb}n84dic)bRQIR}I#HB8oQ_7< z5ed9m0Jvf*Qu_w%Wagt*dl>LYS-VTlb47&(J@+d0sy&MKGaZyCumn*|Dofh90tNr& zgM-`G4)S5q}NTOd1b#ch{_a+GO~wxH*9r8&3Lnb2xf0_p0TnI7l-{845^xVt;`oA1*_ znd-FxYv60uH6El#8KMJu@d#54{)MzE6G0NWB$>nIi~2%*Nd^5+UE#y@cTRlF;t*u` z-K?q{QtRd6Gqm#yKe|!QyQ`y9XqwkORoo4wu6tjBt7uO5%mM792F@j0teLy7Tteh% z71HTKpI{1L@#l>r==?Nh6Cd7t_kFkC>XA$NmeC5a!sp|m21;VRZ#L;dx`=b7ElGrK^UYsQk6XF1e+xc}h;j0M zjXIrVWjCwVq;&Oh4iDX3JdiVwTCT z7WpJ=PZtr&6r<=KLuH_SJg~dUPs0V1tYMz@jQY`Z#!&yzmVCu$hR$`n6NOjD+XPnJ zL>K6lNY*M#qLF7d-#(GfOzDp25nO<)WIX|Xzb8AHZosVU6&kD#sCGK4i%mKDPwBbG z_p)2E=d=Z%Q1jo?Tum|%qWD6rd@-G!GEc7A&znwEbDZCZfIS%qL?eokJyR(*T}Nkn z_zb%oqS{ARu1Y^yPmj0Y#9{^rpwoOj0lLS~DPfH=dr>Gsc032j86$MMe(erADcfEr z5pnONC;O=okWUw8Z8CldxcWCRdkw_VEE6~K|GFU$!Xj`$Es6P zg>1Fs)JEyN)Sk{VeMI_ah-nn*(xJ-Kw8-e1?G49WTsW2Q$EZu`pOp+^Vyt|LI7z*Z zl=Rp;#sV>QM2798r}3LexO2o@!q91j3)ox+Cz0WeWr~Ff|KS9Rd6F(rU?UTr^ z(0Aj@$O=EK=BYAwkSMY@Xrvsi%-RS~p>Dl0g(h<)hiFRcL z*bhtXz+TDEpeVbabtkL*HNT77=@u)q8WUYa@#BYAbGQ*fvrrNeo8T9_x%zi#Yi7k9 zkn~pMtJ)z!X)7+hI-=`4)30%iHj$}aqYeM}4t&ni&TiPCS?k(af*}B%bL1-P`)IBf z3a~P4<6r0kH#P&;8*2B$b{O?)Z>Ed&YmjwQd@rB`>DRBP1@7Fw8SosR-pD9s3AH!S z8GiYozOlkymQfe>oS-D{ZaOxt)M@GC>__Q@gnn+SRLVGtA$7OVhJ;|`zyllaLLQex z9V`uaF|&99a`%`lU1r&-oGxPJ*}gqu)p6OoXrtDVgy$S9s#%9kI-&yG_DlLN!{qnT z*`_v3gc69D#v0!2m+3-3S}k}>`IcXP_Um*&X|=>nNX_wxQOk&c0lI{z+$N?{u;;O2 zxikSQ)%461$|&H!tKFj&0Bm)%sQ(n}`|RiG*$-!Z_fGjScBHPs<(+Tkl+7zc`wRU@ z%;~4lSuSf}IV@Hqs*>=dRXYnVF0% z_c1zJ(0<`kAdzZDjrY)r>p+EgwET@NfU4IvUQSo18jP5zBZNnvTC8W*aCUIxuJvp~ z6Z}AwtGVC3m`;yoGU3X8 zA`f&O9qGwX9L+oD$T?keE~PiDE*&V2btW2zR3nj$SuW$rB63IaO?%Sw3}(ql&R?XH zph>}iI+{p@y@^!VxRH)E`Uiqw5-a43>AAi$J%Yk{q$)(=c76fLn%)mhm%T9E6QwaU zO6rEfr;PpQ^q9?ydU~ycbAm4P3uA{;sch~D_Qw5~PEv4KUzi>pFHU(P@9dB1?W@^X z3^G|L!*?=0G_$ihU77~aLU>&q>N|RBp9S!5JCeK|{}JVHQSu+>=4i;ch zrdd01sJW;^wcpY_gCs1*1I&*U-Mcm@?xIBAysl8*wTVkSOu!N12%8_G&Fu!(b3tw~v`R(q4r0r;_o zX7=ud4&^-62k8JvuQB}C*gBBe>=6_&9aK}P@iLF>FfHC;Inr_nlrFoIKRP0WN`lAH zfF00Rot~;pRwf`~MK+*sI4}TAE?3aOZF&akG?xJ5|4>QjL3;8=)axr34w{%mVHYv$ zdraIBVL>*j2+e~3PG}CI%_d?ETi(A(>sL*WmnwVP3S9~Az^ci-0GsudP5qHh&HBPT z%xOHDF7=2eb4(yjuKfBldWPCMj5S0sITk0uH=BeCWXw7Oqa8Ad#InM0TK_Da!g$f! z)}B38~piHxGir z!xd^@Lxiq~9>Hj0Z5yIPnimlb3s^TDsY?D8Q?(Kq`><#dYZi{ry^tSeXR}Yp&iZ_9RVuu&p7QgB)RTgQ5AUw zd#S2-pXx)AxRAW}@-`&01mwg~7%E|+lj{XZj%Y@@^yg{(;Vc~}XZf0#U2juV(ut9b zfL$2?#T~lBju;d6(L6U+dQs0Dkv1Af`@b(te_x&L=NvJpxmPaGn{t)Jjmrw{{j@66 zSNLH}_5i(=EexQ*B98V%LYU0WxTH-U-i))AjeTHrzhGnIZV5MDJ{Z#E@E5sqj{g|# z9z~nu?$Ii9RIqLs4#oCWfw}q<>3FYqy%kc?rk*2r2#^B3?L=Bi-=c5Rcj&vw$K+7? zA0t$r^D=)gCb)z!*56MjAi8uv=&Z?0ah~=S@RWjRS0Guj0)ljp;uInu z5o2}NtvKxqXqTngBH`pS1{Z|+>UIPfCvhEUXZJK>LF9cKzov`XM`nT_0{4?b3EMBH zRWW+LfBf~Oa=8==)gPb<(}p<8_p?Es1{U4(D8DnE#?3J@RK(@`?619$PBtuFa9=bh ztGG38qM1i_N5N(t$v)g!UlxGdp>ce7EaQ#gf0YB=kHjOt2m7JT^8g($q53`^go>)XzbXmg<>!5iBOnQuKGt9FQZIy<8RtnOR z4hdgs9Har+0@2r7co5>PXjMwGaiv=cyH z;Gi+I1x}zqJjOn<25uOJVC&vmEbi%MrArCU7vUxa8i{c_>#fa`n(lGqTE%zUwJLFS zCcfF^9_zQ!MFU>!7O*_)xtD{Bjr8|)U05|QA8levt|u}-M91~*E0oGgO%hMSXXu%J z`Yq&}c3;_}mI8s^RK_qSp3J>sGo9>K-~7Reos}|&_aB6BQ~ZW?dc0HsRrpy~oZLM< zUR_mI8>!W`YdaB3l+Z0)>}}bnV)+`nhlyk!J2~S36rLIj!C))dl~do z{0D!i|6@MGKbR*ti6T~L_+obF`Og}X3cGRq@59=AataP)YVRcGL^2>vf3c^!)M%Na zLykxZ3=odHvam0tLv+KRf*OPyi39j_ld`Lf?AePVs_*H*|&T~!nFTGaxyT)HevwV3OUvo?^>=J*# zh!i(#zOPF&LnKW&->{6l;nS41@o9{4*^|s>KS%3U6{@hsSx(oX6b-gk?c2qksg$k# ziH`TW_p)H|N>LfnpBLi1RVBTh)c&0=&KNfENEx+TE>BqcR;=OX3n$K{m(w1#rGsY& zDXJb*MF7XP)gCty**h_zGrBWKvJ`_L1GrOn%^>8U2-^r;=G`+aPjOI0{d2H9s4Z?~ zxiY#3Qj;pk_2;0xfnTF1V&&mQdoJG2gn-Rzf`5%S(6O5edm+L@<%Z&*^UeO${dH0L z>pWHkY-px+mDgTMb2Vj~@Big;|H#U|%-T!U@NQ+H2$0G>pGY?b4itn0WTRCQVMys% zCOM{iyfTBp#?mDEt->b_+miYMX8(wrOLAO1aA+)`-9dHVT-fwpk@u41OS@WAYS!~p zG+02sgw|P+KMfuVWIlbXCad8A6F*U7J6+#)Vnb^=o}U8=Mn}PNz^3g~TA%$r4QESQ zMVP07Gi5@xdCEQ@b5OJmS#ng(t+;0BH0lnbcr!6QC|8 z;jBUz8Zu^5(ZGxDj?e{B6rMnfGNq6g=7mTwRojC$&oF@qNx6WYkXHKzC}jnIr6t=} ziY<@%*1>6{;#PL;f~{O;sGUbwHrEX`#;9;WMf&cE!U0rgl1L}rLYZC%k=GCK2(!`^ zu>42>{_X$g2#?RvzruD~6h!s*yd>|&2mP$;M|#ibbzK25FCZ4Zod}iJ(Hl0*l*``M z|L?}ryp2xwkPaCkEG*t3kzn;T)Grvt^?ap*V=kff=$!}_GLVG{fx*U=nbZ>&u~8&0 zLF_GbrwTF}GXfEd1!}e;W@#_aooO7%v2tD z2c5{eB`k%9+*-XTFim*X0Gl6FS_tYX23KKK5 zGix5dA|x%!i&;0p|6vkGurF2D6$^XSU@`_Q&J*%sG~bKa|$w` z1i?hL`y*<+b-+UzekDLbN$P{pq>~~V9`$T2qLVeXBVj5`a7^I-%iP2mYeYd}j44eO zT!vazeA4S)q02IqWbj|RccP@oB%39b34p@ZZl<%i=rzb{mhuS;;yY>FLMMTpc-2;| z$+&(X@!Z>Mi!o^>V2=n}V9I?ol`{zPXV-;+I7yfVP8fzPKXOMDusw|y^`Sa>X>@2D zMLxwZ7-;+Y;!F-r+_RF=Dr!@uUQ6sXuh3V(iY+_zag9&rR`77Sv_bI=0g6SKVBQTm z0)TIPSZbs+wHvHTvM~c0K!hzbR&0SUML3Wm7f9+cbP9FRg|v*uP+k%(dFC8Hr!Z&d z;pZN{0nrQ7oTiheDJE1Za)3Oc3=dG9R`I;ClU5pAZ)HzWt# zCyezi2!etnTx{Dl_f@(kd-)<-#4bM&@tD18F5NfiBvD_j-s^LiC(zkV3IeC*XVm+> z%(^E=>nso#uP_EtamobQ z+Q8cLZnQiwyb_^}l7IU~Ivao;ZKUdbMeo}b`!DWOXIMF5Yz6@%q0+lH-kuGoybz3>qUm%n9lP+))Jt6K_i0G{P zKFqRqNh+X#E}RxODi%c^IbtWwedO$m>g?O-qKvGYuf0G>P4YJYzhOZDIku56&v%4G ze4BBQr(dQeU&Tvl-Joa|-F|dd4*YV?v4&)+0fU{_8W{3KB;3gPXTM0d_(5P1=dElO zg#cnPDSWHhb^Iu>aK$aA(HIJPWDwUjW~6gC~++ej`)UoHuGJ zlr75rtPDvr`D`(jGt4IfaC$qQD8@fI&RO>~@+XINxYE91N~cB|nk0U@7tvX%G~Knf zB5j=3OjTy~rUF#`Z|D+JMmWvF3CM;p4^cq>f)?hsk!mvR8FcQZnaP8ko`WmP(2R8U z8M;)x@cf3=b(I1;cH`4B^=~|lE-;&y7|Lc-KONPfrJ84=yi^SVwMu@imrle_#Z-dD zd?vl@@Qenaoi9gR09cCfT9bxl45YaZzz_hOS9TPy`f0R2OVT5>Fb}HYlR{-*mmy>M zYEd(AbT$fVce3+vUHp6uV`|Z=y@alFC|oRfy!|5>HTUX%&BKrwTb42*^FS;2rFf<9 z+n7t>AP9c6S;@jq>u1nMg0zdxh^fb9OF}QK3Q$Tuv%Z!OQd87P)^X?$>~x6T}jM6qn%%bxCzf=QZmm(gs|N2B?FdqU;lH zH%KsPav^-<(4H|61^N)MBc$Vduxoa*%Qj&TyFGo)`e9W^Eh*z98Lqf$3Vdx=ZEba> zJO&fP>X}J)VVanLzoBcyjg&~6F~Q!zXYkHACz2&Zn7@>EKweH<50PN233WXT3P2{_ z2d+uMoQeN8Epg5N0;NXA$mDLWz9v^#pP}u8U}O(++Ug;tL(3iEbLw46xEzh$KT|*yKtLUai5<*o-17%rg}M@miqmylGvNj z+u8y+=!%-mW-v0x{@+naCVCSu?ewoU zr+k2p6$M>%0o&rDwwlf|L~v_qdVI)KOkIuK58RA-pTm*kr16=H80WM&Y3SUj7V{bReq4=y-*D*fIC6KSRpU!uL_gz~JNQvUM=#%|MgpzGzXw z&tjPvm;av5wbzZWbCfJ0Ywv^mx=`9*n6x@+IJaH@A49jw8g_XnLW3H&B8HUXl_c*+ zEzJB@xNv&DYZQR{!8jrK20y`_q6?84hW3NPCjgmD=cz74EQAwG6J zZ9JmJ0IW-Ejq7ZlC9CmMdWo8tQUq&ae-0>xM@t22(|Hu^tG>pSy>IA$cT4OrgE!OFvxzA-q) zQ)RGrF*-K@s?Du@H434J_=#kcMa`t{NI8@8y`v= z8~qfAH>oBo9D-FdE9B3<^{~f@wIh4}Nc_3?LWnYU`IJCr5-uH^(VR5~ruh@ew3)5( z1Nua}?Zr_Fi}|Ik@5@lW3-P{{se>lfh54jZC`6Ap{!->^vI$6zbj)V?9`+1ry_-ZO<8vo=H zU+=Yq%ULFFUPOLN#Uk-7BylC6U9%4&9N(4|ODl;1l8mLN@pIY`W^hNCjJYoN)%^|O z-cm*RA$q2wS;U1G@i+0k*$8-77LECz0<%}@sO>JpajFq1!bst>J;|QlVr`N~IERi& zc(+YDtj%+NTr8Q05<>dzIlrN!SN9LFIG!|5*rmTXLnFxloXWkK~v&gc(- zmqgjdJ2NRS+D(OVOifYs4YbaRoT((s5^;Q^nOJB+Gsg?0GU627Y>gmHTl37B8H(@C z6$(!{5(H(hI@JcIIIO2(g&<%u%Ul9t%E&6l4;11;YE@Y?i$6h|Q|iFGH%}MwVDSo; zGGv|(Q#;)$^j1dcx^!kx{b0u~rD;81Z9AQs)nt5FeF_;9zH7>fHG-6@GHUC^gRA*s zOau>N%nGCEtp{#a7*jIE66mNQ+luc@AYlJ_W{gQ&p&~-Hvk&BwZ~j}_yhi>NVcKSL z=DK6XuJL6$%UUE+7GrR_niNaMjcZZ$`Z4jXS}KgK#$Z1YB{N`qC|l)dm-<)e2?lc* z7_v(mo+eN$n2~Z)yp+J|?Az$+&Yc@cI6X$xpZ16!6C=%1Xw8;;sT3VF{yEgThhC6shGhcM9%n z6HYOgDr(m?rWweCSx_}}%f(-xmb-u9k9RnhVn*H>r9CPvsdRLgR@HGViMBeLajHIx zHdq}5I8YqRCl6qDF~hpmE!1=>_Vu^Ykzy>e_RrdbnV<~jo(Ric>4ar(Lf@vnl?vA| z=7Q5|DXSG|B8wD z3oS9wL5z(^+`eja5zW@QqkBSw8@uRP7~+L!L+A)tA`{mPz4fjk6cfTUi3?+y}qHM+RnLDiJ# za+6AGm(zfW0yan=VTlImgMHzk#>ADEQ8W$IlWAhe>E?Kn|sda_Vld&To+6pf95lBiwmC1In*f}nz=+b`- z6}jReN@Tzyp(;o1AJMuPxX;47gmFcJqxI07e~5L0kj@D%EL$B!wfcjZe(|#;ojQ}L zn@J1X;*+QGq6I0k)NHX4?;H{1L3)n#Ap22~aB$LQ@!ArF&6e33T0xo}ESgl3mn%H` z5S_}7Hzwfg3zMb2GiV#Zh6L7eA%*;<+jG>0c#2&B4|=DP`@g2;Ne32C$DBCY?IFY_ zWU=;nI-W(8#OjgwJ)R6pF#a&aPE2qR=Yzx4F|smE)mD$=VuS!Od2W1!F3vLHKopP% zGTif`4EJpE@dLE!P(3a&iU~{-gl#;9R)E$dAzl%3pe#i|7Xe(FUTy=tWDbOI4LEyK z3d58u>p*TobnSj>2WVk#I9QYG`IY1&lqzG1MV-OR>Vh0c;oBye%_oY9Q?LB(bfRxy z1zf89SN|%_)poRLKc(76#QycIE2yQjL>#2US9H z@#hx=9}=FbhQ+w60~q;Ty3iVi^veK-MBo#P<8M$m&380%SEzVsw|K;ViRhAE<;@&{+tic1=fPh=!Ls!lGlA7 zt~1PaZ#v{b%x{Kl0XXygA=)b4`W2lg56Y?-zKh|vepsVZOzBDPie*aU+v2c*FX`9Ew}*=m_q`d26O1) z??UycGUBnyMrn%J&?ArT5smQrTW-X&on$w3mT9uMrikz;iA>iZcAzM83-%w;o%DV> z-C0IbD_B+GCwiU=fiI$y-DK*a@zMlixsm7JLML$@4ELQD;GI}}Y|NuGxZ334WVJZS z^@)Ss~qqOqxP8o%qU04s%JKXgI#*41t(6Tmr54&^zfkh1SdpwU^Orm{~M#iJ*pLvTY&|gL%%Ks}pFEhQ=ZQsra zG=0Qx0<*0+Rf&A{ZaSD66I4f$jvW!A89^`QlxZ_Ar3><85}wQCE83?cQ8>|sqZc+H zF9Ru(O{Z&bXX`qOoC}mUzDIxGH#s?z=>wOmkcTuY=0j!3wN?u)lp(Ikw6c0yE}X+j zl5f*|Rxb6EWYX3yqb|p}!J=CYYS7c%*Z*kHU*U?OgzA6er&^`)3iJm&MvoG zLaXJtLLpmPMrZd`s}L}9ZvhOH=uCTgZiKIINZdvnL*kcDWnF&Z(V>JXD7}5iyBW;a zu6UE)C(|wIT%$6~<@8TpYln_3((bkeL%pf2_~=nt`OGRYO4ga;duD2DqAuYNgOht_ z5acQSBt*`xXFN2LHhaZL(MhjfP6OUXVpd!um<1q|LXh519i>XuC&w_&&Oi=^F(!#I zC#K$p!y%^rLRX`gG>>^+*&dNVgf;vfD&4~wMs%M2Cpso+G?MBov+ts3 zDC5V2Ce_Gu$XH@u$@o(kQ&U%au0I(Sa;B#tWK@OIng7;G8lR+j?Bx*!(1-iobP*SN zL1{`B;YU%zLJh(3(6pzcjLgo-U8o>jV%<=)0P+=uzd%17LkX>Y-umC_kEI3SRMzK~+mwqa;J@HW65V0;4(>rzTdOBsI{72|m?o$pAzAa4<9la4$4>FD*9%4FYe zcFSqrR^zuQIBOz1l{Kc?+b6MOb~Kruby3D(Q>Pd;>o515502qB&_?;Bc4(}OZVWB? z#k$AJ6DIECWo!-vGyog9;3CNKoH^f}^B}E`YajWvH@23pQ9DuBU=%h@yFO1xTd&rl zBp0|b4A(T&Lvc&HYEu(M+$EhJ#ZLqlR37O{)&4ls6)GmF!f&_N!Nfv~8_j-Yu&*wM-Oikd`SWBdYY>VRf*d2L0ZLr zJV}_D)l+L%oi?#U8c*~C5p<~jTRKq zpv`mUVnHZFV-ail$QWVPY9t8T+_I)$p))q_gL{!|XY`r|AzdfUMoN>bopvK8RQq#u zs=;wiceR|xQq1}hbVIg)MoT|ni#oe{ZCpenQ*5b~qtrpxY^h*7=V>lMvY}!S;O|sJ z&s*tOCS8zNN^EO4%<9E7k)<4BQ;bm#4-|!zSx)KOF+D1WSMZ`)l%ibIW_Vo29-(Fv z+hOu;FzJGvu=OWmSW>_n9ApJg`Z*y?o7>J5Q8{polk+vgQR4MVG|!mR#3+$uU;UU) zWfpJkET&mVYFo616tFQ% zjen-9uO{SPNJx#moeO>Trn0IJfXotNqtxha*6HrHQQcdrUHtMB&-_t7?sXUURz}C! zj?m2*DXj(Y3Zq(q1WmthEKHRE!NTI~-PQhsPEWHAyS5^rT5?es%9XIx|I&o2`Xvrw zsk1cbkryVtTLQrVV}-1TBqujermLVW*?@Agrh89 z8v!}tyTMcLf>BtU65Tsh<>=m3D3^B@M)xHDp}bC!g{3hGp+(Q-!S?IaK=*hLyX@xx)YX@0DGq^sraLXMrEHbyA{UALl z^&&_hT$BBKxF)w_VTC8Pu#R9djVl{PIt!!G?3d_xWtY5v&rC7NBX4B9X7I_Y0geH1mq=AsXjT=mzAjYf>m<()v;rglKd;Eg#j{Jxx@#Fw*RsX=U)x zEvAzD!GV3BJRpCb$&)irY|7Gnism8DurMJy6_55bWt&lhm&fo)3SjDcY2ZqlvjF^3-`(nU3Z&L-bSWsvDiPr_e7x zy-FOo=^cj2S7VyrSeQD9d*Etyq7fA6EXNv*M33nb5YLE4#wa{WFZQ%w;CPO@pRfJ8 ze-WV38JT8OO_(jCTqF}3_h8lJX?&554;W`8(U)seUKiA|c&=IRanXDyD$A9N#uaL1 z^1YADdhUJ5hMb_Q=(@XumIaZ>Nn_19G7Qu4@PCVH#K>HkRUvt&bnxIJyz zIf{yC5|Drz{Hq0s`-gon&VeP_X$Zz8V=di@;xQ1_tW_G@%g)2%T+C764CB*FiigOJ z@FL#2ak98^YIuKz<$-kW0M&TzKc6?^^K_a*G+W?HyG?;4aIYh!+C%M3=qhY_2euyU zV)?gU3x}n;%G2o-2d$H`ZU&)u)7cwmrs0Odlo@ZPK#&MN-=Y)xC-$y-%1mjWS`ZT6 z`dK=TWo_9OPb|IlDi`6NR843x?PPvV7n%*vTvNU#y2hpw+kvk~?FVtS3ChzhN% zlAao3yt&nLLdlyLfHNj|0sbMx)D*|y`-!^K9kEwGgtavCVW_=a&6`ys`cfL!{S6Kz z3^;1J130D}&afjk!0N6C2fE=fsvstyP)-Vhz671!s+zvT5*^-qaG()M@-uMq*ZaH`ffbAT)Dh=(0NIC2TvZ2evmK!OTJWMfiE*CozD1e z`EE031nuGP@@M=U&NZ;1uXn+MMa|CjPdL{k6ycJIl20Y&CcAh&osV;+LElZb@n*V+ zuNQK^NkMJ4nXl8;88m33jN~d)57H%AQjw#rJ>E-~392oIy%Q3s@ZA& z6D49(H~n?Uz5<(`HlkS~-|wO>%(bCn8r!gblLt;;L>UE4SmqLeyCv_y$oZPaSNl&| zfT=9Hs$66W2jl@C>wqZFaH6OlRY-KzbsUPAln}a%?qLt2UM5U2QJUD1*EA%bkzYnD z6FW*f@&86=b};boD2pbzBi&1rI??rir0tnoXhsVSFLRd^>YAB?iPTO=lR_3}@1bim zklGHx4z8nU$~O>8iBnNQ-S} zyc*L_Esd$&;Eh-iHth)(ra9<8)9pfbCOYISUB)}h1Vlzimkf~zl%vsPsyJGjNWv%c zzLulc>7rB`HM_|)_eiF${V!db-jmffnoSQI{_!BoJcFjRr@rjkURubLv1o3ba}s>T z{gL^tvb0%t!Le@j!?24)m$NE09xc-mLk7qt{*lfbDD5syOGI>&=0yKPr=>mamP_=F}p~;&@VTB}gL_UTlQGh;GB7 zVMaTbu*Qqf#4qDOjR?MZG^j(Z4?PdS!O-ky)Y|1>M+!*xBemF(G~z4+igTAQ%|8O` z@D`UxmB3cH$3R+6o-Ov)PtYwx3zRY~b*Nkj#k zq?Xq;bc~Is!w5~at^a3S$gnd)$T)#xq(KwMkVzq-{x({pwvZMYV2=`6-)NbVj0@3m z$<*>;jZ`i_mwv)4Uq1;0aGnY(Zt&rmyW;?v7_)T#GidInN(tIa;&z>&%k7GRb=jA` zWEQq9*H5Relty&HRJ(V)2)!L56PC|<8efRg<0>?H`t|I;(79Ie<{kTMC1QU4_w;xP z)x|fts=yEE1jlFKEmM0Z4XAxp6C5KHN6DCY)kkfSweC#4CDj1O>6pH~d*O7KOIG_s z<8IX3!LeDNbs#GuOt|Dy#H#f36~n`DsRO=8Q`i(`=ymjb`D%397X$Kr;g}(j7iAS| zzzR*>v6;KfkHQjpM=EZb5MQyfo=J}jWNYg+wz$#wY8tqxSeNR{AEle5fg=cVV2Uz? zGNn6|UbQIPYQ$d!EvVNH@d7!jk_DxY3Xmv5OIFR-myV-8IH%ebT_L$0Dr z&Fl<&QyP>UP=xd$R?y`_W9*})uoshc1!T9=`5bh_tvdyEb3YuX$MJ_v&sZG53N~Aj1wrnsSB8`c4dP084x4RO)n@=Tof(>bi9gr zWpCDpzjrfh_@<5vnK|Wh1QlWn`CuuH*^p&pE;I{uQ2DcJzJQq z`EvFIHz*TJ(>{plu$O9C_tdgeKj%<-#4r@?Ru9?!6W)~paA)O zb$=}K<>UO9XiUsU=xR_EYt)XAWWBiXok61#BTD1VbS#^+w1B_Wi5l;t0nDu^@NieS z7Z&B!*GG@=KKWDh+#jT^QXdl>D!2+nt?*s4qUH5dtI>%e>xshBdTWKfrzTr zQjvU+$%*~F_96bgKMXkgC~Y^;e-OxVAoYYr!~_Auvd3mzQ#t#l5Id%QvQcu!bRDd} zf{q7XMAm-4{2{X0_oBEf?8|I4FaZUut>Z8zD`LGg8B4VR6HRt%8uMsWoyZ{+4DwYk zK82pqO?KTv*Yl1b7u#+}`BSH&q28>d)W)VfTJo=;z9t!1A4t4s#t6U{F)@iF*WYnYi%5$zuH)?g0q;r&l5E=(J3NoWF1G53$`>$ zeROf`pRVlXhAZ9hxG=wLJd;j~=qi8&4Jnzuj~x}#k1T81ub)NRaeEKD&S|{iqwelU zq;-s-72c`NhELK3uE`x6jcd?im>8i;^c8uZiE^Id+XAnmJ)^`ATj__8A%Kd=qIfgn zD^4`l(~W`YwV9CJev%=Z4=$n2;Pg%iQXZSizy<^94u2#wCk`Aw9A-)3v+H;|PI=RnGKHMU!Sb%msk#RamTbf$sbCq(fgU z5MLb9;4iYsvyHNhUmbyx8K|BqEfpR3w;b(;{J@Ry*+Ps@RoL1l>Pa*OZ|-nTdCfU& z;o47^^i@Yor7by0nzFjH@%kHRfj7BqJX|5O>)+8jqbEWT4{8eXt5{CqJzYSQahrwi zokHQzMPk@DO+|>i&Kxs}VWz+&mgu`Mdu>Ji*y3*B+2{;Hr;va@Ih~645n9Oyj-3JP zzy(p6G9V>eZ@ek5&b-w)P-p&Vi5Nujp+vrY7a@Josht+PO0x|YvG}JQj^A$(|Msa< z@@hi+z@vEYlfKpsN-UNck_&Z(W< zQ~zIY-yLUHRqekrQ7KYv^pe7)PcoTFr%xJANFx)95xGoe?j)B?$!|(RP@hook{2I$Ed-!ttAJ$wy%heemH^**zFBTB2&En3k24o!5ygj zEPQ?-rWH^GP#wTE`3KZnfR)i}?1Vi#xt`6O8M1>D@19@k#j~15NxYff8I-Axyc|pu zeWO{7x`$k&{vu@0J@QO3Yq!ecs8txq`+mLH+hMjI(L{ZcR12HTIDQD7V>!5dJHQ-TvJ(hd+SA)#h2OPqLfq*B83tI&`ly45qVrx^xpk?XcU?3 z1*^mz1X|C*tRkbbjOHZrp(PG+Xo{L(Dw=0ADF-ZB0!>KvGP=AUw(M`6=CffD?;b%W zAA96ECnc_BbJ_KB5c&$a3*xt(6b-q9p6_Z(e8G2s7P*oFvkBSbl^x7pw+@HbH#{`Z zGCHL6D4Ui}=*_}HH>*l4y;%Z3gyf#FVjvAfdZlkQVHAKGYBrtbc!^4W8~?rJv*%p4 z>RTk1A9YsgkvMPTB)YzlK|+j`LFLtrjJaBNBFC4Q5ONamBnx!LlB6pFxmpWt3=k*6 zCMw`PMu>mPtLZ+6wh6-cnIG_G=V)?l)R^zgT4#ppUAEYs)vRFbEMJ$mXr%z2?*!9% zW1V+@SM0hMubJu_JsI4?-s*{Th|$3V=ZtRpORTbn5?gC&Sru3Hy;<(bYBs?=ZRmij zS*fRMXZLO}P%i5pT!uU{guM)?)G5oa4%1=6W3(-Gx$;jV;jdB9rwjhP{Fte2dMllr zT>Lh6g^7E=#)KYZ1(LeSw_)5(8`lWSmq6zhhL~6g(gl3ggP3IiYsjyr{(bstBBJbB zbTNHo(uGY&Hr+D$U^-UR3j;;uZZ?%qh3?pL4&`ss`U^Io@Fx447{`(Ea8b)*q+Er}SJUjN~4JI{NlCJwA+7%)r2wxs5r(!yctiCWLmn9r5 zl!(fAC#!%y{c;G?KSsK7EV!_0ZDcoBCaqDln46bx2N56Y?;d8B2S!8T;*Go9QwRV= z>ha-G@j`XvmLV{V#_<(CwLL&>Q3NH~>mH&hOq&y_Ct(;1{ixNFh(B$)&4x#v6r>BO zFI!R~@{H$^2aD{+Sm6McPd{{k`2#__1+Qq3cR~xG}LS$@^S>bx?sO`SQ*^!7uFf) ztp8B|wVUCW@0T3V`t(X%svn_4w?cPdvNRZq^P`M>sAZB1>(``LeLcb{d!fCOoRnsd znPeb>+oCji96rkk0cD_G8+BfloGDMxa6M%}ghVhWIF9_}sRvw@8RDZIUBOtQ#1YOU2E;EXtbDP8a6!1$yvhW2PFjchUn zGV~n&;bm=O8A&wKj*Nd5ZSp7#2uGlFj=+L{3N)oy&|pb!C{&>51uCF_nUxr6ex942 zg9qU1+o%*MW0bq`1*tr|3DMrs%Qylx(h{n%X%@8`PCeDNMiiZTXvnI@c_>w*`D}z< zY4loZ2%6ARQ`StGFvi6A5^)%Nx-DMDsDMj#gaX^fh9hxx4w&VV(aRFoi4R2-b7wm` z$1a-Y92UeG$TdS;D8{%JruwG0(n-1zrX3&~K}f#J~}H%6%%oi)bnywR4Ir(SLCN@XPEatpUk@SBnD^sEuAXl{GOtd zSC=>!2u?8&&-4_9=K>4Vv#SefGFtGI_n_P$r-2g+bw3RTS98A>9PGupDOn>suI$B@ zC5V*Da-r>_TI5-Z$$T($we%>(yP3`mjyIyF&o3eyPZ*T)0r%$b|=9;9^w-RyXK4d*|t6$~6#x5vi!;bNa ziPW%oo{JXonj}<*HPpF7N*d?Zue}o7C2D)z*aa|&Q<>+Cxj5I2G(3WTq01%j28*xf zJvvHx9H5&a#;EV|?FOIwCI9}B%&y_CgWfAa9#181N>3| z9;$(;&7JhzbPvWdwJh94-syzsnKGc(%gbvcH`uD0d>x?NFBjwd&(hQK1@Yp3mSgRc zyvEG>L5xLiie4nB9+Y&mx12Ay`AO+@M0l%~}oC zW2!2@kzk7L$nP+?L&_9@H@E30u@qCz_D~cm%H*nvsGWjkDqqA4b;VBPqFIy4Mbil1 zm^0Wx)ZyfS0jqFL_MLBFSz?HvqKer}x!wc@hr!fl-asFO2U36Len*%Mvk3RL@lO|8 zUe>2n^2xqD0AC=HK1oNV;eO4QQA)HCwVUbe{SbGu(;DYIxi+kXG^Me@Ox<~HJt&J5 ztnX@MUuF~z6JpfRXHv7W^Es4%O&fzdn2&7%L>;i{JEXV%5js7CbP<}Urxc|l3WS5` zWCz<8CP=Tt zhiRTS+qfN`ip;Z$jVkq*_j_94%~OyfjrIFHL|rD`1i$8>FLAqN2vSzGTP9UYft|k- za>@uKFg-hHBr?l^fqJ|x{4u-pOS%i<&scvKcW0;SV_S9oJ`ZO5l=hC>=Qr8q^>!Cl zpFM83C$dxZvLd(s@}3N)Di%7%N72XWu&&MLs;@ETFs_aL*}?jT3k@LD1KD+#*j=*z zy6?;Ok&>kK`#hRmUTJTkbN#qe-9ugbC6mi*WL|wI;FPIMx5=HqC)fp-1*^Y{N3y%< zEf!X@A+>(D$5L&JBwQRxG%MAkz=G@tcjPm1tQy=$*lab7@>AMonk++B(H(|4GwTH5AbzbVg~>x7^;fv%>A`=Zgkbkp%WV5tB7m? zD~!BhiRHsxx(L3GE~=FmTzNaHvO*Ce`7i6X{>7Et{4F$xn}cgd1-ZKIW%Rd_XuRsT z)REst3*3mEU~J3jsc_1L40%19X`V&|1noof+Cl76Jv&L%wG!;jE^lSbceSSWs@7vL zL-n<^B>jo?WmXYYw<}{)^>wtgV{~-5w0&%}2#XW~4K=Y}uvQ~sn5}W&$^*10wTfF? zbt4@gr0FbE*}R1#;WAO=1dDq+%@ZY6-k3(*IhTWu4&oL4n5G-n)2uV-$^O)6_}grq zIvFEu-NucPB048AMA%^}clbWdjwNHrY5fB_$rs-|aLAQ_&p3v?i+AV7&V>U`<97Gb ztP~v*NzZL8Jf{p=JCLTNjlG!#)ud7NHSkR56O(wEwB)Zlq|^FU?)*v7=$yu{c2l^q z8ZjStk!Ki4@o#jzaUafG?LIeI;~EGbQ3T_$UV%V^D1dY~P|>2%%VL z09}aYwOMqWQI3QS_!yx*IcDXiRp)xE*ZzEZwJPkp)`-4~gZmtK9EW+d?H=r3XV+^L^okihrI4mTqp zX~AZ;thYfTVI#S;HNrt8N%@qq;%uam#maX6!DXlsbS2^s7m$cFlwH+mu}ZQ^G_0uY zE<7nwbt+2@c zV3wkclC!GbY@h?migTB*(vjW*4cZ(Ck9caDJZq(oC9leMI0MVnIag3#y&8fIyN3Ek^V;asQ$&gyaLI!^_~`kNa-P#xWvY5; zW>U6jOR-;!$dOetZK?Ir66d&*@{cYQWl!8FiR#wpr}jEp?){wlUyswB(WiC=wFf~C zjr6+`kKWMGZfDiu-n?arlu~;=wfaFIjm-51THuA0G}7lPYBzj>J~C^PvQydK*6~RB zpLfvg)CJXTD%@a-cZ!kKt0V-_mPc{h^LZsh3ybkVnl2WrvN0ghz~&CPf;>V=4O;OQ&R zrxWb-c}<>yCdQH;X`+JK(b$Dw)F9jigQRj0HD@(6VM|%rAvD`g>pE(Ltwol50nHHm zpZipWO=Ss(!qCQ+T5cNIkhD1rliR4D;_#kQPch&b73wTYRES#Kg75CULKEyz@@%jK zT>CA`$0X)RZxMo&*21n%fr|G3O^dt|Wx*^d<|nd}(2r+RyK72pq#t_%)efQ7Aa{Y= zIrD@G^+4K!6VoavL2D$L2Dtu?x-=$kavb^pFQ_sT6k!QRRn&i4U>aww2-3>>hxP!DC~AOuM&TxiEx zVea&@d#>S=tg-&qk!NU%8mn?vDVMO!+Zoy2-@VUp8j)o_c=;z82mVS+nyx*67%2`R0*55u|oD(lupTpgw(m;++`-sTZj59 zxJhRX4~^~i;2h_x-b8avj{r#V4sWEB)N$EewY;L~bIeewJeS%fN6(qXu=mr zQSyg$`kJ+@{Dd#4D587;_kOm-boM8PyPlW-=nqa_m z_JGp}hed4`tadpo^11X<*g)2II?N!6%_1uO>)shiD7Z8wZ5$a<8qJ55CYSxzy>>v! zk0yJ&hb2%!taf$gR=A(Z)|H*zK^>!TVadAEH?ugM(v!5`oAP~=Db;5L_&NOdV{-u*hw-rNoP!ifsJ)-t$KIMGwFdZGL< zE%Wv-ky^nVUXv6=>oT1s$#J8d*U%~6usgOF+LkX|w9s3#?9gkL&c2qGdS4Lb)JWeu z*_ow^Y)wuISa;1r$gHs?japE9;9saU$=lU%r@v;b`LZbl;<7D&a?^90x|_DgTNr!) z;ghbO^y^9YPx@Qa5lz#YW;HEs+Sv4xrmLIY+Vr8Oo0>jDi&v>CEX9O&4-m4Wh;j33 z5ifjcT-N4m*ZDS7YA~fW=>MvmzHH%NwqU* z9uwH$b&#Pg=`~V^VLUd{QvXBv$j5pM<=#Lo$Q|L7KXcDtdZqB!oA^!m3arvBjN`Vw zgXWsHjotEZ(1JDnp)y6e4!oY4${~RxKgs2v(wy8rzNJ@4!*z*C8h&VYBpb zfLcgxn+A)UhPUn=!lzN2_SOXfA7#SxwyKZhcWDtH?%JXLUZ^T1Jjm@LQ`z)!*7-|N z^Gy&*G%d4-^~zu63~=RPynX`6EHh{UsbB302_N}mTDWQm z`91@LkUsXz96BxJr}j5ml1vpli};M9F{}NEUr_NXi`#STq{1guj-}a=EN&j2$O#Io zP=1u==Z2)YsO5BdoSL&~Fmqb|fm${WA=TbKWV1s#UT+O{!_ol70@Zp5KkiJ@%bcMf zqxpXFC%2s(dqB+JN6S|48|)q^^*F@<+-|Z*%MF)`7Df3sl)pu@a%eN7tWtGwb+U`f zBQzfpYO$U>uJcW9>11l(QWQNIOBkuQfTeRG>{QzRe>6*-qxR(Sg#u`8Jd8Y&Lwoav zx`gJMn2$_N2Ny=pXeG3_Avh9WW2sNLo3%ZE9$y4kcjdQOS!PJ49ar!sZSBO(Do#ym~OA@lHcK63+yKs6LqKD3K zhA_!$MkhE(AK2n_4<^-Vj}tDH0{~gU4r=v%aRdHFu8n15tZw0RG*^Y@5Zh9=q`i|R z2r;(41{dGY%NZW6G}gg8n)Gcjo(-MBl8 ztS`kWWpzKzb(v5derIsoa)|t$S2C6VHZ9g}47WzR%KPv?bb_}k-n&JRg~)+*1*67? zY5vx2qD&9k=IPqcrnary+Ba+)311%tFC-4u@ye*3e4XSuSx;x+97n;p`s7NMWgXaB zCAG|Egm(<}n#azvCM?iYe@@FqsoXKba;??Rc}o{)CYopW#jH#NEUhDVp!=6Y141Y6 zT1GAsntK>cGyIM?2ze9Arqx0CCf`Fd%zlJ&aUy}pBBbfdXg)~IUhtRf z!k=+f5uiC+wruRXX)cWVIL4lUHpiVk-cZkuAUX_&f!YzCLyLj}G1+}4qLb?qdA(v! z6m10TL5!^N2bb&qIa;VF0inIGw8K_%aAy|WvoySwqdqIgK^*X$7r~NQlykYH8@I;~sWq4`IN1a^t!AD(X|~!gkbBL^EaA>3C#|}?KU1r9o9XU{)^*fN zhZuGeedV9vFqEn4?6wrhndl+aaetE2ehl`FjWGAw3;xVrWw)EG%6&PSZ7X?qN-%zI zS$|#$7Ws_9MULCycva||M9t3rJDGO5vq>kt>6g=VZkc-S=d^n*>-aNO!h)vRIfear z6*7Hi?US-yF%xl<%9DsVk0fDt$Cn=5NVr=I9A=}CqJ1Iag3|(|LAR|4wH7AOI6O+P z^J!L2*t7ADFl3V%kIMbbwIpRh+zABT`_;CjQmAWE;=@DnkXfSAkB}X=x8P*;UEskG zA?+QP>^nCYae_&7~lU)&SMQ^|J4RxIEfq{S=;PK@Ue#^D=K3}osWx!cKMSETD5 z)RrlC?DmuuTDIKaiQLmJT9$OP?^5(MGo8(8Zb7U+P@F|Ygj)>`W*#${Ry1gp*V0T! zrd7c@#2F=Xm*RA`5B4FiSqTnVW?($7drH|?T_;dG4xV*hOTei)i?|8`axidY6*}O{ z(AsQHu0x&~NvQ1WRbU1emC2$R9E0w058$zK<66)G&K=g1=aZvOF)wFyO%wtk&b+6n z(Bo_tQQLO;mimNik+r`8hT<%t%4zxvn#YGN+Z@j+L(E`%brtmuak7e6(tL)9@rNA` zFyb@wZ#p<%|Cqi(fgvs7(#l%|A3P2$UQJUSQ0L;tWpuI{;M{2C74f))Y;9!hbYmW1I@-kdPFHA=C zmbhP|_0yJQv{fumiO=-^ecW9%Tk9ISaFG?pAFNHZS^%LBkY>&ti5Z^4T}nSDHLBO$ zPV+g`y(2B8=`JBIYrPqsDkeZLc2|8NMr^^A6HtxUbcqMH*{>)<$c*3dbeu^==Pt)! z3L2E}qNNe;$vX+}^15u(C+W0E-*M@N8A831K9Mme%Z*U22u#k0(IQ$!7ty=v19TnT zOt;b(=??lH-AVtLbYQ$ETdHXaJ%gT!ifsqbQrbnYrK{*J`W5|}?xuU_H*_!ENB7eM z^dS9~9-@cocl3LDg#JK}(qr^E{c+Od_{d@eKZK5?W|~Q}Xf`dQ<811^^aaTK zZgzYZ+=4v%&R;`QT`4`M)thNaCWofmP(YNL0a(od{qa7nymB}#D3f5Bn1BWKcKF8?_aI}MyD>pa6+*1Hqq>ciAE2fByJ1T0 z=W%*7;Sl{7MY@7u!~-2A zGu5-;h+vJUqZ|$&2%bt4OdHi_J_}|D^8;)8AQ+)obxb?u_Z6ys04$bcBcnqDmOSRD z68&r%f1{;Nrd;<7WRI&bnEqYmT||X=(~5pJOuMyp|ugPXJ9&sLlvL-e?0{z)mzo z)iG+$QIzmyG}5n_XP!qb>$-;>Wt58%N_EpLN_>B6O;Fva`Q4jcanGpVVZ~wntLpYu zP_Au73KzeiWiXX}$Q=umO!*X|;8~Re9@f{g$fSBR5ZRt2vptu??1ItdHLAg27MUie z@sk{!XmXTUVKXLX={gwQYJW(VA)Hdq$bUpLL&54bdk{&lQKJ?nP7_&W4*pz8;v0;u z4@M9*t5m4=0Z={$V+fj@eggb!kWv9K5EXbZp~CbrB;PX}TFwO8?g_x&2WOUYC?F+B z_)*x$jqX9z4!JCY-q;bOW zggY{6Q6n0g)(}Mn7)%3e*TP{26nDh>&zlmkE7y242^Rb9G{8_@?Ki{+K^<8a4C4&4 zo=){=*t)im0eAig>J+|_+LQX?4cbol{Hq^z`ZZ|nkbXBr_T9F$Ffrh5jt??1;B7)& z*f7ZGh$-zDz}*$F8Ko-kq7#_a3wU_-%WMA{q@V`7z~nr~*;ddi)0G%j|DMr($YYy$ zsl1I&_Jm)f>j_j*GQ8JP^-(C&1uq(>lvl_iMY^&@t9miAh@LgvJurgf9pT5&gMD~i zMv~~5c_2jGGfyV>u43A)1(_K5lZ5xiWAOzzsU}8q;R=&cy_}Y&z4Mdw#yh_fVj4(i z9ECiJZ~Z*hNTO7hGsHW-fgnh^8H?D?9`k$I>d<#dDs>Ufjy*;KcUPCJf&YC7Cny#B zeYaj|>&bs&oBp`wM*)}_+7cS?9j&=m?89*|ElRk~Qh)Y&RU9ya1n2$~?Fk#`QO$2D z;`caF;2zZXVa%_wD6I`k-!&bVvQ*M!R=Ky06;UaQAa*b;g~O_u_SDu6qx5^girH7I8# z#*XTLAxDDw+a1|?0B=SL;>1NmD=gr;vf9amt@efr&zM(V% zjZe?cc+{yg%SVxV!e3WpJ;Df=Z=w@7BeRmvhYI40Z-*TE0Q&@3aeq8P_()o&oLU^% zt$}{s@O8o#-%3mM&wvIA@v7VRvvguAb;TiCnU1UqY!$VyOCDG%b7@9GmtyLl6xfy7 z+EfxY#;8b&FO{iiI@a5}6ZFP{GqM6kl*$}1&sJNcfjbP6s6U8+CTYyJI@JLD4snQP z2*eBZ#1!peS8)b=DD7$F;P`pi;h6<9$z*?@J_!1}G|*G#d>A%Af5WOvbWc+7Qk8$z zW00JzdvFL+OLu=l6T-&Ks8(Nu{GXTXs;^TJtN9Gh|0%-L>f$J3sxlW@=NC!gd{7f^ z*>LKL3!whfp~bA@ox3ycd1=B`^E`)plBFKa$=Mt^Pu`lat*GRyTVR9Du~&p$WcVqm z>MMD;!=?g?7vSW)!E+Zb&5z40TzJuNXkGZ+Ok+s1%OjwZC7|pNm;jp}Fb)H2-*2W)GA6B{cZ=?llOP3aVCt_CpKD!6x`g!sTW3BVDi%(FiuHIIC z_n<2~(C-Fse{ls9;19xOKuq1XS4`Ixc77iBy%up=LqmfdJ0c*qgg&!rP3&s!gEPly;M;n^yvgk2?Rq@lpH zvKrdkjHh*gHfj<+kLGi#^@#-7e}QJgnQ`3I8+=@v9L*c5^!i%GXKa3+LEUzXt;#O%-WEod;!#FwZgPpWaR zrQndpg8Vm4MUNzEJZz;Fj_-3Ixda}@gc2Q(seA1@nj5SjI8klSY*y_{uto-|75Q#) zJT!N_h>ph`!5gKcGQQRjYG+!A={Gc2<{3T2P*8g}EpxkjC?K=cGnu@HW{Cs={zx9o zP=eQm3b>#ZFmMegQJeQiXa?4z6Iw=|4#)qJw(YMV2Vg{tYM0!kTsujd;asK@dYZzzq zA4L#ey0Zx5<3RlmT8JzS#T}6Kdd83+4AFjrqj6&C^tv9f8{7j=ie7zT$L;W8WOlHy z!vkOJ_8(jwT5iETxL%6UrqV_P6awm>$r0z=7=65JccabfjUDX^7cR;h<_3ZKmh*vD zel165yWgR6%w2CVklBW>HJ{(b=c&POd`m6K5cT;^coL}4k>ho2zWPau)VNbU-e!^) zsW)THR9=rUri^lfdSg5{MHe5P#&^>cbDvr95H@1Kmmjk6+$_KLW*fRPn6MYsm(nZ+ zTj*)yH8vZ&j9QchWXVvhC-t-ttk=H?*`35H9f?VoQ&cFIiFW!wY1$p8PH<2emMt znK4pJ|7C@Y&u-2TB7B_^TR|k1Z{7+{r!&1zohvsiZeLv3Su6~X`aW&-RYj{)?@xs&)OA1dbtb8Q)UgS-_hi`(Fa>!V#hH+g5EBs zc5g*7D_CYGaUrdKo91~P>#a?D{12`3?h~?T7Iuw?tgODarV9==-%;S?n}T~UjEr}Q zUqU6M$aTi+q{X@;<*D&jHw=tBkYPm5HR(D&IKG*icg%{LY9|s_bzKb2Ul1u+uRxsD?wdHeXVS5fxhXgmU zNRx!Qh66{0>|U*_fo}QzG^bv!s;rU!L)6~U*H^j}7?}XWoj|UJFWE4=TP13Z)YH(5 zq{5QlNw#zX%~;osV$;QuqBR3}pms!@N7S`ABIUEptYV-TP`-;qPo=@`VJ>Pm(ulL5 zsHrRei70Z3Dhd~nTG0(TZq9Xc7DB~hi@G@@EDu$;c868BJkqF>e2#mJF_u z@FH1?BXr7Yen&0vE`*w3mwifNq)^tRZba3WAeF#M*E?*S4wdVn_^2y~rMgW`CMUw! zt5F_oY;-5?D$L`t45W#c!}to^i>l9_wJYjrAUiQ$S4zTFGY`7pL4kcsL(Fya(jlo& z*rR}GCim_s*0AI*nyu=e==gkVjarQUNGH9pxP7>|cf9-cBu&?b`6G&6;t6UM%R!?? zAin42uh8jyES(668r|Oz*MsRy9wV)B31XN8!DgYmPZ&Zm1J1{L1@iSqzY!9&$4tBlB&l0vtZjT_H`rL^{gTcg_4UoubiZGV+^dV zWu4vNXg3n;_^hK{m%jt!gT?$}?KWz|M?g_3)#V(Q=L~C}iC#K0PmdU&pWEMRAvMLo z4w}BHAHss=?z}^h)vKEO6=3xmi<1-lVpd8?mfDF&z=d(Gj_PyZ+{WJLa?33l_a@a> zStG)JLete(9mCc0p#K??T=1xofmnT9{y80IN|Csr(V2wq{0OOXY|fb|D4e!GM51oK zhne7tx<@U~#HUQhSX5GgS|Hj!N_K9dW=S=?N~HII&yr4h5#LP99fM!M!%0hv z!A?WIfbV8{a~^d#KQ~yA%jsdt?w(I8%#Wh+4t!AZ*C9mt0y;&(sstNMV?FprsQM3S z#`(qKE@o>z@X9?+xDh7Km1AhiIb+@6&H6a)w@U!z+|~Pn729w~-e30NFp$Tgf$dT= zRceDd*z8RyaLHpI4$Uo!nhFWRXU{~bA6O&UnMLFf>@LOt+ANkP5#-l2=8<~^YjQ+u z(b;^R&e9|fCM>$%@Z#f}(KOiO6rIRV49<4C*l$ZO++ddLW;Qy?#c*QIXbr?TUhMhl(w z$GZsf0_gO%VBl$j*ouah2(7C?u6!!#E_;$hUSv;C;A0@A; zTzy}5NgxR0?D_#D?F4_zmH&)^IsWkJLuqZ$thOvaNVCsJidqr>y=`Z;fWnAW|DD=a zj|~j$%jeIt{h0BqzJk@~m+Uy|*mv%NLt$)eeCnHyt)c^F)^6@D`8QXdfiz3%?s2W^oYqQQxJ7WTwZoTaa0F@u3DWW3ymV}N)0i=YZV}IK zZ&(pn+J=UfHe_g#ocBrEjFCnk!FELLn&{hzKST2TFl$P4D*S#9Z|UVbkGnDLprDm$+y-#tyi zQ+t4pTV3jdZ+%{a`)M(QBS-wvtK#OJ08VM`_}cqvdD1h$WLZK^Z^L81kCr6;eI%;a zS?s5^_i{kj$k5nuPb5rJx(A}7EL`*u-$*;>Y&+grWWFzh&oVQsRwo2(ytjycUqKp$ zNp$e)BI-1=60{e8H{rkY@c)BOYkC>}cMQ=pZX-JQ0Oa7CP4t2b@zZLe6UT^}cM;7! zoZxcI&FQcn(XNkiND$&Dh!(z=4jw3u?i}g`ndv9G<8Ychj1NsMi|HWn_5J$$A+EF!sV|6FFKVDMULSiq!~fx93JDq HzjgmF&P>Y* literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1244022644.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1244022644.index new file mode 100644 index 0000000000000000000000000000000000000000..7f9233571146582b69f267a22b537306afd3da5f GIT binary patch literal 4249 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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1538849528.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1538849528.index new file mode 100644 index 0000000000000000000000000000000000000000..1b612ed731db3f882cb21f1b3d0fa76a9f2b3f10 GIT binary patch literal 28682 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 G|MouuTu4j+ literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1645669158.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1645669158.index new file mode 100644 index 0000000000000000000000000000000000000000..789d99ba4441790b2644d41da5d5bdaa5fb6b3ca GIT binary patch literal 3010 zcmbVO&2A$_5H836cAV@&vJodXtOZ$V@od5Y2~JttVU4^_6z>M4%^o^-+nMZmdeq&H zV#ER7gs0$95J#>Yc>vo~SNBYQY$Cvt?WykSudBZL8~Cu*X*9ooe9}DbwhlXwcWb+Q zUjmfBfbEcL?}A-2Z^%Ymd1LJd-U*k=7h$azFr_x~P>F)^&<~Y&Wd1+NL9Q)WpG$m7 zDFDbp{?Z;n0bqyDRS~&rkgJ4THON&5R3)HrKA+E^WY^lh(kM@%7>FJV8tt~C?PA0v z4|T(rBxW1U7jM47OIB9W`1=eh13&Dy{WHnr#M>pE_1;*TGq2AjXMOLv#W`oH!>=@n zQ&=M#n^&5LedX<;$`m$etu=}QKEmT_Kb*Log5)D{$q9c7Wi>uiTKeJ8ZI=V2qi)D@ z8kmzdMzz=wA94+c|CsslZSNy*UjosWkNwNohh zcp=k5y8R;F*1^PaVwUy$PV*u1{Ypsg+=v0U@IYOl*;kqfvx!8uT0}|5_TG ztPuqkMQDe&>pXujVv&nD-EE_uQ~nR}iM$qXj@u43XV`R5MJ@KFWR@A^Vj$!Vh_WC0 zy3WSR1`Bhuho&-<`PTgcWk{8z8B|n{g*L>oLd91}Ox*P*PTeuagU%*#T1d7aa3NTY zq`-)(Z<%!0mIEvflP)ofcnuZ=?_nS&&a*9ozfN9jm$MXL4OY<(SJ-3(&`MkZ*1r!> z=Ne)kORoJcBW2{(&={bQLRw~J++MdO^a|EhWuLhq&Kc1Qs}huq=W1yYO2 zmWEUsa@~o-Vs^QgvrUCsN|rL%ZRF2{2sjI4(NT@!e{G0)f_?jr3U1X_{fqHnz@@`3 zw+@?EJsxT7(WI2K!N%t~Y`$UvX7z~ou>x+Y&0q~z2-_ANYR|A6+-k2YzHpa3BF&D_ z2VxxdZv*9B($nSXF1L+))vj7_hmw!%a>on@{}AuYz%`T~|)6MNr;0E*Nll9^O) zhU1ZGd@N zVFzH&CIkYf!4Qfu#S<7v#W9qoHIryKZr%)tx9e^H@ykyh2B2ohtPw>uV`R+*$=hk0 zol{?&8jrqydg5ISyc7`NXBNzR;{E3Pfi@alCl+X22>IA?8C%g-hL*X!Hl|G}N8(*0OTEzL%D2iEZ| mLTNcRqSB+{0Rj;iMZ7${t5+U-Wq7H^!{(dNvD)4+H>G`UvL$ literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1691994056.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1691994056.index new file mode 100644 index 0000000000000000000000000000000000000000..8ac64af4246d4b05fb265be6a6713b66a8c05a85 GIT binary patch literal 706170 zcmeFa1-u`{)jvElyZZ|f;vPI9fw&>T2_z6KNN^~Gz-kmdNj?c^)6Wu0lv+0CgR@!O8_B%|P zyv<6ZhL0M(mT33r1!Beh<}4bqaQ@tb>PAc%f9S%xP3F#;RX1(n%(-)hPn$J$!GiXk zMZC$3sq;J3L_1fspnV(BcGJ3PbLUT8IG2h#&0Vz5EUzwVB@<`Oow~4n7ojH2AtYPP zowFZ(-eJbv`3u{%74c4W^B1(MiB+dtJemL^V(Y2%9QFaD=zqg%LJYxwtK+{uHPMqu zY7wgUrc725ZUnGcjKJ25NiBj62iQ>jH&{2?W73?3MIZ~X8Ub|zpEDOM>{}B(z-|%P zHfq@DJ$aw~A?zYtj=+vP)GhP`vMQQF6Fo_i#kxM#J!+yaiE61(VMG5$p)RK_D=b#O zoqnaZnu98})lpEkg$1@UTOA27t9gKhZPfyhL5tz3=X)-w86zWh2B!nTa%DDci6i$! z%cVA*VXpw^|wd`DoE3<6hXImAki84}6v9r%n){941MKHfb zik}P?mWXfsOXFv&<0nS4J@;KSXBv&1^+0x_`Kx=(Uznfk@^O;1TO z>1|rTPtyW^(=Ff^(R*3^XYf;j#lH+SNFMk-1=pj!NUY2}+S-d{xCLM)u1Guh`5jn? z1@&8S=$vUIcECR~=Fgoo^RT+<>7;O_nustN>5g&U6d!^(G4W(o%FsUxS!0lrdkZVE6)n;R|KN7m7T-QnMXs+9LE$h9poYLqO=Z269^{{x>cvQ79#y-H%M5=T&VK9`^1PD#j0Hz6LOcN>?ngC#ELK*Ro zBCjRq6aN9drh@{jS5l4^Z(fgJoV=AjvvaLn6WzC;I%oRa*&9!rR<~dQ89vRJh8d5; zPlE}+X^9NuKtlk8i9TCQ9jw1n*5lu*ci05U*wZGQd(fgev*%8qx$n%WNZ5>+vZMEx z=feX=jYZFg5o%jAebOH=HfW!!e$-kTroA)D0i)K`pW4|$_b~AP0KuKKpiG?9!W!Yrm>9-T&6n{w zd;*LwjHvLGW2hkI05Vk$(E{ak zbX_oOhpd2f=*)>e5Ju0O2qRgTXHJ9+pFCEH5`1y2lG^b%Q%oYT=42Z5DK^N6VnC)8 z6G~9r!NfUdrI^^H^cu7E>7{yr@#&>j@yVl?=))IB?`Zuu(+mG{^b&qT=1JHfBYMdb zo%s_=GJiXQ_@6QVH0CnN#;8&mn-9J~Tefv$NNq_PKH7F1SNV%E$zaT0!^CX-G%*{$ z>6pC+$7}*1-1M1Il5zVnTgM~VV9JQ0$v2i(8@E`m)xOJA*tn{l_uu3W?UA`KW8V=| zHlBXa)H%~;&e_inhcQuE#&#CH&Flt0jr{PNmLKvl7~S=u0kE0j5Rf(k%GD70gvy3- zf}-CEO2+{F_MK39qqV*U8GagM_)Q~2?hSPH16>3}x+Ne@7v<#)UFm2H!+$0WKMgMY zrg0(R0bG57i+~6h0cl*63^BOu7^;`Sgr5cze$$wGF(#TW5D;M^AdLxSjHw4oNn%t= z3TU0gy0QX_f^Vmh6Cx4>iJktl=cFUkxn}>Uv<+Ck^`Y4IcQY)t@Xm{ z)=_lU6HiSYO|fViJPYG1J*%aWR%he2_-Pu!Z@Q7r?6sY1kkZUK2hb>|HwKv-PoFvu z2Hgd}LUsm)=A;v5?o;Q_pL(c9zcKwv09bayY?>Fv_?xx<{s_N4vE)Te=7HU}9B>yc z2@hOsl)5?dHdT|52b|)4ut>G5W9&?HbmorM!;J6UrlcQjB``za9T6`)U@+5Viv46k zS1}xt!aZ0Phx=xMjW{}UF!G?8jP#=gCo&-M-m{>by6IM<^t+Zh2Cbd8ubYka$ZhA( zomMw}(fm4^_plmBp~Q7Ba7~h?zgwzj;Y_`*TAY4O%)#<4;!}Ggc!I46P5d=muLakn26)V0;$Od8hAz;&;*pOS60BMXc z83}Y@op`86m2u$!i3|8(=h;)|rHLiC<;y3Mu-FOB_0MtAIXm`eUj%1y@ zSv*0Jng~j(2fwu%jTiHK7)1DK5aBnCs0Y(S07MS~XnOG7(v!yf?gkHj8a((-0!PB^VU zZ3ffEn5kz9;+N839p2WBxckoZP^Bt*T)E$3mL3A}OAS3ew3KrcVbCc@;~y&_3|LbM z;d^fr(F!zeRTC>18EM1?DQyWkU~q1hb~TVs7mYe8DZ&9VM;6NDX#8Wz8tapV@4a-i zEKs#YO)PJyVzdRKCZSQV)k~|6VSJisLIs+-BBtgjf)wRw{9`E^?NfyBJtz(r=$VMb zsG-Le`^`;2b7-=MrUnpxA*~CM9g(-^h(Vne?3yYSsPXLDmHRDb?TA49Qe#Km*_U$! zwWP1!MhINjM+#l^=?meY*9>@P+RG3W`#<``9_-@e#(v#lT}6bL zfFB7rjBc*2i4g-vVMZ5XngSbK+=U+BR+Jl#WjMjIvN&yLTs81<};kE9ViK#DdaB@B%!s@ z(j z&MJOL!goKS5&{fV1bn`m_KA$wa{$YJw@rWF?h9K?vVQNikyq}&&_=!^#tgrY84nkI ze+?Ze@k2*SWPH;|N&PN9_)??c6cj>xa&uiVzS?1T!TZPPR`5f&0+P~JD8S=`-wF*P zAslKY)0=X{*G%O6|NF)l(uwtSj`p5T?Dv0z-aBP|dKCDTqw!Ba=iNosuv~lt2E0{d zip~<3lOXi8f>C-&ze+N;nsjc=BJecn3T!jqN0VY`DAH+$T?1&@OtInaY(N=zWX)$j zTZ+D~=CSD|>y2p>d1w3=n#emN%a-{lD*XG%mb?U<BD*)n_;RC`}yCX^1LHLA96JQ>FXS^ATgeh_5Jtv{p)h3e?>*xzb@yC z1>b$v2>~{9Qvcc+CX(@Ho)vi?Eo0wzR)h?4)|YJqc~5S!0kK9XR)JKDiDWm$pJVgU zAv-;z1bFJ$sTl)7`q^^(eZvYG$@x1wBibm~?)P;@G?DRkjGeksstEu0gURZ;U&jyK zuS4uWwC_B*Toi4Oj;2Erx58 zCF<@2S*`+&`dpT0lS=Sgm-+7a^FB1tYr*7)c$0Y1rvjnT=b<8#=3s zZiok4In#_icXb3+^fVOt(&c1P3i(~8tRCaOehaSGO8wHbQInhTHOsy2A@h8etlg~J z!rIL`5E+IRC2Kd-)zU=9IvmHlmMI}{mSDQ)dB7--5?AgUMwSxWqIGdYN#1|$bjM0% zHDCKEv=heyH5<0LUb6vs#~ihEy#`VXPgZ%@X9>bC=F}WfrEH~U{gzg0)t%WzQ$~t~DkBBl`JvQnAn&e&ye0^Y44O$U_P2pKtKW!CLOIyq$qdNg;haHj_^H(X>l(4oe zUcyB}Yn4<1XqaSibw_v5Ui6--w=2%o#PPmA7H+#XqSJwk>K2*nM7G1PUE1rG@Y7I@ z-!#=-I*^$X0Ev@6Gkq}p4hyhLpO-+f{T-W_m{$BW81S3M(22KF5ddMJ&y1mCP4u6E ztd2%O!2xLW!nPkNR@9x_@+1fcWdE=cf`BqhF@$OqX8+4l6=zar-DKsoKj0?QKP^53 zxS|W{4Cnr`U^r?=9WN)RxJBfWvMriSQa=;C8BH#bub`21();}^i$uH}jej~%oI8KQ z)M+UbST9O;o-IZz1ksFr z?K>>ge|PJFa~jj@<}94K@K7P--lBu(EV_%{VmYz0SXB%WBg7c7mRMJ8C^i+Fi*3aA zVkfbi_>tI0>?aNo2Z}}FQ1KISwD`F=QT$SzDb5iWh)cv3;%afdxLMpO?iIfg4~xge z@5FQBPvRBvx_DdsO?)Um6@M515cQ&2Dp`~5WGC58_L0Ap56Oq+Bl1!Cn0#D5A)k~_ z$=}JR|&;8)cJhmP?dSQYjUwSS6~a z+NfnzTh&grR~^){s*~!hx~Q(Io9eE5sGh2q>aF^yzN(*EPA#uiP%EmH)XJ*A8lYBH z1Jxk4np#~ARzuWKHB1dxBh*MWN{v=y)L6BKT1&01#;JAGx@tYOzS=--s5Vj?tMO_R zwW*q*CaP`JWVNl@PHnGtP*c>7YA3a`+C}ZEc2m2nJ=C7+M`~|1H5w8PkH$u8Me9c! zMH8b*(d20RXqRaBXlhg!&5Gtki=u<0Bch|CG8ht?09Z`P<%*yWPEgdYG+TF3-K%QtMT9B_v4S_FXFG``nWlXk~T?)q;t|E>65IG^iKvPLz7X- zn#s6i!(@E2d9r1)T{0!vE!i`fmh79%O6DaClS7lAB*!GjCMPAQBxfe)Bo`)^CRZib zC5w~WlDmaaUkfE7fjyw2z33=9iLRoX=qY-MzM`L4QLH5TivePgSX~Sj!^ChgN{kk3 zh&9DHv5r_@Y#_#qO~gd8nb<;XCAJpZitWS{v7^{U>?-yUdy2iqR8c4P6*I;DVz!to z=7|Mjp*UC^B7Q6m7e|Vt#81V~#PQ+;akBV@I8~f3&Je#6XN&X1`QjpRvA9fJF0K;4 z7T1Zz;zn_kxK-RP?htp2d&K?X0r6Y$ka$!)CY}^eiD$*{#UI2U#f#!4@v?YL{6)Me z-V*PMzl!(82jXM#iTGT6A-)n{i+_r5MWbkvLP{CSL@p!S%4KCo*+q7hJ!CK0TlSX& zdAR(EJVG8R zkCI2rpUR)fW94!3czJ?6QJy4EmcNvz$kXKM@(g*VJWKvco-NOn=gAA?h4LbKvAjfH zDld~)$SdWq<<;^Ud9A!oE|%BJ8{{4GPI;HSTizq@mG{dBXb&tAF-LHP59#jvhht;F%G4+IcQaz=9r=C{NsAtvh)pP23 z^#}Dw^(Xa$dQtsZy`)}Nuc%kmYw9oRb@irtOTDe$QSYk1s=ulCqSd0+qoL6-M37O@ z=xB{-O~jFPqIIJUq74yEHiPry&NN8J&YTbRHtn zh0#TbM!$}(Lp-`35$UGrHbkX65SQ+b?ni9;4WiRS(PM~EPasD9F8V#<)bof`e~Mm0 zw0Z^c>Mzk-h*|F-YW*#G50UHh=qtpoe?;Fz-$wOOQ`8*C@iK^G?GVY9jk_S4bwfPs z8TUm@TMkie#kfBr+p36dtHnbR--aW?jf&Smlv@jNZk>2t#JWx6%@OUkK)l;J-VQNu z2SmM{;@uGW_CW00E1rhO37 zPeWup1F`W}@!9ct@%izk@s)^@zeb$AHogI|@+L&fTjM(sG4Dpqyf1zbaq}TW&PU@X z5j}s0`1x%72gJ}nA&UMvehHEEt@y8qrSBn{ei(m*i26BV>X-3Xh^yZsvNpy|h^`9p zHA!lSvF#CMJ0_hFX}crV_DXsq-Y$=byHc_;qVC{i2;%NYMBXvU*kr9_ZN%U8lJ%2~ zl8q6CCnOV-Ny!$7#oHv4lkJlo5RrFIc1dieHI1esyvU zV)-q}t%&A#C3n}NTF+Xq+VZs(Y6EJk)<)OH)W+7__)2=$Q{oAf+6+1Ml99AV@!+)p!SR+}|YbrZH&7$Ki?IZ^ox2 z2-1ns+JxPRkxP~|o|dx&rX8~eqvp<9%_MFb7_*Wu6P>k^{jc>u!NR8&si%7o-|#k0 zlj%vhUw&|@L z1Jr~g-w0%YSTTbnYZC@hqgW{el;hGsJydkyEV)+4BmieAkArvmkkv?iBUG=Ou@(Wg z2aG0@tG_Qtj;@;LtaFb0v=PF@=Fs#fm??=3$K3RRK$d&|oW}wphrH>1v8*AF85s$K zY$w-@FG%*X0OJ?bE?DuZ?9LU+UDVE3Lm(teh^H z+aeU}Q%D)Q!1`^)>V_(2EPEoP(0=13VsM6umf#-& z9hz3Q%5pkx0%JvEDG*TqkQiXXOba4tctEV?VQh)eXI%T%v`II`_Ahc+NyjZ=eGxh@ z;Th%@#plKs#214j%}eS(;kNIFjc7=ia|v4b)~}sPS>`R#crR?X5{4*^8lxq#f-)Ip zOQK&S2Bm~n;zrkWi|EMF!|+6XPyL7JuKa$0bmF>j^vOsiY=wg)nhsB4BgUZeId*iC ziwS+~XeRf4kc(3uCLLXXtCwjdW4}6xT??C`DlLek{w2|OO4{ZCn;fG9z1;7wjIN8+ zX$$z{j?U1iiI#+Tjq@{h<8tFT%h@^EZ#mrW07nol@Yc9H)?@wt9a>C>6+Kcbuq|=W zuD>)lDxjA9Q31`&y?MEaPz`4I9@28lA~Dwmskt6V&huJedm)844N1HiNaM{C zbCAlLk7V9KNar1fgx(QI=^cZl-mysQorJ{RDdIFF_s&9k?_4DKE<}p&QY87VM4Im! zB>HYZs_zzY8`6DuA>nr)QhpC2>GufIeor9r_cT&}&m;Nwg7`BMfUhD2_y&@I?;s8M z9uk2cAr<%;l7U|$9rz6rf(@csEJ0E*LRzp55`*oL8tjbZV0YOQ3BtZe5I%zB;1fs; zK8=*%^GFB2h*aP!NCUo(6yQ5Z{=JXH-^WP$eU60RS4j1Ji!@&|M*Rxuy&6(`?UB^$ zjD%iyB=dSBk+&RDcq=1)HxQ}2!ARQ;N6Kytl67k%QMVqFbQ>W-w<(fylaZL)0ZF-? zk&xR1sko__fIp8(_sf`Qzk{ju$Y@+NKH4&x673o78(kHB7H<-t9KV^Yp6ywao8eo5 zaKgUTu+SaerNKki{Mm*YA9oPNNUR~Aa}Y%r(h!$t51NLWxgD3|n#3^Ku$MEYfyTFw z>HP>8OyhC7)+bQ0ezMyD5-4rBA81J?fwIOfC@Xp`H`%ybE~awx zsjqq`Tti}5j9x;wsC%gp%mYrEfw6=Z_<6Z;83U4#sK;ZFrYp$XX@Ytqk~3=|88ZpV zm)%WDcP=M&58<@#(VW;lkyE>8aB}y8=t@rR-pJ|QyEwu7TTbyl#Yx^ja+>!wPW1jY z`jisA(LZAqN1W{K!0Fx|obX+NQ@(>Z={u6szT@KYoc7&{6Tdrh>i0*S{N0b!zw6!2N`#qlMa2EK+9!MAWK_+Cy1Kf>wYXE-7JV*Catgg@Yv@ZUKp+`wt! zm=nXxa%#9ICx=%|R^#OGXe1}bBN;IT$%lPSLijLF3ICLn!Y6ZD_$*EgU&N{5Une(F zYB;&4*1NW1ZJ_Hv$zV))=Kk|hxQ*ZWQh7#2&7(*~G=tj^x#dpCEB8W9c_rkN2P2a_ z8d>CZkU`!A+2gH|H{KCB<2{it-WR#zdB_qUf(-Fd$PS-?%aLv=WODTN^PMBL7PC|)!kpKDrsp}F8Ih&TiR@sEM{ z+aNW157MF!A|?8mdeV(mxJtIiJq6dAI6^pY5`9+dfq@6Z`eUzsFk10@bP^oZOd0Q> z!!|WQ2J`K^h&oz?o++6D)T6-Wiz$T7k;~X##CVYKcr-Q6#?313Z!oUnH)}L%ve=ju zh_@lZM;d~VK=~u(AbKHo`5fs8=H`P&>Y>a-9wuux)Oryj&ut!}J#)vzaT+eVs@Ba+ z6Wm3!=}3^{;EZTyw10G9G(TDp9TxpKIz0Mm^t0&a(aF&-qF+X5MZb#9jxLTai>`>S zj;@KWjc$%^iEfSViSCW=iyn?1i5`ufj-H90jb4aejQ$+G9=#F08NDBU6nzqX5&b>- zGEU-J+$QcAcZxg5z2e?+pLnHs<#?5N^>}bRBpw})iO0t4#T&*O#}nd-@n-Qh@#J{h zc;|SRc-MIEcxt>)JTu-uJ|LbSFNhb$KaLNNe-i&ZK0ZD%{$+ehd}@4Ie0h9Dd|kXa zzCOM!zCFGpzCV5-{!RQ?{CNCC{QLO1`1$zd__g@;`0e(t79|HI2Pa1)MpXmnT;w*Cy8|Hzv0ycO-Y#y4Jea`qcW>R;mrEtqzMJ^R}kTUb;Cp zu=^GRlgg{HkhsYMbThLm?HNwrZL{N}II8s)zC+PCSH&mSmdm*z(U)~Y%<#R0qo2ei zSe`Diqa(|9W6leU$U5jipdE=wNN%nT4hB-Ho5lhi;>Z)MyERVFg}5{{q}8(GC6pXL zeE{E&0stM!&*{4+8E(EaLYyOnU5iu0IxnZSqqTrAyru~r4jyr${w*CmcymE2KJ{>I zO`T)P;%JyqlF-p3yjxL+^u>HR*$lID&>XH%MxF9x3tecnltM%%hjtFeQoaRn(92t4 zHgO#USpg`#8A5X4{Nf#+z5_^;$tOnS(-TpUE?A-d>(BqO1QQ!${{7GnZ_ z%J8KSDFc&SttuOed1?|I<*6CgX%ih1I;*CQpaH6%|2{F4*rqP!ZCAimcHq4%XyV(a zAp}h+;mZz)^^m)2ilQN^rYIVsa*CosZuhUJ3DL0_V?8bWJlC5*8f01d@9Q9?3;E|i zuU|O}(9~4U0yM~Z5Gk8t9{*Y(hiobTeNr*!PlKr=&1VKr74s~d#&--b;@p`Qbk32t zIzHG&U}Emc8+vkz`hX=pp~(Wh{>% znUj!>*C@)xwd5+ATzg$35tK22gXK+-XeMYC74tFrOwdv)kR3oPVJ0*|TA$YlO2si9 zG-xhLQQV;AQ7-d6fP)&Skj9gcIwL4;G0z$_l>JgbqS0 zn#@upt02T_krEcy=>?YD5VNr4rdQ%}0r5%17>%Udk}d-~%xsD1oByHBxs=iwKtT3W zYD3RJ9#mK=(j~VT11YESeKT4oJS+_A1~#-Iv|Q!QpV&}b4zpxFn%Bi8GFZ|T3QM&S z^!js+7)q6XpHoJ;AWkthT;WXXgIH>#Tvp={D>XY6X!=5{grJaHd`o0J43<)nl;Umd zS-Q>%EDh7#niHw86ifYuZn8saws2awkG5*vms)$M6)RW7+g`{s!CHttYKq2u4coM4 zg_8geb!)8J_%nAk73AJ{v6FypF07y5w!FfN*6Xiw)+r-sf&Wc&4R{uqmXSQ~E8CV-{7M-#fC^OJ68XS#@){7=Y+eAA@ zdt=$)Q@z5CB>zczRX%E|@7%ilPwtCKjc=JKY;x1obJHa7Ol&G4u&UCJ_90&ADN74kam?LL-< z!M0C87_efq7ein$Noj-`06}TSAhRG1eeKA?ckLX^m4IO!g<#pbGBG@d=nOcg zR*?QTOm@Rx(OrVl= zSK!$V1d#wMw9(k!5mYYfhEH`<6%gB@DWasRDe@;0O@(;gLqk+ts)+i}Asa20Dz(3c zrih$!;WVBJiqTA!h#NKsIfSB=oW^-heC1pyq>8JC3!JrAXtd!@2#9f20nIU{Q6ZuF zZ-Iz$Q~@0*dT+eX0-OV!hMh||zlt+}Q)h9y2*Zb_m4U)fIB515DMdO?6*k9^j}Jr| z$$<<-?wUVYZBegOe=L~Dd@V-L`jY{}^xK+6n1&lne@oo~@03!!s;J{rxndhAT5|jR zPq;Iw-wFf}jtU_*j)VlrFT^Z%#iy$|JnrJ{AORQW8xVN! zF^%|-gRyAyCydTmvOtfQ#DOf-xiBe+G8ZedFcZ)mHB<$JgqLxSjFD#%T?SjC;&KpV zkOJnL#nKVvkk+cm!Gc71q?18~MZKWcWq~G^gvtz5!)*@AxdDfVEY!dWYAz4H59NiFb&s11Wa)@@MM7wKwBj8a&mY(4GgIq0#o{6ACPIO{s29q zu^}NK!kvLetG=SGkE{U89i)C&Fa?UM`0k}asx-PDS|UO!&@?V%U@Gu54g-v43pACu zG_6shw45hQq=F-wjEu45UK|T&Ah7FO>$|)q-djL?mr~m}0L_pd%OPfiXM(7b%RvUF zO1|5HT%x6d+GK;6P)&CB!fk9-Bbmh%|S6!TMom+4d%L>rv6!|lFLgCw0Vxi$O7TEAnA z_liaJt=cWt`h8-0huGPz+9THb-C=rP*xER_y9EyF?tz23b6d4bjQ58H_UO>~C$vWg z-_f0$)37;ve*!5d@(v2CW~}$^M;3Pu_IF62`@R9=$T&t9Z8OgJc&vLs@o*uvm%3Bo zG;X%I4e#mEr)Y640;N~{p)&!y9G{u#;OdAB3=@VBkyb-5h1)hq;PPzk^@-=pnv5$QwE0*$wkRm*v_bMshICBfuatXVuFw@-nES za48Z$W2m<#)3$4q26fp@!o+0wm@vrdL@_v(ADQ2JI$P?h_Rr-&QGsWzJfg?Y|JGbN zwZQwg5IX4OE!}nD-E=|gXPH$DeqO>2{+qCc$c_)PC40Mjibx90rJFA-T{npcOFAH; zXVmJGBG|27SOzDVJZ|Q4PI@$#JKoPV^F))kI`_~j)4DXQ(2g)1HQ~FQiv=rz=hW1^ zD)oP+Q%{BC8-xvqH+q^8RT1I+KuDw(N^o#PKZ{f>*$ozwDuxw^y=U*|teur>c99!b z#oa|2haeF8j|R6oZLyk{f7jbi1G}oJ2Tc&2a=w*`PT7V~#IkV>HN7S}Z@geZ-F)uD z=FguypSt^IN^1I8okzKf%_8TqT0A-I_vAd5i*qm+!%&EM+rjgspN32Y0&*2U*Xss; zJ!~|!#z-j1F8IJajsAUfn%IoUn;wDT_%I|ZcM3l%#!PiHKFaPt4?%QGcQE({d#R2n z-0N_ZpskP_=1v3=sV;<2vf(YYxtA({!(roR=j?oeQzg$qNOnkRd%Bl$JsNA5vD2nx z!u|_+3)JiPdb&$Uuixda36J{XEZ{=i!E=oKIquy#3-<+FEAOUZl$Qk|1qCYZD`&~M z2z7_!+Md&K*}&EE4g|VXaH(feuSrWwkGpb4>4!uvf6kQ?$Hn@WW3;L9YkMvrz=5(< zN5%S!;kLTIkwyUlZE!Nuv}fK2q#wvqng%%{*qn>4oTu%9OWA-an$o<}mnkzich;=B zX*}j6y^%6z<7%Xz;_9Pw<>k2C=qg-jbieT~=MEHxDW~FN)9hIHG6tQE06~!44s#HS zSzsp}eu;EzaCB}2?&Q;e$$xgrL4_ysguGNmMvGrDQ+YevJs6P z%CFbF9vJ32UVF$h`d0yDY}da2MI#M(s__HuF4Qau#oX-AL$ZaC9Z;78tOOEC+NBWa z>g^sq$6T(JdO8QL5fnm(PfcUG+1r{%9@C@bGlg-5j|Afj8()mf@;EL9nxlqsAc zwG^`v`XR<|tnqRejI2rKTRR6~zEnjGO_=V4^s=|x>cK)SMbLOV2q42MWd$Rr%rzb~ zunb@0(KUbJC3V{9&eyxrZLXo$W5lepu=yRM;}#l_CRTr|!L`IOuq znsQ_hIKgT!E!FIKuoBH&8oBb#-b&W!^|8cgppV@T6N!W6VYn#ocwB^c5iYvB6JuaM zVvzBq!<@q434s{*1P#cv<*#b6jkuu$Eo;z5QJ*rnLV&OXaEss3xTWuG?D#()H}Nf& z_m<3wbXU-suRnFSx>5%L`#@UFlYzF^VyC!2?hHIio`gZoskjI5Qrz@+4`^g)Eno=O z+b=}XX~{8gWrpB?0su!~fCkp^|3Kl+sGXW<0N@oc%a|eheA9DLnJuKG>E>?%pb00f z2e4m56Gjx3AXxGUhB<67;p$HVe;RlL_=h+Gh{*uJ^`?Q6Vj8D0Z6)O=qB;k^Fnt?Q zTtiV<_79rMCAc?5+o-7hD?mC8OSEu_f&jodhPRU9d)*i`OkNk1Yy9Ez3k~@t=to%5 zm8kw$$cCzhk&lJl>&Dr@0^I!)?33g)Q~=;37ZOWB`T&QPZwZmh!*>iBMe{!$wTXjL z^y@kFB`RJSA_V_s*1tRIb6J@T4#1&L+iCDtvxdDPb%qXWrTKG6ornob{T)m!sbav_ zR|jG)GWmggELat+Fs)(Chk+H6aj7-miTXrXi6TBj^Hf|Wi9dlav>fJo$@aRmL<{>- zKR|4iDYCfE+i+`BB67myNrDg+4yWLhTAxokh zQY+(o$zIw%%Y?o;in%PP^X9LuT+4*k{IT=$G8ecM6mnUK+!mQhBNdY;@R+_I&}K(B znHwH3P-sH0W*sMAwl{Q@A9q;t+;q?H&8h7iK(@PQ83l$G^KdorvAFv80$lBTgS=1v zMpBnRYA)gSbugxdY1_-YVGn1irAoaL{1JZ20qe`|2Drb8zozA3%07Qu{{D@hw;<67 zod+y#E92*-tv>;UvbC1Pk(+^lJ^dIYm=I*EABXq?A;*T^)UoY1-iMZG{E@xXa z*LD~X`J=1Q3>ErqV}DY92RBX0uESRriVuq=ZU6EFUSr_P6YM0z0V9)vHC+Fi0|w@6 z4vKrwsKJ+Eu0$Kez!IPhdmn-b`j*NCkXZN4=Et*c2kXT(`dgS33A14FVUI?3rbO;x z-IeMsueO9m`1&RfB&INIGHHC;#_mICzW}BbqyyI8GGtSc|7<5&cKugyFkj~(poaB< zifC{W2thRt2NXjPC~+HtYPcLwXiyVe3N;aA5t=GgjT<4O!40;6>^w}$Sp}8!*U!SV z&(nQ~`g+RugL-RWA()0;Gz_6C+sayVWk?+tqFc9wMev zPA5Q4T11rsXn4gcu!^dNBhe&F6LKiyuYMXtPBc|(rg1HRQDfC$^-abas_1IOs~y@J zoVNwFGYg&r$}5O(7>k68rl^{(hIect$u-GKBL^7eR$56X2%D=_sjmJAKoNjzAjDH+ zTQtb3t>Wr<$cHGZ=Be>0fN^V;P1bK_rCn`OrvXeiSSgIJbK#7UQVn8PFI+0{2=*$e zYUmAdk&#qF)&Cw2O2{ju)i?*u5lp4Y)zRq3OB7KBZW?5}v8NxV0{}YCQ9+qAHBN&6 zGTLg@)h}|wuCl3yj}2>;ZJrJp5tb?$t!m>%6{d#8fO347^0+;SB3V~bP6z2gP$kS{ zG{?fK(p>#+E+kf(O2h5IrlnpXh=%8Fn^l6SKh6lE(qkGAc1o;bpy3IC=_vt;6obwI zC8=)q8a=$U!go92;94}qTN#9rOe>*qy|f7om0-AB+IBXTaJZ^DozvwBnp&6<<{_Fv z49l^)kwxH)#8?T1yLz>SRzl&{TRmj9)<;VT*msg$D%2>*3|!=Ddd!Rho!&|4SST~= znZ~fF=fEz&!lo}8YaURs{h!#&P#<2*Ff&`8 z8{~GUkRUdGZX{UUwh?RFTqLcFPPi=bdny)G17iGdn0ABJh$V3 zJal>vDI~@elp!sa=T`PTxwy!?sb|I@ z*~uhf$lz^y1sHtOCFx`_V?BYJMLXx6N4=gyq7ux@_JByFWQ`M>H#vHzkA z!fo2c3BC`44p|oc$LgejN88bS$0c36-i%U!vv7~4^%&N*wFFMpz-WAQ*!z`>%PY?nmKEF-F)sTdx^GqMGjk~tIZjk1y3qFE zStp%{_LzL~K4yWO{s=L`ThPkpz*$y2?D3+g-U6fV0xy)o8dWqd*;EYiv(D5QjYV|x zg-VdcwT=psevS(I6sUxKE%pr&>z>?533&aZ80`hinCOwox>yx~G7Bwn@swmQ|Mm~Z zQK$m=xzzDP!p`wSp9-zO5b4TAKODKpLu~O3wCQH>5UkEb?wQPRBC$$lkp!!N%yVpf zv(P*O+*OS7wU?uwO(;bE?aoQEBZmp_uW%(Mddp-dN3?Y$CYt^Tw1fRE!wh-kdYPRj zLH$9pi=90>m*6J&uTUGOP)wjydZCbM-Z#PNZR5OQi1EqRVvHfvjO((L>W_uWAoc+$ zh3wRk%KJaJb4uawIljZR0@-;$mVxCU)8s^`$#CXeN);Xo%68#IA^qoUvv~tFMRt_c z{(4UI1nnB4KXT0LnPC0n&UIR&UR|m22C>F>7PhJSpc5<+pOKYb(80Op8PG2vU9uO)Und&@_iVH8;v8C2QG0;s9tKn_Hg+F09Yy=iPj#xVon{M)aM8 zz2W;!owf1&{T9u}QN?sLOylNWmE$A~`g7xIlkLbxt#P9FHgk7aG;PL&S#{YaNEIs< zPe9^H*k|z!?2CB%l^%V4H+v!yPkMSM0^v3!Q>Q~0I8qZMt4lBAM^F6~#s;nuN2CDA zFzWxZXzhn!6)dXp5$p1H0ipBMI;j-I(zvHsmpiPo+?7{YhG3}aOo>J3aoS7lCtn;m zfYm2gBUe0v$F5mfP~<3Q6>Eq3uyZAd&gBt_l<#Dfl-lI)FNFceOr}a~;3)g+zICRzvw#0>SOg5~@X~qALwhxy* z&W`g8bgpo?MwRO-7+d-+Q|Dad1ggu2=s}uK9`|ARfbIBs0peCQvoET&d`KoI#f}MB z#u-3}JJ@(PR7Lr)DoY5Vq`fxGH0db}Fidl86`2kPN~++BH?u>g9KcvCx13cqe+m(D z27(6{RzQp~UYcr{snvh#e?zGMim1~v%m`9e4zv3b_OglavKB#%)urJqW0ebqvE;Oz zd15J~-*RAY4593>C3N6!LE|mu z0AuoTDP>>VW02g2^RU3kW>O8rI!p~Eqv4gbMWm(NGPIO_$-$4((SqA`dS?Ofry!-g z52a<8A>9A@_CzAX-(jR5L9i_V3}t|vPg9-rlg}RRVbZ(lON&Ps*P=nE<6cA4r;wq3 z1EXpQ!U#2Omes%#)87J!anqzZWmN^TI=N_uTJv`RW5aG>zlCBFUf4Ep#7v7jEoLq% zYiJi`Mx8jx`}j+ML|lxiw{ceh3{E>dhm&oS5Yrc5<#>0ccNRWZI@}C^vIehtbl?0s ze2&gf0Q-|4NY~|pX`*y1hD1b`C5y#JFgXzjD~s*h@`k{)GMgx^n%IZieHOGl z3UzqlWVq>k9YL%KtyuRhZ3h$2+o1jGa*NZ&e-EeomcjY5!&z27%vo_pGbH}7F5kwu zf=a6(Mj1w2qj^FDT5q5WO*H>pEetZ!fTSMcp-w+$gzz?;Ul)}E4B_BsV-2IEKj^;z z9k?x8AAl$?9~p8)pwj*lG=TaYP1w%#dDH}b2r8rT1Sq2=2+Mrxy&37;FRV;c08ggr z$6T#$Yz5hPPu`OBudRkSMCOs!C4`Q9D$3S_$NU8z#$w5EpZVewfJ>fmR)?0hEPSri zPT5OMFep%L+_o20a>X(r-J1s)c?&};DzJqtOaDWL(6?-oEd$PN)0c4jN7^J?6^NNI z`tge8g%3fj*l2D}16Dxrrcu%zrws#<@7p)9FhVLxU5y2hehM~@?dy7ztgcoDGm0gf zLrp@csD>@?x`(TVv7;Np798DBLEdVy)@^f{#bWL{Xf4~0ZY&53MEi#Ql(C6(;0kO3 zt*ltjo-FN7zw{xjx#eJ5WC2wW ztGPhtXta^7Aok-ioUSMwN@Kl};1jUfhJje}FMKEU#joI<Eu~BpT>>ux4%gWSIzY>WQKurA)gcJJ0e=|Lum*&!!E(1$SMPG*o<1;JL6ktbA4e}{xQ3~H_{Hd6{G zB9;Ja(|z(C5*x|Ql%lLyua4$KO62KJAtIIGx(Y(C2s$%kGAV+T$0D3*(kp_MARLM^ z8iKg&-#+KKzmG#vNtqeNW%R-g+b=#YT<2{@aV4cajCo~^mP7OUxT4EnabOEi#qBqP z`@~G1A3Qk=WX0h_*aDA-E?R;Z#gQXzla)bo(Vv2daVktNMOVYvmE=t4psUzVK8M(0 zZ_iuJh^Vx9#Rg2MH>tC5prjm!U#X|fkO;fg{=<(z{>18DalgK9mEs;qE`8$3AW z5&dK{0XM?4H*n3|Su!*Y63i|ZeGtFA`e1G^D+X%NeesFMA!L2mOEn*cK={X zcmBnCSfuZT5f!tR6-oLj=r=efX>Mp|z%m$nJ7s_u9*@&D&9Q!JJvi16)CS?VV_dFX z5W;honEB$1y#afm$w3@4-m|zKtfi`oeZIXQ?p5*V-UvLqw>BQ$+Za#pZGp%4cEIy{ zd*A`SeWHeFNi5@Y;tS%7@a*0?czACUJiWIS9^cy$&+q*R5Af}WC-`R5CCat_6m&iR zV1c^j0op2lySz^fK#_|9IxDRq*8LF(#VQ~Y@Uhfc|*@zP4 z$ZTFAA`Zo77%sFuHQ(uYok=n|tK`_x0-}N3lFz&eAq9#-RrygC?2>C*1;*!ED^x!S zE|w|HQWt>N*jy;d*wJ+P{68u!E3CTP0;?Zkkml|Hc0Vqh!NrFboy|Nty^C!@zMMGh?l+sXbjgpQD{T zA^qf&kH;*uUzHZ?iF}AXoEp-lKl{_pyMKxg{YZh zCZY@#0Kf~OdUDGEPF-ZT6;;eCQz^uOw*SjwWx^{em7IR1vlO)B=|((LVr@SSL_8A$A38} zTe3F@B?(qw$3)xYS4%{;ZWV?BULiM4GWBKN*gZo+8H`z-wB4DH0q3^OTBj{#TVpr3 zUvlu~d`YP(;+7;6>MYMG%Bo8G@kF+-Fe7xAuAeqBG1as#=c+(>RL$IDIR zrgDOuD7TPX%B|$qavM2WZY#Hw+shr~6uG0^N$xCnk-OsL;U02N`6IcP+*?kS`^ahP zcHBg8m%2yYtL|41s0Y<=)x+u$^_Y5GJ*i&jXS0~&^gNM1zV~2l4RnpH0Mc-%Ydje- z)B!l{yD#A?=FCh9PP|iXmN5vx;baQStM~`sY#p{e8x$LNGaF2^fh5-<`d)|{deJnk zkt^0)#7Ol)GjFJwfdfHUqB!bSRk8ahGLr9?ZMKeK^fK4b#$!&(z|Jis(@?YrFFeM zH%N830&j32_#jyglX0sG371yG`0loE-$EOt3Ew2m-(@IlREDsFAh;aQFnHH5_!8sMSEf)TTz>a z`{vtn{V5pxl$P_*oNlPFch=;C@cp&12*RW;w*P>f8b>0`H~=Rm_a$7#PST+Ju#BFE z^tC(y;;_0eWtG-6ylTLp!|S5FY;l!_eXSt`z=EQSI`q|hRGXK0Z71Q2{M%13h_Mj# zGy7Z%y*-{1Mp%k4?`L4ho(nLzWnQ-uF5TOXW{AR|v~auR7>Ni!Dv^n^LB+|9J zH)#ZHNf%lXXwQE|UzuaH>B|du9&tb6D;mFtA@vB7jWNg-E~L~WLIxocm@8tavXTys z1QsyZhVIDbQ!L55$78j%Owi28kU+~(*=+}zD%$Amr;K>M!a$(1SU+{*81^gU=BU9; zxhrLH5P|MX4nBYX6s=p(?cr1>9Acg|ZMag`hWnCf<5{;l%;l*waJ|xCg>mnBt~*bi z)T@+!%(QnaYB9GOwKWPT+FMJauYRqD!_dPseE~zn&6lfX3YmxsXq#vtAqMRhH>BD` z1Ho7tjpD1SWp98dZP6q3{_H@r%@P2eW|Dwz)mxqpg5Zi2e71yS?|c#HaA(u@2AyUnhf#klLFyG2@IENE zGI+_ua#)?y6&ZI$1&mjs=hn_t0>dMT-IINtunEo@8wc4EK1%RG*y%%gWC{U=aGPr- z;~lpIm*dt|EpqFM3fw;F)Xe7U*xpYP-GxOK}KzN?<4k6Rv|jB|!hWFR#Z<~mKO~!JL{AgC2>Dbmxfa;OO2jy zl5Di(XO!7+KyEBU>gE>7YV@68tK@DFrw(Jb-WHg})hm~7Wz%;TQyXmS;Hq|i*r3Vu z*w&49&EX=B@<2^5W*>efy9hu0x=N-NxBV* z1bh>A3;3KPY-T0h^tT+-gd)#$^FRb49}VNkLp3$$pjcA{sOu3_d|V)@0P`Ud9Qn}| z5e5S>!_D$%Te;PY5a>}mzeQ#-gDsn~*WorNrw4Onb8!x)J_p03@V&Xwa@_-|vf6^%TejMRUV0|Lw+Fw8*g$ChFW!sHlH-w5eCGihvU_ zDksT>O8T?+a|uaaUyN1+Tn8wKwNOcaX52$To?HZ+1QcZ@tLnhy;a~+6k*o!AloqW_ zgIN!U{VOBT^|2~mQqYM)W||(N3j^b*IX=JEtF{96BOuPSDy9 zPm$-zE9C>ZwMWLs!GZfxM9A9_dTpP`^Fq!a@Nd4z8}_4JTE)3#7`ideO%GXWB%m~c zWv7P$fMs+Xq7@R_L^kOkIq7NR$Rf?^Dg=?8wrY7)&=mm4FSJ6lSZMX%!{gZ}zlWD? zjc8?rWl{(L_)q6CUVb{S3x^`jA8C*8NM1A7*-^C8GW6T?t%s#f;lu~nz8{C&#D9XX2HXOX92ItMOLLjq%NRujQ`z9=zG|+xTI;+wxTWG~RCcWBdZ%Z+Rtt zGyYrrKHhQpIQ{}}xqKbh#|?3F65&mkHc1D(>(V*tfwx`yBrD*3m;TA>$r8JvQ(!9B4$xG&ZR=V66#VR9(mf%!>t4Bmn{HaQ9J!JLwui8o=+NiM{@ zFqbA*;cb}flADv;lDm_8YTar*aJ-{$Z8;qASh+T^wpwj)?vB{vN{SwZ(@Kh;_=gqc zlKM1mRi#S@DE;>B3SmC?~Ek-y?$XZaAw^;6gaaGg`_Bv@>MR*bMx7H**G5nusKk-+%g2JVE#x) zHoD>BGjsaD|BCB8I$-nClC*l+vMRA&IEXh?0oe2Xx7V>;=ut zk29iW#IhUjvtZ%;snh5YT3*}VQ*;oWMR(C#;B`c?s#r}75hKJHv6fg@Y$!Grn~N>Q zHe!3Rlh{rCNbDo_69=O-%#zyN$ z6Qjw|F45HJ(&$6Hn6W{8Tzp~tYBC^MGubfNJlQVUEt!_gN*3F+YRV%xucvo3NW*z| zqf|uxg$}*P5B6ZSlT}7q+w*3*jp_l7#A2)EJ+ei+y=t%ubPYX+G>`-^B{Um}#F4 z8CuY!iObAvu26zY3(e%HP=sKkCtrmUJVM9wp+W(k!?9DIV%bM#I#?`8u+HO;(=>Ce zPZ|S~K97+%=Z1Tv+q{gjgS8MuFEi`nfJ;`L%IIa#&RQ*&VP%USG%uFmwd(Ak7oBRJ zs_gO})Pd!_tYZW!_24*PY!J@`^kBCP6deQ(_;axgXIpx(I~0qsG@MPpFbGJ3XzXgA zuN?~Yq?R`FYI%*kR$eC;%j@M0xvWbOiH;^#`#gj{-etQP91VJJs1F#0D1nf=q!&gd zRE<2j1caU;2gOxb_C)5(7#1w21kZUeGBO*@eTW!(besqws1hV^8hVN55|C#>3=_)+ zR{}H}K-!inIPZ@ECDBsF`Z|W73YzbSCbV>_C^{95X{d4mT?|Z2j0P;>?Pm})a8!t> z4q04{q7u=s0j7mi3Dytokrd16rd!BST8V|82?b1r9H&5MR9uN>0|2FwCM==m1}Kd% zRp_4HEZ4kO$Zl+O4AOy+^;KBl*XYO~jZ$qc*%k6-o+^~tOnc?1kqVe4FB%(lT!a*L zxAx&mm~E|;E7)p-Q7$PnJ9=IRHCgHvHBS!A!D#??TRK%D@lxV;L$R#rB6@NEn znOB+72aq}OS{WBUK};lrEw_P(TqLhl%&%bDYynlxH7^0(q?#&Q8DzVl%Jvoj6A@k| zfyV%&k(9I74WWpnRN=K>0EC+<$8tEt=+Bi1qa)wAV|I8Og3ugQ$>vt*R13I*-s_Cw z9RVR{d(BL+2#=i~V&A-pVdb%~`R{;XX_Uh(IoSD8)(1DyJuvYe?l+grbPQGi-DqvC zio<4l5Z2k6&3Yh_m0J?05&b^+NP?g?tuSzS+g^K_CxsQ-gy5;$FIv0-u=VqjGR68T zhZ5xeTM53bOkH<7Sy@?0o8FrvftubGn}O1fb_`~PiB*2@*ju26Jz8BMAzf5LtrcM2 z*fRnwDfBPj36N%97b;qi(;X?MqL@f7E%u%T3AW7+R9f4LtrQ@0q9D+Kchh&E)YdM9 zPQ$u)(^sIjyP`8tW~`w^Bk4_QfvWtTYc9YVdN`r!yC!buV_ann_&2)-n)2?Z3Y6OW z$;*)2@s+;#!!<^cE<|P93_L&C=ch^Y;%DmmmsOjG<87NNoeg_Io-7*z;H@yWayIZRQW$BH(fkJc2xI{TtcO~&W^E_Grd3xD) zX<-Rw|6Pq>U8+|SVAHE_0yRyDEDhd99;K*BP$h-lf$c!U{%uNu;+1$%QGNp#C4f6t zt>I!|pqZkM%&e*4`poRcBcj|;&z{|!n?V=Lvs>=jIBmAAEs~&j$UEiT@*a7wyk9;b zAH)zTySslhHS_H&E}icp9<3YF+Lb@Rq}H|9>12G%p_(#J1`uXqqsms zl7OfOOfiQtXbT9|?(8u!YAy)!xE&3q0xh69SC9HCAZX>1nkWas>rv+R53;HtDVIS+ zR9FUpWVya_(h9afXh$;_C?^Bk_ss~o90p66CQZU75TX_9QZ^M=3WG_fh2g#=ga?n> z+xb8_Jq`4j1vgVB8LSm($&{%XJA{n%OJ#Q*m}WZ58KMOxs$WJ17AE*!qq1_WPZ+_L z3IwTsMo~)U&Oo6>Roco&R$Qgh*cFVxXUaM4r2$IG#JYo?c9){SCTa~)iUUgt_U*GW z|9wsiql^!%3+vQ;x$WR;JAE*(qzPUNAz_!bf&1W0_@UgN0LL-KAvk)5+9GDGs^}jA<-`!0m*_%gPAF`n0*J9UY6C z)tiAQU+*9IZmv%cl;}He!v(y1PESB6@{AaRPPHwzK8?e+r!BGNY0qfiII8tVS4vDf z*;Bs(+cn!0($6%@E-uCcxM`9F&ZY|10_N;WJZ0Vf^DFV@Rd3MWd=*U9?}JH?q$%_x zra#SZDL^f#EZYlH4XT;eviE-n6+xhZg8WVZlJBlq*Cp%$a2?)DLmn;R!U0QskOvYz z<3$#1P%SfUj9>K9T&e$H9aBR%o5^?2NZnwumJ;11bRvzD-`)VRV0%NmbW{Ty8ig%- zhhS^oiP(~N0k+}Yh3$7wVcXqn*lzbvY_RKrjdg>tp>7;D(d~%MbNgY_+@aVkcNVtC z-GXg#k6=68i`WA9_qYMu-j>C7w-vF)?J#U#I~m*7F2Z)Tdx{$>XgGBMX06PBHs10E z@rHA;!VA7aMH8?vOd=1IVOXSRV1Y7>Rm>zRP>4Z_odyR=F=WuQq(B+E1iMRsh_b^H z&Bfzpmq4KeBM7rop;$zA3)Tw-=%4f!hC&H?6}`W`Ske#eu#gKy@Wkv0oggyX6fT#y zp|_1(eAj=ty-m z&KGb8>7yqa=s!Px=s4~B7N5Yq7KaY}s{Tn8&81_X&Y#>2p)!s<4ZMjD9}C~dphn&! zSz2(#Y}B(*Db>YTn&m26Uaaq*v!GC+wbUfqvzBz9h56JcCbes0AMae)Ft=reECI}= z#P!Uic8!g*Om7u!%!y=#5*0PX=KxneIA(AKP7c#nv$yp|J)bTNa0_RK0SZTM&jG+O z^^(XPT%aj$j4i^K(B0>-M{N)+G@tlWa(sJ6V0TU34DaT8eq}9Obl`RaPO%Wv6|;RM zP-ZsZ1WI~AJ&;z~_Y)nFdbqYqjc!%;1)C$5_7#1tCV|<^0K}OBMj?8uO|eyU33@wC zu?U@vKK4S!XhdgBt0OA0dlZYV(-Ev#ursjH*Fp(KlsbYHOX%4m-)p%|;xRSPY%U-G zU}9|nIfj^p!+)?abR)c>SSKX(Ry@u{*hpVMgbrQ5HNzJaPz}C9#BGc1FFJwT@l&TA zP&ZxQ!3Dkc`i@&V+q*L!yyU9Lz|omoi>A@l-ZZH8g0D7`thBOAb0LVVz}YIYD6#?% z0CcqHPbSTtH;YDtO)G;k-+T!n#Tjj&7!Ncr538|8JqL1Pxzmt%hzSFpI_UElx2ops zmeVx1VRGWP#P*PBs_AQE)zn0O-k>|*K!NQ@14Y&@LikLd9jIkT0D&UYod-&?8`ibF zn8VZ^vg`*z@=Jk`CtTfzdD2bl>{NDNZr449;Q_{Xa%x!~c^Y5*I`(Gee;*=ev6I%R zJG^O~yPA-?hvRaS4FpNutLREi?*b!>L8Hx3->?v&3ecgVmB2L77AV7wpJu=qDxB;F zjDb?z@Tmukfim3BsmG|Hvfa?NS?N>%isyMS4$4nHX~SY@^4X5KB-Xj=8_*AXM#epO z+UZ<^fuUdw2JJ{MRi_c{5RgCtuTU@sQIc_!04*jr?J9sT4|<3qNmcs!UA%-<_XLfzW0ZxYZ}wYtZ&BbgAy%=e90hx(8TAqqN{LSaQ=)5 zndJnWZ>!0D<$iLe++Q9bXX6ClJb9p;FBi&1@*sH#&h!0P=I#iU$I0X6iSi_Qviv2^ z`kj^^6Uz(bMe-7Psk}^HfpdVr&TdW3C(h+V@)7xjd`dnoe=nbxf08fCm*i{mb@`@z zNB&j5FF%wY%g^QC`K@e}%^2Lqs-~7v?bWiXv+An4tKO=wT28H~R#pSlK((40 zs)nnPYK&S#t*zEk>!}UYMryp;R83Tq)plw}wX@n)?V*08rmFYV2kJxhk@{GDqCQoh zsn69H>hJ1H^_BWs{X>1D{;9rI^{PQNswUN}mP8_wk&2=yj*_SrwTYIA+D7f7_ECpu z*{EaGDe4?`iMmGJqV7?TsAtqG>K*lo`bPbt<)Y=I6`~cRm7MiBVz=F;1*6#*2w!E3vJZB6bmbh`mLfm?`Fp1>#`wV{xSTsW@JoEKV1{ z66cAF#AV_tahc{GE^%Hf3I#L~_j#kI0pQ)d#W7To$cy)q0QJtiIp?;}OQKzZX)fwtcb(T6?oukfG z=c)761?oa|k-Au2qApXHt1Hx%>MC`$x<*~Ao>tGPKdG10YwB(FH$0uRHl9t|0#7FG zf#;HDL{7tj_!#bj-HNQh+dCAioS^I<0S4F_lj4FSC2=>8^#mj zZQ`Bdz2lkj{P@T5@$oO?v*XL+>*Cwu`{T#r-^Z`TZ^xg+|A?0)%OqWrzR9Y|Fg(Jv z2_9hD5sxqJm&{HUB}XL3C8s9mCYL4GC%3~k=6c)YRw!(g+qke*ZhB#}+;N5Na@Q6% z%stb>mbngk)0`K#W)&jW!G+j$jK1O6i(bDd#IJMotlo=Ym$wkZ?$gVEUKD$#5Xass zM6$07v8-(&nk`?5XQNt(XuFx1wpd-SZcsO>o7Ao9w$hc;Hx$ml{^0TNe=Yhg?G2aq zhC1!5d&5n=i1&Z6G1!Z7OUGva?y=ebSZq>#Ft?B*7Kx~dHewl^?p+q=d%NI-Zx5XD z?SoUkn7rbo?3vfHuzX^9L@)y zgcHK2@EPH=a7y@GoD;qfCxtJ?S>Y>jTKF1qElv#IfHT9l@TuXuaBlcMoE&}-XNMob z>ES1Ee)wte49*Zgk5j}i@HygFagz8AoF#q-r-|RgdE$?7qWCkMDgF|tioe0R;s()- z&GQP|=WEzN-ws>oJK&6QXPh$bPUnneU%8o_&VDnaFsoTmnAaTPzka}DgA)pKn=}24 zKaUMAZef0Nm%lZL#|DoT<~XkuW;vf0<~gb`)9G25>kMvTwzETKzVp8`HW-4tImY5{ zj`eXj$3)!CF&TGr?1H;Frs8f6x|xIS<)B+R=uQs0k%R8zxCH0Q={63!i-T_BpnEvz z77n_DgKpsXAo`H*-@wUpx_yK0-k_T|=-!QCxOIc>+*luH(&@$xx^IJS+n~EP=%x+2 zXM=9pI2I??>5h#H`GyU;UxRMfpu08bW(~Smzpqn)M zFL(by38Xl#yqG`7P%8oS{hjcK??V;1hwpj$NP4h_0NgYM6u+cW6yjO&uc zbaO_neXT=n*;>b1r&{M)m)elp(Au!t@Y;yl$l9pf{TV_o?ZN)Pn_c)H>%o@hnwI98 z%%%!Gx=xmkZ-2nt3sCq+-y{@v!!#<3vx5j&^lW>4}CB<3)Smv=^RwA zv!ydoz0Q`-KlM6WI{Vb?Z0X!Hw9b~!Jg2JG%{%iEEV~|;U5(4G#bsCGvg>fYD%Riz zwRi($c%E53%cMDG`3$pqeo3=Sy1g+xx1{?T%V(A}uWadd#_+sy>8x_;nzdcC{$Cq6 zw)y{c5C6swzJ~X|H|C>Do3oj6{~pZzEtvT`F!MKH=I_7E-+ozr_hlbsqi4tk@(6i? zJX2mQ?~;$nSLCNksh(=E+M#rP7JVT$ST4)l? z5QD^EF@Q}Ed19eBL>w-T5O-Gk9a^lBpwq_iQkJqiWkMp;xFPY@mKMI_(Xgmz82q# zCMjhi+sclztL!0r%gyB^-rMqMVRy^Rh5ap`6n41C!XB3%g4 z`%!)o{StdpeifaKT`AW@*J5YNEzzymopNt{t1F^d)wz)Z#YSwbCi>jGZgJ<38BEvU0o%cCZYNhhP`Wn0PGqu}q9N!(Nuj@wV8{ zvP--x_Owim_rboF{o@0$w`D=R5c^vWkAH$4E~mt&Vvoz^@fFzTvN*mTdtGji@4$YS z2jbsg&&%WS6WI6iT>LzCzPuB^i`_4u#-Cva%s25ru?t2d5<6kqChf2rrfbp-J7W4J z%VAH<@MJ`?cCvA@MY2P(M^cx}#lDz>l7q1~=E&qI?2kDG)SN=Eb?NhrK`o*Oy$e|VFrR&G(ZrOAePy1zCH;?~s z*jq+pr;)sZJdW3p$MY)kmb{KUg;$dI}%H#X= zTlxI+4{;)-+Sgi|@wfaQk=_B-+V_ZfKNL=u=p9ilzel8ZN454nBE47YEVEmx<@bp6 z&Z*YEN2K>rjc#!#Rm<-Y@vbVoN0jM@aFA>I(pckmSuTw=|K3=$bc{^9G3|S3OUKCJ zm(p4{M%FKXoxrcEZo}`Y?#wT%?)@F!R=qU3 z@;hhUKDA?ts4-fCd5vmy?rr>c&c2=G@^9zH7hsliaVy_leKmgLJ7?imb9uNmI1jf0 zzrng0zrwmLzr(sKzr?x^zr}jMcX*9;adK0uGI2c0z>3yJg;~*mPt+JF2g%js>T<9g zB8SRha=08JN6Jxhv>YSH$~EL#a&0+It|Ql#>&f-y2698Wk=$60mz&5<{`o!i z{c?A9cKV$1o$tssJK`&(cyuk!X+G~x+su;n(q1_|#`0K~^pz5a^OEclHY>wOsQ<3K$-yu(j7>ULo4WA`9QJmShZd%x?bY)Ok)jQ8CgSN z-jfa~%qIt=aGw;Wu%Dct!hdp43Iod9<#3=h0t-qqfN9gQ5Je$o9?fqtFT~EH87@wh z8aX_l8G1Cw#d#r?9?f!bxzq?^&D5iLE|z3q>(NXXk4cRr);@jBb@4`swMVmEd=_Hv z(R>%bhuC{G<3;TdgOBFCXdPnl(X1D}Gcft+D2WO1PG*vfz6GDpW^ne@1}{(82HP&e z!c)Lm-zn!iWqhZ6@09J`&Gk-}Rm$^DS>7qfJ7svM{O)dc_w`_6A%7p)QYo`L<#ng5 z?v&Hr&FD_{Q_AK}x!fs}JLPewEbeX&_l4kUp&agHF{S+Nl)asDw^QbJH*Y&xNhxPL zWo)N>?Ub#Za<#je+M`TArJR?Yva*w0NJ-<$7Y z&MM0-DB+D`%ii+PM4!YSqR!-GX)>=A8*Ern2_ABqn_5$orK5_Iv-69}N(`5IVn%L$ zA!oVyO=ROyvbZG4If1H0)V%5?$qTrfHlk-ZjH6ZSw~nCtf|&aYp!*Yb(VFJb)|Kcb%S-M z^?>!H^^*0b^}h9)^||%EwZYnCZMJQ@mfgs1VRx{*+k4o1+5_z2_BeZjJjd)+u7b}>9le>IX#_SoxPmB zoq^6EXM{7-ImkKKndsy?`Oc9}v2(O@igS*$$XV>%=-lMo^$N;>OAH=?mXc< zs;=REJc;JoO(>@0U)ab9&^b6$7ea8@{PIV+vFop+pfo%fto&T8ia=R;?W z^O5th^NI7Rv)1|C`NCP}eCd4UeC>SWeCvGg{NViP{N()X{NnuT{N`+Mes?xHe>j_* z&CZ_*kx(L0g7iB~#@_}8%St%qyeaICDWo%d&=#J1|15ZvuNq2yRaxED14ta(l~rS{ z0&FFn408&PU}aTYBfkXf<%Ls|lX=3csh8BNYK3}Rtx_MUwIZuHIgOatY0}2X!CN?O zRw&WZKfp^Jr>~1_BTsOnKSsj?A)kL+R@ib!P^KWyin)R4!t4U)>3(pUj)t=|6Vcta zOhC{NPRSfNBd27fvP-2LXea6vCrfcP(e06+#BHUe#4&sL!b)Xsw(5DgGjsFuOXu>I zus|Gns60&6F9~EI;Vd4w+5X%tYGH$T_bAx>H?(7L6?|U|xPLVNvN; zqB?HMLHWhrRarm3uq0Vbw>2)z5oHAhl>Y;H=@Ny>Ir>=savO_aeMY`3zfn>(R2|i5 zHBHS@^VG@eY_&+;utl+?6iG^Pq!dL;F{BhhO7WwMt?M{~l;TGzdX!>EDRPwJMk#9a z3+o$>8>OgGiW#MdQHmGsglJKU72V73%h93~D@u`~6emhiq7)-a5u&Hs^EpP8B19=Z zl%hi^Hk2YmDK7L~`vZ;)rMOT;g>pv2f_vz9n)3{`Ii)|IcSoiWn{uGmB_zVsxt|?1Ym@B&sE{64{CBqWPq<{DR3k z5lVkdQgLox>A3u&g51*lqC!eyg3ZkGEgf2&!s>0NDX*X(7}tf^&fI|mk|lY`!pZrC zQ+X{^mef$KXv&miF;^Mwd`MEM%u~76QN{VCNj<9k9{e*^^g+Ir$T?CVvIS4T7fUh)YB@m>R|+xi3cI z6mJ{+RiK!^8PY?=Qf!GC*27jw_X8_nJy*IISdg5NEYwDt9#$th?yo-=9kvD9=>uPyB}Dw&$3+%B+!lExbEQeLS)uHh!-A=XyH+a6+Q%! z!jljuJRMQOz#NLK*<@KNp{tchl1uW=056 zGbeZvCIb@zY<**c^< z4irJHaheF~i)V?Trg*yu>WHty1D{SitSfgAb(4i9WyQ(qK=+G+|kpBJbF&OkZ3KkaU^+XM7CP0?g~r!P?o9BBzk2m%4}i z;*}*n1XEl-C>j?hlZCmH3X*-xN{jkKse{diPD`WE!F$PocWf1-YJ*LyX4*S9(k`CtcIweYJYWr8m5Me zI=Y6w+EvNIN&`7W-C|t}3;x%z(r>h-y&tUcXTsusiG7v*zWssI4%YMAojXK5Ix~t` zJJ$!EQ2?hla-|hIBL9uUpaywb*xSmRz8;Zust>}%m*Klw)N%D?@2sZzJ93h!UsgDy zXmb9Pd^%hLZlihxVah3@L(>0JUHVeS@37stGMBt74AWstxt}+Q?EJ#X$vGn{*UwBB z0;RFm*IYz^&8BT<+!&E7u3hAk8ydOh3L+QXxsj{xuE=Hg7Op$r{7J^o9Yl55H)w}x z=UU&;75h(oKmB!!)W+P^-r4dEe#F@~*-L*R<H`A+YVh`QR-4LM66f%?)3dCzHA;%8{AP0*RJa5e}sS`oZZY;y|KkfL5>hP^ zQ}T^ZyRt+eU1McB8M5>+@d&l81ZOV0#r!Lo2EMX7?_J3xPDDYK?wX+^jKqS8@OLMZ z(^(#B81{E(1f;t4^!iti!Yqik2LC`}SdkDlv?jgvgbX0*NaCXbq$bTu00K}pgU7S7 zCX~E-8c3vpMGZ6%>BAi6qgPcEB5 zLVV8LnQ-3eb>M+L$uv#-YP%jVCU}A#7a!nK*onD_6&%Yg`eD-E<)zc45SeJvZXV zJ|*JGJ~!gazAWO+z8?PU`{ey88O;C5EDj^pfuStrK_B)%!ND7iE+tPG`N7Bww$wX| zD^mtbOf638i@37x)Y`1l4GJNLotZ^5c@fsmD62IuorW_x9d1#dd8sI9ob=GnQn1Z9 zi($ENF95oE^#xE9TVosoi^#Z+L;p`i8kLkyV#62>Z1<4N9I`b=qU=JJ$1RDuqtGU8 z(5%dvtUd)18vT>`K>A@kR*O0_O>C7`ZAl`7Tf_~jq7$LgX1pLD&SJm}bB#8PanH^# z88~C6MzE8(dCcmFA-OVjo;tkbMsuVH;z;P;-5S<}#zEmPaO-NRpyt7z0?UGL_kaF8 z78E9@1*SN0ddJe_jF|)SOJclES{kZ3BX@cd_s1A*1A*LLjb$(`E=NRPwpovYfUH4? zt3*Aozj|i2+Pt`Dz;50dP(uq&RS5NJPEFABGz2|QbEgfHne+jD-(QQ8Nr9@0YIz0l z8qsQ@BjCg#Bz2m|lC5U)OH5DB^`L#HH4yr5qu!j+TqGzyCe}$%0~ZI0+9vEfDr~#L zIE9?jVcSY%zRt9Qq8(i1b24#7Fsru!{INN%2n0cnDk_DDo}XI)7=K<_aWVcFUWBl8 z7XK-3r|%S;yYx3%>4WEw*|WGAs{^&Jk7hFw^E-&@uD6KhfhK3c5$Z9T>umK{lp%LavJVuGE?9 z#HaA(BnIIW29dDI@`B2%mlln|20;voS;31YheO8VJ?nQ5p7j)^F$f=S$Q<4LKNDj&P@FrUt?MJ<^3hEC}_sf27G_z<0fmktsk zRsuRM;@np7MKCwP;L28>vdR7guM$UGJ|OC_0SCGiT@XRq0*`WlhHrt~Q8ty$WOLa< zwv?@8>u?OU)!FK0?PCqLMp=hgdDe7mhE;0KwvM%qw@$Opu+Fv4w=S_Rvu?3&v+l9( zvmUV?v!1n{w_degx8AYdvp%vuv3|CGwX^K%c0GGLdk4Fz-NxR@?re9ld)d3$L+t(S z1MM;Pq4wc+o}IJ{>_WTDKFU7MKEXcUzR;r(3b}jZA~=GO_qee5n?UdQ5U3rOgVu44y$*zq8$sq+3q+1B zV2bDg%EpsH*SHW=jW>Xz`9Y}A)5@kyDbT=x%F-*VlRuf^2Iknm5_xabtDfGJE=0zU z7E8ybJeafIx^}HC2$TVms1x8ZUEp5rhB%bo2#Vj`>Vs&MeGwer*XoCulpzR`-`_d_ zktqivSbmI^gZPv~5j20eH6BqaldQ?iGd|Vit(|TaU_TaO!e*Krwxw1XcIQ!mfX+4f zY>x%w=keAFfP|i8a@(E;{?9Y4GXW7j%jCH|7i^&CTNeN_dXdR_dkMHfFS9NOgp`Oz z7F$;%KIT7+gCg$o8%$2zTfo_Pn{_*2rgxhBxc7iZ^gio;aEU%(a^*e(R?)|-$H6T6 zq{*B6EI3A=w_X6x=u0Mt?yF!NecgHktfOz5e7f&|fAl?T6*x%WH@S5`0vqWk)~8@3 zC8CorEXuR;6{E6<8~uBodlzTTFV?TtZ`OJcq5N)bL^KcRP?#}Yf-~I$F^bO4n*}b@ z>UIqPVr!X9z4gFsx}Dts?52%O*4`b!bK2By2CmZSc+TCRK?FB~E-R#}Lib}*Qd)a&2``G(3YK)lJ2bj#iL%>D3zkPr`48$xt3-Ezp zPaR|DfI)Sf$q0NXxKt0f$AeFGg2@h?2WHizJq7Hl(@dt|0`ROB+C|`6on^8Hmw|Ql zD0>c=SLc}w!pDJw^#uDw@URl`%c=Hhh-*57F>GhSI(UxBFnm7vE-$n%vKN9F=3=1R zE@gU{E5Lqv6&T>J22qU8L3}+JTyL;%1dHpKiFL#uph)B z@UY2K{5ZH?pR}LCq412!S^NT+Uth9c#v$>F$zS{icwpbO-@>6mL^SW(@7b&D)r7HQ zUiptqe&e;^*!{dixBld*T>ldu?Iw(L(yXUA=h$0r@u3RNpvW7Y$$RsAK(mg zhBKuOMUst1F6JC(tTT=Yb||jwFyv+)?;PPwV7eWOGMkKC%~PDI&NL?9p_sE7xZjFE zNihplJS9%4$>Tf+0`)vl^Be=QTIX~=5dzoApz1jlT)8^G^L*zl9K+|}Mm*Q#dcM%P z2*>gw+>e)-yw6uSSK^pnjN9@WlLPvCX9nMo;JaA#y??B!RbP0O87J( z2Hk5Q%lRiq@XQFF7Qu5OctZGR!#g+^)_|redJY6nfWY2|Z0PU$;C>J8biK!0VSl^3 zTJPswv6Cq~?B3YF{jhfjVb>mj9Xk?xH3$3jVC>NG*qyo9ms7AOkHlW|cVci426ta@ z-vxJEaIfiIb`y5kQc!BqzS292%w&xcjj@wxAGN?9ie>q=n?sBYm?=ay0-b8YvQkIX z74^h+qJd~Awik^>6S1RcDw+Yj&{DJ#twme0lV~T}L(=Ueb_RI0i|C37{~n?zqWpV{ z-2iXhL+puY|9xPm*$=^H{RQP59gHCCp<;hX$HT=4KwJ+Lqrm|%R*VA=z#-yLZ~=@L zM}Q9?S4?6~fGL9VkRB{6c+(5d$G6#JOY=CE5IeNSX>Q0fosKe;1sw)+{nBFw~E`u z?cz?c6#N2rLvp`Q+z(LggW@4D4Lm9y1KYrp;wdl=JS(09>%fcRC1xIYRZtGo72-`W z5Udn$i+9C)fZo0@K0vg|N8)4f5v&!TfsdaeETTsR+7&McYO4ld5 zSY9o!k^celThod|j?U6!KegrF>hy12&)c!b_UMIhlU&*iKH^^1-o%~+@Ab*rU$)Dvf@>ltrTrW4sjfh&_Bsa@Hl>jS{QkJrn zqY|o`$^u1ZbyY*vRJBwcL^Ib@_0@K&0hogtsqIx`)kN)}c2rG4quE@wP%Tv})do?{ zJE?Z6z3KpVp-yUN)miPLx~Q(I8>lvWsGe$9)l2P$=;uCa549)Mvb~|0?F-ecFO;+X zYJeK32B{Hhq#6Zp@@VAK$bnCJ9F(<#p{^aO4pWD#@#+XQQRS*h>O6H#fMsPV!j|q< z_aN5kKHR0t)B_yv^e{&}J;pIlPjb}LGaUEyJhCpmh%l$+>J{}GvM;@%-b4nbmFgX2 zVR}!kMkb~YkfCFZ`WP9RK2@Ko&qFcU|AargaU`QbORJUD+G=C9wRW=FS?ys$b9Jd* zJzZ*VPnR0x=~5#-UFu*@m&)~Ysc9DRHWjcIHH-P1h`n=;(VmWD&FN(3b2^=Mrn8yX z={(k!7BaunrK~4u4QYwdjEKnW4xDEzYeG*k2h?+{1HH^#P_MD}^A>YL zy~}#f2h0uiF>5^QSl9W^=s3TSe#7#B)@8C;kEzYvQT17a*`7J1c4Xb9C38u&Wv!(n zb4u;P`brPxmg>!#iq=v38{K3m>m^z%8O<8WLCiaK80#VvnSW|BYa#i}Lp6i-k7DMd zn$4QW(acMAJnI}<+c?{385gjILGpmsCYG=!aSQWS-N8Dk#^#RfbTus2@+!9$1v0#w~;7b1_`@3>K zN&Q;hC!YRYm?4W~{NA2yzpp3L5AkIA13el3P)~Nx^JI3C*0ro&YUFg1(p?Fi^?$Pznv(nJd*PqYb06djFBv5S!^x*NHo zmys;`7};WPPrB%5^rVfX(DFupK;kGeGDnG# zI*u}O$I(XeINrz}CwtPz8A8h+X9pyZ3yci1$VefV89C%CBZ>US$RbNTY2+56<&irA z63M+rCV9X}C65@nR{|Ow4AiWEJT$>bM0skmN~$Sp zDtI09)sbqtDo`_2p(;`{!Sh(GN>r&TQ?u1kYL1!<-p8ZWG3r=#oH|~epiWdLfd}#w zb*ef|ovzMMXR7(?Ebu~}qZX)hA#0tlE>IV$i_}6eMP95fQJ1RA)aB|5b)~vWEml`U z7W1Zf7o*df~je+C(RKd_6YDcjq;?rv9R$R z1Qw@5Jn8NTSbHW~B;(~(S zmO`WdT?&!@`V=aCnNaYC+d*>J2oPtB?faPk+#C=tDa|B8)LYY1Cr zq5LcMNiF^VQ`X6N+vE^AIju*ADBkIACw~mx=;V)~dz}0+bbFIOhVE?g$Iwkp{usKS zlkmrA%Zs+TXlskMvuF#8Z(F(UFJ#UB27Hcgra(7uHf6CSzpu8GXd8*Pj%d4xZxQJW z2FNYT8F)H)LC%8zLt8mq=19tUN&Zr8-_Vu~ZPU=!4Bw9N!C%Or-5#8jZYDwUJ(9nI zJdWhAAU`AdE6BS@{tEIblD}dSJc;D5m=6EpOn43neph~$!CQ@=FKwfUl6aIn$@DhxGXJ8yW0!P3TFctRyS+M!fg{}WY*!btevVRe*`B%V-e;us% zx4~wAKkW36!9M>S?DDU{8vh=DVA**$YjcwB3S=!_3?>x_wEBB$A$wW<9i=_2>GsnD@cWfMlGEz>mdB}S@Uw&ln`4l(ga$j&U}gyoHs7FS2@U4rWC;y+g@=&+kB5xC1-RHd z7!!N9M#D1hw322c4Vu#DdU(+;mCBMEo&JdMTh79Ir*J4xve zh0^P33&CC@i5RR!|TJv~{I(3YIDao@A~(4ychcArV{z zRLEkWK$ZdL@hos0?*XOpt=s_AMJ-?|S^+W93z&x^(%$*dJk_`ASGCznShcN2R=d9} z+v@!Da`KOp zU!45mhx@}2;93t^-%FXp2a6caa^YaPT(HA&b zzQ$_$9tfYGf$iB~vJoiYc@n_#)W9063j|LCthB~J?lc8vr>m}kedv{W2axsm16QvRBpN%SQ6m~J;vz*{ zd&lqIN-f{kv1L{c*S>Kvu;CT8ZRpj!4tQ;i$zU`FBQt4L69PkHFEr}HwP%nmgX|b& z!yx+w*)GU#QE{6EuW}%fV^(&G41Q4+89b0@eSta~h#Pnm&}KP6njH*`*?4$UC&k{# zTi2ILxHdwy5vGk0ZG>kdG@Hh<5t5B?Y=mMX4BPuauYCgS8rdpc^30GgXl5Wr_yF&y7mGWiyg#a$Dy!;2<(qz z@Yml3u-9?OYb$`dj>B9B@z!x@>mbs4OL5jgjCBxUovLI0png<8sh`y^&_RAv>(vJJ zyV|J!P@B|d6;AJwu&O~D&9Ra1c4XlRHUADK%Lp)buXl}A@ z4nQo4416#eS(Cby`^(ypw6?#1piQKC~ub=xD z(d)OW+tlsq4s|D|MBCEX!vAjUx{F-zW)W`PMXmR-2(#`Y*85q6S9j6s2UvtvcaiEj z7U9%gl=^s!FzUHm4WCZYiW*UO!&c{VA>WEd>U|%};sT#5@_UG_z}`as9E}1Tu+@26 z$aAF8h4G9nny-Z{^5j#z7GA~c1AGfQ!t(ZigsFwRRT{at^*LH7VpAg`nDE3dDeN( zdER-!c@eB-cgRm7RGr3kC#B8ssh4vl{cXH`>1kyZ`Cuwl?v&<+o&(hiwdrAj-j z4DGNtxT=Q8p_1?sRguP3k;dC{q;Y0{`G2>5M)5~J!tdXWEuLN}jB>=ZNqX6T0z8|9 zB)rWqYzDm?j|5mXw~Sqm*fUAv`YOPk8Dg4?WzEd06y7;v#3Y?+-vA%xkN^{A<#5oQ z430`3jzMhH$u#nqz|nQ@K&z1KMTd* zGQ!hvRc`QEDz|{CuBAg266EN>h0Q!3#xbaQ`C*E0L!dnQgyXVDMvKkn?+kkDQoop{V z$d0m;+*x*(yT~rGtL!Gb%O0|)+*S5MX5I4e;Dcp(i10&YDkl6$aKxPe1o#=i^@e%i z7J=>U7DOBnYa4O05#t&V-xc6jBR(}^OCvrs;yjxI-i|pj>>TsK!f_>dHttZ5G7fB| z(tH?S!8gAVC~#>h%d%|C0ZOVyF?Cx z@cQNfB|J4Pqi-3o!*dOnFY#=it_0bE4@!2i&k1fHR#~s0?AZ^C+wcuf^C3K897` zXJ=EQ8rY{?#3eDl`aG3g61{*ZzJ(bkNmnLKm-JN9GNB_f7h-uUxV-f{qyp>ra5-Kc zAt%U*GFMKLd0^&t5rMr8EBC%Y?Doa_7-AT?4>Ww-E*rPY#Z4$cpFPg!j`Nx0eBL;p zHBQGh2a$h1?$76o^V#Bjt~j45&gY5K*xw-5&mjGn^O{)Ve4L-p5a;v5`Rs5$H=K@x z4x;;fY@g2x=X1jOjBq|5oX-ZQx!{6$J{Qfm80(hol|B=k&jaVPz!5tBX=aZ08Q^r> zbP&N8#P4aG@vru8e8XzyH=p-SV~&aQS>uk0>zS~}Vay)!z3pz8ocjWa+#guv{eeav z20XI6R}Kd%`3US7mzO!r@TTLck8_UaJ5aN``P^WJC8{@ippyp zW>2+24N^|b}FzP4f3SF(TY49?eGnDezebH4Us&euN7 z`MS5^eC@}auY;KLm8@MO!1y|f8DDdl@%3P4d_9~QUnd&I*CaE(<}>3f*|uhZ@3n;a zUXNnF*Q1&5^>|~KIFGcn0dKJv{YBSSomSK9W#Z0gDnCX?QP{i}vqKX%dxnKVp zFB(NG>d23mm;?4z#0|Xx{@0b@e%0|GA2RDJ#ejSkiUQF*uM`RLdngt}GrLkeNbL%- zy0&Isvv%Ng)o~(Sna!1AMS2IKMf#fb8e#4-$_lEZM-FBN*TWIrG(qL6sbD0V3&ycj zrm=vEvr-(m#3&kja$Q~xxYv5B>VwId|0W>#~n1!C}8S*;;;wGFYi zc7rFCZrncbq0)`p58hL{al^jTF^HKtnAyF?!)H1oml)6=jV5S;Rc4mm|B6zE9~cB^{D9ND~R+o--`nA4>|7tTB zkFsK-;#|)Z`K4NhG8a_LH#MXxy1#-PsZsyaminHeo~M7y>lF1l8Gn<}G7rEB=4+Po z5kVZ(Cs!cP4Qr7UVeV;??U7YR>yKlhD^5j@m$}gX&W5H(@#U_zmp;u>Inm{oGHbFn zv-xT+U(MvJd3?2pv<)-(wl}`fU6{MKJ2Ut8V%}cO+PgP%_V#1G-a*XPyT9>+j$)qP z9A@b~m^peiL+?c9=hdE1&CEN)_&hZyuV&;un)!G&8?W|PX)mW{;XTjzH#PsRX5ZD^ zyPA1d^X}>ur5ShcHoi>FwfhJ&?LNUgyU#GouIAX)Yv>JT*IjA+mYP>rv+91zoVuD( zSM%v=HeJo7tC@6}M^_4F(bayYEN0Nv>!coY=QcE6$tS>W{|uPzUjVE9E8w$V0WSNu z!DGJ)_L2|5UjHfhTi1cL{u?mX{{Xi7U%^wq5jK=R!B202o4y)Y>1%?MwI0~$8-j_x z30UZxgMYpaxaZr0cYbGBQM!U{epm3U_5sWM-WlTj?n6Y~!?2<}iAcKV!3h5nqUc^l z6x|9$(Y=i*x>ewTU!y)k9Nk)uswca<)}39OyVjry7eyRkT8}0x3o(Jw-M&BLqDBB2 zrFCkTzf)`0K6fYG^KPU*Y1nR#E7Gy&2Kd>@PIC$@HKb?L?SBs6{}*_?aQ<1C?wXC~nCep<>m~2#= zyF|qUvPHQFB$7#PHd&%b zBDve-ha!1|tW=M}PDRp)D~phB|BA^5MN-Jy$O9F$rn~qel0d%nazFh5Te{Ek{zri2 z-SIL#)kKyjpXGh~0Ly#Smfk7A_U`6$(l&s-OfDyF2^ffMFvPE>?Ez#zBbGI76*vf) zVTfx@+Xf~gKMXOhX$wIxV=a;gl&}1y$TUe{3iblBEE7_71uL6(?5r& zAg0+!&b|O{y>jsr{a{7*`QjfK@`;0q%zqIiqFHd-Y7#Ra$=V9W88XxDQ^HgXoTG&d(&hOkK*FE2)(r!IlQlPuICKiOM#+%9Fbse zAkyp8n3%3#oj()V$ROzAxHO837@#^Ox`ny(O#GE=2kz$ObJDioieRXYH2F76OzzEN zOy12?P0q~)Cg0}8oNLoZNZ$xPnA7$>2 z052M`qWw;|XLxlL{4b7O&E(XqYw~F}F}XBbn>?C3n;e?Ea{f#o&pgl`Y_eyLGMO_E zFQ{R`pN=Utqxj4J-CI4EMSB^1dB*Y|FfgS0?#uZ}alW->dUk z0x$T0Ebk^M4-@E0StDdv&Kj2@X}O3%|2%pYnQ>nN!|;o(Vc|8UjEW;>x0QLDao@2lBfHS3B^fQ1qooSU?vzdAL zSnGIZ9X<`X)A{gboNJxWr`IJoyRKj_#uCmse;e})-vf5xW!3}MBi3Wq6Yy6&Ydvqh z2w%mkz^1N%pW+?sJwD++!uhtA{S#V8{T1td18b)in2EE%OI*{gW!JN}vm3(yu!G&y zZVul=8=zR*!|%}9?!sqbFPwyZ*x#VF&;1$MdLWpL$HKdCsC_siTJ!8Aqge~=LU=4^ z*=6=oj9)ztr=`ZO>iqB*;?!JZlUAv9${QHHaJzjc;}-4*lg~r&5j+kYD`6F0uwSy5 z!#D5-&efId7tmVc=jMF<9&7t2`)7Ltvb_FbZvvKHpQ$ylwre|efJV?~X)|E_$l|Zh z&Thc>k&S;hoStOe-w$Uf+4YCwB-MymjYT-jJ5_bWZz0gJ#ZCzrndiZ3e~fb?kg}&Z zr#kZ)FS`I}*@ey`=VIUx=*+zuC+-anS?HH?F85{IB!0b7f-nx`A80|ibRq2Z5oxn} z1+%}lsD#|F+LJs`XkYSB&Mm*CakbjFJWc$aysz5Ze3tk-Szn`whQAU~8$~tzoAI!>d^7+3 z)^+BEVLS!N>?Frzn+yvi%hZQ7)4<3xJ3^vqW@MVSCN_uUnq45-bTzU~Z=>hAc#5rI zW51N;p(}vwB&q*@!P4Ff8R>K$3oT($X1e_h>eEF~3^nLa7eg^RfC42H#bJ!2(0VQ5 zD70>?B{4!$6dF`0No1uaOGafx9{w-d-GecQp&V3NhgUZX#drEnZ)oB=Hjg3-1{&`DVH{^l zc)zjsLH5D+Asl5o(ayCeag1rceWX1d`DkW(IKR2DV;%!bCdHNN=sb!tSYY_}7eYJN z_NQyXC$=o|bbQ|Ph>KtDVfa?sIzI0MczHiI9QzbI@QwW~ zEK)yuxV?=YYR~pCdz2M~BJ{R{?%u?q2)(9Wgr1Hi(7gIOMsH7ZtLR7q!r_fG_Xgqa zrg@PAWzK9^q$t}dMdh6U&D}-Xo$cZ57IGW`q3o{mFm`TKo{l8A*SQbYDL*ccbmu0C z9e}WF${IAq2(icr&pnI^5$KNE1Gq z(9wjACe4&^(S)%lL^R={2@U-Wu+W5rCasfD(C>(M5fS&kAoMd~p9%R)xMxB=6Xux^ z&%iq~+L^Ghvx%I;^!nx4%M; zF0wR{l_`N}YO*dhcA7b@*=D-4(~Tt_l5$A0A!&vr7?N5@QX#7mS&Yb9M3y455|M@I zX106Y?JR?z?^oes^J@u>&acPorU5d+(b{PYCIDJLO_3F@c@>kHi37dXM1tPn#e&{y zqCxNEc+kIMciD!S%;Zksc<6zwe*Kw$YJ?mIyud`3oeJbp@+5hVyhL6r!&1w`@G8Cz z58_&Q3pcl%IQx7Y6R}qhKj_Z}JmhEqCwoGhs3J(f|H^emQRRtC{cAzt3-HpV3{& z9pFdXKWuVqJ!L&@J!AP1_Zs!@-|VYkQ+Mz7PjS1iWB$@`jvd7DSeux$l%ntHhOZI0 z<4G^w-fnC+;S6&AJ>L%Yb|2;M-}SrWwkO`4;9Y+JtnVYhDxuN+{(V0lR``kL#-9R9 zynE*t1#bO0u*kdj{)xExPh)OT|K7jI#28)18NMhwpKkvf1NZ;ZfCNCXg+7+wmjYf6 z$N>~lNJ##m9H65JwIo2kDIde{O9K|{_|?E#k!}1`u0)_?3$;u@ar0kegr=u@_lJxiHST6N(&Ff=OGg! zv1b(mzY2k0g}|35BP(bXUwxvAuU?&@&Q$Z&S?X+Hh8C#5%2$62vIPJCWvt(tjEGup z3;Gze6{Zw+nAwc+nQLS?%CmetqkY^sPRh1?2IGF*Ximzxd_E(92**WMnoD4(xs0(u z6xm7knrlM5iP~-xMEftT$`r+xqh3{+qN*}Qd8}51dhvZS{SE$w;#$deaR4)2h5a(b z59h|Wl3hcyUrjVIuG%*<74|ki&Xuell(AR)XS8fRhcRK=OQY>@L6*qVoil(E3vxwj zX*Hxk;0ShQ{p;K}ZC?)IW${~K8(>jR6~AkmOxd3|f6 zM(nf9vtxxg^Y^dfC8^>i@fa^N@sbca*5$ash{)gT&rB`p8zpxtkTCLd*; z3^Pr7{E|XcdrD-DDJ{+~oO;;!KmYvmH?dvLfTFTV1<5hfii%5zgDr%4(kTlH# zCp3ytRhf#}o9xXZF*~=QELnn~IZjTIQ)Rw9QcjmMWTBiXXUSq&3S!sUa*muUkCw;C zW99Lnc|DO;wbPjHRg=9gkmt(tWm8$od%5gQ=nQ6+iA28!4LPj4hl|G&z4telAul73N9TE7pR8{RR1=Xv&ilT+Wf@ z=j`ls)}Kq?BseBkh zSbbDWrqu_R&vED>t>v_>g0tscw8|UA_+f|R=ycPn3{C&a{#vv!`#w{<;6mCFwNXtO zHa;{N6hgx@>}WWUo8g0f;%j-S8d!r!pSe3 zoSefq%orR#PCZK2Rf&d1hSt??v#Bp$} zoDPS|c?drsNW|4lo_GfZ*{~}k2M_~t2*7X;g4{hxoCj^*c1Y9I1M^M8nqgJIZCVWj zr00jq#&2u*Z+l}|&`M1^-|!cohY#X;#@W8#Ugmu;{mLf@Agi_R^ z4Bw-~+HPIx8&4oRZzwY~3k3;FOO84fYz|(^4uto01*iZn zt;q3Cebl4oUjd~;=Hca?*bh8S7ReGhPaX%W`kC@Pd6B$aE|yE=GWi(z=AH#>?z>>j z{S3Tv-^$;?C8xlD+fX$^L}*7a+xAwY!Bjf|-I!9GO#b=j<_CnFhPrKFmo7)NNOK|c z@nbaZk?(d=Xi{x3Jb5b6`pT3EV>)=4+( z&Z@Jh&5O`mo;1;lLva(k;hAm)y{p$+bwE@sz>lViY0w3JmA|P?b{|noD{cMC@(U&> zi**yf`7GSToaBs|Ma8+ra|h&?n9Y?X2Xmb14nR+}q6kw_E3`k+79|g~*P$I+oT1}M zx1$EP<9(v*mN$aja1Y#N-JCr|gOEgp%}z%->Y?5?QwNBe-qj!M&!a>VF0TSQ3=# zQ(A;!6ItR&xWd*0qH&DcjC48up#W2#V+yu~qV}46T^*^ug#~;G3eqIS6kH*%XW-@~ zRwD<&!|0otQ#~+xLMH<^vQ++}h9b}JBkC>GMjJS$w!zQ`A(N^S^(#^deJASEgvFG* zQ(mT8LK|CP)kadBHJDiHN1&@+d0eN_d8DQ>%H&10oN=BSzgY zr=?GksNFcGaZl%mh{E9Ap8jpIAfl{BiqK}Mu4>?`dZ|Rent(yzOSK-c7d4&bxZf}$ zDT8vcYHHO)1m|++6O0=kr&e--s&8c>+~FqYLy;IWx1=;l_drdN4Ji7dVK^|T3-`ci z(h^Ut=StPistaPsADu5Snmn1Qh3-=$t(LGw&vSl9Mf5zi%oO>g`U26pMb1MwC}`@U z2VZ~6fdHe($MO^Pi?vqN(Vq*Sp3i|m^@YUlSo8FHXw6p>E9GLoWfw8q!5Z}mqn9bZ z9TDn4`0fr=?upimeYkETLhW19R90n3pab?SGxK1o8T? z{i5?`5r_L1HClFOS=IV8zYBy?mcKdWIb#^*)KC)>sw6Js=-=c=;YFdc2&czH3&XsRHflmnkH34s7^I-X$_Oo0O@<|d+qxSDC$}JIfUoGYQKibeAj@W zHRy?wldQM@#I#BSanf*S4Qpy`piH|1NV-2jq=#dYiyZAf(JmA1Cef}D?GDi{keeNb zCo}OUk$$#hC~`+E3z|~iy?=NioGvkUy%82n=uUyoS1HO~(|v zMs=~a1D{1L=PO9rL9>SUahyL|sbWi5Enln;Ud3lp_7Ay$&L4olPQnLiAI5yJOn#t# zLeTpP=Q%7othbmli_{KQ4TO_F?R<<5>dlc-th&5K?T35?{Smc)0LOoibAER3kCf60 zd6r5bsnj%krt_|Qcf^!>P#t8o0f*~CXA=%vK1=corza<~YU%xr^Ui`O{F-`QSksep z@u#xLir~yDOP0~?QY~R8oJ0btm9jv~Q60OMw-?nH9JNiHhva@WN*!pma!wXahLTZY zWLfFRDgBDd3MZEgoRgQFS(;x|h&s2=2;gw% zYU%fsXJ9{g!n+ltPi;i?lXr7~5j$wfQq45Hva@xCXhiEp-);1J@DN0R!$aQ17p+)< zE}^055PqAMb@-Q*`uGA&t?Xv|F7%IDm-_4{h@q{`{Yz~elPql;_%rwkia>A&(d{ZV zirpR{bUw)pV#+g+;H<@q-iiv1J{S&8#*6Muhn|7CVvg9EXNI1;&%7VTk!yi|4K&jt zq0L&R#f9jquw9C0=->9|L|p=Xk_LsU&s3W><#Bbf#WahF*o8+q_|>-lFPUE4nFk=$ zN%|vwvzXBajju>4SH4P_7%&j^5#9B~_{)?R8uvl}7T<2BSux8hrD6~Zwb0^N$|JCB ztaPnY<=5ZToTfBKaqX~)42VK=-1U|6Juqb4fJ51xQ#kf z$Nf97H54+T-GoCY)6(1mgDu zER6yh2f>d|R9PUnVu~sPA>kxT)Z)vH$18n*Ov8532WIfN@PCQz5pY95>|?xm&gjKV z#k3_o!`X-+(-W){acXf>qwByV?L5zh{|7;52(~~;E)*@vbV2uMY2IPTlIY5(m;Sc5 z7-;*K-<+DYnO&jLbE?bNe!t+tDn2ET6byHf8)E%$Vrw7xa4JzLa_hxKF5P zV6`c(Y8SpbfahA4ktp<$hT)=oluig%k2S-#{1BNil7O-Y_0GF;%Le0VjYwmN~e1z6rKH{ z<^awIp~!6H0D#5&CAQtjLjv9mj9`U|W$E*fy_^#eq&68Q%ek;`o(qh~^$|?SqdcJR=>XpZ0JfyAi~AEiRW=Y8O66 zczL+p@PCPI6%y>6Y0dXEqUg%X661jj`T-V#Ij|A5wA-VbbS!bXOck<9lv>-hauL!P z?V#pEZ+`@rP1rA@CxGgQ1Vq{#^tl_cJE+^Kbv-Mu;WW}0!7!2K)Dqpy;X|b(BA%|8 z9z@R?>u_tlE5oLI0x{1Ia)#>bq3fULEEI{-Y565>d!T9i0%2Jj(YuWhvD*UC-W?I? z-5pWheGuW@57FJj5ZRrBsP4lN(VavzcM&4Fk3tmp@rd9)1JTiDrUn>0=gdo}ektSN7*chqY2vHHwN{ju*Y^pptqF*k#T z&HW+t9V*WHBD>0NvOB`4d&*s9 zFS$F&*$)5(`*@hI2>V!K(2qwM{Nu4mZ+{^$jW+?g2=f-ww5>#^C*lEpEUH73;{?7ETDSb~-BX zcYNJU)C-Ni0)@JAA>Hv%<@%@i`XvzqV_d2J^2;?QVJ2N$H7&7dZ_0R0DE}3stMEnZ zy~cm>e_~q>Y8wQ(yShrbWh{P7AHv7um)`lNR3>W`-7QJ)%Nh-I$B=Uec0W`omXqaHHk4lem~yyZ1|Mqs)uh zIm6%*F<1~AZ18t6UP{|e(>4xKfS2PY)+qPT=HzerfPYZ6{Ek&YO+jb9rbS9ofFUYF ziEs}h#mFeFi-o5sTI@;tDHqt5scm%Pp&S*-_*wFh;ImvNLnkO63f0k=Wo#Z;YigQu z89z&~Gklio%J5kb>C8bf8sX5|iVO-xYG2`)tm`fjL2@Pd%S(v{wz0}0rhw+7& z=N~mwBZD=Yzcan0Z>$XGu+t6{Ass{?-X3XBb6UXVSK@jJB2%ybJ7tN4xp?C~Nr*K!JU3dk~Er8Lj+l>(7r zqtbE;#B4y_Lw^GTG6on8HO@Q4ur-zJ1z$HHWb9nh?@+7osGjT%5Df7f61ySg%{TxS zQ{puo5B+S44I`9jHeleOzGH{wOc*e7Y`|I(T7YJ*LT?1fvCiRX0xZ& z&+d=m+`%n8bVN>k$q`l#EMOBvQ@7-xVI%vdDcj#Vz&;!H!X4eR{fG1&9bat^^x!-A z-EG>qXw+C(L24q0S8c)uz#7tknamn9kD1G2)=IR7ePk!mPP7*tU?8x7AX>ziVOm8kCuUp|#L5Z0a3HXc zs@10jkkpYt+9EkqRM!J%PI^a91V6!2iqgjuo;>eKe=t&>O-!O_Y*5HUqup87Ckz?L zBV_`s&y)dQuc)v40vOoLvQj|wleq-29Slbd1^l|0BW;u^V7ZLbRYuIWUYIckIj#(`?baAooIfKuh{8C@hOFdHa2!PZ$pJ=V3fVadVD*=49tK6H0il!?^22-4zRK#7NaSID{xc5VPry_a~-TGXb z1Aat5hL$%-k|1@u6$c*K6ivag5-np@f=F+Omj!1QwQ@{pZr*enssx#0cQ6x1pNJbP zL?)njp>+{A6+|>#OAjf9-|2vut`NKShdCbcYA}^+qxkD=?52!ycfqtx(CuX7aL_zLk=`%i$+E=ZA$j;s|@=-iD)NR?Mv+<4{RF6 zk4p2SlsVbO>H<_PJ@;0*-v7+)3mS%(q4wCf864#vMFMQB42#ryx$=?X|#h* zP%)MuM#`F6Sf=IK4FzzJ1rHCJUH`z4AE_aJ#luF97#uJ4kAs`ABiw|ZGBIYz$kAz( ziHX(}xYn1VXSB64?FzUKFh4X%^sl?vb0W(UG}47Qr}&1X>f%Ppf>Q!630NwjKA9Jd zht_>Da4;xD8_aWkzV35Ak-Umi`bBR9SOL=XiwMrOtRJd2GNs_z{sE^7?Mb~o;*JaA zDetW3Q{RZ;8TEe)b_@);Q$^$GTPY=UNA%8%9YSUx{}v`Cn&|Lh?Dr+`FjFOF?NV=J zi*Y>AN$%REV&R^a_hKX6UH8RMXOD)c)FJ$w=b1M}+Ba&lU&lYByNiUlTVBK=#AmA~ z)l&%TeV-s-7Mb;6G-TKiK{Breo$#$lBXF<1%zo5=m3a;1l~ZPDlx; z7^R0y)Ikgj5$d;dyB}IM+)DZ-e%vTFaIAYYlvm6sgrWNVsnkgNF?Nnwmg)AlrPFM} z{7QpIrM$Uve~51@XXk{Bq}P%s;>9g|BI0-Ba;dqPFkHp@`Z$mbCJ4@3$KiQo>ZcOC zYrTd?cQthA*#g@A4u&tTe?feaF# zL_OSrG)Kz4$YD@BheWvi()`(cO`!G5Qz$i}F8}f}hYl?_FI`IhnhJ%kX?C891g>$I zOohVMG!<4wg4PyrhL4Jbtm&*B6$x0=%-ai@e}vRcb-LwK9&6KACIRGH>pJUt2q08N zS^>m=7}rOOGp!IW6qU=cJZmF;4RDx5!G{@-t%`1I=PE2uw^Vq;mh&1P@+jlI#NY5u zDoDlhvbRh!j0&fG>1Q||Xn=!va!+hNf&&D>%Ev8iWk4gQ(aF<^!5^`j^^BO_v8_rrjtd zdJx-I4!iFoYWTxXw1~AcLDD^7nfo;?H8(!9yzhjG0wbeM_A-D3wN0KzIKIW45MIN2 zLUV#$RNhMllfd8g<}$kD5T61~jjGbyAkEE1S*xkQR1^MU-7H$mULV3gg$`AE zN4o&hjt*dx$S{L-?w*ETz3vaOGhtriBaAm|nvtU1Tdo<27D(7q_LuG`x_!(fg;t?A zAKHM9lv$tRF6PF0lg^uC5JHd)+=iceJ&x3XbX6At(amMt5f2UT2q;=ck942&e#rcW zPs5jH%qTCJd%DuRr75-s>B%}7)hRR(`s{Xp3bvS0?XKZ6bvm>+5oRrn8_&KM_=$1b zo5yYn{3o-ZY6S`Th+AtV=t_eWe42podzFrI?>MmAoCju`tHElMiDb_vnmt^CJcDkR zc#xx$b-l9$v+8f%bhC=IYA=XUA(b<-DD{To`u(HP4Sfwfq%Q!ZTfWgw8T(=N+JMDXl-!Te(rjbGpxD$=sO~tsMk*-+Gw$j4L z-J#0pkMdsAVqxrSkq;>(I&5LYLbrTiEc9dJO;11a7ROLdg<8WqPZ#v&Kk!>@U(L&! zl`hggncVS3k8y)R<7j ze5&*YNGZnRq~NU@lu#mHBV0U1rUYDSdWd`nZkXv9NoinQpsnQff;WG60Cw$}#mU+D z@CbaE8mVhab3{>g#U^Gz{8&xYz{%}&^vESsllM0y@A2fsK&T?Eaq*!c@)5NPT%@ALO z1eaVYbV@{40Fpf3=qZVzg7in4etM6h9c9N$Cth}up3*D+Pocq?hX~>ABk!aXs9~;a z&(YQ;(aUq8W*RKYW*!meF>rcsVc=+4Kq|gWSTl>j<+5Ru9RE97e1o{6 zO_l>ytD)80+6m-_<2lI=0!u+i)(3=SCxMV`B`C>$0UcR2P?0qO2^po|>&!`Z5kwDm zqPn0U(;i%R%J~%972$g>T#2QZG`*p0w%G-_7zyGo!s2}26?eSl8)FZrWV1L#_uBMI5@zn?J)<-HpAFws@MaQ+n(0!5bM_9J~}D>D?;y*qv)L-0n}oQxSoN zq%i0qPg_7o)lhXTpT?D=C_+O|78zoja3lPJHfG5^iS77O4 zt04P29WtG^e};W5^@}l?oJ6(Rxdm;fGfm#M5ni9tY%3-$9TtTy7c&Sp1?@WhftYt? z94Zt!EYiNM=xx{V;?~Yfinp`-OK4FY1RPAYylJ_GQIpt{sg~|ti2-c6N=8Z;Ycgv?dHZYsG=Lmg1*@fA- z&$)ek3Aw)nYveb!qfL%~B1f09pS72RGSGj>b@_h=E8?;p%u#CU;^O*njjO#Qh+i6o z-w4%6&o!xDus#~PnA)6r@DDa%(KX%EMrPNfKDVtg;ITad5YP_cGTZ~bTT|Sx45Dk3a}K+}a74X@rOc3?Qg1BJ*4k5sOeluL@l$ ziA4(|_j{xWU3EY(<9^43&>87pp?DIR21U~V6Noo~;jQog9(|9NgJ&ajw+)Y0`jeB- z+;&>*F-_q&_~49dTd_SCTRr1rEphQ^2Ie_S3`Yhnh&y0;_zm2r9^Ywd!3*X25c2D) z)2wPB7hZ@BqB{^RSzY`hZ-;p7BdlT*=YRfr>COzMRU%-Qj^gtdNw6KvFt0-c{Q^8qG|T=^Det68pO{j5QS0xZ z>VU{g`-BIGdgwhw_KhBRNc$}HA+l@T;fZ8=aD5nDmY69|gVOegI#&G&BI#jTT>BH39yORelaxJBC_o7uT=etrx-RLydfTJBwW12n(g)uq<t|R~`HzI8)5; zq-ly$>J^=kg>Hp>Q%zUjf$RGYEY^(GbO|bk?tFUUI#(YZ3(6CUL5+K6(=(3I>A;7% zSBCpTYtQ>7*dgBBjlyrFJV#^*0V%v83Kn1rsZNms{LOOS(arSg^qT4Y68s7?#p!0I zf8Iqe5`T|To!)@PzDJ581~l%OP0u*AsS$6xxH5`4x||6GIxj`FM2|$z#IA{6iQb9b zK&Iaz{33Uec2@eTdYIFbOT^wKvF{Q+9=?`x0EB-D4Ja+pM&&%$HF{s<_R}}KUqUq! zGncM0{c|_8noETGhpRuE>C6X$4{tD84Y*T{&4ADXPA%Wv>VZRjSIgrP(tFuk>D*#$ zLhpxQgZYHwJ(~Wp`}w#Y*&Zoj=isclJ30DW@Y76XSW_=MG!M;mB_DB$I8~e`&xZMo z@)OL(dCaW~my+4Cx~w4|f|-mm6kLVFKeWTC-+XO=^=LiTcW?;2XW*}12g68E`S&XE z3bD;2?0(|02!L_Uk$2$$r*-Y`yijK;gNv(Aq9v)*NJ$<>fC6z81F%Ula>t!&O)Wpx z8i%|4VCxV<6ENAG4x9JCPwg+SNp40PZ}z=TBU9@zNQ=5Uew^BdBdiIK9daQ(|FTNF}kWF>U_f27AGYa+qA+f6jxS`3<+Cin5xm0L)T)Si3`-*&8qVhWn0(wdpi}=@kBZyyif@C&WX|r30r~|D z!VSUNHU?~MhlvRyPfQa9qF5X!t`Sd*&!r`sf#0AlvLtqsQRsGGIZWorBakhzlrz=3 zL8~X3Y_;>{LIkAVjG)u!kY|?o+Tg%pb~Z|Y_8oG|g1-_r_n+l2l+lXvFR>VBA+pfuMYjtcS*|Qtkjo>pTK4s)BC9)a2IdXKgv|CXEW4pcG!KTb6$gpX51D!nO zH|Yhg5ZR?n7G-3yw1?Rf5F9hfhFim)YTu142=|eD7GS$Sz>6U%s1=Ev2RefS z3F1!ypNN~T{SolCEeBiMtIliA>&_d_3g=DdE$1EQBj-!!C+81juwW+V#4d?lu|B+| z#_PlTE4Ueq_(g}7_uM;)ykCNEu=HDtEkuEzZMG7@nuMJfsw_}O1qJ8Wx>+4Fg0okE zo5PFS`zctdQQ^V`{B!XfD0nU;z~Aqo3Mc`X3kmRx@Mraz^( zB2aPqx7>Q;yG&Y-Td!9lP_Oq}sJ---$-?Co@CFKG*bm~Yrc*t>yPW<^d*S^8{LOOS zFfSwQ=A2oJJ|DrQdrz54HLsL0@Ql%x^n*rjz5P(tecHDE?O%5R%9OR{p|z9uBNUSsl>g>^&{#~@H<4dgud#B5Gh>wBpOj`cd@%- zRK?I*2G=g95-q=+@8ab|M&>p zkTdPMz(g!WCgi(tM?MWO`bvA9{Ui8IZKS|z1Z+ePn7=4P@;**K@QV*dK7-*fg5`i? z{18MpPJkh73V6n+J2MduJu5xa09*m^KY!=cg^nCCt!5TF7EZCexjiDnW zzPFmQg@rO4>8)z7c0(w`JDvaH|3JBqtQgBa(w+gYze%=HPARx*NUy}dF*PAf|55mY zG<6)6@fKf2UZNf8?n>%4?^pUE?o0W|W?ckjzHi{n{n-XI*#4uN+lnJq+L&zILUJmq2OkbUAoNHn9M}!BNoiZ14$#TPoP+-Z$ z)X$kahT#^dP%-8q4Ofo=Mp0y&N0`N?ki?BZd53j48i>>P)Hv_G(FysQ?t`-4JH#= zi=|S2867$j9&9>J(vBl#vb_V1u0SD853G9^YIfQcz>Fv_;#8rAmsd)2_(rOyW~G0T zQu7jgz9OaC^KQV@c}=I$j-N`-bJ_?eZMjAC9!od6oFBD^LGFhqg=#M6H9qLmED5G7 zSgGl)sfgDpbf~;nXflH1VE&F-(#&MD8skuI5q;OC`7)k(yfzR*Nih0hIoDeaL!383ejZBkAl!xKhBMzg|7%6OnGs`F~{ zd5gLsxp}ISkSk}AiO^ca>W>%EH~gc2)hr7)h#SRC@?xMcDaG+}1Vf_$^&nX2V&bcm z7ZBtNNsezqAv2G`Li-?1$bQHl4TmH$NUs((`c5h-Ek-_fZC)D>?##O2%xo;0!e_V> z*fDnoFJ@1%o7fXC4iH1c0b&FwAI6D8#Svl>lCn=1g<=-?GUtk8#fh+f&ld~C`Qjq9 zCYFkO#QosWd`vtgow!kk!%9n>8>z#4uWm@VAyJ}vA#r7oqd1|ywYCfv_&GFeUU`xKqSz~gPrqMb70b_ z#H|EkZdzu!Bt9B2k%tzbz+FZd3cffdpX`bV^bv!Nec9nuiiM0A9X&=U59b}$@T z!31anVNGBu3?E@Iy06WnzgqaGtP)ttK?5y~VPGi}V51E45iEjXi*`7as$BHf7$%8CnMD>LLx;gg&zFXzRuTZRkMvFDE< zfH8=z(5Pr?HW?)c6%`N6&6^g?m#h+PVN%c>)$Rd9mGB8jKg0|RC$XP{p`$gOxr~v} z(=2|c)R_&6C71u1IuOw9v&0nGx?#J9J$e%dUl=vv|JXYZcrB`H?N5E_#exL|EZ7TR z$JhWtQ3Rz}gLs64oOtBm;h>ad_u6}}z1FjyC%3lr)7yW3atA4Cr80h9nF@0Ya!;@R zQ=M^eKXjZ{rA|fsllW*Ts`LDpGHmjubi#nmKY;_BwN`0UMN+fsyJE6?sgle7{sDeQ zzl9$bvvj#1#{3YrIsYa9bwXb9-qhmsG+7IeZGc^->@!kB*LDl~w54rKb&iYHBJXlr1Mdj!8=i=K}F&g}?E-WA*(+ykZ5ZzxpxUGP9<1vWeFXqkzQiN;cm z?1nIBp$qY|#IkckZ{H{XRA&fP!E!L)xNxnqwkJ=_88-DCD`RxpPqAp3L^ZlC0PPxw zqx>ef@RxH)q9(9JqEO|wk&?Y8J}5o}cgXDy$vboxQ$uP0XPUb#+5dkhj11mN&Rt5) zkJjz}z?q)Dyw2#xH^;x^6m*uYtQ5YN(^M9H`+8QP6@lgLd5&u#xFOX->_u}P}4mZ6&11cszdI%e`8 z?f{D{9Sw5rv zA0-8J<+HsMnbW>02~@#O>^~Ru<0NLL#*%)u{Yw9>j#ZPRB}1FW%ofnh?RRDNuyeE< zyMx>Baz>=jZU1LI^j4BP05^qlH90#o=O(IWrg!!>-r(Y>nQelS*)?p^qEGgIPLWLV zIZ$cf;tMhBJrJ}05mMHdA!PknRHIcL>;~fIq6Q|h@wxHgs_oUw>(<;dxuH4P-?Rj< z#@)xbQcpmxU^rJ|3T5B_{g4~jB&SudKliT#&~iKo_`)IF!{(BV1Bv7vg|g$Z-f^fqp5UG6oy5)T6z*oH zqw#o&cPYw_zw_=#&+#qqZ%~$3{0;(m;PiW1Qx=GDicXZUmdODplP-Zk0`!PqiSI3* z1C?6y#90=d=C~_~2uU}b7M~8Mco(}njGPV?IGuk3QHDi8TrBPN@%kdburim+H8aY2 zLsUC&Th#Nah>R(U$(Rl*V?RFcU_MJe={P>+WIp07H1;myGp_Ki^se=8OIai^I3!&Uh)3w{mpyV`_TKu`vOhAkWcO6cLk)rI2X;{X$ENxe@%a_ zRIAUF`Zh?>ADj4_`kVQique*dAL?)E5BEp-TcxCZ`P`9Zj&@CRN9|{hUeMgp_v|L9 zS)rvWy(`O-*<8M|YGw5TKr#=~Q6se|0%sR2B}Zp?+fVXOE?gOPmzEV_$DLgG?gXci z>}P4&P5&aiB9KBIkb-$cQ9JDgj={^beo*1%QavD7GUK6;P9^IQyY1*bVjNz8-@Af4{yz&L9t9EbEOp=#r*(rL=N7{8TGz;tU-t!0fmzp~~7BZWH&)Ts(@ zx*uqhK$_kIxU>|YrOf~=U5gKGFr?2jz#~b83d~60MV-h#Eu-+E{shrCK#YB)f`9=3 zDCkELm&e8P6vES+BI4}S**TZ%oLr!!6CeAZ(>QxctJ7GnX#(4l@0jZ!S^X9VH_-7B zD`XS{e*yyncqoHK%ktMVQ= ze*^J7HREcCaS)*8#d94HZ^f3RtgpwMM_+tlcpNd(F3EKwUznX&Lzd^+u3lZW(}`H> zds60zH7Y_bnH`AY?dEzU|BOL$XFWgP3Bgt8MrOtWM3DoH1iry`oRC)X3)M z#=RPvhqUfBYacKIndG#$Bpdav?S} zn4_kJPxKHIrJc(!j!9hPyF1i|yw&<-;t4Mi+I_{pLSltz#tx?3G{21VL*fF9G9>Y& z>5a47V7Xa=mofqJKiP_x%PkBZ97iBr$`2D0lA%eL?S_!A)tRU42g`yuw%$Bt8_7I@ z$@CT-21~@uVK7BxjcN&y9@*IKWpK|8Q?>UOVV28BS#R*7J?WuABNqLDagz?`$8$9< zc-`|SAe&Ga{ge~$!oms0u(-q1ja}cMUtx&N2=o=qjBB=eumu&H*|nM7q_lB$n+ZAv z+t4~|f$g;R1xns&d}g+~_*(~i2Gh_{I3PGYm=~NBoDp0UT+Ysy?Es&W?oq)Cq@S{X zwArY3$^SSQ>2(>tZ#GOCgk6mHV+n@JrMi?g)MbJ@|dW{a&mV&3Fz7 zULdhBkkrCpk_$sgFKkPKVLT~@i6j}Ol4iIpe2bZsRKqZm4f7=30ApZ(=5zyQb#v|y zTXR6|fTO!BCov?j0<(^Q(Ipd?1|NM*8Z?#^22yTL$Yx#v3KioPMj@U+_gWC;_0H)4TgLr_cP`y{Sp8F zdOz7M7B2Nkgc$5iVy5YD)YL5zISifJcJYhV> zSGPgOq(Pi~zyS9KT@;0P=)cu=Gjg>r+Y+$NjC0|~I`;K`oYW$?I?3859g}i}bYfhA zXuYOZhO=!vR(M+x(@Uma`<~87*_Wh0v)bc&FR;3u!SNO$_7RaQ z{Ta+bXbZizO-Bb;AL?M>+YxxMp|xM6A5!*!DE*<5IqW%WDx1J<)Ml&+7D6vg67YJ&m(323Nq&Jg&!fT`x(IcjtIJT15UpfVEW#G z==%YlUkR6QO+b)?0L*U)$;Ot^)&MWJi*|^{MLR~jqSiAhnha2WTGWhm>%P$}WN;6N z4u(zei0Js}LkyxCa!8OU6ql({}^%MBjO{`>p4C?0qV{(;-8`qd_jC+d}(|IXzH8d`IRLq zebOyKtRbDZ64OYn%J?v=8xOPBiJ6!O9N+}z<0O$&#(zyVRoP(*##gfGBwGs6xU4}H zeq3r+iCwa1<$t1AQFnaCA&Bt8rp9QN_zu@?=8x-wN7?(`VxBN^(RsI>`;)h*;(Dl&ZTizbja(hDYuqa|4 zkbL5%=hN6Wi!!9CD-?47;W9gD>im&q z_#y>P`l0pyd_**l-`ZaaW7gSw-@gW?tu2EKU`_iWB1n62Xu9K~&a+s3H@Gvk-d~re zv@f5W)T2r4BpoI=y~f~`R);BTXIlXX8Hr_ZzX<-pfVtx4La#eQ2%%&U!Ox+CxEO4x ztJy8K^N#UPfOo7*a0I14q7;+A{n#hCNfaZ-jIZGHvi_F*wHk!lmwap+>tH{Y%^b3_ z2NrHY#V3ltFX)Dfxw*V!MZekKpFqL!{+a00-Qhn>n)YM-;y%HkVAtSk;?dUz*AdgX zDY&`4>m^p3neXfn9xstu|3tYCh81Ss7Jk*d&2Q&8d5(EDGq(Sm+ZT2rnn76^MPi>T zt*6lm)M>aF!4K|vRF%C&?bl%#noL5ShWGjxY8l$8;i4*2Y&EKN8g9S{Q{hIH+6O9< zto5pO+Ff8GgTXP#4Bkw}%az~Mw)B1fR;_%yBwRuDqmAVv*}YQBbS$ zfmhfB7ylZ?>jIU>nP*6?MNKa{d$0LdY7O4G)Xh=HprX->+uLedcl3VjA1gP-;86aL zNj_z*QkNBTY7;MZdpmog*lMP0SX(E)$%I;NCYOQw9$%R7ab;SXP2fxb)^c~`Wb@MM z84i897~7|1HdMQszp3&5t03*$B3w4y7SB-mAZnj~5g;<-fT;c3TO1#bqM_!G_yq^> zL;3fbzu{Z86!vEAVA4x>O^t&}x(624LKN>rJp(td!eexd3y;|`*opgOiw%Tc0QKJ3 zIAvC=Xhm~oxhq@t%9-@rCQAY%_xSfFTUMbn0p8dg#!ugy`B<4tOwa^!b|8I%k`o5$ z_Q&EwaG0bBTz;<)%1tJ|=dtP1ul+L)S2G)q*0K$DO#Wk*PcvM@eSU9L}bB@fuzskN!C zF&l>nDk}lk>M=vaJ%=^SXqb#XR3n_XUq8z-mESh(+1xl}O2Z7|SxV!aS3;EcRs$WJ zFH+->?HEH??ALOT$u3&E%Zd51$E~NkoL&8e)!a5xc}H59MoZDi7{cW02-o}LQSC&G zbfh!A-Y(d+orqDPwMIB?Xd0)8(Q|U!22fdnkxX{JdVQM0$0P$*{FsMrL#y|*EBVf} z6NTUTU3sQhPrV=Zts-S@U)Vg8&Xi%BreO- zmXfsW?Zq=)yuEv64Mb7bs;pfZP#IVmR0w1{Y){6UUjX7$;3Z9mZD+XR&l#mhOSK4+|-D&LpGJ#b0PGIP8(Sy$@R7yaI*hhBKLM(S5 z@W&2=o%_fYpz}G948qC&x&Gz;wYY9~`+xS|fGepd6h|AuWVI_KLN^Bw1b+?Q4L+er zzC+j}ToQJxRR{uJ2h?^HS?xE0%kB#lMa7f#0CBb+0};D7_%(LAK_NMz=EYJqGZBw+ z=U^8sQun3W{;xtByo0lSwu;N#l}=jAzsmab*TxOVZw0niv*Rg#vsY>6pLUzbk0yH^ zYU&uP{LJV1=flx_A#;B*UhO5^=`JtuHLncbVs#RFYm>Dc1atHH44JVv3oI_n-`q1? z1a5)F$Yb{6{LEezPW-Crqq&%Aamb{#Y-G6fvzYQK(e&TB$C&|zIPyu$2GSITIIMD6SBIWM}@588!lu+ ze_#ww{i$W}^yzOR^C<5efZL8*9=dsCcCLcyDzCI4W zgy@jHC=*iDVQv3sAqD89xabLeu+EfrnmpGF#HNoz0T## zl55qPi_&ZjbZW?Z|ZyO7a$j7bKS6dk^-m>aVk#-=C;|d)&WNZk6E@ z{4$!^bb!PoI^@YD*c9dWg-vmM9N{C%@F%_pzqCztb*lB&bTpRlQZ*9plaMj=o5x8h z50l@~mDG#YWfXb0dbd%ZcL!&s4rNKJnO+-}e*4LdJp)RS$5unG;#!(xDQ@Luz7PS} z_({7uuYS*apYp#CX=Wc<(yY;&O10rMIn9MuprnVNdY@58_yrG>2KK-@?_AVdj3P%N zK*-*&bKR5;9|wY1JFWDUWl!@xB9?(4x)Cnv{~tV+15HM_q}9>hF^bns#;oKspYxul zc=Cm0FzP={xM75dnKVY#FDg#Fh{l`?j@C`QY#MdOYkzOH0*n*R1skb44V%0lQ4!kA z+mop-%=12^O7M-BTm*qT~(b!JvAG&u%}-*bqko(0Wh zP)hsxn5Szn8Niay{?hx(``Y`)Jm<1EUX0A5fT=r8X`I}WS^w*aB!&JcS*OLmia?Bj zv6D)kvN!zDo2XE4M;};sOhpJ?SS5*<@%Oq-yvsbTBc@y0qmpj!9>-oue+QbE#b~9qoCZW;v3DRMt*}b*TJZoblG@)&B}%nG$HbF-DX< z%NyZoa*7$2{+E2Kx0slP z1a~r=>4B*8VQkfKRj*t00HAub15DwDr-lB|bZ?B)XBIdD{H^^I` zf{RV*@(6E~x4k#s+nLgfJ-kM*$!nqfVt>jm4x!xQXo@UO@y_th_Rgog;xg|l?>g@n z9ISVG_fTl@fcFRQG4CnwIqya9RcayL_TKY8@;>#xPzx8JEmizRx46kEYWJhp_!wc z(W#!~r}(ErV|fN(_OnR)pW~k^>o?QbmY$nD22XDH*DzaRWA%-HQ%~s!ups$W*?G!% z-3w8`ZwjyDku`CYEaLu5x~Qmow@S-ajR{RE!SFA;n7$TU`{E9eq*Bb=F+vhE*9 z?9L*07Ps4&%BjtW=?*1=HzF8A71addySt#pwtLXP70V{FbUI%3Uh`h3fX3J?>(A^1 z-h=QuJjBrR_tGbcVB&?8?AYd4HbH|ug|9IES?8=c{lvYrtfG%XM)_;mI{1b6OUNhY z^Ems?vUVTA2>TD}gA&)PWUGA9Q)n~Iq(SMYicIx}u*;g)UGl6uQ5*gh1xpFTW&N?; z1I@iX3Fs#KZpp($Qt@n|qNFqZ-W}L?s7x3)q=b%yRFH{*+jTKZExl$Yl+(Tw1r#}VEgvE$vd*yz>eY9prFo) zF03p`lDRL);2zS1;29ybhPKAN=J5O;{sx6O)#u@t65`<}gDV@mu$Z1$2^jwmh3?4r zx!LA{bVtbwoSsA`-(aVmC;5i_2lFZUP5dmcV}e5GiCq8}3IhEs5Z32t3`3RFlcaZH zc)=^~6zv@C0%~zLaElWu6m_~6wOx^LaS!uFQ^Vnf7T;4((7y{A!QI1^K`|xZ7q;yD zNf&4e$Wf@*{&5=^Ym7p@_HQ>)GU)Qwbsj6#l1bu8jUv6?QxmoWX9AqgFf)Iu^6)N+ zUHcfnm%jvOusopVBW+P|;{4HnH26EAl6>kQzh5yja>8C)h>6uS5`!EbjPRDwnuXCV zZ6jJ{O`npjTljA!W;uuFe`Y17WfyCVvv`4%m~z|8 z1FSUN;mokIJ6Z=|Y64O_9N6)^_&Ju2>>KskU8;et>}AJx>-wnjft>ii&(4`1iZ@_OXBf_3qysB0v)ZWYRvTI|cY0>)gY0`TuOZwv5%Aw$QKEZ)u<%ambSUd9FrEy3w)Hx}&t`U8RIf#=Wql;LUwM)Z?J=4o~=1alLO$(dCA5oFeOijXc zR;w*7xdCcBo4g=7fPEY&T!tN7c-OpCDdSp ziZt<4sh3;&u*5TU5zEqciD#OBsq9#}m!fC9DoaWJU92J-_i*!=#KxUWWl5_fHty6H zOIjuI=|oVaq*)T*HKECpMoBy-(WfnGmc(NgmtCc#O%g`wFbPyqTcf~v-ussm;3HFN zgfe37-BNmlJzNUBSu8x9rDPrlYrXhUq3}?gBsCu4St=2JVR(t;m0&Wx7M#v61SFf% zeo$Qw^#`mKKt2F`Kmqb9gxYV0??|!|qS;Tt^>mV$B^BsG43bo#3&+J;T6n*K%8zdv z4UudVb?MuJ0~#yfP5fEBSr{-xt|H;UkTU&4RIL0b(Xo=TgbU*|a6^{~IDztgAsv~o zq89fELq=N4|2X8`&qRNbbSs3zZ$Q%bwghzm$3Rg6JO=zb02$%a=&2?DiTL>{l4$}c zGYF_mo9uhgD?w%giy8IuaBIQ50Wl8b0FW>vkseV^>BPnT>q=4K;QomK2+tF2BzYP&c3!vIWmo!Quv3h?^5OlHuJm&ZRm$!f_ zJIX?D0eKW*J|SB0)L>m_tC%gUz{1xmRIh9i=Y|*R<{(>xYz)E%B%6Y439=!`b|729 zr+A&BZzH-ka5AZajVRZMV$G(y^kv~^X>V#tZ_Z(%%QBZme!CES3nf|fCtcjKuw_}- zL%j8iSJY)( zSvWzTeNl+4$phRj;Lc&eyBng;PFL|qWIg%=!v`fkosB2=*LVx@;NwrJei$c)a{fZ;tF4}Mj`khn|a zT9v2>nh{l4I5eddNoG@&iA0g8IG?h07fD8Xvjt@LA9e^goP3B}rlqpJtBxRlN{3=y z;Dm}~D-6*nN?W?vmX!?nX9ags_p|(nf8~E&_wuhz@kwO#8UL#aPqM8m(@6R&CH~Qf zvBQV+qxJl);k~#@70A9_;S;MwOoFSt+Rg*bV>vZi4qq>FCqYMsHjfmuq<|ZibQ|tJ zNNqB72n8c{Ox{x4%2IF|g)Xj%^hvfYy1-`X`^=w9;-sYyvyDFqYuf2j+bv6YI~+mj zE6q9VUA_Hfozb-WmKI+|*L|(?n>MrCha>GzETpz)mM>o>bCa+8Qp=Y+Ihyjf+Fb@8 zUdF3*%QgHD@)P4XO+Iu&eSB+Q91$Ub|)l$<%4Dkd6z~nnR83X zySRAi8_kDTWNyiGT-Kh*puk>AE#I>C0C=_6wlCD3Nz272c3s*ryEV88FMph+?D%177%8M;c>lQ*Wjt7f)LwHeLkH@#@QofToY6uE~B3kSV+ zCG!k9ED-;;;)ZNsXeMN4Mfh@(YL%?;X)Z5(re=oEEs&i_I&ulvzUgEdahMJg2kbR*!K@w})&ikTJ6G>UuS1+h`kTYl#=X>V&HIn13i#Mea*MB7W3~Y% zBU!t3S?WEXEiVqf9Ooxvk=fLf^uw7aQ!FjcqX5F*){cc3=*p6+Wrl01ciZR7_iq*~%N@HzqikC3 z^2DZgf63&X`)v&5db!w+vinyGuJy zv(TIlMfs>2#LZ6i(%xG#J6Tet%`AW3X;Mquv_{7m7Qo+hHjB}^S^7&$aO)mk+Q#6F zcG8q?^cLGl7FIihW1&WOrnb}0LX8O^r_2T{k8h4!JFD4J<%!*uPl~0=&7{gK9T1bG z%Db6YK*!SS%a)Wa=Qk+(zWny{W2*aRN-V}_I~pd^KG~a+_RYT5E{>WA&$lT)Rnh?D zO^MssUt}gT;cllk+f(&s7n2Yjmn?fvHTyb%@cK#qF@YZh(2D(vI>jfTtlb*Y+9L@T z{vmuUS^?5pVPzMlVo|U9QM9*)>_jp`nCsDoSB-~XMZb`sLe=b+YIM3+DKPC;g-qY65DvSc8lmn33Wa$X#Md9;pnXih-k#*TpHg(- zdxCam3j&$zuPC*2stI@waSK9~8hktqT3rbc){hez9*CYFVZO?$4iTP=rko!B zD&cGfPj`q6SHu9XBcZYR!PsD2aCvY)^^dP2TPUKJR}xSCF#IIiikRm~L@{5D-iQYf zX%q%9(Si^ncTr0a27e*n7MZsz2~7xL`YrLTl|@uQ*WhbON6a1Rq+CNENB@8s`BOND zh;h33LN4|AFtG)lYcq}1R)?TI)^*nOeOjh8O>L4IYCi8`K9Del|7);QQvL>~h5rB; zDnfdc!cki)Id%UrpVDu^Lr7{tMHXPH5LO(~zk$i)We`?ym-w%XQ2Ih>G=DBC%|4fP z{~I}-u|MH_poU2-pQvYN5Lpm;1l`52l5#>RKvS5Ks5--7BlOWYMZ$VR>2|P!Xvb*c zi7Z608WopofZU>{B^aP}m+Me@Ns&OXL9ik9mxF_ig`GrMDY)bZ(CBqdd-L|mb{6-Y%eDcA$-mn#@7jQ8%bE7Hr&&VvPK zMRp3e4~w}m9D8|T({#64Y}MakG80QslN`syTe?Ypow3S}-r9ifn5dvRcn=DU`E)H` zi6X=n9Y_{`8GfCXK_!Qc8cl8UC>-XBpOX8zEbMyiCa56&L|g*fnAz0oH5;Wm_v7&Z zt(n`xa+M^iy^hTGCPFUAhG{Kzub-dolA=Us@#5BJal zoz4k@M|b89V0g}Q=$#9=7id(!W(t04;!(j-$VXjFZKdI-WXv)&(-qJ4wnuGgaczC zGRU7X#Rtm0MhHZDWV=O%01N8qH|D{ZLRdMyEs4~9ij8MaIQe!NCU>jixg?2`oI}m{ zedhmCSKh_pa-^n(0!4dP)2}72KENmbLu>{y=|_zmBVX-AnPYGaa+i{>rU% zU{>*lJy|fU&o~t8OAg0c_j78I7Ty0y;`>nSNs3QFXprJbDo&3ca15dWaF`~} zeqZTI{z=w5AI>zV_W(v$lK4q|jLX@Sv`Xq@T+XJXRZ>o3G5eB6b_sweU#Fs^Q5COm zi>9Pmf>pJwR7s-*gqmcyN}46`QU}P8R+(KvNdOOu55`3})JE0|ZN>eHL97!0*V6tA zS4N)nU)VD8l>fDa|Fv}g3nKeZsQz~??f@*13_O~Jkp%~}M--ba&=%6zyofUtvY4Pp z7$z&`ER?c&L1!VDJ)OePylfkUvjyQcp`Tr+T>{#yq%&l+q>F@(Hh~@4S(RPd6*$A* zgD-4}sBip83eu`=*BK(L%>Ybo3|HpRc(_1o;}2!imw;q#^9t-;6JYK-f*jVD4jomm zRU4dPA3&M;VEkKJ$>vwD)rG;D5RiRII{YnOsrzZYX2$}V4PeRKD}IV&tG30yUX;o> zBnA7z0{>&St%Df{f%eaJ;QlbJ3oZXai;_1h$MD`uwk+awhb$$G2bD#7wQI>795+}Dd! zZIOgS!gzY5+T<7~rg6M~0xX;-=XrayA|!A%A)Q=RNS4Rv$&|^*<8%$+^NGS3_OlKt zug_L0`Es;^Z5~zGmz7lbMYzi*D42V9C}>6grJ0-bbd`Xar6Mrmo|p{G$tnbMuS&sm zQSi!Gm4i7|VJXj7y0bLJUl8LWArq6a++RBM>CPj^=qW{=SEL(d7cIVWoNfX*cmmD>x(i86$*Wh zgg+=>eDgW{L4|d`AP_;NTcx+xVaMTPhmILH9EP9g@eA$LE;xMg9uVv937@!8Tnn>j zQu1N#>ntY={Wcp+ue4QCNo&Z#(q`47Slwq!+a=|k4%k@ME>q4aGhWs#t<=nOJ=hJ$ zoH7?(;zsK*m!;22>P!;m$Bd~NPys0GmOLbPWhnZ5Ne!`<(rU{(BcGK0x@T#3>oiMh ze3KHNvd8@}U*lWyxU@FcN=!>yrB$u2V7TO+X;rHgc9lJ>TGc9pS=K74ShbFoyfLj< zO-7^aX-Vy3tTharRfD`ve*bToxZj4Mtm{eHpw%~)wMuH&;s(*rpySISE%{4sU-JbWxdM!l?^HzqUfSlST;~eaa&SvU)C-u zZcElhX6te5qJixuc}m&WCDmD`ZJk`2KjG{wUYc!RW8f!*$5b{ zfZ0l-B~rbDs}r-TY^znX(qt>Av&ulLBDD%)tMayTX)8RoGB_(=v%-0+pELf5A1Tbp zN@I=9!l(_bjO|d>PCG&i%#De`D%Y)0-)fDGFu^Jrt@Pi@>J4mXoCQ{LXq*~W<9Dw@ zn5^{FY9);i!gvUt*3j_tO6p+sg;sNE)o{j^U^E#YYmuU{Tqrw%kxw{2B;^1w+6Swp zw_1JzCmTUxyG=L_(&#^L7&NyN;@zQ@-Y32$ zzOF#OX4`IJV{TWLS|gW#&t~|vRhr>@RT;<N0p8|i=Xt39582nvr4b$5Mx7f#D(O;cd#Si>p{%C(ke~$ucustHE zu6hr_bxUK2&Hw0oA+ zrx`8Ud294n!AM)Pc0K~R13=bk%DjAtEi}Yeq(@r)uRyawKx@{nofo6`0Op(*>o>IX zA@O_xV)H<=YJ7#Z;BmLX}w)afCR1+(fVJRJHCl}Bs;}X{IqFs7; z9FHm=XjC>x-7zro3FXZY5Fz8o!({AA`{r0H4MM}V6fIkwGC zs^IYx2-lB}k3q?UdIAE|ytJkvk%XJ0Uqrt|WMsYtB)HMYYin8(GB_YSF#ItRDhFHm zgO)NVH7!MkB>Ebnc`m`okx>4CQ(>)Y+b#jc{Zi4=$fvl#32p6Ys%fj?DxvKg8E-?l zWE555j_A0iDbb@nNEYv@*IbRZ&{>(DnwA8uejWZMyiY^WX1MXxrq-DfRQa#4%y%Iy zlg|fLH{sNO&}^rY_@-A!Cd(ko>aqD}OG1|F$`{?HR=$oLFMpmiylN=2`6>&)s3NeV z)!2LSgf?@}gE5MqAUU$TS>n1Sm+!Z(;=ZqK1v$elzSUN^?q=;gPtzuhhK;OZUWf-fX=3?%-|bz(SRX+9<<(mF}dD zde)rY#>cKPz*bJ46MAf0xPFAn^TRgYT+t9-!FVFK;}gTGB>`heO49t|mK z*sze|j$N2{w_$gZCpe)Z!S;;4BYjDGpS_Kg!=JFV?p* zE)xh|Kw=2flJH+yC5TB@|3X<@3`6sgUV=VVs=qIVqRmx>n22>pAwr|d%rG{K2&I@* zgAqJg8m;FQh4LG?%Tz5N#J$rJKc-V$Of9TK@D9L>l-8A1;^4!q5qNi9@$mcKfTh}3nEq^q_Jvpwr3`8QL*7M(Q%0uZ4wgr2U9Q0qTL^c zZ-;*;(ktzfC8S?407{m{Q}{yhZIF+^%4y%!?&G5^qM>v{jI`Z$@yhY4e5j6a`wg#+ zulG7k6)do$SpT*H_IG8d_satIBcbA#%2@6l|3iiL?g)FYU0I(olKr*aPY-_9$;^P*kwew^UXDh2H|p3dW-GDn;a!g=ZAji`APC z`}MC(TDq4chFNVb!&>%1Q>Lw{W%>yIpB5x!zP^>jPd4;wuS|ol{^!Uk zJ8t3e{#LQ*it_l}o|mvw$qS2qVroh62jOv-vpU-s~or>HSk zUvRk~-_o;@(bN;sSYMU`Fs4(KpY8mKTX?46(ZFwV;$~m0FV$V5`sUjTowK#bO071z znzO2Q%B#$X?(Xr9|99f0_WR7|nF5%`ko{`~I0^yIRP=rG{pW=;?7Y-D8=zRdUQS+} z!E9?xX@nTn-TjsQRs2=`)d;(;;jihhRRb8?@PAt>Vd0Z1U>qI> zJ^DSM&UOcF_5~=j!|OS6nOPUx0G(TyfWo{>qandiugBQNeOmU*X-;(ye$NLAl1^YK zlINEKtC#q^*O2@e;4DBawrbHbuWH2VTNO4Vk_)|(OB@hlCz+ewy!t_6yB}z_dGPk0 zS*XmE(t~Ox=JUbZfNsA83e?qAUXI5-dX7rVInl!iGfl!vHwA+{OzGPamin!3Tkik^ z{t9qXH$cj@!ctgPIMIUVmeMdE$^uIkdsm|5574$2p(%pOKnE)-Hq}Grrj|l*N~0=T zM6-s9PO-6o3et>K{BETuR~WT3m)|?p5_b-UY$!ehN?DDnhVm_OVxd9HdY}X@Y($zF zvOvD|*m6p!fC~$eL6i;sXMiiKb=CL@8sNe{q#-T`W7fE|gJ12h^{|Qzw|JDL1Rc~_ zk%E>Gv#^#M9nGX!z|O&;HU4P%KUXVj-j!uP}V4x9kw4mm)^9~bIA!FCh-|Q zuw*<{xldI4be%+sj>p=xYvs)pn@rE7 zQ>6xAjzYR?mVSU@^LZG9+Rk7oI|Y~U%%Ej=eg&MFYB;3}d)dk>9S$YDNPAW`QL4$( zwcxGFXB01aQfr#bdf7YUA4>*=cj~B?4sCpsP?IrJ+M;|s;vAqPgf*jSQI*m?$}5WLUWsH#UQYL6s<7J=)a^$^U#efT<@T+vK^kR&q7d6AugD4KD z!C*@8CiMlg`FM+}*eF_uEgbfm^2%K)b=8#X3Szw_7rP69HLUFemKuq9iy2@w2< zs2Xb`ljf^^jNC1+q+>eW)g4+)1YP;oXlB%=8?<`*>?As)`O8?xB86%}_V|~?uIBr< zqVRk>63BP@ch$%siyp{0rwFpEX@V#(C-I|#F!FL#WUhb)bpLRraOH3niH?v(Rm7OP z)YyeZlj8>2i|rCYbcmd)o+7rZ*k)k9u{qM_WGd64Y$$rAsQ8sd3I-?BEdN_IxF?k~ zI6Kf{kUFH+NJjahLc++5ATs&d)}ChIaBSSP#xg5tZ3>ps%ZLvdp09 zlL$dTr=WYm4r<$WrH5APbBr&d+$SaFJ&A4Pp1dhBi8#|fFX1iktSmspyEb>Y8>Kx7 zr|lt-W1ONzJRm}~fCuD6r32&`%W`OEzq&BcvMS&%@H)(t%0QPR{k9DBcXgDziv}v@ zDICH7^CbTwmDQ0{->5KyY9YBfkr~YEjn8Mf{R+&Ev!`5ZnZb@V?Th;4Lf%lOP`=MYf(s8b-#t`6 z-);m-1FN?vi^{l&i$zmZJldil5=Q!LL96V3p6vbATXTR~ z@OG>hYgOG&`e&Q$f+ykpD{EK#oKQJdZlIa&8>P*Z(`FuiL_YSJc^kN@FqN~lO(++0 z&Ndy6VzAwsOJ5kiAw;^Q!}L+vLb{W@lVKw`+Epw{z2Zq!Eap|Kx(7XBBFNPuE{JVc zHz2z7hcp%wwNb3<*830aM+*f;D5zuv#WztO+RzgcLq zp>lZ1|Cm#x4>gWk>6@1VxDIqrg{-_pjRM(UdvKoSCJZTp@RA$qGMkGVGI2Z3R_E<3brbx!v4<`sYw#&x&$ox*%#Bl&VLxgR)!J+ z@4A_!WkW^`m@f=vzKi=Y37Sh8yMvLl-s1I8kSy=VjtPdYfLJOp$SFh3b@s8+l+k>oY z<@@3$@D`=C{f?p0>bH93yg&6FQmhH?LZZfPPDSZ3?ty-Im+f1d2qw3+Ha6@dTP@|C zD|-DX<8t%_+bP%AW6XBDNN8+mzb>Md0 zBkJjj50;CThh}cIX!U3fhv*p|jet9CG{ke;I}J3eCumaoIlIjrsEj@*Kt6X8qG}gM zKZ`Dju8OXXu5l$5cSd(bzlwev{VuvcdL;T|^l0>Q^h)%q6aF;*G%J$m771*fkNZtEr)$_~wj=hhr zJ&Ge5dIGO&R`rN+?!!p`4_$x^P`1!h)U-J8GO@eNU|UhBf45XcgsTv|TdaS>%$bd? zvf5^D*)&rQM}W#-KbI8Ch*4z6q2eD6V}c*;80{WEiG>s|g~{x?ET4d%k`kTbqdNOn z1e?IQGbmgq9IR4PTgD%_%9~=_3b34~g7=YdyeGcT#eHff0l<$}X;!a}vF-OSIXa^5 z<+jV35jY4m&}Z;f_KN?IT+?%WdB3NFoK>~oaB8r4*eSX)x-ou{?@S!W{P3P1tcuV0 zArPWBlR1!v`9>!MUBVceu(|QGZoq2W%=TXiK8CaHwfKQ_3W}{d`_}|pLXmxmPU@L0Uw2BFiGGJ~CV=8%vP z(UCIjWcr_p`z(xx?kThTm)%yabYt8GlFeL9K753j%{@=5R&n9RZPW63zz ze?-vKVxQ3Pxtp}whg}k^8}3vr%n56dm9kY|0zdmp9T&%CcFJdY8b?@pn4FMla#FSY&N$A2VvhamI0 z@!gmLMr`BQ7}yxq4)?vmuerdnbo5VVB*}l}>_8eWuL~&CQaVukOh^{owAKHc>3hiO z<{X;J;zX8_wv$L!=IPb{&h-TLhGgPupD%x0UKdm5L9(`Lo5B>~#{?Iw zZN`E+dJQgVG>5d&Y9x*-lbXb3;^Q9{mlr2@0B-I^IJ!e{b+^IU9f!LsWDX1G@?M~% z4-4=3z99q=p}M~d<@|1q(v_g>7I~Y+K8jW+Ji;6rVo^owdCnI>FC2Y-pB5z4oJMS?cTPaG%Y?bC@OmAX^lSK`1mT4ZdJyzE z`3evHa(BCsdThmMo_$N${{h{8tY#ePSDv}JY%y69+@p5s0 zQFNq*YzlQ+gy)49Y0*|ceZ~St7Tmwr)t2l7?I-#|qX@4Q2u6Kt_$DC%Z+Nt>!o3gS?8K0)qB<(O)S?p0umKN9o|P z|7$)@D4K=eRI zQ3$BFB?vX1Ae8753I5#5&KE}0HLK@Zt({Xd@wyL5B00lbTeV2=ISx;D{{`3zWkUrw zrD!X%E&k1a+v_-`WflP_rLV~ zm36QM-+C`aUzW3e1SyF>7tl&?6qrH3EF?I4LcYGZQ^7I~td+?Gu8Fk6K)6cRN6sO~ zI}J(u4i1F#L*yA6aN%T?%Kzr>3F{C71Mw2oE5e(HaQ=UMwV^R1Lp4-I=-p<+LbC)RE`b|_VSrz5yO$)RZ8qJhNFNP)rr zeE&lKA_`Y7@h|l+^Dl?NK09n11RE6#LrQc~Qk9fSPxMh75U=1k6TY}zg)uG*`x6sC zpO2(P&7hy-pQ=J0M-#WZiYoPZQd>h)HAUQw&l-xxeB%^XvM|zA9Za*qlpsuq!t^6d zY=Yo*1G}W2?&e}afAS5C;Q>Kx^&8BqLb%~v_`#8FFjvhy213~zXfS(o4QFqy0qq?$ zq`j*KwI^#>yP3eYd4NlfoC580Q`;N~ax^jUZLQRC?lp&?6a3qwXEir(-_kUl^k~-k zpNG0Y72L6pKONA@zF1(w{Xg5E1B@?AqJ21a@Dt7cACt-dpNuv^RW|M{|7`zUo#_iQ zbA5SUm;oJwDss(mYqB5{7)f8PsV#48<)6lT@HKmjcx!nBNQe*e)+H%!dcK3bACMg1)Z1JW z^*X@s{mSY2SAj=9Cue)sq0cn6@Na4t!4(@A>Kdzr+ya<)jPRo`KMYGzHV`R;PH zX4P_-NL{VyI3OUTN9f%6aKdyw3a+v4fiD_n!3$?947H8u=&IU3Q5Zf6#^r0pA!(;W$l#lUp?!HX?Gy33F%oKM-ygUAv-gCODC6sCPmL0V7BBvzz6 zr45vI2C7x*0;shcSeG8`TZ<5HSWH5Zl_e@mQYH^mrYKZZ`c(Q-F25WF^DCgd+`l3| z;wpHFs{!zGFj3pAGsfw7LT?p8An5t$5sK0~Pr+O|64<>(#e;rE1pibfnc#I`wKVRfOJjo9+apfs zmcSk=V|}=C#-8Dw2?E3n-lVH9_AUVpa+&vYMTD4e*md3wK-9$mjnv2l!`}A(?!625 zy^t5JD1;X3O`q~FQC2Kp_b|@dhTLKgNrIWWyAZX2a`j5kNH>8x+7@&XeNln$#0ALy z-ZnmE+eJqK1TBgZeF?+JaMre4Ok}~q3KD)rQQ)w;&PVoFvi%7vx9g;qJ%2>G?WAe! zS7avVOVA^Ot(Fb58WoXzE2XjapoEF$^TIwWKM|Ww_gR5z6*^=as@siS)OuJT1mf9v zp8Or-s6I%l8qI&pINg>ahKhiapoZ4H8rwK|zw(wC-7;?0|W*ViAYd^&K;fWMba;KOp3j zorY{;Ti%|T648NLJ~wRbH0Dqz0;upXgcAEllyN+vYZOTB< z&hV#vuf43t+|?)RXHlx5*PpDXg)~BquhqSdx3vO_cjD7${VlxuI@h7B$Hiy|H&h0D z9VYG9&^)V=JDTK^n=WLXsZ|#3911OV09l#UDG%g~#0bQCGP5n7fzCh^p!&TPz}$kL zo4@`s3Po@-o&-$G2|o3!CLb-Xi5kxO21i< z{pJ77X5a&K+%9CF$^*D+T7_SORI#V;00g})CC9Q6pE&!b9qob5sVH{h|bxRN>GF|ofRK%CWd8oDU*R*)vUO#~RUJR7?0 zM7kKWA6(%=@n!H$v}H6ZejG1Xr%wXj`9?FCp?AZ}!|UQ-(@5T0=Si1yeOxkL9af_E z+S!fd4VkS2d}2HMT%oZ@;N+7FvJoabr^_FrKxrPh46&JFAnqI;m)3PUejvqBpM>v) zpT-YiH*9Tn+MFBoM+N*PSPUgGV`o=Qv(Emtfw2DU9!`S!rzxgRDgKO|Q+rs`x&k6g z@L0!3r^kP>ExBkK(H)VY*6zm1H3Dw-VVR#gPrF+IM>kT95HJ8$%f~njZrx$emX_wm zhUsRHEi=+vP4Tty=y(hmt{os!8Aljx0su$ns1{pB(;|c536H>ZQLaf=WwB*^yjCO` zM9v69V_k=IZ!x^utqCme*5098S<$OZW&&Mo?Awyg;}9p&_-3(ME=NQpQQ3d(VnuCT zWzEXEUeu&`c-bH3O!4ATvdLrjmWA5a#;t$z7voQkG2b6NZY@A@OiftWPh!vQ+ zkyHz0;{|7`%=|fpn1P4@X@sZ{H^>9%vr&XQwEj(sa`Gwuya(i#s5m!yrZ6>US?yIf z>6e@)Rh;6f#v8GKvJ@*xsj3;?Q>tXB6bDw)YeWrJQXUD&VwGskj7*qGgzZpQt7(SS zcw5zVWExGEax1+e(wbsr@xI-N8I0w?s{AA6b65y6m3~IDuu#=~QrUN#JC#5H@6*)Q zv|m;R_Ii*G3j^T&zl>&B7)Wn9Vqwwo^~OB_RDDsQxUXRDIQ$}R>c#k9{r6)-+?>pM zcW+TNeR`vly&}B5YY`<{-y6)ecqrJkQQr2%kaqTd=1s z=6R=hXK+zIA0_9@ysNzHxC-A&jOZTkKJNjPvmf)G@}Bcv^j`Je@ZR>`^FH!E^}dAV zH{yca4P~h%9kBwp8rhf*zJnvoPCQwm&U10nHtT_q?=o5O=z4#Y&WEdpt7(*WP4@G( zMOao5sOzG#yFNgh4JA;fiiew^P3Xj8Kef<$+^PH&mS zMX`0xq`ezOUuZ^Jj#n>-nh@{R%b;%KZ|jfpxAW`ePjlJRT)2kns)EoZMPLv`W<@Tk zY$%9a{zOGCv*8=6rV1e((KKHN*5$*|jXXU*ADrV=B4UXbpUi0DD9KeX33lQMu8=TWjqPXomfv`RFSkO70XJD1o0+{3H8GxVy(SQ-2KDlC6ZK!5@;??h^) z>g9f`zmj|Y;e-qAqMpDj7@jC83S&o*=2bV%*!kqYX%-TK0N_+NYgm1Y1PcD)f08<+ zS)a?T&oTIJraYY9;v=w`-(^dpB`3?;`WJWViO6ee*%!#IEKO_*jRQ{}^ zQ|H+tZCZdM$@lQC>YlM5i-Lcs_iMC2-EFw)zgXZ-C93@MMAtg(39n5O;>*v(?V?)- zb*dvX$^Y@L0E{&}(mmW1%Kf2KGQPdcb9$hoojI`&q zX|nh8OnP@H_v#0uzGzO~4vE`#43H`~q!xsc1papLN#*@C`9wXuszWoQaJChih>iZq z|1(1*gDU@PKeZuJ{V|tzeV>$T*rK=^t6Aze)8*0VOm}~SLZJKe@JmVORR&i!w)=-sl{e0QD)(Gg6+F=Nw-<9u1sApu7 z^kK?evT8Iie$={LUCK5bS9{lZ*ZOA#eHF_7L}6qLFO!iKBwe02K!)E;*E!o{!@PK= z+!^_fkGziFnvnmuQcXFZO37?>q!P9GEBGtIGP^#YpbV1s9LcIWDmXegCO9@Y zE;v3ofi-q=a7u7$a9VJB@YCQ-R@~XaIl;NXdBOR?1-aFyYtQR436X{=#*)rwZ7m7O z!p{8Nr65T_vVXfRFu(Wi4JhF4@VM~Q_*WdnGUmmV@f+$`I;n1pgPK%CH3z`RnZQIY z^y0Qw_@T{J`N=cY6InDXvPYWAVj_A@kR$jaTE)_TsS%8(X7WW1M|R(-wJA>k5=gGO zkR@|xk(r0v(Z%I+$`A6X*_W$!rT$m(_+Ic|^p?nGq^cM*T6EGY$aD}iN5GJAHnFU`ybi66 zQ-xKSKM(kp)o#6D3SZNceC$%>vX}Q(A`P+zP>*%J4S{!T4ya>m;1Z*~vEGi}uH2aR z^!7qIbsukEZx*1AgV0Gm(mU2W0Vu_34E*7FSH%l@mJ*KdM9e20AS`|zv%1Gw22a3FsJ%TgG`u%mVkx^k8;0#d72uw<|_ zTo8SOvW$ zlt_U@392!I#&9ne1QP`93@460i)d~lr*|-@$E4`#C{$pMbJgu9A#jnfxt)c;;CbQs zB%>~(^ygCbDWvNCY8a8OceU@o2yda5_O|f$@D4yNcc;2`zk|6rN%;JcWY3>nP5je{ zXFTsJ<6jP6r8MBLKw#dYROs)dCahNeW7w8HL(J<-C*&1Gkvl{?!Fb%w)zB{roM#DF zNxw|gC#@grkCx45bQo0(M*!G4io&Gh$amOLeG2~7 z8C2?@MLG334u^M_%Rq|X0!M5x{ZBJ@u5_vqc|eJX%IhB@Yw=u;q1U#0?yA(cEG zVyoln%AVNM@c>BiX`+D9m)e5m0T}hC5NcJt!Zlqn)S!6Xcs)fA4o2^H6ZFtGi#G>M zH7u1%+?Fz_B)KAqm7SdU&P2+l_HYvQQz@Sk?{e?B84q(t+)C=(0+Vy_Ee`@WbVz(? zJQv?GQItFm-}1!RQY)w7Tb}7S2+qT|yePg{sSqzy-|{LDi`P)KawEZF^DJ-GvMYf= zN$Hhy@oqUOj1}!{F$9v2mQ`0!C0r4U7 zHH|a5kUi@yw&m~iCL~JRFW3s`WyMlM)B>%^|MOoH+Y>yrO@%TeD=JzY%;;) zwjMKf{G`!iCJi4we(Wxjb{sNl!f;IBd2gAd#n4^G4{x`@u&sxTt=FJ}EzE2YuyKdH z&*k+_o;`AO`|ln#X7pC|9-Vf71O{675q*+ZY&mAa&{1_iz;OPGPN^iYBk$k>R>-p5 zRbpGqb05O(>M+f58yfyth&|`|!i8tK?bD(7{Hf-(4GCYZd8mhjuj0_|F5r^>-DN2~ zlTjNsWcwk*MvmWw$?GYLKEK`Nw-RsJtbm!-Z_ecZX=s{G=s*KJ5#b(@TiGphbQk%c zi)_$EF6bf?bdd+TeHLg9E#ky)gu}iK&bidqUyNcNb?{o-el&W0)Szo!`Np_Qqi~IO z*D7+V!@UYYVd^cxbUvF4KiJ1{i54s0TyHtWJ5KS2Q@r04Z#TueP5U>S%)KTU-v@u1Z*yQ!ea%zcE`rnnXp++7>VaW;x6hXRa?zQzuBR%J4KV2GrnyL zDnz!WI^<-4`A1=7Cm|a<+lwa6XfYo4ylGaUn`&** zh_SQ{id0cagSnuHPz+QdX5{hoTFN}`=x4opU+fNujX~?KileQl_ zW*DQ6Rmf&EFi~~fH`DF5;XCjAuDN1P9qJwq| zYWH`8NqztYw8zjtds>y8Un5icH@Lq)LjUZmIDiwU3*twMqg&L6Ynq5HuR;EFL;RsF zpbZ)cZID2WMS6M)v_Xp>8@yOXw{1(|KA|XKIkn)enfx%1mvibG4(+ z)+C*;X*y&3>YN>*vvve=R++OiqKkCSuGCq(N$2ejow@sT?*5>&_Y_f5nY*`i_CD14 z`%-66c#XOc2bEb|Qs;4bBAzmf>oJd;GLIve$1%*~&dg&2^Y|m?QS#xlH4}cA=D?5D z?Dwgf_dZuM-j|Z;mJIiN$}jtrlVqkE%K_J*7rYAY$T)Q<{%>!BNv5rMW_ECXF-xL& z?N8A(Tqhn(*|j<%v}~%>);*jsF%2 z?ELL`eB(YdT3Q=g=Qti#yFiYZFlv-ux;l;=J#PGv(Ze_%sN1*WVI4;DyAFfp;TjsB z+jG`bI`-ea>OHbJa@PDi_o^}ktmprs;Pw8immJ6m{RQ1Yxsuf6BeI0YcNFfSg2*1I zDD1(CydJ7(>unWbJzi1O6Y)BPW5|jHjA_U?za>vPJ2d8R$&()D$RQ<9dTb_7daC0B zmprMI>|KgeX7q@XA-yh>A)TMeklqviI{Zy|9|QmopzUfUagrhZQzk?DTqZ;M8u?Mk z(=xfyPYn{7$%%H&5jYSIOi=2WE1jgUN`(FqX-Nj>=?1CuFjryGMIO z4bh(H{7eN<*`%E0k`0~VbfzR5IwzA2ol7qCI9$|f9`tmwpu$3Ov9gv+_VbEN_VdO} z_VadE5hmHs-(<3%4`;HUPmueBc+OEeO5XF$Oy2W@Oy2X0Ox`ofp1CPgP}WTCpyzm*?**7!xJlSey*zQsgj&X`n9%jTOLXtPDnD zO(o=57dnm&QK=9r4kO~&60Hg$;TR2ea;!HF+{R8IH+BQNF-aK;rhwp>28N><3`Z*{ zj{TIJ;~?)~upD!hz2GPi9mj#`I1x<8>B?jPIu&HcMap4d3H()*P2kr5Y_b`Z$N5OnN4(8)oP#-TS;m7M}UA%?b1q=s*QU?L@2^f$sysy!{ z2vEMLpnV~{2VKE~^aK&IIEawmnLvA0SEv;@v1rIySy?vNZY5>eaJ!Y0WdrV3N|p_| zTNzn-&^st+&t-B{}_w^42%B? zi}$hk7>njJ{RXHjn@7}>RG}y^qdsD(O{~SwxB*~gtG9BQRWcA z6-}h-NY2THyK?coNOwc{o}y0phMghRlA;XFOY;w$9*Ad7mQ58&9{M`6M~1?lClzE=-WZhiCy)an5^eS^FP7V zceS1Yx0dbx#HP2cyWcNpw_ng+zo4CdLHqoIcKLs0kFUSOSINcxkEBuy`*faWO4ebX zXi8SvR|T>uSxI@iDOoFL7bvG>E#yh3#M<-wb)JL@zlBV~kLy}y)e~8DA$*Z-7s4Bv zz7YP%$qV6;+`JGz$&>%0SF(iqCBg(Sl0?h*o4Cb1lq_wFc_>-ZmRib|{}p-tKRaecRab_ z$?2Bd@T&K_>g}$2x2xXls`t9;tu8tF61=OOez7VnH-Y*+4Olj6zT z%cg-ZZGoXAxs_G#WYrs4^*&a;jaBbrauc&t*s!F+m6#sMy z{L|j}r~U9xSHwSE4c~MvB}EiU#EmF<7dpf(D0?4H;rmER-^Wn=K92JDohX3cjS~1t z6v0oX41OAg@XeIMw^9thALZ}|P!NAGCGm49ivI~^@yAgZeFU{}5&Kk5V}QIHmK?Qat|x<@2vl zK>t@t=>J9${kxRWe@J!RCzR5E0R`hXl+%Y4)OVnyz6(Y5Jt?bS++Q+x@A?i-Wf1jJ zi!aspLqX1O3u0bs>ZOW4&m4Fj>p9OJ__~&&hq?RA#;mM7kKo~2jDBJ6M)M>#{wAK{ z7kG%>@C^Hbo|aq9y4dF?Sm$tTb2OH@6Lz@=R@sD2X74yZ*HU#4T7u4cY8rLsqQZ8E z^~f#W7z6w1J$^;K$*-p8XZ!S;S#r%$dX{dlcYCAP+*$AUKhzuk9(u=b)H{BY-tt@Y zT%D;meIw#Lkh%@AHo5N`U*XYuMI`EOk2R_vZfl`HHsS+iKG)`a) ziQP0(u!zPAmXuSuy?UO4ueE@Xzf>=9pUF}h6m3Xu#ZncJx1ypAE%089|KI7q7Q_A} z(W8I6#e9#g;=n?-|2viT`d-y$I7Q=uWpTixG!j@A0lZRUfMv12hc)^qQNO&JbG;Z zgfCC2o+nG2U7$%jyg-n4LV+6XtO6<8B`_ZR+`j^vjjQ~tQ5wp#AKd91d_1Y9d8CHg zvv@-+-VcknLyKNlsXXh&uB$Yj4Tbgk-LgWjlM__&{204Ss>Z$p=y@jF@f~>G-)&g| zaqJC=Uymeiy&LiB>Ev(^C0~0Ax!Fs}#@<40>H}n1pC#`6_wW-aRk~0=+K0U80O~@A z5=|aYz2{W2nX`!+A4jzK01$nIyAt>9OLlM&ao(ZCcgGXg zok~1+4z-HM#izyR#g~z{yA{8zbKwO3H{6@)2v zf04+G#9SoWB5{^;DVC7OKBN7*ph={~O z22*4qF%XGkE1sY@L*f)~Qak$r zHM3tt-*A`f$ZZZmJQT9~QMj=hHL&YY_4)&mK%jtQJE0Awh+`6E9Mh;{-Ip5H1BCNF zJ_-`Dlb|6(6NK8-%c)1bfm+ntu#1`hjf&RfYAq`Iy^4kwGG|rf^wWM_w2#$Be^m`kqCO^D0ZQf*oV$yClc|8Yl+I=qIt33u_H-NOfq7U z4?_xqOxQQ7OC{CqQq?ZV4XI+6>UEKZ*j961QkyO)49Rv$u1hjqA{22N_2q)9kXrKj z>|Nr?i619koCrs}K@|Ue&1Fd@OY&Hf#gZJB$Vd#Lrh728+(RKm+ZJNn@ravGMBIET zHQF&FTkisS zd^bCiAY6Y30$H#-f^&6L*6&1GMvJ0@UEg?KQ;y?VK&fQryyZF zfrahDUM6_hML{hu&YmWy*kwR3_hD}nY;1p1!-dm8=vvpt76!s;us#;CAvQ5s84ZRh zVs@nCbrRg{SWwQA8x{2IZlIkfvKtD9b_%FxLGK8X)=?S5W-tpY+F#K-f~q|PG_+(+ zh09=`;%iTFEK$N^AURaQ+Fk}iTJSr9xV;Xfw1}z*?sh(i>D$;>1%2z-oZ&Bc06YA> z-Y5i#`zMgpa<35ff)^E&`#Pvx!S4t%_id2Xl5-Wz+sB~ZB=ZXLjqGcn`B%Z}b^xs_ zSy(~r_5`ylxmdyNE)4=(GP1&3u$m%x*K|x)g5wngk6?KvH!FBv$<7LlGwV z1K8fF?B#;*oxy%?oL954{sSE6)nTlH!yV_E#O zS(4{1&z&Wi-v3$VEXnnL?@x&TVkubla^n2w#SZFbaDt9?;|Tvn81??1Wv%b|9`Qc? zH@5iyH`Zz_XK|MCOitfCBD&*b#XGoHz5*&gGWoQLg}g_io< zg8N(DomR#*HrVlu4do_d_`lI$C&c46Zn25nYW^)KKvl2&_Hlsc{#%fMqOU0)r?F#g zsWj8#af;-Kc$~X{QV@@GPjCw2aS9Wbc${+65|n~?nR43_bb@%6a^n(If_Re&A|df3 ztEg}xhxGixniG^9vSg4Ye=ON!$sJ4PcvbKRYp5)vh%$;KqX;sJ9HV55MTpTv7$s9I zd1A>DOO9AF#F8JD?C^9j2>XITm<0x54j6=kG%GAQVaW(fKKNu%2&aKUI8)W^&Ibi9 zN_L`SCplnIuru{K$^T0BS8~6S$CE6cWPK&)`y@z&XFwwS1th}DAQ4{IT(4w$CC@8a zUdi#2;nn=EWOpUEE16x%>n;HnVQElSCNg5;Oojt*aS|h0B=`X?a&E*ch6O*;MbC|V z<#?rENyJ5rfaT1bw1|Lp|RTNZ$jzON2YN?=iuq?`ZSw^ZXKD?HXN*JiJ2yx+`dO<5%r1s=!XvQ% zIsCOlU%Qxu@GEvD5+QL2i9Yq!_|qyHff}eWC_$S2bLi{DAF#-Q)%-|&>PC%F)xR

KIln5@W|%K{3xO7AWXsRE%St#H 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�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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1956400885.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1956400885.index new file mode 100644 index 0000000000000000000000000000000000000000..d874bc1ea59b4c3c758f19e9ed8daed7cb025700 GIT binary patch literal 39925 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 arAE3q$ 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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2389961009.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2389961009.index new file mode 100644 index 0000000000000000000000000000000000000000..e3345ba983087cc90759f34462717d0d8dfe3857 GIT binary patch literal 1416120 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 wYclLC$kZB7#h_)L_@-=?}!aRD2 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 z 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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2394657268.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2394657268.index new file mode 100644 index 0000000000000000000000000000000000000000..00dc82d1cc933b4069881be4916a7e8d992d2db3 GIT binary patch literal 92770 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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2450825834.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2450825834.index new file mode 100644 index 0000000000000000000000000000000000000000..0ab3d4b16391dce7a2d009d6aa9e3d8a3772c338 GIT binary patch literal 25 ecmZP&_VjacjZg@44GQ-3_fs&`Gc+>)4+H>G`UvL$ literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2457829919.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2457829919.index new file mode 100644 index 0000000000000000000000000000000000000000..0ab3d4b16391dce7a2d009d6aa9e3d8a3772c338 GIT binary patch literal 25 ecmZP&_VjacjZg@44GQ-3_fs&`Gc+>)4+H>G`UvL$ literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2497256829.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2497256829.index new file mode 100644 index 0000000000000000000000000000000000000000..dbbdd6e955f87bf57746c20351b06b7b3139ddd2 GIT binary patch literal 6344 zcmcgwTW{OQ6+RLrijpN?V#kShyW1Gcy`&qMrku39o1mzpIB0;}5IaF1@=#i)V(!Y4 zKvAh(1ciS^pZC}7?KBW{GiSbY`_38C{H?n;HvV+s z(Z++#Tlel>uvhHz?}*NSM3r{csXJCD@ak5z*$BKw#|gY;uyO2EJa;jfBPuv)V@3!5*v_CZ{-D&*BAicfo)q)4h(2Tze^ih&0 zdhESo*(WC_ujzv%*~kS#@OZLdSqW;kWdlaKv`AXCwx(VtLhB8ZRR**Z(n5@d&;!;g z*1Kb%gaHwP$8_#)bF)+3z2gSE&7FZ0k+VI=xDl8m|vhFfwB}xWwN>aRPikPNt~9-(YyU9 z;-JgZjtTB%_k5o$InmcWX>eI6drj{Q8L5&?xm*hcSCjA||INYVhl?aufDYZ9RvHsC z0g9qxQCV|2>CiAqhYp5A;iR9bxZY?q13?f1L3Vm(cJ2)QI!Pg05qf&8P?*^xs*@>4 z8A-HArJBsjo1J=HpgN|a$e@P}FLgQB+zBA=)4fG6?iBnPVavr4v_lu|%0x z%@h!9TVAGas35h%n_k~1Y|;RSSR_6`UAN1DMf5&&yh36K$~ts}&?%}`(6kwVxq&-%a~G_7_zBMZmLAN z?Pjy?I+D4hV>za<{b|$N!M5+HRPCK@@hUOMIUIc-gCn*bQRYkMsRL<6G#uHw(|FRi zlG=ypv8-9iCHd>keRqfZkvQ83gUg6S@t|bF>XXF9`~EXN_t{>p0Bbq7SpMHkUYuk< zP(B*QAXGpJXLV2zsQK*3i4A+Y!-UEQ#ND9KSD7jg61zeVvtEH3rUIgceyGwn{dqq! zZF;$!I{@JROnqVHhJ)3UUZ=+;*T=Jwk9rA9H92N3XnD;P#`?aeFqScC_r|A(mbsmk zy!H*Z<~7`%bxap9n5d_*=2c@YodwtP4MVl`X?f|{t3EQ@EipuaInnCExuma|cL&BD z9HEh3qJiP0J8A@qhnixX5n#st;Uu?x5V&oDLznbUBj<;%=wx!}Q&lGqkaq}feyx6b zv_ubCiTT9h%Hpe;WnKT`HdodP7t@ODpI0wcMl32N%*-o&C2ZZQEF)wu>E>xpMLk>A zBwa_e*4tO4xMi)5-MGXd;fC|K5qtY-)3Vk_Sa|7w;tNjSWAX=^>i;PQe>~l}Z!ZdS zh(alDNf`#@vC*OPyIeVFXgPi~7|{5ZUXl&=je*w?n!uWntx z`unRxFGQn$%#HeSG-XQBtqSC^@8Tm1^U|e#O9T#+FzjD~{jfoFM!pk#I)GTt1|!-! zoCHVU`>2Y3vfwfczMv1ItePPDir!E55D){d#5-1u>vgczd>F+z8G`e#(w6JLODxK&)2GvAQr^9%h0%GW%%z9ZL*KINsH*jBnvM!VB;rIP7C d(@c+Ixntpwi~u)m`Ly_qN=|ea6*|rv{{^XyUy=X- literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2503134553.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2503134553.index new file mode 100644 index 0000000000000000000000000000000000000000..64b0e4bbf5df10505c465b49d2c76b42eeffcc90 GIT binary patch literal 2807455 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

Nlz1rhb=tA@%#zi>a4VFQ@*H`eW+V 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

9T`V@LQ_j<``TLi#i9dglE|QnvMP>;_{#t@ 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 z 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⁡O!R~VM#^BZ-?zfo`e5wHu~QUng!xMCky(Ei7C9ADsw-+5(JY@* z&17JO7-AER&uM8&4J^PI+=xYNXm&$&4gH8*kQw-weJ;9{t~d%e;G#OCsb{guErM?- zyMis`2?+2zh31xXb!c`k62q>@(U({3aQ?9R?%~q^U zJEqoF&Ze!8!uLAq)aXItbx=U0yZBODv%5r!3>dB8lx~FrQ#O!gux6@1h<5ZjeDRVH zU1V95wgk3~@2{tcVuOH2UrT* zS4ZxhCoMc$KklRXys;dLb z8yGp2O5~(*+Vols_lm=2Ko3zZEwK;KLyQYBO|iIBhKT~r*L{q@D3UK4pr3!T5uRBA zNp)HU-a?SsVzTw3$vd#shnG3A){=_ zNU5pd4tT;=@|DoG3iEJExb}FRQR0PppAk~kBOQXJrlt5ut+=liZB`kgs# z&~iV}HSC9ylQp)Gpjnb#1ufSuBML7f7w`z*CqiOf5)y#?3?~yq6ku_xGu4&qPAy3t zmFh|LrutI-simo9bj+mnL!B(p_EdN%5`U`czoXjob%UJj{_-zRF=CJllMpySrTH0u z=B&)w#`seGSbwvqbn=tm&hC@lA042o8JL4tG)!-7m?y^!cOy|5BA1jzi9vWC;zx>_ zs~cAMNHiP`J7G5*BXLFsNhyb%Mhb2BN(3k}M1U)l8wkS|qTDD4r8_fegn43g)7Brz zD@Ep=tD@jq1Qf3btWDB}WbiW{bVz+Uo@hjsjK!PjJ`+CANN&Io+)d3Edl~z9L>{n$$l1hxAZ=jiqL2p{nq#uk zsj$Zk9RN4rX~P*<%k0*_iXSHve$>bylCd89)uo$zbo)~{B{^EZovEMr<}@Nn$KG zMTqFu$-~3PC?2KNsjfjy8l45$_u7BN8&PEeKeloYQoqofgnEP=HsiZQ`T1QIdolJ> z?B&=iaL0Fv@2VRU6I&#PB}ODhCPw9t)&;u-T$L<2eA92NGy#W?RC@BJ?;w9Q6=0}e zo6O)cEj(6DjpzP*TrC#gv-M#+s3S9sWwo-bRpFPzuh>hCpzd=7x%ybfXR9(H8N@eS zNHFI}Q3ilq_LzB095N48a4TjjES(QBm%OLv1?8iySFBg9|5&eCuUl^@U&PO?udTJ# zw=_E%v^!c5p@s)W21Y@KIxsK;b*fRpG4x))82p5>_;z^jhz}7i1;^^AP&lV>o)Kfn zO>OFI?^q#^oj4v*$t;UD)e_~=+|f1!D;BOByFHxCLFa0cc~O0vUR5)=AeRu{2;}CD zgWGz#1@@q@;~M1>XoHolP?oe_;9dHgh`1Dh?`Q3gi=F&b6;rNXvGS&2X4rGVz;aXX>EzQR!nd zw`Fe6yjYlTxYMbLido}g+0|u`1Y_xWsJrM}pyZJ>WlF`9g+~jIZA2?U>Ks~0kh6mr z%prn0`?fBMjY?(>s}n&D7VhEb6)AX-Pi%vV*+m$EU0^?j?bpMqEBZ~WzkD*uP&C^U zIQa;K%NIt!N3_9@?N1QLX+IR?Y;r=94#@IqzG{+sy~eKba4je>VR*Sk*eP5M}CCOv0-WyLeZ@ z7sp3#L6LQ)Ga8WPeMCBTmbRDFUa51%vV=Q$YVMBQeYwBoKFW`x9wTJlLF&>Jo~mo6 zR94hM^qj4)S8-F6j8<pJ6=|h z-{W8@02a3quD8_9)G}flANel|y7n!RN$wW0XmU6(Ql_2esKrpB$%^2-^EmkjyFiVR z)AO{RLYl+?8%@**jA*8Utm!-ft0-V�Gl4%E#%@2b1tE34MAMF3E>Y#D%UVHVn{K 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 XNnGvYgLeygqu;C*z1km+|qvPaZt z5IjR*=cUBhiZ7+C#Oh+T3cCg~@qrFzj3s08t0&NM*+2WBib=awx0|NOOc7gq@g+sS zoIL!?APWs(Uzg0{`?P*jMA>aK-5E%thV-ocWkB^5<5kOK03Os0Cq4+u9zAb5-k_!= zh2W)E@TU%$2;!*C(|ZSvBV*XLg!&c^-F3SQpF|KHT}fhcUMBrOQ6!eo_$fE=ttPJ38Lsa<`Z6@-1O{EGz4)Z|64;*bO4k~V;73naHy4djEbW!f z%X}7tjwUx@AM`Xko!2Qe8*1gaKBvq%+j&IU!qn4Pql-_Pr^l4-bOxbIPwSo{cO59N zD6i5s88X{hszgG21Ek`)uPSABx_!2L*I%8iVtTU{=hv&gN3diHzry8GP8O=6rCf+N zS(SW^8z~^fwTmZ}W)F>$N|Ll#TKeP`n_RhC?Lnn51cXUuZI_>}Qycc3RG(-(5UL2C zmcJaKsBnqr*E>AjIMhARSuw=oB7Dl%_vovCta3VP$JlT6uW=LU={$iZe?`xdy)sFnjXa>@2r=Yv z;=}_QgUJJ7M{1KFoGYJ#MxbP~WUg8jMsGZxaw#0H3qyWkV~rdNOQoJ5Kn!3y!585* zJr!Lw&@W#{HB!Eow-b0Q@JFR*ktD?-hG*cm5PSyLhA86+Ds7HiE$t#u;A=tkj(S(U zr`}f|s1Mag>SLlaUSLHhaVaV&eY4vRXq(*DsON$4qg(!Qzv4dz`w*)kT4ob%K3~F0 z0k3t=Mh1%-hOS^Rhhu6J`8k}d&eBb3w7iBUBMC%Rl{^=MsF<|wOh!}=%{U8~u3gET zaa6JapW%xz{vlFKT9W3O)ROfJY1g<~I&Zu`Vps{V`2Qi-BdvHrTw;D6d?ZhMi3{d; zyIozlvJpB!w!uHi&aI_DE~M^U(#Drmr~t&^frjmSf%@Er4(hE4Iy{s4T0|UFW(5AA z;P>z+W#qg7qvR#bPdRI zbak$HD5DA_CRhi_+!uxz`Que~k{-()xzoWb_9Zy)G$loD(n?;MIwAFSI+;d{fT6Fc zxUe}A5%ZqDc?+M@*S`f{#awFO^IR-2A6jt?GoeF0J@dtgxn_~~4KOPtBMC&462`5c zDrp;LLsO>k4rpqC9T-QcZbpI6LjtA6KLyP&)KiUp7j-KZ%W9SD1Bui>G-zzT)F#cN zlb1BiD-d)UTV#t4|F%^8w3snrq~MljvRa0wP9)jHNU{`mQ6+AqF8f8^dg{`2C5>qK zSKM@P{n-=&-G;DK{&mp2=_?Xn8P3nACTkv7&Ky#?z9zkg#hNnb#u+Zv(++c*I{_rF zyiTRKJ4r<(qR|a#6Za9_Z#R)Nu|Xg-GV>@nAnP7?^Z$*^b&T(1yMG$zJ zcs0#6dP5L>?phdOC=-&m;nqr<@xr9K!sw+fMmA5)CbdGy>uL#Qr|3o)%zcsejyX~o zZJ0itAyYp83PBRFuT*z*@T={xK+SY^p-xle#+uotXo!E+WN92pUDkYU^Ij^Lub0WY zNvaVe-bv;}dUJl98CjuM*oX}`A`w1;u zD?(}m!}AbcGV zrZ_b*9$$7#G09+&^Lz|G>j`_eR0p`tzS+|{8~f(&ryWPGiJi#af|;g5`|P3w{Tw_a zut+^V7AR7sES0E2kDr>g5<{h^exl4RoBwb{oBoL>z{bzS@HF&R&XY#dl5Ne9nxF>c zzErK{I%tN@$HCxkm*$ z3x%j1i&53olean}`LJ?yDyeY+SmW^qFt-`}h0J}Ez!Qb?d|Gw0=X#aX)vdDH#_BRN z>BfP}LbURN7ark%X#! zUQt37%=>kDh@ND)L4}0pPfCp}jOA2)q&?I^j*6)qQ`C(vVB8DyKGK-((n(}KVu4U0 zD%HHMdD4xpnWp2@rzv$XBMNcDu(SDUzADk^jiT($%q)~J+GfU~bTAe0FVzB>I|g>9 zN=ju#w%vXPZ@gj;;3_>7C@}Rrnhq5eUu2RGa1Y#$z=zwXO>>>9E|PBg1dClX%7f|Hr!0o{!(e;@>#OCC6(VH*oyS#i+S1%`D4(ky|Mux(vfdEm3rhD2xTJ1K;i;H>X%N0%lo4_ zVFEf0=O~Wf4xWJ^_xs^DN*0u!So+h_+oezG?4emAp@NNLu~1cb2(Yu{$Q4QLQY z2M_xoWwkcK$*Ic(>N5XtRZx38%pJ!s^~~~gdwM**o<2{%XTUS)nd_P7neYFpiivS! zNlx#YA;;xGBPlxUKumjGQ%neUNU)K#*ZqQ!=96JTXie{<2Fv$wVu=n@K-VFm4w^Z) zH+W%|NjpHLt0%pHc-yVPeLfxIB7wS1ahldnLtA5NhrF;$lb)~=9|n|k^hLVLIFVTfhu z0c|l~(!qR5Ob=s8m#(f$K0$2qS^)&}QCZ+=1O7%k?8Kj3-`6{B4mSB1WmUrhVXD&M zJ+sY4+*Jqg(=7l_NN`vf_Dp2YD-(PkwlD{&YurM!GxQ zFK8`E)d-j5eP;j3NVWjQv`7DD1;r-O&}F3|5=(HCk_u0&jDzH{w0Z13=Fh1r7X+?`u)(s!p@Emrff5Q6L{4kr`ay^JI?1(~R4SB%j=r zm?RaSCV+3ABl!?WY{?y$@6Yx#!`u0JG`)2|1p@%l-ZtLK9#NuSdoAEy z88H+TvF5-c)YN5);dY&L*M|`tF_-citULu67n@?q#AvOyCB7eoE`>u4h=c3^lS6U+ zK9m)o%@J1@Xi;cEYCgw0D(yfSGWsbLrkL_g6dmsQA)=B7Z3D`=y5%JV4z4ccS5HBa zG()#jEJ3VFRG!UbvufLsq!1?Xqe>4tlTHFhyH)*{5m0f0(xEk#`mqApDAeu8R&-L% zlla-^d*An=?>|xoA&Rfj&41xPQE``BRU(9mf@R7QQd9QN8EX!I%`&esa9*y85 zTG)SBoD=DJyIoQ2!peVac_U^ZZsd)Wm=Hg2LVf91(yyn#M3!BX&0`6Nu_|nYJeL&% zAM8+5T=T4|+zMVn&-{-i!!bYTLg2tyGYZix6H3}K7yp9L z;@2j)F}#%l4V2&&_ycEJ9oFAK6-BFR%f>guZ2}W**|=sN@|(lA(HR@)Avq$qP} zpj1PF8I0=$y&li^Ia^z*+V(wY9Hx3L0lBue`9d4jjPDoS&Pdn=rL?h9Pb(AlHfc2D zeVa-r(0V`(e65rievTXw-OC`vD{ z5SA_K0KBU;o76VrTWczK8RgoO8qCrmQ~Uc}l2O_Rao0*#gA0^B&B7%WEOonET2`00 z{unjBI#hV8^K~LF=O4@wxvd?ZL(sY{`YV}kM)vtV;pPNlV+PMO43j53QFpZ%R-zsi zbP*_&g_liGA+V^G%x($No_0j3yy~`Uyd1o8eBcGxR*~M;#h(>7^Xall^~0Zzv^2ER zCD$EA6X2<Jb(*@m4&@ zqU%i5tjJ7x1$RO$?vjz00p#U)UIfsf8PeDlRtgn49hfhL1M25H2OHQ|z$@wr3X)0!yTTgB$#dqKFQumlad!CZP|n!*f4T24gk z5Tk!s|6%M* zz~eltv;AuJ8O>;)k(@mc2!wE z^PK0TX2Pkx+ycoWB2JTILV3_r_EolF7701##+@DOdPGby^Wf=oNB$dl0|JYLIILX^ zmWVxS@Q1L+hX`a9pQsSkT%(Xwi3E^y7(HS?y0c{3~COSjBHGm}{vLWU?(9bqomz0=_t@AYFBF*wc+<~ z@0n(E$`N8%Iov{gb?+nvo^bB`?`MCXdvWWlumyzF5P79?#`Vq7X{zkF4rvown26jY z!?ZdYrbaKlA~RX--PX4EUfsSG$6`>&>_hJ$mp!q^7C@iXu4c&tB z_~db9A%w`Vo3PD^_2??G8RE*#wzjxfj|$;qFISDle7{0g3ouH_WYPQlt%`tQEs zDiTCU-cdAhz^yVsY116E5y`;VDg+b3GV|*|`-Vsn70`-jZ0OXs_kX9aVkMKp6(cV1c+H1Po>rvWzJ zmx_f*GC7CyX{Ol9Qy_?X;<8?f(>%PHj7EA|$r_(bPMw>&2pA4O!2g}eqh8wJ{l6jF zMxhSTuAt}eT9?#m=rh=J?sBns?QFqUHg* zN4}IEk-u!ZpYDw9&A*{X;J1pM>KoU3f7_Mxr@{5-^r6R(U$Pw$))J5ZTl}{8?XIBk zOG(3k7@^pUWVNTi4x9hZ34yY0*%)s%suK79zN#0uR9>u$#@(yNnHkG05;ykvFe#J% zTKZefg_eUPqR+BKbcQDy(O?;9RyVh!Bb0Z04g-;X!My1x5oRuG!6ehUriDpZf{6RRA`1)@7YC0xg*3gfu1f^=Xsa5j7@!-qk3PkGN=@y8kWmCn5=_p98mbHB;` zPwuz5-?{79nl^Mm&=7=5r zgFCHamc9?B|u5e7+*(LzlVjq}amsgq96G9Jve2VyS9@2T!3+MUm7$S?~XStRr z^&AbO9ssWyZ7Ezi{H7=zICQ%5=M*2&q=CG}u|K#He`0qr!ej?n7OH^8`(kIE?P7gI zMM_}ds!ojTi&8C*X1KR1G1jXGwRjN5s*_9M>q{b&o%;LK7hFySdv=VnGw-9XfX_yI z5SaC=MX9fGX^z~{aTbV{jX$;c%0mQ0*! zh%8dCz2Z=hk}Xk6SgfNmA-pv>M{7sNI|cF1Up+cMV`nM2RCe3w%y>kZi|1aMdrRwT zABh5L8np;~9codNPuFjuE|3G%$of3!zmNzHM}V!ij?gwhmZdmR++Lh2UQ?VY&KBnl z-?ks6WR$#?PcB9G8ym3BKIT6t31b30U^oP<#6KXdTOzdJ0m>zMI}m^K>hLVH&->tA zxik$?_9G3r-2*TqNmJK}wb?J0o3S?ZzOgy$bj1Mc+H#=LN_=+PHO%o#;SrQGs%yVT`<#5oSMko4@;fc_D9e$00S~e8I4mn{C&2I6&aG7L zML|4FygE(}Z_R=uc>jfBtARKpdBPJ?pQOzvm85PF-21KdrhY8*w~Zu(cZ|+&vp9hL z+FaIj;-}f=m>!wj6bh3AEiAy-q-M<<};hmYJNuZmCeH|XSujoTq^D!fk`?KC4iy&@zel1HQ+ zUcm`YTUlWp5Q?BKj|0n@Baq6cY59?O{O=lnfYeylTxX$Mn1#2YN&ueW)1?F8^XRBx zvni>N)!T{fRy%DCrvsE4lg zqsL&0%5mtqE@P~kbpxB&^K?p>mU7wftijd8s{M~OPB*@aW+b=`)_5n23P_v#e$DeT zpUZqP+nu|Ut_yIc6~f!kHiz7Dr%wck7mSGpe@tA9;o^ev_}AnA8vh3OWK~zZ(vrBo zcBuAv{^|J(^3TX$n7=6h%>2dqOY)cI*PxsJ!iMV_9WCO|E6uypeesJ2LCX5oRgwn4 z8^rQ-5j8!R2m5?dM6Qsk5Lrz{%MsDOj*xVuQW{2;igZBHBJQYiW>&l7^hkGdtsGM0$0SfXktXm?p_j4zLVk(j zaxWqs80s-mDqV_{FKriC=r_Bp$_7**j&pNlcho8?$`L@ujcwB6NxJuBE@|v4Z7KaV z_QcmT_`3_pk%WH*Tufsk1>+d5!Iq)@R_!9QwlqIMe8dZf7T`shPA*l(y$Id+S@;~7 zbi{8@^{PVa6uLlo9USqC8x5A^#JmrNF z+!5@nfltJKm3z>HGS8@LD!6WtrEW6y6?Sr+TjiCTiO8e}<(Gj!)$KH`zJQUpPr85_ zy|LaSQZfQA={e&`TF4n6jc*fuiV&uEivJ9~gv$nYm^g$+CVq@e6>J8;Ho8*=-m_KQ z`I!NLJ%j9{X}F2DsoE&uHpSUQ@atH8G}H-o$Xir6Vn_cOC&?*vZ!#K*Z}^L^lJ-D@ zjA<-$ZRTb87KW$T+HJX`72!Hz6QU}}6*AsP}b=`H>)xC@Y zS+J7G$0U40x^s?1A)+G^R*C0#lv+wfin1rJn-b$(6UIefXqZ{MZf}TnmvasC6TD># z6Va)H&_zM=dg#!#D?`8rr2IQ38;50TLAaB8uwL$GerRc%DIu}tIGipFB#cvbc*l_t z>i}P`yT9BLw63oUkze&a4a#WyAPFx3=T1)yngkqEIN=&$b&wSfi6lQ$_k0PqCJuB( zC)m5vN6`r$-MyoX6X5K<1-YErx$5pzX<_rmbwBV;cb4%wiFv${U{iqX;xSf4H1;7Y zsob&rL;YVKH`lFm4I#xYq|O+a4DcPeX_kwUFc3bP7ZrZ1R5P%LrZ>eq8?nczP^Qr4 zGQmS6xq^ZQ?wjQG4t4FT)MlGKggo*DbHWB@WhyB`^M=jYQL}%4-u!1$qF!h zOgFL;jpT{~!0P9hml2dsE$rRJ0wVNW5BG>=K4QXc<{eRLHx7^wRR%PdPxNU3t*pUd zXe8Q_bgu2UPToP=iLOhCdCV~G#7q3b(NDWv#UNnEZesu>Q=-$shV~$oOcB*&ea9mpJIK&4jH69z5pgI0jTDcy#f`8ExY7S zKSc&~&1zDhYu62OFy6u;HaP)qX&Q2@ISN4p2$m$nipx<8#{JB&teSUhQ%c#X@IS*b8HNH{57VkNN zwI+}^M<#}H)_*Q|Dp(#^X>gup1ou!E%m)WQ20Wn@P*uc?Ku z8H*ped74MEfIZnoHHIU^-{u`9bu6>(?}Jt7`86w1c>Q+c$BRF5P2Qz4(;m_phX3G_ zQbB`g?0Yf_@m*t;c%jE+dCvQR0G9MqsqAM^DY_~5(K^@E z!~*iYQj~mn^Z|EKmB$(3aG;+wN3F`ApV!G_c>HsD1H~NDNTJk6T#5xB>GONk#Yq&Y zeSUsaHaTXVb-g{j-&`KmW;*L2eXK>?qP(sp8zqf*%cccz;V3$>Qwvu?)*Hor;Hh`J zbNplaBb7oAq`$qSU1V78sdGbJ>u4?6-Z|XQZ6qWeUHcaWC`-!qY6vwyv3p{V#|ysF z!PgPUVVuz3c|c?j)W7s6|+pC5mcS@T+s|xfGpysfmek;UXJZ zq42$dMG~M|f>bg!&x(I6{=?kYR0iGH-iWBy)I$5VkS;|Jxxum@!wSJ8y7Rpcl49*z z7Z8+#2V8Ar9WAha^kN?i>ExI3=2z0G(d^T*PtRVGy)?TzyQcC!nFGBaOWczD2o+#d zL|RW$JMB^gC-xYsb*2P>w58XSVM|aXhf8XbJYj~!xF#ondJiV=-~Xh%ot`H2_f{P@ z!M;yQn2uMxUcf{|;DYI1ic%sr6JF5K3LzdCac%g6 zi=G~~(mb$J-_4bYEV(IWyjB8Pxc4idO|a$iO*g)val#qDIx=AqIG&u-EMik0bD13! zOHGVVsXy-DaD;|_IBMe|PC`_0r*cBw4m}bWOd3+Bhc;|2+uUa9N?H8b8LB$%4u9m5 zQX3N@dW$>nfAeR&Mw3VY${Hv(@>v5P3n2KP!EX;?=E}0MiG+y|4AjEqN-fb?)+dZr@;D}n^>N_+>VPMM@w3eLb60?#L9^E+{ zGJVm)V~?fMcNd@Ud)E|iKx@W^&4A_TLz*j6IzmId(4BT}?d1(~4KIIegi(CDW7=^SYSTuR;EbD79xEIu<(1wypFK3cRDhW*IFblow*j7?dB zkn*|%zQ_u2%qJX3QyhP#=M=Rw?`ZX&P-D!|gu6;h6t(lFQrUoH_x=J+w(w;3jLw_= zi#D<>qJqgEfw{dpgI(tA|k3yG>nl1f+!Bci&%~4 zpZaU3{xF0HtE*yIUhB?8w~%ZB0bfDH^?JcFZmY4O(=Nv%W^qYeGR!z$b!7 z$}pVIQKdX-SQ0=UStBh;L4_I3rPrj}!K+_{;@%XfH64>%-bwaUvbdaJdNwJuvfnSE zZ3AILxpS;29YdC6NzBuul553dr^lWed%CaPwK$zahYcnuY;4rS7(;?RF+s`Fj}7Gzl1~l zw=OX5;Is>nVQCz2%>kq^-81_C`P|;)>-o|i8<#>^cE!g{px}itbKpZ)cImvkkFBo` z7Z$s)4feXkS`>5`pIGj;-0k4GvMBIdPtiqOA7Txi=A#{+m zPw@De_y@CZgkSJKx!)CjRCginbR%fVNnLgkli0a_s&k;H9Wy8;ns78CN0XJDBl})_ zDyWgUp$$|T4s!+a8%GgS6*7WvA|=veH-M-aeALtDwGw>oJBs45ZDF}=^UI~)z&s!F z4v_BSuIH6UK*f+~O7j+fM*I>ri~x`BvmADmfgyXtUb7_|Sb=WHYS+R+MzJ%@ z<`u{Gk-ua6fd?Pj_)ju`%ww|oG2JWww)~1vu-rRcvuan@g9}KhwOXwq zHfAVR_*flxD8ZydKgh z2c2`Pd;^42x3JA4Cr34nF9L~fPOBjqI?lUVu4t0@;2LZqD*eXSjCVykzssk=i;|9= z2Hjv138&T`M@@OhIKy%f5LinFAGCi4%oXU1i@eUYaNZ-TUp7Fdz=!$#kjt|Ae0<4m z#N*ar*2Q+PY7TGZzpNVmn_=fn@3lqv7`S3c3p49PdZ$GL85(a@oj*`Fp%AEfZA7++ zTmRZuyXF;BVdPmxkJC1*7B1ytqeLu`C|#yP>QK@i(L+{o%R{F;VOcm7DJtOfJJim7 z+AE8>YDa;u%jad(p{!N{Oiv0x6iNUu_{#a{XVSY&K1>50i|=TBrc=wL7i{WRRDgYJ zq#6Y4Cnbz>YJ`p}Ic#?|CSY)iHtY#-3d!uUQl8iL^9Rp?x44X`V5-?L>z(gIiQ1(7 zIp-MkMG4l@jDW@&bcFEoMSohk0U~y21ZOHN?6!H1yn8NnXN*cJ+SBZC+93ttaYaz6 z9=S=~SaVl(42^8<*w!)655dK5n8tvfr1j$kUZ4uHQ4ihDIE8Ep({USC3@@HM*EKSq z9IN##pgBriku#PV;VVx}B3a{|e=Wn<*@Yhz{?nZv&W{Q*Or3HUjoYxiW*!TMq*FN* zg3JB4yZFeZtl1;K4x4$ia? z_y|nitSpz{n0w(^{Y2I@vl!j5W^ms|*(V1|n5ksi@MteP5%; z7})4Zl7N4Rr?My>dMJNIdBi(k``_ns*0<1nI>z`n=of`n zf4X?)lBO>zStp%EXe`VEbP04~${lIdO42k))Ird;138hk&=%IXJN^hj+O|G&+TD^*kDf%fP-hg4tq}W$<@a6|5j17?-fQ4+@w?3k)G(H zS{sQ<9!W@pklq`LX3BNwNpq&KKI1MO>ham?&3wgD2eEX+8m8JLS1MDTpfp3CXFR<+ z{rmK>Q{U&w#l%Qu3@BG+9!OA-t;AX})=NK*-HH>z3Qde|$cp+aPVc!X*4B}`-MJPQ zl3Qd6k-_vm?SndQl;?Ty5tjuu_FYT((bu8WS4H_+2EFbf@_j=V?vnb6OEDLHq+-if|Codnzay&O>ZALZhA; zqnfb=r&#d&-wB4`iDN#C!;S;7^o*WR54V=kJJL2+42o^yj20bRdJ4)edy>mx(DP`b zLfCAyhpYP44Gi57FA-H$^)^k%1SOV6O~cw;xJPMIiyzaqMNK*aF%WMix!?<<_HT5t zX~H|m5Dn(6ivQw63d{>W+A7sE>5IgP)Rcljn3OhMXKk6}N%(W9gSdN1zw5=+rcfl% z-1P6RKCM2wUDSy;AXTa=;(#C>LMiSD$z~i!(vh=jNYAj{C$SP$LX$n}-HJG@kD0Kq zce_+)&$^yrPI?T3{5Ht~GINR8&*Sy9SsFBspckv;<#@xh8?I=$5@dvCjM6FaK-|5r zaxoEz9=Z^~-ScI1>~Q{LDug#YQ^PcC?as44&CP*2ptSdWKoQ)zPe*ba+&{EPLpDMo z0jeA!TNz3k#r*a0lWtV4cd|WfsN{C~N-OM0(28lM?iF>UUx*pXByI9|naJtJ#irRC z&E)WKxxalVU4?vhU~#EU)!=Y9nGL3d+dM`m2zE}$d?J9HHx&s5{DYgUW{c$YZ#cy8 zEh)f853X-rrEb<KU3JZ+?On7#!sc z0n1!@uOn=DJBYpHGIRcRmk>RYFQj7ch}|6jO6upC*Jr-&a-^wQ+0yLS#a6{vC0yLH zCKqy{pp0!Ze(!)0->(+xgHlfb zU+HKcfiAZP&>5bOSwL_6x^~Si?uE~=Qw|8DNG0){L?g;7!=9~{T|ks}u6uga_=>Hc zZT%;g-V&v6k38g3UXGrhp&wwmz^X&6?*5t13F_Fn1#s|~>GZ|%Uy81kzd*c!Y-oXn z4osla%W{js5mae-`kP#QZj4wNj3zeE?mblEzpMR!=Y)MHY7fKajpb7=xi~+wfcb(o z5S!z9;2<@hM28sJ%)P*;)G5p{umeX0(XiMYFf%t3o5NGL|6=9&Z_CNay>Nj@!9cxo zG079$rVzWs&vt2X9U>gUtMZ7`BITP*;=imr(YspStx9sb6J;mC_QOd^EmcmINA#Ns zt^Z`rLBRYC4ZRI7;Dg{t<@34lqQa+KQy@Bp!e|k*Sgfyc34wSTnfQiyUnWzcqmI?P z!*1m)0w->ar03RjmK_0>Yz9t6@D&Irv*u7pv5Z-G5Xew9j-E3M1hW%W?OF0*w*2UK zktGUJjf`T($LQ>6KWNM>ey^po$Hac2&2A!T99@KzP#qL6gSFA*H@-V0uhiNuEIg0$ z@LOD?9YNcPhKD$^C;Da2`89eF%jGfoI9a;;-s4gTIq@+byD9PX#080GBrZx^oVYA; zMdHsA&rh@`u1fSLwj};Caa{m9EV1c{pZ`nwMN#daAijbYg8r?D^kb@*r-^#jL%tRp z9=V>yNj27?S8%S6joCe8P#*Y|YxI+3X+PDdN#GY0H-rCSL87@HZPo5~=oyca!)95y zTfEM7Mc+5X5yysDd86Wh$8)2KC%FUfBgEzj!5%r^pBQ#D_(Gg;G$0bP$IOK16ftjT z!891WVO~LbmM-Rs3_H&hn->@ybM>`zxLiS&*mGxCKDm&#;#|_FTK=lo!u*Xc^wSdJ z1Q~!9Kr*`H!uuh9onN#^;RX&Myl=H*U3T7Cv3;JSdqAD3{p#iLj?=@{$Y5y?fRHN{ z`ccIbGB}Cxy&Vt6#G@71_CZ@-pYOlM_!Q$9BI@UiVpZ`%w z#m`NTj43%rdv%Gq({>_=!3X`dp^2B+!@jlneD66z(OX!=jerG?cnN<=MOgh>EJCd} z>kltcfqIAB_ahg%*wQ6jBc3~)do1@jf2lwt`YR6*puEY5>^+y5bFl@c_xKlF(@LaH z7#cpu9n{JA>X;EPXvr?t4aS!fwf@wkuh=F+4t^RxGPYmd<| ze@a++u05lBS+}Sv8@Njeg4A~QDT598M@iXH;%l>WdL%EM|#!ZB_m@y*;XL$E#$uH@>^6S^>xx!x=n)H~_ zVYMT;WBaPA6f+I;jM#{~S4I#yy>i3u!r0z11|uB78rize)=5$?OEA7ns!iX5y$`pm zV{~DTUc`7j?`7e#Fdx6#7e5U1Jmi^-$v9-m0%qlWK7&iKT*FbLwn<=KTs}oV`YW10 z*8FK}vQtZ?FWf8x+!%{)*A`_~=%mK6Pz^S5j@OGR195_q;r0&m1@Addi#1BKrYW$U zona#r_tr{o9$<|5>(m38J7&VW)1yl>c&5z0UUwgG4_k#;ukF)r{zr8p!`If+*U`I) z5ZxC!pa%j;0}IIlhLRK8jdgiE<6_rp(WQLJ5xeMpxyN`-OD_w(_E!IT{Cl~_YG0Z^ zmv>h4PSW1_p1smUEu+Y{opj1u0qv34;B3Wxj*ucI;Mg=y%;ZGJ=*;d>{-m#aMjZ`D z`a7`$_dXRD77wS&AFgHo*gSzhj(9+Jd{*u~VG_pu|I*3IRHD1+rN}K9Xvys*tQzqk z4ff)5RuP_YpLE}Jx4G|A3V5_85nt<4+eYWt`5r(`+naW{ln=)Fayqj;vnM~DzqRob zjo+a@DYo|%L+tbIt#gffkdq8XrZ*#zB4%0Ppod(fL76-$*R zM}?Ybj9#O;w63(F)L)tcAuGV=8KaI4{*rN|AOE6DNWaL89F2>HbOcQF&d%<%20ig$ zn{vKxngdM*DVN` z_~D;Z%dM=1I?(Y@uO!u@EL_Ms@^i7|Ml!MH{8pfDnFK2(5avLs_!hRdMtulVe6!}S zPxHsY>RYpCE^I@?;95KB;=|!DpX!YMlHrWmI~kD}wELODuR=;>eQf2pIr4m`R?lb_ zc&aEn4o$TN@DwZd6$~O`IQy{Rz*(k9#0;?rg$nP#o~A`cs3p-Z;xq0X#AjMG3WeYg z+Vy1EoMBAxdXfH;*zLmFy}kr(`JjdMUmNh2(Y;+f;Q>;_msl zH5+RBT|=XI&YU1em9N?@3rema(UMZ-h9uhr@w zE@lmuqkmVe)XBxgx&9foRiY1i)|yaB4VEt^GB@Oo$mpu?p@9H8vI(JEJcta$Dg~%A zcL*7JJl_cFJARC^CK}9aUPFX)WEF4C$Ujs05Opc_6&eLtlblYfQ0lz401GBKGn8WI zbq(9Jq;T{!HN{%mAy;KY9=TZ78q%=Nyr}OH14e~hY1UKdr_@ExpMB##`Af$IrP2Ir zp#WMK2Xux|(#duuGu7hz`}$xqQh~zT`4LTOHw_}aN26UFacro$1#CmwTo@gzUq}f% z`4?alrn%7pA&$pP@R(Nd9i75NA#B#3&Ml_DL~>H2agf%FI&^w?d~1*5^&^C##hTvK z^hwt^gLw18;Ka5ia1ULYso~mbz=%m`f;R83qYApZ19|8ajL>^#VFHN{NL~0-q%nzl z+h@RM)Ld;+-C2(>L1r~^KRsE%8kb`(4b=xW7XA?aWnz*u+kQ1ZH-()(v=Hjzy%;SF zB`);WF01O64eQ%CuvG*@fx(?OGixLe@&<|RR#VUOvOor{DF)xVC{k>{s*kEJRju}s z81_9;Y(_YY?{|et75>%jn|bMGN2u+~hfMehz_Mom9GTM%%L~1DN;&YTBzHenD$p<^ zM29SU^<0hqlu1oYFJg5)5PiNnRBV!zD zac$YrtY#M5{Gushglz1i2wSgY2VUlfu1uruUwhR`8nuaKN(hBH{#TNmUwJa}qE=U9NS^6dZaihrPJh#JN;f z!&;*iG16e$tidmm+tSYhrQrfEa!-jWaw{do1N3aQ6Tz<+?@6&-&Z_oTf(`DaZ-lqQ zcIUPlc6fA51nk}$BAbY1HWtv9NN_X0*C82LK&9x}F}suQ@z@_D|_VLi`+jMZL*{db#S z8y+Af?|WrlmyTT0gZmqI`ic_ZXd*=ckQ6YxxoMHyAx4G)L~XKC!`vJt$*K}m80Gg< z?CCod1pxBMPeT49q*xivf5*#3jSl*s8Wm~)YmwZ;Tk`;%Oc!(aIep6bgkqEMDQG0+ zhq|Tt_Idx z0Mz>Pv3+_vG~lGi^0al}3nBwpG@p9*3B@5onZI(1g^4RFu`u4Fd2s1mCYQ?!F5*Dv>s(d*^)Qn1#A?ercMSU!mlB=bPX_Vn_cV4&m5dH9(v;?fC8l(^ZYZ zl`~Xf+B!uSpAWehQwZSiUy8aTidD}b)Pn9_sd|!FRBrN0wkg?CSzE@B7ej$}U}w-L z!sFncLn|B{lRGvc1b$-P6O1)sYN23NJyms-!FJG4OFP7?tiXNd2dN{`ON+ujZgF`m zJkbM38E}IxR=5+F`pIy3*Y+ECz&e0HDB8#;BqU%NNKY(6b|3)&0DMfnC}FK3!*IXM zyqOGqeH3m4CXGcKNy)n_u8w6snc)Waj7}|rwwV!T`4fFK;bB2kU6>k^W?QJVJn%|$ z9w6LW0|vPd?6I#!iBPY7+F~hIGN)@v$SW}PRH@}ZxE2wx?aNe{C{XY)FwNc)&@gc+ z4qSlu#2IZ_0`3EMA~7={0Vc}mPgf~H1io{EPmN7jQFf3(iX|RNUO(QV$ecekwL z$OXxzz%;~?@nlQ$=bBj@6l_jND@}*WBmX7g&nkhxtFadxQP_N6l#NaDvv$Bqm{Api zwq`75*d;`Je!)M;{)0*p;R8>M$qOciS}D&H%oOrG4O0sd@u9=I&-3YTiGk?*N_Fbi$mDL=v^`R{VP{;(_ z9=WTPKn}?LYL?Q+$mFzdHFi5@3YBJHu&zNuHMo_ilUe4<8VAH{eqZxY&BLxyOf>nR zxPj#cVArFp<0A(+U_GI>hP z;4B+`Oxkf(Wa2EIoe*eoi;q3mwOI`?b81SX9oCc0XtJC*n^9`vINbr|&qH1bL0(PY zZX&gCEl`1#pJwl>y-eQVpmp=Gc^AhIwIg4s7`f_){?WDgu@Ot8T3!WYekI0X#6;VD zdX$^pX|{m`Xc_&@kevXU*ol|AhW3QEC2n-}N*!ot;aV;LvNMsrL@g|ga<2|f;5+aK z2;L$w74N_jv{%F|c#zu6s?52WC)K{Z@E_{RgNO3w)*D+94Xti2g76%hYCAr@xAD|3 zn3X=fmfb2+#|xGw#DJq0JPf02}L@u36{>WfzKKIZcxl09~MO$ZzuY z3DaiT+dui8cNN#GI=+oARjnP>#;8cqdSZ%z_Kc;}7aWJ!VLW{IbwsA1)Mm=5$( z>aCwFiUpv~opmPCiRTgvJDJ=_5PlQ5HCF>1|7pdQ>?8NJ=Nki7^-% zikjlt_ZFVja6>qzz1}&;bb9exgGabY7%j>UoN#rJxp_n_t$^EyUy0g8190iW;vQdN zM`=#6LfZ=>PQJJlzcML6!Hyd1fFt$cApH?#Otm@^zfNv+rwx(`BT8V2o>CPlA0_a` zMbfv>;5kRJ{S1;6b9y0Oh&Q@s`K@Z{NY_|IQv$;j=QTAo<2^zaO->)80u@ddL-je2 zY{4ziPL_}+Lrx7}G;Pg#-TzTAzyU<=vZMPBbEgd9lu{FX#v- z^^wmYb15c-X-Gyztq9Q|8UeCuK3Hn7A2OMO)kNWkjXN5@U7{yEgDw#~nt^Q&^KU1OB1jgXJhTET>pitRspZN3!O(wLVB7lR_xNkr>>|}# z-qptO-4L*{X2HEc6+mkphaM~&9WNfSJ@^Zk)CdSXI|s#s`!f47hcl059?!6?60#)w(%AsxyTk);`@ zQ?-4)4V{@Tkd9uCb~=dk6P?>I$M1;$K7LQ*?Jh^FVr9@~cCcY+Gnn$_llpe! z))JyRdSH2DQf!}|Fo=T1lTp;KWyc4TiQ}m^razg#vh-w9VTAwHilnCn+tg6 zn$i1WAi|D;Y8J|^R1JVT`jdc!gTT$pH0w@cKaBk-(y%B4KfZODXX#a-pP+P6{#5%W zLW98Nt9%MUcpAhg#j49Uy{754c(#h`7zgvc^s=huU6Es~qhDg-CkYE>l(hAISswVB zE6T77l{;Dgr=^NKP(~w|(feK2=xp79QEZgcnG7aEY!or}4pJ3kgR>F8lDWN*R(DZ} zZ22%g+JRt>Db0;kNk*UJ>$d{?R3pjcQl7!0=cG2!R1cUvBm1|}IVv5S0c}UZqogHV zFv@l4J$H2&V>X;Ub5oo>@Re)vH2XDE6i zF>O4%6a>xNW51Fl7(E7Sx15lbZ7`^toN*`nPo{y>_Pws&(>;J?d{DrPpLL1BO>4O) zNmLoU3PypD5eTOI6Xa3YRj@&5nr=`0+B|tpBYX^Q(&72YttTtZMH3BFv>`OeV{C1{ znyp8<2Zy7hJ@9W0y5%>DH8;fGooLQIDL0v$F5KR*&{&Vy`{|8mBK!D^;;)OpDa})r zaYgHuC?z%%9Yt7k<#O=6^H#{n(xXX+4*Ty|M<_x*|40DjeZ>GJHtlZOqXH4> zwsPj4c$1HRjFWMj(dL-J1Jps#9&kn0R|8akS^e#>t)hY`Udl&38`V~=v|Kt=?)FGW z7t5D!(HEPVnu;!?YEr~g8Q3TA467KN>*hs?2Go+|i${t0R-w{Q@}#Sq;Tf5kSX5TX zmMpV%URl>%-lZa3W883HUV5$4Xt%gk+!V)<@(Jd)R+6LqUZvdbtjfnsU-N{|a;sl< zDGy()&<_Gp(_=Iur?om^Vg=fSOJi8w7_e z8xCmy(afvZ@{x3-IcVgw?EpfsuT}-Sz$K_f4Dr-Ipobi4K)oaV0|Wg-yvK|C{~mJq zC_?jACmX?i2amYgKG3hL`YWu``i*^J^*|O!bpnwDhV((m+R`4X(60)W^5ZRvARoEF zhteayUX~ZmwE~(2PjP~qR|f@VXta~{RxQ$boOmR9ylZqQ z>C*Jn_GA|Xe-hir7A>`%{SUgQPIH%(iR;wjq@W-e#-Zro>USIzFj&F$c(^pkT#K9A z-@8Ha+N0m&RG-5WpB|m3>9se;23^*9d|?Hs^}W&*JyvI=gWwaa@z3YygvEewR{DgV zttOp=0Vzg%VbjJw>AIuXSZ;M+M+F8&3<2ses`6zRT{G4F+k0l@zyvvmqm%B8>I{0Qp%X|ns;!!mG<7c^b2cA2h3_Yvw^ z%&x&Nq47EgqK!bWZ@cYR>OX>Ui@Y?lcDOH4OUSpjk_gZ-gIufG2x5W&ijxuelY%6X zNZ#31p%4q9T+XDTq8{tCiD|Jc2@V%G9j{qi(^Z3dpo;xO3+}NKMK#H;p46COe8X&U zE4I1s%dT0htPwN@hQv|fCyWxayj`MNA}Dapr2Db^iMy-uMQs~F+C=^hw7I(|)mcLN z+wAB7)s)I=5`F%~DfZ3|8JY8zrp{Z(STYu&Q(XB^9p2~J(bU65jt`10u@1!v1JbJO zb`}zobp?^Jjt@|ik|QrVF+BoHhABLvzVZ=;`BY*a@#L4Z^YIq9Y}pdAx%ZO6GYtc+ z1F15zR=yQ{XHdv)K_M)bI|*49(D&w_gO=SjuZ{Kle)r_)#0b>4b-n#)HjlJ-ZdP}$ zsEB|gB&|}(QKQ*U`zAZWd&n`XV9Bp42zrKH+mLM}HKN6sy)b)G_L

9rYdtUWRRXlIGrfh@ajHC#*&r>`(;>|lOzS4q_&oSrSM<54p)RVD?5)ABb;?j2 zc@tF9U4-SdtsCYrouX~65c)&U zgk9hji+o5gf0397BX^(r4q4awdp_@VNlc4?tG$}+KgoY;SNIqZ%A#-|Hkf8$`NdLX zUO&8%^PlK4J0_S)h!@|Z&`VJy%p{G4Ea?*{>{qg0g0D!lbb|RW%?nBB0rsS)uVNTn zdwSHsse^aM;ibnm*+>&Mj}S>-O(fot`DNz6veXrCC)_rpx9^w6^Ia2oz9x0CZFX^S zc9%gEK+%UTN9#wKa$AP1p3}%$qw{&HQnsYg!F2<5uPI&aXbgk36#F)8)O-3NFw8DQ zN_6M~6YQ)=yVZ)r7RY#Z3Zzu!EqVUs4wq9{8u?j|!5Lw!<`JSn?vpM3JNKMZ*e$O@ zDQY1Nc%%$B4vu0gm!4bHbfydYOl0Dnm*ZdbL+=jKS852wPlnKW-tNoRX1g9CayZMSsV6c(&@yW zo18NEF<|!U4b^gY3k?XanMWOuSv^x!e)l+2}N^kVwlH$~~ zdwI=^Yqr&lWsYWRvN6}NLc-Yg@X-srnxKX!YT83$C`Et@Q&Ufty(_;Vza>B7vZ14r z5o}|*kL74a7YdQ7sg}CKU%BQghytTRvRjStKqxYv(%X-5rI@{*ni#ZOnHB+HDRA|Tn&y)=ScgBl+AdX$krLT0c>M_45MFVW z-3}WPbu>!y(L4-flGs^oO3*Q|RZb!2$Hc_2{N*6smP!Alm?<{VTk|Ya6kO*r(rw1! zN1+|@j{*VYy1tRCz(ISuJwxtk$Pd+fgjO|`L6e?4sH^xgij6d4lizDH z?SQ}+k3_m2a_+3K9`Sii-@u3X)Mdljm zncQs+uX5Hs(kw5&g*laF2uea4=Ev#;)fY@3)-s|a(aHVD8O-IhTFEFZK1@g?ce+A@7cl^tEth{6ybygbQ8$<^vm(5WuShSlNGNW91c zcGtTU!FCABv)7mUDM1Ckp5l2}*m#I2ANqraJI%)G<5y)?HD1wpW#bP@uPeR2biMqu zMX?o?EQr_c$=4%un%gnGcWyEqCM3DglTfBdCgjKkK2t}aN+N#<=RQW*4Wn zKQWdmeinw|hX-4XFQrJ3WmM5*u){!c&8*;2KJ*`?$GzH-X3Ra9cpF^@MbzZaO!h8M zwaX6|9x8sRh-|0@JCZa4fHs0Lnwu}e-wN?0X*ZZ+_T^-Ldm&joTymuvVryY`hkxbS z-DVQ>YgXD=>w!e!zdElz3lY0#xL1o2lr?EWw3>mMqLnx1>>vwi#pN6Qp`xd@9!z|& zHd#u~q-WD}>6fGz(|gk|OTRq*>f)$tBy(V5Y$qt$>bsm3%)=Jr1gmU69{-qBjY&>n zd$$tWaDYKBTvchaD+V-Dd)q>{P&}ZAT!Swd4p0%TIJxFth**exX@a`mFvqCtX#!t7hN)yH_t$R}8#v4|Vyyh4EpO(BNu`FQ}?wzfC%eaCigBu|Vr zf7~^3?v*tO>F7X2N?3);r>HR#*Ft=;GBY~96e0$O%e_+j(L71)HuYu+G_$NqJ zS|yC}R5LdjnpG#L1*=ni{3I>7$4NMV13abLleLS=Ort{4x{ksIA-~|9o&B5OphWr2 z)AFkO7ogt1@P$lZsHlb~IYoA)Lq7 zXQ=1`RF*tL?yU5z)>pK`_u2~4V|X-oMfe3Xw$l-^c)d+Rx^=T_9EjL4uR`tUDZ z0&X2susq>vjf-tbt064l^{ADg7=_{plfd32&_1~%gZv7qg zch-Ne{`>VmsQ+R8kLrKi@R5d(Hhiq%;|-r^_+$g1JDoc?;X*y2dk4}sPmO4-$7jp-kAM)?&q~n%eUt{@|*Hk=g0CB z`KkOz^Pj3KQZDlzs?O#qn5p;fes}1=XvBlqZ(>xH1+1}ky|o3%62`1zWOSy5S_I5YMkKu8urB$(@EF)-5C08)@!MYh&9fn$Q#GMQ~HYK-^_ z-x{&_Opn``HJ2EQT_A)>7V?A8$ZD~+#BcKroJ=ooO4MU2$#QD~d zI*7#kP+(-!kT9fmojn5P0e-yxE%`Cp0ZBrVaGpuWShR$u7F1aU?h}V0H}+fCfRXek z8qxF+gj2>DL#Jt(6T1e5x_mF$43>I?z|u8H2)X6$F`ti{OaZscO2XnLT$6uRuXpPM z2(EKEjb20UiqKN>B+@4bc2r8t*mW$lvrpbWQL{8NO?NH=b>#IPAuO9opaBt`BL&l$uFeFQ`e-6>GPYmnytzDHWEIZ zpoT5%PbC`tzO_Koz=ag2xoOXGfY*|6iIjnKXW|&AanX#s!VAgL%Svx({pYslx3#Yz zO_rs^u1AXw2C-TXnL^V~AnLAFn+^^Tqzch(kSb6+*+A6)ef=W^JKLr@rspaB#NtBu zKl2pw5? za2;Xe_FD&Bikwq#CpQPyR39uoV}NHPj*aaC zD^UIPd-OJQMZD@;tNr%6Owh-lg51`*|9m_{=Msmw_W*?!KeE=%a#^L6_3;);5GZZDd2I;sHu z6p1n0WR=Nhmoop&)2;`5{Fn)vMxogSEWjgsdC73sySKSJ=>n z&;ZMiE;D$yQdXAX;|Wj}AGN&SwJtt-i4pTD8sEVmmsb7&z3Qi*;K0b%D292UjYr#N zzMO(2JST%{ti63jzKpxY)aE=S7fP&N=^C$_o!xcy)Z(O#_k!^`(V|RyNgU>c7B&eq z$2lTl;Yj{n{jGTUQ!YNg1EEQd!Ym%mJUsxS*GDf=U4AUO^~xW$q#r0^rY3$&vKxuq zuGR}%S3@JB_0et>OtA|Tc5tUlF0E!{EG|A6Pyci2_SUnh9~~HgxNVxD>hGbqLbWX@@7s0kyFRi>9pI_ja4tH2W3GNLKN*HR~BYbCotjHoz z8MJ~ECMZj{lX#^0`exWnSW+R?c&Kz36uAPsmG%4`4{@eq#n}0=XT&awZH#Slt8_6f zUm=@iqFJ~odjBcfK2hgRP8!1}A1{&K*kV#pS}Ch}p*-A`Kbq%)z5z>Xafu>iuN-|_ z0G908>E^cL=NPe%iPJef1mHImb(&$CYlsM?s0S5-pxPrGkh^SXyjCJNk*vvOF3vnV zb4BJkE^{>pPDlG7HvTB}S7q#$0+i#&?|+o#WBLDh@&~Q2Z+!y=OVn-lUtN)blHMa*gKaUef&sh6 zC0??m{uiPUL}7-~bokHj4$5-XT#ipRs4zgnczgtX5B@WR zu=2}ZBjSm3UEc7|VYWQr6e9&i)t6M^r0#R+g{AqRM;6Q7j7nRhQ5@+?sGQnnGMt<< zC~>lqlw{7@3I?@W=n`J=b-Zgf#&;iN%@{o_$D8`o>FLDX-_?a^*A`~nbI?NoB zNo}c;)UM7*Khw3Df!5jJGX^V5-&@H6&i$!3{SurX!waI~HMwUu1^N7QJCh@$ADYtQ z{aQ{Qh`6c4`W{H4O57~vqFA4s$<<@|^%Ut(Hd2;d7W?!BC(glKC2ellPE#4@2lf$1 zU#Iwy8&K$h@v%4&1Qs7=<$DJf+z1u-o`9_;cEfYj&za`qD$ujOa7VbOgY12IH-va> z)Ni=N)$Ki6r}5aQ3k4cKNP27lv=rrIY>GJJdNWjsD|tLUz1O$o5prTd14RnK(IBr| zAh_v=ZHMu%!*cLc3sfddwi? z6IfS-s3ndOOl(<8p}hH@cz#7Eq|bD_w9EWXXv!mpC&twt`){}#%(4PWJ+(lzt3 zGvZH;52~nn)tVDpI7D!zZoc`ZmJ}@i9}+7~R!bOJFWS7^zRrr16;IBj?uMt@NOKt> z!-idk3Ka^RY5nf2LMSh?Qip}fDO2ESbuAY5Qf7m2zJ1H%6o*#RKg#PH_nx9)ycFOK zPb97So=T*2MfqU?UO9B7YX}mq19)%c8v42{B`dzCjFryN zEx&P1eyV8&$eM`ybkJNV8_85~+#Y@&07*M_r{E{O5rgoEqEA5vTS4nj4y2 zS_EaD38B%ke{oH|8e{XsBGNli9`cFTAPwPtaho=8Rmn_SlHU_ju|IjdI=mF>Yask+ z)M_p&{Djm$vpozBzHbBCe>2KoVX!zj30zqJw~5y_K>0-I?So~+d$;Flvhc+i9MQe# zs@XFd=*l4o7LbAQ!QE(5?s5pCC8eo*ePrW5nZ+K2Q$8@z^1yPd~S+$Z%&Ju=i;Y}|KKEAQQqc=nbdOBDVDu@VgeR`1jmjNb%M)U6TscdnA=Qrt%VBoOEQrTV>jaVu(mQOPuH7Sq~fOahjjk zjOrQ&(L(ng(O(s}h;!>xTYM;ynL*m_&ccdH?}bA+4M_zT5KuarLUFqUMSG zCF^Jhhc;Bel-Gx6{m_FUICxPow*MP0^TK{SJ}*9spm=*bqu;gF3KsYZ0T6ROVyU=& z?{k?x)AftW4I#^RBQ2_Du%2N!?6c$ml;ALfbz&i|&+_or?XH3K)W2yEVjj;hXn`$C z67l)PX$EqaJEJ;A9qIv&v;0wMg*sWDR(nEmda&)kYzw1GiAsfh4=kTC! zYt-)w23joyRSey@7&AB)vqR(s@D-THqt6h}R=MH;FtBL9NS`;ddLb5ia2M57SEHsZ z)u;|gZD21);J*g;o)_N)=AkAGg>PH)R%vC#z}WAy-;@ZvA19DY+P1@6<21TF$|s31 z8V~s-FRHbMA3!tH3l1ZO18PGSu+BGis0#UC{-@d?p42_j1~H98MRel#ePaYfC_D-$ z^@IQ6TB&Pfc_=|;ZDK4hhvmWQuIKpl=3{jyd?~cbdGStFq!4cmcBz#aN#DXAl@&%i z9moFju3^Hr0s>06x?yf$`OS{aO1##KS@A7cE7QZQciZ>Q-V%P^s9rD|k(lFVWsw2vS>2gL_O?fp({%&#!cXy$=&{B9-;Xez@g~Np> z3da!qs;w*5om2PBx{KRB4@es2m!dqgG!l_jz}?&IAsHP%>tPcD8mtH8gSE|5PKf+R zN$APSq6q~!{CXzYm|T_mZ2J7>?&fvPKW+X`0A`gPVMECS-Fr8AAa99r{FfBc#Nu;p zUu2Uk;RGG|sUA+Pluf*V7n1TgC{i)Hv1!%#zM5-AStlS(stA^U5~mgD`3oIMt5uZ8{?O5MoR*3*g=*8-fm^7R%lRTwqk@DU==_wClUIR$ z7Gl65&WIVBHw|s=>+q|Gyt1&dkje5Y=mOSO>RR~TnL|Dr{Gn?d+O*cIOn}ozr4Tgr z;fVnL%{*HZcx4*O$Jw7F8)IA&4WDJ=Va&l&Cq5F(`RM0#cHuLPijENs_C0j$H9AaX zV?A*LFNxDpdFe3iUZy!peLCQYXS!^eAHi?MQx`SAqHWY=M;5R3c&CL!1tG3b9;S_S zqST}Lv%Y`j+$e4D;dx+yUco+zXT=@?Q#Pv-RO_R!_0k_0OQF(`| z1oj9T0P9t*SAMT{Oh3mIYlrVvaCZPI{M??IZajb7SR^f`7Q*k6fId5b(Ge!C5W?dH zR#$^12IR>{NRGf8UU?79ZtTN|Z{+ge?Jj?krmL->Q6x<{EGaQ0knEQ-!BD53P9z7xe0}TFFb?=9@X^uDsVt@paoAwEr-MhHmf1? z9!2>04Zo-Kd^3@R3|tM_DT|q=2&_8@JJ9xe9N6NL(~x+Cs;AvunXl(3i@zxTvea5?bEj(|!P%PK1qY4c^-el$ zR*#9qeNnH=D(d0qw+K2*wBFWwd+QHcVgH4fx1R9w^wc(j!|f73J9gL=MK>rn&*b>- zg9O=$nRqc)fNoS+fnK*tHzJsdb-eO6IJtgBvAxM1NWN+<$wbjH*HS;m7Su>(5p|3R zx}M1mH#gJX38mGbsz?6PrFNNwn{Ge8kodd0a~g{-6yI1kEeb%eRqei7T1{J3{9uv% zF*W2_B5Ug_%&lw(o&@6=PIqiro!Y*P4=6VlaATryBiJC&G%;@r&i!*~#$SGEPNj_D z#60w}z#j}%PO(@i*6Pc^s1K34DED=p%wIKZMinh#Yo?0Y#XDst4p6fEW@UTa(?$dRUA^sSt+@)>G^m0r45uC6e z87xa16#bU!lX|3#mS}Xc_}W?H>QolWAYKiBvTI|HZq&y+$smj7i{^OJG zv?1&KjN64AX!K9-ftjb#LNPX8G-%V7AaqL3mwUU|HF~0=C~|8VcZ?&elo)1h&k)Tc z?8{9SD$IJq*LXNok*}-cPQ`aF?{H|(t)%=!*@0xMss_P6f$l)ArcFzK+m2q=go1Ko z69<~ip^v!aws9}^26f(6s+YaPuere`lwl$;`~;FT(OGxmK}VgIKf3n69nl}G46|`| z%{et+Qs<6jODdCkYU-1jFK2Ge_T)Df?ri#S#MN#7UCZSy&$e#jx3qkz<=&S2O2egX zRuzuht;@tS@6W$Ce{(rc>uV;MTp*FO@Ccg9GktduYa=;QO`W*!1JEdgelQnG#2?CS zp(yw@oCKuPgRnN#oh+7Qh!kY7BrPYW%d|kqmgNHcLD~e9P4Zmw4?fI6Kt%#s#Q6#n z)wqXU@H$sSlL4wmN6_aj7g$+;5|zhWGC)h$jWuy&vVl~ftwt1&%18C4+x zB4*jG3T5>_ya`3j7h4@ZKUf189=?W5Q^oD!NS}<)oa z)(GcAvD6uv8jYAak9xs`QIe6wU(7w%%}VD&BIr@l`Qw39#>Y>>W>!^|@yLllg=sokBlk_aHve`nq0K4Y zl@Dg5Igxi_uCYvv>6#g@)Z3(e1gTNX&>HXi4d1Pj`&PTA`F0ab)fn32zsY5(1Ybwn zEkzX+{T7F3NrJbN8U0_^RGeI%hO}j}WeRnC0&P4$Pzo<)lRPv1yB3;ugk6FN*D$IY zLCR0$R{fKp0q>U{xtIt9SMuJEFSp3@S}_UWSARftHUEdJH+3p29yEuWp@4?6PK~>; zADh9)#q&ErhDWLMaQ@%(Jg}viK^08tu^X;4av5z-#}-4A_j21c^*S;8(HK#F#5?I3 zhSJN+;0ive9F-ENn~JY)K|3`+k}kOKT} zP3B&idrR%4SoUZsi)reMur%2?}<(_#z6 zsp{Ybayk{~#j{$FkF_9PG^k504IK}3rpDxlos?#OHdQK$PIwWvY z_n5mVhgOxRE1GL9|4o@8xyeT#!O526WqNOXJQaT^`{L|ZvVX{ZCHFPnv&2iFM*q}g z`8tW-W_S34EiCa8y66CPyOzlE13d7`g{psxnjGj3>N*==VB|H$>Ji&>wL4=IJP06P zDuS${2!O{ICi?6nyks@kJ>klB+H>ookv!Px&hacH()b~B8Fb%R&2p91b?E4uTw#Fs zy=!KrJ8(x@#CK+q8}Vd?zN+yW@z%9V6K$EcY+GGhz4}z!L#m)tM0d{>0r0E!V58xy zxD`K#1svh>t66PhxW9-Zo8yUT&g!HAQtTY!J;>7m&oD3YEZgZ-hVPUg zc#?4hJr@yz9ebeN-+)(l^3w%KXbo3QBiC17f@GAoo2agFM>^EsLE)S{SbB7v7D4GJ zH-XlwF~u`J!>Rz*JNYxjdp~k9-UQs$N;%U!YM^l#T9@ivq)QfIcF=^rm^+|nO3D*(JSj(OGs4=M9r{^YN zavn@$t|3cu&U+=>kxiFguG}%%xr_}t)M=jO`cr&tt^e3*6;d=i4cb9eUT?V24_sy> z;9p$yG^C)o)4(gef=W#fJcfBRo)o#Hh+1Up+cVuMh^~h_yIDIDbKTi1O5g*le61%Y z6-u}$C>y#_T%kfVQLdrNlk)+hD*J3SXwn>c(r1uQ!}L-7&j7&Zl;?T{G0`OSOxSDM ztjU(rX8Ht-ROk>KZN>tlC*mt;QssRbxZbu~eZGKcEa`_>s1sIaK3`$q9eKiK{$lt(=u)IvsRbc|{~@f;9r93s^WVsURzP+yLsv#mVRxJB`B$Cv8WYpD$A`=gL9-gF~#ljlK;+|b__5^|~ zOBrOZ|HsPa_0e`?KH8lZR$9ZVy@nGbun4`w7pwV2%@eMm)DW(9SDz$88SJmRgiHVf zovyj4W_9e-$-|kOES)V9>mV^2$q9??nh7KAu-{6DFbuqxSUB2Bd_oK2Au+4C9-MiZ zWgdhbZv0owvZ7WU{fU2cGWJX_llo8f{0<||8iU_DaGliEJ!R|j*R(NF^pz$<2ZHQ8U{ zZ7?-`Bhoas*XiJ3gl;uM96(Z4Pk67YTbFiii;!&OHZm6W8se-jTw7t8uN1FM6K{61 z^|YSzR~5fe{I}vatyVp{2>rwo*h8!y>7q=}#&w3G**&z{I<}Yu!8I1G++;I|h_2=3 ziB$Y%BIkyxX0Bv$2Z4n+E$TV)Elc1tCailBM6D`qKH<17pVDbCQ3WvEax8m)?j|3u znQjJ2b+K3v{ToyOBzK5e!?R^p);yF*0WQsTl0yycR_N6PS$g-Zp^d4wcecH&?fq>x zwSBnlBd*TM?bHXQqKTd)?b&6?(p;WoDV=jxXwDIuC9O7`ee$oKg$@v_`;DivO7xhQ z175|`-urIy0y4Tt;o?vo%tl2(QLL-4nHFP~`Cs4D=_!OBq6q?Wp5ni$Z$lqg3S|aT z;wlS}-|recxN7AMGKTuq&nVPUpPzC#BviqrvEL(gkb}rtb`n#_`+HutF6PmIEUckG~-PP@=^( zqrr_fFglV0n|c9z<->5B`(>=I)kx+(nES8{R^^Y32=@`3CjbTIBLN_mxn!MpQZ

^Xu8F_OsYBkCwh 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%0D#h*gDA*Frp-8__z#k3k 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 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2097454686.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2097454686.index new file mode 100644 index 0000000000000000000000000000000000000000..0ab3d4b16391dce7a2d009d6aa9e3d8a3772c338 GIT binary patch literal 25 ecmZP&_VjacjZg@44GQ-3_fs&`Gc+>)4+H>G`UvL$ literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2161353423.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/2161353423.index new file mode 100644 index 0000000000000000000000000000000000000000..e832290d59461487d3ebfcbcd1b3ec552d2430e8 GIT binary patch literal 22799 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%0D;dChbK*Vugtd?%%l*n@L){3dW$*eid&{a(i_eFb zkOE&h-qWy0a?D8%Br_6S1V~#lo83lk(scCV{fP- z2QpdcfzD8|BUljLf}ZS(wAm9dt*4Vl708u6y_={?OpvAoJ8U%WC>c9X(oL!LT3A+g zG{0m89*2nHI4wSbG3dC;x0K|BD*n0)pFw9Ocs97E;56uBD8brJb#}txw5JY^?V_B` zLg|Bsm${`|bE0@H*e_?hG4!nc+cuX1ru*FBu+AzM4^QZX$89cOM8c$1i-|4-@7Wv< zd_yu`b!ugY3UdOdRh` zc*&1s*@$-JtSi?MDE=#1yMZTETAaYv_ZcJE=rBB1L9mMM&WyaMCUOKVBOTo6Kkec+ zH?`EQGQFUWp>o`>7$wr}w)#c_i1|a0jF=ztzDUH{?SeWXM@Ntq6KhAdD8?)IQSPf4 z>!^9rylc>ie)nRHmcY-W9wntLa<|BXtL!XHsMqYregx~NC=-g%+NnI|QF%m$aGLW; zegVR)v?X*NK>kGMg3ar$&OCUrej!6ZciUD(djO_fqkMf?`hYOyIZE?V7L$8q;Y}!C zVg$X6D34snkhzhx_~V`>Oivd(6&TYuB)~+6Gd_UuxK#SOBpy`u z8!=0-ehOP(x-9i2MP#QRQ`{iGsY+^AYGSlnDrKF6Qk_zRx@QsaKcF1yaf)T-I_ecq zV@}OWDvW!qgxH{*J>-l7Vl)^Bj%vqLCr5Rv?A2Ph%AdvXQNT&GhYP4Gek#c1Z{8-p z=wx6{=w>ZuGeh&vddK#aUmW)p6@=H%!fV%DVtS7?YTQ;8rVFFX?Nc@2NHK}|_Lk=i6WIF6cts!wdu32HWxRyxbUrR4_8BXDP;1K zl3lP}O+ped#Y^<}$=1? zH42s1VfIhqtInt`Lt*P>TPB^3ZUaGj1MS61vO%f7eSlgO89dm=eI*Q?z46azXI&7s z=oQs{xfG?t9L}Vn|H?40?fW!9Xa!^+_17Z>_>%-C;M1Odke}AEsbRO3>p!WN#TC9)M$Hzq^wqkb=&>O(pKS z=Ndb49#A!=*+Zo32Ctq=9@ccR`aRf|?57=0iUu8C@LR5JXBXClj}D8R`b!1 zBA@Lu)qC033iYy6^{kR4SE@mFDLUV~;;kNq-g2-2_LuTEs7V z?J+;Umv!#|Tzt(`YGz4iX0fv*k$G6^5h+fMqrv{RU| z@^AEmu8SHY-y7=rc|P@4%vzI*?zi?Xz1MYa)D=?fxBSbPqfPOq-`X$eovx!r?6`BK z-{OaKvTJd76|C4ulj`M+%6I=7~2RFK!z}72T>f5+Q2_;f4=m)Yc>24 zIzdd2f$I0$Ud|btPwD-b8%5mP8yF?+_vlAmNBf{{4}<8MyDS*ocC__QuXg+?QF8kP%%!+I8)4RR- zZ5u7HB(~x%eGs?W_5t?Y;7gj1+2Dm#uY%-j`eDpQJ5*_EizhGY9SA?6sd-LF;nTCP zXxyf`E?T)9;rKGV7rQVlQGcMfVzii) zeCyYr^+L>d&x*ddQsz4}ugFzkS3daO17z`x9L@ z@bw|U8HH+Y55M9tB(LU1Zsv(vP`}#Rc(aX1!-`Ov>W3-&v%@VAX48LPC-Jn_%?3ojELztycVdYw`d z(7&SZzyL%RsuyBlw*d6t>1g)>eHi6y>0JzMEZO4(4~hZC&|`Yl5!4>b)Ghwx+u3a( z;#)kS*IZ@OYiHqwFX`22?)Ip>M@O{GZ*x9h>@K}xltZtxg*JD<1cNlP%>AUx)vM^M zS05?4C8q*@cBP8nw_?AArzZ;d|A8X|zra7>qQOD@o0DG=YqlC_@0VO5#s?_B8MHRS zwS}O92JXz?Pb>e5T2{Rt;`eCK=_#vz^6vivNBLz0 literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/238188904.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/238188904.index new file mode 100644 index 0000000000000000000000000000000000000000..aa097df36b8cc754ffbfab574076e96485f2e187 GIT binary patch literal 159109 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

w>Itr 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 HA36VjV`C9p literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1700302528.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/1700302528.index new file mode 100644 index 0000000000000000000000000000000000000000..8b9949ffddd4454f6b3099a07ec879c2f187b24a GIT binary patch literal 753677 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⁡{F(ZkpMJCzB-W1+^Pq+ej}B3IGikkWc- z=S#?_beq}Qnib;)9~1PE+b`F60ORKqs-JW^QG2OTZO)TS+&kt?Ne$VC8tvC&8}?pS z+pyH%Gd@)wXY2=gqx*+9_Ping)qQ``IhuHEop;u!D|*b^w+TIlJE97|Ie8HxcjP!0 z+o$ECg`^-7R79JmKLVQ3y>0AgCkDa8hK^o!o7BErofTiF0{|)59mB3@ww9I`7Q_mp zn1V`tEX`e6Sij`AQ%F+bmnOtDVUQ+JOT|e`8FOOBU-aA%uqoASIksT5(?Oh)ho9t< zSS)_F6&k>pIBBi%7GQ#At@tDO?*V`YuUennkNfAQ{z7LQwXG(Od%sxXNp4x1TbQ0v z`0B%swwLebvj17^M-Qa5T)%*6v040Z{Je8$x{J6?o-Z$9Z>)I%E__GmGOE$ZG!XzS zMsN91c_T*8c^;Ycv1#$ih{Gk!*B;fm#Kci$ihV6>DQ7>eZgzg&KGFGwo?A7^`;nr{i)*-N3%NkXfwDkC{Ra!#*T4#;x=-=XrKkdN1a*OEU{r%2aiP`l$WzW z74Y)IDCLz!`do3tFNHfDt+s7{D7ViSe9ND)@rz`fv`)(0XvhD~vCy0NpJ2h3yD{QH zRL?^(uIL2n&Ahm}in#Ljk{)yexKIy2V_I(Z3k;i=r+?E=KSJA&7yoa)!BzKl8G#>f z^tPl|yKgLODEJ&zd9+==>!oDK$Da9^cf0BWafM_~>{M4%5JkEdi(ZybEM0wWVQG;p z_Vbi6Jjav%wzDp3!GWvw^C(U=X1liNWdC~b5Gz7@(aS@+TEv}_aWB?d(X?nj5fcsb zYwne*-$Zn2Q>$B*42W|d%a0HWxgI~;99Mz<7Au_Km`L?agv|aWWgji!)ZSSK#8PDr zqA^b>g^rdvac$3n8%hB4b(U9TP0B)ieIOr2q3A4ahJ~c*y+|szB2gGDUyq6q8$r}@ z!QPslqUc=`Fvd?T1^d4ZD7XiAJg;cq8PIE8MPf*9kHn!OEu$UAc;>hN_~20lLv~u` zVil0YjH={?-TttC~{t#jH@RceB8JxEFOmkCElLfYo^3uq9rsgk|3 zGI-+1xm$Eela$1lz=6QV8TE3NbQ>G4@QUs=0=Q`m2WVd*u#bBVv3a(nh<)V0uWblr z{<*eP1Ys_jErr)5grAvQ=Pf?qeec)q_ebJ3hMat!=rt7Fneu~ z=|)d`Dy1k|F;5N(6W76IXsa>~!?^mV148cEK{pIwg5Rl~GGU;UxH~2pByCvvnqijP z3%2BtMyz6(rtB$!HV1G$$*bH|B0*l5hY3SFS+djXNHGr1TinKlBg_=Ov{$tNIlkY7 zXRFmTw3tT(R%6x;ejN$>=%FK_n>SzCXW5~zgfq4Y`c2zl#n_IiZE^Z;a~*3qIhL}4m9>^HV< z-P*DMQwn>b5Loh6StyGuQ>Ax`59C$$m~-%mgX$Z3XMFG?Zd!jKOD$nZw|03MU&SX# z^B6lJ)U&L%060#&{Sw)ovo4c>=R5Sii%n2*({XG4$L+W4h@*+&d16t^qN$5{eU z=oO5v6G6acuTd${3`ZycYieyK5Q7>e+$^t|$$OUu(EU55K?F2KD8I;Yc5$~l$oLR- z6ewG=@Uu!ntnaMnavlBNv$8BkDlK<@-G&z$oX%TMnpJDyq&U)nQ7UqdWvkV+M5#cY z0n&*6S}lJ`>$P!~zz4B1bHV%SGU;Wvt0k3HHN9n2Zl- zKQOOuP`U1KCjP?vJIp5e`ran$L-u~ITClh^Iy=Z1=gJ~cu9C{2c#vLH&7Fd)^K|OB zo_uTT%VTF4&K%qx9uYh#pHd58dIOfB?OGWt(dM;knHad`J>F*6OWcn$?Bgh4Qa}I= z0`OSgpw>AVTp9dLGt#5FVj;@G+gqC51pN{OIfpfwNfU%Ucv6T)w?x2*ciE&V45Y5j zo2C4};_EV%`HBMGD1I5q>xq4_zp0}{;YClfN=g>KAzHe{_2nwgnr{*j^wo7p1<5iu zLG`Ni)i3z7NNKUF*tdd(Fuv%S$Uh~qm?Z_mCE!w!T&J%a1U4&0agsrmU27>K7qr#n zN5Srcm?d;j)YhhBM8xF_jm>NL`ROaN{=ZTysI(&n;eh+42fxBg%aMxAObH#!q`+h1 zQ~x)E$5>-7N|J#>p1|+l!hPD;R7%RXY|HyMH4(kXcY%B@vKt(}-lpl=zAvXxb{a5a1^(m-dZNt%YpUAShSZRk zw6%XDfOUOt^a^Sbiy9gKCYS8goT%xSNom90Y_`?f&55BD?wPw~gx<8o}M=nWCb%cT7~;F3U>Rp!9xj zktks#IdlKuH>OlS{Gs5Ii5~RSKzy-QDQ3^ROB-a)!0WzmE>qc7&p8O+#^9QeRT|G3 zQ_2ndjlp~FNWfb|eD?sFIuBUZeQC$cY8kcLMG7k(dN6+gi_i$#TqVX6@BGt)Z>!d1 zwmTOTeRXU1MENhw9?g*Ih|60?pBx^I4Ukr^25&d4xM^+?MRs~(zw#|uF72WQM zRwZ4T`qU=eoW4k@KLdG4&kWMO>F#7A$iKq~KJVla-^m?{A2E5=I}Pbg0U@e;xE$|kp0 zYY2?KgS|U94))hhb`K9TB?40~e6N|kUB=TL=VVxUA|OiXcJ-ZobZzVQkWyW%2hP7C zM?FU*cJsjVL6kn$6d zd$p7;+He?+Vo)Y$;qx}Ek5Y1MQjmQti;q zjXJBa{}HsU+5))yfN~a*GGi<_uOaYxDiEFC8up)N^RH~t2eAJvR_@|)|0!;&B1Ziu zL)`SAE8?dAY{TC{4YLsR=C<0Cp|w)W-FgjB{G??w3r9;X7~3t1s(CfoB3xo5i@ayR z^LC=wE|W`kssFq_V_8A63S64bo!5BEzhPrtX6$uvmRl0~hgqRYHI@%v@rRIG@QmL{ zsmo*dGCcvb`kUVFeTMV27o`m6Q4reJ(sMo>TNUf5v^xK7gD#VIV)|`1Hoq`<;qkE)XUnt}nJ7Shp$%|SA2Tn3GqV0!x~ zg<3!!W)0C+#6gJ=vMVpC6#mM3*wO-f)QY@Yy@8R%=9KfUE-seLS|xpWKO zcomT-n0qOyFQrOR>6z4a4(anO9Mii=yQ8?r_KO3FK=Sj=fe6&?V0T#4xFjraD_q0N z>-=q71%)M`AM>^kOub({Jn$Y6U@S2vwp;bbx0YUQgKfnMHSeOq+~nt#N->vBVnFy5 z?FgArG>1q(6u&s+MQgFgTaKQone}78K~Dw=XY369;NuJ?Myu`|>j)D=FH?dc$t?-E zAuBqOGGB^Cy~8kHX|xZ8F(M!dZLlW?4gk#0qg*lRv`tl+Ni;ytzUi~cT<$q5qr8A) zj4Ck-wETUK&I4 z`?!rRuy}=HGd8~i8WAmL{8A5_(7J@aT3 zvvhogH+{s}7;8``#FD@;0H(;-lPoIIq9l9^OiQ7$U>c14iYQ~=Xu98D<|WsS9O{dw z#2^;;BZ@C+Ov!5&XMxSA_?y?o*iQ&(8wz}B8px)@Vqc{QHnr|UiCIE(8OQn?NR~K* zxEwtDDrK}Sjm4;G%yFilw{oL12b>=83^KC%i7BZU;|yZrg)w=xVBd|8=3?M6=RC-CkyoF@L6QAA+TC$lw}YP`&^rxqatCDbAX)pPLFT;*=Dy+w%YyB(5St~ zACjg$OjOdst&)ypBtni;ReWz%6%{C@0Y*;gO`LEx`pv$p#&{KMZHIfQoJ<4iqS$RE z-P$_LN{~6Hl7InI3cU7P^B(Q1ES*c9^2qVUbEz==WJ~0HR;$R;^@~>BZ58Mum;RV{ z!`*I2v%QL+=4oo0NYNzPaUn_+CC|bDs%H>V{MYONyLh;u_g3F0PJThqEBcgdnH2_>6vuoD)&FjV_ z#`66`OtrH9MJZXFL2NAn33&(0Ba*c^B5T#{e(M_1$rH>$zQV^XKg$XnwRMD^w^84* z^K9d8Z4eV0w1T|NO^>WXV3unAa1U7bEGwUv9PO`sma1scB0R!ujY-UNyOUM-BOlj~ z+~`QxMcF(@_o`?8g~h-koR;XFSE1Co-myUE5isxe9!WP8v3@Q`i;n3c@9*+=YRLHR z?l208W8+pTOSjOtFyrw#mFE|RMZwuoyegN`e5higkN;R{XGL?%m_f{Rsi)rRbL4zj zI){1hB0IuWN~uE6>&UZO%8!13VM(i0A$On@hKC?{%ha!1)|J36wuwJ^5Z?RCPF-D` zjl73<%?A04T6E1&y`k)k#Og9DuSBz_2j8Ngm%}Ksd!hX-PiIi*?$b6F zWG}w3xVpZgK3DTNCJumb0-`N9?@qBI9uPZF ztNy+pA^BOxlstggOX(IE(X}yIQi24!Sf&Z;({FNilJX3x?MYrCiAgYT)U6C>r6tI; zmu8|8`zrJb()OkD-|+nDoFqODrGRDdd`TpLWte#hF3QcU$? zDndJgKq?)wk$1IVl{9$Pw_94HL6%wtFb#A%m32RT|9 z>|q!)dfb8f%ouZ2w+cde@F!g5oJ)b#&jF0tL^{XCsg|zhf!Ooi=7Ee8{7@5E1Ai(n zRm^kn*DUuyf@)TFX!(%ZB_T22^7B|Wc3+MANHVt=N5~2wp-v$v?W=jB+9*n`m5Yk? zRcN`MWE#d!+7|pyhkY_LpFOwqbPZgFm-XKKT2pRdi=_du#iq#KN;ey;K_^ zc;E4zX>olXq1@ATNU!DgFl6H{*h;J(A1w~>0u##D_4 z)1G6${DO&9ecM20Sk+RhcBoxgI>ef|NEWKj;u#8Xu5 zYIkpV#OBU?oVhDxbYOA_yi1W*Y?W^2L$Or4M~l6~QKc?V7T=JT$gcE6|8r{iv?N!x zdg&6b3J{$yrbu^bvxfTB&pLv4Z1$EsDNdYJ0$tDfr)p;$$un6G2}x^pB#0D?tl24W znK;?@RNLqD!?ONtU$sx_hb>npLarIOe~-y}%>N~KLQ4w|O(QTZ@&VsyV9pTX=QTh4 zFZtdE;QS<%x)w=$4&LLFke016 zOSSz`ttnqb(_N;?z_g6ig~9uhwnWwI-5*n~9Y=rMH5oS6=btSeqckc(t#eYV47lXL z95WFqFWF`Bc=H-Kb8;R1TrzM=p2pSb7v>aMX9nKvzHA42^6y$NJARU=Tc*ICHrNw; z4Tva!@~a0&pIkUPI6eITDSH<%yRNHD@Z7TXvMtLG*>NBwKoTGiV%5Wr10~p-NHda(8IGc)R88-valJ*)9|m8 zcmIt~9iPfwnVxQ7^zy^f`S}ITr_jk8m|fHiNxV-fi~u`>{fs~9mnZz{Y%I~cVH*HgFtmo&n%#dvX^lIcS0Ct z3XOLpQhq+$BLutH6#K3b9s=**ziNipAU$bCR`6RLdG zmEO)G1>(LHr4Bvl5=#rxXbKU>nUl;f(>b`VSq-BJ$Aw0_u|Iczc!Q#GvHd8_(oPD_ z1U+W*HrZVP;8ozSF{;AqbTatn z*^Dt(ZkFfB@H0!x=T?Y~)a@|u1e6TC+S{b*jsc|2871 zOM^#FqbH#KZ>wdI_#3BDloK=EBO(%;LSr|U|AEWlIAuUHI{@NjB6tJkU=ajHlEmox z=Go;~s|WiKWRLd_N`CQy|b1do&97;Ay~XnUI8eL&jimTw1mZc9R~Cq?5q>@B*s5KfEv~lT=v_ zm7s$~1wYIwSK<{R40|G4)q_8!EMz~%yU+V6%^SDpdV}TmadU)a2pmdL&jKd zmXGz@5ha=nXQm$LefI6X;=a+txPp4K&^b<zo6(dyw&{cEpPC;%(DG28Oi?Z$pnNt^uQf;RcZ)0vWAJfZ2pW(yfn zZ6sG>`aQL|+IQE^sW*J_6-OtjJ}<%I^^g)myC9$j;qZX`D;;Rt37nNp98!yXyczOp zxVXtT5@%~j1;LEcPQ+>%C+RaTR9lMUs6-pV>~g7Rb_Ho*!uPqec)90psgFIWv(jNv zah5_Ax%VN`1i?xU7x^uDG(!dQUhAw~yDQ64sBplbF-hF!1bAXY`P3<-doQF>wZ5uB<#F%9cWd1qsi>0{d@CFl+87(2VwRv78yaVhwrp3-;+99>BiKr`5r@w~BKg|0iP?n`Djuh|UBoCB+3W?=;QA;vi zH*KV2pksLc%Md8p!v-#JEjKLW>-?%zl>kT;9?nbd0|iFvP`)@EEbz6$Yp-JgqeF*i zvjYrni#?7*KM7WG^u#jGA~6>$%-*WkMbJ9wj!vop9B0t^5x=+E{22HGEPZ+FqBfiX zII`x$vg)an2fie!9}v(y@iD(J1DEC`=t$+XPBe zL$#V%1QHcrgMi8qyOA-WA_OXbg_Awjh!t3;PV(%`FPtKv6+{ohAP#Ai_^d80fj0XF z>*bJkA!kva%d{Ph(!2N15Xh%$|xf z2wSK}mRV*Zo{`VE1M`4~E-c-LL|v$Ib#>Foey{fHIvi0xqn>CEg+%!xA|KZxKnP9} z)#XBFv{Gp#;H@gaRMT;!boK<)0GJ4P(H!?yjOZrI=z)ie>f5Xwa7?qdmMaaBb@mTX z?CBehYl=EUva;xV%3V(&MTkCECRoggW@b>HcnEo1iO+V?{x98|sVWlG6B43$S~8+f zeAEKI*`H+}V{9U2pe4*$f*6psMeKP4jNJ+oVe{UZy@tvb*5*!6$mi((3RnuS0U7r6 zmn3m?Mu2T$=Tf{Q`GJ&oT0|O&R0Z14ODTe$!XokB;uADweg#atiAeDlmj0)h441rf zA&?VZ9U+eTs_0TX-iFs}n`KlD9|m0*1asrg_Gu*cT>Gp(D%R>v)lVa;2q+vfD=hB> z75Ivq*&NJE>ydrBT+{z zLXT+NSI8pfxE*%YEEUFYjYFPV=VoueaY~p`KRBV@=bL?%<5rwT$Vz8#hEsL9Lj&BhE7fntk67+W7ai+(@kvY zNd&s6t--`!g6MO6{%r~rxMYa|0y8+? z?uh$(M#OH#ecz=#B6%0^y$Hc@w_|XN`&N~2?tRVjh~zb?`2-G69X99fd0teX=OkM} z2V+udfz>VG1(HmknQjspXAoa}w(?q%?aI;quxtp=$J!_@f~UE)aeis7vrPv8d?C09 zu33H2F#7K3rrjEje3}R1U4tcI~0uc{K zNq>xUFReNv=&fEZZ*fGY7Xo;pK$x3)rJ;quW@)IRG22O0G?sMyy4*Xx+p|>L%($M~ zE~+R8TPvcpNe%`{CfjW_tgq0%&|-_yjqYjGKM{2>56=nGiy^7TKW#G+<0}algW9pR zvU3_Yd8{{ir_wv8h~bI}QJR(?1irn-!YC`8SeHe^M>4koi?Uvg;V19aNRz8cV9-!$Y{n9!?^5&Q9N`QsD)V(<9Ux+h_(7~= zYMXTsR;SvZY(vwhT5j0XG)y~&(wv3~q{kd^4%==x3uqWS4H>rFxZ=V432+#pGq_cfo3`g9L1fphMp2^*E_@gK(R#zz*%mQD;!>PzK64BHPl{l(_#u{lRz z*9_l*QzCM>+Gglb`%6A1=w({$?-|)&1?3OB1~<7LO|`PDc_x?XHVTkkotej_i1s8G zN4$+XlTh9TVPFv8{DF$?F3zblkAt6lVmQi4=lQwu&q0C+v!$XXE^~@{9d8vsQM+Tt z^89v24x`Q*A~vy7*qi(`d{QB}RKbqZBk_58ZH*yX1V-`y{Lt4vQ%1@F)vj~%J~5SQ z)iq9O6@h$J@SjmG0n|k8E>+^=cq(O^cK6_Yeb*5T&wA{W)S+Tf5KWM}x{{rn!FblKeomJRrGCiZ5nM5!S zkE>dd(tj9{R0)cT5uoD;j<75o79~_W9qu1xIA$It4Z(;dnwcA>Gs4W?C=B4cGKKd~ z7zMVb>+rj2V1Se$Lc+F8P)blkW@&rbSQ%wspJ*>0Z`I$^aE!g_cZfJtSc6q5kdG|< zGUFge(JIN-^0Z1Yk1j6EoE$~bjQZ$*4~`~=6G_e4W|Z*xdx)3(xF3*g2x+c!7q$o7Z9})wKrTjQ3zix|`}x-&!FV-zLbW_h`_F#ybL1C1o*dQ%w9TtD&x zhy6N$Din}9@@T??DrJ@Eqd6etjW@kZQ8nbQL+=mdeU2qy4c8`oU{_Cq@-Yv=0$%6l z(0Tp52X02zi^Tmrc__NRv*kr0@%r%nD#neW$0T&jLl!KHyhS@cgk=pisq^RQLjKrTwj1b(4VSf&p{)_97e8T zqA@wCPW8C{MD~K*VbFUKMhmOaktFmjUg_^$#sUNmZZST*_JSowy%2c}+z-xNzyj=c z1BocaxLi^qGsl9`?uDHTCDQnzY;x5H87OLaG~FC7zMk} zCs;|vI4QS(3}u?`B#w>Y$cn*u_PDx)FMwj689g5{w4ShxLtijt!2nZoI|};A7yYwCkdC1RntnQ$aLl z*RfjmYolocS&0A)+cxKA9v~GB+3EU@?G7uuU=G(iC>UXN84XQ? z^M|k|Cw&=&d!pzd+-|6XxszovW0D>7n5_eq{JbE#XiiS)Afo zXdE@t31}@Gh6Shq5ajeeG&3go{nM-6}(p-B;npzHg(K> zX8{ZkL{wZQyR;A*@Wu5h_Tr%64QOK=UcDUi4DZFzVkN3@5?o3aFPh+BohoWKd~~$K zW{#sYyPN^=L`#k1F!D=QZVwXY-I>9Uk6>qzY37p@q))#m5-`Xomc?7Y@kGpWeB|)g z8yFFW*Bcn+RlkAo_vF~Bz<%-{;aceZ5u&5_M@03*k6>(owau)q0`La&UOJx}v~aqp zs%Yg!0xG(dSD=pLn5=+hZ}phiC5+n0X@6Ad_u)Rj4~5@(c#v=zG(Pl2g66)oLAcAh zj&Nzh!EhtJ-xcXRMwPg8ROYtZZA#0C+DIt65CEM)vRn7+Q2PWYUsU>XXhFIIg7^8~ zLFb){_~-Si?k*hKq8`UQ5I?WQ3-m0JNXY_-gsq^cjOq&6gsD#^sI+v#!w>~-cFr6J zs{^XLyU>|O6Y`yHw}TJ`rh6y|9Tb2gLKIICgvxNK;iBL7gBYYqHfV4To zrlOR(pf}PNKAi21UC19d+nb1LRHuU6@ko1BS3T$i81_zS{-q?80-PBpIjUuCY@^DF zsl3!MsS0e9)uX+!0Pf}q6Lswmunhf0IM%q5szVcHUp0hfK{GJcT>5p$er1y*uWgU= z0}Z|xTR?gavb1Yco=|3Dy(8q7OyT7<}ndzK0J z#|!;#J`olB82asl%9-G^+Fi~C@F&%2!|$IQtCkUCFKx2NIz!bjqD{sO3;3A zt+0yp8o$=@p05SX2kKB!^I`2VcSOU62cLqgV!}H-)1XSVvLsC^bfnN1U;>%9R|7&9 z=bb)XmL;*koT&v=0dCBm16t$G%Mo(3e^IH<`v9E9~7Y}`mX$(KT?oX&^xAUcq=7OXfCK^ z4#J_XN5n3-xkm3nkBU_qh-HkccnC4NGm{X3-XaLwaybEb!wvuyybQ$0Dj-11F@+)6 ztU}D0D&qq>#K95mM*mq+gnd?Qxr&f$$(Id!b<;NpxGbd5S1oxmW1cMP)86g;R z0Xh5!N)_Yku0N8Fm@q072c4K8*b=)|p7vE3oKAb)8z>k$n?3dunW_~+@r+=y^QrnY zTV%kRYs^w!9F=sw+Q^8IWMRvIkUYrXE7gX1)DX2Qlsrq(z%SJP=gejiMm0MGChKY` zgR~7ZSanMHRf5Ai5CW-Z+DpVdAqHZt#y~m;tpg1}cfi5noL%|%j6@b8;Ly4wb`4V4 z74-C19+;}P55=e7lkMMXoq@}ZxZ!I*mJtq?m}#J|UCgxJtI+6+D;&<{NYAAxfqL(X zCIVw~G`67d%{5qt5FNzWeOQci93^Pb%o}@iNo~%WL)vHx3bY$9iFJsUR7)wq(@8W) zjSiCd8L61An}UN9-)l$|u?gy^vEx;{qY5X76>YdadylczyzH3eQHXtzkp`C5ThZoW zyxlQVL9r7MN&E4lv+xm6;sCrDRV%2IP+8QW)f%^dcWsF-f+#41k`S2PM7=({1YRAU zZTg=$_gBObp|X0^9fuTO0( z1dF0RIf~-@W#XghE$FePf3as-C1tbmhKz&_PlPu_Yr=xxWPWF*n!+9njF;U?urqQ@Vi*QdQ zA6e=42EyhXkN_&yk^+@fD1EZ)fcP1kasPI+2%Qm`L zz{Q5(D)YGLj%Ln?DaW>^fGWm8gyF-e+tp9X&s`N8y2suj9&C1|0MAtZ0s4kH#|X#{ zltrTtjMk?^FV+ySL#huDp$HIhYb*?DjMU1djzla>^b-4pXv1+*9LS|Jn>(RC)%7M_ z3x*y7QY1A$*p&;2Mj==nlL%MOTI5}W85<>4GC@4=?zX9xgD8DZb@uAdt5%5d`&`B6 zAv3Vy^bBaBr^12l{a3^QEXIIyGK}e_RGE$L59&I=(~!28P_cY`X>jNQ0H_KnUw!2+ z!;YlG*b*U`t&m%7v;KDuFDwEZoICc+e8_*IDxq!6e}Yr5{1aSy_7f$qH!V*LYFfcX zVVabuQ;!sCo>cxKc}9ZG9Wfsfyu)J}lTFkdq*z{@)-mwf31itF9IH7NSh!4q2U7pyA^l^(C&=n!CjnyGE(3)iSGcJxPs0RT(6O$-_ zt@9sqsH|18mY9;)e{KobQ-TIn5@kxZ4W-)P5vW-ZXpApFD}qT(!#QFT>AxZ)_G-we zjW-9D?M@eH3e<62oyZ53w29yY!@*ZhRGC|ZaJW%b9{!d05c3ymT^RVscj0jzy6EA@ z4zVq|DpKL!c>+w0#jT7irS8a%?imRZ+L!g<*oFg)F*m~v3lS2T4`nw|ewb!2dSd@x zs55BBRm2%04~i&>?Z6Ew)wtUG=zm7<)snKsDzY)m!p`SW$tqky zUleOF@5xtqIh3lv1O3dY(g@(2S}+@I1T>~To@kn_X_B%KqfM3tmgSo^zvO+cX%4Yw zOCbSsu;-Uy`(>ZXdkE?XkaA>NM27@5BK|m1_2Y2Wk8GglxASXJ^r_%c2*hG}m*m4O zF)*NCB-3zxJy{Kl()e`nK_YrNwbfo5GKfw7!=U}Zh*zkj6qtuJZ|uC`BuWjflZ#v{ zyI6pBQQJ?Vhxmb)fu8a|~8^o{8SUV-XJYs(YCOo4ur zLK19WwdDPcT<0b*K`Ll?ikcGw|sgZ@>mAk%J}lSuq(D|{9W16M_1{zr?{gC!`8wdBDVc$ zZ8jAp=%ENHp$5dc_~j@)rKve>tFd zJ1b_}n=RrzT#cdKN{aSI+5|@>Heu|_M14F)>+F?G)P908!7$_JfD30{K)i|Sgf9>{ zeSzj~$ZiMU#P3Dj^Q>IHgjzk)+K!b`ctmlm8M`tHpR*8?2iugKV9lecI+0f^*j5h8 z^&7{qVZ=v5%DCc&bQAUJb?3J|d7b{}02X3*$LNcKLkF8%d5N@n-FX>eHHO>g!R0Pt zs8fOs5D>9o~AX`!BlW1036@437tfkzk0;X;yx z(+;TVT}n+xOZ8)o+;kQbLj8~_euNup-(Gt+4QITVp)_db0mQhvB{=>--JKJ112+2AJW8 zc$1yV6l0wa?77DCOw#Om$^f46-Yltd2`WiIU1n&=rx9HmteZh)8Q~>^q6SoAP(7t{ ziahenPPbydwQQ9@RFs(^zjKcacYg9R#a7JgMERA=)@8$$BFxx2gT#s)f110XyvSYA z1$D6d=<+7OY48ESfC6WHyR?6FxIQ(7u!gAy__>*(14&FW3>7OINRPVET2q7`5*;{T z4JjA4EDeJ{Td}P%RCQbHuDNKt%QZ~pz(*(~oj(+1_;^MifRGJ98@CZs z7i)*N0zAr1Up%{wvE}5lfl8UV*}?vn4IQdRcue(0C>@P%;_4ue4~hPaf2nkI8lqr5zj5owe~O!`v1Z*h95yN*3yT8@SI%;GiIXGHG+PH)G;_3+fR z^x})r35^dVyzc0FXX6ZU@=i2%K#u~Zv)(cZjUw{^l+>L__y<^0ovthkBqpaF@lX1P;26~_ z2U?{So3zhDhc#V6abvjf=FnFh$T(2ES)l1p!@WO^*iX#53XIjHGi;GLSVLlN+22C1 zp&dr;^*Y1IDW&9Eb-9Ykp21`^cE)Blg6-hYajFF{iezG%x$I203hj*pJd%p*c} z?Kx>Vvv3eva2C56Bt4X~t77lT28C46_hm_@FSId)7_7vlfr^0SLMpf*i4qdF`xEN# z*j|c?@0}6c&5xYmcY7~*iEP?ig+N1zVKUml@TA)e?CWqWLy!vJKDGZmPr=-<5;Y_+ z75onvjAt@-MSw3nuMcE@PvazET9g{3kbD!+B_MgkKn}F1y0JDeuKtuh3)8Z|kfcst z&0eBq_?Kao9ON>2s31pe^SqIXHD@N4PL9sO;6*T1V7&*k+w(x#0xZ>;2hpqr4hqJD zDGe)Tvo|lvi2PwtKd>>rBA6rsCZopA|}Ox~pB3jd2;$b0y}g z_gv}rz2|Ja0zMdAKir(WGZ5Uu9_wJp0-E!=_Vzgx-wDcw*{$g!^U7xAM@f~^*WE9_ zkZeH8-P@o$p}`Qqk`SV#Cwyh(o8u<@Ett57i?aj-Wl@h&RiFb*sFtp#iGQf}F3M84 zy3DE)6iIt2ILQnZ>d8?!R>33T7Mf|YVi%eS*!!Rs~V67Lvh$$AbdgYY~OO^iT|4!^b(>S-%Lhm-TDZrm|IZVr%u@ z1&l~AvU)Evo*Gy*>!o7@ERxzpjXCs9G$C>&J3tsr6D4*TNipb~hq$fDd2|BuFySW8 zR$1ztPV-jSwK@%NFf!k}CJ;Q|$ceu9Itae+HCjRVwvZ!umC>tanzH*EtUUf}rs%EpKY`EY6{Kmi#B`5oc8Sad|sr&4}?(FhUwIrBrcp)+e3xtS#r+I4pBW*FD$jHvqIZ zyNnW){jTFMHM;#S;^B%+hn%s}!%@x+$qoH(#*?K?^t;Yo4JQ>9Go}E?7FB;-o_yF0 z5|lSVLIWPja_Ha=KP6B>Qawkz2d)cKjnzA0BdcJ_2*x6}9Yo=BfKSSeJosHmFEHZ3 z519)buzuD|kykCR4r! z^PI2n(@_2sBnu9IS+Zbj)om9-XA}9ua^ylG&6UXs1|qgQ1w{wPp262PF! zZ9m#6)V}wbn!FVxG5xYcAfww+}T;K#mDkB7DjoSSISB#_wDrtES-&@djpz9wp>g9dgH- zP|V!eIHWU#(!c=s(SC8q;HX^v#f@5=R|9XA<#?9~?zt$qdE6%rdw`{rRoY>RkR4VN zPcaM$8ot5~VO+$3=c+-003AVyIM!h40wEeGAeMYM73C~-%IK8ESV$_f0cJC%9c{uq z-pKRG8R>C*$KeCmFN7B{@*FeyH`mGTO1&jv>+r*3O_#I%Gn=iA@#f&5T*Tj%wX#QL z_m_gWqo?X~lqJHT=$@(Oh=m>fFU6iwd6e@_H5ILne<@OJ5%PthNff(5X^Y{>r4wG> zhLME;_eDA2I=e2$DEtuKkVnXs7a}i<#qL8Uf04F@P`|hGUb1o)z2D_V22J?T|Bh!B z5)_}uBPj9u;PKG>)yokpwcN8Ix^+*cKK0bssn|l za6Y9rsg$q&`%4mv3{JQn$|OTBFhXZHc3dA)1WT-n?y3MmA!wf}r8&B)Vg`{ zWG3WWFVld|jy#0i=k8)4y3ZgAH=s0#Zy|7|q&*JBG=r8VXpv(ujHsMd2L4PzZs~veaoz<5(uIF6t)ahB`?U zQ$gnR9UYi@WY^`9c&l*%n}C`?m6xcJgd5|bue@& z-afpHRq^Y86Eg*ScA)=oM$gSxK;R8?Uh()FGE;kKR2@aq>2c(2$b!5Yzes%ZKI_rW z1vVN7_pC$1c$&Cm=M2?@w3$cIx=ECMH|ceh0uz|Qi3ZYl!MnW6M2?d{m|^6?FrG1~ zNNIsPu&yHhqchLy^Qq_3L5qN;;@)QV)q$nPgKk;a$Ra?aXteMRm@Kv90VZn!mW}Qt zXm=VZV)}!UIEq{ktsuKl4|dRONnRqE-2zkf^KkAM{-leVZNh*fM#b~yYYU>f*bg)a zcKm8sV%X0_CTYV_1UJ5zirLY&M<*I|tD9x5kl3q^8*2Eq@RX|sKyc6!uIQ*x$R$=d zX^1~1wmK`hOf?yFEIPJ)S%a0!3be!!5YGyvDDb2_l?b0 z*BSDnlNbXJA$07SxGLkMIuF0)NNfwOVb`qIWMZd*S2hTJFh8BCDA;CZTv?_SoJ{DG z(`9=Pt5W&%q6mkhm0yqRzO{XB)7*W!1r)p|``YZ)*=yLHM=p8f9MtFLX3Rd>2V@W9 zC{xW-vqzV_@FhswPV_U<1e07H=W+8Af;^QtSWKarr%kN>G$ulSP<>g(fN?UbjzpsT zt+BecE97M6uGVY5KdqFbXW^ef>sW{Xj;Wf!`zOKH=rZ~2b6zD&BzZXT%BjIu>4tiWfaXR3_7^*{^<>Q@=HWJI#-qmV0 z1Z@!rmub~i8D7y>;k04TsGgvwFG4wTa~frSJi{$;yUJ6oTNq5HpAkuSuCpJ&FB3Dz z;ab4}Yg#ckI5@d9#s3={JVG_SuDFyz0nV&fh*kQFaEK}>=XQ801U6c0FC*mBZNp6u ze$Ay<7ff}O$A`I8x|a4tgW!Y2f*i=2Xp02E%$!4~^)qpRjmNq@8NT+;kt zjsnDRzO%kV;T!=0h9AM!hcBaQha&+pR=yB(dde4u`rR=YF5DgJF9e@U0t=yy9)y9T zVdw&;<#ahh?Jd8nz!Q#UtX3Pt-T=bU5pR76bT7@{z$q*4Z)Wu60&M}#bO_rR6HQR} z2lt~C0WJe7Lb%CcX;}dgpqff*A>f@7r&w(#Vm`%}2ts?zT=PfXYp%FI$l$e{pH#okOksB|VM zU$$?pb>4uV$W~FR$>_tL9YyYkdM1=G+7UJw=yU0|(VgwiTx+wnynP&C${ALRy+`57 z$aZxC{Aypdq7O_y*2dozeUKW9l*BK{!oJ}qlfxE!d zv6lP$4fkH~kN3O&+Av+}6-=ByUb(36{r6qx{@977&-@New@xiF|0S*L9ffC~865iF zcZGvtg*04fpMySmB5|Ss|FT}7<4OdK?E#SMcq;b}TUP}!McOU*W13>YvyeV_{rg#5 z@HL|D21y>G9X&ZfbKaJq?{n!xr-~4DRa+B2{8YaWdnCLzvdm@pkZ!Gd9Scw*kkAA# z1_7}l1jzrXj5yD{Fi2o!b2BqY|16I-jB7rcD(~|gN#}8&IaOH}eo)Bg>pflxMe!u} zn~;Ixe%Gi9`DyPrgoTdf?C!H(UEk%+*;wm(FQTHm_RhOKDjl}V6JJW+8n|k7gv4;2 zw+XoNTf##byUqiG_qkR1)(kXbVZ@1L)jmO5wFCC%tr?#%{-xNr%x1&w0j?+Zdntn! z!(s4QF~^lUM0o^MAdINIMBCpvsWCq{1T^=1v%^(lSDc)#p1Hae4~6er`N_C&NQbBZ z9Ce48d_#@t1X1c2c0?|>k=iNPCO4Vf5Su)=haMKIb>%_53p$qp#S`QZgiTSTXB zJOjOpr)kY|!tBc!bSsioQBXs864*Y_nSM?14AY)e!?Bn^Nd-hZQ2~{R*GN-|tq>@+ zY!J}v9D)we)l9_A!bUiOh2n*R#C(I%i4)=YYQhWsgR`&*t>OM`2tNw;BWVC zT}=M{eevHnLiMu}2h^_-N(0%!k7+srzM32}aCV7Etuso$YwGd2#**t=HHE0@>Zp>^ zjNNT%S&DpF_JB^j_)N3`ZM+Fmv-hbyo%|-|Q;ArhkV~V>3ypr43GCZ_ZZA$5xLF#( zx)uAQIx_rN%1pUzRg>r<`e=6J=)(;v*iY*#K!-*aM#*VQ;^8hrYxRm@_Lqo8!Mb}dw@Z_F%@%UZf?RY___Cqpvi= z!{iO4u0W^Eevs_+v#BE|l-*70a6fhO_W5NV5KUWT*s z#tXuYRO|yO9)_slN-C~%8`658{pL~EF8FtNR77R_&Linp-ry^5&+e3kjoknM9{6IH zIB3;vnMo{jo};*LJ2u?_^^MIjJ&2Gk%x9f@f~6R!mAinxaE^jakq8#T!_~>`)}tqt zH;Q5a$5F*g?h3wjI5~mTWv={O@9*dAcUp#}lUthe!>XWNRpYT|AR!<=8FuCvHy>;;thqG&Db4G{k2acl zETCr~b?|iH^O>9+qtBB+BHte-c^IxrKWL?Aenft2zsL~Iu?$X+Vs|Xh&jAz2BeCq0 zVFopDNIFB#2QVab0w;BZ#|pSnaF;T`Jq~aZlzd3G^0F;n z+r@boG$_Q0>uYCPlk3Z8++Ty2QCE>Bt6<5>aL)_)Mo9TpGUx094Gr^p#PwS3n4CAV z{)s83Lib^E>tDeNOBVXFz*OYJq-jk13)#MTb_rtBKDg^{4?#KLE$uD!dM}EF*vjpP zwaM53sH3H?vJ&>c_flHluyj|12f#}w2NWS8imN*=L>h0N`3OZh4(mJOI&*-@Ccu-@ z1NJ_Qe4z<^0XQxIX3)dn(UencFs4WLT!|@?Jy&9yWY3j6Rg&jyae**^@WJJ(dTor+ zV^34K?nL{1+gi}!OW@|f4}(Kd{P0S)Mqa^*6-RUq z^kV0%A;PXBTD#cW7};7VY+;@r;+|+x7vA~G1-b7Z%=V#*SUjrIl%c{% z@NOHTT-y^vOz@#0!8yDvat7hDu*^gz69yM_bdK~JNLvnyI&(=>!q{~CPiTUm$U>`F zLM^c~JFF(h&TqlmxCLy~J)ZQJfR*kCm5i=$FY!pB3nmog+#iy<6$y`_eNccA3V?$e zT`U=Q--VG_Fpdd)-I%U+Sj|G*OOejWcTVOcbL^dq^y^LQ$}^?_vrD<~r)QuZ z1`20vhNaVe#YP^eBF)r(FOiZT#e=N!whDwCQW-Z`dhv$Zd~LDzoCI;QF|lFN0Gq zu59-&*1jw)6C9lYhy}dVF|8uvnT|LqK9qe!E)Bt$;B{inIpeHL3Kv@u8@&Bxd1+j7 zR`tOUWElhBspKRdNQnezyR{}liV^qmGM!yWS9eC>>Z9!#W3X3#oAqEcprm3J#=rrk zF@_tcnk9@d&7x`q?bp~=EIP!3zzHO6M*^f9_WQqOd)8W;+h_HC$=8i2*b)G~pea+m?OtnLVqf`Qk(7%2%@bzy6RIS#h;{{Hd3HP09L$o4mDjm zDm0we<-e5eUFmEiy$~<)zh_pFLz&%(p{f#L(KbJja@jq#Kd=2o?Z4Ho4J>50$Ni)G zGVUSWKGBv}C1>>ysgRpo=i$FfR0 zf>!~b+*v67U(pwXePV` z4udU~JKbiW&paeoT_&%G$Hi-42q1!@8>0ZVSO;u{&Mz2;-3qBX}q+wquI~ryRRLeq_`e0x7j2fPhmDW|e z&M@j0P?Z&eF-O!>A_nTOVb@l7R$4mx%Z#^ZK~x1DJ}9{Dkdw*0c3^fo0pf{{t>&Kv zI{=@=-E^VB1%zh=k1kSD9XUhPs=^X@RkExeSY%?&=#Ud2`O@oEjtnpSO%8KOAuzP| zu#FYlLu*1+qY`CIpPSeL*1oII=K_W;H>0p=hHWYm1|}lV>UTgn&|jxpkH$lKbXy6NW-&;g4%dvk@^56G-qkSgq%gL7~B=12;7_!ZzMC9>Zj@^;6F@L-P@yBBaC@A zi_nzt6V*4^w55E(K*aZB5TGA;uA_oOtCRvNIREi>s?>1yq597DMHRot+wRNuX8W@P z*-hCu*Ur?=iW2Csv~CUX7Zyy^&*}90`|(ZKSOicq=_((l>nL~~P&zR>NQys4mrC*H zn1?}|xj?T0LY=C3z#N>bos>-N`OO()`7|hPBai>o5vxV_rvg3@t+`g5)i~- zL^+T_RSk$RhkgSh&Y|Cc2xI6sAmSK^sg2>8QX~kfwDc~LEwf9A5m*bf4+X|Wk! zds)^KY(P@02&>-;BBWq1TZG93*q_0_fumonX>6M>%$!1&)mNF?kBSJYym{sv^l-rx zw!+PDX3-5=eJ}Z$sSs$-0()g->0yTmk*k-SN{wPe!qnf?K&|t@XUcb>GJ3yD*r{+S z_S9S1YMtl7v@-`Pqn}~U@iShk!hAiA=}DA_Lxt7C;d$22zuo5)_jKV$r?TRY{#A-U zItKS%b%?n8nnYo((Flaw;!F*hCZYzY2H-0_3Qm7c7ru^=KF*U=b4DXyi z%{sUMFb7!N|01Ii@t6Rb`{51Bc#@hc(g;?AC$jC}bc4m%63czPqcS#8W8-HbvVV>xvW%> zzVTBumxK^^b?RO`?D+&olbfEh&H<5O0YH^9E9mZk@zIwY4}_5{)dt(B^MRF0x}jt= z0|>`$NhUa4V-8gbZxH&Jtcp-0Z-n*~>oubl!eY0zrK~w>wQMyA%eo@gjZ#f%hCR<_ zZxvJ^9lYioB}@1UDUKP9#b_2HqH}=`lc;GHevN9WvZ7kcTNXWZW>x&rnHqI$+b8Uu zZN(P^lhW}w<_2e26VVvrPXVUH=>o0-w^>V%MPwS_#9cvGvSK*QYl-k8{F8gP1VF|v z{i)n~_DpE^VvdoW+=fkUFEgyhc>Q97rSA8liRHIuKa1S6uME6V>@qU0q<>}dBB4>* z7qXj$E*P6Zvo)07Kxmcv=lm&bFe+Q(bp&7t>kk!xTmWFCDga@Dj+=`WfbyUCRDpY> zoccJLkYY(m5{nuz$M*iSJc)idO_c_boAlv%qt_#yEMbW()bdvD1v262SUOtQMN zUjrF@bZywn|C1<}B#xf#DEM058cJ+Bajp2b-10g@?#g}IkbpQReFxkE=f@-(4%TV% zh*|Kg(8q$0LE19aF;2(=P7mRI|5r(ga4ubv;+5!32?2UjrX7cmBIx6&{cFHr)LM~G z8{|Y1%f2dWnrDlVMW{*yEKaN66fnf}RHu6RAoTLV`*oib^U~#^-7izCPwu8^pVald z&y};6%3nxLv)fuer+&WlfYA2|TQ+z_bb`pAsRUhjAhmjT;K0<8FeFzA;phd{cJ}Z7 zab@YxBH^$Ok2^MdFDfp>`GgN-x&7fLGsB&aK4$0}mheQHa$bj_H0ZYNbDLhrc|}FA zuoP2wEI2nvcI_(DCls!Npto`?gfY$`3{JU^lJ}F7Y;T1lW`Wbs!2?rLULl%G@_;8Z z*>Kj)nF=Tr_yUi&z)DwxGw>#4BztLbjJunT3uu2E3eICYcDm>7*rNP)UP2Ymr04i3 zGV-9z^j`21sySmKx4VF-2w+bteKd@J9#%LnhWf@H$i^1H!BMSg}Xj_+%`$C2frX(>L@8^?!L-tFyQ#|Bdz|=LEaSy z>^27@lc`@LM{yg(4=TB>=Pns&#<@!T>SoMQ2Z)zcfo*Iur9|TYfd>AxD6s?JGM9yd8#B>^=2lSuTPRMhI|z{(MW~rl?>1@?ywTWzXx+x%0AB>&>9Im? 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 R@5lI)qD#okSknLd&bjx!H;bHD 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 z zyWjO%>dcjh*1s$+$LM~tUVIwONfB(qU&KzKZ>;8A%^Rl&CgESs#)Gden8h8)7|^eM zj4Fgr_>1W|l3I6=6zicO{43%dBkj6lh&KP}$`vNzUzy19MD|?ZS{oD!pYWH&RlvE} zeZIK{;Sv7QxPE3#S^Pz*LL~fU@oN;(CM@W7j1S^0f=&3#;~FQ*K6mwgveJc2_}vVN z_wCx}s4|p*M))h3);>)5WlXNDr4VGoU&%7b^3(sNR3Q@nDmDpxxgXo?oTy&=BGZ9O z_y}{gDec1zh;H8=>%b*^3^(-43U%&9v}<3l3gHtzJe9^uH=$8DO7jz@p-00{|0-(s zqcqc+`CCi_9^pTXFKvI-<;Iu{XoSBmPR98iaV<6A5&qRILizTXQKzT_m+;rKg5XHt z!v`=;>vHO!Rl1M~{~Bbncbjd~bCiWe(!wKr`0R3TV{Qp+NseHRqN8KwcO_8}{&m=a zH6mdP?lf{O#t;JGZ#bA41Cw;l5>wK(ceG;-tI9Bm5o|IVD-&Ik>H99rmS>=u?}3qN41O-%o@GLLaW0f_P64F zF+ntGTu)r7<7*y-2Z<~-&Y;wjH8}~Hb+Had25~6q;IyzfUFKdsgqk6=*t8UKy zn(3h-inpVq+sQRWj>>c5!7rH#OrrP_lyO3}JXNqK95!R^6e>}CMYC*`LuRf)s6_FV&9d|gq!SNW^Ajpjd{wh7 zy$tEZLsqecN)%t+^x7OH@*rO}m_+e4O)6J`%u=o}iQ;RURIc)vZ7MK{;_I4JuHrC9 zD@>w@4lhw1U8NBySC~Zc4Na=_`FtlH>M#|UMDdMHs`QC`Cmvd0Dlm!So0?P)bJULW zO$8=VyaT63H5yFc(IFgQr4wMfZQ8kx?8HOc)qu!};+x?#VpERf|5=&BBZ_aq)q$1C zfuUMc_w#dO;$Mm4TNh$mOtiGEb0e02j!s6KpPkv8n)gmK@Bzw^wGU$1q#8)&ZHix$ zg+vtZmcBJgF*=A@7dgB7zBoB3h~kIPMWAQK+J9X~?;5$rjuT{}_+fdE(G+Bqb~>}M z3QVH-5$RYOs^~p9r{>qPaG@ZIAC30b$h2paCe?c}m+cw>$2OoNiXVf+$2W+fetBq| z45oi}-tt+peqS_15!IuV(5Iifbg^=UNfbYhK?Ck;i;hO9VtY82KBkp%iGfWN{{{J- zrrcZYuhm_8mKiie@e_z0qV#$YtPIxbj)hY5u2!~iiQ>OvDkRdis8w+xLqHV&P0qxT zhinqdq??q1BkGRpCX__+lc<}K6iRBIrofUXQ@zZF|u?BmbqDx0zu~S@2pdgC>$=8&#dwAaS zl`dqWcmh+RQL+@Sa8-?13OZ4onx3YkYQ#d2iQ<3ZM2e;~qaS_8aRu54CP^f8#o;Ab zgXSnYJ_BqJ#m}&!*fTg}e952^MU2R_P3)=FhNCLt5VAen@J+#s5LAR{3uEcB~KKQpcqL1yTGW-jJ$Q*yl=? z4-GO={1Ub?3{DOui+TM^^k0i_BMZfR=gqQ#tunF0Ie!u73Fe66mr>caVl`*x;O4}i zAFpJg62-4zXQ1n_!xMjcfw93LieE+Ez}A(}siHpd=U18rJfeu=?}#-#b|!^t#Ad25ZLx^(_rJfdEdZP(JCW`;7<=nWx z!}a~<%3Y=en<#!?^SilrbaWVd4E_6i?!qQtS$rSf||J5&ea`uoql!cAzDS|EE49X(yfU1v^X$Hc|Yo=6fd`g}a)pd%3B= zB#OV&&Sz(J1VgGVIW2!`-D^z_2~qsL){UK2d{4*1^-lgFqw}0vX90i+iQ*qD=Vm1R zyzAbfTwxN$2eiHK#NoI@V^{*~3fHfgZ9-gLNM;8K^|@uljr@bCl+X zO#~uQd=SI)Mp}DoN2LaK;=d04r%VqGQG7_-wUi|kTUO|8Jc1BJ z=9?TQtip+m@Y)fNN69u!NGUtiRtrQyc(b&JOlF`DXC%sDc4-S&pRGDk5#A~K*jZis zpKevA@CffzjYL#~LoxLL5J!UZObh|xq4iyi2UhVWY}V}Dh4YB_z#(U~psOuj6)EAJ zruCy?#*zGTWeb<^PEYDK!^1gr4>KLOgm;Gea!t=_bTmpH@662i7PA8_;myGgw)pXz z>^L&gYX%@9JOpVnGSH0Vjts8eV{(h@15JX9j7u$sQUd3S}q z+TvzW5Z+wvgHgVEx^xi`UZ@@4J~)f$?4)#>i!AmMD&dv2!rg=}7MFQW$Pv`8ntq20gid%1 z^cnXLjmj_}o!-^&HW7$~cdo{zkEo9Ca=4bo>;ga|yz?}RkwgwnJK$WEA6HJ$32z~4 zbuT6c1~I}K$Kg+|FyiX>DqYBgcRqS9tR#@Z80Sqo<*<>8b4%Mo3-3fmco(4ZOf!)# zqlJ86unF%%Ja8WlUzKCK$7{pUS>O)o4^<#^!n+6|g*p$3(=x-Et1X-nKH*)AxU}K0 zqJavUvo6$i_Lm=5sR#-068O)w5j>5{FMQGrKty<*G7TRcm?PdR%Ehi)eWWt%iscqF z>VS&yx)7E*Eu_mZ)%UcDiLSGOa*Vzp{SL3o$psESJeAz6nYTT%-MX4(;w zv|WGK)OzbDghP0X=0uKnV?&b8CR=Rj#grlXzfGM}Lg;F^Usi>%iPG)n>#@vryc6@+ z6E5MOO$ahkdWiIC~+*^O4NkJz{PtkHQX^*(q;jDOZy}1by5v8YU zgiiytXp%M4f;Dqd5v5zTTA77tZ$YNs8m?%F($jQ=pn6A%U7<|j5v8YV+uf9VGRpep zrUaWPA(WDNos6S0)~_)MXhi9m8X4rA=&;U$9-$JYXW?cYNr?wRuyS;!{>Jgpk5)5c zgeW~5C-u7xTD5bBb?YB%wxB0U&(XF#ldK#xIV42sxjK82Q_qJ@1tw8Kvyr)loKqau zkD1I`nEWasvXnXeEw~(^&$;q`{Si}H3>v9kpwZRVtPR}jZ#5B!MCpZ^L!4c$t={ow ztQ3VxlwPEbNCSuMwYr>+n{B}o6cr&I(`lkOa${QA$B7JNdwfKx^=bK3OAf1>|fypuF|$Gc9I<+4Mgo!!pP z_Ipb87B?gwoaR|7aXiQmOaKz$T}grCoBsNfCIE@>mQb+Lk;0Em021LX#qoraB?tXy zMhAuPmSNf02nw@l)$%o8(SI-AMIMUh?N>(kMxf)vM!dB3OU_fSSR_1j4RhsHLF1SU zTmNg5SPvq3Ai9jU06|rcz;@UO3{&ywaHp){qMGk1S74S0mN zs-dYlK8~)lF{JPaZ*^PvO={Y3p#vC;u zmVrumS224%t{LH20vh2xEKUi_k(~$WToWo;sD!r;Jxr9r&C$U<>9V-SB0XUe-qmRP zkxGxEsbe{dE0&J6;1k|@%=$F6IN-{Wrj>+2QPed#MEjL0 zM8dlcgPbUby*P<%TW#2Njm9+=8wi>3HpsYLn%0g=eXyEUPpAZ&@HR3@?2{iqbOTO6 zcI1^pkO^-Sg*z*QBbA=X0}eNEjdfu{CcGZL1}=wmBuE{>wU$W;fz(XEvz6i4AUG`CB3zzV=^U3-Sp#`N^ z$xp@E1e5T3n^cZ2Bvye*c-PZsxx>0^UZG6k5#9}~U3nWSVl$%cA79P>w7zF>nd5kBRM9Jf8p?Ev*D$IDm+&5gNh<di->^m zFwhQkAcl{YGGm@jl!YW*!h0OP{i#k)rL(adznw|dO52(9J5`I8@G59t4Lc6e-;^pu z!aER)+_P!%BrS-9*N-}{D|Ru%tx4{2&Uc;9a0?2;8$dZlpUAW_xL)d+|Ep}_5?*zh z&e6}Dd7tUPB|L--P3bvCENA}Mbl?)+;56N;bdjFCLJj|{79??pYV>LJDQeq`gvm|*o1c!yRfkh80Rt! zH{IxR-C0U0zLQim?ss(+=5IN85Ir7acURfWeWOamHsKw^)Z8?wOAizMO5I9G}S5f=_r)k;jaZ#CL~^tSoU#ZD1;N!h5Pbrb;IdVDXky zXc4xM3GY^PK`QJSu1yZ)>cAzur!{oAa%V-Z4qU=}dR(kM&^cv~Q?gJA?-^(rn$68a zgK%g0B?C6$Jrj<^lsNks7d1w0BsXD52oF)?r7BM>J&%qt&NXF4EONqocKi%mj*Sf? z>T+g+O0WsI>n%FZ@4ZO5^)c~#?+su2a@-5yu( zXf|vna!3g8C2@1yfo~GertPCOnL%&5Pq)x>2W$0k#djMe4mWZmKw(Z6M2sQwcWVy(+E+eIvDu3QHZh zg!gKU3$?Y$q)gwT8qQ93WtSbg2ng>raZ|-LxWmJFo+;KtLwK)^i?nzePzKc`@Ebqo$wi_`%KT_3z#l4*R zx(ieywh8YIXdj#L9kX6L9(BlEYnJZLuj@29B!q_;$hzdbP^oy8NkJz(c(mzKN2pZ1 z+N9Q^@a^rdjcy$tl51+y zs_Ryo3QWR7Tv$$|#SLfsozdZVsG)^D;zL-XDZnbw=Au{h?J zW-l}usD$?(R63R6i1`EVm4Ijcs|i6Sy!XcGsW6?*vwmnYPzev+sAV(r=>|;(D&f5! zZ&S1Bo_RRes+tf9?*nmKneF1Rl7&imAH>V+!|0(OGs-!qCS5mbTJQ<)Zq)L9a;pr^ zw{)&AK5d7oz$Cm6Vd6k1L|DP2Iv>sWIflLqmzfRd2oI6u!VDYfSF>=HS%8Z0K7#%) znwrXXKj)g46fWU?6q8f^IENCUeN%T}y|Vl};eG5B-0v+O0OZUHV4-a336!Bw>*!>g zh3<16uX~w_L_n0r5rl88BNo7YhUvn%&N_3U5v2*NhVSh`{8@KgW^}GO8DSB!g2u6- zzh{dQypNHHn*7ge3ukE|r*d=RuU2fObqzrYJxxgk8?hzMu?Olp>o|o;l-8sFRh4rk z!*y11g-4XGiBsC-UdnLYSClJEqJ-|u^0&#omSKZYg-MjIiyQSO=VFEp7b{hWL}>#$ zSbeA-TvE`N@jYvUm4ncU(neHplV&Y8*zibY3zsNuip$Zt+F-*$(||{mdKzhEEjQS3 z)O6qyrOmO=%35!*!A34ZB}%Ae=jo$OAM2)S*whAd=OQ9XTjPEpTCw0Zk zT_4vt8J0S-`a2VWNR)1fD|g1iiVc4>6_`W`e!fE=a2qZJn8^BUxbaNWTEFoBIeQQI zxTf?XM% zi&X_CQQZlT-i6p^TSn(fRf0`a;Z*9NT(E2V$X!}Tg-TR+x61M^@{zl=)Pzb@uWXg& z-Qy#7X=VtOsP?zY@~enP?$S_%N>m4Yk(*n}kKBE;qY9Cz4*INYv)!bVeGJ${^(r{5 zt`O3@$R{w)bv4F}%_^Ph`-y_6;_tK|wvXDc5M2IVM;0nk-Q%O%W|K?jLsbbjQGKxQ zrV6jiIZl^zg-cW);#*+x?wC&IEXYI^{p)g>igai_-_d9kz2wvR z7FBAh zbl;luom7{Op+Y69kMdncx;e*CY40mcqB`UU({@{Cy6R3KbfUV~XA1Ye7-7OE5(t^7 zV)CNCLczwDuGcuOFp27juc(DPU%J%y7cNmn)ODy3ojp`^y~)vqOjP&zawzmMSPq~P zRZL!(I(ySh*GC;!m_+q}uhO`QdiNCe0~r(Kt~(uH*hF>I4>N-kGi*{uNqkkc;1lxk zPV=UCV@lWWR0uLrJ?Ilzuvw?;Z>j>5sE+v@E!wTq9jXjeqB`z7aC^H>_c|4UNK`R5 z(_(n=?p;&HJ<;8rssfX!Hhc_=hU;#&B2bCyBo?Y%pH`o8{dSQnbomFJNF;`9$wWj{&qQp~JA&%C-6$=KT*$X~KSqTh6ViR^7eXi&78ys7>MD-lZf~m_V?(!$71T><0E^4+W zt8)g+%L9}6@@GB;x$<2qhlHq}2PZ!-&xgJ8HYX7QQ9U1xQN{SaX*~we{dkpuN>ndE zK~g4<(O5gJx^Ge;$V7Dm#zGaUFJydLKXT6LvJp60oWX1hCPpSq>A>S@~iTpn4Taetwk5H_nhjK zRc-e2t6KBZ&vd%mU9>^JhiQX=sKOv8S~%od@Iq~m_AbIEs*C+-?S{aD_gi|j*$SVi zo(9jkdDXu=63I~~Uno7BoKR#$b&0GI`j;rv?e}dg>`)6(5mgKjtC|*E-pR}2ZOo|C zC{m)jti?=o2GGV#-HAm?RF`9OWHUAtr|BwMT!2EpS@?l z!ijm6vHYs8Xel9@aj(kdP4vvD3CM`*N{nO86v^IqnlTJq?_?q(j{`zjbxv*j(!|B8A>lHmZSUm z%W&$#z@(Fa>edk|noJHul(UF8gR6dDl_qn*rT~$nYVV=te zM}Y{5%BRFfq%@yY-n=b5qVj2!lh+gmS9-V;2%V^W2Ja`%mClphNB%jkh9D*?pA~1C z@wO|9R0@G`iOLc9ZrJpiULKfF?#d@RqR@!S?HHvfDNJqUXQ~97sC*8`H@D-Xuyv8x z$|)6qL{vVHR54MwTgN(}(DNMCflE~2ORb|$GDBJscBS;nW!r7Oym?#di;2C;7qF2c zYfHWpVj5=MDtVbkKr}?k;y>>16T=&s{l&E|Owc9k4CaR4Q2#Ly<(?zo8t!%g$ zPVRTdRTGwrD0Bh;O#k~U#U>1Qv7*jt1u{bZt|dn@u_(yc$~T>u=Hyr9Yw4#6D>3=p zsC-uqKtxo&j#}boScScYl`TCw)QFy_VD7kP9$WcXc}q|elGH`CZAylsC;{l&M3y1jT2m=@*SCIX2RQGhIpOh3!9L_Xo;yYVTd22IxRT) zRr#J2SSCdIZ+|yo@hwyFW7QV)MCJSNt1`Coc^u#9xWXhVKfv+%5uBH4aXqw!$v+a6 zA680>IwwZQ(+w~Mp8Wb79lg4cGQr zqsRnyzZc&5-}4SN1_MO(1h~R-#(hpy?vov8iRy`PrsPKRId<~-?qdN3Q4J6aLw%oO z0WDDtWvHGv3LJ}sPE;dtFXl+wg}-vxNkvG=jCO6t2+IOjQS8UCg7Hjs%FksiO$CMibZl}1*iRLI&6!EsQlKvmT40k{@Y1J z9ec;3(pg=qc>6goM34f$313+4)~amiJBt!qh zkZ?%`G@|k^v#_(d7*i5=1DRGM^PVvFT0$o( z_sUnTL$VK=QX`_;-3gfxkMX3euvnIHE=$z~n6%+O-j++fHeKedmUYe}zsm1Cwv=qe zm2h2S_4FkX`x*px`eK)muW5@#>Q|RK3YId~KEP@C{Y`#VkH%2bqRyvm?SoVYE>S%O zIVl%u;DsZc!?QPrGo?Z%6UX~ZpI!RH zS*0rCH;yy$_FZY4wmG}yUfM@dY{np}s_rqIo%5$H@;T%6&=BP&}!I zX=Rw2XQC}{mr=mwux`>dgx9-ZgiMropbb-a-Ecj9@}rFubfUZyi$5y84><%jAqS1J z%KlkvHFy)F3pP>Sjh4bNaqg>4Ou;0|S2lA;uV*lXPjhr36XpJ9aN_8;QGrR62b!vF zqt^c6O)qm?VG`v*aVlI9-iLK+Zvrx+d{whBWrN>O786yR3EqaI zn1=SvP9c1vya#T*#vId6x3zE(`^*}%#@^ITv;Y-RelYr?rUe`*J~T1ez;?(s5rBj! zKcrcoa76OZK;7En<^u+sD5C>d&44Fyx_-pPe!7EqBN;LHfK!W>C_gllfUKQ1a!82s z!;a^-~}6Xi#u z$I)DSu<=r&*MLWqABCQ+uXAJ^caFG9ZX}YU0JubX2(D0Hq2wHODuhOq_o6ybQaImR zzSi-DO_Ya`BUBE+0kA%G#*8J%M0o_wrw_wDc9yuy=Nsn5B8#a7pD5Q2t+4>VSo>b# z6Xkt|)>ukktbM5PiSmA|yv&Vr=M>(?s*hmTM80?yYtJY`qI^K|x;5d3QadSO6Xj8i zvpZ+U_u}ciiED@OR+RUf@&wW1jzwLCQBFYC*+|B|E%?O%8kcsk` ztP7;wWMR$RL>;(9c^utDi>|PG(vK1eQJxU_;fa}{>(bZD+GW@;ok%1^xd8`t4{p`m zf7LX;>)#hO6hwJa)+Ew2XZ^k28Ap(RCd$_=#eq84%G*yx7|UxYMaMGLblbXyCi<*F zmoiX^@^o|TgUpqxQJQ~u0-+OSB!LcFdQwPkMjFm*m;6Pwnq>J^p3MZyRhYbV6N3ev zC|}#`^n2>NtaMTZCQ&}r%$`l-xMiVDV4xD^>zYHP%&?I~(`}Ss6XnC0$ZBDVQU}Pq zxObtGh=3@=hofJ*14ma;?b-;{;S+KBG0iejVgHbEHqi$PK2g4*87S_G!raF2BfJn~ zqWswAxMr0{Z{nE3Bg&6!W-KmP7-^U_)+@m#%8y5L)Qok?qDt%4P!Q!Cv3x`I?A|dP zIZL-yxZcIcWX2sjqWpwrMh)P=BaZ7ELXMLl6J;zwuvkTi8z9>VK_<#KHRm^}(Ae11 z%K*V8%1>%mhk;>?PtA z)0>4V3vs;-W1m+qg&-5&uJ++6 z+)R=kk&?Uh-~T`!{`_N%d9^TQqsi2a@p0?+KwC9$?GSbO5-Ej@&hX0uZI!|$%9qa3 z89rH{?LxSOT>H@y-o|{{1zNXwMTlt2516C7(9k`{g(6&{{J=T7iwxZhR0l30cZ{^e z^ZthJC8`6LC|^EDcd?;+nd-nL%2!AmYLlPGt}1gWXwgTPklCx3D((GcaX z0=-cSlE11R8lv1?pf_qm!m%D2qTC~Wyb=F`b;abLPANK~jDBsgVI!Y|$vvvpo=|?t zdR#D!d9hrwGc&X|+s>BISNFfb?|*P)pYxh~Olhw@oXVfk$7wpxVe<)gSn z-G5;d<@@E7#Ol*eD4#1`Wj3~!aF3%4nJAw(S7=m)B@a;{ z$VB=4xk967Sn^O6f=rYzm@728h9!?sA;?5|!(5@!H!OLSqYIfRZ=5SMI)^2DRR}Us zzHqM4=pB~SRR}UszG$xS5~J?yS0Ttm`TpWeXUfr#=|n-Ogp3d;j9>?UeF77rY@6V0 zsHD9~s`&E>rIlUv14Gx2Hm1~v;8R5AvGLn!rM!wEq9v{_l~&LSZmW8Vy6-fQC^E2?@QeStWHi18`FV} z?EgU}%In}H^ofIuPH3!ND1EsT2%RXOfy{GKb7R%USE>d)qP$)-#Y=!2U#%MOi1L|8 z8721pF}_GZC8QG!>J!8AqWIi*2YWxMtUr^DKmW40RL$JOkIdgj}DYXxn`z}Mha^eQwBLvKDDi>q8mGWtRN@Ki(4ys(GIQNcRPjf ziSlW!&AeUvq8t*UyrfmW9haqcH6~__r6wObBt&^>Ys`0DcX+?`YLnN3Pn4In)^iMz zGetY5y&f8(yu3B+!2^vcYl)0~vha!W>8)X3g_k>L@h+_O5U1BeLzGvv_Rf27E&LR2 zOEd5F^9CRy$}8dI%iZ#sDs697S*>2ICq{%;>NrGEuCVJ! z|CAxQ=oEhP3a5^DHLb+EF`LU+$@gT5HW6VG@s;=z zQweB9Jdl>9e8@phBRQIW(;2lMQCs+1)k8zXgK5u_>fOGfd9D0Gtw2e{S78sR3p$@U z$7zcb5)ogGiM11S?ypOMOy1h zm=We3Dg>E`F~8B!Sk*>^s;lYgW-aETbRBE2NM-Gxhi zssx*eAC`J8QkJsvE!%nUpPTmYw=bGy%M=+AKOFm{oK8&SW8C{SM-?IwV>+f8RMhb= z{f5dwCE`c=vUDqi`O}MU(fu=(=a>s$1>NM;uZj9>OH0*i4($LrBD! z8ftkBPT@d+{Y1lBjlHmmc-YqvRpvun3ywgzL_Cr@Xi~VULmI5ZeZ4<%5)lwFCZurC z@UDl_yBS3EA6(T`rGK7!(tQz+I4 z@UEw;6m%k8JJy*#YZojo~YCB<9gQu@X<>efpu%?Bc`b zS32|ZPegppWxPhdvoD?Xx%B1prR#aBzK&W1ayWJVrC~swX3Q>Z-@tXO*4t2B|EU(B zBI4`)a0(08Ht>}{?L@5}#U~RQLe2o{HTW(1eEc`Ba2lQ(lwa`;z9a4IvwOoeFH;$) zgd7&c9NQ(kt8R=lJ}@we_;INRsVZ~^2YVXUCzNhhK=6t9@xJ5i#Qqa~0c@n}aM35h zE;bbiiTK9U`*smPZzK3L<_=Ccj+R=!5IlrZ+E#govM-k;@FY z>+qmFd}?&!UJeNnKP@ANUo_b{Gp`&HB1Tt;)fiXTFwHv%`4o=y6xG+w>i&z4h@X*8 zd$Kl)?~3yVAR^*tW~z)tqHo0Vd%YBNB7Rn;XV_sr!?jsmE1?qcvoj^W1CKG_Mgr7y ztIwty3L<_^rj?5tcWO6g_a7*3W;6mJ5kEIw197>Q8fhHDxA19P3;@5Q;LPM^9eYGf z#OUyS5oQb(Rs-75fkN!W&&P=gR)d|`qm4+oaYDQTXUXj9X$yKH#@f-@^VureqV5w2 zBSZ|hXU#kY^Bs)0q)wAqi(iy!Ebe;GqG8m_AtB-yXGR7m9~iaTsg5SXC*qf6>bP9p zZx1S)DFvN~Uz#c4v}2m5o1hKoh#148J{Z*5=WP^L5n9keRjkDD3OF# zR}Ui9y*$%GrCTwIN?T?ODiOcJ&)GWVGL*DUw8=M`fQ*P=nQ7!SVGk)(LqW*N;plwFO@76%&2-{UxU(@ah!YdW_MFWO86rYncJr-taA^AAw9d079@7WW zeyy3Kb1-1tVYfQI;LXe60&6#l1pF zyJeW!jx@&kadNYq2DT51`4WSQh~JGF_z)L0T5eq1tXV7+B7V>Dr5Z*@w+6y*A^FHI z`+!r_GLC!=uKCF_PxJb`j$sOysKF^uT6DPaGA~{B5e+iq!`I-ES7dHmxMuS`6=hua z8vO86o1#9<;D;uxZ`sR!sA33+8ocn8E?>k+@FUobglqibYZ6eP(4` z_ZnRArEZ((H0JR>d^5|ufsEf?dj<|u?rlulRpA<@6ODIjVX4vuq8y#IJ_6Bt{GN>H zy}q6ozEYvx86W5ras1!DWjR^FdX`pfp%d}@d{^pj&a^s&?q!ZHWFmgQk80tq)2mbl zDiNdRCw-DHvI7I2jlF7jh4z|4C*lvvr<(MQ*3tqj03B5-E!g^o+mlZ@0`F*&U-9%& z9G&KQEg<=%s$ranKjg#alAFJ;#A(tH$(co59xr&N z!Wz?lF*_HRANT7Mc!;s9F*9RMQ>g@-h;Q>rZU2V78?0TF+~kM#1@UmpAH$94&Gg@9p0 zLd2*R`so56*NvMm7HZEZL?T8_)Wv%d72JB|KhtQv6?Ob+Uoae9^F8>|UKfy%i5L}7 z-7pH%TUzsKUjwzuiiP;IeuCrGSbxJ?430MoI%pst^13&xP^+l?iofVk2MyhOjlwtaePyGnH$ zBfsLW`ss@<`sOq7iYKTJTq6FO&;7JR!|8lO_#+j9OvGRJd06mhQRlI$0+Wcp;cHs^ zM~hBUE%-$I&1Q&=F{>}?WZednh`;4)NxMgjHaNbpiTK-I+3wMsYgGw05q}4txZIkP z`3dQY#i{|1h`;MY!&5FruS0BRT?3nl(JHmpw0&bmeKMgFG5R8Hdu`rWx!KW$OvFF% zWl`|PO6Ox#1tt;y&{tABbCle77|JeIz zg>S74s0>shzSE}?uHCTloL4vNIG9BI6CYbwjO}9EJ>+B}BI2L=*cR1;?t>}=m5Bcb z+eNT>ZLj6IUa>?4AQAD;X<7$BK}`rDZ2|F z?c3|v!X@JW^I_SK_D!k=JR<&;4=a6l%_^y-oScA5#Ax>V-n!GZssBsg<5Z#{;@|j+ zT=3r8(vPVMOd|fR?~>ZRgT?rQO~k+R#aH+amiB!@CF0-vEVZAr;-~-~5&ywwY5Fde zm8D&K99y_V{70W9MekWXOjTeK@t>Nig4dT=o53XFKl^T0)IGk+9?!0id4go?Y;(x(k@>d>dq>YnJ%XT=0 z@QL`}Xufl_`B0Z#rAn}g_#R9+U0`@!+U+zSwbmM!-K1g&i1=QNDwF zz!oe!=R;g}s|rCT%18T2;dc2dUmUEDFBC-im}XsT*!KZ5LxoC|;gaY~cwijYz_bZe zi$fGdd7)2h@pE=QSdfYGaelCn588+9PHwYyIl?B&$NM>fTR)urA)_G`r9$M-(d{*8Eq1JM`yuD@^znZwt2ye{ED}uQ*3JUg}?68Dgu#+ z(IjhIu)aSvPk?u*R-3T=igzNwrq&4Xiz)(S{$XS|fR&43hf6jE*rN5t43ezo} zMrXa{L??(ZpTgD69Oc}yUS*&X@dH|AMsK%8 z<0e!heqgK2_!8x1pc3(eT4fvZdF^GO67l7&vW;zIpc3&FEg5OWkr@dl5qGwztSC|i zCJ}eFsH_-L1tt-9!<}jt+J%-oK3;u_9SHI-QL#`XuecoQRXy)3rc z%4D>SDaeWVRP2YhP3GsQhCS_lQD=L6O@E#i0y z+&C}fL0@A{c*`4HSRx?erC7!A;!Vx7saB70>Dg)kA|hT^WWeb5EZbgu-Ph*x5_l@BzXYkLpe%D64>b4t+> z@v1g9jJ)$Upd;ednCTS6BcFZV0#roY0r$mQDBjrawcr!+nyj{X*0SZZP9c0EUYpH( zr!`_sCD=r~E*mPYco`Zsuiv}$XHFq}B0j^=8hL%`FH{RY5n}*o_Ej$2e2g#stt!DL zWUAO~pmNr4ZygOSFZLM)0TG{tzPS(E$@barg|B8Z!6Ra{({dkbB(_OdTkw{C*D-}h z#P@?QDjGM?F*t1*hG9TdONQvi086Lst{x%J`df6 z7pD1wZF@M>l8^D0Z>k&;B0e8ApjB?}n>!;^E%-!??q{*ry3f(_W@SF)We-!ec3AQ& z-jG$N6UCxVp7Dl)h&N{AUEEInxeD-!_(Dw8?Lm3%QH~@OBEAStuh5GtozGcNiTM6- zp+r{P2dl#(Od`G*Z9`N{Qek0I3;`jNm)zEat+D>I*4OmcKX=OKZG5gQm=2z-%{F=* zZR4{0$ERy#v*Z0kc&ym?#C!6;9a)G(bfc`!!@aYHf$B#bO-Mxa1Swb%3^p2LvL{ep z_Q_YN>Ia=d_(b$XS=om+Pe1w9N(Y6AZjv?!dgsKoqhkfvc5Tso7BUe%3A2S%IEm+} zacIKW?z!bJjxAgwdNQg+s*{^WtsJ@he^mu05#8LPGP>u>|E4N1i3m>OvSwK6-KNF4 zdAY8>ii(JyD!ry;kHj{grI+9Bn8G8Xr^%xTqPfo4TH^BrEFyZkD!Qyqvwg=np0J4M z85*yG66?@zRd_`7OgN(wuT&%JEqpE@pDrIJG(_|)bXcjrVO^-`C7=<}v%SPxIP257 zgV2cRIn0ZOaor==G=xP&&y`V1(lu*uZt=l@NJP)mdhbL#M#qeWJud{Ah%i?=RYL0? zn!*(WyCypE?74MQcAt7wA|Rp{Xt80-?Tj(ldkuI*^g_+U?uOL|cnN4k^dfC7>AS0D zonqv`B%&8{OMo!Rw#uyA34~5W|EYnQ3&wp^fJH!hhZVn>qmUf~nbD;cEhJYOT9MmrO7lXHi3p=X+JU#(lIC?fa)>s% zMdMk#y4<(d1tL@;dQCQjA_5|Mo%VQgX-#jV zG14LbVV|$=qaGR}dcBXc)3*s0R3iE>EfT#er@vv1jSqHoArsLXwEFap;qLp+iIIVs zdfgcJeO$pOqBm;mm2~Fgx%LD{6dDn|Nn7vcF?`xD+LqX-&V{gv=*=2Yy@+8`xK$^kfIf$q57zrapcB!1HFI|2bNS$q z@qy0=2qqEzx2kqyEFQA_uD;tGSC~ZfKCLCYaW#i^!LAp9NJQ_asAwUO0|SUe^Z^z1 z*KvEXRf%tNR3Q=(-1~G8>aUMT{EUjy_hpsoOhA4`AJXR1Z(h;mC7=<}hc$WwLnG!9 zS}y{Th%j?WqbJX8*u9RI=_E&_(MQz>5}C2!-S=Y`fbfXuV~pPc?7B8YzQKS}>SmfJQ{OX}xuiFZVWZ!=hDKj3Ven^a&>GAfD06*Y&>NIi~Q4=#z}$*pTtw zLf<_q0gZ@0MG1D%8KF=D8WDY(CP${!xnOShvlq~a=<`||_F%3r zAGK{~&W8p%5#52eTZeUlF8hII>p@2m0ug=TB&@e8Ss#S3I`^&1RQm-g(VD&}E0C?) zeCoE|PnBR3(U&lu=(-GgrO`=inDj!Bi3oj8grl`0$p_VOzT*jth`xfM#0ew|G5MJ= z7udEwP_^I_(N~c`r=<&Mw12Mzn~1)Kdao%fn7(@%s6_O2lzLW%8HyF+b|(-z5q-nQ zb(&?8&!MeUf=xu<#Q3Fw7KHaO#}y_KeXFUmJK(KUfk{N)hU2ec;ky_T8IEh)@k9mFENW3azZ7 zipEg4p=k3O&(@ba^Fk$}aa1+P25>PUj-D6YlD7JEm4Z%06DW;VX+El}SE&$WB5J@3 zgAiVM*J0~=v#qaI5r{-Ii9WF@!bU&qCWoy$>lQWl+#Pc&8h*9h^|Gy z?=-z*=3?yDx2p)x`?_K`cmJUTL?XJr zDZ(pNMik%gs6r$n^ro5_c>B*fdbaf=s?vT}enmI<(n23)Q8KxO?4* zp8A`@BIN7QaTE0!S-Z+Qg4}b|}}aYQJ*8>7tINK3bEW z6~I-3bM!{t_j+iEXl;RhLq4ru4-FBmE6{Ijqlbow&OmpcUZvO?e?vX&G@>A)^{5Da zc<>2}QkcXVUu&vQRTY>-bSCzyG)1!Oz@3e^GJV}HH2@J2omFJO$n|wsssV_I=YhzO3!X_h%dzE|by%gC?j9G4v2b2>3Rbr|o#PVDc&qJ??C z$ks2Y0f>m`+`IvpDlnkltcZx{JZyqN0-7;^w=#wI%Es(FE4Hf7FFGPRUj_iz>e|ex zDo=9)p%c*sd8tv7m1n9HbRyc2ml{o{@@$oYPDC3^rHkf7xNl;w_*hz<2WRn}b+?T4 zZJtQ4JXcM_91&e8eRxY=gRSP~5T`JCu%gTYn zI1Oxm(qH~SRf0`Km*td3rCQ#pO0bFO0Xd~nr$~ zQ0c<}9nfJf2E1+~s>`p|zz_ftp&C8#|7T$NJY4<|4M8iX{EATY7n&isEp*-JL}sLo zwU7J5)v{Kk)bb{bO!vjI5z$AfIhY`#UflF$n!{ffXX=Prf|`g>XZ0P`))F)#vR~y| z&E;3L1^cHDz)P4uFm$lxKN+y4#LYI_$klu*45HS?(#G$w0 zG1-Bf^#VN=|4c-?7T{5$^Um|(7$KbG$h9X@gg)&ioQE01%cT?90Ji?rF`~XEGunDg zX=x@w^4#eJ&bT0M#X&{8G6r^Ih@WeqC^xqLL}LIE5y1^Ia%1cNDHZ=rME$tN2Dzal zpF|Z!Zo2tDcbeLb)FM-!fV-Bu&pY3#>CrSM*y8i)-TEuF0wp2YY&?DYpjD0#^^=Hl z9yq$Rc!1Hx#_M6{%H{*2y7t(nx`xTZiUBLS*UXxm3cV2siQ41gg%6x}K{m%`hljCV z)Fu+p5R!k#Ou`S&)}wXoN4JuOv~D{F8;Y6@L%N%yYE-@1>7s#*9^UI*eNio1w@>xZ z5Ybg;En2S`D*sGGSD%LMwk(!yxEi^0%v?uW-*A$e4p#E3h92lNUy0=OY2j10>(!+b z2~n%drf!zURnv9%wY=~c+IsEVMMu<-e8gYN)Z54x=z8rXML^Wh1>UdwybZ2GxIv+# z`@D_W-@F^nuvl|;#0pV6P%5p@Tf8u9QLgAStSwe+ut3yCaq(;3+C^Dwh+l!hrD_mH zh}xs!_{=eAMCEiHj!4DPG=!K|6`vdU9Zlu z2#6Y*!IJLtx}4Zm*rI*1>(%8H4N;rKoTK}^Zl~{?n4GoJU3GLJ6SZs7w$|f>>CKdT zMsaze@vU>cb|oSqYE!9v6Xn6N!YVO{c>}ugV*EploV9oqOUMbMy7M_1exv zNz`WK9MbtZWTm%Xps(?p#0&FruQMQWqBbk(Ilno6p#sQLSH|w%^^Z_FBt#9%e~Y`% zXSXpqg2g2JYxsI?1fn2nhj8Cz_xUaTMrV5H-aHY$UZo-DMFU%Qs>S?uT--#v5~>$k?L?|L1NMMQ|BV0a;` zk9CAdCm-@F+S834^!H)7TXlyM*H*Yc<$r4{@&Dcl+1ePL*o>_>`9!X~&1r;B)Zh}G z?0pXzD)YKk4^*AHPx7m_8WnYbL)75tc>SuhvKnf2szpK6&=D^m;DF|Ot4+A0W76(# zSLxD?$cWk+l+M6;TGIw5hYn2?4~eT72Z)H;+SKdPisoX!r9L!fZS!6AaHkRtQCo+# zqXCXQ;-4Z4M)Gxx5IRviBaM5@m{T}ju3GM7A|h%SfR+v1*TH7x@7011Tk@-RCPv(W z^K`I*e`4-r_xT1kQNv0os;Z7OZH6gdZ6F|OXQO)=;4tG#ExlMIpK(6ckPtNtn~-y` z!SfGTbhmp~A37vN?VMDugH0NG(JN>xzv4t9A!_HQ?Mw%oRBqnY;&TmrqIRAXIfodR za2(XNkAtne)5%0c)Xv99H^6}gmd0+dAU0;xD0UtGhxx<1wz zHqXZRctAze;4m*A;26_`NzPOQE6=#^%N%1?m7P#zL~SG7#{rHpE)pFB95meT{`#2Q zw`^34d(|L}5VZ^8-R2Ey({=`JXLKd4!2(gc2;O(znvMfaYj*s6f?p`uBkjtWSpn)9W69O4el!PKwVRpg5rZPzRs$XD^_Y4zz_rN zHk^f`+i_QY!i6guqV}M)?PVE0jb$3xGY`b(45sz??j-qB8>lQQIn= z+Xd{R(yOkGXur?#g-z79rTL~E3!Vs{7%6O(KTtU&L~VN-Yjt7d_VCeRY~wP*{+Eg& zAZqXkmk(T^osz38;x!k{FIK%>O{gO&ziK;W?e7BZm(me=^H>A>bzRHM$HR9`5E8Xr z;zwVgU6VX}QZ)Vbc@G6q!?Xnz*Uz5uEJUIFnNB1UqIRXYuopCYB>Q~vsvA@aI#KJF zkT+;wW?^$D2UpBq~W*BVPxY_fj53c zEkH%o9x6?6gEoJ+%GqYMV%1mF1Y|_*VQDSYE}-pd#j0{Hi@7jfHjuT8YG%k(0kxIV42wkUh&`rOUHrSF3z?`5iC40LD`@RkIadAD$wWld_DVI{s69cu4=8?0 z1_dF@_Qy=&n@jfF#kS?{pQB7~A8kLO6!jH-ZP@x-Rb*O7gt}hqN6&!&o5m&77+|KX zOWL>oQMH-25uv6hqTMw+gQZZnYd2pKTmP!kOv8v!#TSVbSL?ygmVK#)@Lwv-w1)^4 zI}Otbi$2V3Q)f=-M1)G633CT#miaKZouFZ6T0n$qd|ETISI*X_4tI3UT5BNNYAVmv z{0PYw=7E8m}gYgZ7WohspHY3WIZii3v8(^XDc-`yhl5Z!9@bi zFI{fFQkbQy)B*w^B2@9bg`)bm?JTDg6%nDD8{bT~ovYMLD~N`Vk`GqehFlsUYy-T)P7`k&@u)-y3E6fGTZMswyp=}b;2)^q21xgn~`%&#}Yn`U1 zr7pi}%hFXw9qxCVTSd3&>XdK^Nn|iNG;?4dJ}DqsEyaF?vhF4ufBx&((uuplH`2e+ z(V|THqZQb`D)gd(cd<54ArjF_74;%c)~1qeU5+Y5B0>#2NkZB=bnWPVa|wHmP8o$t zM61zCM7A4?y2iw=<1daWJVN%DE}Tq{I<{ojpc4K?BL4jMaoGJ+a4K?{j%f92t zLM0;9K$R6O>~7QPh){_L6|m+)b21!(vhD}kru~iZi3kak4=La2mP%Hwel z?>;zzE$>xSZc)m=NyVS{9E)R|&R@D}+RDTu|Ne-hM<+LB(IRy985ORKm8An~*KBZ` z${``5Q=|aXwc0dLmFF8;aJz~jAfiO-ji#>yYvtxuPnB1x5^N&Es1s9}53KT9mFVCk zzof!0#Lzo7-tyknwwu)EJ^H8oaqpti@}|pDAK5j5gZ%Y@VZ6m`ji6d|;k`{05&kpm zPeaQ`&zE(RUy2ssgR>K)SNLqlmAGRA@Z3?7MJ~!^4QD{KM06CYnzPe2H9BIpB~~?1 ziRkF2Y<9*xM18TgTcHxsF*4Gp$;6;7d)=*yvu(ujg-t}qqVI1}8u>&WxJ0zj>ttrr z)wnLNyX?`9EnFfx4i(jf=dyNoe0<1yk$hzJIqmJ#xaFQMDVM$Ac`u^ zWml_AT`>6-ornpn3kov%lrb`ZmEH8SwS5BPvS+CkD2XV5_pMgyQ@Fsmb7W-7+&Q$3 zQHO$v!cu8PR_**G@gVG;!5e{)h|mO<7a7TynKvOVM-jzXz)};qE~Gw!ItE8?!aC{5 zb}SkqD*H0W6DJszy9%nd7ehcqm9%QhU|ydRchvkA;+0?%Q5CL$^MwkWF70!KNJJ+= zG+4j>`g+0k_{*N>s6r&9BR_H4Pf%M1cJ^zTPH90Yfb%*ad_R}%#+hi@wV5xG4y~2p zUl<&^G|X(G)PU8_J2d-*MTCEYua+u|5Hu;mA;Q0-%u;?2TIk{8=rQL-K!pF0NvEXG z4bk^O4FwVYQzpwTxs#9c3Qe1kiSRB|l~m|PLYZghl^yDX2%8AurB+g9y26kb)j$vk zkqF_dxhzUW1GpK*-g>|OMkf&g5yE9iT;*&R?z$6uYfhC^eY z!}dowYG%wTEm#nhYJStUi=9=$$}iGj-t7LA{|(;)zih77*ppv=iE65tI)RBx$uNfgdZ@pMiuf}@QLt)hSsP;UJE`Ee#p=oRmf|>C&CY- zDCeX%UzFRJ&tMZFW&z@L%LhVSi8cWT(>Md+m0%O$M{&4)|LkbCB)987h8mLm4BvAi z?s0W1p3QPJUA2;$7t=)eF-%G3)Y8qfqgIEo?I%to5+eM#Ew>8vk1B_R2ye6HR+&-` z2@!t6mRrS2IV42*Nn37o4%;Y)ga|){p&_4jM#Z2Q0wVl0M$cw>rH8dA>ed2-FLWq~ z@G~;7U>R=O3#}6KQqYO;voi3uNb@oFLXe3N-w#g25=ebN-ob9|VLbgkB%@xw_ZYcf znDk~++k}P?h!9iQQ=9VQKBoM1ClLV=e$Embb+Y^{6+=LTpGV%#4LKj_^7B;+IuYK1 zEW$H=XyvktuBGYfNF2VGWMt8QuP()1Llao~vL;9CBS#ghMEC{xgpk;M_1a&l0xTl@ zA_kMb-ED%=xt9=$@Jo_`_?Fl=v8ORLHd5Ggt^1ynh=2&cj2gDRai~7!PKo2ATt54@ zs}C<^BK%6J)Zr=$&!4(qeC6A!<7=PbiE8)j5N5*^~b2_VLZa-HoXd97V;r9zI7+LBq zKt+Tt=u@e5M(1I~`Zok}xEGi=WaiImnz23f4EkH$t zcNSVOUbyiVpdv!}GiTYQ>B?0$;B3N$#Z&p(;qAc&5&je_D5kwOdT5C7e@gfWovt7u z{C%VQXVK0Pg~HBvg?dsVB*LGeyT@MQDH$QGTDkU4M-?Iw{v6JT7qx3rYc(iQ5aBPd zK1_8!scV1fh(aSm{M|{EU}%~)WLjHWTrK+eyFPK3Y7By!IItQd`gx~v8F-*BOg zT?O70 zsoFVwU=*KT>=P#|v}+7s)>MW6iRpAkWxK&XW?&QH%h9U(Ba56c zB$nvhQHVr%OIBp~4oh_MCqyEAO;%*M3rlWyR3Q@KYcW7DP5EqCqP?`xi12mDa+O#w z@Ax7Hj|g9nK}9sh*GN8~>c~PR!vE3nb#H0NT6-28O)?ttF-x&itLP=JrDewqwFS$s z5D7dFM`_YMwD@>~+9%!IaL1nd=>7wk@Asp7Z;YqQ9p+5}owuk_&8gJr966?7teGRA_8H1l9z-oVm(olHbTcr&`trh$T|lX@Pm zO0bFWDVU9Blns2;oft_s%Ufl$UF)UDi14W`vBzZAo5;uB8-R!ipN9EpOB@Pk!>g}y zB9Rc`)8S$_4v@(2R->ub^T=6L<6(JEmyCwR#Kyf!tGFi{0^qi(@ zD2Nc_W2OM0u1^)zp*8B{Hhi9dGyPy>=*;d$`G<$QJL znAE!w{AYSb%DNnX`>m>nh6v9`F^b+Vx)0189y7f(FNcH(FRsbq7GmlMK-bH&@- zO7M2K{s>{Nw!{4M*8>NJn! zSNK3UK;3eCW#NL;_B&JtDiJ;iGPjeoXzN_U`4Ol@csa7N2k#RV+!5k~0*?rE)0RVJ8|8G7|oC`}l7EzLSW62)i)!=EZ&36D?`T*9C6`LL!6%i5TFn zSyWtC?d{X&tJgb;2#64sD}8&hcWBt$UcT}5D$-ggzrsyuyAqL!aQ#L!=syZL1@XB6%-oni=&2r-6Lw#>{- z%I+~UX}@+ETphkO#_?>fG)iLf8_ z2aj#+M?qR2Ru^em2#*K{&`l$bTZX0&;DaSDx-q3op5X*SC&EEgy{0rD$0g5E5r{;1 z6&&HYxr%Fg^6KrZK~NCk)kvYJrM4R_WXFk)DLf+FgM!?Sb0700ag9zEg-?X=!m1f< zK9*~q=D5Nn!iOMZ@OJ0{T*YP1aeOpEB*Ond#^_yfxZ0x4=e-@LIgKcY@SzwY47K57 zc{wCR_%P&=%30m5j$p@nrw~37J{*-jr?mp67y=@E1e&woOH%OB$%hIu5k3+nv!gLP zUB_aQy>#_k#}y_KK8mWMqNylbm_#@P&qA);kQrye{bWmi<=Da{!o3)TT6DcrjqzRS z(G{!mGJhZ=!eM-?g9!|Lt~=rP@Q&mX*?8zGhdneu#t!>yS75 zwe+Ujf+sK6Jl2UsLWKKJ&DcNn)b|bHEQWPc!w&T$g-?Y0QO&3o4`_N4m*g4OVJ*=S zRRlzM03S8-VjqRB!`te{;cp)g$cb^c^I!jXkagcGuV+sX1-6Mt3}U=d*h4J=*3cGoIdD^fm!;1b~^hD!HcgYzn5UD+$a zCcDgJ212lPkiCp2zwE{=ig2v3L>0_2O`&%87pSN8Gd3y5SjwBQ!Jd8|lU5)RMEn0c?sqa%Y6hwGEnro}t5Pn33AQRzZF!5;> zrt5w9t_v^O@K;s`Y6LGKGkcPZh`EvGp-*t;;SCt@)i}EI5`- zEDtR_4r6J3YFHLW-Gfs3q^|jc6NG0pg&_tWjNn`Yx(s}-;QyIO#X2+u-)p~`%OJCr6YB0L*isVeYnwVqtcYir+d3gHvs{m^HqRvxdm zPZD=5R3+F%cn-QlRSt~Sty6Ec|5F*Lgsj9Ji$@5?S~jQe)NW;g1|;kS$E_<>+>(jx zRm-PmhmJ$R+i4s<#5<4|&2<(u{oO;OMh~<2g-#=UB6z1PnaG7b#csgjXQ>WcB6ydq z?KH+3Q*yU`Z)0o})w4}>K_`NDqdj`*X6z=jJRznNWFo-Wwn%!Vp3!~#Mu*`!7z6eq zEodPV!Fy3`A{;n)IQ?jokLY5`KqUfnMP*!*RdgRwa;IYoj|k8Kog!EH^v~ipppL7D z#%7IdS*&BFu!-RP2+b>v7;1G99ua&13G354pX@8UPq@jEg-Qe;6j{2x)$Mf1hsM1} zLM4I^Nhg65s>AZ;K^y;NvAXvnAc7C0lJ3OH>mV-KmA<85nz=)V3E>j~I_E|Dc{aWB z(VF(TcCrtNB%F-D&;im0>)3tC(>@j-<`)|mJ;10NX8B_U~uXvT?3X=%F!2EV0rx)Jk zr9RQ16Tuh74@wiQH!^ofXJ^kTsyfn(hzP#KI#PV4b5#dj;S#}@(XXZf+hHwV?U=$N zg0En}-aFbDZ}GTxl8JvMg0HS9C0)XFo68G^myVx0LGVoq(XPIQj-@HhXJf}NR0JXs zd>eHq70D}G1-s!pZdM`4MDQKd_f&``(njmc4tyf`E~XW!c5{6q-JRvWUKe!Xr#{~a zMMeau&Wl@2Y)N<5E@C}70o6>0-IBKRRXxU3CBrY?(6iQq@5yk1s^Z=Sf za5^+GG1ReRwkWAunxZ0t-(@mMEg030O0bFG_nBhFjWoui6FdIm$U-H8KfsOlQN|r8 zxc%Jj5GaO#2>zJKr-4I5uEQo?diTl*A2A zT`SWH>P7|K{#-lxEZs>d=tQjwFFKWq8;nJ@;`3xXyPQZQL=B~SYF=)H-LGP;2J)+R zGNUbF>p_P$QqYOoBAl?yW|~Vqqi=ijI~fOviP|YBm{Ux=NTy2(^=>;kZf;NNmNLcQh2(kmP8UxTlc zg~)y5WZitluE+EOcWNCGvqXT!2DhF_X)i7d%13Wk>=eQ$f_u}AhM67@z7qC6So=12 zZC5=sM2P=r4ci_sc74|=ginMEFvmz66ysf#v1?!MG@>BFqY$zrR3lupE`0G*R0}>4 z9*xmewA+Uc*9+E@y$)O=#7K>80+R?*rd383YZeKS2#-a-;Y8i&ybR}cm->LhB*KNL zaT!%Xw(1}xY$7}kU4~QkG`b<3zBMjsF>Ue2(s%03zQm3Kv??f1{*Oe$_GA_kTUp^Sb{eebQZ*ig| zGciff)h|waFR6i}`#H(TtFL^#s-YkfRI^hu>Vj}Ts7kGr@+-kq!!5o^xH5?0e~d?D z=u`=xNHE=St7p)nTgQXEZK9i*nC58E-`@je%p2#Dl2Xaru2izwTK z2`Z6bqTv=O5!oKOkQviBL;7qd5IT{dXZB^|rv7`dLTM$IYAA>V6ON|3F$+%;(=qF# zWk;veh=NEk<7h@3Gu=9F#51D(DwSp?D9Il)8P$s&qHScL63L%3b;+$R83CTLS_1@| zNdBCu5A&@a2$@JQ)$sKJZzmjrBQ;S!--z$qoJ0gfg1JOqY%F+ONpWWKkziusvsXIe z?U=Z>2^VxC!SuqnoGr8a>r#b{oZ6|5rtpabox5+ZeZ$y5Y+W+RDXXxFK6sYMh-4gQbM*MS35v&LY-@lm)$4IYpmEYezQRU#c&g-q1o z05t=&*I7DlcWmJjHF!Wiz;vC(=uo)OB4nZl52#gWbS7LS6f#kR=i_^X!J)CSf-mYm zdorF<4PK8=WkFBU@k$qxaETh+9k06@Eu>wpW?Z8h+#Da*J(v{0s~WS0QXN8tPt>AJ z2FZ-V+Fa7n?dU=#YB9cEaOifzuExadbivuZD|Jv486hhk$ELSWXXk|dhuy!28D>~s zT&ko!9VPf%%-4AhB6@#27LAFLesx6Un!+ zq|LOZT6d+$JQkoLlJB64&RQ@sivfd5B;Ua>kt12J~*_|f=?vh%M?(-HcwEi)sY})%GCz|$&a%UmoFWC6QjoJir0cqBzGe6KH{R?F>1^zy%cmJ`AH_a z*amDl=KZ6NEnFh`X{LY%#v2XGXY@jliR6DU;4`jQH>MgBjnRVobl7P`K_oxRRN(>{ zOBPfjf$tDw16;v!AA4+}5i%b>0Tbt0%p_YU-2Lizhv@x@5L@auG!MaI8#V^9`be*v zuJ0bLV;5G3o2~6WJT){vYHUwm{%mJ0xt3N@s)yv5C~mmJ6l7v%z_zQQdh7U2`glMU?#BhJ)IaCe5k&KflJ6y>(hK5 zr3W)`WXik^`i#4sh^MpVSMp5kt@Co`QfU5qrsV@Ts!c)>OmVdENg;7Zni`$#Zc9X`!Kh z+e@S!Xo=)`=!pyMpf4P?E~M}=f|^J$;w>+-l+S5zLI+AQle_?acHTrmkL)c#MI;y( z&-50u{rddHb;KDF6GZYNob>*iX|)%d$;;*|4yp0x1p?k2Ob`h=)%MX-b5?OMx!N&{&E)0x(O$da zfDIyfMYb^+wa@(E>r)Cfk-T!AjFXL?Llf5i=6-n30x>}(@SM(XSC3s>(a^>Y7W5so zsy>)lPF|hu7>(qnZO*89v;{qp+yZaAT?|uO?$lNri?Bi@uaVc$IYJw;E9~4DJs2R8 z*UppFqCSeYpeK^o%~Q6BG`52sF#K4~f5Zflyndc^;%p?QFh-{R&6yAbMDkzqigIzL zwXp&vk-PyjRBxpqYrMw*GLc|}Y6cGr>W*sXZ7kfLKJ2ujB$79^wPJJ*r`OdAltl98 zY>mvtMb8};4gRN(szq2K68Kil8kx6P=t-PDuEx|klV8bO+Z!wFSWll+V=zD@x3)F5 zy}oZ|aCXZ0a&r2V8iN5Md0V!v_z zm$#Q*K4==&tij&n2v_$f$Y-c(rcO+dKHxEtWq7);SPE~8LKqQ|o&TD(e#)>6s z1xh0MOtv#mtx+oQ+E%PqGdjDK zU&-yoW(FH(6I-!P%|J>dpUbX|w8ln%8Ob_J4M9vKpD)fF*|23;IY+HPNhEg^M`sW2 zgEJSqSDdegASRM8V1d=nWg{jRssV@y`7mvrBH(Nw_y(ESWcE!)EFrODO5atdJ+;Yry4+9&(=-93W&WL4Bn7bX#+;hvPL3U~Y0 zp5(|vCBj7#O?Tl7KJy@=)+#8^CkUGePeEP9I;JG71AnG>VCLhxR;!fIi7;`CzLeUz zx>ieH*hE;v32zP52uq7wSVV{}NVXsso+79{+);%{go|aZ)t7**mKMFt#CMKGLWHMb ziMJ`=HD>f6JTW0$B1A`56qJMP-a*wO6VNOd?#-qB2IUn))ijB*K*~Dr3#Arc-rc z65*;Am9a8c)48!Qi4gsGCO3?Cj%qsD6ebaNw5W`?jcPi16DAR^X;EFAFYKC5goH_i zYg<&87%H7q2$Kjgu(-43b`!0sZzw!MuHA{p@%1phMPpxMs`aqeo=Azmp#XpW_V`jb zJcf%> zod|}|Fw>-MX*3Q_JE_&g26~)C1VpeG;m#Es;Zh1Z5nxzZgcm~lCidgzg4Bi~oOW~} z6Tt{vmOi<$$~`ZGong%%_N@fm`6f~#sAH~JWCpJg6Qz8fK z1i~eP{W#lz`$f~c@8ue->-b7gUO&K`fQASTAPZGrSY1}@oKeU`Fp3dJzJ{f(Ce8c8 zD#LIgA%aI^10UYonNzLb<^Em%l?V=QC@s@!jjM`riB?^_oAi2(HfbEE9{Dwa?@B#W zLx<8&hg-0elD@Psp9QFhpn;WrthwX5=Br2Rhg^22`i|bl{`Bf3V@+V-iB2zSBA7&# zDYVps#~aM&=DjJ%iQpPcw{24{f{0pC8W}T~Ac85>B-5Oc%hW?d1SsW2y}PbXm)fLp01cr1}YKEV(kYqcaNegjL!51Z=4OtKF zz<`?2u10V1KgO=IbW!Ug%#<4lMFB6xCfl+2oXyH6OD zL~t|qzZOIZuXwge7lcIcl;Wt^FKqazKuH8o#d3uml{V3UhzOpBxw11L4ncrg@_37jbVw4dy4_H2p9oqh~Qc1 zaq{|s$@(x}2A;NuqGn8>CW2?9KW%5JZImD;g6H_El}!?(WRxk>1tAeU7n{#=u`#r- zaSGuR!Sj5fxVMhm777hOLGM2L;x1-?+SdR$u8IW^vxl3o19n&1E} zK}`fNv@Ok3ytD*05xmG3Z%drKrM8KKm%@}E;1)m6B>PshG zU1?jo?{X^95CK+QPIFZ&t8bfrNQmG+F?*aVH)76^K_`Njw}!lZ2zOx0jHHbm5+Zm7 zMnvgXu}OUZGlSs+_bKU65doHtmRc6f#4`oD-XunXSIL4{E(&ep4*?Op8Z$85UOv%s z2kyXE+`r4e62UEzd-}a=X!zj%DUsl?(dh6znU!RwdkH3V>C^9cmj`3QzI}M7rbzw? z7p_Q%ghVn1_p527prk1TnMg2~Oj?EK8*5(!lxC)$2_})v zbhnSP=DbLVq=5oXL!OzcEd*;1hWY~e&iNU z(r4E3w;ebKh%rh0W9%%hV@7UWg*b4h8o$N;DgPV1rc}Cc9^;wojpnlqYeeu`Y#^M+ zGENrZEa%vKR$++193duxH=vr$G1Nv0HX%6+y zQofqPHW9o@zRjhw?%C-X>&&5-fl35#Mt7B!%^M~JMDP}Lm1&U38oYt805k(?v(TOW%>6 zc(p$~UHLDk6&(?rf*PM{GB)g`2QP<&2oey%KC9z+#!Zqf_rlb1^UI3wexN zR77wpT-P-077KRd`vWHv5fLngbJAj95bvKJtQWl9;^P1r5uAojDr+L2crOE$2(U7T z2Nvqna<5qWy(+I;vDLAKO9V^N8}#6*7%b5@CJHZ?8+^D*K_`M`@&Ur#+LMOZp+E5Y zZa#2t0V*O`j(!_)$J865v)YCvv%^qdl{%iunJp5(*ZJdS6IdHH^cSxZwfrK&PP7xt3j$npFpwFeS2M6jk*+L$*fZhL*|J{xA| z0%Jt577Z+KSRQ+@UiLfwSSJ)25v)TaH%yq-=y+9$hzQQW5_I0cRTKN>Ey)v|4Y5E3 z>oF$etmRAYc&*67CxSE4)uvikodQ&-@AE)%bKiGn&dhw@d{fSxMrWqpD&1h+ z^gJtvgcv!UkBbpdzHo%Qn|+rsZ+e~8f=`SrL;R7I7x6&$sW9IP``K0qGBI+0yeT>$ z#6dvsg>DKyhIt4k64neP^xZ{Stxb zh>^3<%5nk@b?yCxebshyArd2~hoeR}Zf)Sa zm0z^bP=!d0JP`hM)ULs1tB^~x{||fWg@3l`Kue6ABc}%P>F63?bePqFON^Y0{xP_D zuZ5dz)GTCTp5>Ha6C>xr9}Ozy;FvkiH6(M$h>-{5X$O+<=-y}8 z!X-u?f~>Q}#jK|ArJ|un);2K-$cT}L;tb}v+#B5-xP^ApcML;*PmDZlK_$(GsnJVT z?`(|sycZ+6T+XKs9eO!x*D85qs^<~!Gzwu8BP%dXc~q~_lP}4mlpYmJ3MMhKGK-XF zCYu8Xm^LwkhmnY)Jscl0gBJp|JOnuLd?S!_iIG+EOqtMbuK5lIxh%mZMpjFpmREY7 zibE>6#K;=F{9<%H+)5=MO58lt9LKCV`%Wm1;$kVS?7rj^{%w+xM2L|KTtRGtx*#VW zZFS%hBNswvO?p?!#~M#~o7I6!jEv$y8g)9W6FzPwpb;Y%p?}Ua=619@19!7;UShd+ zi9miDc|?S0)CIEmC?sY*rH*oQY*RoE#Ks{G+ zVbx1ru}reKPRA5a*8-<=k_Iudjw>`w&lVELX%C$c#Kg$O9LNqW1ChD)F`K8VvDf zpE2o3X2i%w4CdbSHr2a6-^MhcBStnM`tqfrD|8d(kPsuAVY}w4iJAIr7hh@By5qMR zws47&Eyy-=!P)Z7u!GpH${`^}E;X(OEjBaPU3&3~O*-4n_cCnZ5+j%4+$(&Z(GAgn zM~plgkxT!;rxv-Ro*)tD&JDa(~gu!-cu7@)>FjUAYD54e*l!;s$-$wv;urdeCsZ3PrrE+t1NHdAiLL`fp~ z1iY}4`}S0w8VVx$Bp$J#_B1;41)E52MaA}&rAJiR4TMi5pF$+o$YwqRwew6vNIpU$ z9`Bwb2<)`FxaI!{qQM)kIU@Qk#Z#J5Q$fFE~p9@lxCWpvv8b;Qi4rXACECel$&rlOPS7=Qn-Yy z-v_Pi+||GXu@8TVL^R-+kEtAw+fW)Ee#i4r`K;}Ws|eJNGiRBW&&?sYIFvRQ*i{j& zRgD&xzt5Q?8=mIoNqLzk5Ov=hwpijt@z zG&@zNGIZQH?KqoGF088}(mFbqj(+^p?qXHBn5>G}DmAJ#2Ll(h~e3DQVp_Xl~?AwT0{!5p)aIZbCqnxep@VtJ^@mjP*715XNJh^nRfq}<5 zL@K$st%`6=m&UFf9V(q%C|5;jX04!K8r_53gXAK)DuT09E^kkdHBDPA-Pn^oy5-HX z(;X`>GIbzAqKfeB=v*Q?>y_432$K-U7~%L#V;qZv1J3CchLU`lR5+)v9EK|uE!nLk z9;*9X*iWE}iTPqCa3~$PL>13_B6ZoCF+QeIrndzb4N=9^dI|MI-NI(7p&+WLw_rBg zcNnOluNgw}6%tWHUp*B;>-g4YV|#X7`cP%OM_*dKC;CtJfvydWS==snC@JVf6_G%S zudlUttZlbTkHWi0vvGr{tC%qzn<+2GmrcsDv@0<}CaU+wP-6#~p`$ys;1kvR$P5y< zg-j1|denhSRPT#cG_k~?`T*5X5Y_vk4_P&a@b%d4DLu%vnR;l5>glLtyj9&=(UXm$ zvbuV=;R~CnE<;6|u%X?WYnF{{jDCeqRPS#isYVB`5!aCH8W!v@Z-|KM1CY0wk**px zHd6{ZQ9Z-uojvSQOgZZCtlrNroE8|Fh=}T$682|yV-i@2k4$*>Sx-x>7JQ<57UrmV z?S*xGKe{`Yd3WvFPCLvd0U1#}yO4xzL$2wxr{&dnPZCGjBp@TI4=hx{#aP_OvK$WK zcoK+g0uT|^a|#J$EBoz|5*%X_fQYD`i#bWY9#0gTtVtkeat z4xk{akAUAY#oyS%)&8S1E6OL(cCs%TqIy22ghr1YBIiDQdkvevW<(+(s@O}h9dJOt zra6OkQ(cFfS%lmkOcgsT)|dy<$ole-Byt-vRcxG`c#7JQ<50jv*MUf3>;)u{rLs3P!6uz-O( zzVKD7ffHYw|7b|bM@a_tW2aV5%nl7%Z=ZcBzTNU&nZ=Hhd^M*>5l+eJS7Nl7YYh2( zyGz8DU6M+^KA6Y_jkz`LRukJW*{j5!s=nQnK!il{4Rp6$NsvhPp_xM^0U42e6AK}O zN!XiqvX$@ARi2XA#}Fxzd<&~V<;kpT%z3`0wV96uF_C;*JyP~fnnOJjWJK~EtWWpL z;&}k(3nGzx7iWaBZoo1gM%&z#-X1nwM!3@29f*_b5V->wT$m8 zjN_BHzE6rS-DtF;B$C_YIGmN_Qt`hpxpbY;iHb;mgdx|Lf^U^~sh#AAh)8~nTGa{Y zT3x!uNJKy+Kgn{Rgww$nf5m~=l)O%a{S6`_!N1*AIv4gOaR|}0$&jYt=h#F?BtJ!< zUPwb1-zmW+lAp;bZFX(sU%He<{|Nz+{2V>%l8$^r)D#E4oJOy=nAU@n@E0%@hYeE6m`<7 zz$B7ip#s;pXM6ZKZSF85_BYHw4XZ%cnn;64evJyGIP(*xUHDJBRL;vlNhH6Ku)$X< z&)o^1a^--ENPa6(uqOpyb-Dx~B9h-p+@TT}Qho@C#{Y!xchTwaXMlBKaq#N11)fC32<`WvZ^#TNW6ND2U`=S}l|8A!;ayw1er+w4dgx4+}mqg1;Qq*OnJmh{VV|c(6=_kdg1= zZl1}07?J{1#K?Sfi((3g(nCXxpxsPm^-JK%d9mROn;1C^WnaB>w$+w1tEO+PYT)Cy z-jHewQ-F#XIb3!`2U94ScRD#F#7KY+GAJKXa*&CU5OsEOd#=$phov|ffSH&_e|Mu2 z4S~}SmAe-7qd3LV>ES&K&*~Fhljw+%7`9PJLw@v>z&bWj5F=QYD?WkwIQbC0UCNU* zM$ie1xyuaRqvrGHy6p%SvhYpzeEoTZEVfTvu}@RZPUwW( zQE`Zg5v+rm&(#j|N%UyKCPt2gFU}PKM<38;xaT4(g=gq;*+WQ-U_COQz2B+1?7=2R zj)sTHWnboDoECgyfU%{lDdhAxZcNa|Uor-D<%nk~bp=?rUY~%4-C(Rth?iyagRO zE2^%FEswH%aERos2z@fXTPfr@P~VE%mM0sb$cW@^@@|OKrcT2B%Oe{;JK_T%1tNL7 zyh`j(ZSbG{*V=Ajnn;I8-ciB3+W$?OJgk~okf#QpY?71&iR7IKm;H$kNdO`uc^A*% z8oSNX!u4Hf_0m%;t{tEyl4}u|W#U{qvH|p8Bm*gt?7=jon9RED4A-G*1xg~>>nRMr z65VQ*E(W`2f|N-1!Myv0@l@!G3{{9kvLBu(6AkUkRDw+;*D0mvqS!4|f=wg`aM{^l zp1GeIWxJzW-e?jKIguR1c4JQLyEMS*z$KFFSyzY`d~3wc{y`*?8*tn-%WPBK_p*V@ z2s|RWkp&cu|1DWpN8l34yD`lk%`(fJo2NDDNWmnM_h48yD(6jPSHPoYWkNwDH=(RX zU3!GuJtMe8ax*H^=t?Svod854xkc7vP`2zDU1>cfwLM1!MDkuZeRKa!-}QT>c90S} zk-QJmP1q&O@-2T(NKER99vBPl++kiWQkl1Kq_PytB)NB-@zbGP<_}C( z$;+7~#>Q8erKem%n`frm6V1t{tUO_Vzm9W!-8t_F#PpB`k-YN1OwVV`Ob=-g$*VA; z4L+#1e4f@}YDj@dUX3m|klGL(xJ2?AM3lHBwK?0^h|k&hzj?mp*M=@+B6%$W;Q?X! zi#|>d4UxPKBievo^2bpGuP0&wAR?02<2-Xd0nY>5{v}i*c>}!f#;x_)#zfYy>ajcJG-*VcGSH2+4VrT?q6fc&(4XSgYms6=Cu^54SCz2mGDAyReR?vD4p{HhHfs95(=8noBAEewyk1+a zt9Z}tmJSM$w1wWSt-M?pX3Ek*A(C0pC+f9TkJNNKzzT&(t`d5qwraJa?|XtF357^H zpf_5z3pObFo+XwJ3Xyb$?(I!`ZK^^c64+?c==y4A-xY==6e8(?K3T7g>cZ?>Yw4g6 z$#$VPYimZ!%MJ>W>=1gVw#JkCrwvIcM6wg~t&Q5~TAljWEgcjh*(LN|?ZVB9zSpiD z3WZ3n2E92~8{MSn`?eX9P>2Lgmt0w|U9?`&_ddnaZR^TU$rJJ4ws!52`cYkBKp~R< z0exnycJU=D^*y#mghC|$EA&?F;vqEy3XwcX=ri8bKVe8hA(AHxz3rpBP5=s#;PI2$ zR&Bj5%-(++l2C}`sY0Ktt`J=-thfU&;UY@x3LzZA2eD>2%5$8;`cFk_B zb+IeiT{hN~BU1gr&T0}{KcbOgM~&mI6hF0@$R9r|9mh#euI$q#kFdM7j<4{qk4&sFsaImwBLCvdz} zlg~4x1Oy^MAQ+D|5s4L(c23TQilRtP!hd6}_L!!-K^+t#IT_2Y8U0L^yem04L~>Ut zOsm&X?0pLjM;JtMiWCO#812&ZYYj;#L~=JwILGBATn%B-_I3-qi^XT&_fW$YE|J_F zYe5L4p=lsMQW`gAgGVH%W|}UpmdTC{74vb93_K!Piie+UHD^^0?%}~8l6weyXT7f2 zdv_a-Fo@)ysH!QP8JJP@Yd>r0pb*JvXt$<3ukJ+7se(f!_d@bBZEQ=bKouGlmcVGzlEFn??J=CEL^E8kTlNJMg9lpcqC$D1vcfeV4aA(H#y6K1np+g<#p zd)|KgoWde-t6t^U?s$EsHrt#T@8KFT>_!#a*jY2kM6wJO)oqXALhd4cAG<6lL~?&T z$&U7z+`FUrYYj^{MDhT5pxI7)3irwnIF^Rx+VE0-N=|riWntg3Om?>p_?2f_1yUrE zGjMH3Ur{WOYdg@09;A~{Q}-{*?1z0+`nK_q8O(yiv)vSQM=STYDi z@<2&i$fczQgGkO{(%TEQ!XY07A~`opT3lkGATBxwgGe5Pn)f@M{%cM}*dly@Ut#tV*8Aa20he($`7({Xr zI$*{wCjA>j5dx7sQphr%79aK+O9p{R;Co93U(U#_cNRsmj!75Fv4=(m0+Cz{fgO4a zCE4={LlO#+Tv9$#@B5qOgF__i`^gtdvyTr73Xwbt4{8SXVqxeC!5|VCUr89?=7rWi zMUrep$CNOjCLMZ0cQcM~;1S6ttOe#Z#g4`WL?IH%W@dz-z?0G5-G(VVBH6->tVU(T z(t$`Mm!dTosuU~iGQ$!Mk>KA-LmL-pS)quMN5gH{3=qZQRb#|NWf_4>B$p##De8(( zw8sWrLMDJOFw3w}nBfuw;nzR{0T{+WKs7g12gF_^bmo~HfVg`HZSwJF^Is`7fEab31 zG&CU*$=I-Xl#AWMB9d`*i())l$jMFl!6lN3|00fcrVBEWAfSv*99zi7Ibtw~WD-5s zANB6HG@%g5luNwmqP7{1Foz*|Vgp$RCJZ9@5Q;aB8!>v_+E{x| zK1xwkS{lQ&z?USrtpa1BZ$?l#@9Lv4N+)B@X;)rZHrYV4?|x!n+jMg$*6qmJXnTCC=3TVT{6EFwTqd_<=3JjveOh9)E;_@vCd>bPcO zt}DG@s-fMGvu|*T;8vwmE{MawaEahkN~hcpcQ}Ph1Td^ZInOFqA)UE!iQqGtuGfMk z&6Kp(zLN}FxJ2+-naJYMLZj+HGxkBupasT0x~cEu$o1 z62aFCD%E9OR|k^_zLBZ2PqX{0-Ho$g62UjK6_n{&TriHCq-*U-?afa!WT6tlw@hYE zrbcOQp$U@+zKtVM*%!TW{I`}}gI>$N4x`#`w~>f|2)=`8q9FG5`29Vr1)m7Mi(#ao z_4IoNib5xX@8R8-iTbYWqu!V+~`xE~E*U2yRn4)m2?E1TGQ$Na<8(b^aV&BKWb=Y5z)t z0+$GWqI72$>&3-4;1U6byF$G@u&8rJWrs%520vB0bBa37qJ&EXKU2DMm5z1=E)o1( z=^j+nxp4A@O|2xq~Ixl^9hg;!Qb#U;(&a%-e}J>>t%5w!w~3*;P1scWE!4Aa5YFo zMDUMd0v+6TS5kt#Ha-&(5&W~*2w4K2?74>^3L^Mdu@1VunaQlHV`Art6z^@6q9cO; z!^=Pe^_WY;KXv2K3MCQzyHYu&Bo%*5!peY<2>v5(Bi|$XMe)=K_XI>ng!s!~ujuZQ z`;tq0#T7;=IwG7`Y*eP8APFA{KI5DgJVuo$KH1(0-Gq9DQ;F|$&8+LbOx1Vor%Mvv7ngo3^q(uWLB zSVTC2xgivjIK$eA@W{Mq2fk2N5b^kw5Q*?8**L@qRU~s?LI^~7wB&%Buxr^J zd3sU9wGN0xcnoGVMbWb9@o8LXHL!kd+ei3Bh-S!VsG@a-RYD}fV+S+LM4k+JPDl7e zn4*oXr^XG<&7N8yb1E>2u!@Nn{d=p|z~mkmyQ-x>?s5p72#-SyXr&Wq>_$t@`4k$C z+vh?i!sGkGt@vCBx_+~+gl8GLkckk(1Pj~ViN24e@}^!M;G&+;iSPtWqitdBh+NE( z&R?iRcq05RW%vk4;psS)6&exV1s=>wWaKSsIJ*-b5uPONZbsR;9uB#o8M0dx3i<6h z&nSdXgePOkWI&5kS87Fv$7h61gm>+?gUJ=!GsWUE#1JwOp3-jzBiyl7UN$e5_Cg~N zIuYJYO54K+#Ks$TRPwB7aM4BBM0j^8?VwV3x7~&=WFkCOEYS*mzK>y;5Q%W9w4xPx zT%T)s@QCmpSkRu5clK3H&_RGfg!e=a85{FDPh{o%BzQ!48oDDjJyqdcOB5Or-m9Mt zZbniy=KLObM0jtP&G@dmlJL;G(1`FpPJ)lb7trVVYS~xu*h?2=9;HW>kI~ z=IXK#iSPmNPDV6apJ~)Q9gb^PLM6g85PA&C{C&yg2>}tF37@0Hx;EV)4?YpXIjf9) zy^BjWA|S%Eb;iDK=G-{=MEF3h_4PLw5Q9&I=jcLvJDwY}ARxkXF*z;NR(TKP(zd9G z@Ikuh-mbX8D1=XhFohEextH|Gy_8$)ktD(gBfu@lOFHKhOqQY`!iVUBdxscm!6(9p z>YQhLomrfkD_A=hi$p<$55qW9D7R;ba$_6lMEG!>akq&>?P}%4c{3=8@DaMJc!xM1 z0uTWap0Bgs)sPQA6rb76^q?TZ<<3!gE7?|$(1>t_b2BdA5iEy=Z^4<#MdYSNuaE;5zUvDl90+9$W$eyRY!#k65*?>ia2u~JG zwM%EG9DZyRBeHN5%l(2mWCegTs#CB5yGdI z6~i~`IlH#LSkehMmKMV|__>||84+$OO#%&}W3F!*p~#4EbLo?Khe94N7ab99!QEs2 z3N0TIT?7I#5nfvQJidX^)hc8}co~)&{beZ|AOCH%q9npcW2w=fihr1N5dwrnczNm5 z_#C`9#pR--ih_HbU(i~UOm+R2@JrPbKd2nm9 z@U(guad8u9L^y?EB-wMTA==lk6;x?;whEgP;*%6N7Lj@eIOlp%5e@ zyb{qI)+eUTnyGAKOm*5leZbAF06{>6+YpRg+1u6_Ywz@S9=AXOA`!L_^-$z#8aFKh zj|itRptkB0ct5r{pt{)%C`34eEL!#1CN{`?HOF^dghzyJG>_4Es?O~JfJKC}nPPjr zCM!&;T(-9eiwLj6482v)DSYdfw-~yRiLis7kO{l^=5TpX0U8l@5$_C2e3`w*@P$o; zbFkA^1JO&jR>xUCz5eLdQotm_9y-#1s@9&ZU!{Wx7Yaf^gxg`{Ry@|6sAtqW3yAmUdMW+7McZM7RqRzPzX`L(WCOC&H`y6?VvVXSOZr?0i13NhaZFo!D%Gv-fkuS?BOS*{N-}ec-e42q|Ms7+JByE< zDp%?pJeWlIr2g|6Raur#F%l6F;ghkf*usTC$}hNZ7Yrgq3X59psgiE(b{%X+A`71? zJ<~~it4}=NCsZPQns^|{N_w-)3OpiwI*umfG`_rCBmgcEK12LamY1g!ySWfpMEFc; zC@OsUxbYE8B7ByuJ%8VI(_+ww@Y%NZY{wnu?m;EO=iorMl+V{?|72LgA;N2HZG-Q7 z8n@{M9uYp*K21qaJ>3w6Mug9^Ph-2O=V{y!3n~#lA304o@aZ$}80pp!K_kK!z$UB& zW3${kARnyv1R8%c5)lyL3$f*!6XRGgkT%}o@^`B*AA|k?9pf~js@Rs}DRt72&z7nIBlX(ie z=Mz>0A`!j{20y)P9NUn+X>Tv&DSTlP;j1Mps(gKcS%FA|h$xPlY0PcK$qN4q3`-1E zh(!2WjH*_&1NV=Vo&I$04}2ngomZ>&l=rd?z$e1jd$nh(_FHTe!Y9Hvz^qM~JD%kh zHCmEWMi11BlX#~F5H!e9B+Y=rUz7@fR)u2PwX5>?fDxP&ABG^Ruwm~HV z;qh&1U57743Y!SuE>(gf7u!nXSw@Fo65%^wo>o;di1X?%p%URcr6x^gV@=O^?ADt> zB*J&~OXwe5-J}RiBD@wI&}QWsD4o*+jR^PjGxCpnuF=3G!o8S%&Em#VPfOWYQz%5Z zPcm_I&#c4k!+=SI`!P3~ZO`E#Kjs}JZ`Zhi9AqNAP79UsyA>sniSU3HD$9362gpQt zPz%)oaCejeWFov?gt$&ZMyg5K<@fCGyBt9#!W$484hoewaQkZD65)-~8*PR@8+FHC zKqSI37_J!C_qQ-_n`>^DSAA5&{K=4oN`xOl-3-cbA|L0{b-TKiUPy@Wqi|!HobS!3 zOm`TrFp2PE=t~2tvOHbf4+Rl^96di%%SIZm+$zM8uJ?dPgb2cp%W2B;bA8taZK4l9 z$^85S@!s7g7vT}%t>~>;enwNnMP=A@Di+lRl%Nygrx4Ac`fFX!8?-LA1BnPfEiK=e z$o4J$Yk6+K0+k3qBUM7#1WwV_#&O(CThwNw5Izxp7Hjh!ZRuVk!&&Hv@N-f{1NmoH zkQG|f1uLKv;peeaqNSy|+r|_b5q<$i?UHEKr*UFVzZmD7DA+`ZDDT*UQuRSMzpx>p zh{G>ooN+>rS-TM*L?ZlhzLsFr<6FH2J=F+=PJ~~{KcbbYk~#|mn+U&(1tZ*MH=#R2 zXgI}UQBf@XsyspnGTm~Qz;WyDtLbhh% zeQm(iILJhZ8AeWsSDCka4A*vKArs-Z2ZSZgf(->S5q@Vt*qv^-=hQl@+q?vs2)_&O z+kZyS;Nq$gOd|Xq{6*J%>#$^z&t(QG5q>|*Ec-+vR_r`cyK}r?65$VWnU#d?R~fQU ziSUQ$9xS6LZg(dHz$3!jU@FvL!DJFX)FXBK^Pm&qk8-6fiTQ0u6eylha*be>M@g<8Ij;WFq_(nirG5R(1%c*j_Gn z0*eTLjVhVLOL8Sa_}dLpXhirM#0DbqwU)C9kcjZNSR@vKryb9Lic35mcEQ0XQXpQVzEbmUG8)85s!oQ${4oW=pcsIa;O@x1idoxP^ zUS-`dg-3*cL#HlieA$5}5IPb59d({bTg{eQ4sr`gU=iUzkiw3}Sh42ZfQjD|;Xg4j z?7$5+r7Mzq=sUqA!haQ1YB|Dfpn^$+|5s3{wFu`)z$C(d7gTB?!u1F+iSR!Km3j}| zSsa)|gue{bhI$K~6Fy-Q(Y%7H^c{3z64CsEO1**3wiPB3Es&1X#yi*91#qQD;jD28 zorn&T9zQ76o7bFe2%CrwSDE@2^XV~!PDDX5Q{QuzW#`Pjjt>SpNJL~i|jqH_AJ8}HW4i<=ITGE#_?15M06y^g@F=da-|%W?Sn!lqN9qL z`cI{~ehfYl9bN1g-ot3FV}MRX#}u>mpF!h{SNKG<7(-cRuG96|3S5Bwdg!ftPc@X_ zEu`X}g164Ej7+w1p}h_qc`=V9NJPiVYe#Z+SJj?PT^K}^B8SH0B(_@f1>wp`@KzE* zdmAqJ$9;X+<|?L4x}-)#RY@7I;Lh#Jr%ay^yp2TA-hNsomP@8|=zWf1Nn%8F97eOT zx_bN0^=15?h>pk5Y_6rN;SaS-$<vZS7#+ZW^Cz zDAY8g*=nxxs;Ho2ouX!5<1Y#s*$J7bBHI|RJL`VSphOr%^(54$f4WaUAQYl{GDdB? zEa)#118rdv)w@b0k3bvWsVhDLJC1OO>M59~S$^4*PZ_dM3F##xSlP#cO&$NUQF0Fx zp@<8{+dJ|GyLY!qO@2p2cbzXEqEqHdZZ&64RT#@cEP|M059(p2VeWWvzoO72d9m$mD7K(g_;o?V>^CQvH1sFTB3oD8RBfXj%T&ox? zkLCRq@*VpLT;xy`GRhY+QN=)bB!#>5h7$MQghy0SBT@D&({=e=j2n&Ff1;d&i|#Ss zHVnwBMAw=$tGV!`if}{jT4-R`AD4A_%ES}H!X%_Jj%nFpG~(b~P6YRuS4Ald)^v ztylr|v>#vS6e=M#cR22G>gGQLc`IXv=w9TZ#qNDnVd7O#iu{a$J_C zG5DIj39I-RJR)7q1>sf1)W_zvvPo4G@>IHzi7Eo>0im2wFA7;&Arn%G$wYf*8$Nbk z92Ea;Na;UGhWTPTeWWR%_Z28^feMdEF`1^uH*I6kAUq;P-gqYg4O7d8_nDsR28^YI zN~D-eA7y17#9!)}*t9|<#9c2oqKSHEoA-PhmzHv_y;6nk;sppPqi<$N*DN%mIv+>c zjAR;Fp_j_}d8{u^;KEZ?{~t0k5fRk|n57jG@XjIJumS;5Jxu4GiG8_qDMUm>6%*@| ze7R3H8=ih@8%9(_6%%aRuH9|e|HoQs@v-R!g-TRI*M+=K>v}eLL>1F&+ZV2u%lK7z z%>@`C5>?Elqv@VLH%|8_1VSv=ygdRl)khNDEal!5Anp6WW8&!dL~R>RsTCicXJ~{) zMEAweoPC>3z8Y3E(X$LqNJMl$1XZ)mfe)c_4NZPWM5iOD00kQn^slJFj9tS88ASzO z3lbI~4-$2oQ>v%Y8AQuS1@ZoPQZu8UZ0bujX%#{vq6bL&wm0WT2X1Kzfr!q)fKIY1 z{Vj%;{)u!{{h#5Tc4X7wTB+_@s{@yiIy<~8t3Lxpy2kuII)glv{ml7@nCny1_3_@A zwvq#enf{@#NdG9CMZT3KPU?g~$kU9-M%R!KCOVUBln0$U=+0tGX&@Zu0X_LO5uH6> zF4*3V?WBxftWcU@`a3F6p})^I#w7V7ommKlkmo+qr0xx;c-$#En+iO^1Eqeh>gk(| z_&SI%i0B+)&*2pdRURAC3WJEwMf$kjzlHUgf%>5j6ao=FD8Rk#J$(C3KkS}o8CH5H z*{GXeqHg5+EKTRMQYb|FEAeK{u};0?IXuhFHDM9yuaUtlqD&puF+LLtk^V-iW*WV} zST%H&!XVP$!d0?riUL-TkO=7(F>Fh}n8ZnO^dNFk>*t|g8cQ57sc#vI{F;a!jQNM5 z7R$j&efo2fQSEnNsIoThog{M3CPX6rg{%k~$AE7V^;&o>pe`SyD~u70LxfLAn;*8L z-I~llh;xSzCJoR0ki#mG5R0ku^_ui2eR6s`e5a6WxIIc=y~gx~Mx;N5b!8H)PqymH zB3-8dk4S%pUYBX+uuxPi7~dll79n*Vm>?kkz;ss8LrBB}KXg7mwCax+tm8?4)TgIE zhIcmfT3OFyHo_&O+K#q5jH@2c$o?8Vlo}N7Vc9fzy9D>sSnJF`49Cjg?R|dmjsRcQ zZnb-!vp5YylO&1g;bxYNaYhBs?6$%oqDP?du+)MtEn=SLnf=;9UU)=wJ{|*S+tgs} z*2_U4qU9j_jz}wge`AV3En{(dd)j;!%}f~yxCOA zKE<#kDI!{ho|&<0-6?%vlWj?15z%V&pWY0<1&>dZ&t~5{P~TnQL{Ydzv_|RF7ATis zgiAyhDBYRGCu4sVE)iX*bb1?ftziq7h(?v}Y?a@qtqxowx=88NRwxg$3YUl;sdRcX z)Q+aYB_fo)&<<)ll>I}vM6^!n&MQ8jix9viqKlPI^%u8o1uhX?qI7zt#@4@ZiDK)y(W8`3tw(UqFI*zppmf?(?>21V646GbQ$r8eKZHv}n~J(K%IyeTBHFBU z+K#N_5H1mIQ95Nu9J_=|M3*X^vLnV#!X={1lup@^s~2#I=+R22?1)oa;S$m1N~i3I z=lq0AL{})CvLmkd2$zT+qjc(Gdp87uOGJ-VI%R(ho`g$8k5f8je~edzOGGuLQ}*ZV z0bC+_ywYj=vjL=ViKwo0%KqG(0$d^*Q#xgT3=D-!MB_@Q?9cUUaEWN5s5?{HA0rgu z5)s0XLBD&ZvOjkW#fB`RjV6^&*`FI9z$Kz7rBn9jcDcbNqOD4&?2ij4!X=`n(rNok z3|qKFbfwZM`*ZdHE)i{0I%R)uTmhGeT1uzw?{>o$E)h*DowC2ZyA4~oL^Pvx%Kn_6 z0GEi`N~i3PlYZe6(X7%b`*X`R;1bbQN~i44^)qmZsH1es{@hV6aEYj^bjto*90D#8 z%@uWLDf@E~Hn>F8Q#xgT?!XVYM6_M$l>NE!0bC;5p>*2*7>9sML_3vE*&nB*!X=_z zN~i44`FU`O=xU`?_Q!>4;S$jklup^7JE8+F5j|1ql>KotQMg3(KT46HCBKLIWgJxS@5{W*IFmx!LMbjtqtzKn2*2(zrg@!>3Oe)drTs#Oa5j|7sl>NE-1eb`OrF6>vxPl^F zB6_ycDf@HdAGk#H9HmqC=jNN>645nEr|oa8VGEato~v}q{(iRi^jr|gdx6$zJ! zUZQl${`fHr;S$kHl}_28>!08f(aVau2P*q>;~2O^^m3(B_UFb;aEa&@N~i44*#o#l z^h%}E_IH?J3zvvqrF6>vTz!H|M6XslWq+>yz$K#BD4nuD=a;}GqSq>&vOhOZ1(%3k zr*z8xxTP&zB6_{jDf`>QxD{L?dV|s_`{O|w;S$jsl}_8=LcJtq5xrUIwEf*;*uo{EwdsO2=i()BiRf)gr|i$o-@zrK zw=12pKevJoE)l&$>6HDsc`CR>^iHKy_U9I*!6l-1DV?%E?yL!yh^|#SWq)pb0GEjN zD4nuD*ACzk(O#uf_UGpP;1bb3rPKCzp=ho}MC88UPx^tEN@%1a=64ASr zPTSw(}5C(MOa{*`J$NflEXmRXSyVdv_bQaEa(+N~i44&8xsA zqK_AK57PGc8^abZ5q(1GwEdlAb>I@wCzVdy->FsyE)m_Tbjtpmp9hzSKBaWZ{#-l= zE)jiN>6HEPS`y(B(PxxS*&h#p3YUmJt8~i#oIQX`M4wYSWq)oS04@=IUg?zmxp@b; zMDzuvQ}(yNXV}6eqAx0)vOi}J;1bc7l&;+Vz$KzDE1j}GH;#czL|;)lWq)qm1eb`u zs&vZ!+`a|4MD(?y?mT6GF0KQYh`z3L+Wu_66fO~cL+OIrs1TGQ%KPa%KqHEA6z23P3g4#y~41COGH0XI%R)u-vV4B`mxd} z`*ZUuaEa(AN~i44t+RtmM7I}pb!C6fUxQ0TKUF$qe{Q`1Tq63J(kc6M;~2O^^mCNE+AGkzxr_w3=bMZB}MD$CgQ}*Z9ufZjv zUn!lkKc1}?E)o4&>6HCBKL{=nAr>msr?Nlyd^T$tozf}$bMt9% ziRkxAr|s_=!xk!08f5q#rdeU2&nbM|iisA!`NE+7`R0ASEW<-=lUnOMD#bM)AnckiExSN?@FibZ=qoemx%tMblUzl zSRJ@T^iQQz_UEpQ0GEjVrF6>voL>T$i2hIMl>NE*8eAg!x6bNd0{648H@PTSuV zhAmto#$O8kQ`sNaKZQ%g^OR28-=_^*xI{c(>6HC(91|`PFHkyVf1HO4mxvE5>c+MG z*?JK!5g)E}+Wxi~ws46!P&#dY54AdQi8xd`Wq6HDs`UIDV(U^nnKCbM~ z)n~5Z<3#C{{W0zlE)kC?ow7fUN5UoIBa}|rALntxC1UuF!t*KnV_Ys=B3`6)%KkV$ z2$zVDR61pU^e@6C;-i#K*&o*jg-gUoE1j}G#&yCa;$xIf*&pW}!X@IxN~i3P@wIS? z_}HRuLfIepbA(I8snRL?qyH2x5m%K?*&pXQ!X@J4lup~9eJ6HC(J}q1#K0)b}{qfwPaEbUtrBn9Dbw1$|@m-3#No7Z_e}YTICn=q>Bc}tGh)-5J zZAWYeaEbV?N~i3|*)6z4e2UU3JK}gNTq3@k(kVM)+$vlmzPr*XJK}z^aEbU-ygWM9 zYYx0wV*6q6PO|V`#JiHpNF7&w;H|adnp=N{XDrS{ul7(o4FdONM})mLZn~B3qoU^#tytAE_e0o&&6>XAWS0t5?-&y zg_VE2?x)BJONWX^ntnl*k48BiLtT7H!!XeVH zjMpBh{QlnEhA1>5{RVoQ`8Z=S2Og&u3Xy&j9Y1@qU$JfQDGVb07OKki zlA?mcp0J4Y+wu}EzC6*b`7QSqhABKE{mziLIXOoZ5|N^lEuLshw}&{Fy*Boa?@1LN z{51UMEtVVk!64#$;RdYs>>MsU!QBnGy21Z3N4|U|bRxbt%&gNecaUb^wNyRRjUAv8 z@qN(Gx^r@$1uSi%i3`0v*9cu@=t3sq`{EUFT!_~4z5*`4CF1+xebxTM40!*BA*CND z89o0KL1ocw9oJCRr|UHpXz^fkdTUPdDY-#_5*1@{Z9WB!NI#vIsPM}5W6+57GkM8b z#jeSf451O}XY&$eTs$l&G$Q?6UZUbDo&ymYAtS-U>=p-c&Z=D37+(4b@=?d1gauEx zuf(ggif#iLp%7BnBRiTCQw`5WB2O`__4m9@D4I_A0pBY^HEevzB zv--_q){Ue^#LMt1bH=XuKd``4;X)+h`=dbK3;EpK2@E2B0ABPQ(-)aJ+s5yS_zXCn zu|{JO*Oj(?pOIZ?n8G9CGvRnLO{c!2SogdLMo2__7M?k~!B4&n;kj3UT~&xgd^UQ7 z5p~)s7If|dEFykj7RuttP)f&^YbLyGhEC@s*UM2NpMDoGiVn%L82_6xz?rWx-EnPV4M1@DhYx;%D zZoDpLBEA3(GG5=NL%9uxA_OA75MCX3(RcLaKMZMvLd2tJ5koI=r`(hgCJ|qR z;lrx%a(*4%%hx)$7{0KH_>pjZJ|*F<6W| z`u;Gt?g9!CUx8AUT=?f|2^=DR44T{WYxSL~`*Wr$JR*K9oB}moi*qaEU=s1;(D$ht zVsDF$KF;T5h@WsKKE=}+v?feeh+v=T*sw0F01TrJ^zI`HslmO5s$$w zP+Ml(Ts09g5s%Bn5w{Mv<4+$E(I%DS~<2blPJS)cDZ;z6z{JGd9bRxbA!9z}3 za*@A{eT7ZLox#F-ukn9{VGEatyMsCUFY$L{0N6x4CkEJmOwTRjZfFLTh`Y-U` zyW8-EO~l&=yTQ=QD1}VKI|j4#U*7K~mtYg|PRw=@s3Ym#; zcN>;)i1=!JzcGu#?Nzm1-0AKQ;@sc`2@yX5AM#W3^09?4o`{Z!pNJ1$s5Jb8j0@?Y zA>#kRm842v>iy3$I#Chv|H4gXHzv#de#L6u!ww4;5kCn7n^E8sbRF&VsR56OpNtNW zyJ1;A+vJ)1o@DsKCgP`{Q75rB@4Le_ai-?~NGjIyr&|B|#J{DmI79kVyGjIcKQCRln#r-ccG7%B+GvV0eV$K@k(H%3{ z-+WQBokIzoh!Ht2Hq!P)Nkr}(BDh5SY(&3K=gG{iJ%C8W&p{lMiDrBF+C`_Vpl;F! zJ`rETXYAHnh)K%Ida4l!ors^yXS7mJaozC%aEbVNS%Y@B$}$O-qwu*jeL*A7!wQ** zpKr@bVQ!X@GtVP-Lj zzJjky;@j8Cyl*!|p%L+mAu)G}&%wNl67FvZjfh`@foKZ3WFLR4$@fr;GS||e67fr6 zs$`pjG7-O;6@iYYo0YGS35|$fgRncxt8{d*lL=uG@oQNP zGrcJ+t{0otc?|G~_;v6YSxzOB32yibk%(WNwN+`!r9i3Xh22#^>?$X*Y!hiHP5hK5a57@6&EM9b_VY2P?wcr`<3E z8WFz}eLBmltWUcoZZL`XUFe^gs-%Cq^#c%z_*&MTzkj+pD|ke_hfn0~pKfIeG$P(B z5;++#iOoe7j=2yLG$P)Il_t4Uy=a@x%s?RG{fMSO_C-@}u>~9=z792P`Toe*&D+2v z;scoV4XDb39CsKI3L-v;L6z$A9`2UcK_}wt@o{S{Ez8~25M)Gr1I98YQDP@|7_v}_ z_(sen24!Wrx{wkQB7QflhVrt`>=t1_CgS%Xq$~={a(1&Ah=}+mbnNWSi1>YI zwv3It&>Q31JejynMNoPO)ErZ@9~+w2EfrmNh^n;t!y;`?B^lZZMwke?Hzh z6G({ogJ^9hFF6Y1)^9*2;t#>|J7LKI7dw0lmxw={*ZH?AUFQIoh(7{X>GH$3a8>2} zz)*!q#2_@Oe15rDprCY##GgWEpRMBy zM8z6*Y%qxU(`Zh7-fG)8xz+vc?cc*F`hFA`%g1eArkTDVGt${OjDZO_Ds8{rs8h>17srp0@hC;#BrqTQ_!tO zZKBhh+2-9@XFLcE5q}XA)j@r>nxdZcDMlfDBK{IK@dmYBY~ty!X7CL@5fJg0;drbV zE9V_-UlsFo9Sc+<{t7zdY;SrNAJ4&BeR+TY9ua>P4R}=#-Tmrf7H%>O3K4%TqvI%~ z>Wl7(2`EJTb&Lg_#yHmTYiFp#0?weoBI0l46#9@7-4|Fy{7rZio5z@J+o`_cW;|dL zG1_~PRpHQB@!5ILsnCe{+vvQMY;AUCiz2re443=|^%Icl~m&s+1xQ0}c2@Q4_3?a@YKT}-hry9m@qz@m(Q;d078WM0&`6D{Bo z@tyK8`0RN{Tk=9f5(*Lj5*6k9gpoV?1p*QON}ggH4n0XgD_^xNmdL5VB;sGgx{Rvq zGefS^gG$7|k%!MR^M1l+52I)Bi1@eYD@No0Mv4m=K_ueeIg$VK94;piiTL;MwAqJ> ze2d|(VZb8dKcM5wCntOYR{HAZBg&ixXB?{MEoag1vo|7RK+cqflb7J zhNJC&i>TPFZdw2u5&s2abYD`#TC}{cp=TgG;VuFq{wsR7_wbMle83>$ze!Eti*60y z(vK?~SVa7Hr|>MUxbX=rBL0W;?JSRywF|dw3MLW%Q~FM(@-JTS)mkAE@xP>J8`02B zdhm$&|HQ245P+!&-YqVGLd5@;`t42WG1GZVFo^g+V0%4`+cyM*Nbr{1KC4 zf83f2A;BKfP@=s_<#=}tx0Wr1O?h`otY?*!i6oL8S@TLtW1=ATop|E2K}RGpTF4H6 zV=euOJr04wBNB9^YC+@4j&INkok&Kqk+43YKkv-y5ektUAr4?G>7Gm&I|!3VFs3f* z$yaf`$2#e0ghnKb(7Ssx_)H@_`z+q`Q2pW-Llq*C90?oRj!z9X5C|0o&Ky7@lA|z@ z%?msa#0@9m63Nl%Dbx69P;21)K9`k)y(EIRZ=UDNwH*5-AtE{E2%H;rhdD7L!^(o1 z(NLM*OdWS*!pWpsR(9 z+fao_q#qa*shoJ2N{B@IL5R%Sd`V7qLlq*CerQmnbFy)i5Q+4|s0+6Q>d%aUh;WJY zBUn2q=t{$p%Zy4iMEX&cuPQHhe1uD+A5;0BS(YysA4NmRt4I+Smj?Xl6AUHTM=HAi z{&|&qkld|p>ohT@%a(lYYBAD|Oz-r|m7EkN$MjQ57H8RZaG1LAMwJa|g8hARa2-CX zIf>)Y_}HOdHFTa0NfODi7*lWnHcMX53Tz(2B9at?-1zK{d=>D}MCEy8;m_yK!`RcF z7;qJi_`MwQ`|~ObCZ`9!{(gY*;P-R99~@o@##{JS_`oOVZnk|ScvznrJp6>peO6*W zygj|HJ+Zc3mrtv&#`*WoD!gk6gI~RKypg?4x9m!s?8l?H57oQmR^*afiLSGHCuW%w zjfsto4%TSaqCr>H=juv-z|IB(Xoz4H9Mzh2YgcB4zYs0o!t|(^^9@smFKi-MjX+wI zZJaupx}euwQy-U?WR>`4JGhB}2-X2Z$LrTwA;?7V$V%l@6xG{bHp*mHr*q&|n+~)@uoiP!q_e6w+vu)o zW8hcWyUqbB5uixNLpC}yg=Khj*GtT6o=SYPeOM6?!NmxhAeLT^9;q}gL-2^;67)u+ zF1e;A&ZN%Bevc|db?p6mb5o|$Bivn+K!zIs5t?#t)vf8vR>;fwVod_;9(o1m+ zVrrdiu4Qk178~g16RZ?;B7hHFJc@E6=Q0mN*DYKkcr=E(@ys{nhl3k!)5))i;PRs? z$2d2(Y1eE+Jru1veJ4ez{dZxfU{!B=dY93zMr~jKP}=M499sB9dM%=MJkg5Y946H8 z-%7Rr$A&9RBHe>v2&$D^v7fo3y;F$}e8Y-BBvORFi$s*wg_hjMNMvqxgS!}|h z4OXHup_@$K+SjFTt5ohby0JNp7sOY{*3^dVWHdZxS#;$p5=tU{J3OXSmKJ~o7djzN z49_=>ld^fw=b}eDBnUlt#5t8{`T9}yU^kypx=zLMMX9Lz+2e z3>)Yw=JpybwN6s#L;%w}1yNE9QFznmtPo@(Kn%QObmmG7T#bpL4e5G-jhZEeUlu@km=J>`p%XzDvD~`GTzvu)=ao_+ z4{d2DE#h*@tLpkE8jUE3U^@mi$W(v30lyFkfe3bBA_y{k{<``MI;-xc`~P6bLM4Ko z=r7XCaG0fA*8VgnaEV|S%t>^mPS}k~U=qRA2nX}3vbg_-XBvqJhyY7oM?uWSRMp}} z3=oL`^?J%BW0SqEnZRLWvpt|>*tu?=k&2KA{s-RCOj~iNLK*RQtpY3}_+PXJ=21I$ z8B4}3Mn##MC4))?PeLpxbH>pbIoT*3wbWZ(U_>Gzf+u5Qo_WSBYnA1}jfN>aB6tcK z5|-GR>&-r@*YK?JTz{wG3X=$)3ai@GsgGyVMJ)Rv#+C!6#fNn52tE-!4MveUMzc;+ z-i4eR3L`Tnn14R}O=Ub&#& zoz4eeH(K8&zaxTYEy%)zjrE!4+^(`H`-XcNe)h2C|{i?swRA_0BerEi+pY z5b3M1B_nIR-N`n#zB>bppe||#iAY~PQmL9oKwDC#s=`fkUriwj`Wn29xGG=JVJUE# zLsUfiT13-Xguk&j)*bIOvlXaesoY?@yeNtEbuwDw5Iwr^__kqcH|>UkNMA4GN>;N%L8QCUMb_8naC64Y)G#pzBoPql zn=ovPhZrjSqoE6#NZ*WHH{nD@bEe)JCU$iN0g=81bHEAdEP2b}VxRn$NZ-1kauUM3 zT+f=B+R(uMvu}z(f3_r-*Ak>Ai`PbkDk=-wn7s&yC2vKeuDyKS^3j>u-rU9>t^#X% zjF0i9(1|5)!;uACsyHqa>w)_u-75LB$i>M0?5J`y!fjd2-{g&*sY>nOE86rq7*(9R z^e<;wXDw7By#`gX3U9q;tN7TA$jaz>uIsH~iGWC-D{-vkHAKkZNytR{JQVh#x@>-w z(L~Iq14LI!Fp2a9Ci)qY8KYRC66p)IL+1open+G)3bN*c(XPii zHc!<#)r+V>bG_IUYWd8J9I5s$AK%B&g-WC^vF^diwlupa|(7eZa4_?1=U!r~O6?%kkR0|(OR zWE-1Xnr+8 zEI9W+%1zbF>;qQ zBd4(&phDjs#ffYa`95|+@NyGa#`HQp$R)Py%>A!Yit7Q0hvfT#m7S@*^1d!f3fP)P8R=` zEtYV}LR3WBMAKvokIivRk2>N_%k*v|3mPK5(!?&K6Qu=rJpxoB-DZM_;ZJPCJs}fm z3r{Uk=1N@0QJN)Vc3~4@T(O*DXcRY@xZ4&yms|wi&s$JAGK=oBZmU{@nslPCNgG&r zTA!WR^NSAHiW4G{PGTo;6K+`ZOAh|W5QRoa4~SZIbQHYjn0G)NqXS!UA_$%zWJ~?o zOli}O2427O7>^wn(#J6m)N-v-xjQ_hS(rkXUOqEnH~!0#Vg4c|(#Iny=jY3mF6aiE zNbB%`P##hP9+8frU%BaL+0(8vbRiQdM%hJ=o|>A#MulgU$IT@`Bc$m=9BY+3g7U4v zXgkQwJAxM+Svh*euDQmF-lTsAma6nYOds`j9#+p#1FNTTw=?!JWV>?)m%J2RHJ8GL zPo#)EWQ!;3R%OEdA2W0z6X`=Lm8B4l;yl?->@1i~^-XR2mz6kSJFZIL+7DtPeW)qH z#iok<{oDBzkcsqRCcdMv^f=ss5hD=+kv`ni*(JR>ghexl-1`wekv;+jJc>>7vcZXq zeL^JC^HEw`)NBc_Ow8>R5fJHe#DaWI@k?u(@}@*t5;t6Ggd!u-6_v^1+* z>aJWQjZ2|C=hIw32_ccLL|fTJO1GL_KnyaG!j|H#%rmbz;&_jYEos4 zi7Lmf#>@3{yEe+JXJrrP0%0Uhq>nNqO<8Mle^Pivy213KoaOoI(oFzCC(?}wFwp_C z%@;ZIiaV5wF5MmB0hdTO8Hc)|hsT_5_&qT$T?-`h;$3; z*gh=g&KG7UZ&k5fTnsjm!f7qO1Rs$Z;#hC6qn>by^fGx3CObtV{~PcvXBtwvhGZ1( zf&fPo%9_wc&q$O=A1!_Q5XRs(H9#iP%ke~3C(Eo2&*{B`Uovdr66qCi)#hA~b%M49 zY~Ze{)2)|6NTiR!0A~`hL$tpmxMh9tiS)5p{4iSElw~Q{$DCM1;SmyP zdC!7zNj-QWsd%0jEvzgy?xl2mq%OTzUzgq+QS|Dan6+Y9mq{fYR4-c{ERAZM=|f7S z_c1}4^tSA@#)QnA;7!LH6Q$*G;St0{dSA@>FM!tje!xKvTVN6C{V<6ZMQJ`ffFn#I zJsmD*)Ku8=37iFmyQ#M_&+O0naHA9*kuHN(k8awE8<1sMY7$dD$sHyHn@I0psoZmP z21nq~U7OJUcQx;N7UV?w02G1;d&;ZeNW&L4k)8qfa>6 zh33GbdUj{y)*ng==~?)X1zm-Mty8}E!X0V_n@G=watkhFl2ai}LFf5#!xuJ@!iuB0 z_H4V0li>rdVY{IOFCrDD^x_4TMHoV4GU(CK0>_<|QiGrh*-pG>B_Q(23x+W_5E&Id6KuAq$lVUWe8=E z^Fq^4Nq7^up8;)1{};- zFhbE$DQ6 z=RePs4^6BC!NrW^tBF`RKuyafC}O*^Lu>aOD&2 zX>;O9Jj5Xyjv=mSi6w7B{)f`tYS_XhpOzyyV{mC(qRVV7M-Gp$jhndxDIr7_9moO6zbWdYl=WK7Ora?a5t zlfmQ+@0?q8{=Pj`cg#EA?i=sZIbC%t*I$4A1(xAUaO}r2X9-U*tQ;OSH8#L8d>J*3 zUQX*=Akglj0g~Y>NWh(r1$-ThHNY`^6`u_gnJ?KuV-*OV;cG}^Y@B{9A%D)Zz%iiJ zw0Mhpe8wlUKG0bOs)bSf4Sf9c)ZFwP*5C20J1!pNo~PFdGyn6I^;rWeu4B-^@BH9( zcRW}|6EM1>Op#*1LhIO>iMd#p&4-$rAD_(PmvTxPyfgp6T!o zp3e2i74pNTLwk48P*)a<9CgSQ@*`M2yY$>Un6UlFq6eJg1f&c3RT$iz6rq2^s-Ex? z(1iRgR*2=r=s={K-Xse7)tIk*I=oFi#t>zJ@(OPTBU{MdiX~e`xtq^|tt^$p-**?BJMM?gp(-bZ&!H?^Ks0T>1dlpnvlPvm(KiL#Ih;B7ZQd1ofQ$^)eKVl ziKCJzr!0zLy>=PMwt5+;LjG>`G^~|lK_0&3HQ)*Pd#oJbEfM5Sh7Qt%{JoY; z7f&b#8tahY2|0$66WtfV_QRL3R(_DCbTWnf{c7(p$;_asm%k85wRH8v>2u3)1AXhQyR6(>(D+q2jd1WDGKKszF!#7x zUq(ds&cv3^LzX&Wk2>^hryyU*v0!#BW`m2v$7O7MWqSBhFNZ|Pv2u13-iF!99WdTT z?$&AZO0JM&4ShJ?^F%Co_|FMbMsIIV%ZT1FH$gzrZW7L*X z#BEDZ6!LH;S;&8?2DPOP8&9bDy22);Xj$R*Qa<`*3OU-0>&{d~>P?4uBntT-G&dl4TG)1Ni~>!_|EOZzzGtC> zFsY&SNnV!YZOeAJOk9F;^N|BIUM_Q-r^n>?_D{I8lA zN^h{q=m2%lvB?$kzp40kj7K)SHXDN`6p= zBu~bJHf3c3g)o5sa7F~D-rBt=w!~3CC0!V3st#(_ezO0NC=4V$5ucq2Gdbs|Bnktm z*0}$i@rQh2AcMb)E1s(1Xm`6awU43YSB^-UL#Y!6a<$PN?lqS{rS3|mFo42x9q)eb zJ(rb9>Gl?h!oX2#IXe-=GDt@&V$y_xqt)>!iMAUplt>i@)~MzwtKBLpj1}p^z%kkz zQChbjR$xA|g@I$??poHyPP}$OYY_L<>AwoSbt=69(35Y^Ee`S(Lvlxx&E7>da%~hz=0j&&@b4nZm$LEQ1J{9+Zcb zK4`+gDH_qoIy|xCyUKy^(EA*nWMSY`Et=juIh&Iv44h$Q4oTUM1Kp9!9h+QX;HDa)aLzv+tzvT!0aX~dnU!Ga9x#gYqaZzP ziAfd)ZmywsYz|>f!{I?LS0oApXR5crkPb`TWPAfD+ZpM?z%A6rtJ3J)|JK_%5hcRF zEiJo98PDvj92jIoB~ci-RVBL!#9d?ek&T>mVc^zQ^9Z~Wq;{nren=Ar{>9p4)P`?k zCV0ZYzgqQCGX&?eaG|SxHOa!jZLFD5I2LWu$|ShLz-_g_+qG?1@L4hpk|hkFHk@r@ z7mPdDkw zg@HS$dF(=D9?GJAS+)iNT^P8dn#Tp`20=N>T1uKQa3@K2qZ|W?Evi5h2F_At?QVwy z){$2@9$CV`*_KH3H0V+<0ZkZKr^4d_QnVrI+=^6TV7;0J!d&g&!&gdzZ?ahvTw&nO z$l>TF?-w0Nboxh{FmM+bLq~VPqsF;W<6!+F_^>VH6G$wQ__&;FAH7 z7X>u$H7*wsf3G;HamFAIx^eu2B>*a_-t|i3O!k7_4`eUI=FZ)t8$vd5rGNpSW2PZ> z7%GJ9MVOYnb0wWA+OsZfZKQQ+wx>kMUX0efRZa#$+315w6S9}UBs0D=*`cR{`6Os= z=f4WsOHXPXJBsB%WVxp~A$x<^a4h;i_LGudURZUWXpx4j%{2u=_C~Z5bTary^3Fjt zQQht!SIE%k5V4S3;(Y z;0dsRbtd@1k-E0(sI=7V3e43Ao>JZi!E+VSBGTPQl7;LL+Sm%=&Ng2d4H}GkA|*n0 zB|3hY+AzA~RP2!oO;Mx@*-7rN3$nvh+M)?^ZRAeV87BDHG81c8vfRk^J50=G5@rjWf2 zy`@ZYN4GnTX(>fW-MS-asoEY;A!P4DML6|#+IwBX5wR611VZ+1 z6sZ$C-B_5YJjcluviHCrY-*`fEf{$#WiJy81@rRF^obr{+!9-{SyRNX3E6wmG&aI1 zp>|5J83jxs!*=y(To(;WOtwA}gzWuj?I70#!#}*n5lIuW4`9`565Z|!QakMX6zM|t zLDa5Ececl;XBNtfyn$LKEh>cULvS2~nq?RWWU(Mg$Uck#lY-TJQM5NDS;(%z&{YcY zIM4hH@86=*!i|yKQOFmvk6>tbTHZDcH;Oj2gD7Ml^$EheY_Yu&ZgXYq*5E6x3c(k$ zkD=W%!BQL7$@W36kbT^hP8rS*p)nW=J4o=*wT@1*kbS~sb_7q^P2*a~t~Q>k=!6Cr zYXRU3*(Y6QE6xl-n%YT|D`cPYIzIK})=7a*&ZguF*{7Y3MM}eTdoipKZ92&nvd_3$ z>1y*$)G*vFbDZ**)#x{!SldkmzwWqeQMFkGfCvV`nQuK4Ol2MsJB3fY%k zgXFxcH@SjO(-9EKLiQDx+E%o}Xn9yMf+%EPbz{-i_6$}ub|$!_Hh8>nQlXBkNoet6|-*t6>DHUBiK3dAjfLtN_p6jSM7=ZaNOv*0^NE5Q}BfuD{ zZD-|$w!w>V8p91v@C!EMK_z5Aze;vqJ2i+=-0ywy=Rn$bRTP zxu#oKO9f5He&nVGC&ArycO5VI*dv!X1^GhuV^^V0I~02(LuUn~3fWJpvJv#=AT>Ex zkSb(9W$ZRQLR9X#efujH)ZqkS{RXjAa@MA^UkX^=bnNQsf5uYU^vTh3tCQd0aD!cOLnqkt<}s@^!QiCY)Ve z%nCsr+2{bOkp0??C}Y!jc0RI-x1BwBLiQWCNaXWuK_YU|CrQYD>zgbDt5u`z-M|;J z-}wyAc6rGwNKZyz@`UX7KD{!SKcbNEt(=&RWX>tb7qUNKLx7swg`g>A2;nfrL9YT+ z$o}Z+`vTZ3y9n^XXc}QN)3G(#LiQ*3eY-oeTnGiJDZngwLiT63Sh#&xU6W^EuZUvY@yHT*FMCY~=H^*+{XUb5tS@<`_HuYgtSz^9or~JTeETsv zU|;IfIZmnIlWy#$@S*snDwQ^A!rJ3qDGaT4VaZ;J09jajf-8miRTlLovV^rKy5Ve< zdlzqXTr!2VC%Ku|R4SRElC|uoLRi~!3-{V$R0WVItSwwd>u)q@&q}7ScCAZ_?=p_X zJQCyqOQNv$WH;n)tnsI|V4C0wYj5JRhgc-8K?Nltt0kGj+Ed*6&<#qPy9l{o{{vRx z5DDx%1F-Yq0%)~M>SQ1v5E17MM`h)bV-yGd3yW?b2z!cFv1|S2kovX9;D5PTDbuMN zHgzsTwy^eCzd|dO=g;Cf=$fUstXxzGYj5OsCc6%F5OnYSg)%mLI0NcqNf*|l17Cg4Rpq2{{VbYo^C94og!mOXLYTO4ff& zH)8kGf`T+5M+Ha{d1+7QXru`_MnM1lF<13FIv!agpc*YzVi^*CCI2^1(Pe}SXemS*72#C@!_RCVb7Ak5V=B*MTjf^+T+h7 z-mF2Ykl$3zWIJ5(BYCu2wIB-l&D4f>bi!*1GM14g!8Lbs9#5}_V~mat$rbW5 z^;I{xvL{u@Z=tUm+lMZ5c2M$mu@Xcfzh$3jT_Do5NurS7N~2SBQE=oEM=V^ znw#RCy%1y}{}&a;*nUK_gQr%IMaAtSRmlHUom#TZxNjOrWtJmd$Zw;b2Ge0=%V?hm zo{-;G!_^pE7I6$3q$GzvGKKthR`_#KZyX)+ktpQOXm{0{miXkwv$Wr`wE$T2&)>27y763;+uBhrNYPDD!LL%hrPzPSNeeYhJ z;{@etbpWc6uSd)BvPq63flBLXGKCyH>DZZ`k-oZ)vm?J(ij8&LtB!7*GQ4kTcE3Es z+}U-In8Zv#$nSzL!vYuE8J@w#c6K(*fhy#8g&E1&zPS-{uh2$pWVWONU&!xy(VMy2&X6bM_b^R-zd!1jhV zNr8~x6D_;6OxDzaETSX|`Mu(=5vabhSBZ(reszxL>y)qBI~kJlr-l4KT)=woj>11> zz{9UeXu9$$=QBt)H1hGA>{YPG=$4s zy()>=+jNdWvXBqLB?0bxaDkrgi&JOkNUs(Z1^k*@G+G<>?nP&)oxyDhj~^EDA@p?^ z$KazfxHLb$@xq`$?KU@|&jS@=jN;2p|K7y^Om!h%KiXKtQA&YDw z-+;A^S1#?rX;4IGW;Aexd?Pxp(+y8|mnI`JTXBFY^pUAR1sbf(ZeV})W1KHvQ*&d){L^g;wzKseK~xkQpxtD!>3&ucXP#i=X4 z1!bUwRenhagr5m#q+ zBQj4!sVi4x3;9lKlkm;J(@kNY)A0_eLO#|@u-nCp$nCj^QhwNE3;8Zf5R2LQSaUY3 z3#dYVJ|-hq!kckxzP?4sae@LNzrdPwxfiTgD}*u?LcZJj-xe6JBHyWpZ^;z$3r)p) z!4Z|rY-9@g{cS|r0n5ZvtW<4Z2dzcTzHyIzQb*GVJA%CD%{@6@6+DL5#1XalY8;dMg`P`X|?ZdmX(~-RDoR54V{~zm` zhzdPDy~-$L;~6AE{va#ZF}R8>?29C8MjUX3eB6p?Y>DxAVv~d|PCyp&J(#2C!AIbv zzK5}7;>=znD(2|dp4wPDh}G&vh-^@-*Dz$3^v&n!fSI?82ruR ze*+6HGsHn8lJ*Nm36a zPsryjrMedVCC4RG$QMxfV^|_jz_?I<%|-V!NEh-&G|*iP%Z3}nF^2^kcR>{LCA2ZO zl~da+n`?CcXw?9bkY9v>yWGyz_V**}9GO%hKY$J01TN-c`B~k)n>`c%F60L@#HnYm z1G%QwWFKCeONC{~049fiUG(y+cJJg1YmdTGapOEDFvO(|daDY8EMe`@@M{?z#!6{E z4B)5FB1zyOTEt~vcU$v=B4XveyuNX)E8j3Lz7-Xp>+y@vqbWH4ApCK|d&#mklPDBl zfR)OLh9c)UYCWV0#TPA|q39WtK88f0K!$zhhN6c|G60Y$6koO;I21c&(sG|Xq4)~g zfcv0fgdG}-8zD7plPwfqMWgo0nsXoxE~E;@*Q^Ai2SG1!MAC%f>%ElfPJ;Y?gjAvU zh7B$?M?t!*PNqTbSIX$C@H`Af(Ptu26j2a_iP=L2B|6 zAyX)>MfY{7`Ji#}yYjO8lP?tCv79n48)k>_KCR4=kVK*QKE`?Xahnk3XR*f0E87I=Lh%DjFMd|0Z2*ZvaUE8jF1`B0GV9_X3&jtu zM7WX&OXMoYBu^-QWQo-ul*u)XWTE&mmP;;|WmFM9Of%G-4o%4>hCnEOVy$dTCmMi9 ziw`n|;-{9^`olR{>PQxfpIOhXyBB7C2vni?xwXvNLp}RCaE0O*@Ktt2Bi$;Iz2xIb zl~DY$_odzL0v?{~Mym6+j!v>rTyF(icc6H!T% zD61*CLh*-QHsc3&zLk(D6o0hFS$kqP<;bK8#h-e4#CAG5Y-;IAu2B5hDxhYT)k!3o zLh+a0mqpL|WGW?5DE?}#81X6aQ2R`5E2dTqvQYfZM%-Pqi|RvR75FAhx={Sxilz2Q zO0PG&=VFPL?w^7@V|9B9X^vQ6dyuY8>L~uUD%D76LdB~s!)6w z$&LDi+;ezAHg&OpT%ouI!=v584Zhq4;!9cY~`2aE0PC=-xg(xWxxwW@}*Z zgyOU4-d@93*#nW{9*`(-7kLcG2y?OWF1fC#<`;{M-uBQNYgq~JvYOx_R)AOagvDEI zaSvg=TbgWzh;hF#ryi|wrp0lKVXdmBB6Lc91kiP;478m)3rZg8#TxT&Sh)hDpCe{ z<5O0>$T1f>PWD=HaXxVAX}us2yeY$%;~1Yc_+ImZdT39bKMeac|1jsOVl$>fAmk56 zVR1*#TSQXV4Th>MiiG?TScCKVG>N16*8Oj?h5V5ibvBldd#|dM*@}E2zXX?jpzYw; zpp5>6Hzjemp7vnG5)aQ1><|w+A%7GvoH9V#Kl2M(ZBQlTkLKfAXWu>az|$6o3?Y9E z@;vG?$~&$4=(^I@f}1)ae=HXqQU=Y#4p=}F^2ecqOj4WJ_Z^>XAxHPV)k@_J6tq19 z;fDtPR{jJo%9QD7`>;z`pbGgDvGjoJ(9{wtIrvnoQLu#kNtlbIsQuDQ9i3z$e==Oy zw&2(*a?@CQ337z|DdmpNb=2}{^dNuc-UX_VKNW99SIdF@2FK1D8Jnp7d_e{e%7y%C zI4`aK6q`O)@sYqbGObY}!oB={aXRe@5-pMe$~{gv{Ig5QvZfjS|7W@!fP zjd{2-&Y(rHxJh>M3yqLJ3(u9ib?yI0*Sf8fQ!M1q#%fSMMjsW?(QolOsn88xkHO7! zxa&F2)bN5XeBcaRtV&njcu@L#!$x7m7pp5KaZX zZ;3ZejTsaO#g(Yah)tY%7OkyXZIsM=_h5Ut>cE`%!5A)+!PUHyri)h0r`E}Ej zPP|AJ@)vW2E@cR0x)g5M&C?Y`A%6+_xf3y%Rn0!i)-7NQ`AcEM@Jg&nBdbwc8-OX~ zFSBo}n@D8HCRNB^ZnE=dJ9ynTJVj7-kt*b`!1BSlC(t{=T`k~+>~NuFsX`*;uZ-Sh z)xlv_nMShzg}49EJPKk0*Ux&+_d$i*T`l~!kiQCZG6MjtqBGAoaE1KUJpOl=V1tCT zg(gYJUxU5KXyv*s$|f2f;ToqPU&yhOJ5J+AkeY%9ktO8l&8J9Fxj!F>RiG3IIeOjk z+u*EG^LZLF$P;o@$cgT5ZjH+NO{MB`%-|VfHuT+~l_4#wOz+tna9{b{1w8RF4fi%2 z6Y|9S`Ln*r?2JjYI$1I03nv!L5bpwPMZg+4=f;6!rz^m0mPF z4YynKHw*G7=UYmIY&UAz%geXn1C{QTk||^`NStn}y?Bswk&{cj3cZdRA-g~9c+%t1 z_YNG17VBT~B3;NHfZF#`=TR5rSeqA8h3r2$D!8)st`mXo(6x?Du8{o~hIHu;PPFHu zYhf82$riE)VnywhwS}WA+$0OxfAdI6BEf_CJ`jlp_2_gAbHFfRlf6ph z`SMsauCEU5$riG9uc2anhMNQD!FM~zwoFx|3)x<*oPD;j>T>7WyKvgsT?*YHEFKy} zLNG5U-SPR`&?m>W!j50rJ7R3YnPx*x4m$nZy&kjkON*2qLih*5IP1l-`BNZd7jpq#es6Up zqBD5@vyeUX3^?Ap2EOWAbDdLU50w%N5)4LKQ4EdGj)pUXZe5ZoWDoBR(NMYS4EmO~ zC1eZPBYH!0>0ihjn~{eTye)uqA$w#cQEfNEM4##SWDD6PyO!t9uZI>`}dv z*)S7(QP8RlOd)%8Zy=|^7Nrvo#TK?7WFdPD_9wm)DXbgDWqc!F$R67pQn$h*J!(yV zm1C1DWRL4rhS%*J551QyNzjE1V}n*`xIc@Pb~w@Lnj5)7_JrOj9;=A!9Fa63dt$Fh zacO9>8*8Q7N0BUKPeT9mMe2k#4b_Hp2!!m(I3ko7k7>g_wLCs>V@c5Lw40zz$ez+G zqcM0yFcBPP(W@aL`a%=CP3fXgdU%CsCL*}rl42sBBvmguEb9E4vEW0v~e8CvarCuR7}-`MLjhKP;F3*OdwO zFJ$sOCsG;`Wn=nrRM{?mRZn!o4`@Ija3g)}1lG8`X16%LrM@<-p|5CftB$!<*Lv)A~ybBRWweh-0%ppcIaA1&hFY1Wp~3u zydo+u4vmcSmSmvU*aE0z!06?2ksPwTC$%6S8|^;;H;Z&DWdN1#}_17lz|L>0;y-n4c?17P9}qGOH?d zAsK>CwiO}xLUwO-v8onPHTHC-5nm&a+t>$*klm+W&dM6ZFf$R3%(^>IiICkFJFiOW zyf6bpEbdZAJhByjlOiD->@V(`0}q{mlP+XK{f(`@p3Sxbg^&&RtG6If!BBU0DIAY& z6Ay)ujr3=G`@!X@NT5J#V4w@xhW--A(7IT6K7OqeQ6gj;`%~VvuR9-E%^&j11k#0U zQ-8|mBd+Zd!tX|&!_tUCiI8pX9~^e`**Dz!jJ=FyyAWuEY!uV%hS{Z=N_*M0JQwzC zv*1A>aAt~KlvL-xN<{p9%Pkrw@a`%y$Q!glKhVl1t*mTPEL4uIaYvU6B{@Qh<%tjS zGC0+az7-%-DXBt=m5id%bSIZ`GGKKWzRs&8IJtk4dC0j^efd!Gvqi&A)%|d()tbn!D3F#}XT=80B z^iI8uHlzwE_Q^iPg_j{85uYpddh&(z)n%_=no+YET*T9ddzK7BBZY=%d01k zc3GWXkS(OI#YpANfv%|I7s_An1f&b;rCh@KvSx@k#^nea#nqqiO0b3Wb?7Eux&6Rw zv}5X?IJrWKT-+EQE_DyZ+}aUI6Vm^s8|JpT&`>0QNHT=<4cHel3cg=Q2VbKzeG-NA z|5y$?(F5C)s5bhobi*q;)>y$7(l;VGDEj>n^qtnr_O^s>7uT+iTWxyE!K7nF(iC23`NPv255Im!rPqfWOSmUKiB zh#davxRW9wy}F!-{105zg|)f7=MbbWQy~RH`c@ls21lbqhwNx%3hCQW8!i>7+L6K3 zcUTgI^zG$L@A8R2@8kQUPaW$r4CzAp4jZZlVaWH92PcP?Yivz6R6!@C?<^NcE_sX{ zj8Hsw0C6RPa?(4-R0!$2%2CIuu?58`g1M@D z(hpVCnDOTZ7i-kIc14Adez@GNxi*6J_kO77;ki`PNaco0nUG#nu1TvuQGYx0-cCi0 zkbb1nQkaF&$%rquY;R->=|?LA0bf84Tc$TLktw7ftJE}Jr$sRTNwn^8bhYw=KuAAc z>D3e?W=nTzYF}N)Quu1>gcNh;tuzvqztKGa!|DRusj(`6g(qTqv_aI*xBRX2la;!w z{7y~vYY#=4kbVj-)XK^>xSb#iZan9#UGqaS_)sjQpRTk*cRRgiKCwv;3L*VWWtes9 zu};|h6c2|j_asuY_&yp^&^~)Dk1%HrR(Sy zV#Bk7Qc)nJU#WDRolCQW=s2^ux3ixwwOkzegh8jIPDsC6nZ#pF#MTQS3hCD>O=Rpq zX9maq;q$c$=9IdO?5yvK1NWW1T5}j^acXk(itHR?G>krTf={GCQV%PY> z{>b2TM@J@ANWWE;wP)tSE_CD)M83R%kUUg!DU= z0^SXWxyXcTdt-2g^t+W*OB)033@>2t3Oa(VY@iU*?^PB?RrR`1zSW5+5z_BldpdV% zX0FD7VB-bYLiz(!a-yqITF(PpNUyWLtBr5(%4m>lIY3e+q(8K@Iak!AZLJY(A^nk! zHt4A5kW<}`BVQ<9gHu&kB%Ig(i65D8QVNCQwJ0gu z2iN3W`w)_a;!=!;?s$9w8$?SzR$5x;P$TeiQ?{qO(ANZPTY8yjSP)&FH;x|yk?!mf zE3$R0pH?(Kv&LN$!OJ#gU<&Eatur}Q)Hq^B4zPvv7nWX4SP}a&FopD&NN<#%#sfS| z_)#;?Rp&WA*+P0fjkaZw@Ys=Mdbx-wzAF;#pH`3hWI4od3+b_VH_~^J&&d5ztby3LlzIUWTT9SpIhg+{6Qi8jT!FTUH!V3cf5&#d?Ed<%}=Fv z!*bZ+6jg*=A^n}Tk5ab-OY6v{{q>GdwvhhbcE1RMJk(uWjBJK%c?GhN{=q(T)i7;3 z#vxxw|7g=G51$xbdnXR;B0EqUsG$(jKbhe;daP`=e(;3!&-R(r#BVpsXPsmr{fpIz zCcfYhOzYuL_+%aAoUGco`s8E zjh_?P-j!sE`fVSg=a?OC?9PkR4^~d2jp+%3UWFqzc*5R_^8CgNrDEPAf!mg=~!#Up#=K zZljYZWXD+hSS^5}`6`1hWXJZ>i#{4AGcJijb|Y&X^#K&kPZ(q&JI;jl0S1rU($Ps4 zvK!-A!r4e-mVbrTAWg`Qx3myDuO>d1orr@hWG7f#StYEUdC!9_WG7ms*M_yz4vbtO zJIN}c<{c`(LLgDduw3^iuMBG!YhW7mNfolf);=}i>2zvCrjV_*9LA%!nR_>gLUytx zRa5+0hma{`H{o$otd?bOCPT9Kt3?Jk>QnQOX3JkiY zd12w_h3r)Oobq0NxR%hwOs0^XW-T`wNqEK)NfWZut!9VoBJN)AWuOY#8J1Ek;;!9r z08PklYSkJKpQ=L@5{2w$*0HwM#?I94iDV(WxfNhd>`c`fnL>7^eO4?6re3ZjO~`Ix zpB0a0sqzl=-p?_~6SCXzrj2Xrp}E1_-oO&F+hU)?ol*ZRZd;fevbIc(Xe^khBXP@s>kvGJwn!pvZe?ybC+nhBC+FSs#ko`Lr^p21C|IVST z6EVJ69fL1qw}HK+zvjsNT_L-Jb&d^Fp*>ZXcS#en zJ6ajmhJ#k9Wpah=P8Hq4zRj?m1x;4pMXr#YWy|jJS((~IZ8-#ikezKq#*S|EP{!ss zFokTLB{_yi-=}MnwDAT4AzN?X$$2#%_f_2mTp_!&4U0UFIuIWV?(XO$3)x+4^|o3h zKJ)VgU7*iuj)&&^pPAPL-gt|6_9fO^Kp&R zAy1$$Sw=_IYIE0$u5qBU&Lo4Rgyu7xVuLi*5Z8P{ygElH4t^kJ|` zSd!%u%4V4$&-TR-3F*Vp_w5I2os`T71Gn&;usx+QGBvqXoo8x3+dy~LrfCSq;*Vih4k@g<)$l(1jo4W?h6X? z$hVw^3L$+0T1>w>c9Ng=$LnHr?4JwF9P`lPCOmB+%h6rw;#pIps! zZ8J9qW6*{4DHxT_`c$kJ$gXW^=1>BrkUkAdf2!&RjVn5iN}`ZH9le1f zeNIg!YFR_Rz=^Ha*4}uVX!!f~O|-Qy&G7lMh)aqcm{<0JDK>beX6HB}KS#`)=eXY| zPe`%9TN5`N@AmA<4lu>0u0{6X>_wgF8n0jJz!g$#>rN_lb92*e_=Sa2kxtG?71A>~ z5HPv9Copao8WjxRH{6g{iB`Y(=2o{(Z^RyLoZQnR%)9quG--~?Alu`#;|(;6PfLr#m^ zX9p1(JrY7ht9tT<6dSX$y5OU*7@4xJb41dF6#J~Q^oF~!2i5#SnJgj2HtU2kgWYLd z)eT#>6?tVpmST@pCKGj<(tGG+2`P401(O-+;_fru1S1Q2JH)7L#Zv67%3d)NIYP6P zD%-CVo2s=;X~SfvyhMlvcvx39I)W{v*in^9#kQpi>`0Q3Vk=d?&sUzw#Ezw9P$pAI zv5z{r%%Hmw*q)5$&^(er7gFq_T!Qp?i5)811XI~@rPy(mZFjXJ#j9N!Ev)(df+?i;sHk|57>qA^^NdU(#k^2Aih#i)K>cG{_Rt`}p3r36Ci()Eoxe4hm!;y|2%uzd7WNFT&!y$_Ypp(m~&QHh07F zw^b5ILOSF>3(m)3*_*F5SVB7N2W}`XideK17=Sz>9r5Gamd^C@jz~f_5`ZYA8~nG# z`n2uCK@!r9J{1V)*%OqQo|_|4NH_Tgr~}e^6_`T0*;kRj=7FJfB66B+b1UdVI_ihU zt-P1x!;l7v+MW+=AwAcB-!@o`ca4WuI~^^ND5U3k5g$Ark1T3*xJROpZt-HORJKG3R5w<_O=?0#VZub?2w~-eXyR(sMzTR=k6w)2Oo$riY zthH4WSVDR~pSQ8`$(T>OnQ6ci(w#nUjPw;9D0D7DrjU;LB?eUylhgAYku)LQrOfSv zb4sYOeLr|YdcH3LzRVCbI2r%R64DENQ+46BH+B)eAgm-ax`8dESj3mBrugF^Hur!g zq!%iC)8paUgw+sOLVABGU~UaQ$VLdTg!BQbpE?7rd7OeNr2naOVnJxFFMuVa|E15L z!*z@>Yu|T7(uDMZlJJ&VC|Tnrpb6=JOM*!^QZG;R63~S7fBdKH>UP6%KsD?Q=DZKCkWO-Taf-0CFLE@JgtUzz-|<-l*beYv#XxEcB+!L)FIEChswGmG zNwZ{uETmItul}pzdss6PfGMQ=P-RsWR_&4WnvPGlkfMNnMi*2W!55l^$kztN>4P!L z_#~sLnb8eIA>H2-MF&eWxq>L9(^wDtltyQ#VAc;ZsN;T8g>=ShZvo4Ly4tgr0=kgS z!hq#dgml9}JXOMAxk0*CgAfR5w^xJgb75|6s0LF==g_Eql5ohJgM(9$n%#~ES4ba% z!omGhysYlkflSA*qzdUg8cZphMx3!a<>A{pKG_1#DAL(IeTOz$JvZJi7XH5Dq%uM- zVp-y8Z7jQS8*?UJ9(JJQM?C&WdJIN7h8y11-8K~Zuh|9 zP*V`p2lTUT9hgFT9BK-xvChS9f3rL&a+`_371A4H0*4OExS{39-8cIr@Pzbu^v<3J zhrN-zLyB8XvXGwOGKs`+;eIX}dDYJ3z!lOHU6DZNEC#`++36XWLV6M^%ViUL-9Vz# za?*sfg^|EXHsU>?(6B7eauS8Kuyk;_HAu%Uw}U36Ypoz4i5K7%zDzGf<*@TGdl}-LVAjo1LDO-ZtSaXktn36S}mbp#ReubU4tp4r@8(Sebmm3 zXdnsc>2R2uZ7*_zU!Bc$bl-S~nE3n7lU$?{oKVfW*evww4_883J0{=hiIeZ55JnMx z5ZhlYydy_U=QuKnLh?PFjr24;)vAfzhpEN;{DJg_aoIl%jtw~qCC=e24!^f9(w^8&XK`+)gO@)yB0%s!o z(0CX2jqmSsF4P8{3?cbtg6CyWj6Q?>QwnR^ul>ev^a}_X@mu&$O-$1>vD!5i?u!2` zB)?<$ytB@-WP(qUs(6_+n08(cf01bfb)BvLzQ&d0mpx{3eTH{Zd!NHdu(QKu)`FCD zT$uc>qW?X*(n@_@QTWYJ0*#RTAzBo&a`2yp3Sj3TVz_L0ge-sf_{HL^W%9t_>_lOBMvv=34R#YK;DWxvLuZ;Ut2*u;*Pob(ff1zDtA(j!5e4%(eQXf8R zy{kqRZe)g)`ya_d@dR|t;j`{m6^_)!*}K}Qs1b@M;_;{9v+iEim*<(t!$g}A8H0AD z%`K%u@g#cAoOKWPGq?ylS)Q9=xQ(4S+}6n`5{f66g*WJapmfBFo{(SVSL@^p#Z%}S zb=Hv6x>Bz>VAq`*N`&I6n4^c!8g}y0*}2Fo1ajpfS16uVww4j6D=$m$?%-~2X!NoN zd!Z1DrE4uv;9b0 zI?to0m`6!X5!$c|wNN~ZA9HqZ*hR%JvIPW-SC)uf%iY*?JF+f5a*5MWAr#MJ%Rl=r zR*&d1wNHu3NJEiOJfE%i?7Q~;K>V_;O#qMx#S1t9ob3mI;UyT~XLgJ)^ZnMK@NLwB zM&N`Lne5bFlD~?GIpA;ihKtNUF|_*OxY*Fs78|jkwYlzGJl4UNUxFOUE01)c*hKS* z##N5WflN~lsY0@3xq3J@m?+w17~C#w?`LNQjV z{Zvq_F&(-0Iwv8(J^ekv%{v1=r9c_dvZ&SzC?0&pJ_{eZ9TD>_HZa2b6jDeZ}RyHe$Vwq$m=K|15vNubbQt zpqEcZdz)e{P$U#MtU7J%?7kmxo8#aERh5g9|Ds>}SOM~P725DRtZ zmrgGGwN7xB{mRK#fio?n?>mnBftnx(azv#>C>~TcK;LtAwr6m=Vbve8krqOsz=0Qf zfjUrovDb!!GL**`H9~=NubYjn^UElgJOW~(A4D6V?y^%R6gUFA$=Eu-ej47lG`l|< zjpDFh`I9dclV$Sj-1?z(Unm#wm?&e5ZyCxc6N)wmpmlx?wW@l-X{Zp2y`|dso>E=6 zbR6+&D1>5)O=z8;Crfo16q3VtQ2e$4gh(j%u?em76D3cPSbRfE5idj;`6v;JPFeJR z{e-GV(4*J_+9nO~h2p^+H`b~9mk~jNJS&VT$wINeEHd9~%SYF0TD^=pR0zd%nPopg zGE7Qm0!Kt)%5zRZzEI3?uw3UmylW%n>$h=3@Hze$pc0B%S}oT3K3@*{o2I+CSLIrM zkPEFOsS}DW*JkT{w`aVxn!S(CZ7C26d=^@(?VJ##s!sher=db99>Rsux?XROI-~0Z zg>0diXS(ZsKX*xTjt>i74v|y{1$xdIW9xkvcWOUMgg)Ii&H3)eA1M|&)~)yb947o5 z+VUN_#HCH4P%N?F*ZZEn%2vxh0Ro}8hzs%czN4e3g8M>u?YW#d7)GzL&3JQMcVK1VV9fnR?%fmW7Aj3S|UC_CMH-`$;cr+$wrmn^D;;$dam^Id+mJ*p19s1S;WHyXDXTkku4@7*D{ z%8XgZY@r6FP&}f{gYWph?eGnwum%R5h6ow(J4tDr`AsxVQ6#PJ4yE)#;C=$}6qSkbc-TY@EJvyO9 z+_!v}M!X=UE{3H=>0`ZjlG)RF>=#s=ULPe@pxr29lF}p1>Cqy>1!WBmi_9eD@`tB& zx;ON^ z)U}S4e51!sz6l2fvTLSCo#K!uB;WFyjmS~t;6Pgr@`U8u<@xR6zHN9;Ybxdipl=~l zNUlZKVD5Inf*0B+>|hx*fldSibEWrjwWM^br|~Wk@%P2)vtEQ^4;%UW2 zrjUFMBfLw?so>)nx!|d?Bwa|pUP*8oo6(^4*^~mNz?OJ4f?Vvy`m8T>m!{*!yG6y{ z_oTSZ;+8YztE)j0QYD}3sglpL>`U8PDMC~R?v(?r{JO{&k}tqf7OUnmdx1iBP_hIz zmjO&v(=+{{E3Ncj-);N;|d^c4RpC!s({(3)>r6}vSBC)`NK(#bbfLh?x% zQT#8I52c`Tv7DKW`0>hvj}jsIl+_a=o?!|ainl16Qot9IPji_D=iT;vd!8$SDi>BB4@c{cBICrsYb`+?+Yq*v<0KJq|M2SrHUin1^1Bj_E=wMl6y zNxqQ0jT;+g)lDz8Vw;>G5R$iZH`e!^L55X8vxV1wtDQKo$}#s*W#( z@mF(oJW8IBV0qz6r_}JN-neCTjZ=^>B$(^gx(2pNs=7@^wvb?2Srh#(9p;lEa0-d6 zcXjWhQJFCs??0+hly~BIDZ}M0C_5Ptl4mIejN8w)&az=?I&6qaj65NE4!#0$G&*>4 zv^`mE_ts6o5R&J@6>3CmSGCdMPj0Nq3nfMNUc}vk#5La~CwY>Ey_Brj*@#D;XCUU&Eu$0k=uUV*^}OZ)Z|qRRJIy7t(~ z^F&7JJRkc*IBk1+FSo%L>Zq6r2+1qa!FuYNYPWR37Lr#Xn~0H#g;MZp>}igaJYQsF z^93h0j>Gft*i%JT54z9D9~F{U!x0;bXbYAX5lKSw8g#JH9rcOKIVO2R@>;YGS`kNQ zcX#KfC+pg;&1B#U$)%{^E!_j{dFNgZb8JxNwh{wZNM47Pn5(DSwm$m;D>R{7#a_)mxC`PZ@}_o$9((#Q&W?8(7H2?^9>DJ~!7m_Ps$5o;xjVFEN5~rd@NDjv@OW5f90x>aUyf7^GAtQas*Ab=kV(Mn9C*@$j!_OiI8BK&$|ykdAFdi86a&<;kO3- z4K66th53o8}*e*-@`21G2pv|_kueCTAHuG9nrw0&t;zmAqY zhvgSMsmc>>>}V0Xf}J>g7S$#@2!!Mz+-D+l7@T7JS+iz>CnWP2QhS=3*pNDXAX`Wl zFj!QSs|AO&wF@*tvWQ;R)7M0Yyt|{5EF?>P31dZoHQ8k8#1Yh?eAlQEl8bPpSV_2k zMPVjvD1_tyruCkB1YWP5seOwhaNV7N5iQ8Uk#VP_PDl=-mMg!3r(pOVQz%xL914VF z8G}qkjBQBFl4(0{(1qmUzP#h63fy%TIWFRGH_`*tq^T2>=Qv2IPGRji=FA}NUEEyjSq>2zaPGDh(dy? z;v^@kyM3>FAfyTj%r7Sn^P+Fv#_Y%?j!UMHoCB3RzpFVj(VcEGh2)+n#1TYBi(i+~ zX*Ov>axaV^m4TY^p6GlR7Nqq{D1_uc(0<)&VD-#i=M>}%$-OaIgjzhZTYf;$kZrjH zosit8Odk*4qvg0}7xnYDMLzgKa$l@w7`Ald_(bdwU+!w;3CSRq2Gnp7Jvcc&hn@~O z=H<}c&E{5Ugk%V3X*KEDh6fxW8AgRNUI~}FVU?I|7&IXn!CH0m;^G`n9l}Dq-tov1 zk_{M?NBcT+pfh_gxI(fKYt_-wiO3-`yl1<#aFtP@Ae4X*>&c)F+f!X~)7n04W z=25p5fn^QGrTM7Vj=#Vcl2J?@qcEmU@#M*wJcG}(K@wykITvM*s6A6y!bhstx&vrJ zavsfPv)JD*?2DPM%%B3EkZi%CV`Zt}u2qo7E7XS|5R$FPBgL%juzi@h0W=}mhOuu8 z+(POyX~&Kr3dweS7#?fgSMwUEErY=mk{$Rkf7KNC7kr&Z7NIt|K_Dde!>|+)uM3Lh z(6vrOg^=t-Q}b#ywn)M@p@S|YV`yrDG?MJCoq~KJ*@cc|cJU2}{~E5ibv2t@Avqsa zvbDRk(8fM7x+ndZqmn2j7f4iBCw^s1qLA#y9L85&xhAi<6e=00LUJM23w^SU^WB;4 zrE5yq>a3MRB_vq(o{C?LyW|hvx5WBh2+1`8YJb^xG;wc#Ni!8JADRUNFIobsG-&}FtmJLJDfEX zHFOn^ zLNbXN!5PpL_$0FLS>xy=3rQPY&I#k=t?fWS6q3E%RF-a~W8-@f(yn~VJmT+UZdnir z$rPqo-tr6w5}W%$5t4nRFX5hV&_1mEKoOD-x^+p%oV9Wa3Vy*xE~td$!8lBfE;Mur zlMEr*5B3G^iS^-c|K4%P5Rz%M`rU0BKM-OJ7MN~$pswIrPRgW-Rpiw?6rK_etExgCYD^V2xWtL{AYAa3KsV&d;L1DG}1^Aog{ zxPWLu`Pka`c0FD4Z{rX~)f7vn(EJ>hu=O|8RB@yU&Cf%^`&~PiVmHKeUO<}A`~vbe>aX#| z1IgUhamf^#U!*rm$ACWIKzl`>^4R)Me2%W+1 zj16*R^P%Hp(uL+%P;K6>@7{b0t6LU&a)stsY1MB}x65@x*p{#Ui(`@}G{1(4rYx7B zL}b$@MQDB<<+!>tfZx=UDKx)<4pXYId%K7ZctK*asgWu)zljdhCyRv!)bvTV(EJt( zzfXzPOSp$tXa&-R=C`pz?URlz&F{rpG03uFIa47tujN$7F^jHTlTlwT*?Y(pn%}{K z#OdOPu-3#t6q?^v`Cw}Ve}nRJZJ5nhI6m1z^Lwh0+E^f3`;#g(zmM)(<}!Zt_&!G@ zO=$iAgZQ3KccyRlw6OsHDm1Sidvbx%CcL zJ$l22T%mbAnv;@?b{fBmCQ)eqs*)H?aIqL)ipWc@(EN3!M56u7Iyaa?^EZ_e*^C8N zIL29xgDNzCTgl|POS4mv6|!|qaE0dYDw%{;AapU*5`;{liPh}sD#xu$3wUX8l=ASFc?Zl1CaDcXM1gg-)gkqnE0dIVEHY``0M*QqUar3X0+TgpF!Kfu08JR-! zZUUA33JLzh z%|GQbvF^OUHa*heZ_>m$R5`|0rO|F>rvQ)$yuq1IaBbSRTX}^0_vUrtp$>kSH;yUO z2tG-nF!*CalG4aNGq<=L*J!LHPe?K}N7$peQm&i$6_J`;A;FsTgl(NYIBAZD+qDZL ze(_3SGJu^L!b|aXO7+|AW()pZNRC?5SX(gZW0NZ+Yq6B- z*Nx81VOEH&h|J*x8X-9u4X2+2(_81~C|wC8bwGRVAL3WY*QP6-ls z*8A|Dpdx@$A|$6`YTDZ#UtF5+o0=@6_;(>W?RI|uiSos@;YE6(?7|(-Fr$8(Ra9DC zf!1_NIaIOTb*8jt4aB-sK!H%8RTUL+Jk_flon)avt8&X7rplQH|4$fR%|fSC8exH^ zIhtLY7%NS&K(lg245o>zzG3P3MGToj zf!5@#5m1dVwgmPAfzsl8RN7vFmSmOUc5%C5jtD+hyvh@d+GJ566lhqz zJY%=ijy(#ZGcU4*;6Q*6lSZB>)5#&pLh&z^I@#Ku8n4;n>&YGRh2mdjxkCq~7T0de z(hcfG<1Q6KahuAQZbg8{aAvUT1XU5IrsC+ql9n?h3&rg!!W~O9bNeH6(V=S{ zon)cF>5q+G(TC}*v4bfT|6Wmz#q1aIqa{-)unx1q$8YeX!>lz|zi{IZ6nChU=-9sb zrEo^jL{F+v+_5qglr1%Eb6S{?D-?ICCKun~A97?;h2pGAa^(&`GJ5!tid>;Md!;TM zIb>fZS18t1`v0!+>FM}!jvSy!7mD?jFN_ZxHdcWu6qr7(4_|;j5tgSc38V_eT`C#f zjRihdOVi<0DbE4Yh2pN2vf<_+a-J{eByxq~ZaBu)XybH4-PxsuxZ}5uGpG`{RnN=d z9o3DUm`P=-N={$fI1U3vxvCFF2rU9zf7UPKi~fQFkpl4#YV3eAk&-U7{)!lL6{(hG zbwA;URLX?b-_WBfKM}Q>9q~gq$wKSzsD24c>sj!%>Q1Bzt$$R$wv=s%h3>Gg1zq4$ z%L-})PaMPzm}Wna4u1=nvQAWHS51&ip@5yr65P0S@x{vzfSoq@OdG#J7YeNOtaRdL z=*tc}GO0oVYgJ46tf|E#mpC@LLIH!7<#gxxd^=ttx)DygP{4k5b0z6w$>J@vtxFU8 zYKr%Ir=(6OV4twBjoW$ES4b5KSSNb9rg?aDwiB@ze8ve#7Ydji)>^J9-P#E^P3mrB z3k9qWmRCM(6|Pw16GW;|z}jFnGd9zWy}vF;3UY-4riN3L(F?ls-Pvv@+KS{&Oo33q z)L_jvs?sGJGKB(GhU4IP5I0-Ng@7!9TfH^d5-wq%)W4Nf+~}mTs7}r}v2p9(eFV6E zVGzd?vu-20qtnLmdC*BT@w9%dL{XkULCsRP1PFm**q@xB> zh1RdJV74zT{n_Bv8H*iZbqj^i`VH#V)Yi;`3~OmfzR>zDCVJCao2qG&+QU;Nw0_5+ zr>Y(M1^5ugo?`ODC`Cf+_l?Gx_5;<{S(6Lv7!V4rKcMjKN8*XAXOb(l{>YfK%02$W zH_w`+bwWs)(E1a)hy8@F_8PsmXw(Q?*~E@Z%nzp0|C>KKjz;i#4BwOG@+@iv)y^}i z?9UVIx8bv2uE=QBkM;(;qf^F)cNrvTR(iCCL?OXG`@~XIcetXjBU4Du zWFDPkCq_r)GS=-bcXX141Y7JIq1#12O5+1bLW1QPobTuA&SA`U=$CQSCAVTHwQ^uT ztBGnM7ZECi1bgd~dg|?w5m56PsX~Hn^$C>KmE)mDJ1U7ng57kPmKSXeBN3Q~W@Y1@ zU^jh}{?d;c%}e<2Wt9mUMV?F53#E`V`P5(Kxwbv4Cn0f zc6$5=EC&z?%_AsaI5pz_#s!`B0awy-xpsP#2+gZdz#F$;;O=q7b(%WK6`F71QhTYx z*y?eWE>MsuG_Q7z&s}Gz(fOW8uF!ldM{Hi`iEFIEf+sZJhLUx~QI_p?Yr#570MuRlRKY)CkRYU_x_xHr*RY7-XUOPD|K@ecCvW^lS9@b}DLw=DV$cQ(uL-GFeJHD%f(5Ja?J6`7MkxxXRRo=jKfVg z+JkiPN`=sTA15x1E7*#Sp&Lx>i)+o_6MUihespx)$(iltp?n4;u9m|K6+-LVFgvVJyNk^6-_RKr zbwcY}SnYx(?at@+-#Jp z;U)N;h4x0>vm#Syei%)ws;WuRvJ1Y@yoPHFW)sDNa8dOa5_AKN3ZeNClzVs2gR6_z zBmQ)O|0Xm)I?z~y@(#^yvPiYQEG`<|SFlsqgkfpU-RcZ`=Q)l{qR{#(gy64M%bLSm^e=MBW^EJM3AJuigcm%b==p#fHC<(>!SvDa)j15(7bnJ2ecP^^TnEPJM?Tv zCt2XgJAep3`)2!GJ*++}Yxw5JlEw+UN@`gW!G}oH`l5av<@Tkr4EX!26`zdOqzkOK zfeGvu`XBqa>I_e)>_i$LKeaEg*^by%CG+e(s1(p^mr-t|QG29Q#;%A(YSTqKl7;5Q z=uV}u*2&JVRLB&X55?x7JRXASw%m~fg?M<4Bal*W^j4U9aYi821vQUg6boS%st#H#y~Dm0&rfu?^K8#GvJ3*ZXPryw~-z?{XtA%3i(RS2m<^Qk)b zEpv*iimTe5{HRNn(0m%KnG@w6UmXg*6a zjBQ9*Lb==q#iD_iWTE*SOppIeUBj0antvbDl*K3zm)>=_yF zhmtysgZimh5SuIfu9iP5G@r-Ov(#;vjz_(;p&C@7`FxZ4NVUNS*&qn2(0l=oyL?v* z{Rr&4z!I8R*&j9AUOdp9@4L=mtG;K5i86TR0PGnyq$BtMrmVUyY4#~3AT(cu*Df|r z!&PZ?QXv|A_>kJ4d5IHKDl}iLQOS#gva#HQDKzm*r<7wEP9pfZbxB(D@=5atnlIHD zx^oHk81y`>5yL=`X08HVXuhn`xRdjv-qrQyB=>Fx2DA+e9Go!yv}=uvR~+kpiN7N> zv2qI{wJ9KQ^O>R{-_KgpICXGg8Nmg4+`6<-+Z(UCy;Je0h2|^J3QGga*eu@qLxhT; zq!qe=RH6AwOjl(uELV`L*wZb`PzcRe!Fr4ygOZ6oKB1K-X+rbW7`A)1)*zEMAc7|} zU&DDA?snWrMy5lvSb`@sU&~ftnz|j6H6YN1=A{_!%hp#Pa!iYVa)svWpxfESwKh(F zr71c1yhDD!MXo?obZF+(P}BIhc=-E?qy3ec)$D|3-`v$xHqS>t^rrFn=2YpCDKsxo zS1L7ig(&AG(uL-3ZirnJZ&+mGY0A-oWTAN>M!7vMC~9@2w?PX3E;R3-=t(I&Lwg{e zhzb8oGW4|v;=|liO%&EzicvEJ=|c0rF%iM6ydsLN-9Nm)h>$(t=*9_dO%>0YF7fa; zh35aDM>^5Dc(!X58=h^bp%9u6!sC%nU7m*SA6nkRNF%egRvW84D23)YET5&-hBmT6 zUe?Fw#=pTn92%jy2V)+h5YJRA&=!99N1-{9A{H5l@!yuD^*IU9!#evMAyn-e0Uz9(WV8os zeYmG>U4s_s%*2D`BWH1`Oc|sLEto6TIw>6S@fKawPNud-w$Q@%TS_eYYf42Y*<=eX z?2b=Z&8n?tL88#YP*yn6M!0&$^QnR*S!jL2gnarYF4U5aWTExRo^WZtW)zYKKFLDs zQ&@qxtn#VuF~lf|r>eP!0-^P37>S)2)<9RCyT-9ItI2>)EvOS(u(A27DPv#6Q@_kl zTVxBZ&!TD`fFPiqnk-*=Ge;#+U=KSQrrq`g_Hfm9Zu9Y^sA%Wy48BO7Y#Y9K4t0Xu zdVf#f`T%;O^fj`7I6A39>w`FAldRlb54hHwd&(BhKHZJjo$Wb<--#>bu1~hm!dYm6%fa0P zTkz&!O})!HLbA}h0wZcE+=hEf@dR~=hg_kBb~xkhzzzhVsWZ~c#6gMBx(dY$SD5LcrHTD@z1Zd) zkcHM;P@`_n=}s?pYR&~@J0M$VUG1mf_B`%L!6jG)&|t+!$PaLRalkn0JFLhJ38-Hp@BG|1GC@G>M)BedRu+I5MpUb_m|N`cUNr$1zB zmv4-l-K-}2-*-Bygx0$(dDk{Btf?vm1f@V|y&H|o<$Vkf9L$Z*4%ICvk6hwJlnAZ& z_~SJ^sJGCrujRwP@mlbO)_b{*Er+Gu*z25MlWPrAqzkS0p_-B4=5Eb!VP2>p3LM3c zfmw4NcFCy~ce0Q9f1JGud|YMqKRnN6U)s{LgqaR7p$#P9B(pEb($Z3BDQnBVlsj|p zv}uzjWGS?$EQ*4nEFvPZ3Pi*me`OIwKtNPP=mZrZX)8%U!qSo^pd$Rg=UMK3?#!e! z?|VLQ?@i~N^PFcp=RD7O7JstJ%;9_hI(TRDlW z3n43Dt0)ErLbV@v5;yEoRlvYkz}irWr*zTgOE*l*?a}2;!z&c@}_$Y`1 z1(nlMDxYu_u!}LO#@tcKd3gcxJ3CL|p_QJ$3tB1d)2+^`K>O8tgloY*~e~=nKdSSTBThj-ab7q*{+mxC+=B(9x|4 z+bI-hN*=fh*d@r^b_T3YcL$yVb}1aI0?jje?j%w>^nIE$@B8y~9B)PS#OEa|E{jw? z4x6VEK>f~#l62{?#TiGjmQM&eof_y0*m1C;E-7y8Zmn>%gYxAFTLD`DP08gfYvpPm z9HA&+$3y#YbjNzBS=Tap=V&F+C}1bh6d4s`)SrUN)b_xU)#FI@^t1&I1DqyFg7zJ6yGEvcP!c)Lb zBU1svc>Www%f$S@D+C4MD`2OiDT~!zZi6nPR5Kuit$@K=@@r9es*~mMkuM2+!dAeR zVlEF`m2fGkXHcoi!}n)}iT6u8;#RIMdpm)0r@oJI$=DoBY>Lxmm(Y38#cP zoU_BHpy`n0$*$#4n@!n~E+spPLVscnv_4W*snG8V*wIXejOEO5S#xlxj#e~KrzrhB zaSq4o?gG}`Al9rWqlWvwzqkaxm+96zicE{cM)~2?g0?I{MbAF((o^DHiqp{wJSGBrV|NyA9G2GU8oUvwbPuspk;XpRpHxP18GkRzi}}OPwwVBkYn0bED?_;63J*Rm5D{N(P%Ukhqzi|BVGP6PRfeX2;eVP zJPgt*7RhKjl1(QPsZ=5oi=+}>2IE^^7JivA8xl$|X5WQH35r1`nT@29nRGOojAqlR zSUl-vG2#2$uQ;L6aG>JgGa3$ZStO#VSS*r`r_+gKGMkQOv$XJ1%f>|Z$r}ZWMt9c8 zXvD110aA)YHkHUk)6rNW8B0Z@**I;G*EnqZ*0Xa2htQ8)AwsALm5)>eS;%Ixkw`q1 zNyk$V$jf5=Z4*xj(zbIQ7QVLgG#0T`BAra9GTCem2s6Q2xf3~v+%(S_S_%|7U9k0H(U>Q5gF5u2;>M2 z^!!W$G_##=YwhgTwZ@Z2Nr%LzIX}L|d-!&1Znt|(3&RU7mqX^aWWrh)%y-UCzMY!M zG1l@oWX2@sMe8)=sQkVb`D$)o+qPCecx~u`i1>N>tr88d z>EAPayXM875?yn-$eMbd4$Zp{DzT%x73)k|vE%mA_O|AAt(}_WBfF*q_nA+*smw&} z@7mnScMo||`N}$plyi}N`2&0b7@THV+|6|FeKU@5<<~xV$aC*XGD{=3cS2e#a7s0n zj_8H|(Hw!~-|Qm$|9Oj#MO>`$n|BWIUyb@{4wg~B7xRTos4=rp$l7MsibSG`Xx@%k zsaPRr#R^t5Pl{Dqp79&s5J~`q8k6bR02kHL+Oo?%LPN6w)i%*G2a1L-6p7eY&aw;H zLbbHU?mHf83Sb1GbtM?V!+pL`I+8TA*|-&rNhVP*;WQYWgxrH^?IWuV{vQ|}rZ#wcb$z*?xiJ#IUk$lt( z*`ncNjuNgYE4mfIic}Hlh?R?3$#gtZEni!Gb7j5;k8#psgL5dYgqzmLizkc07%RHU zn-w2KMI>Q*Y%86KM6&kwD}ChhYZ4+~4P0%=??Zefa3&Ftm=V-Qjx$N53WZ!MnTn;Y zcs`$nB(mjwC6YNiSFIwn zroJy{Mh~NYKM0(P#G{#XArp^RE8#6qoU~9#GI)T)gbl(FhYArhSxA!2&YC>eg=oBx z&Bs%AB9XN%+AJb-z47Tk{Y)_NyHk41-%7boySX0DJ%5crD~8;(iuI_bOe7YM#xqtb zn$7dHko{~SV^J{_q7luF9KHM>QNg5tmdm6cBV{nb{9zUbHdd{ghI92-2`0sQmr3zp z5}0aJw&5*92Mr6fK{Rg(Y%sv9DQRbIJ61ypzZpnNCPFjOA8c?Y1WrW?`D7%SHB|?n zR3nZ3=zqWCOpIVNf78PVwtz`CVn(g3ovuNWp@ZJy#5{G$h7H1S8_}Gb>rEra%i25; z14xB-;2DIb-H|cBEwDDoG>6m89kpZ24&C0glE7 z<4#&^Fu|2%Hd)B$6Y*5lZnbTj@M}P*F-cOsG!K6CoZb6GT1C;&=nqyL;rX&NupjYk zzM38w`_?hvgG0mopUNnC`|Ctq)V?+{d zg+z9wkhINoJejZBM=zLICYfw?(<**QX=x&D{7v)`f#!#kEP?sYM_TDfK4&NFXcnEL zitc&hU#4VozTyE@dI6=SnTYk@z6j=hBx z(Cd_zrrpOrSvQ0KYy@3(Xarl4RxFaUELaS)daeF#%hi&}DmSfQ8>N+TJL^PZXhNVh zz{i(hG#rVvqLD-@7s(_e@oJ`TB7OqO3jjjNg1(QUv@~@%_FM#2NN7RV8XLhmyuKnf z#%3lt5WK!7?S*5%^WPxG<&0UM*hsNcay6%kKl3-OehuEJ!|*cW~&T8t4C4h=Cff>4dn-&P@KCSYx= zmT>fVQHw^y5lRr0FsjUmX}V|qott~b&uv0*{zuy~Sjbo;naCIHOf4Se6{71JK{cEp zfg2%kGEzueY4~~79hv8|!n=bThAV+x4tZy?5Z)@4Qa)-EwQ~x zeEm-n?Jo)oh6E$HBLq%GlKG?^FF==8sm(1P?)F{D#C1`O zAasL~i29t-#@HXGzc0~FR7pYj#Sl0f$;IL^xI~dEX)XN6l|THBU=sS9%Y@o?WHya5}A&-r;DL+T(Il?u97oz!DkwPwMrSjDaXKeU5*nUCC z-{Kqoqmf9ug)>t4fiN^s_zoH?o`S-OMq-wkiNdL>*8E0t8`0DNthicZ(t*N>VtP5B zf&EBSWpd1Kj+RV7D1jBx6pe&7*d2dvPZ$+|QGb*~qVJ<2F!jwG=CTV_hkfG@yfiME z%+Z*jz)-^JtQ|EmbycNFEE+%Pm~O$OA>=Y?s3(Cn?{3?k(^T{8anXXks7*9K%d}&r zS=B?{w#QediL`>f8WU(KBcYk0vCHqQ6KFHXT(p_nkXD+eF6aP3p%4Ma z%xxMI6qu3FwfgCM!)Ye8(C=Kd(6dM@k21{CIKEo9S~Px&@o&ilwo-yYUCc;m3VH0g zi|!R@pw0w0<+X z<|Xkf>vw%C*1sE?VJebOr^#){q)wGNmo;rdae>g0i1oww;qHK)Oh;=d!js>e;KWAg zRfmZYf^-Ks9G@ z*(nP+F)OxfOrRT(uT&xz&*W;Dnt5<027mxQ9V6Ko!3YVgRfIODEOZbjsh`TbS3Voh zn;2YIY4VH4Z~W%XJO!hEs!R#V&`h_H)Ev+8rKbs}-3YmZT_Z$;T{Du1#M6l=hSpWA z*0|emgdODqQ{5R!-SKoL5C{I_h{Oi|EAoY?V;)|UOlwjvZ_C41pxXjKs4@A3($ZAa z<|mijCeSv#;i7FAfLn@ySSn{H^EJ%yuneQkbP@EW-ps8oG`4py3 zt2c=gN1hZ+LPeKJ2+aekG?&M0tyzN)=sJ>a8|Fa*BdMuvXF8r0dz`dbv6l)*(}LrF z`}6)nq~~_&#MO~RG=fnSP6SR9{Eu4n+oRJC5oraZZd$<@rKRcZ@muc|-Z+mysI=mNDHwg=>ABi1}FFF zn?@uPt>w_nmXXp7&1la(GdUXThu1HG_3wncBt^lKT(q*-Hv^o^8eK}K)7NK`uOKh8m8{R_~oqLD%* znnG--`h@%28}gi(4Z`wDV1sC}XcC1qLZ(;%Qq|A7@ep(&08*DM=o?jLq%<=$^2J3M zPZ1i;8%bcrZZrw#ftZ=foXeMf> zVpU7{s*R%UvVJj!CqAtIFiJ~P{)qcR(bG?ZFsTyQpqSOp*l8h($Xx* zu5nROI^e}?(5sb9vjgNL^Hu0Z5cfj}a!a?vdk;lY!^&!|r^M&PL{cho~ zez*-rTAOtkyW{(EkQH>*yAeD9stJ>ic?&ulQ-akR^S$%;;{qG?P)8DsdURMY$rPf9 zS!b)ZoU!lR^{8MHgmFl^EE^WKUuerWU`XK1(Q`&IGWzp=3IAm&{%Od zLeo_4h#T;^OGCRGWr%s}Og5Q|nFx*WiGsQO`Mn&@79>0tAR<%ieQCC4My!3 z-+e+b84zum{$K+ik-(bX9=rSJH*+*27~*ew7(wU`G_Z6I#y(R+E4}0U|KY?S)R-I$ zP8m&?jvO(3AO9JR%0Xkr(~%Y;1F2XJOJu8uo-#KqluS@Z5_mf?GMX;k6gW(HP0X*M z`P+~d$}pEjj0(=a;`Mm^5etlkaV0H1$55eP|g+W5pf#n;xvVBMK*ni3(a1+ttcGm|9BSDhY_p;+kUivD?9xsJT0T)82+Y* z(J%)J0aGFcGZRV1R0EsbSl{s@QNl>wVZsJJB!M*zHa7C@%lXenP!tmVVFWKi;UEx= zdERuahH%74+uoANMf^<aKnxKXXqOTjTM(5tvqJeB85x}t7NJv=J~J7&R2A81uH_q7+Fmp zjGX!QpiFCtmex|#c{XC@Q<+=}s{yN}b;@nukxazkg#KVf7&+b{(!yqqWHOCqacY6fz(xa zYhM>={YUXPN9(5u92Q+7^kbSSEU&8)`uO?{k4q*;YfPZb(EDQ1xS5UCFz5H%>qITG zK{5K}k_^K37+EcPgouvRDg%Fa(;9e<&@{(q)Sac6>!S4^i%Q25y$HtP*&6b7{k5{E z_q#zR)<2KZ(gv&>pE~bho(A)~I+giJr($jfLH{Jyc~*5s+;x5zxdQv4Qw>vdd`6aJ zg*9fyr7l|W45WnxrFJS2t3~;odeskvz{TYn6DT4BJ2Dtv7&5U%W!?Wpk#P&m`@topgM0+a){=5ISiYp?A?X5J|{Iay2Y|I^o50-u%5_QooDKq#mxi zVQPwQWZ5b6`OmC)hJ(h6XYzp^+@c(+z3SS#@zxa>;R1}%+YS>W^e+e;i4+o<3?>As z`}k+Ry_plUV!>g;sI<}iV$n<{Qm~atpLAY9n=RhoVPe$7FELEbLBr}F;RLece;qVd z{De2ZJPcnVj|Nz+3)^RbF93uZlmAg#x_;ZX?fU|aW(_5nk-Fl684lPc!_)?LBdbP4*`XP@XvMQo zI2b5k*b8-BeMv;?dy0vzF+t55rsi8|EBwVYE8#M~g~G8h_Y8xUtU(Vvb)GQRAav96 zBV9~jXHCr0VlG{l@Z{F&>EmSc8{ETXLQ_G8sp-;@;@8m80j&6ti&p#6;*wZ(umh*WR zEqEjZ#%j4tA(7A55SIMyUk(##1&`F2!2F?vQzjx*39D)wcA~6CNcaWB$p~#gS!%5h zt4g52`7h7&xA^`&Z+)?RG#kSffGXW(;elWM_#;kigv9ViFhR0LPIH0bdNgu0M#fMA z8~6uLE0e)Cmm2m+x#Q1)Hxv(e4Fi;xW`(dzAj^L?LU1S~7@x76Mz*pl~aVuF><=A z=x!=H&`qoVAXG#YOI352Q?4PRQyBTFNUQ%KjY$Xmu#TZ>Q+L;z z{KaKL-Py=#`glB6xR?KIgnqA~y@1-pED24M)G*V8q19!Q$x9j&q>FPv8B*lF-H5wD z?`#K)70=;GWw4chg%M z6S!zbUegvMt?%u}e@0#$G* H&Qbb$Gmsu;>3z50VA)C@VC6ZL5yvsxlM1Mnv>vatCE- z<$NwE8*Jil!31{M$m_1{EsK{3wEh!awEo4s<=CkVM$|O~tZ&ZsNhXUmCMQu^nzq>T z`V#Ro8=UT<4bDJX@D%e%&5Wy#K6$?WxJcMEHaJ6LvNxrr`vvZj)fNZMsE;5m3XW%! zv7}u!cr^aQGv{z(5Nb@Kl$O@h$1i_K>4W!Nw9xxVE01*`rfC&yHT^O9P{bVy!URd+ zQ*uULQ(zN^|3WANqXA+lw1ybcDnxQviHjwW)niOe!$0SwMng>Tz;tMw@}-Tsp)BDl z0F2NJE?Ni|dBXHzy;q?oW%(qc+=9uA8WVIPre*8lJsy)if=-!G&;=LQur#koi{`nN zZv^*-M0Aox92-8X?i|O0-MhE)6hNp_g3*FUVerlDN`KGqyO{sXisw0Ktav`u1_omB z7;S2(uD_2xUlbuLUZgQWUNI2EMvipKs$t3MNpA~{YlQyfFfl?XPQ%jF#>OZ9bvpl< z`8CDtC&i3iTX7r&Kr^(}A~uh_A#^G8Ys!)~M#4Z^>1aNKqf@F5b-%i9sgR`K?R=~s zeaNshH*Wm2`yS_g$&!nni{%B|6(X+v%%Y-IQ4NFs& z$PxEe_`L*m4W@D<>Lz;@i?ZxwEkTnk`>7nQrLfA!}=9>8Rae-lU*q-EqF5S22;^jBpCGv zA}s_R6PZL3r*2ivzT1NjR6G!5IEd2H2AC5E?YBXJq((vO=zSwktQ0@ba@}d)tSAJ=W`!Ikv=Do%s=rRS;UvObE-6&`d%0wh^j6iD;GZgfP(U9R? zGlxC2SkYD8%(U!sykwH$Z@~nb(I{wYVC+e(Jmo(H;R;AFf)qo=oR)1`SZq^u!cU7s zYXS$6u2ImOA?(5sUN##%Rwac>pGRoA3-ZG=MLikyhdXFSJ*|O3oF*PkDv z{xd6zRzQES;=hmf6D0NV9$%+DfZO9EpbO zy7?WI&4rFOoB`=!b*E5?K5X-GVCs%LAYq&|$M3j8!g3=~-_Um?&eXjeWZzV{=Tn;7 z&8}5o-Q10P$y|zw<#V3pn8r*Rk}VhC!EA^Pqm(th7)XsPlLqU#K#JtjE>5shHBTA7KXAnywfCktH>Feh` zY3cu$qj0nhpG?jedrgGmWg9*Lvhe%(0(nn0X}ij_YAT|dCX?7%DZq+UV^g>|tavpf z&g#>7_E}=w#EKtt6ne1Yzb9urkvRvWD}jZl{HEu73IhOn2Ji;RVhBV?L(N^0=XrR zw-^fv@gGm$dHB zMlGfC9w=0)oKah;&>X8GITID!+||+1qvzz}{e>7)U1@w%*$$QLM&FQwEE)#g7`R|?K8SK+N%!Sy(|9u{5Qyv$9MOEh-by%KRM_40!RgQ;-NW@to} z(z-&Rwoo%wY28p$i+dLos-TwQ>{^@^+=J^rT%pjOp)3H#%(wVke8aQay}8>g;PhJD z0|a!{xQ5hWtJrhyz*K`(IjdFr81NYS1=ZADq1hf4-_xEJl1=Jei~>*P0;<5%3B<9m z;+9xV&L@u=lj7O(O|Jrj2I#hXdT{lL<~sBZ-Hxgwm@*;W{QILiUr6sV-VB10so7s!oZYzk; z_rc%;k_VYzVGn#$J}s#~;!$22<0rO%O%T^nBN0v1SNB_=uhAnwH?GLVF8St5>>Tds zUelVlD=_ODdYJqaK;2{F&A)$LlAHFJ-E6huM0j+;wWS5x_m0&iXj{JI@@RocnXL=N zPg{mxj(g)TmHv52(e@3=V{v@b?{^tZho9>yTES?gxyG!Jp@;WuI#JL*7<73&h{>*l z%Y|w0z=bEcCB3|mA<9n#IVG=P`VW2HW-mnPF}qiFS7PE64AqWmDs|}6p8RxLcC*>p z+T7F8(bipBxa)8GVXH`f<#9?3pKs-YlCIO$ZHpmKX_1ZwP7`Exf6_$wb4g1h@=As9 z)<#J@;HF(SSVG*5JL>Z*N(DznpcN5N;VXFXKpeHMS459(wm0Y3Oj3NC1Rb>{1ua+L zil#CS6@-7s+9YU*LP5)wIC)>E1|jb6KqDwCc}-8Cb1RtgzmnX8K`Sb-wA|lW6%Zsu zpsJpRtsYOKTx=~>r~?H=cwmXxxcq5V&W3_1Py3?J3&IvtF~G&&xssBB*z_5a_;weA8<=Sr?%XJ`H@<*9I9JqF%RG&`+8llxz@ZxaNwP7rT;&RU3JgoBObT3v}JmOp%mq`(9*UD!=9 zduvHgv)c<$GVRcsP!?KxPFrv35tQ_7!8p`Yz{;R%ghSW=P7qW4~uL_nl^A*g$m6D6?01uJCAvost;OD6CSi#Pus zAtEfjj>gi-M6xWU;r(A0$bKLy@V`Y_O5&Ohh!-iN8G7y%fm!#sqJVTyP(sOgCX>KY zmkL>WAA>RiDr5zIG_$>;xRxXl!Bs8k@|5nEnt`fQ!SuU15mqK5SIG(~eYm?oCGHCR z80#S=tOLfWwV4Xl^ifO_$w49g<$sP7WpVFHB9cs%i}%hlK~yJ42=tezrZje)W2JPZ zg4p(df{3^)@IOx};mn>?G7SOCQyM|9B_Qq!>i$YZ8SINqB+)m@i9VFQh`1~8|DNg= z=S{|wbPG$#c&~4`p;=&38&KeXn-a<;zU>kjLH63g>u+(m_Q}&3jBZIL^!B4iPJbLRMW?DJVA&G{C^}Ow7qyT zo`{u;H}tc)0+pJZg6a35@M7@{HhW;bNO?I7Z4{VPGYabdMhRhsA(jYN>VZQOG}Hi) zL<;2zTU^5e*;GD)>_=EAYQVDJ5u$8m`Bw zkf(n~B@skY;D>r5qBPdEp?8#}H1yFAB$3o(^p_vbEr_zXhX=PZRUmp+ibbkKLEUeN z2rD$BaU8QC93-6!=F45sEw=iB{+sZ^}_G)s2F>zjGp75CnA@uh8^9S|v~^ z9}4_0!M};oRS^~X($M=SN(x{p@c)G;gF8TQGgAc{GdxquMww9Hf0u}GEecM|!1*O* zY&TETSG8zqG8$vBXuLPE2r3shpR!2doc zf|-q`(iQ4x=)Y%5BII3JGe1n|v{(kqW>V>NS)aumaahv)6YpP$@4&YyA)HVc#}y=% z>UFEE8vo0JfS!~Ph!XK^9J;@}9EKZK3S`QL0{;gf!s5PIA`!*4S7il0^fB5c0dZI0 zhlMAi6jm^0Drx?)?+H{wRNyC9fQaCzV3A*WN*`VziO3a@;D@~d5pF1pXDXCl-_XZb z3QR&&;3xk9%P6sl0Gm`Q^uH~NNV741vN5G z(Qr^&W-4X{{w+ilBL$JDWX*;HhYD0eRN&uAMCeOUciAu6~+9~>IrL7S2LP7tWXT~#hk3W5mU15Ti- z(2Rx;`Gp{&d?@gb6HyFnsIzJKqGhEwv~`Un(!}#~@nUd{l8JPsRz7i#Bm$xW{{T-3 z*KR?9#VQzpMya|;B$X%sM=(#=XoXIQUR5q#pX^T4?^DTO%!zWChT9hD%E@fGh8Xo< zB5A*Kmkb)?0-b3#{CuzW2 zfqxUxV7)I2uF~jY;#q-7cnbWRkrpo0?rpcN9D&JvjGpB7Y8H2-A^4C_9t zJ66wIVdC!a)yo%|T@{kEWO5g2$+hDS_HJ{HZ7rn5DisohYt|wYBz?z{? zvx+c~F5EBA7Q)p%B89}O?$I56d!N#2uU@*g(>|fnq~g}yueeU&w~)?LZS>2S5kIXL z4W`g)TSQEiF&TreO9rH36oapzDyvM0UU8G8yHumQ8i7>gE!^6Un4K1K9J_p*(8b0~ z(v$*>nG-X7J4L*ABm+~7Uhu0zM6?zEesfT8RdZta%LsmnP-9-MB6yw$%&Zr4+s@9-AkdH!cti9|{IBG(n@%3` za}~q*J->j#0T}i5l9av=HhjCS?8ddc6sFU$AALw-H)z<0_1ze?ER>UiS%)JwfeUOM0!q(+#60q_v2nkXj&ssdWl#NuvIkACTwd-2~`|4fC0wf5*8Riqj}>21Ll$RONN zGC`Btu2dS?0U8-Ji6?SN?E_&?Eq|`aeIpMI2~pLN!SvTGtjpfMfkC`-lb~x^E8g^M zS?BXL=!TS5F(7Q0!xh_TqFM}2lVB)+spKHKlK5klLAJ+pv2@=M0)ZT+j7SQ+ro4sV zzDgt7oNSIXqut@|rAR7_srtCrYv>!wOL>V-0eKLf1p;D~0oKN>Yi(;YOFDhuP~WS9 zk}jWCFddr7Q|#rdFZ4`5AeADKDVTmcf@dfuTCSn@#~}y#4uuNW@y?P33Eq_vp0s4g zoDSzm!E~_l_+_3o5iT`WLr4WG_keQ-v@*gIY9#8Cu=LQEzatZabL~Kzfos5V6fAe; z9p6u(PN9K~gee%$@0V}0&DCL!PfviOG)&^-nc~&)IH-8*8OgW^2^qL2_-~O_Z%Km`KOPfR(oN1 z(1W0P>pHvZB&?YCG^ovTR;o^mAJzSy`R3@Im&9sCW9(XOwh04s`jX=oW2t@{h5)Ov zQJ}SB^+GohzC6{f8LYxoiM$}Bq9;W)c9rGjk;uufa9KD-9nR9&=hV{|H0SKLg4w>T z4eLugI-|?9(<=Ig{`DWhohCRG)ZzY=y%wCx_Z74?Q{8lz5KTy;K}7=5Hliw5ckq=Z z0wukKkOs`iChDG&crPiOu2&oKpGdCe04 zqwRufW(5PLrv%-DWI>tyhIRAkDrX5(sml51G(l1K7xAWN-OIEjp{sW_4VT^aId<9o zEgZ?1`7Z~VUnS$onOJP(mfV&dAA6mnv)ACAOJJ|zj_BnqU{&6s^Hd*;vE6m=6RUS!PE&ehn>(QbBoOJx$3FdF-<9qmL4_K#R)V z0lt=7;T7o0K^L@{43=2a<;uK%VB7yV8(+sc;!V$vb89H5?+W|}19h<(# zEtOmu)81kAw%Mgk;n&v*%DP{RH$7=tgQp=mE3!(dd!;4uwYk*3_8qHF67{{a>>@!j zYZ2bE1XQ1hIR#sEYL$i4As z3TnFDat*30HHM7$auN(e6)6U!vtUSR&1@LsOj>qXZr{f5d40Adq_-iz55?G2ZUTTW zpe5E>Ft7Z?h!xvfM{Aq=zkiAIwX!gHJwZ3BFoBh z_kJuBC-tBbNB7^YfId}{5UPY)2VmA5{^E~WbA7&jIrh92y{lI(?l3KwBCm*jZ(Rc? zmSEPgcrgCyn>8O6Dc@ywuLyV9ogH2JFlqeSkG{;YjL@e78&4zj*$%$hf`X=keQ9V8@GD<|7is7 zaK5e8Ufok7(KoLU)STF1v@@m(F!I&?=#lry>HubC#G8L-TYP(~+*1LNkJr3>9ZFSM zh|$x;%!RMzn=W0;w=mDF(Z$N>)_?o?_XU1I^V_-TO{FYQP|q~|8K{%5z*SOw5= z1|G6%JI>M*lSCdN*Z=6S(>a;1<4EzQX9xPaD`X;ELCBxohEB?H&lGR|U6NkBEOT$% z`qd8w{^lRJber$h(u>9_6z0Z9r?*PF`|;jQe*fG{S1#wq-rWdbJ4wyd2+iihs2jkKCDQ52 z>tW>nzrkJOxIsJ>U86U>@_HCqzuzsAj%=@@YxdHW*TcwTcZvGrCmi{9mpmd~y7GD$ zdH%~cNZdp4R&=m|dj87mVdTYokCSv{{uEuzOIKbGBgL_)k`86z(8YDSO8s{9Tl-ur z=_sFy$FP^KydFlcfBJn%H=xnI>!mBNhtV6Ct&wzZX>=1_y7GD$z3F=4kFer<8Xe4> zTb_wUAg}>NeAD{p*ujQOI4_ciNlA*K+Xt~TY&xwFzBcjH-D)L^)L~Bcu?Y^ z>>awam#(}XCR&byjRf#h+a0>kd+EySVIp$+T1iLkQ^^Tlx}4?pFcH1vW=Tioqv+;( z>B{S2B7XH&Nk{Ee(Jk=OmDj^W@^ivg8bQ))qzfspZE!*g?QPPb67}FZArsN&1399v zj+pb=@86@59}w(mGGUz2r;%{h;4TD^ma~4P3e9^a{4_qcjd&s zaGpegcO{)N-)z+Oj+kKa_?RCQC1O^*=}8jq(a}kB!X@iiCQ@C?1zyWNc$4V>wEPjC ze3#wb(c6``I}sn!Q+O*x4ID7*Xz}LX#~^r13s^ju2Yn|ZK$IV zI;*3r&7zOvJ31&^V!6r2N8fv#qci`piVO#@%-h4a)BJ@eg|&d>#z(hO@u5ikCuo=p z4d0Hm>se>%APRLNh)!m{J=aha2`es27R;o(zQ8#$KYUT&-SQj5tGzHd!g)w}8Xc7p z^{$eLr{gVh&jO23O%U8Gcb!CB$lvr}ejGtoF1JDyYF8khv^}}6<{X*-Y`pK5->?ze zm%CFUF2P&LeIn#8Eyhu33IJ+@zs2`_Y*3^_dAe7ag&uD?ZvMkvXiNaMVVJ+g_Xs9D zCoOm~NR-4YKP-7GZw}MEGvx5-jaDULr0wpG@EgJTsk*dYO&hydWqT^lSZd&*4%#+@@B-?5dwYxsx>g4g4*>4XwbUqoz@$RTs)Na^H6mU@%w!2|n zyjQZZ>(_lzFbhuMZ+aL(_;-!CsN9Ul(6FL;JB#|~ji!-Eh11wgki+R}xW>Mu0!Cgq@N=96EB*j) zRh##L8TMh|Hm#Jsc5>{8Bki1-G4m6=MFkkt zjvKKvAsYk7a59}kZAJ^3u$f8Z!?>6tpDN%U@OYs_vMsNDy}+5V!M*TS-Dw6fOJ}0V zTp|}XV`-F`ok7#c=Ck1xKZ?1K&SQCRiDZvF{)S{m{*r7OgYam;%ubj|s}PPQ(pi*Q zE{#T;jD=$bYz#!X6;ip9+8jUc6;T03=n2l09!BUl#0;lN<3`pbT9--8V$m=zBFluK zEa-Nql-b1LD>Iyl(GYQ&(NX4&@tkF$%|@xr;>e~2X3>Nl&g1OiL=@+(;^cd8 zHb?Vce1|h(#WB29ZH^POdAY5PQ0K+$!ESP||H zm}RhGDuxobs5W!plf%ZQa6XL|W8vC^cp>9uHhOK#lOmh__0}R2)~-B%t||=u@OMaLrvF>Mffz%|tF@ z6$)NvW4~|v2WMskT^qoyWMd+qFbgU0!I{IPX`viV%4W>MUfX;uirsM~Wj226ZABqj zKead61Nx67$?PZ;eJlgjnklQ#oHh%nfOI|`Hc>;zI;wAXTqq^okn{!F)L(oUURg7jt+MP`?1h1vsM~vJBsZMwr!^h zF)y>xs~7xSFe}c%oBR#1EK-?a9~_RNhUUk0DsT^=SHn2x9*UPNL(-0>a`Do3cIT>B zIRhhzSsSO!g2XHxE##@)!*4;ESt&R!QQHnDqUZs!e2xwQ_DVMX!&zSz%<7x?n;u5} zVZ%F!upeV?<&8k%y8vk6juQv zo2WZ9TJ&~Yf{KYd)JF~;8t%?0=>elxcE2teK<_&hFq@c}dD=i9MGvsiov59eDD*H) zGF_sW&7}(^ns%i1hL~VhoXg+zV8vs>EDddu#x5-sdk)8%Matk3F%8Lke`+NA!oakL7U zI%G2iPYqem+tD065v!!pjy4r^gdJCta=W=G+ z&gPRPl8y9@T_q&*Ux>G?O}cck(Zm%EQMm7L72{~MRskk64_64f2v=#Q(zueTRMVaz zPhsJPm$OA?Lr)Pi3{Y^2NGzOBk+*Hx7$O!-8aqXC?{MD2y5f?KKEC9wYdH(fz+v_@ zXJ#dF?MMbjm{bt1=S6K6;^Be`+g!jNKQmckoyH&d)pdedy{m$ZdQw49v?whMn{u#u z@M%rBR3?mP9@l?a1sr#Qt$E&dHZu2Oln;Ov7x1_E=Cx@hOn3pXZE%&*1M(=d1k7;~ z2EC9=#L&M=#sL%Qp1*P?M#Ir~i;iwIklM!B20PYcFv7Ts4B5nJ%*>`S5W_7BXnr`i zu}~t}*pFUs` ziHn9xUH7pUMnwB!#cRM!sBKpK1~J1?J{WG9@EkFqi^J~;<30zBvTY0ZquRC!ljp5~ ziCG_9#xrL$kQXHM8J|gLv{Dg__w(r4n65&Zp>JYiK|BoSAZ20?Fcut?bo7aMz4U?x z;d(0NI0&b?(Mn@d1$QEcp>dE++=mFg7{_o2{m4QiL4B4m+iJWtlS{@1sRzhxQZs49 zjnO$9hj>5*!F`NJQ59x^%ZPzW+QR+8sS?+HB6`T7lG$#WWP1=ZGX;$U*FA^JO=)fl zrVjo`7(47OoKg_Y;2JP*nT>z-Ez}&q2+`nGNQN6$h*>^o;(B(B12Bw(uMtIULYIZH znc2+bbGQk>E*aI0Tz3p~7l0Ml;;HQB<-`m+D-ELt{YqnWGnzvMppjs!Hxv-6z{2qf zp6)b~eT~MM#0(8p0xK@$%uJk!gdTu?1NR_`F|iqg3d&h|Gl~O~Y&sOi!)&7ElbbjT zqameu;R=N`nAvEwbZQ31a`3U^m|=k%ieUjn#13a%zmtrV^nlS@rhUYju;K@Jt48}F zF-w}*w2k>Q8o{9gz!3)y*qGUaPZcvUZDqdvDvGDD$DU`29VY!fpfRvt5ZN!XIO4YoPl!a&|a9z6_`g=MDhwqH+` z%)memDvC=uvwSQY#{e^Jk*|@b;Z6b_6ulr5fs2ZfRY{qRzh>Pom<^!NRRz#xSdDfr z4r2@b8o?D|$R>0y=HlRCL9%$JfKn?R36I}!^#z=nQNKIhQfts%PmLG^!lKhcop>IS zk@m^K$c1A#_9_oY17m^`6*PL;1D_L;^}BP9tRGo#ETEiG0kFDO7L67YU1(ykcQ}D9 zf_?ExxZWjR(D*I4%#f1NTS5)*U97Q?&f*#`%s;2mLt&jvnu?&A5*uSWm_S&U5@w^v-j@>$ihn0I z^7|je4EK6t(j_0peO)lZ)JriJhap)emCL}O7BDSeBH63sf|(J_f|1Y~Mv!KyaOrOx z#gYia8wQI4=4mnO4n1U{okdB~QfF`Duh$(Ur178ON=8Al#zNl2WC8RU^aY01xN8l{ zC_>}16z2ADD;=g#ypnBv`u0Z2Oh`z7Fn^wy*|>YE02Y{#fDuMu0__aLYK)n1!&o6x zD04$MK0E(y$*e$ZD|b*v`-DqQ&iCQ0dMKlMBT%zxs}zCF5{5!%Lo?Rknt%JqDk|M2dg zITG9OCf-s`3Xkp1@grXJiS#8>&-+Od^2sQvUn}$y?jz^S622fS9>GyLdhzodJ+eJv zhKMgGVH-veIqSl1y~$-c8JJ2IWS?VCE((&Dz^C{3?6$kRQHThN=U2HUGm+egb_77= z3r{j}^!+s2ETZW8deV)Ly|PmNdK!NV%+t^CHPsX^TiMNPP}T?nW@-e9A*fu$#)@c~ zO*I9~yxb5mLq7$uLGs;Xk!;9;`^R31CIE8gQ#2a#q6ag#(4&V8wgDO4aGT;8s)U%*ze2voCUi z_zm%DEJK&lHPsY5^KwJ*OiqCePIG0WONN_j3Z8knjXm-NaiM-n7EQL0!C9PJ4bd|% zH-yi~Qo|^Os4oaGLXQ%+TEb^uZit_uhXdFk^?unG$eC!WDSqbVh5*_pf?JWM-Bg`o z4AN9n0L{y7dY=-LGyQfsOyjOOKrINGp~r$3Fi>xn&#y;cIT?M zIR_&+(~->x9st>D3a5FwA)a=V;6^bt3HQhjuYG{cZyq)Y*tNCH7_@W)qcf!81+JH z(jPp;)>Knit%TdgBUF2v2R=f-8THVdO*O^Uyxb62qaKCwANbhe#s*+xn`#QIdAT97 zhF%2V7vniIgqw+5Es-@Zx8VzgB1e0pa+97z5grb>)eu_qazkwGSS}l*dUUwKMl{tF zTk~>5aIMI>@qiltB5jEY!={>oYhG@Mu3ar;>n9ze`YF7KrkbK_UTz4lT`9N~;Vq~s zuOh~UO*MtrO1M3Pa zuK*r(YpN;I=H-S^o0ux(^{BWNNr%)FYV&eKtnF6L!)U0-TiS(&25_q>*5>7gVA~ST zjTLF`!I0nA5w}``ZC-AOwta(hFd7>17W$3PKQz@8Z7bmxua`a&ZMst0k}d;pswv#& z<%W1$lgQm5^#z$zYAsDQ#oN5x5O5c)a&AUw8{R@T zBlHn*t0m&*<%W>kCeDo&FU4Ex-r|>tTP-2C5^mYosJxIzYOxYnk?g63z+%;yo0l7c zZufE?MuX5L^al^XHPsY!^Ku)#WiRLp04u&veB}35$W~L-&C6|~`Hinj4p$OS`Tb?$ zR!i8;%MEci@^?wLpVL!*|B`d7A?{Yf?WoUPA~~SsC9q_tc8II;#N!Ot%TbRSFhsSjQZX17UgEt??K#ZiM@Hb zA^3Krkgb1D{-y_`KwMKz!8b2AMBhYCjr!@thjTROIM$|`qHkVq2)_+*4s4KS3!pmy zY!JR&Q%&JFFE_;BV2O!C@o)5$->(t3THG3vNb`T8PjgMiAq|rkVn9UT%oM zNp0yr)0K_3do|S*fh*zm^zB)ZJHN@_^kDuRajPW+SHkVt`Tv&OY~mxomve44#NfQ# z5QKY5a3~5H=?@;)+OzV`!M=AJ&gTR^Ivzto%k||u2Z7lkF|Sv6*!Xxu*$zAn@p~HL zZIkZ6>-*sIYbEDCyoF2QYk6?H8`%0jI7YNsU(5X<5*`;PD%m**appDht- zkVfIz2Z+`H^~kaA#8XLx!m79ru!g3t!K#OD10BzgI z(IT}Z_5)%oh*`4w5&3&VGP@mbl{Sj7EQa0p?!m&o`dYrDQbopYF)GKT`#zX+oaFpn zyhS(nwV;DkiW+O!-`B8Ft&_xoH$FOm(I`R7EqJK9zYTR%5(n;kca4l1wA{rB_@m`+ zhB>EN%FC;7P+(%z?rXUlj8uW$kKNPaETV4jB7yZkZ+}^&N(ba9=zu1k(F=mrI5}RN zj_OTjqGjXp0=WfQ@~M*Cwksn2FH^CD8FZ-153}|+`h{A&?TdD6{ zjxHYOG2ae2bkT$Nj{IF3MgAAg`P`+u$6kfy=ML_|^l8)HsF7QdM1FbY*FC<7zYT8gC8B%i~5E?kgeS>wJo9h{~hp6I~GSHp2QD`L^I-9 z6s`J%XOC!GAej39t(b%6KR(|~aS<+#VY_s#b{3mMKb?BT!kap;yIazOMuGpoM9*(* zos^!pu7x+PYyPUF2aN*%Cphh5KF(}gaXfl<7eD+>$<5PUv?*{{M$!RSo;u!a@Ck1p`OLAB!T(gU$oQwwC<}4=+p%ppjG+zG zC1fZs-UtP%BJ@M0Pdm|GdxE(dioi`u$U3qlyNgT;cuL6zLg+!0)yW!x9}qA844|FX zX%(^TSX$E4?Z_wUl2YrQ0homS z^;GBgLOEhRks=n!o{~HH21zV!2>lg+UiT!6qX0_;UNnB%eJ@B#vI3Ht?n2W~09?ks zP;a8tcHuz~1a=Z{{=GBm0uswZvK<;x?V$O&zzqOTK>+nrcSa}H+1kgg!MSs#^(aax z`OwLvF93wEAh0W%jG#S9UhA&PMvxu$zfV3dkO@^m0HeemaQnKa`^qLwzbOb{Gtg9C z)r-qotT+9PCk6d>eiu$^N1x2-`e`dQEvk3x7HPH0fUjfTbYt3RO}Eos&{dbHe^xzdJ`@ z5}ty<2DFJKy*Wy#0x55ZXcMpOElGi{AW(#r&hh@Dm-p6n5><`}=&!&YNBCy&@}Aq) zVV`Mtl@!53H1#VbnJht0b_7a}lg-0*NrhIedkG~lG2`BOk_@O$JO3$;uoq+0PMs&C(+zYz2Y2=+GX@Q`^kdtIB9Moi8W|UqJwN!SA76Vs^IC(VV3z zzkGtEmX?J63ZRzv=G3S4w&qtYfkh~z8|jmDvPE#Z`KpAM_O|1WsY`6ToN#EXBm}a8 z0K8gJNM}KPb=lVZ)~@nq^osO&2wOp5foijK!0VDWGgl_*YgY+mLRAnrUP;Qya0?dh zz$z^or#gYGAb{c$l|qDPb#zz@$Vz)@7tZ|iwNXJq_zD6GxkthK$h$ z{{D!h2aN(c8Ync+(_2pM!tG|(e9UR~wz&nSdco_;1cOik9dmP#P^pzzc{2hncB?co zM5iEt!9(4G-mX*awx0QRzRm11Neh=}6o>0E@Stjm3z90#u?Wey2OTC0AwYHV(mbdnigg{mhIKxXw zWm=ZvODcmvRuDj;?W>8pWQC2Z;5@xXy*R3=jJiouONB~* z1{XTyq}1DWazid|eWQKtbSKC{Q9k z!EA@`zqF&HR8n}Vzm#;qRS-B&(w#yse||+JVI6x2Tm=D`fI3R=bQ?DUcG+ELnO$=) zb$ga-K(`$vC* zSf=P!;IO;y3dI7)@GNN4!u$cuSsi0GztQF z*-<7pYWr`!P5KIitRP^?DmnYq<4b$gO2{j^#-zISwr)uWTm^wuu$7Xo zg4r!=1g{KA9-vbYz~E*lGO7|P%mJ^7gEP_mC2OW0IGt( zCFl-{4E?DxVN#$IvVy>+PI|3fR%J3dvLI9ifwc}<$7Etkmzhu%1lFmNnb!rAilVVA zCn-HU!dDQu4E_es;&E+u=L!>}@QQ`1`V`O=1ipZ3?pLk$9{H912E6-Plb_A|st80P`%TpDfUK(Jn#IO6gQHh4gejBchro)>K)e7K+PaBzti0pS{O~6e3ya2?xN)4o7 zowQcxI3gsn-}O>aSyJkpGc*WyE;Rtmcec=Bg^0+)COP5dgjzwoz+qQSnFN!)63>Fo zC>MJw=m;_s8NL<1VWJl$kwsUXpwqnc6nyacGv}yQySDtwUX2!vRgGaI-ufpMLqKG& z!Ba4^OL$AY+(8#r-0^{=RIod*y+8wkn8;!Z_WhR~EfATb;co<-+UGGIiP{0wXd1!oOD`7lr;x@Al>5g;R`BWJGo~d?~ZM zn;JWsMD}|~e|3qtR^(5xXbo2#wHRKd+_Us96>Tk-Zga%z1~m$Lmfr8c`70 zAEW5;<#_x0|Ju)J2v8B(pP&_QU+49|KR`lce~RRLaxsFnGQUM7q9C$p&`@KW$sBw? zuchAfl+lQS$lfmB*!s##O6hf0xa7b`bcQK(BKtE~&d4HDt>_;+*(gOvWHHQJ!L_E; z0K|6cghNC`_7}*#zp#?3hV6UeKSm=8BKu2JT=nxyE%`HtsT>j_dk4%k(C$Mf-D*;a)p?YYD?5|Oi3l?KevVDEv z=`IZeIwJcURD`z#SF;fpj@*1)v#OyWvcHuLXwnQrpKDK2W-ocDt_t2b_C6YzRvVsj zHNQ4y_0B3nklc7!cOKkcGfDGQzKBEHlLIRHKl8Wznf)E+Y1O%2Bsw#oyF2Y#Q6<#9S@MD~wZ9KuJlxQedi^GB-+Od`7m4sErz<6=|cM_zd5pHvJ1k;Q+ToFI;^ z3$VRC%lv9!5>WPD?AjdS>Um#fFjPP~oz7msI3egCow2;G5Vt|$l0p+&f1(jeEJXIt zNH$)(#E=bNeAqxHZo6iG4Fp0W`xnd(QQZGu;kX(Ov_$r=-Y_hmWVR zh|HcCP31FpsXMq$!?YO$Us4r4LrSBNHc z>}g8;I*f+BVTFnzAhLVH1n7r;*%=o3I8eCd>^rnV|cVMe(76n> zJ6=Cy=p;Ilyu$5GZ!A_7m_&A8jDp_!cVZKmxNT*(ia;c?6EIH9YhN@p(BbV{NRuvA zDdSYO?$XY6$g$Z-(V!Xy1+L+;I zOUG)V6ImO}`q$wKWezbB(gd2jYIDtr>WmlH55d4 zGSVtvI?P*}V%bA@3Gm&i^*TCqBaZHS%KwQb-0Vbk)qmkd{!M0UT?YAdjm zpX9%C?0&SUV)QjaHjhrg=l>$+|4CX?C2OXwdqK6}6WOV#P4gunT?*sN5(1sb9)$jD zq^a9aE2r3}8@{lK>_@O0vbC?ctQT^5wLY{(8!c8lpzw(7M^T%eX1Hv=tSv_rMD}3# zY;f>nA00v!^KV1X?nfDn)c&J%w^@4eU<1QNszfwIHjf1R<}F=~?4F=%D2Oav1aGTO zx)5`^msJQdk*!B#@T^VkiPVOhRSQ0mJp_(>Z)tE@rC;t&G{*;Iz;02l`akk3djKAn zZ#mN#spJmwxjhf&yaE9e*+UVDJpES+Ub}eHme*P72at(K4%`7|N+ZFt(2CZ|P;7tU zi=TLFoRLV-MD{QYpp?R~C>48B#K@>X1Vr|5)E&ib*mu@~mln$%0Sn3g_*|>eh=Rys zj+r$7d0qQ#_CPWb>xXv4d=94-(k2oQa|VJyiR_WEG2R>V$tpCdO@=E>B6}1vr2^v$ z4W;bGdqO9+q9C$IqqnQtI70C=2Jl8MF??YY*<)Zy!*)2{zHVci&!CTwgbMIiXXO&Ccu{{{izVz~&8dbov%b~IEAzRH8HHb?mR>C84aMSQ) zUtwlvd2lZF(zKP94|?)gL0)^m#s~$GgO9cc)N>o#5;vb;`;= zki2dE*?&y>x}gi3$iY#Ygh6w-ig@W8c`5A*pTs} z?&z;{%NFK@{672gxSy+1Esp%kO~4jTVYjX5i~B*>X#~O|a%dA{QKX4J#hPi4++>JC zBXaQ9c7sH!Fj8}Crg7(ukcb>yHWA3~fQVq?w(GRmghb@(-~}cI|I%v15eAWiZ?>nI zmw0}E)YDuu?ZuC&D&WQCFuv}kohz{oKl_h)I@k-9$iX$+uR5`eG>^oy7n_dP*aKc& z4nA67tsxRjLU(`kzZyuuxywz))y=7CDfOq$aaa9C1495r4u0HDayAX0(Z(OBB%ZHnngSk8?m!%- z94vPEJQ>gil^1YWa|h!X6ng%GevD?(Io+CRFRQDVJC2Ef2}5t$oAXULEI20|so^!# zc-w(+iQEb3&%#e%ds%gxL&-Igio9bbYb?kq*G$o>B4|YD~Fywc!h!$Q6RosdaEV+?Fv63|7Yvo7yK%9g zd61zCnaG_IESxz-Y#vRFbd&nI!Y6X`@s-WbCA8j1lH3kAOfxFc5IJp+3U)AePakTJ_noJIsbUC-+-dMe{XEa> zD_$^EN*b`Swd4<~hJwf~2v*a){&H72e(vcBwctV~a%h{?E-Uk1oG6Ipmiq*SP2|o9 zMv2PlOgOjr934lHiQJjNrkGr-TgDl-aEaVma3TE?YF!fV-<$4J6_`Zs>|k4Ht#p^M zp)tWHeoDt1;S;%Yf+js^jrruOUE1A~^*pd!1y)HUi}VT;D%3rzUV-i!xZgV5V1OvnEIE_h14vU^^(IYhd1q3+FJJfvFfo$|}U z+!k9t^$R6-%$B+fy>eh53-;k`7C!eO$I$>FBAk6u%w`a5m?fsZ(m$&^Zt|Po`pT8J zsTv9?6M=-NE4=!pC3wiptf%xJb*p+uPGEBEVAgAyiMVVntd;QJ-djFgql1WWFbl2* z&{Tmpo0jv|*^U3y00L8ICyOKSC@IWyf>o^V6=mdq6HeX9nLV|TuqU$^9ra)R-mh(q zU@|o*oGE_cH1rP6#}an@@a7{Y@2tbNunA{B7-@}<2WrB#+4R5}E$n9<#^2sVWU(hiz+ES9s!=lXd;f zIgoLoP@=lVxbCZ4G(K<%2QyAB67MFGgzT+*b=4y(1etI!-SmYxq(38gP~TgmZGP*p zMZZy@%uTh7a@PffLs-D;?T8=U-Eyl6)t8cA4rYF=1e_HL7faK|OSY|34S0lunH^J! zgN40G+57wKD^v(F;T()_mZl!OPUOdCvi90z?|)TAAZF^!zxNyRW1C(=59ljJht}pd z-v7$cD$L{W9rfR5R)svzud z(&R;t0(&J<`0bXvf2=aKU-HX2!mqHIMV!zG$JO+}SxYym2t>j;((i3N3l`CBy!7=u zRR=EN9OXxr)P5g0dk-D?gh)83cx_U%$^(lV!Z8)<{+YYTP=!c1$AmIBZylDt_oS!xkv%xMajXbx;xk;hccZ8WQ7d zPpLB@@`>A4cNvvv2nR)w4e9wIA{;#m_~|!PuB9fwoD-w+`S89IV#ji#b_tOXPD4~K zpU4vAAAJ7rbB#zOgwq(6dwVyr=oU_Vq3)^kKB;m@2xq$As%DpQY7%~USl6`i%V+&W zb>I>X+!XE5dj2sgyKJAURR${I%=BB<>`FAM=C}9TaZlBN$9w&pQZ*`bU@{ifpI%kj zEJlQC!Kw}2Ejf{q)Tdz-Us5I5go9O^38p|f%!C^7XD zPpVqmy!>+D{>9XZaXC6NjUTULNY4s`Hl81*rOLz2{z%h`VC%>>qa8n_?2;Ys|-}aY4ejgr-+*aBf~@U z8>@f%ZB>EEJEWW?{#Y~zAA36@QDH6SH5Hx8h)@xy`K=sFPnE&qP$aUZ^*cQCvg*Jk zoCUs__qLABhcw~-nu*)4AFW~t2?gEDsh)k zxuY2EzYi?@e7A`~!Y7<_12XSacO;1qEWG(Dm4Qk)3;nLwQo#x3B#-^oP5Y`4WWqVm zuk-oE_V#E8YTo+zmqr?{F#Qo@vEMv#6erp6a|PKc8om7KwEHFLoji}^ZR1y7vkh5@ zgwx^YZGKs9XGMHrVWIAKH)%f=GU0Uksg!%Za7SVM`k>99Gi>1!G9IcOYh8j31voVt ziLmK`^Nzk$g&-5oBEK-Pd2%rJ31H(%**~ZXOu~W3q(~)MC7kp9-FIi;exnMmElHY&KGSCeLMOxu?o{&D zH;SQ472o>3p*VG_eT`J6*O&L}!K=P@d3nQ(_<-^sFf<0eIe9 zIJ+CPCK3WQ#|svvGx49}kCt zY&O^&@oBR7nc(X2l)vZ*XDNa%3zi)V*}~zl}iXgahYC z=iLnjwuYo`{P5pYtlpCRaz5qHyBi9vJ^22ez{fa6apgy$yww8hW(Ru!T!F7?1rLYAf~h zMSK3n88059G99|*m-BgllHO3zANNTauP5X*S2^V}d^M|TCX}? z&5Kjj7#yFvPt{Nm4(6{$E%V}9YJVyL1>sz-YR^lrrREt|Q4r48(4UcVd={xCeefM4 z5IW&}9d@X(WWJ50iseA=UsMc%|9R!xzPPcqrubJX7K=i^^9sqb+(;}RJ8Gym|5Qz% z^G&G7Xh^^I)cVCERgKD8_eWKH%ls{WI!O3FjriEuu)Hze`-G9IY~FfN z^9EId9m=l%9V1nZ1aHyEobNJLBp8LYk9?Cz7p@)KrAi?a&Xur4)6Iv8bS<_o?Qayq zC!DJgseGMC6&9}e-KKFW1etKI79l=SqzapU-thc>Dg>Euu0d*ty~}3sTPvSaE%=19 zQs(jUu_8TIECh2n1ePsZt8^D zX30BMTbQ!X-kXd<_=IyahA{6YB5x9$Do5=+zeeSd5Y7)UW(OC)(*ro_v8#S>WFjJ* zAELBn1-u;>~KdtVyTJ3zzIQzE$Or5YCS<4w*IAR4MZP-2YSx zI^n<*%2tNl zi8p^p#Sjn`tMheXk9E#(E3l} zY%$u5#6&p1^t9fJX)W!GFBygK3Fi*cnic3;+GmQY1)p&4MD3cD(^M%IQPG z@EBSZmrqm0sNiQBOl*#NSMtk&Uo_rZLrql{zIo>h3sea<;rs?3mA{ahuAVaHJspZf zK{&rfqGdG|hc45dIVAd_=Z!=JgoCNTB!5XYHEO7N97z;}^E;T#;0kGK0J631Z$>5} z!hugPL6=EWwTS%D)kYzF!nqq-omke=zPv=W;1ka8F_#W3nAXxiq>DkKA)G&8Z&(iw zVReV5W!(Pf*d(G^U_*zwh&X+d*O|Y**a#$C!np_Dg7?YDpI1d@&J(wNpMyTQg!4yC z9X(ybCkNQ3rwvhPgoEMGTx?*bGVyroRixvl{Br(;bpeehX@i%{Ts}}4sJ=J;*RU+Q zzYDVKKdQ2O1G4*A8fn|RP#Q<7?$73L`O`r+H>K!Lc>LVy7N{|+J5(noLEXj4$M~ff z-=l@7j#CM8LpaqW%0x7w^r3519k_&p(P9s;Aj3Pf%r2oTestw6s?kwJemM^?TmHnx z&z61zJ8Y3UH^R;AZNiYv?4~#{r7`zShjqB_;rlIy>pW=wmOq_`SR4u4v(~N4zp4_@ z2RRS8}JnBngd$V9W9=t{+pb-uXy(#jf zJys|JT50eI=W#Y%PFUh4cdj7|m2lQFs-#adh^kXH;1SLfRZYSMs|PQcryB4GXI)Se z+h6tIB|7aA9^tHKmN=yeXGwNGZZ>40W_C6ImV-~bdo>&1U4;zwsbYiqTmE#OWECZB zu7YHlNOkaG9PGR2c zJvOQYG{Sk-k0^164s!KnRe?!32+7>p9-L`Ja)x~*lT@k^%P;3S7KqF-5_Z`j#w%0? zD&cHmyYOZg;iwAprtf;LVG56M;3=5#AaU~tBD%p)g-AFrut1V`a6t7VRe?!3FEV+_ zTQU53G5*zj_Ll!FGz}%R!H@<&c5jWOEjy*NMeZ=Pfs8p=e&gS2_ z5q>HYHdG+GyHvB){4IYv@M|@?)cq8a(lshoH`tTD%%V)*P63sU1rC^m183bBweX$@ zb?{$#+Bg>@y`}Flo@(S|-$*BKi9k$h0wr|9`5V)x_uR+JUwg7J3Fq$|d(t*UAU19A z!X=!4ur(&_hbT<@#Y}DPLL?lFNTx87wlyFkjX-#W^G_zwcgDjRE7U#QHe}esC7ge; zJ*I4GKy=$w1}fpa#^`(pJRF@2UYDs3T*5(E#>6FWFhFeYs7hm%U(V}PCGRhoxJ~=C z$MoZRgN9MQh(wYHiD^a|2QX>86Zz%jc9fZ^xdTQX>1x9ZW06<_ z8`Kao;k<=U#8h(hGJC)hZvyar4d@8xZLCr;3>-mgEC;TJF}-HX3H=;5LFPPBt`P8( zEtglduIP<^w_Ltq+G-P#^KV9o48yqiO1VEkuBV7(7#ox)t5Qvo{BlsIWAN1;TLwaN zj(3`si!>3=WIXON-{a~6bR-HKifU1rHWm5hyo+{hWQjZ0(H=Lc6%Z=nyoZUHk?BU} zq>%=fUEN_6!Y7>fW$NptG^m}^7D@1(@BLFvt0)Ku^NW2$>H=PqjYyGK9kzu|IREvg z`cj-4u}G`&>Q1u1UwqquCmFGJ68^?8Ab+l{i;7P!FO7WyF5Gcx`EpN?k=O|5e^|^3 zCEAFqar?_E57(<45<;rk3dzkJOb%(pa{kcIj4aSLGBTDqDFGy;;lcYf2$Og3M{cBF z<2BtFE_4c?$n7A@BwmeI7ab!Bhhdpz_`)V~qx|NX>|tPCcectvC17HBcWsi3fw<{|DqLXRbq~wn58a^C2cZ&j(bBGRXSF7Wj6T-;@7 zF(|3<(vU|IVU{) zUa1PO2>ZF+Gg;`i0tPnMp7|7GS?CZ<>tMfSlhhe5)B|Qr?N3u ziU(j`>WK%SLzIXJdvhjmukmoHC}d{NK37u#Az@?wl*I|&;pEciSE^j5TnZcG{l2EM z3cX!;r56v>4@UZyNN+HFp%eB?C`4o0hK+p9w3qhR5TGLLm$4J56^|{&_0`10i}E%N z32MTI!!#v1B$K&FDDZaK@72|kknF#qEUVW|X{zEas_BC-9C@&bS|o&x$&MA1r?sd* zY5))s_CK(hG9G~R22;)nI}UI7tA+zDVPm!xPe@wJd`JU;h_Es38dJj4a~dD*ODY|A2a>LLi2urb+EQ{A>0i&pXOd*e966((V0 zrln8aCrmo47ljFrurbFPGcbhH5~ZHtkpJ$1hGB0a6Yb)8i@EXMO^#g*R2b8HR8e(- zxtskTj90Bg?cS)JdAl5Ir z<=v;TLq<3|N9)ZCBC+ZDJ4T=(99YzF+xMOuISpk{iMD-guhUUdRD`puYz+untd>f7 zAVJKhg+xF&m{5hwe?E2w<38M^2KAR(Nw(I%AI z?@<40sYOIMdqm@x3S1N)zOY8b<^u`gU~mc-U*afMb=gEfID1A7hj+{gu3K>sPrSxG zikr0RMMyY%MKiFVR9uocblju~7YQM^2QE;%V$*k>wxw*sPIl)4P9wJKk6dCJD_}U z2>Z8V^cC<0<-x^su(T2{O8OMqK}2fbg`)H-OJscdE+WNUp*k1|ov`nQ6E%G?PC%u{ zc$Fawm9T%05j42gn4-o?gAO60AnZRNQg87uRkm)(kcCRv_rUe3UgesqeS$>-OOn7(+Z7tgL#`XdX$ zg=sI>e@8V4ny~+bc@9oM1>*_VVPRhT98H&y3Hx5T>bhdyGl?jsy)wICc)}v=KYL4} zCMLO=JN}IZan1d@D#0e~zo6@RX~b*6cti(BhPylcVu?hK(qhrJCa56lhe;a>tv3&*JI~rV^7Tx+24PV%V{UGLK^NR3a z(^Q+)gAyiTKO{5275&AYa%Y-gxP*)iqdl{CSg;Adrxg2Q5>fP@+8J*W$knGP zz{J~te~>q9TP>gbvOkN#L#$=uiXP0t?^OdHVZ-WbK0<)wIGNur8X z>kH=@p0Eh}3)nqS#HEXvl6HiiB709M!XWG~?vxqZKz1wwe`@q)3Xt>5VAOm`!dg)E zV4YA2`ztU^zRYjxu_)KQZWO{N?61P^SGC&MW6~G3^9h}>FAqlRx7?VP$AN`U*k42A z^P~0JZcN7)U4={7uqWevownYX@_DTWVH5T@;CIP`>wVI{a4%)+Ag*cdOM2nx=6#Jw zB!vA<)O|bUp@x5svcE_!D)LL?(ePUk3yx#;FDpjx>%go~M?wjgu)l>7(NpPMaym{o zmwOXtXD>AxjVK8F+o+C+dTGK3MBaNXe8R?9GBK!~Q7Ymbeq_*rwR?KDk%)k>zl%Bv zif48v9O!<2qAI~A>?h`%(^1|57vLD=v}Obub? z-JMiJTmEji!X)ggnP63U_lw3>N-_6XsA32R8<{ZWr0q7boSxH0Cv3uAiSfiMVVp0< zQ^K+GdGrE96(V6@%ksgVlHvfyuCz*hu3gno5cYL2s9ux{lIB)?Pf2Kmy-FnPBC#|+ z*=mSFBka||PO0hhT*;Vx!>&do62iV7UCoctw?NY??aNA$i^I@%UwY2yL`B%&!&-hk zgr;(5XQ?+a=YBhelCZy@7>YS9oEXYO^ctWf>>DsQj;F<|@>p@ac)pQ|h_G*zHq8ov z@rkG=Zo7Gws=y@dn_$`C_!<8wWZCGvfkD_e?}WpiE&d=gqmr<@=Y{YeJ@y_VXWU z7J+Nw!6oDsiCx;+m_i>&d1S@@63OU>myF3AfM`03m_p;zp8r_vKtpfmEG*F^-d28# z3BbNN5YP{TCV}2}vZ=gX<&Y5e4>7s$`vB#$;DgGGuCbi+QhSjRHd2*K4I;WWfV*)% zVU(gH>>tH)QR-hIg%V4``cJ7G62iU}>x|(fs5~D1I`(O32>ZuanyAQ(Ak?3KYW~0c zU&8*$PBOH39#~=_Kln*Q%^ge$N+<92Mqf0eTC^vTu{YI~;4eiF)ui8Uj>=js9;%Lr9y!yzr0)01;vTES?14i->j9b=n+7Mc6-= z#vIOsS8H+g<3=M2!v2Lc=CC?#PV=0OrJ^D1U&2OX9K@X@>%cBcK5UC?CL_(H3cE+7im7)HQQqV@E3LzD; z(;zlaW2zD?lP&N6+feFs9w)!*{xUkVyYFPUeO}^CY63e5tw3kD&~10YSJF!V!bnMO zc^~aXAQZy-xs@3&{!eEKk7fiGZ2A~b}xCRLvvKQx5(C)m24VowkH!lI%68Z8Dy!h!(_iqc~W zSQ-mmeV=Mf9Yc#2)rc)%7p%X;h3PSZOjua>-?c}Mb=8On9KyQK=ck7c4q@God6)^m z54RvxinXi>xPdVu$#xJEI8 zNLY`AMd>ktNLX+u_gyB-@Y|O=&=K6~Z+Yd=K{^}G;6xLc8gsLXp^n*uOPlPn-*#M8Q)`c{Or=|@&!df5H45sG? zJi^)#(xm4HJi>Z1q)E>Yc!c#-NRyr)@CfVakmiWgG60XTp20BNuA9a&xx%TWG_M0p z!g{u4BHB?{{7G`OCbrgI07GY=F!U5ckoF17@=tOEghsGV2NdT$o1f8%pc}|4J zxU5p?OjUtNSkJ@N@go#f&G^73tQTO`I&fb>@6aGJh-vD=^i~BfVZ9jBrME0_32Spq zm)^R-C9Ew{6L2UnnLytk7{J?kY1IxYVQq!8d43U_68lr>pb*weSfP}c$ClvC$-qK5 zf9BT3R4w>~^|Fk3zP8=FxiD1-GGVKy7 zQZCh~8726H^^cIY!@ukzEne^m>s54&YI1SiIL2VC7^O);CoD`C$5*9Y<^Ce}s;4T! zCM-`{YjjnymqR!g?!Iqi}QN;i-o64rZRQMz>mk+9wmi_!;Q5DDvpuqb`>1(C4+3xm^F?Cz0b#}SUDxc5J; z{6HnF|6v^|EL&Ldo@`B3LqXX1#~!{KPe`T2C_KU*fq|47JPX;oBvl0_VUI+cq-vnp z=bdaxiw#`D-T|9f@YHX|k^w9Orp5#oVUI$d2KvfNN&^dJ${NxX4tZkk&W0&G!rl>` zEudN0XZ9Qi6A0;1-&HB-ggrVU9T-GnS43i6`{qR|1)Z?Rpq((*rSiIEIKFkasYfS7 z!rlosB`8Wx>$<`7jY9Z@jjV^YiHTiz%nwzoMJ2!NU8;$V`)h?m)^A*?A`l6C*J^~G zC^@m~zxz?uf=}4HMYV~E-EiO%)q+phyI0#l%+)I#vf-UORRbPjkF8duXp)oqynF;yAz?yejm0Q1{5FXYq@qrZU2R*^5 z{MO8L!;t?=Sa+P0*^|@q0ko*paYvFv*mYRThV4)FpoBo!7Cu+N9WC|t7E`?fArUqP zoSoY7=vZ1-g+SO2I=koGHB;GL>Pk-}n1sDQ%EK(O*UlJtgnfXoshunE z2>U>c2qvCkvIHVwe+bsgh-&5sG{XL{q|MBvrA4Qf9C(C1wW{eUcc-@_@Cf@L3^*E( zXcqMsyX5OyYJA`m_D8DmNgqnpfJfLE^u}p?11Q1nRFRI3BD4?2%qb{ZG*k);3)bvQ zA2V?XnXvPSE%-SkH8v0l+l5~r6xD7}U=wzIL|MC8flb(lz~}|z9Hw!BPS}T{aDvjB zO$=nhJ`B~@iJKS~c2p`$BGuQ_zf0q*hABM4J{(5P)ASdYg$lE&f9JOzQ~^kYeS{oz zK_sQFu%q2{!M{Fvukyhm>?7eC;4^0hPWC{0s|Sm)kAl5e1lQWT@*%dUHtX>PpEZue zNb6#1G9#@|AtQ@$ReR0SLePYLvTc#sNDuYBJeCoW_QFeOx1%$*wawB zP}Ix=IE4K%!|y9~r+0902>UpUNL}*oO`5$2fv}HqFs!0>RZ{2PLL=-GkYoS* zVQM5`5%$M17WshH%#_GChS>Kn({f;OK8pfflAo3VI3FaJ0m{4W4D!> ztWd2NcKk-;4u&sm!frx@Ri%_{M0WWun+#c~gk1>9;`8DizkSp1R0b+xH={hOvBl>o zg&i+nzCv~2681@<=;Bkb9WU+gQyHj)eKI|X7GcjpM82YSCjgbO=LTi9 zn+d3dJrBj<$2LqW0hh2_&E;1hPMMCYxz-+R4vU=b!nsT%MI`&ZLmNi>=Grlvkw|!FG78K zu?&-U@CdsL9nI6!oM?eX*ywylQM0JDi;BuFdkPqg9-KH$EibSL`+Ug>zGAFsFJi-A z`U(PgguO%xtOpw`Ya2k&2)kPr97VF7#uI$P?!kUXn2pGCb8yrGgRpzi#0K#`s5prD z%om=X7JmEUF83O$5DB}2CWei3VRA4A5C|Ki>o{-4Z#cuG!>|bL3oyKSyH2*FdxA^Y z{UKfL778w555ViH#y3ne1(~o1(X*?^AK5Mvj_f$1?e;k$B0pAq^J5;x3w5;m>65#z6 z#~I9V6I_cm`_w{O2eN)x6}pJa0m-y@NUXaUEdTEVcl949G)5j zNQCuc2z0MW>cXp#2XuA2hc|YouG3F&yj}iHr<-}pUVCikgbVt)vgi|CQcDDL9}il8GZ7`l&#uh_8<2jLlX)i1(vi`ySgX+K~hnv5AA@hK5|J8K6-cKt{^nK z)K+tSRcCz<+KwU2s(J?cit;vgJ9emGKtO$`>Y*X5@53#U@BBtwD^@TGDV4E-ia`K= zlWD$b>j-rT>()?!ME+@1q@N6d*nvtrTj;dKzN*_?zn#|gz$L6BQDd@iWEcr(gmo0ge@L)Ba~Khb zgmpB`U%U6Zt7OUR?1zRjR(SmC%3FpmWWqW|zEgQZ6I-J6%H4JSP3VMmY?Ab_NUT>q z`o0keov;wx&h6#?&Ttxo20$Yeg@wgDj~xy>$PO&`S;r~+@K8#EY%mB53wd7HN2IdB zAS^86dF&%o*`9xxsv7VJ3+r_OO(bE*&Us5as_+P_NwUT5f;9?d z%NIUrG@>A^LW(*P_qwgewW}Hm!fJ+H!Y0>JcS=PT<{jVoFV%rdSSP_l_H?P~EzCP+ z{ajUoO;{%cvC$3~Mk*D^59a=?fq4-3& zEH%ANYsXKx)x;xY!kQNshLhT~c5>aLDg>FZS}?eEnD@`}@gZ^6Bb&c?qTvdYurR)l zqbkgN+qzIX?7NCK5Vk@M#A2KDi&2K#arB^(~ z$UtgGN@^$h+SDXBzwykxD^y)g@<>TVqB@-J<~KIZJ73k+bdQvD?=4?91JQ=schj*$ zt3PaVDO|!j9nMWj9^#g~h8sX|xCM={u$Vf|lbE>DMIaK^nPE{lQ^A-(BrGhZj^}1- zzb-=A3MvCjuh!Y9Mk>>aB&Y?Suwc8!EvhUZK0;&UJe_qeMmG71E2`8Kf<#ygQSjbp z-`b8SXoPhh;^@K?*|9j9jy>^f-!e2I5n_G!5ka5?!nM_OYy^ElN>?$Sjd5*B72;{&1ux3_8Cd$)7w z1e>rH!5pb_xJC>rVZmTb2+0zod~1G>Q3#)~7AI;WrMm9z>uy&q_=E*FE+O8qbKJD< z-+x?f6v8Jg7>hmSCUtpYymrwVv*HP@C8$TLhASa(39CD%3+FIc|KJi9N-PpzICnvv zmab^6-k2_Z5&$k?RWS8M{sv0vEe#aH>LWcpH=q#K1*E5E0u;i+LZeAcdfGuDtN~aK zFYUFf6Ewmaq@?x~12n=Kg2a4}jG3EYWq?LlOW}CynUIL8+28JoA!>=EG(cg_g=!EqN zTwX${i7`<;>hV9R7y`nA@0}zLH@~L!JFYug#p{k~Eyx!phq_-ZlcE6V_)i z26*4VQzLC!zx#yO4PV%V^;yiiJtYoH_op@>un6mO7&Sb_0JQ&9K!knYCu1p`&AGU2Kyh#g!M%fqY4A1ktzk9u)c)8fz4Ruj$&`k zt_vPvT_Q`&Mq{E&x22#G)}>KdxT1rZ1C_A89F>Keb5I5q(( z`=`YMB^l0N)4G=qInQWBL0Df+QHQhHwC?2t)ISylVO@>^t?$Bi##(!9)sCD33ldX?(+cGq#z=W=UwI75)@)h8JhjF; zAo4_5U&F9sG_mSvI`-g64;iA+2mA4!QwE zsVV%;Ie$}sT&RTgUD%ZV;!$O$*xJKa;$ zu7gNeE78XEl%^yzH6ri`>squF)tEGkyNk>Z}*mu= zDjgJ}?rATA(jd;14un6o7oKRoA68o+ETZn2fFk_)zwpG|-ET2GVG(uD1{C41^Mxl` zzJ9wZz#{54`ik~gsy;nO4TrFZy5|ClXsW*Q;(mrFETV2xKoL#VW!={sp0J3z=P@>T z>u$1$7CuMT{Mu`ef7T<8Si2Yg-ckQO5r)E-l<^*KRQAuy?^f#G0of!pcKNK3T7}x^ zMOybFJ{WoH>>+mZ)}Ozr{Y@BtJKusH?y(mR6g!ci@VDgVt-oD)tb~eiH{%cXj;$!H zVXqvhL)b(e6g$hpbU4FJYu(QuVmQJe>Ry61(BRu5t)*i#;Bfjy&50nf7QTI2b+gm*hv4b`M45AJbtKGPcmnr~>sQU*@rQFWd zkJlKML{6hM9sbF0*BPeph`LwN?!4pu3+1#|YBZn`b^k;(M&fNhPt|}&)cp%}Y&6*4 zn5qDasCx~=l2NR{0i{a#oXhM72mkPULlq)Xw+#krQF&l-G2Ai=+4IKg=p_`Q4pSpT zk65QkcV8*y8xRUn_Xg<^BQWXiclr!TC`8?xq(>}3_M+uSC><1{?k&=f2$fHv?v@vC zRXQj{-P@!e8KM7p4LcbqMBTqhKPp1M?W#dT5(-iGAEig`S894_!>czc9TcMO9n!-E z+4Rus8EtGrA?n^GJzS8WKYyGd35BS84=<8nQ96|HV5h#!XbL|-{(JSM%@vQzd&+k#N#ib+Py{A5IdOp-F=`+j;MEEZunk^{;0Q)&yS9&cQ^dZ3qNDYc%L8cOU+yF-h7|( z5vI@I*XM_wyymTc`DvraAMyCN@%Kpm_Z2=r?Bz9YT{H8ND#!a5VtE|nzUDXV<~48q z(_b%FzIwL!HRAD=K0oZ|HE(@v^)lt(fWMiZn|=P#;qu>l|GUP~8}T?eiV=_hz~>(m z;XnATb3E3F$8RMa>G?5gxArYyC~?9QyL3 z!Co_gF`&Icur~z@7kiJCHXDxWrVroz_h6O$OWsfalgb<<;nN`w*T&jU;^HwpEW9nTUv~E_}8EjvqD3)IrXX z#AWMM1}ZTXPUx;F<$J@0$`3fIQxAc=7AVw(jq-#-G>`pb&g@hz_{7vh@r5d=#gi}5 zTJ3M&QAZPD6H^bvmVlsghB*%u$>IqQ&f48bL_kbEJQD339D0c;`v-raGdW=sQ;)!O zBN(ms7HdR`=SojB0-+OAkHmBXQjCLx<%BkH(=641M@&5mXIqMW)l+=vo^wYj5C4yt zdi3ZFUXnw(pPW?9S4=fT_lFc@GVU!XgX!L3p_$nIJh&o3Ik@onc2$B+xIaR>GD?(N z@D*FXJzt^u7AoPwgV&`jKR#fgR~Ji`46Dk${a zd$LpuTj+%Q)A)7eDDQa(7{b(}Nz7!X9&?z!8Qp+8%TL4czE~5uVuhi*f%OL$LG9&L z({#P6IxhQy$~0E_<)R_tnL5<&baQJ}T=h*=X_NI-A3_f?Dsvk%{_Wky95b45FDWqp zLX4!bLON#}mz!3s~_l-2EIA-e%}RCR~_nlhhVmSlWiEuVX#dhEil(M;_2V` zaB#&-stlNS7v|cuSs5`~yNmvVY}MZWPn88My9--wQtHVlh0*j?CZ47c7r z=hJa@^dOG3H=%sG@#!X(Q(aFM4dKFCPo5rX@h$SIQRj@(q9X1Qjs=3rmv% zn8l=^;$f)YAUeW@9iK33sJ{g_Le0RvfSAmSC5vl!GYa7oE^PZ=vxmwJy=B}VFc*G9 zM0Wa(Up`x9fnmUfiP}?4Y^qhdQVp^&3HKP7%%G~(yREuj}Hsy$lZU@7_Zh5S;&NYLRcte8W-+j=t3skkE5pslG=)E z4E*Qw{GN05o~i_!a8HEI7Uc|lxtxhR;lk-0Tz*o)P=!di4KTeTnuRNB1CC8ZJaOCA z6O2RzgxiQFF5>y#2g*`^_(iX3YIQy+e8PpRJXW-=^1x9%I*eWdp%Ly3SWREjATLwJ zb!shzOSm&NkFA6KLwGByzXUtqkzh}*Rudos!iA^cHP};o%Q*dtJ6ZhO65^3-Ll+I< z&en!d%kW;U)hJ}bZGsJu+=>BB$*iVRsDz73_H00^xxRX?;R=&*n^CmhqioeD!otl5 zE#M5*flIh2VUjYxxNMeO*fX5DzIu@c01@GyjEGJ1N$t^B52y}Y!kq&Pt-1tbAFrBE zY8cQFE(&5tT<6kRz0+3w>${Yx#U#JndE<2ugvZ+?idY0!+A2HM{O!q3)4E7ksdwmt zNw^EptGv2Et(#{pB+7V<>I4a&a8F00@wAQDHIyvV!Ck0?i>lp+GPLq!p$SGqkQg#l| z3HMx7qbHqJS)QzFGhAU3?m`%HPc_>-fsw3Kg|G?tJYQ)(?ItTrhA(WwEwUa@_AXva z7WNvtkO>#_Jd@Zt=IBDQa!8drE0kYu2bJ^86Bx-#c0aHQx0A{i^JO7f`8mTEHsK=c z##+sny^+bfFRMr^yZCFgxSK&GN-p*F<{i>S5JgdQI?~-3`B@#@V_n=kHU|!TBmb9*At2m-v|n|bYii$CE%=0sfqPsnm;1{1Riq=l{Bj4e zmaQUjw`b|K*|j3SYNUn(E#bmgaUv-Vu%>=z)vJM%U+z-4HkuC439lKz9vT2dguBcO zK<59LEYX%PBEnsch8&)MrUx-`+f@^dP-KL=B9oai!#rB*IoiWEpsS{6 zC{Pmag=hmht4L2l{|+aerdsd`_Y-J*mLb#VB`JPrJj+;5@WtBck(ax0X(AtKt#CTh3yEe7B858s16|$ z?kX%$;B!Hm>hv4mX;u}Ogu5D^S#@@qCZ4#BWher|y&j)g62vKUQ@gZ|<{U!8{T?>J z3~^nxuQC`ap#2QZZ6zHA)HXU}dEd?Awjfqg*G$v^5DVdcAIY9x!Gk7c+~u-8f$Xn= zKuEYZV1|O?{{ITc)o`FCT(ohFW^%S?ds1?YhM+w|ez`Zny|327_JlHBLxGZTZ_Z>6 zsufB~rJ`k=s-YnS!uc+N+cny|Rg&+yp z!!Rmz1G0Rh*Tywf%SgymkF_#;qKX!kQ-ilo!=WALqRX{qH*Z|+g- zZcF&;dChNC4F!>ZLuT5(+U#9O6yK|22#EZfA`a}xNd7K{Qh!v%5D@vdU;^|Lr))Bb zE>M5+;PdZN6_`Z+ZH$LAmzJ;+hIfkm_B)kRR=E7ZXrw}|37?pGqDtAL`$(WZo?)+6dEC> zYi}cI!RK1M2NjFzfV1liTg{yJ!ySRauLX0ANW##RZc{cGggX*tCv0p@kXNeuSIoky zXgja7sdkat|PFl zq9!!CgPeX-;|3KXV8We8~!TNrQBV~L?pY7hMCexu==y2)w^Cj++I$h_6Ze&Ot_Y3T1A+i;;uQ5zot^q3D-uon>cHvw`=a)C8`CVaGjL-WS??( zBNH{U`;M69V*E>+n5}$DMF^B|bFhhxRP$gXhcD{ zQ(&D`Z5+#_t=ubLHGE+c?tZZR;c+8wq12TWE+Lyw$3$OB5P$i5hB5V6GT|>zo0zHd z{IZjArQ9GsT41HvyaW)7>stC+4_EbhwD_@&-iMC3V=-~twb~JcM&vO>?(MnD7-DAO zX^q&v3cL5{gAH4_ME)@tYuR|5s6kw7R0AH7e;ieZ_f2MYmIvonI!kS(<%6C)p1J!~ z4F!>3ix{Dv+t`-4pZHpBV!|WxPoTP?X~l7&j?_)e*Z$M+g-ztwNm_@>!&QV`sn9Qk zg2=Bo>Q>y=F9TDJoNh82Q4o39$MJ}}6<2X|!`16b$gkb|#&1;#Hj#f49;~q2R`f-! z(!_1oDNR^J9;G%GMVjIRU8g>b(1`rgSTcY_sxVe_*Xb}TBqINe5y%(+xIl+DArbj! z;k70QuXa%wM1G?<;ocr~Zypu(sFCp#3|E*${yFS_(ax39hF9ILGEj;9Cai*1C+d;r zk+>6o)vt_Lq(uJtOmOWc5=?9!e)^Z6(-m+L68RTkGE&o0>Q7xWSoIeZgakn3(TsPJ zBS84n9v*?etz>QI@+-f2RAyf}kOQ)}kvPxevf6JeFxT@o;(!{ZQ!P{@l zP^CJyp7Iq8W~!u{2!A>r>vYwEPvrj=(54Uj``-6W)q+pt|Gqt5;*~1gOc}DeWkhC5 ztZHkyZrA=tLqU{89;=Osp3!Q<$ZsJNF>W1&@m@Wn)WPHQOMf*^wFsNYW6&FKe1*mp zgC*l?L<+a`;b$FH>JTZv^01$(ln#)roLc`0RjRf1l>hRTsi`eZ{VB&1u!;O@D3t*- zHin$i8w?|_gTMUBzl0NZgGG4{$v@jS?_K2~93sCBM|fb^7W8B6jn9}@ebNx?52qlL zsXqe4Cs!Nb4&oqdq{whE>~pFEm#9Ay)<^j1D{reVRT-#6{ZWvKZ9lDuONA2W^{alU zGEj;7qp@IzJ5%%(iv5qe7AkOoQLij{I#*B$! z?ffF%yNXA=NX0tH$gld3qh0&r86~fw#+BWw1e>ToF&M2X8XXZQ=MRSPY@>S5`t zO#u6+Thl7EEb!Ls+G4Ubsa4slkR&qw%iNnh*g|e_ANPGS<(>$+>u) zs7Cli{eoZ-wN>J_Xw|ufD@>yP^k8z^D*YXclMTeGP8CBy)MEgu+E34ifG-hG?Glyh zcqPB;&xG$iP#TnjcHuGlze+yF{OysC-61ocE(ezLJW)KFZ>bVN6ZL1IXGN8XgYc@W zRSgAEe>OgqM%7-GBGvKuuh$TuBI?h98`6Vw-a$v~6zz*sr;&z9&Bu1eH)b4_#TIWo zcs>J9TB1L;;h1L3y*hT>-_%Iwcc})D-xW<~`eGTcPb>Dy!y&TSB-)*)Py5?_Mk9P8 zzZ(pJ8N>8LSNtGX|53NPOSB0n)89KupmZ%6z%<7%xZArtvY)x62= zt6`J9EO+Z%V=UpS4DK9=n;;JlLz1~oTNaUwrI8l+F1d8aEP5$CDhAmtozn>pjQu{z* zJgp)Si98ycMm7t}X_aNMLOgxJz7MKS8>alqW8@uc5{WZM(e%j;_a1~saAx{D)waO*Cq5;O)zrVML8)b*8GJAo3r^h!s|Q=anPk(`Wx&`=|(r{8V_C zAu-Ndlsc0m?=mXU5cz|!87!pdLUJT}q`g<=kP!KgMCJ40k0i%FsB%b%{70j5`NWYR zKmDK=XiFg>@(26vT@Qyv61{B7&+~>XR3eZ6rd?|`t{;tRK78*lRHIt?m3OOA=|!R8 zma%NVTeMDvO61|haUhaC?@3J_CHpnQ7dDYU1jC=Hn5N=TFFquAJ8dJ0h4wqD1)sUWnWyztZ*pO9599HSOdxJ3Ri-@rjPP)hJC0z#09{Na8!jnKQgG+aPP>JJTH*hKz_ zh|;^CGp4*vm0%P3BO^-he$ANj4po9pZtC!jtxERzM=;DR@J5@tLLz85vif0_f==Y8g-goYI2+09 zVWk6qsYv6@o3(=rkxQmX3>LL~B7piu)dM?@`p z4`#TB1hn82d3eU^Na%6YNR-R=|3TT1g-YbHMx!!Z*CB5PMP!KWbd?2`bMmtSGIKd* zERl;<1}c%qWL3LTO9l6WBszfCtKAnekw=J$QS&Y$I*#o zLw-G547fzT*{?kBm~Es;mL0f7Te1*|{7HUfa;pul$BJIGfudYy*uo|9C;M5$p1Hw< z`?0Q{qbe|oJpP;3o1W;6BodK*No6XRUwKUURi?*z(`BF%`FXx2JHxxZKBX)d8iCM> zJXT(IDtWWBV(2!nmQN^oEU8G|9uu%D(<3(&8U|$x;k@4I@-;TLV$!vG!4eGsF%WsI z*QjHL0G3wDohGzME_){TY*sM@L>|jFdiPC3LAHd-ci>WI;|jAZ6$t}IqgTTSEcfJF z{h_9zFspk7Cg}^%8WQZ=^+T$Lg2=Z8l5gDRdCRa}J03L)4+0{8YA|Zg=f*bz6n$L% z8KV&ekv}b| zRF;<7D$9!fodfer1K1qx?Hq`w{o5LjS|$0FKLcmG62eK$0P5{(4FWPEe9AR_YT`bMLn(1L}X=(yW;`C1Mwpb~jl1D)qI6k2=m1!!^WvT_eD zoQ_V>knX#TN;E|NJm2U*KZyNi*jgW5v4M1r5eS{g7kyjYP)N(^eTFSuA`eeR%_DTB zp1y>>^Qg+ysgYm#4u4M6P*A&SdT+e>ZcsTSM7}eS+B9qNhU&m2@}*4XKvS{aO*sW^ zxARNb*WQ)dXy4V4peFK*&_s-T+EN)PiK%tGR&rE87Y40jxGg$iP`3sI;HlS)mLge9HOv3ca+!B+nKI-9{?^m_@Bl0Vc z<~m874{r{UuC9FXPd`<)HgHdUKGiaZsGx){w64eqN=Z6ZsyA7$2~`!8=`j)FX#~@c$_L^1wQ(`umin>`Q^tvI+Wl zGs&BI4FyDTLAs|%p)`de`Zc^HFKK9!7haMsh&!?u=t5a!6X*iC95_j5mYnR`_Y1yROecff3{^tpw#4Q+u6K_<#I zL>sNzxz)%0_{&pN4FypiLA0_m<`#~BXvH-u1eqwG3txJ|FZahb-0-Ao!6(XfnGMOh znmg9xe*7o(JA_S?(Nw4NnjN?J++{m?Rw4qTJO(ir%iQAQe)7fxR15)8hC8u8R?OVG zb00lkjgD}M@=6r2EStH7$Nl80|600`i86fIX}X5v)}H&0AFvgJPn1_9Qd!7x3s<#$ zWmiiVGErV5k=oT9w{~Rrx4l8N;1lKZV5QA91`~CF2W$UPIV40GF4v*)bscy7$31x6 zJys?nqI^E87b^(n`R+XN-E&n80a1Q85^t6tX3IiNj{F7hA1a50D8DC?%W6%Yyyqa5 zLqe3_8_Dxc-f=J7R#Z78MEQMiVj3$i6Q$sRA6cQui1ParK}?j2ziYXRj3|EqhA3LW z$ti+A7EZ7lQ4r-1!kaN_J5J{5-+G_wp&`l_un5gsPM&;FqZJ8J{t)cGU7E>}K6J=b zD-b$Sz7R1tR(0I+=`Y^;6_rCmlrfE*rb|0+?YYZt)Yd9|qI@w7sadIUE025V-E47S z6Xi?LS-4!|7Pl{Z`A91f0a3nGqLmdCxAM4$KB0q@u!-_z$gHlPxV7h=J&838K2g3L zT3tkOYma;Asjpdu@QLzTqctljdD@q?PYa(YUm;q%RFtEAcwcra@QL!3XjXPbB~RLR zuoVcMC|`vd;<8Gf_(Trt5D?{cs3Ehq;#Qvf=7ZIH5jIg?k7#9q1>eQwe2;V7!|zhl zF9M>x0Y#fF1v$31-a{i+3@C|?cZ5nDOQ(|@;L_0SOI zP1xcd!olysq+3l(zb}b!ZKo9VhPcQ(PEA5?dyVBwutfP9c<^SOGjmbywlt}8 zg=oqZWM5Djs6_b_QB)awHqfvnz$40^WPRmq*+BX&D-b$SM#^nV%-*qq>ieqFJj$=~ zr>V-`uz~79Re?#A?{28F_G_T}xvIb<%AcV{b8pw&_Dj`)OO!v$=8?HugUEiZA`pr4 z=UDn#n=a5iuNv@(^5ZNDOFnz^1ge)+rOiZsmA^<;_TI_#7ingM zNtC}t%OQ(&sdjk#E|w@XqWtCTZ%kqw09y78)v6tnU*&Jh+P#?!Q=t@QL#MGVw5JZcK^ONuIAt zu!-__VQQ>0d-yu;vHCw$1}ahh9!#OiGL9^uc$TOLM4}A4ueFjhsgo-WL$Mj-fFWiCd3{&Y<(lyIGFqV?K03aelblt|?Z}CjHQlSe2A|%4cv5bh%3tBaZl ze}#MJvO}_&ONXNFswj!@DU@a76LL*ec8gM%%n>$!>UtWrRN?6aDCs-Qf2bGc|j> zyIXE(NEf!YdI^^Ze}l~?tD7@etqjY@ziFYCj*yA)w-~xrIF9q1Y0>kRDnufDE)sQA z>O)7TMLHi5A`$+sA;Pye8KQq$st}3r_u@gD@>qyxGKYHyDjC-|ZC1Lli4f`5l0;Kp zHNTQ^tYY)-mMvT&{6l1_moCQ=L%REJ-d9y%65$JQNNhSYXF!_|R1J7U_(%E9d>jY; zs)-j`PkWzbgpZJkcJb(;%#C?fE9>*w&1_Eymk9ra@hb6PVydn-tFI(fBK$Kvg@kN2 znqu#8HRIyI&AnD78X`pfADq;?TJz>1m1~ocUm={@Wc2Pvy?IRa&=BEY;aVo5pOe|P zH@{1@;1l8BV2Bgixs{gXcrPHuc15w{zeue0b2PFd0NlaRO zy{fhU8uiP~HP}%Z>|31ig$!K2TU8GY5&jD!X(DzpH0h{04uVdE|4vC^Zqm|ES%J`r z@INs1iCFWD&gV4%h=}kN?BF&9uySB@pnG62>pGFm9QPn2!v8iW|D^Gu^f#uPIpTp% zg#T-fUCtYd^~-K~-?KuI5oP=%+4D>g*-cMfRnZXTNzHBFT*-U}${^!$#LYUAiHa!i zAbVfq-EtM3HK>bg1EX1D9nC~Qly__{fhE;`d0-;@Q2S=J`ywOCJ2m$`1c8o|HSDO# z5(!b>xw#4D^*ilvA|lF@o8y-X?8_X!wAqM+DDTo-e2!6Ui{@DbM0wX{!(lE%hwFy- zt+PCeExTE%2#GTOzohM7R;{ea96Gk_qjC*Ke#y7Cd!X(y&#uU0eu>HOWtQLiX8XVL z-_{c*w;aaLcpI|JFM9EG^J1$EztadIyboiyISGl~#EeG=w=7c)ctm(VHQDzEY~i2^ z9ua;Qi=-wVY1=7-w54i^LL)+S(F2!GoGXr@+M`7teji;SCB<=HIq{ixzP7Biaf*zP zwS%3p1wGiCs05w(w4Oj7D&Z|V;-hGsnqP?3uGRL6*Q^e|g~R3N8rl$cbdO$K?o;cQ zm)nyrGKUtmwW12Yu#3Ldw`^c+`64W>q>ED9N%+NBG+#ndn#vLxU)e}Y*IP*lIuU*u zPSl*`I4$jt@j8`(N`zmLvpBJjh_PWmvm4}=ZB-elMEEthK8*{H+}e+; z7JMT7I<$=$lUw^))q+oi_rRIOf$!!g0#3W#GQuyAi5mRkWZcsQlTz)i^aDlK(sC`?=MEDI%KI}1K{5QjvZ_#x!Arc|R*r_L1y4TZ2IZZ@s7GgjdJT- zNJK|HaW`CyDR-Kp05dOn+NQ&K_@0I;d@rn>bZ^HJ)Ha$f@QCnzuy$@sux*7U3XKS1 z9rjvOIj<^FrF!PJb1hF;MEC*R=2yX88kj@%B;FS|P1~C=i135Ew(LEN>{J9>erJi{ zMHHZ^UW{HCNir8Nw&=V`s6==PdQv2dntD1)b^3)*gqOllHMH8;(^Bqa`q za23x;*0tbU540kY5aE@m`)I?+QIQu+MZ;e#cNEuZ^;MPTj}@oCxOI`L z5H1m31ru&mI{BG{Pj?1z`+GWrovMa{2-l%Hn$#;Z9*W-jHr0YpgcygW$F+0uNbJ0f zhvc_*saOXt`4w(Joy5iSdNZ#1+R9!FHW6Ybn21*I7)I zW?zPa2sgoInnYu&IG9;Ot1MTTM0gDotSWPDOvcjQ)_1EI0wTPY<)rO4yPUKc37ZHp z-tTJ?i;s5j%vQR5v_}h(2;t4x)`T7T%BZ<`-BGF921P-HABI6SQ7+4x3~be+6dDo2 zRogr2Vd*r!#u9}_gg3@Jr8YX_`=sTqDu;v!Z^Ha9iZQZ4b86kIs@>@jW@rdd5#h~P zd`^eZG0@vv9nQ}Au^I}LM0iVPDE3%$b|`PKT2T_=M=+U7r^QrxIx{C)nTUw+R%z3; zQ7}Gf)qGWfNrbn-vf*_K>mMa7+cU}rg9vZm6(6lEjs}^zxb-?6jh1kGKpC!v3Qcp2 zg!Ax?IzCR!>N}gQN)$vp`~+Bvh8k{F=Hk-UkE$2~q8$|v%NU8BJ^s_G)rKO!+S{dt zrnH&1QJnyh5bZ}{Gcilf0a_Xjuf@nV)BdzJkQU25Q^#jWm zE+LnL?%vJDl$6bO&LGm0*{#2_O3@MF zwp1>v^)*r`=_LF{<&Y5J9atDkCPC#H(Z8U2Xo&Dm%%y8GBS`e;e<>4xCBnOQm7&FW zVA+MNo?m-`5_F0qO>c}ucoeo@Ua3jtZJWA&A|Tp}ra4DqYb6(DTtc~RSE~^P(e6pf zG}3F;ShUOdD0|yps)vSX_szI(VqZ|tdYWk4{;C3#Xvg5gQd(TAWn}aq6@f^!x5*lS zO{$!wn}hwG40E^baFv2iw3m#lU{WdP=^QE5auGHmCU>9i@qs}&j{UgR8hZ)#cpF$U z*)qcqQGqUZ;V!W0s&O4O*mj%>?}`awY^OH~GiNQ^-lSr+&hjh#m<-;@SluRS+iVR1 zDkA*2446$JxMnchIy3-?i0~8XBt%|Bx-p-oAwWfhpOnU&OoFMkw0fDUp&-IfNn=i` zU2~dk|EGFrh!6wT?idGgPv^jSP4%p8KfI7+l=ww>5>Pt1?KC1uCv%PEOVC7kH`-L5 z=Dn%`j|e{l1883>z&#<=Re5qvqDYAFvnW^bobYr6rs#R<%dJKfMEE(}(_dYUMO~cS zgyBy-AGbvNcWbPxwzln{%XJ;K!J2cqZku|&ttT=jtZ~eOX)veDmsRSsR;QhzZR#Qm zk!VG0-VGNb)W+*Q)r5^+a*wnG91^O)giy{Yj;+j#1a({gM&;1l4&s z%hN6Q%_jQ)F)Df_CVF&-mYoK1$7F)2K1AX181acoExT8TyH4+%p>%u5tmE8Q_Wz-! zwZ?31D=g@)V>pD0xknq5OIJ>gEYo;?I?FXXv&x18?RvztCf=&4E!f4Y|=@}az zwFz~{2PWa4-=uQK1t#IY8;eIcu`pD_0W5ixI45(U68?LdW$xHOC4BVxefseT`b1Hw zZ4jORzJ$gd4|s(Cehi{G+$85qx2M`bC;Sg&N!_u6PWT^0N(b<^`b4<{kMJ)@Xx#CD zNB9_p55av6%g6pdvKSk=eV9&%-W`8zMDQ86lIS(-@}=2&MLfJgXPrJB;M$Cfc$!iN?vuLDfN zzqz5pm0BY?DliHE7L2kzm7$S7oQ>)l9joElQ&(i568=ZfxRWvoz$pct@NYFvgvPk4 zR_k@Dz$En0{v&-G8z$N_6DV@7zflK&XQaX3* z0+;Z&N=?9_!0Z5he{>XY9Jp!%RKni|XY-s2j>XlTbWjNY4lFs!4e=}R)x&5PoIiW5 zl2Z#l;om7EUZm|dR}(pfAQL{O=CMe-gr2n|k|qC!$mb%BcjK@IRAK;y5Yp z|6A@jqoA5F3j@9UhTu7SR8o(#~&nIdWj!vJsIo}m6=!B1j z_x&3+TF2qBnlriJ68;wx86AUBz-ob02{z$>DWP16w}~*vbt=Io{4c{j8WxWq#-}!v zV3Pcrqa7{$7tGbXSI|2r6&Mn?u#&50T%x19hf5F$|6wdP!}q8T4_Dkn07!)YGlbra>-L>l z1%dD%fyFYO9Ig^yUUd({;1T|#s1RANG;5sQxF*(}YfuUQ=W!V#!xt#7{s$`I{{ogS zifwsy5a%VGI&ca9F_@G{H(2d=ClXA;e;nmuS5)&e1|H!*5oz*s1s>u55@VW;XM!w& zNcc~}dRb9!en2DqUrE~Rv`JdDv*f@d{HGe4p@BhnI|7gJpN4Cu@rb6cUg?*;5odhh z6aF)e_@oaxHQ*8cvr>LGU!y3&L8k~r!v8fy@g;1h2t>mF4Scb-8^ zKT;iZ_c(9}|8E!~`sHqJmjMQW@Lz(}>Bna~Si|bCxo1A05&qwi<7oHB83|Z~{|^if zks`k?KqdTt#%1|60xIFZj4>sOZGw6Mm+=3EF(uOF)()72|8I#+_L#O~zyz1@|C7+= z=MG%Le+4F>5#I#a1DWvuE2SAFG&g^s68`^C+tF^8v$nw^TJewlB1LX(3zcY{6qn_e zhfs;u9Z-%@Z283@T%vVH)OMuHD-B^1tvjK+U}2)ax*Tg`&h98QqIG8so<=f03=v*( zT$8T_pJ<&d(U}Dw%(~psfkw3M0*TpKT7@fMoNkfOh}K;(at@7;VPQFIbU0!B7k62z z5Q)~^&@QYfH9VX!cJp#ofJL_+e@Deh?+93OQ$;=&_Z_mY^f%C%x}jg`8Zx-f~>yqk} zh9|8D^Q{?ZMC+?y35{esEg|?s>)|-`1hav!t6kj&45IZ2v=*G3an5dpK(xLZ?a{0O zO=M$0BwAmCVaIGbZ%0o9muM{{boq@9T%z?z4Ev4vCTMXW6Rkyb(uOd%5rIm`QLL$E zm1MitS5{L8AAOBj-^MAjo?7zD=+o7H79MSA3P0bmWk+lj#LtkOuH!)AmoeUxIB;wa zgyVzz1*b1`H3ol0L*x&_e_q&w=hMgC+fv{V{t#@g^4)7#AQAp>LvV~UMIaG=4FcUf zb}z1hMED~Ofjb6}2>)DE0tyt1<1$fqx&gu?{5qPLd~>azvv&<(Kh~KYkO?_gHyOtf zo9^y9UB|J)lO*Ca;;$y*@#}%noFA7FzZ^15 zAL~0OCPTgNVUsfB99+c^@jGhod1aO56@Jy=7oI}zh&9&UalF)%yw>jYlU4TfnCurB zhaOKqNr?!PC_J5g=rMM)p0BQwNTdWZ4?UjVXG1JJ&5%)+&+LdzbGh&U+ed@A_W||o ztgdQ9=Oe5`dd9J=J~S%N$zv-Ud%gX2sX(V*vrD<7eo^Ipmge_1=spS~tG#~IQVP#DsD)oo zYS}TK)P<+MdGkgMGB$$xhjz5=7j4wz{ob+V&gL2$M172oQzF@NJoDyM#l}$|FOM@G1SKhxwmYoP9TX5r2Y{Y8zI5Tr3pkJ58zj*Xf=213I=*2xBg@G<@w_G_JNFbLm+n0uM9ml`*S8G)R9^nTG zO)@JT$1i&6wWN zBSV=?>%vpt@P+eL2{z%kV)pGOe4vvxcK-2BHF%_HLiio%OD664Z3i^MUr0&*00$c3!^_qs(NqVFSE4%OBJ0hiR3-lPh*Jb2;bZLDXGkt1pCBR~<3#753dg{#^5WZp zx-%BA2!AoUsZorgj_{Upjto@7KMfPA;hGtB6VY_6+WS-L+X#p7m%wJ}c|j@bv@l*t zAQOHkc12Za%OPJ1I^i!x0b+Mdo=eZIU+@V3beZ^B%|vztRKka~P0HLIPYtt3{bkKE zcLxNO@Xs_EGe;1Ie=s5nU!!EFVVH5s4QRe12rz9}HF@Z|>U1-2Y=87-g zfI%kwv(fkE+?~9HmfO8RB>W1BM9+?k<)O><)c zkB~`o_G-$iDNkNyS%qJdjS2g29LpDPU#Dach{A7YwCoklVqFUl-V@}vw0OUi*%0Qh z=17xM0T$ssNrjv(cPhXlykDupoIiFdz#_b-FiP4fvXc%9;XREqlKGaC3E{aP$SAUxFFt}H0ebAQ9ekXrJ<-W*s-}t!O%{)^W`F8xOHe;St{NV7JUk?=CqD=8Oh3!uvg< zu@bWv?$m%sc+aC2tOnawP6b$m_XnB0$Px6eH8{RhOCFzD@WZit@3B-N65b2Amk=`^ zX9V~=;r$UcC-W9383e-n6T0yPpDGB4@cxXNmI+Jpyl6-9@CVjfjxY%CMP(;fvOE0u zKR8v{U=ZG4l$~5z@9-~p>D$T%gYf>U?Bt?%hyS7DuTwS{g!ebeXa0v3!Xdnu&_+3# za26y;g!gwG9W@?qeCd*((#u~7?;rcN>|>Z+-SR-ND|CMkD&QpSiP>^Y(=}S@#nUIw z1}A*N-wVxJwesbTGd}PLfA2dgg*tNvdtf^ zgIs~`o|j3G34cFa^U*AvFlLAdfB&YKbF&LF;UCZx^LFJKBEm=avGb`em@4;~dF^E) z^ACg*ZF4J<3G)d$;ZKWd)a({ITM&4JKRv2ZqnR*1@CpAQbnWx1-StW$rjDa4Ph4g> z!XW&EF~}NrlifIae9ga=4hrF8u-HBSLn%JXEfVjaFdP$n9wi*Ydl{~!@-@$iOvJ}T zPzmo}joD$>s5}Pc*vb|n;URm|qPQTMC_*g`(R=?v3ovXc^L@SqU>PAH=M56i$H{GCw)oJTl=2Z`_}W37pTuI1+TL8lH} z!rukC#6df`0KN9#RDEI#XqnKO=V_!QHhnxf-$;p7;7k?fu0BDy$n z`ui=Rup~z8#O}1dGpE@@h(#ri#E9o&ceAG!d(s8GHs#f0yixFm`(qon;04NiIL7K=9wF)aH<%uq4dh54g=leV;NWeubr;}Kty==V|-eO zqa3rvO_HMlsq$LO@&c9czKg!+DBlfA5)R>g4?|O|P`hT!g;D7|Zqxx?_=NX;tn0+J zxZo~bs~gu_zOV`J2e>ybuAFPnY^1Wd@mdu_KzKiFigppsF{G6@s}gL&djPIgJlbXQ z+CW;mS*4&8-jCo~L5f2xV_B~uZTzTez$3gLx3uh78Ht^ULYF&BdH5UQ{bX_r?#)HH zpPW_A7w%z+;c5zSlN(IX)H&w-$GqV&Job{URNqk8LcQ@_wosnv{#f{@0(zfqqi-)VQsciJhP+7Rs+ zMjFChwI#f?@qu$nsD?zyM7RSB$vlu#?Zra}>EYnQPg}mQi4ZQVZL>0Bb`Dn3*Uw(~ zMU}<8-4MR4O{tM(-#LEa*HsvEe8Zj1aBD7snS*;Z#_&l}2g+wK`+{=!g(b@U;2k^~LyLEAIi> z3!hdk_(ZrH3Vp%&fIOvL8I)(O(@{RJGEj*SF0py<)@hY4`hlvzBtnc12Z~{)s?&Vr z+}x}#dQhc0n8>eiPqpc@KRw2klh}EaKaFKi~+nmo!j#VMZL^vfWlrl{V zISPSHg!`eV#**5JL*D7jf-gDI@`X)=SazB&%K5l+DdwZ3qg|ll*g92+C8ud3=2N4N zt4J?7MYXXds!*1wMB6EMMy8`%s*>0eRS3Ug|41?`^BJp4-mW_JLF89BP4n0}Rv*Wm znDr`5c29AT=mcp;Xzubc{cQtVHJW*ga@NL zOK!y$Ix;(^GEj-|5N+#D%X`VYR0Spx9*Uwhx5+lHLQS>U52y}YB0LQ9jU|;;^W`I> zi7f9WmuLVG5#g&4v28x?&Z)z&aEb767+ck4*zI)HTxXS{Bf=wOO&&YlvFjY*DywrM ze z@QJX5Mq{+IvDuj|Q-dQ^A`H+-DMKsI7HY2$G7*MRd^paUEj!kdg-V35nwm^(XJ*T2 z=G4H7G@QYbnZrxFvbD2pM8YS+b_`f1i}Uo-uDJAoNvMcP9n)XDs6(Zo6X8*)MkAeH zTb->sM^#`F;Y`?Mqgr6E`pQ<0s1j@PDpi6_gqYmedOX>D`I#+zw+eM8 zB)>vbl1=O)dn;?Ua+4~xN{#ZhRGw8+@7&5(eqNPe6Cv7h?76vSOVDU|UsbKP zd-)Z<5k{`@R2{V(ZD|o2Vdx5!=!o!5NcjMUk#3m__Tp|9teubH*}{a;+i#)ehw44a zukbZN%XGST8O~@UT3w)&sEF{*xZ<8-;~VCN@CU0C6%n3*wk$4UuJG?F1eplmqEB(m zk*l`N$e9ra2@a)R{OQ~PwEc;Q2+^lr zm7EFY2B8HfG9o+)4?NAacdHvedE)witJR8<2=V_-$E0#%@o6g7K;&0=a!bpRd>2lq z*5Z|p=H}&X8W6-pxCq6u05`X9XGYGpLXi>SDX@nNV7iC5vupQj7|;>nsYu2`T(Q2L z$r#cgAS1%Xa3$;#S8gHDI|rQzQNjnoj(3{-S##CrS&b-&a0wo_Xe^WE$}dnkBt+N= zbHw$oxi$G*Tb5>WgITM=KuUy5QGyJ{uDRs~u~CD7j0jIh-;9E&_2=q8ta@mO@C=MD z)SLCU+z@Wl5TGK$Wf)x;LenZ-!#v%kLXe5@Oqhj8I8pK4tpPwpgy2oRtoe0l{^=Vo{$PMF< zRw+6ntRV5x6gyY_cdHQv5q6{88;iKP@>f(22@&?7|EHHR@`AZ!Ck+NtBJ4#EFsm7J z?Zqm&0qm{;KtzO9^#0g#NUna0>Y*XRK2*dqxwU`$n(!slGz{p75JSVx<~q{&_VIpd zs>9ciht5{mL3cH5vq^c~m(aZEXd}{aIXoZhryEsTMAHHy5e{U%E{)A3?RsH>OhjP?pS zJ~10i+k$jS(TE`yBCN}9NzJ@$SgmhQATL>|2#F9WE1vef4IvQWs+N|W#>WO?FNmQs zS1ZvY4cW(Gv?&;rWW%dEhz;9R4PJVPst_b0d-^*iZ&yL^_t`&t50ZvG>z^LnG6hxC zH{c9@rez1;Yp8f*D^?4dHaw6O~qS*S~2uWBfW;0H2YjnsB8KU1tT zb`cQ44@De1q0qEX)QDN9iXtF_2Veqp%TEqnM60~2I`*iy{>E~JNd!N_csOq*jtX_) zg3PEr&%w=<%>hh*@zVEb01y$uk8zj_U18zebmd*3bWn%@#>;H>m_F>x-&R$EO$4Y} zvk#{8xs2p}Tvf3)5d0KlnOVqmwJ;rKgh&JrVVpR%yKj6HFSBB`$tBexM(9NFut-Nl zRT&fy5l%9WrR#P?qXNHS1wto+pJ8ip@mY((Z@fYrDK6VZ6<`qoZ2I1ozi@6wdFXH? zG$MEutB+Q)ctDPd;!TxQ;@Qz@D90G9}U zg|wo#;`mZ;V>vY8R(#5Gg-HZYO;)Rf{lh$u_0lt}BzTrmBo*WKw0Zsg6->EvwK_`@ zJ`up=9B7XfNU*4Lh1aPNWFkOsH@oI|DLq$vi&Y4p2>ysE!iX_%$@TkhEB9$KQ82jV z2}>Me3b918rqf)~lrmImpd?@-_>-|8B7|pAtqeJ&+82dR1b;@}Y@ADR0A(>QI>oo? z8TL^dxbTVKMaT4qw)7b?k+)~@-l&}EbzWbEV@t&FX_Y7!#`DPK=(j&GoNY zqvvJIR00|i+=Xlz?+$i!K5m(7?4>t~JtuDozutuKF+~ulK z6Tv4Xt>XjRQ4t$e4FwS(L{WF*x-GH3IXTtU3Q-WjrzO=;<9p#j_%r?4sn%K)HWAzn zhfCN?*Nmil`DMBaAS@#I44Mpz)HTr4;R1~aK8qPHBvOUxnxl09i3mPt1+vSV7CdZe zLL!3C!!^qeUY#6a5WyEdoudnZ2)?#c%YpJe1<2;`mN8oCx;@(p0&RHmE5JNqYD4N62QQ-& zq_Ya6{HEFZG?CI5g439ebwpzYp9sDc)8-7Km#tDQ_(Xugd_q@f|J_vhHOi3HuTN@u zb*gIfe2mMqrAd@T@SSWQWB)0Z5qzCY#CXq+_!h(X7_--mRjs>_E+BP`19>O7l z@8K&77^h`*jGyVL-Q~Zx#2IQ4s#@aakFoE z`3_3{AE_-Z?fB>3AiJ`yty*YA`y`}4l8Donj%i;@7Anz>*!OS9#K}qPG~dD{+F^dC zC3QF(8yx|UtnB6LD+-@z-wCTvN$nE6Z=aFiBdtUPMElNY*O7Q`)il&}k^@zOO|(yr zN2|(NS<%i^F$6^WE(!5KU*A9v&NyXM=j&7q0nxrIrV3G-%~Uh?nNp*yPEaZ6L_4aw zQONcDiS|8USfkV~u-De6TI~`Qf=smU z8E;D`%QK4Ube^d?aEbQ4;t`%afCu)XbDWKoo^9zuCffIo7tW#zjvZ!4x?Hv36Ycw8 zdo9W(v}Wvbw8LT5LqoKqGc_t^(E!%&vg00Ct#&^7)s8Wu(H^j9XyQ(n)%hv~ooL@L z-VRT}O-Pl&Ipf_KedmKJhJa|_AO3HY=TptYjM*;2<(H}&3ZflTqeiCfcXQyR6Kz<+ACN@;X(5O|%~vj}n#B+xYCM(K2qabRiS%Fj)<==BU-Js#EhO zzuGazO^HgV6Avk-lBx3;VG`{J#oIz>ZEyfb;WE7N%hg>MKGA+~Jf)6?px&i$iS|R{ z4I!`bs+T7MqW#cBf@Q2SH?^*6J z5D%$X2M+nw4v)XlUyKg{Um~5_$5aYB(S8K{=h5nzeCw1Pqwlbk8UG~}F311ir_trW zx|0#5qFJlMpae~{zZyNOS(!NqujSYc1=0Q*?9Mf-O_d_m>G;(OiHc}1zzrF~r?zoN z?7&;?pFJ&7`Q<&l3$``!wIYt@;-#FqxcMFZaVfr(%W$vOo^Asu{l)&T{I~R1e9Boh z>%#H44j5A^{!Enq_J)=zcF3Altq)Yv!_V4xsw(F9mEg-Apemm1PnSVeg)zsk^lz+0 zSfL#2PiqEM10GR=E2l|>250)ys+Fn&lPJNj(^+FIN7PZ#?pmM1n>`4I7e!Fq?%#N*4||4 zLM8(A3<~+_K{}~hR0uK=z&qU6R^2?gq&Y3p6(=DQ0ldQfRm2y@Q|0nm%N8yXz$etm z92M{t6~&y#0KT9`HXo}$wN+V7<(sOD`HcbGz`boE@mWMVU*AJ zdHS(xz#{@!6;0j(Jf2lslU0U4Q=M8M`4zzLJIE$acRS$_%hFgn)+baQ^ArO(f76p{ z^HpV9{EUiY-eLd`@Q{QUN6D+b*^&QV^)at8fFpQtLeKTmbo4K(JmxzFdpFCMV93sn z{U0iaga}}Sld;Q6ezsfX%P#R2;c+i z4wpF>oZalNP=&CG0RG=Jo6e5PIG)k%HD?)9C47bYP{JpI1EMzBforH|XU#vZc$H-f zmk8hhsuh85w3<1LUQtwG%v%iL0BSa^&|D0cDj+p=!X^SFKcO_YpQV&DHBQZ}{0iU( zCY0v(vXt_5s*E{}0h~bXdM34VaqXHJP11#Xf~sR~V*pn$rOu99XNIC60{DXQB1Wr7 zd%9Pgq|t&*1aJg(o7E)R;gVl*no2<@g2R#}WsWAM^SVrxU=slvi4M~CgRQixOI6yO zdD2ntcx!pzfNC6;P)A5G-vb*05Md^MKoWnDox1Y{zB9n$8q#JpLUP9^;iwOFDI z!l>qPINf2$ziHzTE)kTY$}?XBrX%~Via;cS8Bt_%j|MK}i9YR*X5UxP8v&OH+M}%D zRMJ@ER;GsPQOgx35gZj&fPQ$GPUMp+1CFOuxcmx^jx5>R%nh=R zvefyE(23v}%qgp83RFqlA9TQrmQwl~shBUlbRf>X8S<=!v&Q6*)~UmDWCJn7slHNm z5(5z&i*wuzK+es{?qjug_8Pm8lFICryIZB`h~Tx+XfbQy{J}MtRxU$@X85pI>Od?C zA~-Ix8c-YW_f&b+DjhXPa|nn4L!S;*6k}BzrI%J~9~K1>ygsJxz%}Eu*DRICVKda) zBt$_3$4BjO*1|TImE2~Rut19*0(IwSUoFMJVw3k=Tv1-v0 z!5i@jOGY@Z47^o?fQ$&YjqkcbY;o{10#?X1?uq6wX z2xdjoj#&#khp=a{ymQsS5N_m5&$O-_vntUL!R*LxKtF~PLpXn&UfH;kqc-S7fJUN| zv{?&XIlaKLg-ZnR;MBrFhxY?BTL0xL1CADd)}rI#o`C;5B1<)B%x&ixe}LCV_{zVdFXl1PZ)B$zAAknDXF zx#};e8VVwS1vp6j2Qv-GRo|;>wHfj&IGJjh2IQ*mS2Ywwut?R$iOE%Sz=whePC=(Y z%CUf!D}BTYgiZvfO2pW5HRErt`j@JPf(RDF`oQ7zl)va9hA5;wm z5x~SwH7ixQO8O3JkVPGI%2=w)Rk`B-*vLdc1WO_2@>8Dps-0B~0TG;z{){!KT-~0k z1D6QSKoQGARIZS21IR>xsoZp~M&*iif++$bI1}>*y%Ho>Td)e@69Go7X$$Q7NUm1B zap4oeSumQ7MUq^(dXpj{g15tD#aBvl15j5*L`3io6dI=1=GCrTu?~eIAcFrx;u}jJ zxpKAGA|ZlzMsivI$dzm77YPw`Me>O(&{f(lMM4B;!>35Dgyg0`3r%E1P)P(aVJf<< zP-H}a|L-7^3Rx4$O~8PvH5B<3^uW0=YCCM@>PJ)$4H5LR2+it9u6&isAt8b)%&=YT z$d$fFrJxf*A7XB-ljO=TP&p(-00(WFE|%nKFH@~Lbn+`$4r6N8K5~_GQNShwRKavE zfaHpAvJw#x!8sDGtV!f5Z&xMQM6d#x)fI_c?Omz`p9lt_)n$oX?Wa`>J`oHVty!DM z)qYX6;1dB{;c2?~lB=a>p{}#&gBqHZU8BgA-ftrlIuW3ePv=5KuJ{2JYp;-B!MUg* zvs#g>q*DPl5!4Z_ELq^T^4u>Eu6n{sL_h?iC@Nin$c^|})q+n1W6-LvovVFbwcr!M zIE+VZEh1O{SJgv91S_#KJA~7}gGn#I@gc~SbZc1hRy zDgliM-W5e9<3)BJA$cs!DAqRMHiQwIl&bdXp?nKKLE)l?J?_-K2dxvzL zPMm~C1niLE=+GKEJ3?`Kr>Pt&Er;TBXP_yA7En-pg4 zj;>P!CM+WOAgefYb99}yBB2oh1}s|)^hVQZQ@T)z;6qqFGHFvkG_AVaa)n6*7e*?_ z4&AzqssfV;E`o_QamAg-bcBzq6m%lEn7M=Fk-f{d?m3l#N(7g%l8wKTj*1orJR-Q1 zec7=Ov+fm36(SK_#sYC|rmWvZRbUbUiq|K%d`>IB(Kz;>lSrYUKQn^}xu*yIs zf-9n^GPgC>7gPft5x}V0`pVtaSYK8t=tOW8%fq#)vHo?c0+R^VQRUjxSU+1;U=qRl zhAMkYWBp000+R?f&_ua+G}bRs9k@h*hHXu~V?$%TPPBwb1n}!@MQ86ztUuc_g+~ON zSkcaHiS^4>1}YI;!_si=FRUL?6_`YDEmf}Vh4nft2$Kk|qnVOLuyi}rzArQ)xIX)f zf&l5v=@fs=vV}_o$o($ZFTiF+(yjS|Wt9F& zCQ9YyJzAzMF(l5N}8f6i(oY$CW>oZPr}AudKwC-JK)1)T_PF;1=|QKLQCK6c)` zf4KfzRw4o-_y{~k8*i@ZU;llp5IzyyDh{$qb7Sh3PV$4Q1e*wMLl3e_r&WGbWuOuP zDpoJ-ahT;_sz_Ua{0cTlIm|bfzg8{yM6dz0u9+Sr6j$d{gbjKE8sfrp8zV-=i=+|S&T8-JwiVX|=o^Jj3= zaRCihv*QOSrzu1JOn8s%$qfTs*I*>664;=wvbY@!5nv{!e%x=M~W%N49i8~HoS6BbeW+FmUOn?wKcn_Dx_ zSZ&x<<@ZpGriE&=*CNH`_Ttxc+uTP3(7KjirEg>fV6S{l2QXCwfQTr4vn6(~()Og{ z5Df%Eq6ABPFuvv89{H8vl)y)~KR)*y( z$F#6dg&-59A7SWL;W$oJrbUA)0+A^FI1+VK>O)7TMRgT{NR)ok5aA<(4AE*8fk>3# zq)fHRTZkvwhItrG~_Z-UHm=|2K zz7yP_g)QL{rAIJcB_8KW*Ok(RN|YXjr;w1%MpNt^u4Y`ywc&BA5)D!MIr@H5?`+La zs~i%d^o!=`a~d@VGiZp?V{k1K(a*_l+kdhO;S(if=dgr!Ze^&_U!7g6HJ zNkh;=kYA-IQXvfVkD?9sVj(eI{QuSvpdw0emy^Xe7a@$q9<+%PuyK;g)x(xwr6(~I zCbA&U_TZcnu9~Qz7p2m$aTg5)LZb95?06*t(Me2Ny|>kff+#)JT!S5z!M??r-$!gb zz^X(;l+Y@YkIIRmNk@IKO0^NmuhKIqDa=h;dW1?rCrZ!4)F<+sV{|rp8URE@33HWK zH3hJ8V055+U@+_MgNNGz$6R-M2Ff7gIPu1L8iMv=`BnP8?9q&O%jHnkd@rsI zjAn`7s$vL;((}zFu%y~w#hJwH?7u2k1DZZWBK%PYYN7kL^x2slLP zmRYHuAc!oj$ppQmc#>SFE-_N`)X3r8_bCu%}P)-wa!R^^qz9ktp4T$;Zi+?lrg|cx<^dx{@lvCQ2X0 zB;wQx94@D7rmDasN*|Lc%bI#+XrR}rd!6dQCB&FbHvKg5micrYp1hc6?fqgm+~Oyf z8KM9)Z?oB?4WiV?;89`yuy)eD9ZOJ~eq*`9BTCC*?cA1N(+esAjVKMsu5abMszjA) z51am~3b2UMIkfZVj!~>Z>a0&(yBQXeW?xiPCDAaHG=6&m4U5F@T$u z(;1|b00mK6gX(BfuWUR@8aWtOf5R$-Pn6&qO^<8wo_+7U#-qgz@%<`RUrK(J-i11e zi|6%b+-G$41F8g@D4pLFtzL+h&hNu2hJYx&yQ#EJAMUBtGjsfys-YlC?}5!UiN;iM zFtdi9QWcm)>Ag&_s?7Zu8B2RtKc`{{h|>F5PTFp>%ju7nFKnXpevBt3vG~?wAmiGa ztN&)HLL^EbVEJI9xiV_5LUvT@zf}zdQG!L=+eEo6YcjBDl1kL@$*dpd?BNIU^K%{5Ct3Ycv#1ll&@Og2`MuEvCxT#qkjh03xDvskCWU0E|ys zb*HMpBubaTvf<`;>mMa7n|kNMAWE0-ifOmmEc z^YC>tzG=(oJDaAc8VX_thGQ70h8k{F=Hk+(X)1<*n1S8_%NU7WJ${qAa>6HOz|}rD ztnfwOhI{QZ%;~l5O%)C3 za{Ip~ptW(6K<_)#RBoE3a!800y63B+K0x_=_@JGjY}9U6r8YWY>VQtFI3Zw?|o zncZ}Xh5;Q>x+;~6YJH6qO1kh*S2-j^X&n~El1Wf`M)Yr2Jv2mVJ?7FinGwYM^Yl5& z#9xUL_E#~q7!NGFkk7Hy8NZ_hefjsMH%1~nd)O~8K&11go|FiP8PA*M9Eq)!T$FL! z-X`_GL_y5>gOp4oy;hAyyNqvnH|cmU8e#@!0vPvA>JRSW@9x>^SB zq&UY!eMdupiYRT80kbIt*9>OU4>SOXh!TpvISG*$k#5WnY6x0k@~d>MH0ERyOs%EW zkE$99qI8`!=A_y+r`hzR>Y*V@*TY6*9K?l$1Lrl>vv%9kFv&=44d?ZwliN-sl5{fv zWBC#^QTj02RF3AF9aIAzQMv&J&|a;M8zQQ!^5naz91@~*Bg$1gC){(7DSDoIUsXdv z$b#RV)zw(k#gRl9{>0Nv)9aSzeS>ryhx+CYx?I;$8>~5(>#jLSrN4+tAA@Nyho+ZR z>a$j-ouO+ER}qMW_c(kmd`Dj!ulH1wHd>w2!nx$)TtR(@mdP+x)#P&JAzEIA(HM0M zk1dSYM`6yxS)OjWOE=#C51MYtg;@O-K0LW)uV}!YF)}PSDW{H)6>g42a|;?Cw#aJr zuI5x7w3kKz3Q_pTp)FIzm*}nH0_CwDdF;7srYj;Zw!r9Zfgx;G9_>_uO?X>j=zGjd z%r>F!_`oE*ZA~h7TwoI39ay))VS%9<&OXUon>m>SmGJItmbqgCmGJIDckIXOyc0zQ z9^rj7p>f9p9^riq;}^~q$ zyidXQ;tTubWB(sngof}w?bN&DhlcR(hTRyd3=N?#^o`eZS`3JU_nD-~9TSLz_gO4s zH)84;@9WEn4P?UmTw3Uk5oE&qJT_T| z9$d2nSILt0_T>(A!n-F+>W&q3!n+qzGdPWQ#fB@FVK3-vhsX=JVn{%8hqg}%Hc_|@ z_tOsIlJ~@bc!2%0{E;Z!KB;B*>TuWToimi48V$YMNrv};0c+PWd`o~ew!~n5kQ)0! zj9l1^!QAFNkqjNWyaQw5PCKDxp9&t1#TSc}uI{5;rQ_+CE=mtBN=)M(^wgCxnu8M> zcLjn+c!wl3$2ijl9^oAt*NnOI10LZWme9EK10LbMDxq=b2Ry=qm)0n^F?W8zBfKLL znq!@103PAJ8V*Lco|VQF4PSRS{4HS;-fJ2vT>mtZqXLug3h*y_DnlcEIFQvfI#$E$ zhpxy#B|NNS9hj6!08Xhcdx_jD8uv+KTve;}I#pm2o`)VCMJTG=_`oJS9|par)>9iE zA43K)+3j+-DsTy}HKlX6EN}_0Ev0j}E^rC2BsBq73R4pF{n1g}An&RPPzf)9n|)3N zXYuMzIw*t}Vx3d&-(G=FEk?WG_S!3eoLcY+uPkGIr0ur%P`lCyGU3fgMA|K%N<-~V zF!+Smj$(;LDxXWcq6C%jj!H%;pG@aQ2|nS?Ola|nR!^;0HUVAnf=_ryqhmCZTjl4> zE-C1QcMO_%L)x#`?Yfj;6W*~&rGC%rQi4r*uT50x;J|s&hnBgm-+RMn~lS%iPugKHojzD4a^L3GdAb_MkQrkHS=(ZQw;^-&4Zf|sd1OOD@O1LZ$1W6YVbJ1@Cv62 zOu}1$Hc8cJWyE~Y;ff7h!t20M7(95>vtksBiO!h7BD{qdnMOwjR^${QD1>(svSaC8 zBldu;D_LL?-dh{0Q9MqHhfrK9FbVHuWM&LIE%^=)ScJC-8`opwc+R%EN>07IA_0x? zPC-Ljh08o;Rya@}>*{s;9iS54sm(HXuL70u7B|b>{R&jVJFQvf?pdG`-jXKSs5@_< z5?*Js%$+w-32$k$%$+w-3Geh~nLBTw65biu7&DW{_~h$gZ9d*K^5Du&Kc!^~Ctssz z7H&&{FbQuNrh@3L?lBJp!aEbo)D_%kKRjG<+i{Qx?`;UZ8&|YDnbRpDQ0Jfi8VSNdgF#Tg&?gxA-IPx_Ek10Lb^ zOZnM+jiLkxogxqkZ#hKq6?mrzM8X?@Llqb0w+pZd@0=!Oe(M06@K(U%jK?`a8v&j0 z2I0@grMWEyWWpQ5h=>!bH8>KZ?sfte;SIww_2IhB+$caIyqXBc>-i-J65)+lL4Lu3 zM0n>S6Nq7g@&b$S>R45VA~z4<5Zy*;jNC#@@oWC!dnCL9mO_5y?{%2=fQkO zy4>0UlknapvB_@Kc8pEn65ja9FMAbTJa-g~4pqlD(>4^+Z?FKRp5 z_j1-YScLaJL=-9VYa3L;dw*P(UmlQQEU?w2e^dyLDY7n%PkEs3GV`Q7fj^) ztIM&LqB9F5n5DR*1C8)5g2e1Wt-?JmZVv=B z!n+s}naqu0sWNBq1LFw5UQ*RyiJI6r+lkhIZusebeF>zhd;P|N983m8mvAee-AIc(s__~3|>3xd8gN9H^C#kD=<#fE35hjx^osm zK_a{>kq^wuw!=z*NqASqRQY`ZOu}1-uEe+|=n|k3-g-DIl;!pa5D9MsN_rH{+F5EK z5Z*?#G_!q}Zx%o!ysIh6&pv2`w+Z!WVwoWC;1S+6Fmpze>$8GIc-K;qTU1~X-gQQS zZi&ax+~oxp;ax8|!4lq@?h4M#xF=)a5#EQT!0__zV7{3Fjqq-Oi87MyG*RFa-i~g48pq!tz~R{)a~JeKzKK!J(|UgiEIprgm(+Z1G8_u9X$$mtrKet zIvpx(X2{sW-hxB7_E0oFI$v=5LT8ok-4J>Ez&%~qQ=L6H?%pKj8=I_HPK>F@QvP2cQyApjfMwDW`js1&{EiqM^ul$NEWk z*8sK$o!J4IkgfO0IFi?Nf7QWtODJq15f!*~2fTDUFxr!->6#@JA7~JZKf+16QJjRS z4WkLlM&9U*T7TyGy5f&xvY)iH?1;^UMDTyp;C~e3{rJr-`$hYFcsX)xxifeKNfaN% zXcx(r<3%H<3QVH-Q}oN|AOVdiJ`9Tl2@XC?AOevn{!Bj6 z8>sirbmj&OqWFlik9M-bAc~JF`xqx145IjRWgqKggFzI3q3qW>*SQ6-=V|FLWSPVfPdlLAi!^5Q*ZyC3*5{>;w^kM-=~q0mdwz z;P7tU84FlM@fCDaqZmaU;rYoN8K^|@zZfs{7>bl#zHtPZDE<%Y^eVLZ%9nypc=*RY zSVWdbU-Rlqc!W0z*;CB~c0s6ww?nhc*^z`wcsn-BoE=K2gtwE)m^qn~n=$YRZ)a%i znh)Glw`(Rm!kZjvBpRnF5gy^~lF+z|0X)Ln6~$l4k6@07wMyuA>Uo+`?X2|U8X1a%M7Gw^jU z?oGpl#eQ!eyLY;LDEQMfbX#P}hH+ds=6iNakIo)|Cw zkYtQCm?BP*!(%p4dAYf(p(=b7V@Is;nkI;cY_inCjWNkhtt~ru$bcN5N*=O7nFx?5 zd~ENQea!IJ)oq@vcdRlMzfJ|RaSy!Dn5JvA(u z#3z~w;{%^4ezOsu92j*~zwn6Sw;J(@X2STuCyL*Om9Y84?MExR%t;Jqq#zT;@8GM} zX5oY}LqrtsYl=BHyC4(A`K6<9>!Q}B!J;);_F3Q_npmXc*^?<9jj6z)c9COlLvETZrktbUkTwljP% zh{9(v{p5VtDFBHmd=5?09O^|69Ct443ymmz9_`9X%r>qw8t{n17m#nO!N!hL0TxmC zqRhVKv~kxO9CE3xN{ANxaO~cDELDg^;Y+yp4pa67H$K$j??mCts5hB-JINprg|A>7 zpWsxwaEQWJg`a;GT{uMHYp6GLb2D9bCI}>=fMF)}t=1ve+CR%5iNZbEBkzI-FJGbb zVk}%4zIM+)3SYQ~VWS6Q^x0#A1MtEj3K((rQ@+|3XKrJIQvrhxCth8n^2Uf`G!!CH zkkKiM3!;f4jEznO3^;q6Nn7p)jL?VzhL}C^LV0bh;@*G|5>dd=vYVN*Idc;md@mS-2Eri<7(e#Vd6qL(u`#BAu><_vj}e4J6fj=kMuu)& zv+fK&Hl!3Vr0kaa>3}eZ0=&jOIe%~l4-!%M5teZ%=vr=AuJOq?GVaa> zI7Hzm;7{-+gK&t#gJ|x`&u{J^5`~{4k_kR~5Drmz2$96R<Je+NIV#c@_vwvcOcE{5^_#kdzxUU9h+My=P4f?qIegEs92$P&6fK}n)7(V#Vgf?6h2Y>C^kjn zTHK%1T&rhpTd|Af3!5l@4A&CHm2>SXLsJ${_~HD$R15)8gg2gub`hrOP0Cr1U$&Df zW4?P4UipFXXqU-l)=kpsFK#(er7$t}2+5#@ezRyAMKY9*z!889vis-O(!m}QfB!((_$AVYb~c_%!rO0bDi zH`df+}wbIgcn)?F8Cj}sPA>Xi~R53XcrroVX2iIyomqEtl% zB`*8VmTF-Oosj#9Q(x^@5AQw15{j`YQ1R}WdSm!3e7b)IP9db4z%^^EtnG1z-_p|d z1WL|S(;WR`J1zT=%0MOBehIh9%IuN(v}(Poz$Dt9l#9EhP0YbTRkS+%+kBLqGMc&w zCjz4FR~T50_$2#ja!RC@N{B?;Q&^NRBJ)H8{)JDVQ$lUtLMGbK%4|{>|K7$z-nO&n>RH7l;{?LL~+Y&8)v0M?>JGa_b!RNH8a;E1ZLZa;jTn}l@ zVpdS;FeY22=!iCy%C!08^~LzqAn$#`Yxh*GmZJP>`x6R%!T5kYxmp>N=TDoWJahA< z?@$@2MBATXD8$4%tw4uqEEQ$q{M~G6fUiVMS6(-U45?Z6gI>#DN z`Da@AUloE(v|(E}E?guZR5j=G`khn=GSP<3-MCQ7G%eg+g&-4cNdDAVQaf=9GJO~2 z^;1--nU!B{@U5qdaz1X?i1{e#Xs4-IopB>ZSDGebzGUaP>F)Z&RjXakX#b6wjA%RM zUbJ*{o=QL?+WrFr7)fSjzLIi%S#{tNZLeq^JICtdJ@RclOm~qOO$rRd}B#v)qFXHKau6VzE1;yh$x{O=ySNv z&UyW)>a@$quhPyiwzk=Am$AM6d<_FSq67oHGtOwopCyH>{8eSDd6r+LU8brJ2IsXy z6sfwu_Ar(0W&hX6_SU-if0ccCU>#N2ehQ^!ZA+mgWfA0_k(n!A_G$rYJ4t1r62<)@8TJpdWiwRvYgE=KsHQP&FvX$ql zQq8OUDmF$+yO5r(tf&%fqBxE9I6wSmDO=d5LXe5#fsAs2y?HQOIjl;siQ++2o?$O_ z$yT!aflU+-rgD*8N6l7VY5Bq?is)tbs z6fuI?$~@cNu9B_1O_g91#lz5MYp)r(Ex|gg5I#|SGmKnX%h5J%5k{<1bVTuRq`VvB zY@5tGI`9EM*3jj7@7RTOFnT)77ROVE(%SuP4UKdPbDhy|Sdm0U6k*s7p*Zvnb3=Gs zLr`-lzlsKJSzN?i;rCPsGEwyOruQbfPBt7lbA$M?1_2pSg!gf{J{62-7Wz8ugTJ}K z{7Qp?lqeoi7mR(bH#eByYcP-!MXbae)D+%WJ9=((IwcySh=HP!iwC)p>$E@wL=n!# z0qOzgYSoVwK2dxt76kIV=iC2nsX`=*M`ATtMdCTn)oTUvBELgj644Sxc!F4h4d;Z? z0CV+wSe0mqVhOGd_2N(G2B2fGh=?KvS_DvCiL0uIhj7WBJAhN}TDj87L_`#iMng_| zH|`)Bcif=^fyjvBF?fJvw!MHjbhJlpKzFF^5G7GO77Ylq($U4*>O?>k;Zz>cmSy zapDJa^P3 z8M8D9O^*C3z8$`ZT_eja1iCSx6UBF62?>KpYj~Aku6mKxh=M3$f^uMOoh?_sROOHm z#S>xAxO6qUDj!73+D>jT@6})+C5rF}-^5_-qFrtf9U25=L=hEpP!vS9D_8$M)oW$S zui`r~JW(Gm;N^zUuOUE16i>nM#1LG|cz0Z&LXe3f=6VN5!qJNF5)A+%qIhbo_`*kk z^1ITNRwy!}I1{ZXT1CvwI^8HJh$5QwG)($NwQ6_%tlMftK@^)%^w^l%$sYJo4FM{m zI9r|&kY$6>4bobbLqZhiAo-zO%usITx2PHlqBu8H;~U}y*q+N(e@4|%5XENMX$Y@J z%awjXrJxfsH&kLil?F6Yir24^6#n~5~6rI ztVenkB{!I7H5f>V;(YXq# zWE1`$4Ffu&cm|dp!h7%HyVo6iDRX!7P-T1UqMItV*`%EQJFiy}f+UKt{gdo8AylPB zx2s483Hen#GwbbC>}4@k>Li8SJ;%a1*KI7C-sn-?1W*5XDyX zpV|QCl(OA`P82amj|{d`_-jiSGEqDWXK`>)+}<0Qs4tz(7WX6%s>+f*p^AF3DvB6t8MKzAJF z%t!qq^Ylk%FiJ3q0KUS(b1uM1r54OJqxRf{E8Xe?Xxy>(P%9G=5quFx(9jj;%}!O` zT3_j)5W$03P!i86?8C17t<}CJY$EuQE{E%EFe7bUSMab%`$bjmk$l3%Zcp#ut-Va8pc4UHu01lJvtE0z zvehY*U%^)qk+ALa)Kxqsp7rSPS}l8_6T#P1Iu{qZx8nHpP{wvIYFi~jCxWkI?KHO0 zH$QdmVfrKGM=V>oM1V!UeXS936(*ZBm_&e(rY*7WvFn)YQon9Bq9B5ABCWEIh1TiX z&R;i1b>I>KoY#HPA#gycqqg9g7`b&k5hf8lHcmT!_#|$$P@3u$cd0`cJV_}k^V?V^ zo72@*#+*3Mp}gxKRwH~OfTJ_j9vsM(vV_zx5_#}lbVe)9IVHAsHyf3(iQs!UCl$U@ z40*;&^lPW820S8oO6ETDY1(MnTsuM4P!PfQ;ef$wPOU^|R?K6RA(P)4tA};+if8Q! zRw2<4!4Ht&$X4a5Pf;}#M1TezZpY^eb#^CYB6u2&Av7I$=eyPbQw?dYdf&n)f*-*P z@2d>qRC4TnHVlt!u{s0@KX@EpRW3Sr5$scCD7%9!+dAu~HfRZ$2%bSC{h=(e4Ztxt zc$`c`^2Dw%QyK}DO4hW7A4w*6hnH;`rv)cL6T!0>4Jn0}P$~CjimyKT6)O<|5&Rf+ zNAVJzW?6*${_rh%{aJx!<~NtB8VVx#iDNReTDebphSRT z-FH?uUO9HEp0iwG62Z@qDHT}1X4vk=q}#@yR1F0YARSXwZM~YTW4&u%P^G3?eg(gP zB~9Albc`>m4qQSGB92dei;LE%gOV3>U%Uqz79Bb2_?*7FIhdOYp8!C{Jfj4YVkT;1y;)fBDfPx21V-dDb|m-M4=JE zU6`*zB2}2Gx%C{jKq7**Rv=r(X~F)MCL|(Q2QM%?_=A)U1`!}%``SrH=)|WR{(25g zECEP^4LCrdoy*aNH{55V5GoOD#1dR>mRQ$3GEZf1c+iSPN(7q{3kP+;GD2-P}3~|5Wxt(X_U`FuveQL(Y9HN5Qt#&*oLX{aR$iYNwCmp zrRsLwVO9`m5b`V7j>cV+W{!nRUw(16D#0d#PlWrZVWf1s;Gd>rZBi}xMDWR&);)|) z{kEDb;S<3I%0q>8H?%u%V`t+@nhMcH~#-yYXmMIWsHT0Tn|)l)je` zcXxJnx8tx?Ms==MF$6^EDa@gxG>0?dtna1PU#e2ji4rD^wQ{zT>85gjI>T417JQ=g zgLsp``c3-O_4?~o1}ag)WO4r}waxb0nN+J)S5U}A>FIb|nlCSRrPHb2g>Z?|kKz%| z@5Y->=>w(f)g}v>C_NJ|oCRf^f6R_l`-$+0(zDoTi*gBVIPN*xp%$uWh!W;=wTfBL zja9ttxYc(SK2iEfyggv~FpN80R{zfmgie%x8gGXSaV1l^r)jt?qwnlcF$6>j)3s?) zp3ey10?T$U*8f}8P!J{Lq}DFZ80hZ8Q+M_4V#7EUYPRK9=@;=XE31EY-qM@;S#0a#v4LTu^qV)TC5iO~vZPAAFR0Sqc`a?XqOR59yE3ys5h7J`&K$QL%?=PVb0be4W+LbB= zohbbYzV~2dNItsC9-|*66%F;VT^pv*G(Hk2v8BFKf?{_#W%lkN38O9`)BU~(y(duh262iiO(i+Mi`Gx%*O4` z=#NYA$zIC6nlb4wbFI*i4JtlHiUXQf$asBrxesGXSx!3Ccju-P|Dt2I@ChG-#kfki z^qokj`X%yb!hibYhJEdDH?uO(U9KOxT7LVodK7-lI{Gkn`>TqdC#1{oe{Cc}CVber ziB>4zCe&%#R{czywD1TYCQg$G4L(e$Q^7rb!*Yd5_%Lsp#PBQjtmr=XWi4n_Wp&!l73@bC+cbkMLp7 zs2NUqyeD6C{J&HavwJ?Q*(6*3bL2+mbmHEsqL|t9Va4`S5g*=7mOo14Sk=WWo(~hI zkvS^*9V&|1Iv)l}Bb$rWt?H^&X)IehRoznI5 zz`1f+Qz}pMHF+@`<-!L?(_Ng2a!hfM&z8LO7cI-nchlKF|Rxg(w zhYb0$;CD2NkPtqGfytV9eZe_ZT~}DLPzfJqQmeSRiU&!Oni=PPo*Ff$qVwT&GAg}h zD=9MqO!?TG|ARU@!XyHevHBo5MxSlSH_fnY;S#|xo`wG7p3n&*wm~#aEV}Ilr@~68p^o7YSRK$fk_0Dq6*M2H0u(H z3ecI1P>EpQNT#1>re(|=L|qj_{q*{rDN6_yU>%) zY@db!9T7~4MvIyA=Ju??w09{gG{Zz~8dfzFL;#OZT|=lt&-VZ7jGegO)5*B6xE&Rhc=jwHJFTD_U1| z_u>lE^ek)BSFK7kL~wXyH=rNFi71?uu3tTYrFvAQpc6qMGN&`=xpMk#)qzU{CYIAB zc*88C_5V<1pb~)>O>1V(Q`2aBZ@TOKROOHm0R}rAX=cuISqpXdg-ZlSU=_?(Y$ay5!CiQp)Smf>}uAPOQl8s66|th(h1uca9PnFuh_PK#F1^3)IQYc--Ef@2Zw zY^-d#g{SmQQ)?$=A~;SaC9=HbR!;xH-xpcFu!-P!8H9C>D@Xjpy&h9B1VnHG#9Xt= z6Q86`g9wOVIt&38uJUxlot7{ED|C(8Fntd zypk8d9bdOH5fQ;VQN5Uthxe%GiSM7SVhD)f6eK>J%+Hebk{tO9Z+S)KkPyMUBDpM@ zoEphTFj$2xcXM7%deqU!*}mMg&bT zCSfXMAtk2>{#MYE69o~VQVt5$cC5?OpZ>U2iG~Q~un5B?l{|UR6)J~>24V77dK zu4UwDfBRL{f=>hsLv6UAk*9s_64ioF1ZRlWuGr*gpPj^R1wIjA44Y~fHu9u0*%Any z2+l+eadjh4d@6@#2#8=YYA9Ud$Wi|M-j7(mu!*1*(aJgpzP`x08DRRe7p+k-1Vpd| zMWxFY?ug&M=RVr=gii!#L8}hBTRZ*P`=781;S<5xFdnf5j6D65U8;wM2$o{YxEIHv zdy=m4bC%#gLn2(`XFa`mEAntt6N!<-Enk8qf@Sc+!{x@zwXqTPpM^#Q=U}yplB}KI zk)teCh(vHM{1hvaaUeS~^=pJn1n-X0m)^c@+%cj9tcg^31~zBC)i#UsLpFTX;-OA-DUX|pjX=Nk+BWvnbR6oqMbLCtcW6V z>;jHlrz$Xspc@uBEQ7eOnNH))Dg~VgP^7kk;iqKpGA(`i6|7_hhwe>XRLAw~ z#_G0hWhr<7DJJssfV;2B~uG zn~XfIDlmy)sHV!^HW~Sus=y?IVOlizuF1%+RR=B+T)^g$xoLvp_@jzIBm#6+Tl!gh zAJ9Cn8tv5bD_G5nc5Z!)>`)n~L;&Bw+5p!c#>i``0+R?Xq{_90p^d&lm_&f7h_xKD z(3Wb4o5x$C(1_sT>@PBSl+AyZOpNzG-W^|6=ocAsulN#Nie4AXve~^ORv{r10es0r zsid8@d!iYi87*slTq{^~L~tqmIEEn~xVNt9t6$+=_Q_k$w|rp}!DTU}d}Ab^u+^t~ z^ZLUqU)V%&IU1$?j>M7Q*cTn(62S+;3&rF^+);BI3jr!3xFU+#k=K|GTq3wK(m8S( z(}7C_7>LGW7Y18ENx$#Emf`=HOtgca?A36<;*hK7in6SEO2!KT5quCXwT(AtusiCw@0@NG!Y6_c z$qXV)b8T*$PV!t;f=vY1!e&@y_Bb^C7Xz=T3{)b(V67K6We-G~b(SJTBDg-vVb1Vy z)G<$e+A4%k1RsVywCQY>XXTP5it0E|HQ*7!4QOdr<2W7Fa?B;aP#w5LaAQ;^OL1>n z)-5rc>3)Gq1UKPLA^AwXg!i#3LuH(2wQpm^pVImQ+1PRTBIYr;fCzg8@uRPur&x;o zneZOmn;RRjFQFt=0$UEXZ2u!vp&xuyc8Tb-x~|JKkN>uKVh2xEbU0UhCgTrPhM z%W7wDo7r-L1_LSK--gCugK^y*v*jd}flBzdqvWj2@x|7bnW_Sl@b5rBmXXma9iItr zZB!-LgnuVy3vC0HRdT3ZZU9c$$WFC4!Xo^;_GvgU{L~|Uad76zwase2{dE+hX|2Z! za7u3P9Zt2)&1!K(MED!B0GOUBy_@u7lL~wWw6+p$UkXyq9S~R>b2t1=(N6; zm~>Izt08HcS>r36op^yS*$vgS`*)Fv zqF=iQ9JtU-%^GfNlM4vah5d8Omv9OH9_$)fT~kk`+$Z0*riH&#A;^UPDGc2z9L8DI zwCH&ifk^nDjzlfxf!<@&BAr+Wk?=oL6XDa64AHBWDn!EnthmBqdCbF$fPEd^<&4{Y z*y@B$_-NQ#l4#1S=9V+gIBeO|vV}|d_eG|9$qK9$q`U8yNvZ;q@IMEK#HKTIDzjy( zYQQ7>`{gt0VZ5nYNjyf``CjF!g^^$Wx`UaU@ByK$uS2(-tvZBD_@Bpkm3SL2RaaZi zQyHj){{TFNglra?Vn<&k<5IRQ9jb?h@L>-QOzK^&c}uU#)r80|AI?rPdUvDVGNk&L zgXBL5*D?`(Q)b)Vq7zHu6aJTAh!fh`<=%2vWmdJC@tWioodSu9@V}f2p}T7kZLk9? zt?A-d$6Zu}|4@DL%|;0QS??)rxxtD=Lii73C`@EQUX8-(FI-MiMlVXIL7goT5~_TgpA1i!#1Afy<}EplAsHYZyrrv5TQeN6m2%bi)67N(yt6 zmTK=6I^llh$!|FQad3xmjRdOuPL{2Q^_8O9@RJ7tizR&3xxBmA3S3?yY*7_MCPsuXm>zZqR2CB@lW zgf^6RzP4VVK|n^x+QDwvOYZ4NRKmsf?_O-k^S-<*zWK!|^m&-TthP6TW_9?j94>X> zm5_Xdw^s-5uBo=kBh^V4S>qB8;a@UdUo%_UJ+xv0mR8b5skQ50N)e*D3`H4MmdN;m zL0YQo9YQDk%i%;dt-#S`cZ@pu7AoN*v(w^>cW(7Ys}Tj^Ux7%&)ik$EXFEbA{43%5 z)b8_fYd>QZ!YBNzpsmfA+*w&tb+B;c;myn67xO5z@p@K=NbPV7@ zLKqkH^K?zpz=QLey50cPG|wEb;X1-JL%qzC8+H*UEmS^99TQICD^{w z5`{+ib7haad|^eRO0|dW?^gv_gx`$I>dLq(0&}SL#NF+kcPSeT!f)BVVZuzZQxROYGY4JUsoyUgpbj! z7H!mWQ`&92s8&Zq`Q@L9#ur5!w%xRj!#%i!zZjh)(rN2WD<@jMunE5vj)EMV?w9_B z+ca8-aJf`})-BT8rm7qg!e4^AZ=*cX@O3Waw~&kM&6|RTzX-9+u2u(DmD3;pZPWUb za0&k`nD9`glb8BrcxQk#URFHuhSu2_H#GM5|ZmrStnfD-i+VpIcX2XZ5w02QqWa zz6=H7zZ*6)Of;s7J()GM%5sHC`0rtYRTbWflCiY6O$Q(m5dM2vPTFp>%SnewVG}<5 zyGdbU@dZtH#$`p@)UFGW@KIH^HDPPLJQ&{7?Wok7tVR@se?AOq80FHe$-uT-Em3HM zUls|wNV*OWw?v^4ep|d#YNHE%pS0XpIV6PNj`?2{V`PDvs%@((=~vXZl{5sX2)_f1 z&*>0ax;r{5ec3rbUPFPB@X@w2Lb2zQvqL#iL(yI#zx+;2=F({it2|vCr)mHY5q_7n zX;uJ?Pg7!m{Z^Q5b~Zy*s`jSriR2vvH|&I-2#CUiuWso_>-E-r2Rl!_rBN^nVF86&Z?$Ln&b@QD(v z`+;d~rft;pii9XVjLpO>xhwf!wMx+urLQDQZYib)j*@#!)ld*6gt%YWk)!;l>r35H z;Swb{#Cx`}F(v0oKer@*9?59Dr;Tqgh^D=aIUn|-qSti>XZCg2SHRP2+uL5$fVyJ= z!PM8rX?ow;rt%q;>*yfAe0X|qiuwTMbK!%+a;Dcqw=pZ~AcjHoNS!g~^+BX3v)i5% z6{3cY@Ox9as0^%;LP;0?pR7nEgx`mSv1Afdo)P^Es)vT~tC&kyWk!(b&wo}X{z~}$ zyUWlLdSKaw{JN!BfAfh5!}e4@+ZCCLye~v|2r8 zQ4szG(wLKK*PLd%`h%h&e7LB4VjRRZl-(CP>iKk%QR4IQ+?sT9+i66SPUafRm!JuM zHQH33<}%fQNB9WmKzkWK?%k-Y%9CHCa*bMk`4^&G#dE@Yz?h=vsXwf0Ca;Vo z{Vo;7hI9`D^d7jKpgKIzUP;*Ku01Tf5F1Piy}LAwgQ=<{mn&ENN~tl!U#Q}Fj{bqF ztZiP1vpj8bgL1t8N8w*<#q!_6b-Of-?ZFj_nZz4o#GA%6>{;nsepYKq>GqIW%PH4B zywTFUO*OiAH!l7d!f8^>J(8K!axCb?LnMWp$2IH|c@3rhFg2+&Y-UF-c=Hdme(cj# z2bR|tP1idtO(=wU@!*Cj;?Q(daCi4myF7Tl{1|6MuTY08C0>O!u2&xGRDw+yw6%TP z!`H}dLf!Fcs}!aASDnfo7np>>Ks^~J7J92VfF%#U=41|3!u-2l=8g?i!u$s|p$iX8 zj}{epgn1*OamNE5Vg8Fj6o;GStkTX@8|Z|Lj%legRvk=3wKoPS?Z&&+qvTF_ga=UQ@`M#bJD)|-5Z+j)-W@+Qgtr@vS8utu7k!~~c);Cagh+Vfk|K9Z zAQIkqtfkjtY9H?G%!v(T!h;i7FLcMK9;1joSkk?E<@1r8h}7DK{5>PSJA7~mZ!b)& zZ20~7=CfMPu_nSLyuDL8cYNRy9=zH8F|*pKejsGRn~)Z|V+5J-CZeLl9uRI-<`g4{ zgf}TEa>oQB;q8mAx=Pm7cP@9J6W-)3sXJEC2@jtBxNwBb9G%RIB*G;B^OS~(WxU~w zuPe*T+m3b_e+iQC_J={JX`H5Cc!W14p>byeJi?or&>ZJX8+e3wKwLBA&JTEm*O<__ z^8+5?O-pFp`2mmc4oqm=`2mmc4oYZ_ca{Nogm*B8*)~14jM)-Cv~YMG!X&&yYAW1s z)t{pRlknbzQMSF@+uw<^QOgI1s(tRrKqWlP4W}k$5`Z(EpcCF= z9S#L%2k85QgSf)qRqZjCz=d}fW8u6Jq#{~^Jnika%#aR zJYPnO0Ws< z=tPzFbYF;_J!d{aCcI-3QK|#wRDw--$0n3GPKwL;RydVl6W(zNWk0SV8^+S9E1O^w z-tmbV?UxHab6W%Wgm*%sM&ammhF8kFq6MAsri(`vb(jGh9;-T&3ohZkJ(1BN7zL~r zIF(=%-a8V?3-I)g94c|86>P$r0r#j+JboCTYHyB>1d;GgOp4qF5=6o~DJgPWM-U0` zp5cri|}S+WE$-6UYS#Xpb*|1WXIB%_uI3su4I8pcynv2LA)%BmuOrnFbS_2nHj>S zN4~=Y7U8vE4|!-9&mLD+$pLg%B%l%AJT#=FS_agm*^0%$+w-32#xo%$+w-3GYl8 zd^`JE9$T?=Rk`^mg_w=KgzYU%7JHNPHl44@UkUT_qK17r2OC6-avK>Whwv6-;SwF) zJzRo7c&%7$F5|BMzP_@12mp!jmLT*tTwm|Xst^e8ELg12lf%{AD=O|`7(Bu|8xVKdT-ZEIaD7F=q9-NnS>cAzub6`>;T~DRUok%bV z?_89JT~W=?7V$c$GS3e(M06@H%0;;&G1BMnEULE=&dD(%hB;GU2Vj zV2W*>DtwSZcRK-#@Va4{I&q_DZWJI9-upx_Jdj_4AQ9e5E66W6kO;2_nLrGqlowcp z*NbIYD01@v4&n7#et)IM-MGOayeh15m)uG1vUMO3UOzf`7rv0ea#2^+J;?x#@ZOIc zM;j&1NWdbz0odV4kzW^}65e23mR}>F65bHZcNE(w^#U&84a0m#y4>0UlkhH(*kn6r zC&ngl32#+Gm!CUu32!xeTP?m(vIjEZt&!4<5}KPoPzmos)ONISU+bG2WF5z8@+KzO&r2!`4U54(0HGr zQ{{I(FbVHQ^jO9g6}d$P7U6w7RG|0c4Lf&vfkk+?NlviH zxTdX)12*nCA9#d!yA&86NAAhDW}p$?9k7IPPw4U+8@PnG0mFVRzEN5n$b`2M zowO#*ZA73Fa_VVHxFE4pOBpXyhoy{H#QN3_Y_(UDA0e-pY`KM)nJZksYs0QslaC+Q zig>Y(UHAyj_S&=8xGbdkta+}+VE!CS&|ly`&ug#D>KS(K02y!y^E_;>@}0{?LL$sx zYl7pPDFTTwFF>ICw9a)bAra(DYMcDez=Bh3GziOJ{9`myx# zZft!zvjZ|AN7%;UKvlZiHBwK;! zsGKS=39}7-K2r7AOAK9^0hch_VPa*sX%q=)g!u$)86-H=F^UL8!hBM`1neH@IL4V9 zFbH#xvX6DL!63}1lzp6&4F+L8t?c8SY%mD(8D*c~WP?GN&th1VTuQaMa|#w=?u{wj zxdn?b_o<@4r`qq111!RPPI@->rc;fnWk&0N)YTLcVeUuI7J;qbWF##!PJiwO%M>1A zKA+Gev(hqS!AmEo20X$%0BaELV24}SqqHWF3G)TC_72=OZY7~zNYqcujNy$(ShjEp z^F_4wioA@IUqPS|=0UXfP?A*`F`r$Cg!xiZlq`+72t>ks8N(s>N&M+hQezJeAdYh?kEIKlFyBZElQq^dW9DsVTe^@5^9Y(@mp#xB zUSZSSo{TVF8sHMk?u}AD1>)o5mxWRtFkXqE5$1;&0`#y= zt_D29JdNh58r#kic03*vn1uNeI*_WcOOCs@T&@m?gn34iC(j>`5)pWWc@~3hxYC8A z$^*_=z#`0#(M?0eAnFM3sOHE(CCpD?gY>wOlwH2<2bnNG#ioi1ZNBoQpcCe2C=jgp z%j?Ct^#vYbeva&^W;DA1Dq((6FLQS!Pzm$PdYQXJfl8QPg&7M^VC7~EJi`1M8oP1^ zS3So~1&=VlK_9W2R5UF!j+~}FP-ujCE{aAZZtDXcVSby?xJwQ^!u$@-giV^ORkX}F z`Vd_@6*gghk1`KWgGmDO8xyF6`2!koD09UZ@5>+)=8x#ha%@LlM9S?hAQI+JC=xw- zmMZ#qMBowT|H0I##-`EPpTQ)|{~#tks+JoQc!aDB>=l+AzTU>Yc$g{fKW3MPhA}NO zRzG;6WfeY3HooG5H#0f5oY66iH%yavjIX#{W!J}KAI|s!Eh4IiB=o{9* zT$v+het{N+eM^m8xOG>YV3ynGaF(wJm+)alz&W8`U(=Zl_z0(cSgiM8e_397Zo|Rb zt^t|iJN3{IW}^%oIKF7bd9i{?7-VxotfcFw@i$pw;lmW5@NUQ|WfE_V5kHl+|n$K3*diZYwqH6HV`(<+Hq|Fz3rO5fl6H7>rW^7GcU%$a!R^ z0xZI`sUkeH>QsP5n0B~2cJ07P2Zb;lC?lDOI>{gqrh?RrdLCL>gy}@^9hJIWkCsF4 zd_s-95D3#HWO?B#zBt@+{6{{)DFq0GS%GDPaMqY$$2%Mtgz3gqhx0e503^b^4@OBo z?i;}EY%A-|H?_X&jW9ik#!A9XU8e>-!t|mRtOolp zP6b$m>600#99v$#21j11$&J3|?+tz9>y|1+!c=jW9j2|$2=I5p^rPlv^64alK$!Q# zc8_wrT{wgpKuyc6GkM0a#XIz=8!Sf{gc($Ja!I!3hz~qHMcH5wW=Pq|CE}JNu6pS) zWrIPOVPz**Z(EMIdd3~f27@pcNIvrq;|qr{tI$R{BXkxdNQ7C9h3 zFl#0?ObnUJ+vIgvXXsj>qBA#Q$s?v&K3ML+a~bXi2R>n7ycwT-?ct0MJi^>ui%&G8 z#s@xOK2nP>*R+C17`O+_pJ+ynFXm1d4E_7tvcVOCE79HaG8yv|494|?>xHAn9CHQ? zhQmb6x!DDoFc|9+G4E8KV*{kQ4c5&j9j3~8&RS@Mxg9g7nq<^`f=(E8C~ZOEwwJR7 zX~z?txihNKP%~*OfAQjf2IDQFbK02gKWsIvm3__uX){)ghGf@ zvS5at8o;)dU1 z%eT_ys`HeIFbQ)7>SvS>mxM!@E5X+py)#wd5az0opZj@}a0qiXnwOo4I)ev=FxQ}n zaz92A24Oyk8sOy789YdY`4AQiDOkQDys^%y1D7z@BGZG?=FBHOgmH!XXR>(D*$kse7ZN%TZz@ZQ;f->3dEhV$7ZvZgh9Wu!V)SpbKa0f@#B0Tl+w{Gj`+b#Cvc5Uk!LkjC|IZhF$wA*}Ry~U3lM^Q38!Q z+l7?~6j`geKCzU>nq%QZV;c6EH8iV9Qd)Pd(8SMvTWw7t)({J5WMg|1H#j5cdo*8X z#qxFb*oN`*=QYh)*g7XF+~zOubDDZyh1j&LfH~K=#dBuPUJ#?c`mN(yHCX(aC}74l zR^M`K*ku=4)Ij_tCB~*>g$jzGy&8KqCB}=*s|sCcUxP!H*o8YWV$3oWt{H=EOt>;b z)izwx)*kze1p*z=3NhnQ_~1Sb`_9D0!?=IIo=`}>LATdix9)4xZBAtN&@NAc4U9_KyKqSnm z5P>c?B!#b?m4;SJkFm>I&9DA?;SViUh=iGmgA(Qb*ohm|Q?LE2{EaZP#x;z?Igrlo z+FeS`uOD$RORJegR89+mj343w?|iiq@;AcFgSEf`COOj)^+9m&m~9#Icfy>87Of`8 zwrCLV`H>RwN5Y(rp{cu19_OnLtceHv(A~-ggD~@v1lScA*<{mZ3E=O9Spe&2-vn*J zN@!306=ThB4BdK$CHu1|!hK&&8CP+jjMb|#F{)|WrD3AnGB-=^wyJAh&2OxG>CHA+ zv!E8dfk~Y(gb$iRO|msZ^6()liCJEQRH7`q6V^0J50Xom*}F8zv$EOA>3{xj8n)(I zewjsBS%72-t`e-vKug2Jg*mDKi!f)Vzj$l7Vk4_o+k&tS)Vua{Cr1`FDe^bM%pKdX z`{|fpBrHku8_Pe_XekmUVHRVAlb2TOQrrB-7w-S2(m^2%tnGxwl}>z;nR)=I`HeMW z_f`pLguytrkGwo9cZJobX=U3Js)&tt1|!67LsEiK`xX1GdR%4q}&6SI;$!oX(tqN|8 zc1y!^=V;LhlQ8d&sqoBCDp#A&eB5${NtpMDfes746~?2Zz9=^HNh~1}=Dm?9vwz%M z<@f<2A?{e#g?hCHQK*oMh49Xd3-w}D9TG)QSdlkWf5(PdxFQzzm8nH`giPX3Cp!uJ_Y`NWrYmTmkZ;nZuqlx$4=_~W781v}evAw0iOYe)%edD1cM8X`4H3@2@ zJGeC95#~5FP-^D&b=7?^5RVB=!W@sb7OCn#zl@7OB+Lnzcu~Zz=Sm{Dgqe;GOP%(; zgzSw6ZavJBg-V#WCuCvgOUPnX1S()1|F-dIODe1&8NCCu zirsZ8b8M`o-S_#2lpGuN3X9+#C;a{9SHHFYWF^KdX<_Lo{(j8F6ks{>{Qa0=DZpMN z{r%=Q&Y7`J z3SuiCg)4S*PNt@Go&FQ6FglRPFLPLi12v^{(aB21p9%BkU2)~}(5%p5IV1HJ&XmeU z_gktllpuUh2B@k$NSz^BF-;Ad&aDdhbRiR66VQ8 z19d~!q+@PYiy+|@QO)YvF&%rExW4{K@&0@WencUumAUu&st6a!#hz}o;7$s zKYX21&nFT6uAH^d(fsbLJY(RV{OW~ID)p~1>I-A>Oj6h*?W`tl-diSp_+clPz&g{O+KChN{l>ifM@te4QP>e1Q1iSAArgguWOT`s zPgmui- zflCx%ljAxZEK7PJah=+4(H34pC$r_7_Cewr@QA|8DB+eWUJ6R?>c;7y5QSF|#XMY1 zE9*0@b>EW4HQ*72SFyGnYN~ag1jYp*5rx-OfTs@I6Yf`B01{F77lsFkK`mdrsl+9q z5rx+=JcwlBaMI_D^T8ns|3=#t{-R-Qusah47E$<*#;~~V^22xx;1Gp3G=^530!r@E z#1&u>h5u@{mzHtKMe=M%Tml*)W9npFvfow4BbAlhRuUV28(>@;CN6}%ui(|gdha$C zmGB6&3+yVMkLm1mm6k9Fvnyg~m76Iu>abg)N#PP^94t%ga1XA6z{9>cFXD_0M8b@>)~m_gw}e6%3{HE)*yWe7j$k4( zd!U5FLDiWWFbK1!1ka(~RaPJoW-k)Et{_gG!i#6S7n*il-7(!W zWS?tqnQgO%YcBaC9edtyLoF;~=n$M)KjUtBq~n&4DsgFyxD38;ax3hSj=yTv6_&+_ z=hSa8K2n*XU88VrjQ8#_4dW}Tap7@K?M>z8M@DYz(8w>0aWC2h`=Qn0p7<_f^CKUc zdbe^fig7O>ZE zzCMCSKK+O~qlLf3RER8N`hudqPF>2vIWaa$Y3kw%Zrrc5uEAzu@8A-AL_8Pw-iCAD zv9KCrPTTs2-~P->4){9$<(NJO)0vW<`NjV^Hav+PCw~KE9nueYRAjp*|APQ5{y)5N Bn4ACr literal 0 HcmV?d00001 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 7575bd464925cc8ee837a6d5353e47af01527ba4..5b094c2baa2fb73f9524b44efc34c8097514fd39 100644 GIT binary patch delta 320 zcmbOua+i04f=qB?iGo*Ro`Rvdf`NgRiGh`og@S8vh=P%Uq3Ps_jFOWtFtSayWv`id zU7fk4sC05Xo4iz3afx15ae-cPeo?Bep^1^9iMg?nk%h65C0K_!N9$x44%x}KI4ogW zCiil1@}jGhVuP47@uKqNIySzE*A*wx`Lspf`O%#p@o%!v4X2hh=P%Up~>WnERvJYGqO#LUOYLI z#faO$+`_=p$jsQp!U!z2pM`gF0%OHwcUIlWEKFLH=dK_I`4JOHzomh(fw8%vnE_b;S~foZlA_X7UM_vTlA_d9TO-rSq0B~D++>2`rpbqx zZ=ySB^L`dSMjS5a#$vk+6Q+emMpgz!R;Fec7EX+=nS7jCZgM<}4Z6LPF$02qvLCDX lWF*gvA$cCzzn~yq%O)ytAmaCD\r\n\r\n +org.eclipse.debug.ui.UseContextualLaunch=false org.eclipse.debug.ui.user_view_bindings=\r\n\r\n\r\n\r\n\r\n\r\n -StringVariablePreferencePage=130,107,107,86, +preferredTargets=default\:default| diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs index 12ec368..d4a2907 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs @@ -1,14 +1,14 @@ -#Sun Sep 18 16:44:39 NZST 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore org.eclipse.jdt.core.compiler.problem.deprecation=ignore -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=ignore -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore +org.eclipse.jdt.core.compiler.problem.unusedImport=ignore +org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.source=1.6 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs new file mode 100644 index 0000000..e9db729 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.launching.PREF_VM_XML=\r\n\r\n\r\n\r\n\r\n\r\n diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000..05d7be6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,21 @@ +content_assist_disabled_computers=org.eclipse.jdt.ui.textProposalCategory\u0000org.eclipse.jdt.ui.javaAllProposalCategory\u0000org.eclipse.jdt.ui.javaTypeProposalCategory\u0000org.eclipse.jdt.ui.javaNoTypeProposalCategory\u0000 +content_assist_lru_history= +content_assist_number_of_computers=21 +content_assist_proposals_background=255,255,255 +content_assist_proposals_foreground=0,0,0 +eclipse.preferences.version=1 +fontPropagated=true +org.eclipse.jdt.internal.ui.navigator.layout=2 +org.eclipse.jdt.ui.editor.tab.width= +org.eclipse.jdt.ui.formatterprofiles.version=12 +org.eclipse.jdt.ui.javadoclocations.migrated=true +org.eclipse.jdt.ui.text.code_templates_migrated=true +org.eclipse.jdt.ui.text.custom_code_templates= +org.eclipse.jdt.ui.text.custom_templates= +org.eclipse.jdt.ui.text.templates_migrated=true +org.eclipse.jface.textfont=1|Courier New|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Courier New; +proposalOrderMigrated=true +spelling_locale_initialized=true +tabWidthPropagated=true +useAnnotationsPrefPage=true +useQuickDiffPrefPage=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs new file mode 100644 index 0000000..553bb96 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jst.j2ee.webservice.ui.prefs @@ -0,0 +1,2 @@ +areThereWebServices=false +eclipse.preferences.version=1 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs new file mode 100644 index 0000000..67b1d96 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.discovery.pref.projects= diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs new file mode 100644 index 0000000..43e97e4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +mylyn.attention.migrated=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs new file mode 100644 index 0000000..2a6fe50 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +org.eclipse.mylyn.java.ui.run.count.3_10_0=1 +org.eclipse.mylyn.java.ui.run.count.3_1_0=1 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs new file mode 100644 index 0000000..8d462a6 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000..5330e43 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +migrated.task.repositories.secure.store=true +org.eclipse.mylyn.tasks.ui.filters.nonmatching=true +org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.api.tools.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000..d2ed603 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +knownEEFragments= diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs new file mode 100644 index 0000000..084a4fe --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +org.eclipse.rse.systemtype.local.systemType.defaultUserId=BELFAM_ADMIN +useridperkey=belfam_laptop1.Local\=BELFAM_ADMIN; diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs new file mode 100644 index 0000000..dc78d0a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.rse.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.rse.preferences.order.connections=belfam_laptop1.Local diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs new file mode 100644 index 0000000..cec65c4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.search.defaultPerspective=org.eclipse.search.defaultPerspective.none diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs new file mode 100644 index 0000000..f9e585b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +pref_first_startup=false diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs new file mode 100644 index 0000000..56cd496 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.team.ui.first_time=false diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs index ae368ab..39f3d42 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -1,9 +1,8 @@ -#Sun Jun 05 18:58:07 CEST 2011 IMPORT_FILES_AND_FOLDERS_MODE=prompt IMPORT_FILES_AND_FOLDERS_VIRTUAL_FOLDER_MODE=prompt +PROBLEMS_FILTERS_MIGRATE=true SAVE_ALL_BEFORE_BUILD=true eclipse.preferences.version=1 -tipsAndTricks=true -platformState=1287081747687 +platformState=1407631824496 quickStart=false -PROBLEMS_FILTERS_MIGRATE=true +tipsAndTricks=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs new file mode 100644 index 0000000..ccd7360 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs @@ -0,0 +1,4 @@ +//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10 +ENABLED_DECORATORS=org.eclipse.jst.ws.jaxws.dom.integration.navigator.WebServiceDecorator\:true,org.eclipse.m2e.core.mavenVersionDecorator\:false,org.eclipse.wst.server.ui.decorator\:false,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.DependencyDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.ColumnDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.ForeignKeyDecoration\:true,org.eclipse.datatools.connectivity.sqm.core.internal.ui.explorer.IndexTriggerDecoration\:true,org.eclipse.datatools.connectivity.internal.core.ui.bookmarkDecoration\:true,org.eclipse.datatools.connectivity.internal.core.ui.FilterNodeDecoration\:true,org.eclipse.datatools.connectivity.ui.decorator.contentextension\:false,org.eclipse.datatools.enablement.ingres.ui.providers.decorators.SynonymDecorationService\:true,org.eclipse.datatools.enablement.ingres.internal.ui.providers.decorators.ParameterDecorationService\:true,org.eclipse.datatools.enablement.sybase.asa.proxytabledecorator\:true,org.eclipse.datatools.enablement.sybase.ase.webservicetabledecorator\:true,org.eclipse.datatools.enablement.sybase.systemtabledecorator\:true,org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator\:true,org.eclipse.jdt.ui.override.decorator\:true,org.eclipse.jdt.ui.interface.decorator\:false,org.eclipse.jdt.ui.buildpath.decorator\:true,org.eclipse.jst.j2ee.internal.ui.util.AnnotationIconDecorator_ejb\:true,org.eclipse.jst.j2ee.navigator.internal.J2EEProjectDecorator\:true,org.eclipse.jst.jee.ui.internal.navigator.ejb.BeanDecorator\:true,org.eclipse.jst.jee.navigator.internal.JEEProjectDecorator\:true,org.eclipse.jst.j2ee.internal.ui.util.AnnotationIconDecorator_servlet\:true,org.eclipse.m2e.core.maven2decorator\:true,org.eclipse.mylyn.context.ui.decorator.interest\:true,org.eclipse.mylyn.tasks.ui.decorators.task\:true,org.eclipse.mylyn.team.ui.changeset.decorator\:true,org.eclipse.pde.ui.binaryProjectDecorator\:false,org.eclipse.rse.core.virtualobject.decorator\:true,org.eclipse.rse.core.binary.executable.decorator\:true,org.eclipse.rse.core.script.executable.decorator\:true,org.eclipse.rse.core.java.executable.decorator\:true,org.eclipse.rse.core.library.decorator\:true,org.eclipse.rse.core.link.decorator\:true,org.eclipse.rse.subsystems.error.decorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.SymlinkDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false,org.eclipse.wst.jsdt.ui.override.decorator\:true,org.eclipse.wst.server.ui.navigatorDecorator\:true, +PLUGINS_NOT_ACTIVATED_ON_STARTUP=org.eclipse.m2e.discovery; +eclipse.preferences.version=1 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs new file mode 100644 index 0000000..910764b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.ui.prefs @@ -0,0 +1,10 @@ +eclipse.preferences.version=1 +fontPropagated=true +org.eclipse.jface.textfont=1|Courier New|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Courier New; +org.eclipse.wst.jsdt.ui.editor.tab.width= +org.eclipse.wst.jsdt.ui.formatterprofiles.version=11 +org.eclipse.wst.jsdt.ui.javadoclocations.migrated=true +proposalOrderMigrated=true +tabWidthPropagated=true +useAnnotationsPrefPage=true +useQuickDiffPrefPage=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml new file mode 100644 index 0000000..364579b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml @@ -0,0 +1,8 @@ + +