mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 17:14:44 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4caf46cb9 | ||
|
|
7b866e7e43 | ||
|
|
c2b79dd6ad | ||
|
|
b290cc6477 | ||
|
|
16127a61c7 | ||
|
|
0965ebae09 | ||
|
|
b06fb810ca | ||
|
|
261313a682 | ||
|
|
da96dd3514 | ||
|
|
201be84b9c | ||
|
|
03d7eaae23 | ||
|
|
1be1bb59c5 | ||
|
|
fb44ba2e6d | ||
|
|
b16994717f | ||
|
|
b2964a1ae7 | ||
|
|
6f361dafa8 | ||
|
|
376f172990 | ||
|
|
9fe6385e1f | ||
|
|
b0ae0be80e | ||
|
|
b109baf7d6 | ||
|
|
7065cb36bf | ||
|
|
a6b9fdf8c4 | ||
|
|
6e8dd77bbe | ||
|
|
a4983be979 | ||
|
|
62cc9f2e63 | ||
|
|
49ec3d1b93 | ||
|
|
cf26f4acbe | ||
|
|
882e0e3bf2 | ||
|
|
2cb99f0e74 | ||
|
|
be73ec3d5e | ||
|
|
0348760a77 | ||
|
|
2f802b6d71 | ||
|
|
6b52023a5c | ||
|
|
5bea8218d2 | ||
|
|
b24eb9af3c | ||
|
|
d48985fafa | ||
|
|
c416f38461 | ||
|
|
0a5ef64d6e | ||
|
|
c177219ff3 | ||
|
|
9ab96fbda6 | ||
|
|
7a4aa5a1c4 | ||
|
|
998a78c3c1 | ||
|
|
42e0fbbb02 | ||
|
|
27ebd0e9b9 | ||
|
|
9a9c02fa25 | ||
|
|
5802a3b0b6 | ||
|
|
dc871ea273 | ||
|
|
5c78361b27 | ||
|
|
56e347d05a | ||
|
|
5f9034d95b | ||
|
|
858056c089 | ||
|
|
bd62cf81fd | ||
|
|
a1bbcf8a0b | ||
|
|
1eee6cd382 | ||
|
|
129f58c02f | ||
|
|
159ca09c54 | ||
|
|
9ecb005e98 | ||
|
|
b0558c63de | ||
|
|
80f0e0bb93 | ||
|
|
bea5d44273 | ||
|
|
7bbd3954f5 | ||
|
|
cfa63792bc | ||
|
|
490573a71f | ||
|
|
9c7d20b3a1 | ||
|
|
d7b241c224 | ||
|
|
d7dda9e960 | ||
|
|
5f06c95cfa | ||
|
|
6e8c05343c | ||
|
|
d3da111c08 | ||
|
|
7a63e67e9d | ||
|
|
d159f5f4e2 | ||
|
|
92eb71ae9c | ||
|
|
bc303074f6 | ||
|
|
c0db34796b | ||
|
|
ad1324d478 | ||
|
|
3a3c436e3f | ||
|
|
4feb1dff50 | ||
|
|
d3ad8aed76 | ||
|
|
7a84376044 | ||
|
|
1107088acb | ||
|
|
c58a66a816 | ||
|
|
2aaa4f424d | ||
|
|
89eb8f067d | ||
|
|
f08f3c1105 | ||
|
|
3b5ada083e | ||
|
|
8dca9f2694 | ||
|
|
4e3b6b0f15 | ||
|
|
cac55abec2 | ||
|
|
bf6437c12a | ||
|
|
853667c084 | ||
|
|
b879cc9b73 | ||
|
|
45097fed0c | ||
|
|
5964bf8cb2 | ||
|
|
24cccab718 | ||
|
|
ca1f704e2f | ||
|
|
f9c7caaf0c | ||
|
|
a05d4234f0 | ||
|
|
c3fe6ecf7c | ||
|
|
0c8f51bc95 | ||
|
|
12769dbaae | ||
|
|
ec2977afc9 | ||
|
|
a01bfc260a | ||
|
|
d6d9a45100 | ||
|
|
3222a9a771 | ||
|
|
8dbfe1baad | ||
|
|
7f40d90b75 | ||
|
|
b25a9256d3 | ||
|
|
f3d0d99404 | ||
|
|
dd41990db4 | ||
|
|
0e286f880e | ||
|
|
bfddcfb4fc | ||
|
|
b5db198f8b | ||
|
|
d17c025557 | ||
|
|
03c8852961 | ||
|
|
3a48a9cd73 | ||
|
|
20c662c1d0 | ||
|
|
8195c36434 | ||
|
|
180692ae5d | ||
|
|
7643be8cdc | ||
|
|
4cd0f88a69 | ||
|
|
1c8f22ed43 | ||
|
|
f20d728ed7 | ||
|
|
704b683e27 | ||
|
|
1c11a3622e | ||
|
|
fe2243df9f | ||
|
|
fdea60f89a | ||
|
|
62ec59103a | ||
|
|
69af6a9b8c | ||
|
|
ef28edb526 | ||
|
|
bc6b008364 | ||
|
|
7c4ffde39c | ||
|
|
f4e8804c8a | ||
|
|
f088e3df6b | ||
|
|
0f6b16cada | ||
|
|
4694152124 | ||
|
|
0cba2ed4eb | ||
|
|
4dcee246d5 | ||
|
|
53b43a6e1f | ||
|
|
1473334f61 | ||
|
|
7e15ab7da1 | ||
|
|
40f335ba66 | ||
|
|
de80d4c4af | ||
|
|
2aa7260bbb | ||
|
|
2eb3b72618 | ||
|
|
36d7148c5f | ||
|
|
579f028294 | ||
|
|
a3d8664028 | ||
|
|
b380ba717f | ||
|
|
9f9554f7e2 | ||
|
|
46cfaae3db | ||
|
|
5d9169db0f | ||
|
|
bc82f2ae5a | ||
|
|
b0fd97557e | ||
|
|
543156a008 | ||
|
|
056ff67a81 | ||
|
|
ab64d1a166 | ||
|
|
0cf2cdfdb3 | ||
|
|
f8ec3602f2 | ||
|
|
5a3047fbc2 | ||
|
|
fe96792506 | ||
|
|
cfba330459 | ||
|
|
31b3825069 | ||
|
|
cace1f00b2 | ||
|
|
f96a31c945 | ||
|
|
bc27f0e204 | ||
|
|
fc43ebbd7e | ||
|
|
5ebf77bfd9 | ||
|
|
b95d443f22 | ||
|
|
d7245c5ffe | ||
|
|
45b299ce06 | ||
|
|
7ed5fc7e00 | ||
|
|
94a41e1fcc | ||
|
|
a963c9854d | ||
|
|
cc0e6a1825 | ||
|
|
b7739ffc71 | ||
|
|
8f74d05d02 | ||
|
|
80621de9ea | ||
|
|
a156d5e0fe | ||
|
|
7d4bf619fe | ||
|
|
22394f87d5 | ||
|
|
93a7ac3d89 | ||
|
|
5f234fdcf8 | ||
|
|
db2f5ab416 | ||
|
|
ae0c02159f | ||
|
|
57ed697cab | ||
|
|
565cfb155f | ||
|
|
b76b223d62 | ||
|
|
7e36205ba7 | ||
|
|
17858ef497 | ||
|
|
591ecdd7c9 | ||
|
|
f76af6103e | ||
|
|
7b5a5fbcbe | ||
|
|
5eeda79234 | ||
|
|
3e6099055e | ||
|
|
432e3ab08a | ||
|
|
f58d1cae1a | ||
|
|
03b54774aa | ||
|
|
cb2b0febeb | ||
|
|
a9e4516068 | ||
|
|
72f7c0be1f | ||
|
|
32459b01b6 | ||
|
|
6ad65f4e64 | ||
|
|
373fa8f7a3 | ||
|
|
4b9bf30fed | ||
|
|
18b2eeef90 | ||
|
|
1a8ad6bbee | ||
|
|
1871cf1b02 | ||
|
|
99616a503f | ||
|
|
0b1e94babd | ||
|
|
0fc08e383a | ||
|
|
fde90973c3 | ||
|
|
dd3c3a249e | ||
|
|
7f30e76dad | ||
|
|
8e3bc83c3b | ||
|
|
174394d6df | ||
|
|
d8166f5d6b | ||
|
|
84366be869 | ||
|
|
eefbcaaffc | ||
|
|
553a34690d | ||
|
|
efbd21e3eb | ||
|
|
006509a834 | ||
|
|
db9e75a273 | ||
|
|
90d6bad7f7 | ||
|
|
cc593f3939 | ||
|
|
254cf8bb23 | ||
|
|
09e109cac0 | ||
|
|
260be68723 | ||
|
|
3fbf8c9960 | ||
|
|
01bf6f59eb | ||
|
|
c8d775c865 | ||
|
|
d1f4d71d93 | ||
|
|
1a97d74939 | ||
|
|
9c003fcb15 | ||
|
|
dd384a91af | ||
|
|
ee2772b26a | ||
|
|
5604e3f380 | ||
|
|
ba9ec61648 | ||
|
|
86d5b5a872 | ||
|
|
aaf1cba776 | ||
|
|
683d9b5284 | ||
|
|
0628e86444 | ||
|
|
eca97de272 | ||
|
|
3f15c7b05b | ||
|
|
5c15dd714e | ||
|
|
7bbd1a6606 | ||
|
|
aacb319594 | ||
|
|
a63d92eb60 | ||
|
|
9cd2c697e5 | ||
|
|
dd09da27b5 | ||
|
|
1164ace8df | ||
|
|
f7feec029e | ||
|
|
ee7c965fe0 | ||
|
|
6da3250583 | ||
|
|
6a3b734801 | ||
|
|
ca6d1c9e3d | ||
|
|
c776d97691 | ||
|
|
883bfe57ab | ||
|
|
a649cce2ea | ||
|
|
ac194dc378 | ||
|
|
18e60a1235 | ||
|
|
279380b4f1 | ||
|
|
14ee316d06 | ||
|
|
13b820fde2 | ||
|
|
35cd9fe212 | ||
|
|
92914f82ae | ||
|
|
13ed510fcf | ||
|
|
6ca018c2b5 | ||
|
|
9a23cf76d2 | ||
|
|
0a5daa194b | ||
|
|
596ecfb891 | ||
|
|
06d7a9e39c | ||
|
|
8432f95223 | ||
|
|
caa61e1be9 | ||
|
|
ce481da1d1 | ||
|
|
86baf7462f | ||
|
|
4008983a5d | ||
|
|
e65218b525 | ||
|
|
d3e758fce6 | ||
|
|
0bb4d9fb89 | ||
|
|
3bdbe04261 | ||
|
|
39ac710722 | ||
|
|
aef721a248 | ||
|
|
b5f8da794c | ||
|
|
906b83dee4 | ||
|
|
5d2b8438c9 | ||
|
|
2f5f9968e4 | ||
|
|
772e7da3a3 | ||
|
|
93be22fc8e | ||
|
|
978861b521 | ||
|
|
b8996b14bc | ||
|
|
0406267d89 | ||
|
|
debe0ffdf8 | ||
|
|
357d2f8d86 | ||
|
|
c0840da355 | ||
|
|
a5ffda5d66 | ||
|
|
35978b0d96 | ||
|
|
4824d647f4 | ||
|
|
a1a67e7654 | ||
|
|
a97b4c4db7 | ||
|
|
4c56961b9e | ||
|
|
9bb927dc64 | ||
|
|
e00a11be99 | ||
|
|
48cc7582cc | ||
|
|
df7c7d6dfc | ||
|
|
b65b2991a4 | ||
|
|
d2989c83a7 | ||
|
|
614ba8fa73 | ||
|
|
1fbadb0ead | ||
|
|
6b8466778e | ||
|
|
5415891f11 | ||
|
|
8c02a0a4cc | ||
|
|
2356f088ee | ||
|
|
9df1e4b11e | ||
|
|
95bacd7a52 | ||
|
|
f4750ae2bf | ||
|
|
a4e2d0e304 | ||
|
|
7f6f2f0ec1 | ||
|
|
5bd06388c1 | ||
|
|
68ad1e03cf | ||
|
|
cdc86e9af6 | ||
|
|
b9ac73b0f1 | ||
|
|
5d5c005aae | ||
|
|
87b0f7db99 | ||
|
|
d5b93bf262 | ||
|
|
5445f96327 | ||
|
|
2e6f4e5b86 | ||
|
|
75468e9b0d | ||
|
|
34d4b0b93f | ||
|
|
92800f61d3 | ||
|
|
58d26618f6 | ||
|
|
aaa146c10d | ||
|
|
babd54bb87 | ||
|
|
d30aae862f | ||
|
|
a7d5820e99 | ||
|
|
363e84b2c5 | ||
|
|
6e46b6e4c1 | ||
|
|
0d13fe245d | ||
|
|
5f74a75435 | ||
|
|
aa672ea69a | ||
|
|
42404c531d | ||
|
|
4248dbc71d | ||
|
|
f5781488d9 | ||
|
|
3177d55579 | ||
|
|
d8249b7886 | ||
|
|
4d27393c91 | ||
|
|
e98cd386e0 | ||
|
|
4538062e70 | ||
|
|
f3fdf4303a | ||
|
|
330812dfa8 | ||
|
|
980845b61b | ||
|
|
5a20950902 | ||
|
|
23cdcb96a9 | ||
|
|
b53e53dcb7 | ||
|
|
9f28c90365 | ||
|
|
7c6372202e | ||
|
|
b5bda7117a | ||
|
|
d9bdaef468 | ||
|
|
26b5059396 | ||
|
|
8fdd76bae1 | ||
|
|
9c9107c434 | ||
|
|
84bfeddc1c | ||
|
|
d9e0a653e0 | ||
|
|
c519812ea1 | ||
|
|
e8098133ea | ||
|
|
d090c2834b | ||
|
|
35999f9a20 | ||
|
|
fa21f2b44c | ||
|
|
205f5c13c8 | ||
|
|
c560af69a5 | ||
|
|
68cd48287b | ||
|
|
2a3774def3 | ||
|
|
a018e14939 | ||
|
|
03584ec411 | ||
|
|
2a4067a539 | ||
|
|
8fefac110e | ||
|
|
d31cf8ddbc | ||
|
|
fbe628d058 | ||
|
|
72edc41a7c | ||
|
|
db04370830 | ||
|
|
7973984227 | ||
|
|
07a2b67b7f | ||
|
|
fb0bdd1276 | ||
|
|
a48fd56fdc | ||
|
|
e68908e9d5 | ||
|
|
045e8bf806 | ||
|
|
7587ca7c71 | ||
|
|
b9d18a263c | ||
|
|
8d50c9e988 | ||
|
|
ce4d31529d | ||
|
|
f4ca1f61b9 | ||
|
|
cb7685a3b0 | ||
|
|
bf16d0066b | ||
|
|
628613d27f | ||
|
|
63a6a2e50b | ||
|
|
ab2b07f149 | ||
|
|
d44c9082fa | ||
|
|
25d7b80119 | ||
|
|
68023ce40b | ||
|
|
8180bed027 | ||
|
|
034efaff3d | ||
|
|
e8ea52558b | ||
|
|
8f49ea7c5f | ||
|
|
8fd0817c81 | ||
|
|
ce4bb8fe93 | ||
|
|
9f1505dd53 | ||
|
|
6342bfea3e | ||
|
|
2ae47c0903 | ||
|
|
879b7b5a61 | ||
|
|
dbe9053d50 | ||
|
|
1e3df55689 | ||
|
|
9c3def9cb0 | ||
|
|
1811d88266 | ||
|
|
132e0d8f93 | ||
|
|
bc2b5ad517 | ||
|
|
df1adb577c | ||
|
|
21d39f6558 | ||
|
|
9baabf9249 | ||
|
|
77772ac3f5 | ||
|
|
fc57d5e6c6 | ||
|
|
d13449b1b3 | ||
|
|
087a7d8c59 | ||
|
|
8374a80283 | ||
|
|
34c3af7e85 | ||
|
|
8058c675ab | ||
|
|
404995122a | ||
|
|
efcb9ee570 | ||
|
|
4c8da35655 | ||
|
|
c74216bdf2 | ||
|
|
c44ed8fbde | ||
|
|
e72c224294 | ||
|
|
acf8220414 | ||
|
|
6e04a6c572 | ||
|
|
b427b26583 | ||
|
|
7668472c26 | ||
|
|
5862aaf3a0 | ||
|
|
74a0709356 | ||
|
|
b7327e6a35 | ||
|
|
42e4d1fa77 | ||
|
|
82f964c00d | ||
|
|
7a8475df6e | ||
|
|
38c57d9038 | ||
|
|
9b9e48b3db | ||
|
|
c662810814 | ||
|
|
746c07fc6c | ||
|
|
1083984c8a | ||
|
|
90758f8c96 | ||
|
|
a073b0e386 | ||
|
|
0f06365e1f | ||
|
|
70e85b5eec | ||
|
|
45881d1c90 | ||
|
|
efa7fd4dfe | ||
|
|
6e68aa4106 | ||
|
|
6385d7cc9f | ||
|
|
c6ce6a00a2 | ||
|
|
da2964fbd3 | ||
|
|
c7e54b8ecc | ||
|
|
eca3b900e0 | ||
|
|
c891d9fe16 | ||
|
|
dd201c066e | ||
|
|
75032ebf9c | ||
|
|
756c58d5cb | ||
|
|
08c00662a0 | ||
|
|
1d25d9ff49 | ||
|
|
a9d23f5e78 | ||
|
|
7e4d7077a5 | ||
|
|
bc5313c67b | ||
|
|
640670052c | ||
|
|
8a6dafc3bb | ||
|
|
ecd6f4c1d2 | ||
|
|
1d608c6fe4 | ||
|
|
884cc690ea | ||
|
|
9edd056f55 | ||
|
|
0ce790ca2b | ||
|
|
25cd7cc3e1 | ||
|
|
a596984bfd | ||
|
|
08663587d4 | ||
|
|
a4d5760539 | ||
|
|
b38cfc1769 | ||
|
|
3ce53a7ee0 | ||
|
|
d878c866b3 | ||
|
|
1d21345dfd | ||
|
|
2a1c98048e | ||
|
|
ac44fe298a | ||
|
|
81e0f2350d | ||
|
|
76efd93235 | ||
|
|
e349855688 | ||
|
|
5cb4fe33bc | ||
|
|
a365582b58 | ||
|
|
caf3d01586 | ||
|
|
f14f77d445 | ||
|
|
dabb17f869 | ||
|
|
c7b8020279 | ||
|
|
08a3b654b9 | ||
|
|
cc5dea0df6 | ||
|
|
2ca7cff075 | ||
|
|
1830d6de89 | ||
|
|
b317d5d107 | ||
|
|
6fd9a2c00e | ||
|
|
ba294d48dc | ||
|
|
cd81cd0934 | ||
|
|
3930f6f8bd | ||
|
|
bebf22c0b0 | ||
|
|
9eb04ce1ef | ||
|
|
438145995c | ||
|
|
4e6ad80370 | ||
|
|
c589a3a299 | ||
|
|
30db41be9a | ||
|
|
f61605c7af | ||
|
|
4b53f0716b | ||
|
|
286c8c05b7 | ||
|
|
5f62404f8a | ||
|
|
558348125d | ||
|
|
4c5bc9c613 | ||
|
|
b00af6828f | ||
|
|
449bf3a292 | ||
|
|
17589e61bd | ||
|
|
313d7bbc11 | ||
|
|
cc2895b793 | ||
|
|
c01e98e25f | ||
|
|
5ad2fc90cb | ||
|
|
9e475300f9 | ||
|
|
d4cb82b019 | ||
|
|
3d7a16d32e | ||
|
|
76e93e854a | ||
|
|
ce8a758667 | ||
|
|
af4b74b079 | ||
|
|
c39328993e | ||
|
|
ee6c041424 | ||
|
|
8c38f6c1d3 | ||
|
|
590f3f610e | ||
|
|
b1a5339b29 | ||
|
|
d5d0374015 | ||
|
|
8ea90eb39e | ||
|
|
ad03581fbe | ||
|
|
7795570421 | ||
|
|
f37a80b302 | ||
|
|
3f3989f6ac | ||
|
|
093646e6f1 | ||
|
|
a81dfbc4ef | ||
|
|
2c55969ff3 | ||
|
|
b8bb8c374c | ||
|
|
02e228095e | ||
|
|
0b0b5097e5 | ||
|
|
1d2d9ebc83 | ||
|
|
c442cd2909 | ||
|
|
1591373bf6 | ||
|
|
f22ed86ad9 | ||
|
|
6b926f9a06 | ||
|
|
8b4bce37de | ||
|
|
87f4351783 | ||
|
|
4189f63905 | ||
|
|
12c051d52b | ||
|
|
78a397bc69 | ||
|
|
b81a13d010 | ||
|
|
2bdb614fda | ||
|
|
05801a74af | ||
|
|
ae72fa7ceb | ||
|
|
7b0d8f09e9 | ||
|
|
28ae283b96 | ||
|
|
3839d33770 | ||
|
|
9e74f9e7c0 | ||
|
|
c27b13c705 | ||
|
|
5d352bda6c | ||
|
|
a799bbad2d | ||
|
|
bda688b9b5 | ||
|
|
4650ee2789 | ||
|
|
ba80ead005 | ||
|
|
bcab92daf6 | ||
|
|
52e877bdd0 | ||
|
|
93c1c737e1 | ||
|
|
018c67d969 | ||
|
|
5c9808ada8 | ||
|
|
cdf8a820a6 | ||
|
|
8e9b403fbf | ||
|
|
cf93859095 | ||
|
|
98f606d4d2 | ||
|
|
301d4b9fa0 | ||
|
|
173cec4149 | ||
|
|
873899a62b | ||
|
|
e4da09df2a | ||
|
|
90b2c86a9f | ||
|
|
7b7156e87f | ||
|
|
846910b8c8 | ||
|
|
e8a7e28110 | ||
|
|
aa24916736 | ||
|
|
c11732fc40 | ||
|
|
56a0d125bd | ||
|
|
25256c8ddd | ||
|
|
a44d76652b | ||
|
|
fffbc0f078 | ||
|
|
befbb45522 | ||
|
|
4b4146bbed | ||
|
|
776eb00ed3 | ||
|
|
26ca27193c | ||
|
|
9ca3ede736 | ||
|
|
f0e5baa8e5 | ||
|
|
ade3bbad14 | ||
|
|
020bf5ee98 | ||
|
|
2dcb2187c0 | ||
|
|
e49e6a9e09 | ||
|
|
01912a459a | ||
|
|
b342bf8481 | ||
|
|
2847644368 | ||
|
|
a83fe44d8a | ||
|
|
09bac53ed6 | ||
|
|
206a21d563 | ||
|
|
ee82341312 | ||
|
|
3e22a2b90d | ||
|
|
70670d70ea | ||
|
|
0f2cead3c8 | ||
|
|
3c7bda77e3 | ||
|
|
7735ff7791 | ||
|
|
c5e10c8cb8 | ||
|
|
cb909eeb59 | ||
|
|
ed8a8b415b | ||
|
|
74b2c3dfe6 | ||
|
|
8a506022d7 | ||
|
|
f821759c21 | ||
|
|
ec882538c0 | ||
|
|
c87feabd6e | ||
|
|
b096f58a6d | ||
|
|
b6bcf7bf4b | ||
|
|
706e894cbb | ||
|
|
b15667a7e6 | ||
|
|
becb0a9e0e | ||
|
|
cff4bf21ae | ||
|
|
d44d82e19d | ||
|
|
24b66ff9f3 | ||
|
|
3fd09af1d3 | ||
|
|
7fadb5aeb8 | ||
|
|
636a89c195 | ||
|
|
8863aab9e5 | ||
|
|
8fe432230d | ||
|
|
ad788880e5 | ||
|
|
728319cbb5 | ||
|
|
d9b69fda65 | ||
|
|
d5c4b1825c | ||
|
|
d35c38d261 | ||
|
|
153fb6b30d | ||
|
|
c9a01a439d | ||
|
|
c1744f00e0 | ||
|
|
ac7c4d2f6c | ||
|
|
1f80eb17df | ||
|
|
f654157adb | ||
|
|
bf7527d3cd | ||
|
|
213abdb561 | ||
|
|
d29b9f8752 | ||
|
|
95d1ba5dc5 | ||
|
|
250a77b359 | ||
|
|
0e35c3125a | ||
|
|
f1ad05dd8e | ||
|
|
c4ca8270b9 | ||
|
|
ecfb9accaa | ||
|
|
0dd796fb16 | ||
|
|
17e960c158 | ||
|
|
76f867561d | ||
|
|
b009546a94 | ||
|
|
de1c270644 | ||
|
|
0ddd897446 | ||
|
|
e495b7599c | ||
|
|
3e4107a222 | ||
|
|
c88bc769ef | ||
|
|
34382745ab | ||
|
|
9b128aaed2 | ||
|
|
fe340a213f | ||
|
|
9eb22c3154 | ||
|
|
ad69f0f447 | ||
|
|
e6b3c7ba64 | ||
|
|
c0915526ff | ||
|
|
3c4a2b0f42 | ||
|
|
1b3699d90b | ||
|
|
50f77a71ae | ||
|
|
6f9e63e3ee | ||
|
|
5c229dd6c7 | ||
|
|
f77d50b48c | ||
|
|
13a25ee0ba | ||
|
|
e8915b6a55 | ||
|
|
eb879b3020 | ||
|
|
6b51665c42 | ||
|
|
1055206ba8 | ||
|
|
74fe690227 | ||
|
|
9760b3b52f | ||
|
|
b875274c4f | ||
|
|
4d33fe6b26 | ||
|
|
94f99faf87 | ||
|
|
ccf5da2113 | ||
|
|
776f5b91d5 | ||
|
|
06130912c5 | ||
|
|
70fe18c163 | ||
|
|
f4b0506515 | ||
|
|
fa6610b3c8 | ||
|
|
bd6af1e49a | ||
|
|
53301e1aeb | ||
|
|
a607a48719 | ||
|
|
a9ea634141 | ||
|
|
124799d633 | ||
|
|
9070ab56e3 | ||
|
|
ed9517a8b4 | ||
|
|
a9a022f45e | ||
|
|
7e7b855ddf | ||
|
|
2c6af18a81 | ||
|
|
32a2bd1dea | ||
|
|
12c924751a | ||
|
|
4ae2a1fa35 | ||
|
|
cb70f1378c | ||
|
|
8af1624f9e | ||
|
|
085b28ba35 | ||
|
|
e611162de5 | ||
|
|
bfa17d2f0d | ||
|
|
3bdc75ad49 | ||
|
|
7103862bf9 | ||
|
|
76f659c02e | ||
|
|
63798d6a8f | ||
|
|
741fdd0a85 | ||
|
|
7b7d18f676 | ||
|
|
be6c2bd588 | ||
|
|
a0bf0155ac | ||
|
|
e45d111685 | ||
|
|
b71b963301 | ||
|
|
7a0a801740 | ||
|
|
960717eb0c | ||
|
|
026d179c0d | ||
|
|
e929199758 | ||
|
|
e9be24700e | ||
|
|
0710bdf3f5 | ||
|
|
01919e4eed | ||
|
|
5257739d06 | ||
|
|
e9a86f27fb | ||
|
|
a1e41f5464 | ||
|
|
3b9741613c | ||
|
|
d480ae5380 | ||
|
|
bce7c6d61f | ||
|
|
82647f5b66 | ||
|
|
be6577b9ce | ||
|
|
568061864f | ||
|
|
c7dafeed5f | ||
|
|
be8eb484d1 | ||
|
|
66340a7ec9 | ||
|
|
a3d4fe5d25 | ||
|
|
17e8de8a3a | ||
|
|
447a87c0c7 | ||
|
|
f3c2eb8e9c | ||
|
|
968b7cae40 | ||
|
|
812e69cee3 | ||
|
|
3c5103acfb | ||
|
|
b8238e7f22 | ||
|
|
7574b32b47 | ||
|
|
fae5ff67ed | ||
|
|
accf6cf218 | ||
|
|
90d1abebd4 | ||
|
|
cc593d4b54 | ||
|
|
66895a520a | ||
|
|
30ac80f978 | ||
|
|
7b92a27908 | ||
|
|
dad870ea0b | ||
|
|
2857b710f8 | ||
|
|
38531a5ba8 | ||
|
|
aee1bd6014 | ||
|
|
9a737b0c90 | ||
|
|
2ba595b207 | ||
|
|
17db34ae31 | ||
|
|
4672f7bab0 | ||
|
|
aff6b0004c | ||
|
|
2594196c15 | ||
|
|
afc46fa59a | ||
|
|
76c40896e4 | ||
|
|
4dbf1965df | ||
|
|
f42137907e | ||
|
|
0921473f53 | ||
|
|
591cd5c1b0 | ||
|
|
c78a7ce41e | ||
|
|
5c5d946ff5 | ||
|
|
95615cb4bf | ||
|
|
68339f51cf | ||
|
|
949e77b46a | ||
|
|
632d8e553d | ||
|
|
035dd4c245 | ||
|
|
d8440de49b | ||
|
|
4732acc1c4 | ||
|
|
b8dd4c54e1 | ||
|
|
f562579054 | ||
|
|
856a9c3cdd | ||
|
|
826b1d20f8 | ||
|
|
686b32bfd0 | ||
|
|
3c08c104cc | ||
|
|
dc4dc55dcd | ||
|
|
1a31ff9f06 | ||
|
|
fb54ea94c0 | ||
|
|
d105c444ee | ||
|
|
40a124d571 | ||
|
|
577f607b5f | ||
|
|
104feb2973 | ||
|
|
a4123580b1 | ||
|
|
cf2bbd1353 | ||
|
|
6e90348dc5 | ||
|
|
50f235c81b | ||
|
|
755df95c96 | ||
|
|
e0f0273c5e | ||
|
|
3665d7bf73 | ||
|
|
ea2beba5ca | ||
|
|
6c40b15d04 | ||
|
|
23a2316157 | ||
|
|
10658f682e | ||
|
|
33b1f8f30f | ||
|
|
db3e039b31 | ||
|
|
09e9a181ee | ||
|
|
56eba05237 | ||
|
|
6644e8c9ed |
No files matched your search
+2
-1
@@ -4,6 +4,7 @@
|
||||
*.java text eol=lf
|
||||
*.gradle text eol=crlf
|
||||
*.png binary
|
||||
*.gif binary
|
||||
*.exe binary
|
||||
*.dll binary
|
||||
*.jar binary
|
||||
@@ -11,4 +12,4 @@
|
||||
*.zip binary
|
||||
*.pyd binary
|
||||
*.cfg text eol=lf
|
||||
*.py text eol=lf
|
||||
*.py text eol=lf
|
||||
+2
-1
@@ -8,6 +8,7 @@
|
||||
|
||||
#idea
|
||||
/.idea
|
||||
/classes
|
||||
*.iml
|
||||
|
||||
#gradle
|
||||
@@ -20,8 +21,8 @@
|
||||
/buildSrc
|
||||
|
||||
#Patch rejects
|
||||
*.rej
|
||||
/patches-/
|
||||
*.patch.rej
|
||||
|
||||
# FML changelog
|
||||
changelog.txt
|
||||
|
||||
@@ -8,3 +8,15 @@ Contributing to Forge
|
||||
3) Follow Forge coding guidelines (braces on newlines, spaces instead of tabs, etc)
|
||||
|
||||
For more information, refer to [the wiki](https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge)
|
||||
|
||||
|
||||
Contributor License Agreement
|
||||
=============================
|
||||
- You grant Forge a license to use your code contributed to the primary codebase (everything **not** under patches) in Forge, under the LGPLv2.1 license.
|
||||
- You assign copyright ownership of your contributions to the patches codebase (everything under patches) to Forge, where it will be licensed under the LGPLv2.1 license.
|
||||
|
||||
Additionally, while 1.9.4 is being maintained, you will be asked to acknowledge these two additional clauses.
|
||||
- You grant Forge a license to use your code contributed to the primary codebase (everything **not** under patches) in Forge, under the MinecraftForge license.
|
||||
- You grant assign copyright ownership of your contributions to the patches codebase (everything under patches) to Forge, where it will be licensed under the MinecraftForge license.
|
||||
|
||||
"Forge" is Forge Development LLC, a legally incorporated entity in Oregon, USA.
|
||||
@@ -0,0 +1,9 @@
|
||||
# On the Contribution of an RF-lite Energy System: "Energy"
|
||||
Forge has acquired an Energy system, after many years of debate on the topic. The prevalence of the RF API has warranted the inclusion of a similar (but simpler) implementation to forge for 1.10.2 and onwards.
|
||||
Those who wish to use an RF like API, feel free to use it. If you don't want to think about Energy, but know you need it, you can use it *if you wish*. If you want to interoperate with other energy systems, feel free to use this to broker with them.
|
||||
|
||||
# On Diversity in Energy Systems
|
||||
Forge has always supported diversity in energy-like systems. If you have a burning desire to simulate electricity flow in all it's glory, we fully support you and look forward to playing your mod. If you wish to have pneumatic power, we have no objections, and would love to see your wonderful creations. If you have a power system of your own devising that is simply beyond our imagination, please, blow us away.
|
||||
|
||||
# On Modder Obligations
|
||||
As a modder, you are under *no* obligation to use or support the forge Energy system. If anyone, user, mod-pack maker or even us, tells you otherwise, refer them to this statement. The Forge energy system is not intended to supplant diversity in energy systems. It is not intended to be one-size-fits-all. The choice to support it, is the choice of the modder.
|
||||
+483
@@ -0,0 +1,483 @@
|
||||
Minecraft Forge is licensed under the terms of the LGPL 2.1 found
|
||||
here http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt and copied
|
||||
below.
|
||||
|
||||
A note on authorship:
|
||||
All source artifacts are property of their original author, with
|
||||
the exclusion of the contents of the patches directory and others
|
||||
copied from it from time to time. Authorship of the contents of
|
||||
the patches directory is retained by the Minecraft Forge project.
|
||||
This is because the patches are partially machine generated
|
||||
artifacts, and are changed heavily due to the way forge works.
|
||||
Individual attribution within them is impossible.
|
||||
|
||||
Consent:
|
||||
All contributions to Forge must consent to the release of any
|
||||
patch content to the Forge project.
|
||||
|
||||
A note on infectivity:
|
||||
The LGPL is chosen specifically so that projects may depend on Forge
|
||||
features without being infected with its license. That is the
|
||||
purpose of the LGPL. Mods and others using this code via ordinary
|
||||
Java mechanics for referencing libraries are specifically not bound
|
||||
by Forge's license for the Mod code.
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
@@ -0,0 +1,63 @@
|
||||
# How to install Forge: For Players
|
||||
|
||||
Go to [http://files.minecraftforge.net](http://files.minecraftforge.net)
|
||||
and select the minecraft version you wish to get forge for from the list.
|
||||
|
||||
You can download the installer for the *Recommended Build* or the
|
||||
*Lastest build* there. Latest builds may have newer features but may be
|
||||
more unstable as a result. The installer will attempt to install forge
|
||||
into your vanilla launcher environment, where you can then create a new
|
||||
profile using that version and play the game!
|
||||
|
||||
Here is a short video from Rorax showing how to install and setup Forge.
|
||||
|
||||
[](https://www.youtube.com/watch?v=lB3ArN_-3Oc)
|
||||
|
||||
For support and user questions, visit [http://www.minecraftforge.net](http://www.minecraftforge.net).
|
||||
|
||||
# How to install Forge: For Modders
|
||||
|
||||
If you wish to setup a new mod for Forge, visit
|
||||
[http://files.minecraftforge.net](http://files.minecraftforge.net) and
|
||||
select the **MDK** download.
|
||||
|
||||
This is the `Modder Developer Kit` - basically, an example mod with all
|
||||
the tooling needed to create a Forge mod workspace ready for use in your
|
||||
IDE of choice.
|
||||
|
||||
Here is a short video from @cpw showing how to install and setup the MDK
|
||||
in Intellij.
|
||||
|
||||
[](https://www.youtube.com/watch?v=PfmlNiHonV0)
|
||||
|
||||
# How to install Forge: For those wishing to work on Forge itself
|
||||
|
||||
If you wish to actually inspect Forge, submit PRs or otherwise work
|
||||
with Forge itself, you're in the right place! Clone this (either
|
||||
directly, or make a Fork first if you want to make a PR) and run
|
||||
```gradlew.bat setupForge``` or ```gradlew setupForge```. This will download and
|
||||
setup all the bits you need to have a functional Forge workspace.
|
||||
|
||||
After that, open a workspace in your favorite IDE and import existing projects
|
||||
the projects folder.
|
||||
|
||||
Here is a short video from @cpw showing how to install and setup Forge
|
||||
in Intellij.
|
||||
|
||||
[](https://www.youtube.com/watch?v=yanCpy8p2ZE)
|
||||
|
||||
## Pull requests
|
||||
|
||||
Pull requests should target the current default branch. Currently, that is
|
||||
the 1.10.x branch for Minecraft 1.10.2.
|
||||
|
||||
If you intend to modify a minecraft patch, or add a new one, always run
|
||||
```gradlew genPatches``` to generate your patch and validate that you
|
||||
are not doing anything unexpected in your patch.
|
||||
|
||||
### Contributor License Agreement
|
||||
As stated in the (https://github.com/MinecraftForge/MinecraftForge/blob/1.10.x/LICENSE-new.txt)
|
||||
file, we require all contributors to acknowledge the Forge Contributor
|
||||
License Agreement. Please ensure you have a valid email address
|
||||
associated with your github account to do this. If you have previously
|
||||
signed it, you should be OK.
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
*** HOW TO INSTALL ***
|
||||
For Mod Users:
|
||||
|
||||
Download the latest installer from http://files.minecraftforge.net and follow instructions given by the installer.
|
||||
|
||||
|
||||
For Mod Devs:
|
||||
|
||||
Download the latest Forge source distribution from http://files.minecraftforge.net and unzip it to a folder.
|
||||
Open a command prompt, navigate to the directory where you unzipped the Forge sources, and run:
|
||||
If you have Gradle: gradle setupDevWorkspace
|
||||
If you DO NOT have Gradle installed:
|
||||
Windows: ./gradlew.bat setupDevWorkspace
|
||||
MacOS/Linux: ./gradlew setupDevWorkspace
|
||||
|
||||
If you wish to use the Eclipse IDE, run gradle eclipse instead of gradle setupDevWorkspace, or install the Gradle plugin for Eclipse and import the Forge source folder as a Gradle project.
|
||||
|
||||
To get the decompiled classes:
|
||||
If you have Gradle: gradle setupDecompWorkspace
|
||||
If you DO NOT have Gradle installed:
|
||||
Windows: ./gradlew.bat setupDecompWorkspace
|
||||
MacOS/Linux: ./gradlew setupDecompWorkspace
|
||||
|
||||
For Contributors: (Note: This assumes you have Gradle installed. If you don't, use ./gradlew(.bat) instead of gradle.
|
||||
|
||||
Clone this repository to a folder.
|
||||
Open a command prompt and navigate to the folder where you cloned this repo.
|
||||
Run gradle setupForge to setup your development environment.
|
||||
|
||||
To use Eclipse, point your Eclipse workspace at the eclipse folder inside the repo.
|
||||
|
||||
|
||||
Requirements (for both mod devs and contributors):
|
||||
You must have a JDK installed and accessible.
|
||||
If you do not wish to use the gradle wrapper, you can install Gradle from http://www.gradle.org/ .
|
||||
|
||||
+63
-40
@@ -11,7 +11,7 @@ buildscript {
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,19 +21,20 @@ repositories {
|
||||
url = "file:///home/cpw/projects/repo"
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: "maven"
|
||||
apply plugin: "net.minecraftforge.gradle.patcher"
|
||||
apply plugin: "net.minecraftforge.gradle.launch4j"
|
||||
|
||||
minecraft.version = "1.10.2"
|
||||
|
||||
minecraft {
|
||||
version = "1.8.8"
|
||||
//mappings = 'stable_16'
|
||||
mappings = "snapshot_nodoc_20151122"
|
||||
mappings = 'snapshot_nodoc_20161111'
|
||||
workspaceDir = "projects"
|
||||
versionJson = "jsons/1.8.8-dev.json"
|
||||
versionJson = "jsons/${minecraft.version}-dev.json"
|
||||
buildUserdev = true
|
||||
buildInstaller = true
|
||||
installerVersion = "1.4"
|
||||
installerVersion = "1.5"
|
||||
|
||||
def common = {
|
||||
patchPrefixOriginal "../src-base/minecraft"
|
||||
@@ -52,6 +53,7 @@ minecraft {
|
||||
genPatchesFrom "clean"
|
||||
genMcpPatches = false
|
||||
applyMcpPatches = false
|
||||
s2sKeepImports = true
|
||||
with common
|
||||
}
|
||||
}
|
||||
@@ -61,11 +63,12 @@ group = 'net.minecraftforge'
|
||||
version = getVersionFromJava(file("src/main/java/net/minecraftforge/common/ForgeVersion.java"))
|
||||
|
||||
extractForgeSources { exclude "**/SideOnly.java", "**/Side.java" }
|
||||
extractForgeResources { exclude "**/log4j2.xml" }
|
||||
|
||||
genGradleProjects { addTestCompileDep "junit:junit:4.12" }
|
||||
|
||||
processJson {
|
||||
releaseJson = "jsons/1.8.8-rel.json"
|
||||
releaseJson = "jsons/${minecraft.version}-rel.json"
|
||||
addReplacements([
|
||||
"@minecraft_version@": project.minecraft.version,
|
||||
"@version@": project.version,
|
||||
@@ -81,14 +84,12 @@ task changelog(type: JenkinsChangelog) {
|
||||
// skip if there is no forge jenkins pass
|
||||
onlyIf {
|
||||
project.hasProperty('forgeJenkinsPass')
|
||||
// Not sure what abrar was trying to do here...
|
||||
//project.file("build/distributions/${project.name}-${project.version}-changelog.txt").text = ""
|
||||
}
|
||||
|
||||
outputs.upToDateWhen { false } // never up to date
|
||||
serverRoot = "http://ci.jenkins.minecraftforge.net/"
|
||||
jobName = "minecraftforge"
|
||||
targetBuild = System.env['BUILD_NUMBER'] ?: 0;
|
||||
targetBuild = System.env['BUILD_NUMBER'] ?: project.ext.properties.buildNumber ?:0;
|
||||
authName = "console_script"
|
||||
authPassword = project.hasProperty('forgeJenkinsPass') ? project.getProperty('forgeJenkinsPass') : "";
|
||||
output = "build/distributions/${project.name}-${project.version}-changelog.txt"
|
||||
@@ -105,14 +106,14 @@ task crowdin(type: CrowdinDownload) {
|
||||
}
|
||||
|
||||
def extraTxts = [
|
||||
changelog, // yeah we can do thi, because gradle and groovy are awesome
|
||||
"LICENSE-fml.txt",
|
||||
"CREDITS-fml.txt",
|
||||
"LICENSE-new.txt",
|
||||
"MinecraftForge-Credits.txt",
|
||||
"MinecraftForge-License.txt",
|
||||
"Paulscode SoundSystem CodecIBXM License.txt",
|
||||
"Paulscode IBXM Library License.txt"
|
||||
]
|
||||
if (project.hasProperty('forgeJenkinsPass'))
|
||||
extraTxts += changelog
|
||||
|
||||
outputJar {
|
||||
classifier = 'universal'
|
||||
@@ -133,6 +134,7 @@ installer {
|
||||
classifier = 'installer'
|
||||
from extraTxts
|
||||
from "src/main/resources/forge_logo.png"
|
||||
from "src/main/resources/url.png"
|
||||
rename "forge_logo\\.png", "big_logo.png"
|
||||
}
|
||||
|
||||
@@ -156,6 +158,7 @@ task signUniversal(type: SignJar, dependsOn: 'outputJar') {
|
||||
}
|
||||
uploadArchives.dependsOn signUniversal
|
||||
build.dependsOn signUniversal
|
||||
installer.dependsOn signUniversal
|
||||
|
||||
// MDK package
|
||||
|
||||
@@ -169,25 +172,25 @@ task makeMdk(type: Zip) {
|
||||
from 'gradlew'
|
||||
from 'gradlew.bat'
|
||||
into ('gradle') {
|
||||
from 'gradle'
|
||||
from 'gradle'
|
||||
}
|
||||
into ('eclipse') {
|
||||
from 'mdk/eclipse'
|
||||
}
|
||||
from changelog.output
|
||||
if (project.hasProperty('forgeJenkinsPass'))
|
||||
from changelog.output
|
||||
from ('mdk') {
|
||||
filter(ReplaceTokens, tokens: [
|
||||
VERSION: project.version,
|
||||
MAPPINGS: minecraft.mappings.replace('nodoc_', '')
|
||||
])
|
||||
exclude 'eclipse'
|
||||
rename 'gitignore\\.txt', '.gitignore'
|
||||
from 'MinecraftForge-Credits.txt'
|
||||
from 'MinecraftForge-License.txt'
|
||||
from 'Paulscode IBXM Library License.txt'
|
||||
from 'Paulscode SoundSystem CodecIBXM License.txt'
|
||||
from 'CREDITS-fml.txt'
|
||||
from 'LICENSE-fml.txt'
|
||||
filter(ReplaceTokens, tokens: [
|
||||
VERSION: project.version,
|
||||
MAPPINGS: minecraft.mappings.replace('nodoc_', '')
|
||||
])
|
||||
exclude 'eclipse'
|
||||
rename 'gitignore\\.txt', '.gitignore'
|
||||
from 'MinecraftForge-Credits.txt'
|
||||
from 'LICENSE-new.txt'
|
||||
from 'Paulscode IBXM Library License.txt'
|
||||
from 'Paulscode SoundSystem CodecIBXM License.txt'
|
||||
from 'CREDITS-fml.txt'
|
||||
}
|
||||
}
|
||||
tasks.build.dependsOn makeMdk
|
||||
@@ -209,21 +212,23 @@ tasks.build.dependsOn 'launch4j'
|
||||
// MAVEN
|
||||
|
||||
artifacts {
|
||||
archives changelog.output
|
||||
if (project.hasProperty('forgeJenkinsPass'))
|
||||
archives changelog.output
|
||||
archives file("build/distributions/${project.name}-${project.version}-installer-win.exe")
|
||||
archives makeMdk
|
||||
}
|
||||
|
||||
task ciWriteBuildNumber << {
|
||||
def file = file("src/main/java/net/minecraftforge/common/ForgeVersion.java");
|
||||
def bn = System.getenv("BUILD_NUMBER")?:0;
|
||||
def bn = System.getenv("BUILD_NUMBER")?:project.ext.properties.buildNumber?:0;
|
||||
def outfile = "";
|
||||
def ln = System.getProperty('line.separator')
|
||||
def ln = "\n"; //Linux line endings because we're on git!
|
||||
|
||||
file.eachLine{ String s ->
|
||||
if (s.contains("buildVersion") && s.contains("= 0;")) {
|
||||
if (s.matches("^ public static final int buildVersion = [\\d]+;\$"))
|
||||
s = " public static final int buildVersion = ${bn};";
|
||||
}
|
||||
if (s.matches('^ public static final String mcVersion = "[^\\"]+";'))
|
||||
s = " public static final String mcVersion = \"${minecraft.version}\";";
|
||||
outfile += (s+ln);
|
||||
}
|
||||
file.write(outfile);
|
||||
@@ -343,15 +348,13 @@ String getVersionFromJava(File file)
|
||||
}
|
||||
}
|
||||
|
||||
if (System.getenv().containsKey("BUILD_NUMBER"))
|
||||
{
|
||||
build = System.getenv("BUILD_NUMBER");
|
||||
}
|
||||
build = System.getenv("BUILD_NUMBER") ?: project.ext.properties.buildNumber ?: 0
|
||||
|
||||
|
||||
String branch = null;
|
||||
if (!System.getenv().containsKey("GIT_BRANCH"))
|
||||
{
|
||||
// TODO: use grgit
|
||||
// TODO: use grgit - Tried to switch 07/07/16 - jgit broken on windows?
|
||||
branch = "git rev-parse --abbrev-ref HEAD".execute().text.trim()
|
||||
}
|
||||
else
|
||||
@@ -362,13 +365,33 @@ String getVersionFromJava(File file)
|
||||
|
||||
def out = "${minecraft.version.replace('-', '_')}-$major.$minor.$revision.$build"
|
||||
|
||||
if (branch && branch != 'master' && branch != 'HEAD')
|
||||
out += "-$branch"
|
||||
if (branch && branch != 'master' && branch != 'HEAD' && branch != minecraft.version && branch != minecraft.version + '.0')
|
||||
{
|
||||
if (!(branch.endsWith('.x') && minecraft.version.startsWith(branch.substring(0, branch.length() -1))))
|
||||
out += "-$branch"
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
task resetBuildNumber << {
|
||||
project.ext.properties.buildNumber = 0;
|
||||
ciWriteBuildNumber.execute()
|
||||
}
|
||||
// re-add old tasks for jenkins compat
|
||||
// should be remvoed, and the jenkisn fixed when no longer building with FG 1.2
|
||||
task setupForge { dependsOn 'setup' }
|
||||
task setupForge { dependsOn 'setup', 'ciWriteBuildNumber' }
|
||||
task buildPackages { dependsOn 'build' }
|
||||
|
||||
//Temporary hack to fix compile errors caused by mappings shading in Bootstrap
|
||||
/*
|
||||
task fixParams << {
|
||||
logger.lifecycle('Fixing param names!')
|
||||
def params = new File(extractMcpMappings.destinationDir, 'params.csv')
|
||||
def text = params.text
|
||||
text = text.replaceAll('p_180276_1_,biome,', 'p_180276_1_,biomeIn,')
|
||||
params.write(text)
|
||||
}
|
||||
fixParams.dependsOn('extractMcpMappings')
|
||||
extractMcpMappings.finalizedBy('fixParams')
|
||||
*/
|
||||
+1
-1
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.7-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"inheritsFrom": "1.10",
|
||||
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12"
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.findbugs:jsr305:1.3.9",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-debug-all:5.0.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"install": {
|
||||
"profileName": "@project@",
|
||||
"target":"@minecraft_version@-@project@@version@",
|
||||
"path":"@artifact@",
|
||||
"version":"@project@ @version@",
|
||||
"filePath":"@universal_jar@",
|
||||
"welcome":"Welcome to the simple @project@ installer.",
|
||||
"minecraft":"@minecraft_version@",
|
||||
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
|
||||
"logo":"/big_logo.png"
|
||||
},
|
||||
"versionInfo": {
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"inheritsFrom": "1.10",
|
||||
"jar": "1.10",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-all:5.0.3",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
|
||||
"serverreq":true,
|
||||
"clientreq":false
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"inheritsFrom": "1.10.2",
|
||||
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12"
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.findbugs:jsr305:1.3.9",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-debug-all:5.0.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"install": {
|
||||
"profileName": "@project@",
|
||||
"target":"@minecraft_version@-@project@@version@",
|
||||
"path":"@artifact@",
|
||||
"version":"@project@ @version@",
|
||||
"filePath":"@universal_jar@",
|
||||
"welcome":"Welcome to the simple @project@ installer.",
|
||||
"minecraft":"@minecraft_version@",
|
||||
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
|
||||
"logo":"/big_logo.png",
|
||||
"modList": "none"
|
||||
},
|
||||
"versionInfo": {
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"inheritsFrom": "1.10.2",
|
||||
"jar": "1.10.2",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-all:5.0.3",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
|
||||
"serverreq":true,
|
||||
"clientreq":false
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
}
|
||||
]
|
||||
},
|
||||
"optionals": [
|
||||
{
|
||||
"name": "Mercurius",
|
||||
"client": true,
|
||||
"server": true,
|
||||
"default": true,
|
||||
"inject": true,
|
||||
"desc": "A mod that collects statistics about Minecraft and your system.<br>Useful for Forge to understand how Minecraft/Forge are used.",
|
||||
"url": "http://www.minecraftforge.net/forum/index.php?topic=43278.0",
|
||||
"artifact": "net.minecraftforge:MercuriusUpdater:1.10.2",
|
||||
"maven": "http://files.minecraftforge.net/maven/"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,563 @@
|
||||
{
|
||||
"assetIndex": {
|
||||
"id": "1.10",
|
||||
"sha1": "72241db3c0bdc39e39b202182ff0000da5271a1d",
|
||||
"size": 145874,
|
||||
"url": "https://launchermeta.mojang.com/mc/assets/1.10/72241db3c0bdc39e39b202182ff0000da5271a1d/1.10.json",
|
||||
"totalSize": 122198775
|
||||
},
|
||||
"assets": "1.10",
|
||||
"downloads": {
|
||||
"client": {
|
||||
"sha1": "dc8e75ac7274ff6af462b0dcec43c307de668e40",
|
||||
"size": 8857653,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.10.2/client/dc8e75ac7274ff6af462b0dcec43c307de668e40/client.jar"
|
||||
},
|
||||
"server": {
|
||||
"sha1": "3d501b23df53c548254f5e3f66492d178a48db63",
|
||||
"size": 9459897,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.10.2/server/3d501b23df53c548254f5e3f66492d178a48db63/server.jar"
|
||||
}
|
||||
},
|
||||
"id": "1.10.2",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "com.mojang:netty:1.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7877,
|
||||
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
|
||||
"path": "com/mojang/netty/1.6/netty-1.6.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 30973,
|
||||
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
|
||||
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
|
||||
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1008730,
|
||||
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
|
||||
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 913436,
|
||||
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
|
||||
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1634692,
|
||||
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
|
||||
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
|
||||
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62477,
|
||||
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
|
||||
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
|
||||
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 103871,
|
||||
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
|
||||
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 5618,
|
||||
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
|
||||
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 21679,
|
||||
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
|
||||
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 18981,
|
||||
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
|
||||
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 65020,
|
||||
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
|
||||
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1779991,
|
||||
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
|
||||
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
|
||||
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 2243036,
|
||||
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
|
||||
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 412739,
|
||||
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
|
||||
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 185140,
|
||||
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
|
||||
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 263965,
|
||||
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
|
||||
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 208338,
|
||||
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
|
||||
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7508,
|
||||
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
|
||||
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 190432,
|
||||
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
|
||||
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.22",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 64539,
|
||||
"sha1": "afaa8f6df976fcb5520e76ef1d5798c9e6b5c0b2",
|
||||
"path": "com/mojang/authlib/1.5.22/authlib-1.5.22.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.22/authlib-1.5.22.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.9.8",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1577897,
|
||||
"sha1": "c9609760e050cd7c369292252552c0cc81c54331",
|
||||
"path": "com/mojang/realms/1.9.8/realms-1.9.8.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/realms/1.9.8/realms-1.9.8.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 365552,
|
||||
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
|
||||
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 589512,
|
||||
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
|
||||
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62050,
|
||||
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
|
||||
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 282269,
|
||||
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
|
||||
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 522306,
|
||||
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
|
||||
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
|
||||
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 108161,
|
||||
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
|
||||
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 681134,
|
||||
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
|
||||
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1047168,
|
||||
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578680,
|
||||
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 426822,
|
||||
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613748,
|
||||
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
|
||||
}
|
||||
},
|
||||
"artifact": {
|
||||
"size": 22,
|
||||
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1045632,
|
||||
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578539,
|
||||
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 468116,
|
||||
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613680,
|
||||
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 10362,
|
||||
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 12186,
|
||||
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 155179,
|
||||
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"logging": {
|
||||
"client": {
|
||||
"file": {
|
||||
"id": "client-1.7.xml",
|
||||
"sha1": "49e2e41bc339698bd8199e0da9398c926e68c95d",
|
||||
"size": 467,
|
||||
"url": "https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/49e2e41bc339698bd8199e0da9398c926e68c95d/client-1.7.xml"
|
||||
},
|
||||
"argument": "-Dlog4j.configurationFile=${path}",
|
||||
"type": "log4j2-xml"
|
||||
}
|
||||
},
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"minimumLauncherVersion": 18,
|
||||
"releaseTime": "2016-06-23T09:17:32+00:00",
|
||||
"time": "2016-10-22T20:28:03+00:00",
|
||||
"type": "release"
|
||||
}
|
||||
+563
@@ -0,0 +1,563 @@
|
||||
{
|
||||
"assetIndex": {
|
||||
"id": "1.10",
|
||||
"sha1": "d3bfc4ffba1ea334c725dd91eaf4ecd402d641f7",
|
||||
"size": 145627,
|
||||
"url": "https://launchermeta.mojang.com/mc/assets/1.10/d3bfc4ffba1ea334c725dd91eaf4ecd402d641f7/1.10.json",
|
||||
"totalSize": 121931230
|
||||
},
|
||||
"assets": "1.10",
|
||||
"downloads": {
|
||||
"client": {
|
||||
"sha1": "ba038efbc6d9e4a046927a7658413d0276895739",
|
||||
"size": 8856992,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.10/client/ba038efbc6d9e4a046927a7658413d0276895739/client.jar"
|
||||
},
|
||||
"server": {
|
||||
"sha1": "a96617ffdf5dabbb718ab11a9a68e50545fc5bee",
|
||||
"size": 9459395,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.10/server/a96617ffdf5dabbb718ab11a9a68e50545fc5bee/server.jar"
|
||||
}
|
||||
},
|
||||
"id": "1.10",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "com.mojang:netty:1.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7877,
|
||||
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
|
||||
"path": "com/mojang/netty/1.6/netty-1.6.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 30973,
|
||||
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
|
||||
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
|
||||
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1008730,
|
||||
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
|
||||
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 913436,
|
||||
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
|
||||
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1634692,
|
||||
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
|
||||
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
|
||||
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62477,
|
||||
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
|
||||
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
|
||||
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 103871,
|
||||
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
|
||||
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 5618,
|
||||
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
|
||||
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 21679,
|
||||
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
|
||||
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 18981,
|
||||
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
|
||||
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 65020,
|
||||
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
|
||||
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1779991,
|
||||
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
|
||||
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
|
||||
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 2243036,
|
||||
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
|
||||
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 412739,
|
||||
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
|
||||
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 185140,
|
||||
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
|
||||
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 263965,
|
||||
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
|
||||
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 208338,
|
||||
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
|
||||
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7508,
|
||||
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
|
||||
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 190432,
|
||||
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
|
||||
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.22",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 64539,
|
||||
"sha1": "afaa8f6df976fcb5520e76ef1d5798c9e6b5c0b2",
|
||||
"path": "com/mojang/authlib/1.5.22/authlib-1.5.22.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.22/authlib-1.5.22.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.9.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1575796,
|
||||
"sha1": "cd3929316dfd85be640e1c1f15df5577cdcd860b",
|
||||
"path": "com/mojang/realms/1.9.1/realms-1.9.1.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/realms/1.9.1/realms-1.9.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 365552,
|
||||
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
|
||||
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 589512,
|
||||
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
|
||||
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62050,
|
||||
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
|
||||
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 282269,
|
||||
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
|
||||
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 522306,
|
||||
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
|
||||
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
|
||||
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 108161,
|
||||
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
|
||||
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 681134,
|
||||
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
|
||||
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1047168,
|
||||
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578680,
|
||||
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 426822,
|
||||
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613748,
|
||||
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
|
||||
}
|
||||
},
|
||||
"artifact": {
|
||||
"size": 22,
|
||||
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1045632,
|
||||
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578539,
|
||||
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 468116,
|
||||
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613680,
|
||||
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 10362,
|
||||
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 12186,
|
||||
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 155179,
|
||||
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"logging": {
|
||||
"client": {
|
||||
"file": {
|
||||
"id": "client-1.7.xml",
|
||||
"sha1": "49e2e41bc339698bd8199e0da9398c926e68c95d",
|
||||
"size": 467,
|
||||
"url": "https://launchermeta.mojang.com/mc/log_configs/client-1.7.xml/49e2e41bc339698bd8199e0da9398c926e68c95d/client-1.7.xml"
|
||||
},
|
||||
"argument": "-Dlog4j.configurationFile=${path}",
|
||||
"type": "log4j2-xml"
|
||||
}
|
||||
},
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"minimumLauncherVersion": 18,
|
||||
"releaseTime": "2016-06-08T13:06:18+00:00",
|
||||
"time": "2016-06-20T15:31:06+00:00",
|
||||
"type": "release"
|
||||
}
|
||||
+2
-1
@@ -29,7 +29,8 @@
|
||||
{
|
||||
"comment": "Force the downgrade on dedicated server to match client. Netty bug: https://github.com/MinecraftForge/MinecraftForge/issues/1848",
|
||||
"name": "io.netty:netty-all:4.0.15.Final",
|
||||
"serverreq":true
|
||||
"serverreq":true,
|
||||
"clientclasspath":false
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
|
||||
@@ -26,11 +26,6 @@
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"comment": "Force the downgrade on dedicated server to match client. Netty bug: https://github.com/MinecraftForge/MinecraftForge/issues/1848",
|
||||
"name": "io.netty:netty-all:4.0.23.Final",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"inheritsFrom": "1.8.9",
|
||||
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12"
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.findbugs:jsr305:1.3.9",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-debug-all:5.0.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3"
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"minimumLauncherVersion": 14,
|
||||
"assets": "1.8"
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"install": {
|
||||
"profileName": "@project@",
|
||||
"target":"@minecraft_version@-@project@@version@",
|
||||
"path":"@artifact@",
|
||||
"version":"@project@ @version@",
|
||||
"filePath":"@universal_jar@",
|
||||
"welcome":"Welcome to the simple @project@ installer.",
|
||||
"minecraft":"@minecraft_version@",
|
||||
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
|
||||
"logo":"/big_logo.png"
|
||||
},
|
||||
"versionInfo": {
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userProperties ${user_properties} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"minimumLauncherVersion": 14,
|
||||
"assets": "1.8",
|
||||
"inheritsFrom": "1.8.9",
|
||||
"jar": "1.8.9",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-all:5.0.3",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
|
||||
"serverreq":true,
|
||||
"clientreq":false
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"id": "1.8.9",
|
||||
"time": "2015-12-03T12:24:39+03:00",
|
||||
"releaseTime": "2015-12-03T12:24:39+03:00",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userProperties ${user_properties} --userType ${user_type}",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107"
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final"
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2"
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4"
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.21"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.7.48"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3"
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"windows": "natives-windows",
|
||||
"osx": "natives-osx"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"windows": "natives-windows",
|
||||
"osx": "natives-osx"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"windows": "natives-windows",
|
||||
"osx": "natives-osx"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tv.twitch:twitch:6.5"
|
||||
},
|
||||
{
|
||||
"name": "tv.twitch:twitch-platform:6.5",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "linux"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"windows": "natives-windows-${arch}",
|
||||
"osx": "natives-osx"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tv.twitch:twitch-external-platform:4.5",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "windows"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"windows": "natives-windows-${arch}"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minimumLauncherVersion": 14,
|
||||
"assets": "1.8"
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"inheritsFrom": "1.9",
|
||||
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12"
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.findbugs:jsr305:1.3.9",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-debug-all:5.0.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3"
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"minimumLauncherVersion": 14,
|
||||
"assets": "1.8"
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"install": {
|
||||
"profileName": "@project@",
|
||||
"target":"@minecraft_version@-@project@@version@",
|
||||
"path":"@artifact@",
|
||||
"version":"@project@ @version@",
|
||||
"filePath":"@universal_jar@",
|
||||
"welcome":"Welcome to the simple @project@ installer.",
|
||||
"minecraft":"@minecraft_version@",
|
||||
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
|
||||
"logo":"/big_logo.png"
|
||||
},
|
||||
"versionInfo": {
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"minimumLauncherVersion": 14,
|
||||
"inheritsFrom": "1.9",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-all:5.0.3",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
|
||||
"serverreq":true,
|
||||
"clientreq":false
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"inheritsFrom": "1.9.4",
|
||||
"minecraftArguments": "--version FML_DEV --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12"
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.findbugs:jsr305:1.3.9",
|
||||
"children": ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-debug-all:5.0.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-swing_2.11:1.0.1",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.modules:scala-xml_2.11:1.0.2",
|
||||
"children" : ["sources"],
|
||||
"url" : "http://repo.maven.apache.org/maven2"
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"install": {
|
||||
"profileName": "@project@",
|
||||
"target":"@minecraft_version@-@project@@version@",
|
||||
"path":"@artifact@",
|
||||
"version":"@project@ @version@",
|
||||
"filePath":"@universal_jar@",
|
||||
"welcome":"Welcome to the simple @project@ installer.",
|
||||
"minecraft":"@minecraft_version@",
|
||||
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
|
||||
"logo":"/big_logo.png"
|
||||
},
|
||||
"versionInfo": {
|
||||
"id": "@minecraft_version@-@project@@version@",
|
||||
"time": "@timestamp@",
|
||||
"releaseTime": "1960-01-01T00:00:00-0700",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker --versionType Forge",
|
||||
"mainClass": "net.minecraft.launchwrapper.Launch",
|
||||
"inheritsFrom": "1.9.4",
|
||||
"jar": "1.9.4",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "@artifact@",
|
||||
"url": "http://files.minecraftforge.net/maven/"
|
||||
},
|
||||
{
|
||||
"name": "net.minecraft:launchwrapper:1.12",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.ow2.asm:asm-all:5.0.3",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "jline:jline:2.13",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "2d9530d0a25daffaffda7c35037b046b627bb171" ],
|
||||
"serverreq":true,
|
||||
"clientreq":false
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe.akka:akka-actor_2.11:2.3.3",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "ed62e9fc709ca0f2ff1a3220daa8b70a2870078e", "25a86ccfdb6f6dfe08971f4825d0a01be83a6f2e" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "com.typesafe:config:1.2.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f771f71fdae3df231bcd54d5ca2d57f0bf93f467", "7d7bc36df0989d72f2d5d057309675777acc528b" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-actors-migration_2.11:1.1.0",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f", "8c9aaeeb68487ca519411a14068e1b4d69739207" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-compiler:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "56ea2e6c025e0821f28d73ca271218b8dd04926a", "1444992390544ba3780867a13ff696a89d7d1639" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "87213338cd5a153a7712cb574c0ddd2edfee0386", "0b4c1bf8d48993f138d6e10c0c144e50acfff581" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "1f7371605d4ba42aa26d3443440c0083c587b4e9", "1ea655dda4504ae0a367327e2340cd3beaee6c73" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-library:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "0e11da23da3eabab9f4777b9220e60d44c1aab6a", "1e4df76e835201c6eabd43adca89ab11f225f134" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-parser-combinators_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "f05d7345bf5a58924f2837c6c1f4d73a938e1ff0", "a1cbbcbde1dcc614f4253ed1aa0b320bc78d8f1d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-reflect:2.11.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "6580347e61cc7f8e802941e7fde40fa83b8badeb", "91ce0f0be20f4a536321724b4b3bbc6530ddcd88" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-swing_2.11:1.0.1",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "b1cdd92bd47b1e1837139c1c53020e86bb9112ae", "d77152691dcf5bbdb00529af37aa7d3d887b3e63" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "org.scala-lang:scala-xml_2.11:1.0.2",
|
||||
"url" : "http://files.minecraftforge.net/maven/",
|
||||
"checksums" : [ "7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0", "62736b01689d56b6d09a0164b7ef9da2b0b9633d" ],
|
||||
"serverreq":true,
|
||||
"clientreq":true
|
||||
},
|
||||
{
|
||||
"name": "lzma:lzma:0.0.1",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "java3d:vecmath:1.5.2",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
},
|
||||
{
|
||||
"name": "net.sf.trove4j:trove4j:3.0.3",
|
||||
"clientreq":true,
|
||||
"serverreq":true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,551 @@
|
||||
{
|
||||
"assetIndex": {
|
||||
"id": "1.9",
|
||||
"sha1": "8549e8aca91ee8b8d1620e9e8252d477f16a56d5",
|
||||
"size": 137552,
|
||||
"url": "https://launchermeta.mojang.com/mc-staging/assets/1.9/8549e8aca91ee8b8d1620e9e8252d477f16a56d5/1.9.json",
|
||||
"totalSize": 120896362
|
||||
},
|
||||
"assets": "1.9",
|
||||
"downloads": {
|
||||
"client": {
|
||||
"sha1": "4a61c873be90bb1196d68dac7b29870408c56969",
|
||||
"size": 8736083,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9.4/client/4a61c873be90bb1196d68dac7b29870408c56969/client.jar"
|
||||
},
|
||||
"server": {
|
||||
"sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274",
|
||||
"size": 9399053,
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9.4/server/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar"
|
||||
}
|
||||
},
|
||||
"id": "1.9.4",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "com.mojang:netty:1.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7877,
|
||||
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
|
||||
"path": "com/mojang/netty/1.6/netty-1.6.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 30973,
|
||||
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
|
||||
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
|
||||
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1008730,
|
||||
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
|
||||
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 913436,
|
||||
"sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13",
|
||||
"path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1634692,
|
||||
"sha1": "63d216a9311cca6be337c1e458e587f99d382b84",
|
||||
"path": "com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar",
|
||||
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j-core-mojang/51.2/icu4j-core-mojang-51.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62477,
|
||||
"sha1": "306816fb57cf94f108a43c95731b08934dcae15c",
|
||||
"path": "net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar",
|
||||
"url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/4.6/jopt-simple-4.6.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 103871,
|
||||
"sha1": "c73b5636faf089d9f00e8732a829577de25237ee",
|
||||
"path": "com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecjorbis/20101023/codecjorbis-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 5618,
|
||||
"sha1": "12f031cfe88fef5c1dd36c563c0a3a69bd7261da",
|
||||
"path": "com/paulscode/codecwav/20101023/codecwav-20101023.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/codecwav/20101023/codecwav-20101023.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 21679,
|
||||
"sha1": "5c5e304366f75f9eaa2e8cca546a1fb6109348b3",
|
||||
"path": "com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/libraryjavasound/20101123/libraryjavasound-20101123.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 18981,
|
||||
"sha1": "73e80d0794c39665aec3f62eee88ca91676674ef",
|
||||
"path": "com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/librarylwjglopenal/20100824/librarylwjglopenal-20100824.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 65020,
|
||||
"sha1": "419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6",
|
||||
"path": "com/paulscode/soundsystem/20120107/soundsystem-20120107.jar",
|
||||
"url": "https://libraries.minecraft.net/com/paulscode/soundsystem/20120107/soundsystem-20120107.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1779991,
|
||||
"sha1": "0294104aaf1781d6a56a07d561e792c5d0c95f45",
|
||||
"path": "io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar",
|
||||
"url": "https://libraries.minecraft.net/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 2243036,
|
||||
"sha1": "9c6ef172e8de35fd8d4d8783e4821e57cdef7445",
|
||||
"path": "com/google/guava/guava/17.0/guava-17.0.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/guava/guava/17.0/guava-17.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 412739,
|
||||
"sha1": "90a3822c38ec8c996e84c16a3477ef632cbc87a3",
|
||||
"path": "org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 185140,
|
||||
"sha1": "b1b6ea3b7e4aa4f492509a4952029cd8e48019ad",
|
||||
"path": "commons-io/commons-io/2.4/commons-io-2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-io/commons-io/2.4/commons-io-2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 263965,
|
||||
"sha1": "9ce04e34240f674bc72680f8b843b1457383161a",
|
||||
"path": "commons-codec/commons-codec/1.9/commons-codec-1.9.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.9/commons-codec-1.9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 208338,
|
||||
"sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
|
||||
"path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 7508,
|
||||
"sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
|
||||
"path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 190432,
|
||||
"sha1": "a60a5e993c98c864010053cb901b7eab25306568",
|
||||
"path": "com/google/code/gson/gson/2.2.4/gson-2.2.4.jar",
|
||||
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.22",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 64539,
|
||||
"sha1": "afaa8f6df976fcb5520e76ef1d5798c9e6b5c0b2",
|
||||
"path": "com/mojang/authlib/1.5.22/authlib-1.5.22.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/authlib/1.5.22/authlib-1.5.22.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.8.19",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1575795,
|
||||
"sha1": "f7469a9307b962d1097e44713eb1baa087c06e43",
|
||||
"path": "com/mojang/realms/1.8.19/realms-1.8.19.jar",
|
||||
"url": "https://libraries.minecraft.net/com/mojang/realms/1.8.19/realms-1.8.19.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 365552,
|
||||
"sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d",
|
||||
"path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 589512,
|
||||
"sha1": "18f4247ff4572a074444572cee34647c43e7c9c7",
|
||||
"path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 62050,
|
||||
"sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f",
|
||||
"path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar",
|
||||
"url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 282269,
|
||||
"sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e",
|
||||
"path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "it.unimi.dsi:fastutil:7.0.12_mojang",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 522306,
|
||||
"sha1": "ba787e741efdc425fc5d2ea654b57c15fba27efa",
|
||||
"path": "it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar",
|
||||
"url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/7.0.12_mojang/fastutil-7.0.12_mojang.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 108161,
|
||||
"sha1": "1dd66e68cccd907880229f9e2de1314bd13ff785",
|
||||
"path": "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9",
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 681134,
|
||||
"sha1": "678861ba1b2e1fccb594bb0ca03114bb05da9695",
|
||||
"path": "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar",
|
||||
"url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1047168,
|
||||
"sha1": "697517568c68e78ae0b4544145af031c81082dfe",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.4-nightly-20150209/lwjgl-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "d51a7c040a721d13efdfbd34f8b257b2df882ad0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.4-nightly-20150209/lwjgl_util-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578680,
|
||||
"sha1": "931074f46c795d2f7b30ed6395df5715cfd7675b",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 426822,
|
||||
"sha1": "bcab850f8f487c3f4c4dbabde778bb82bd1a40ed",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613748,
|
||||
"sha1": "b84d5102b9dbfabfeb5e43c7e2828d98a7fc80e0",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar"
|
||||
}
|
||||
},
|
||||
"artifact": {
|
||||
"size": 22,
|
||||
"sha1": "b04f3ee8f5e43fa3b162981b50bb72fe1acabb33",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 1045632,
|
||||
"sha1": "7707204c9ffa5d91662de95f0a224e2f721b22af",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl/2.9.2-nightly-20140822/lwjgl-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"artifact": {
|
||||
"size": 173887,
|
||||
"sha1": "f0e612c840a7639c1f77f68d72a28dae2f0c8490",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl_util/2.9.2-nightly-20140822/lwjgl_util-2.9.2-nightly-20140822.jar"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 578539,
|
||||
"sha1": "d898a33b5d0a6ef3fed3a4ead506566dce6720a5",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 468116,
|
||||
"sha1": "79f5ce2fea02e77fe47a3c745219167a542121d7",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 613680,
|
||||
"sha1": "78b2a55ce4dc29c6b3ec4df8ca165eba05f9b341",
|
||||
"path": "org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/lwjgl-platform/2.9.2-nightly-20140822/lwjgl-platform-2.9.2-nightly-20140822-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
},
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"downloads": {
|
||||
"classifiers": {
|
||||
"natives-linux": {
|
||||
"size": 10362,
|
||||
"sha1": "7ff832a6eb9ab6a767f1ade2b548092d0fa64795",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar"
|
||||
},
|
||||
"natives-osx": {
|
||||
"size": 12186,
|
||||
"sha1": "53f9c919f34d2ca9de8c51fc4e1e8282029a9232",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-osx.jar"
|
||||
},
|
||||
"natives-windows": {
|
||||
"size": 155179,
|
||||
"sha1": "385ee093e01f587f30ee1c8a2ee7d408fd732e16",
|
||||
"path": "net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar",
|
||||
"url": "https://libraries.minecraft.net/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"minimumLauncherVersion": 18,
|
||||
"releaseTime": "2016-05-10T10:17:16+00:00",
|
||||
"time": "2016-05-10T14:45:26+00:00",
|
||||
"type": "release"
|
||||
}
|
||||
+218
@@ -0,0 +1,218 @@
|
||||
{
|
||||
"id": "1.9",
|
||||
"time": "2016-02-29T08:50:46-05:00",
|
||||
"releaseTime": "2016-02-29T08:49:54-05:00",
|
||||
"type": "release",
|
||||
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userType ${user_type} --versionType ${version_type}",
|
||||
"libraries": [
|
||||
{
|
||||
"name": "oshi-project:oshi-core:1.1"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:jna:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "net.java.dev.jna:platform:3.4.0"
|
||||
},
|
||||
{
|
||||
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
|
||||
},
|
||||
{
|
||||
"name": "net.sf.jopt-simple:jopt-simple:4.6"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecjorbis:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:codecwav:20101023"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:libraryjavasound:20101123"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:librarylwjglopenal:20100824"
|
||||
},
|
||||
{
|
||||
"name": "com.paulscode:soundsystem:20120107"
|
||||
},
|
||||
{
|
||||
"name": "io.netty:netty-all:4.0.23.Final"
|
||||
},
|
||||
{
|
||||
"name": "com.google.guava:guava:17.0"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-lang3:3.3.2"
|
||||
},
|
||||
{
|
||||
"name": "commons-io:commons-io:2.4"
|
||||
},
|
||||
{
|
||||
"name": "commons-codec:commons-codec:1.9"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput:2.0.5"
|
||||
},
|
||||
{
|
||||
"name": "net.java.jutils:jutils:1.0.0"
|
||||
},
|
||||
{
|
||||
"name": "com.google.code.gson:gson:2.2.4"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:authlib:1.5.22"
|
||||
},
|
||||
{
|
||||
"name": "com.mojang:realms:1.8.3"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.commons:commons-compress:1.8.1"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpclient:4.3.3"
|
||||
},
|
||||
{
|
||||
"name": "commons-logging:commons-logging:1.1.3"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.httpcomponents:httpcore:4.3.2"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.4-nightly-20150209",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow"
|
||||
},
|
||||
{
|
||||
"action": "disallow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.2-nightly-20140822",
|
||||
"rules": [
|
||||
{
|
||||
"action": "allow",
|
||||
"os": {
|
||||
"name": "osx"
|
||||
}
|
||||
}
|
||||
],
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "net.java.jinput:jinput-platform:2.0.5",
|
||||
"natives": {
|
||||
"linux": "natives-linux",
|
||||
"osx": "natives-osx",
|
||||
"windows": "natives-windows"
|
||||
},
|
||||
"extract": {
|
||||
"exclude": [
|
||||
"META-INF/"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"mainClass": "net.minecraft.client.main.Main",
|
||||
"minimumLauncherVersion": 18,
|
||||
"assets": "1.9",
|
||||
"downloads": {
|
||||
"client": {
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9/client/2f67dfe8953299440d1902f9124f0f2c3a2c940f/client.jar",
|
||||
"sha1": "2f67dfe8953299440d1902f9124f0f2c3a2c940f",
|
||||
"size": 8697592
|
||||
},
|
||||
"server": {
|
||||
"url": "https://launcher.mojang.com/mc/game/1.9/server/b4d449cf2918e0f3bd8aa18954b916a4d1880f0d/server.jar",
|
||||
"sha1": "b4d449cf2918e0f3bd8aa18954b916a4d1880f0d",
|
||||
"size": 8848015
|
||||
}
|
||||
},
|
||||
"assetIndex": {
|
||||
"totalSize": 119917473,
|
||||
"id": "1.9",
|
||||
"known": true,
|
||||
"url": "https://launchermeta.mojang.com/mc-staging/assets/1.9/cde65b47a43f638653ab1da3848b53f8a7477b16/1.9.json",
|
||||
"sha1": "cde65b47a43f638653ab1da3848b53f8a7477b16",
|
||||
"size": 136916
|
||||
}
|
||||
}
|
||||
+9
-13
@@ -1,29 +1,25 @@
|
||||
|
||||
// For those who want the bleeding edge
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
maven {
|
||||
name = "forge"
|
||||
url = "http://files.minecraftforge.net/maven"
|
||||
}
|
||||
maven { url = "http://files.minecraftforge.net/maven" }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT'
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
apply plugin: 'net.minecraftforge.gradle.forge'
|
||||
//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup.
|
||||
|
||||
|
||||
/*
|
||||
// for people who want stable - not yet functional for MC 1.8.8 - we require the forgegradle 2.1 snapshot
|
||||
plugins {
|
||||
id "net.minecraftforge.gradle.forge" version "2.0.2"
|
||||
}
|
||||
*/
|
||||
version = "1.0"
|
||||
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = "modid"
|
||||
|
||||
sourceCompatibility = targetCompatibility = "1.6" // Need this here so eclipse task generates correctly.
|
||||
compileJava {
|
||||
sourceCompatibility = targetCompatibility = "1.6"
|
||||
}
|
||||
|
||||
minecraft {
|
||||
version = "@VERSION@"
|
||||
runDir = "run"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
|
||||
# This is required to provide enough memory for the Minecraft decompilation process.
|
||||
org.gradle.jvmargs=-Xmx3G
|
||||
@@ -14,7 +14,7 @@ public class ExampleMod
|
||||
@EventHandler
|
||||
public void init(FMLInitializationEvent event)
|
||||
{
|
||||
// some example code
|
||||
System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
|
||||
// some example code
|
||||
System.out.println("DIRT BLOCK >> "+Blocks.DIRT.getUnlocalizedName());
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,22 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/Block.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/Block.java
|
||||
@@ -38,8 +38,9 @@
|
||||
public class Block
|
||||
@@ -44,11 +44,12 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
-public class Block
|
||||
+public class Block extends net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl<Block>
|
||||
{
|
||||
private static final ResourceLocation field_176230_a = new ResourceLocation("air");
|
||||
- public static final RegistryNamespacedDefaultedByKey<ResourceLocation, Block> field_149771_c = new RegistryNamespacedDefaultedByKey(field_176230_a);
|
||||
- public static final ObjectIntIdentityMap<IBlockState> field_176229_d = new ObjectIntIdentityMap();
|
||||
+ public static final RegistryNamespacedDefaultedByKey<ResourceLocation,Block> field_149771_c = net.minecraftforge.fml.common.registry.GameData.getBlockRegistry();
|
||||
+ public static final RegistryNamespacedDefaultedByKey<ResourceLocation, Block> field_149771_c = net.minecraftforge.fml.common.registry.GameData.getBlockRegistry();
|
||||
+ @Deprecated //Modders: DO NOT use this! Use GameRegistry
|
||||
+ public static final ObjectIntIdentityMap<IBlockState> field_176229_d = net.minecraftforge.fml.common.registry.GameData.getBlockStateIDMap();
|
||||
public static final AxisAlignedBB field_185505_j = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
|
||||
public static final AxisAlignedBB field_185506_k = null;
|
||||
private CreativeTabs field_149772_a;
|
||||
public static final Block.SoundType field_149769_e = new Block.SoundType("stone", 1.0F, 1.0F);
|
||||
public static final Block.SoundType field_149766_f = new Block.SoundType("wood", 1.0F, 1.0F);
|
||||
@@ -119,6 +120,9 @@
|
||||
private IBlockState field_176228_M;
|
||||
private String field_149770_b;
|
||||
|
||||
+ public final net.minecraftforge.fml.common.registry.RegistryDelegate<Block> delegate =
|
||||
+ ((net.minecraftforge.fml.common.registry.FMLControlledNamespacedRegistry)field_149771_c).getDelegate(this, Block.class);
|
||||
+
|
||||
public static int func_149682_b(Block p_149682_0_)
|
||||
{
|
||||
return field_149771_c.func_148757_b(p_149682_0_);
|
||||
@@ -132,7 +136,8 @@
|
||||
@@ -84,7 +85,8 @@
|
||||
|
||||
public static Block func_149729_e(int p_149729_0_)
|
||||
{
|
||||
@@ -32,16 +26,16 @@
|
||||
}
|
||||
|
||||
public static IBlockState func_176220_d(int p_176220_0_)
|
||||
@@ -303,7 +308,7 @@
|
||||
@@ -292,7 +294,7 @@
|
||||
|
||||
public boolean func_176200_f(World p_176200_1_, BlockPos p_176200_2_)
|
||||
public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_)
|
||||
{
|
||||
- return false;
|
||||
+ return func_149688_o().func_76222_j();
|
||||
+ return p_176200_1_.func_180495_p(p_176200_2_).func_185904_a().func_76222_j();
|
||||
}
|
||||
|
||||
public Block func_149711_c(float p_149711_1_)
|
||||
@@ -340,9 +345,10 @@
|
||||
@@ -330,9 +332,10 @@
|
||||
return this.field_149789_z;
|
||||
}
|
||||
|
||||
@@ -52,33 +46,33 @@
|
||||
+ return hasTileEntity(func_176223_P());
|
||||
}
|
||||
|
||||
public final void func_149676_a(float p_149676_1_, float p_149676_2_, float p_149676_3_, float p_149676_4_, float p_149676_5_, float p_149676_6_)
|
||||
@@ -359,13 +365,13 @@
|
||||
public int func_176207_c(IBlockAccess p_176207_1_, BlockPos p_176207_2_)
|
||||
@Deprecated
|
||||
@@ -376,13 +379,13 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int func_185484_c(IBlockState p_185484_1_, IBlockAccess p_185484_2_, BlockPos p_185484_3_)
|
||||
{
|
||||
Block block = p_176207_1_.func_180495_p(p_176207_2_).func_177230_c();
|
||||
- int i = p_176207_1_.func_175626_b(p_176207_2_, block.func_149750_m());
|
||||
+ int i = p_176207_1_.func_175626_b(p_176207_2_, block.getLightValue(p_176207_1_, p_176207_2_));
|
||||
- int i = p_185484_2_.func_175626_b(p_185484_3_, p_185484_1_.func_185906_d());
|
||||
+ int i = p_185484_2_.func_175626_b(p_185484_3_, p_185484_1_.getLightValue(p_185484_2_, p_185484_3_));
|
||||
|
||||
if (i == 0 && block instanceof BlockSlab)
|
||||
if (i == 0 && p_185484_1_.func_177230_c() instanceof BlockSlab)
|
||||
{
|
||||
p_176207_2_ = p_176207_2_.func_177977_b();
|
||||
block = p_176207_1_.func_180495_p(p_176207_2_).func_177230_c();
|
||||
- return p_176207_1_.func_175626_b(p_176207_2_, block.func_149750_m());
|
||||
+ return p_176207_1_.func_175626_b(p_176207_2_, block.getLightValue(p_176207_1_, p_176207_2_));
|
||||
p_185484_3_ = p_185484_3_.func_177977_b();
|
||||
p_185484_1_ = p_185484_2_.func_180495_p(p_185484_3_);
|
||||
- return p_185484_2_.func_175626_b(p_185484_3_, p_185484_1_.func_185906_d());
|
||||
+ return p_185484_2_.func_175626_b(p_185484_3_, p_185484_1_.getLightValue(p_185484_2_, p_185484_3_));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -376,7 +382,7 @@
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean func_176225_a(IBlockAccess p_176225_1_, BlockPos p_176225_2_, EnumFacing p_176225_3_)
|
||||
{
|
||||
- return p_176225_3_ == EnumFacing.DOWN && this.field_149760_C > 0.0D ? true : (p_176225_3_ == EnumFacing.UP && this.field_149756_F < 1.0D ? true : (p_176225_3_ == EnumFacing.NORTH && this.field_149754_D > 0.0D ? true : (p_176225_3_ == EnumFacing.SOUTH && this.field_149757_G < 1.0D ? true : (p_176225_3_ == EnumFacing.WEST && this.field_149759_B > 0.0D ? true : (p_176225_3_ == EnumFacing.EAST && this.field_149755_E < 1.0D ? true : !p_176225_1_.func_180495_p(p_176225_2_).func_177230_c().func_149662_c())))));
|
||||
+ return p_176225_3_ == EnumFacing.DOWN && this.field_149760_C > 0.0D ? true : (p_176225_3_ == EnumFacing.UP && this.field_149756_F < 1.0D ? true : (p_176225_3_ == EnumFacing.NORTH && this.field_149754_D > 0.0D ? true : (p_176225_3_ == EnumFacing.SOUTH && this.field_149757_G < 1.0D ? true : (p_176225_3_ == EnumFacing.WEST && this.field_149759_B > 0.0D ? true : (p_176225_3_ == EnumFacing.EAST && this.field_149755_E < 1.0D ? true : !p_176225_1_.func_180495_p(p_176225_2_).func_177230_c().doesSideBlockRendering(p_176225_1_, p_176225_2_, p_176225_3_))))));
|
||||
@@ -446,7 +449,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- return !p_176225_2_.func_180495_p(p_176225_3_.func_177972_a(p_176225_4_)).func_185914_p();
|
||||
+ return !p_176225_2_.func_180495_p(p_176225_3_.func_177972_a(p_176225_4_)).doesSideBlockRendering(p_176225_2_, p_176225_3_.func_177972_a(p_176225_4_), p_176225_4_.func_176734_d());
|
||||
}
|
||||
|
||||
public boolean func_176212_b(IBlockAccess p_176212_1_, BlockPos p_176212_2_, EnumFacing p_176212_3_)
|
||||
@@ -453,6 +459,10 @@
|
||||
@Deprecated
|
||||
@@ -506,6 +509,10 @@
|
||||
|
||||
public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_)
|
||||
{
|
||||
@@ -89,17 +83,17 @@
|
||||
}
|
||||
|
||||
public int func_149745_a(Random p_149745_1_)
|
||||
@@ -467,8 +477,7 @@
|
||||
|
||||
public float func_180647_a(EntityPlayer p_180647_1_, World p_180647_2_, BlockPos p_180647_3_)
|
||||
@@ -522,8 +529,7 @@
|
||||
@Deprecated
|
||||
public float func_180647_a(IBlockState p_180647_1_, EntityPlayer p_180647_2_, World p_180647_3_, BlockPos p_180647_4_)
|
||||
{
|
||||
- float f = this.func_176195_g(p_180647_2_, p_180647_3_);
|
||||
- return f < 0.0F ? 0.0F : (!p_180647_1_.func_146099_a(this) ? p_180647_1_.func_180471_a(this) / f / 100.0F : p_180647_1_.func_180471_a(this) / f / 30.0F);
|
||||
+ return net.minecraftforge.common.ForgeHooks.blockStrength(p_180647_2_.func_180495_p(p_180647_3_), p_180647_1_, p_180647_2_, p_180647_3_);
|
||||
- float f = p_180647_1_.func_185887_b(p_180647_3_, p_180647_4_);
|
||||
- return f < 0.0F ? 0.0F : (!p_180647_2_.func_184823_b(p_180647_1_) ? p_180647_2_.func_184813_a(p_180647_1_) / f / 100.0F : p_180647_2_.func_184813_a(p_180647_1_) / f / 30.0F);
|
||||
+ return net.minecraftforge.common.ForgeHooks.blockStrength(p_180647_1_, p_180647_2_, p_180647_3_, p_180647_4_);
|
||||
}
|
||||
|
||||
public final void func_176226_b(World p_176226_1_, BlockPos p_176226_2_, IBlockState p_176226_3_, int p_176226_4_)
|
||||
@@ -478,20 +487,16 @@
|
||||
@@ -533,20 +539,16 @@
|
||||
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
@@ -125,7 +119,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -499,8 +504,13 @@
|
||||
@@ -554,8 +556,13 @@
|
||||
|
||||
public static void func_180635_a(World p_180635_0_, BlockPos p_180635_1_, ItemStack p_180635_2_)
|
||||
{
|
||||
@@ -138,9 +132,9 @@
|
||||
+ return;
|
||||
+ }
|
||||
float f = 0.5F;
|
||||
double d0 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
double d1 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
@@ -687,7 +697,7 @@
|
||||
double d0 = (double)(p_180635_0_.field_73012_v.nextFloat() * 0.5F) + 0.25D;
|
||||
double d1 = (double)(p_180635_0_.field_73012_v.nextFloat() * 0.5F) + 0.25D;
|
||||
@@ -627,7 +634,7 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
@@ -148,15 +142,24 @@
|
||||
+ return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().func_176200_f(p_176196_1_, p_176196_2_);
|
||||
}
|
||||
|
||||
public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumFacing p_180639_5_, float p_180639_6_, float p_180639_7_, float p_180639_8_)
|
||||
@@ -799,25 +809,35 @@
|
||||
p_180657_2_.func_71029_a(StatList.field_75934_C[func_149682_b(this)]);
|
||||
public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumHand p_180639_5_, @Nullable ItemStack p_180639_6_, EnumFacing p_180639_7_, float p_180639_8_, float p_180639_9_, float p_180639_10_)
|
||||
@@ -639,6 +646,8 @@
|
||||
{
|
||||
}
|
||||
|
||||
+ // Forge: use getStateForPlacement
|
||||
+ @Deprecated
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
{
|
||||
return this.func_176203_a(p_180642_7_);
|
||||
@@ -680,25 +689,35 @@
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
p_180657_2_.func_71020_j(0.025F);
|
||||
|
||||
- if (this.func_149700_E() && EnchantmentHelper.func_77502_d(p_180657_2_))
|
||||
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_1_.func_180495_p(p_180657_3_), p_180657_2_) && EnchantmentHelper.func_77502_d(p_180657_2_))
|
||||
- if (this.func_149700_E() && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
|
||||
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_) && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
|
||||
{
|
||||
+ java.util.ArrayList<ItemStack> items = new java.util.ArrayList<ItemStack>();
|
||||
+ java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>();
|
||||
ItemStack itemstack = this.func_180643_i(p_180657_4_);
|
||||
|
||||
if (itemstack != null)
|
||||
@@ -165,16 +168,16 @@
|
||||
+ items.add(itemstack);
|
||||
}
|
||||
+
|
||||
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_1_.func_180495_p(p_180657_3_), 0, 1.0f, true, p_180657_2_);
|
||||
+ for (ItemStack stack : items)
|
||||
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_4_, 0, 1.0f, true, p_180657_2_);
|
||||
+ for (ItemStack item : items)
|
||||
+ {
|
||||
+ func_180635_a(p_180657_1_, p_180657_3_, stack);
|
||||
+ func_180635_a(p_180657_1_, p_180657_3_, item);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
+ harvesters.set(p_180657_2_);
|
||||
int i = EnchantmentHelper.func_77517_e(p_180657_2_);
|
||||
int i = EnchantmentHelper.func_77506_a(Enchantments.field_185308_t, p_180657_6_);
|
||||
this.func_176226_b(p_180657_1_, p_180657_3_, p_180657_4_, i);
|
||||
+ harvesters.set(null);
|
||||
}
|
||||
@@ -183,12 +186,33 @@
|
||||
+ @Deprecated //Forge: State sensitive version
|
||||
protected boolean func_149700_E()
|
||||
{
|
||||
- return this.func_149686_d() && !this.field_149758_A;
|
||||
+ return this.func_149686_d() && !this.hasTileEntity(silk_check_state.get());
|
||||
- return this.func_176223_P().func_185917_h() && !this.field_149758_A;
|
||||
+ return this.func_176223_P().func_185917_h() && !this.hasTileEntity(silk_check_state.get());
|
||||
}
|
||||
|
||||
protected ItemStack func_180643_i(IBlockState p_180643_1_)
|
||||
@@ -1010,6 +1030,1065 @@
|
||||
@Nullable
|
||||
@@ -794,9 +813,11 @@
|
||||
}
|
||||
|
||||
@Nullable
|
||||
+ @Deprecated // Forge: Use more sensitive version below: getPickBlock
|
||||
public ItemStack func_185473_a(World p_185473_1_, BlockPos p_185473_2_, IBlockState p_185473_3_)
|
||||
{
|
||||
- return new ItemStack(Item.func_150898_a(this), 1, this.func_180651_a(p_185473_3_));
|
||||
+ Item item = Item.func_150898_a(this);
|
||||
+ return item == null ? null : new ItemStack(item, 1, this.func_180651_a(p_185473_3_));
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -883,6 +904,7 @@
|
||||
return Block.EnumOffsetType.NONE;
|
||||
}
|
||||
|
||||
+ @Deprecated // Forge - World/state/pos/entity sensitive version below
|
||||
public SoundType func_185467_w()
|
||||
{
|
||||
return this.field_149762_H;
|
||||
@@ -893,6 +915,1187 @@
|
||||
return "Block{" + field_149771_c.func_177774_c(this) + "}";
|
||||
}
|
||||
|
||||
@@ -200,42 +224,45 @@
|
||||
+ /**
|
||||
+ * Get a light value for the block at the specified coordinates, normal ranges are between 0 and 15
|
||||
+ *
|
||||
+ * @param state Block state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return The light value
|
||||
+ */
|
||||
+ public int getLightValue(IBlockAccess world, BlockPos pos)
|
||||
+ public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ Block block = world.func_180495_p(pos).func_177230_c();
|
||||
+ if (block != this)
|
||||
+ IBlockState other = world.func_180495_p(pos);
|
||||
+ if (other.func_177230_c() != this)
|
||||
+ {
|
||||
+ return block.getLightValue(world, pos);
|
||||
+ return other.getLightValue(world, pos);
|
||||
+ }
|
||||
+ return func_149750_m();
|
||||
+ return state.func_185906_d();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Checks if a player or entity can use this block to 'climb' like a ladder.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param entity The entity trying to use the ladder, CAN be null.
|
||||
+ * @return True if the block should act like a ladder
|
||||
+ */
|
||||
+ public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return false; }
|
||||
+ public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return false; }
|
||||
+
|
||||
+ /**
|
||||
+ * Return true if the block is a normal, solid cube. This
|
||||
+ * determines indirect power state, entity ejection from blocks, and a few
|
||||
+ * others.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return True if the block is a full cube
|
||||
+ */
|
||||
+ public boolean isNormalCube(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return func_149688_o().func_76218_k() && func_149686_d() && !func_149744_f();
|
||||
+ return state.func_185904_a().func_76218_k() && state.func_185917_h() && !state.func_185897_m();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -244,31 +271,35 @@
|
||||
+ * Faces which are fully opaque should return true, faces with transparency
|
||||
+ * or faces which do not span the full size of the block should return false.
|
||||
+ *
|
||||
+ * @param state The current block state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param side The side to check
|
||||
+ * @param face The side to check
|
||||
+ * @return True if the block is opaque on the specified side.
|
||||
+ */
|
||||
+ public boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ {
|
||||
+ return func_149662_c();
|
||||
+ return state.func_185914_p();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Checks if the block is a solid face on the given side, used by placement logic.
|
||||
+ *
|
||||
+ * @param base_state The base state, getActualState should be called first
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param side The side to check
|
||||
+ * @return True if the block is solid on the specified side.
|
||||
+ */
|
||||
+ public boolean isSideSolid(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ public boolean isSideSolid(IBlockState base_state, IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ {
|
||||
+ IBlockState state = this.func_176221_a(world.func_180495_p(pos), world, pos);
|
||||
+ if (base_state.func_185896_q() && side == EnumFacing.UP) // Short circuit to vanilla function if its true
|
||||
+ return true;
|
||||
+
|
||||
+ if (this instanceof BlockSlab)
|
||||
+ {
|
||||
+ return func_149730_j()
|
||||
+ IBlockState state = this.func_176221_a(base_state, world, pos);
|
||||
+ return base_state.func_185913_b()
|
||||
+ || (state.func_177229_b(BlockSlab.field_176554_a) == BlockSlab.EnumBlockHalf.TOP && side == EnumFacing.UP )
|
||||
+ || (state.func_177229_b(BlockSlab.field_176554_a) == BlockSlab.EnumBlockHalf.BOTTOM && side == EnumFacing.DOWN);
|
||||
+ }
|
||||
@@ -278,6 +309,7 @@
|
||||
+ }
|
||||
+ else if (this instanceof BlockStairs)
|
||||
+ {
|
||||
+ IBlockState state = this.func_176221_a(base_state, world, pos);
|
||||
+ boolean flipped = state.func_177229_b(BlockStairs.field_176308_b) == BlockStairs.EnumHalf.TOP;
|
||||
+ BlockStairs.EnumShape shape = (BlockStairs.EnumShape)state.func_177229_b(BlockStairs.field_176310_M);
|
||||
+ EnumFacing facing = (EnumFacing)state.func_177229_b(BlockStairs.field_176309_a);
|
||||
@@ -298,6 +330,7 @@
|
||||
+ }
|
||||
+ else if (this instanceof BlockSnow)
|
||||
+ {
|
||||
+ IBlockState state = this.func_176221_a(base_state, world, pos);
|
||||
+ return ((Integer)state.func_177229_b(BlockSnow.field_176315_a)) >= 8;
|
||||
+ }
|
||||
+ else if (this instanceof BlockHopper && side == EnumFacing.UP)
|
||||
@@ -308,7 +341,7 @@
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ return isNormalCube(world, pos);
|
||||
+ return isNormalCube(base_state, world, pos);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -330,13 +363,14 @@
|
||||
+ * useful for creating pure logic-blocks that will be invisible
|
||||
+ * to the player and otherwise interact as air would.
|
||||
+ *
|
||||
+ * @param sata The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return True if the block considered air
|
||||
+ */
|
||||
+ public boolean isAir(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean isAir(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return func_149688_o() == Material.field_151579_a;
|
||||
+ return state.func_185904_a() == Material.field_151579_a;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -362,6 +396,7 @@
|
||||
+ * Note: When used in multiplayer, this is called on both client and
|
||||
+ * server sides!
|
||||
+ *
|
||||
+ * @param state The current state.
|
||||
+ * @param world The current world
|
||||
+ * @param player The player damaging the block, may be null
|
||||
+ * @param pos Block position in world
|
||||
@@ -369,9 +404,10 @@
|
||||
+ * Can be useful to delay the destruction of tile entities till after harvestBlock
|
||||
+ * @return True if the block is actually destroyed.
|
||||
+ */
|
||||
+ public boolean removedByPlayer(World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ {
|
||||
+ return world.func_175698_g(pos);
|
||||
+ this.func_176208_a(world, pos, state, player);
|
||||
+ return world.func_180501_a(pos, net.minecraft.init.Blocks.field_150350_a.func_176223_P(), world.field_72995_K ? 11 : 3);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -535,23 +571,15 @@
|
||||
+ * Determines if a specified mob type can spawn on this block, returning false will
|
||||
+ * prevent any mob from spawning on the block.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param type The Mob Category Type
|
||||
+ * @return True to allow a mob of the specified category to spawn, false to prevent it.
|
||||
+ */
|
||||
+ public boolean canCreatureSpawn(IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
|
||||
+ public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ if (this instanceof BlockSlab)
|
||||
+ {
|
||||
+ return (func_149730_j() || state.func_177229_b(BlockSlab.field_176554_a) == BlockSlab.EnumBlockHalf.TOP);
|
||||
+ }
|
||||
+ else if (this instanceof BlockStairs)
|
||||
+ {
|
||||
+ return state.func_177229_b(BlockStairs.field_176308_b) == BlockStairs.EnumHalf.TOP;
|
||||
+ }
|
||||
+ return isSideSolid(world, pos, EnumFacing.UP);
|
||||
+ return isSideSolid(state, world, pos, EnumFacing.UP);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -559,12 +587,13 @@
|
||||
+ * players to sleep in it, though the block has to specifically
|
||||
+ * perform the sleeping functionality in it's activated event.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param player The player or camera entity, null in some cases.
|
||||
+ * @return True to treat this as a bed
|
||||
+ */
|
||||
+ public boolean isBed(IBlockAccess world, BlockPos pos, Entity player)
|
||||
+ public boolean isBed(IBlockState state, IBlockAccess world, BlockPos pos, Entity player)
|
||||
+ {
|
||||
+ return this == net.minecraft.init.Blocks.field_150324_C;
|
||||
+ }
|
||||
@@ -573,12 +602,13 @@
|
||||
+ * Returns the position that the player is moved to upon
|
||||
+ * waking up, or respawning at the bed.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param player The player or camera entity, null in some cases.
|
||||
+ * @return The spawn position
|
||||
+ */
|
||||
+ public BlockPos getBedSpawnPosition(IBlockAccess world, BlockPos pos, EntityPlayer player)
|
||||
+ public BlockPos getBedSpawnPosition(IBlockState state, IBlockAccess world, BlockPos pos, EntityPlayer player)
|
||||
+ {
|
||||
+ if (world instanceof World)
|
||||
+ return BlockBed.func_176468_a((World)world, pos, 0);
|
||||
@@ -599,7 +629,7 @@
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ state = state.func_177230_c().func_176221_a(state, world, pos);
|
||||
+ state = state.func_177226_a(BlockBed.field_176471_b, true);
|
||||
+ state = state.func_177226_a(BlockBed.field_176471_b, occupied);
|
||||
+ ((World)world).func_180501_a(pos, state, 4);
|
||||
+ }
|
||||
+ }
|
||||
@@ -608,13 +638,14 @@
|
||||
+ * Returns the direction of the block. Same values that
|
||||
+ * are returned by BlockDirectional
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return Bed direction
|
||||
+ */
|
||||
+ public EnumFacing getBedDirection(IBlockAccess world, BlockPos pos)
|
||||
+ public EnumFacing getBedDirection(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return (EnumFacing)func_176221_a(world.func_180495_p(pos), world, pos).func_177229_b(BlockDirectional.field_176387_N);
|
||||
+ return (EnumFacing)func_176221_a(state, world, pos).func_177229_b(BlockHorizontal.field_185512_D);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -632,19 +663,20 @@
|
||||
+ /**
|
||||
+ * Called when a leaf should start its decay process.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ */
|
||||
+ public void beginLeavesDecay(World world, BlockPos pos){}
|
||||
+ public void beginLeavesDecay(IBlockState state, World world, BlockPos pos){}
|
||||
+
|
||||
+ /**
|
||||
+ * Determines if this block can prevent leaves connected to it from decaying.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return true if the presence this block can prevent leaves from decaying.
|
||||
+ */
|
||||
+ public boolean canSustainLeaves(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean canSustainLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -652,25 +684,27 @@
|
||||
+ /**
|
||||
+ * Determines if this block is considered a leaf block, used to apply the leaf decay and generation system.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return true if this block is considered leaves.
|
||||
+ */
|
||||
+ public boolean isLeaves(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean isLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return func_149688_o() == Material.field_151584_j;
|
||||
+ return state.func_185904_a() == Material.field_151584_j;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Used during tree growth to determine if newly generated leaves can replace this block.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return true if this block can be replaced by growing leaves.
|
||||
+ */
|
||||
+ public boolean canBeReplacedByLeaves(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean canBeReplacedByLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return !func_149730_j();
|
||||
+ return isAir(state, world, pos) || isLeaves(state, world, pos); //!state.isFullBlock();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -687,15 +721,16 @@
|
||||
+ /**
|
||||
+ * Determines if the current block is replaceable by Ore veins during world generation.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param target The generic target block the gen is looking for, Standards define stone
|
||||
+ * for overworld generation, and neatherack for the nether.
|
||||
+ * @return True to allow this block to be replaced by a ore
|
||||
+ */
|
||||
+ public boolean isReplaceableOreGen(World world, BlockPos pos, com.google.common.base.Predicate<IBlockState> target)
|
||||
+ public boolean isReplaceableOreGen(IBlockState state, IBlockAccess world, BlockPos pos, com.google.common.base.Predicate<IBlockState> target)
|
||||
+ {
|
||||
+ return target.apply(world.func_180495_p(pos));
|
||||
+ return target.apply(state);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -731,27 +766,29 @@
|
||||
+ * Determine if this block can make a redstone connection on the side provided,
|
||||
+ * Useful to control which sides are inputs and outputs for redstone wires.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param side The side that is trying to make the connection, CAN BE NULL
|
||||
+ * @return True to make the connection
|
||||
+ */
|
||||
+ public boolean canConnectRedstone(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ {
|
||||
+ return func_149744_f() && side != null;
|
||||
+ return state.func_185897_m() && side != null;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Determines if a torch can be placed on the top surface of this block.
|
||||
+ * Useful for creating your own block that torches can be on, such as fences.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return True to allow the torch to be placed
|
||||
+ */
|
||||
+ public boolean canPlaceTorchOnTop(IBlockAccess world, BlockPos pos)
|
||||
+ public boolean canPlaceTorchOnTop(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ if (isSideSolid(world, pos, EnumFacing.UP))
|
||||
+ if (state.isSideSolid(world, pos, EnumFacing.UP))
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
@@ -780,22 +817,9 @@
|
||||
+ * @param target The full target the player is looking at
|
||||
+ * @return A ItemStack to add to the player's inventory, Null if nothing should be added.
|
||||
+ */
|
||||
+ public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos, EntityPlayer player)
|
||||
+ public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player)
|
||||
+ {
|
||||
+ return getPickBlock(target, world, pos);
|
||||
+ }
|
||||
+ @Deprecated
|
||||
+ public ItemStack getPickBlock(MovingObjectPosition target, World world, BlockPos pos)
|
||||
+ {
|
||||
+ Item item = func_180665_b(world, pos);
|
||||
+
|
||||
+ if (item == null)
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ Block block = item instanceof ItemBlock && !func_149648_K() ? Block.func_149634_a(item) : this;
|
||||
+ return new ItemStack(item, 1, block.func_176222_j(world, pos));
|
||||
+ return func_185473_a(world, pos, state);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -821,7 +845,7 @@
|
||||
+ * @param numberOfParticles that vanilla would have spawned.
|
||||
+ * @return True to prevent vanilla landing particles form spawning.
|
||||
+ */
|
||||
+ public boolean addLandingEffects(net.minecraft.world.WorldServer worldObj, BlockPos blockPosition, IBlockState iblockstate, EntityLivingBase entity, int numberOfParticles )
|
||||
+ public boolean addLandingEffects(IBlockState state, net.minecraft.world.WorldServer worldObj, BlockPos blockPosition, IBlockState iblockstate, EntityLivingBase entity, int numberOfParticles )
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -832,13 +856,14 @@
|
||||
+ * control over the particles. Useful when you have entirely different
|
||||
+ * texture sheets for different sides/locations in the world.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param target The target the player is looking at {x/y/z/side/sub}
|
||||
+ * @param effectRenderer A reference to the current effect renderer.
|
||||
+ * @param manager A reference to the current particle manager.
|
||||
+ * @return True to prevent vanilla digging particles form spawning.
|
||||
+ */
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ public boolean addHitEffects(World worldObj, MovingObjectPosition target, net.minecraft.client.particle.EffectRenderer effectRenderer)
|
||||
+ public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, net.minecraft.client.particle.ParticleManager manager)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -851,11 +876,11 @@
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param pos Position to spawn the particle
|
||||
+ * @param effectRenderer A reference to the current effect renderer.
|
||||
+ * @param manager A reference to the current particle manager.
|
||||
+ * @return True to prevent vanilla break particles from spawning.
|
||||
+ */
|
||||
+ @SideOnly(Side.CLIENT)
|
||||
+ public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.EffectRenderer effectRenderer)
|
||||
+ public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager manager)
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -871,21 +896,21 @@
|
||||
+ * Plains check if its grass or dirt
|
||||
+ * Water check if its still water
|
||||
+ *
|
||||
+ * @param state The Current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param direction The direction relative to the given position the plant wants to be, typically its UP
|
||||
+ * @param plantable The plant that wants to check
|
||||
+ * @return True to allow the plant to be planted/stay.
|
||||
+ */
|
||||
+ public boolean canSustainPlant(IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable)
|
||||
+ public boolean canSustainPlant(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ IBlockState plant = plantable.getPlant(world, pos.func_177972_a(direction));
|
||||
+ net.minecraftforge.common.EnumPlantType plantType = plantable.getPlantType(world, pos.func_177972_a(direction));
|
||||
+
|
||||
+ if (plant.func_177230_c() == net.minecraft.init.Blocks.field_150434_aF && this == net.minecraft.init.Blocks.field_150434_aF)
|
||||
+ if (plant.func_177230_c() == net.minecraft.init.Blocks.field_150434_aF)
|
||||
+ {
|
||||
+ return true;
|
||||
+ return this == net.minecraft.init.Blocks.field_150434_aF || this == net.minecraft.init.Blocks.field_150354_m;
|
||||
+ }
|
||||
+
|
||||
+ if (plant.func_177230_c() == net.minecraft.init.Blocks.field_150436_aH && this == net.minecraft.init.Blocks.field_150436_aH)
|
||||
@@ -893,25 +918,25 @@
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ if (plantable instanceof BlockBush && ((BlockBush)plantable).func_149854_a(this))
|
||||
+ if (plantable instanceof BlockBush && ((BlockBush)plantable).func_185514_i(state))
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ switch (plantType)
|
||||
+ {
|
||||
+ case Desert: return this == net.minecraft.init.Blocks.field_150354_m || this == net.minecraft.init.Blocks.field_150405_ch || this == net.minecraft.init.Blocks.field_150406_ce || this == net.minecraft.init.Blocks.field_150346_d;
|
||||
+ case Desert: return this == net.minecraft.init.Blocks.field_150354_m || this == net.minecraft.init.Blocks.field_150405_ch || this == net.minecraft.init.Blocks.field_150406_ce;
|
||||
+ case Nether: return this == net.minecraft.init.Blocks.field_150425_aM;
|
||||
+ case Crop: return this == net.minecraft.init.Blocks.field_150458_ak;
|
||||
+ case Cave: return isSideSolid(world, pos, EnumFacing.UP);
|
||||
+ case Cave: return state.isSideSolid(world, pos, EnumFacing.UP);
|
||||
+ case Plains: return this == net.minecraft.init.Blocks.field_150349_c || this == net.minecraft.init.Blocks.field_150346_d || this == net.minecraft.init.Blocks.field_150458_ak;
|
||||
+ case Water: return func_149688_o() == Material.field_151586_h && ((Integer)state.func_177229_b(BlockLiquid.field_176367_b)) == 0;
|
||||
+ case Water: return state.func_185904_a() == Material.field_151586_h && state.func_177229_b(BlockLiquid.field_176367_b) == 0;
|
||||
+ case Beach:
|
||||
+ boolean isBeach = this == net.minecraft.init.Blocks.field_150349_c || this == net.minecraft.init.Blocks.field_150346_d || this == net.minecraft.init.Blocks.field_150354_m;
|
||||
+ boolean hasWater = (world.func_180495_p(pos.func_177974_f()).func_177230_c().func_149688_o() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177976_e()).func_177230_c().func_149688_o() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177978_c()).func_177230_c().func_149688_o() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177968_d()).func_177230_c().func_149688_o() == Material.field_151586_h);
|
||||
+ boolean hasWater = (world.func_180495_p(pos.func_177974_f()).func_185904_a() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177976_e()).func_185904_a() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177978_c()).func_185904_a() == Material.field_151586_h ||
|
||||
+ world.func_180495_p(pos.func_177968_d()).func_185904_a() == Material.field_151586_h);
|
||||
+ return isBeach && hasWater;
|
||||
+ }
|
||||
+
|
||||
@@ -927,11 +952,12 @@
|
||||
+ *
|
||||
+ * Note: This happens DURING the generation, the generation may not be complete when this is called.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world Current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @param source Source plant's position in world
|
||||
+ */
|
||||
+ public void onPlantGrow(World world, BlockPos pos, BlockPos source)
|
||||
+ public void onPlantGrow(IBlockState state, World world, BlockPos pos, BlockPos source)
|
||||
+ {
|
||||
+ if (this == net.minecraft.init.Blocks.field_150349_c || this == net.minecraft.init.Blocks.field_150458_ak)
|
||||
+ {
|
||||
@@ -966,27 +992,44 @@
|
||||
+ * Recommended that you have your tile entity call relight after being placed if you
|
||||
+ * rely on it for light info.
|
||||
+ *
|
||||
+ * @param state The Block state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return The amount of light to block, 0 for air, 255 for fully opaque.
|
||||
+ */
|
||||
+ public int getLightOpacity(IBlockAccess world, BlockPos pos)
|
||||
+ public int getLightOpacity(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return func_149717_k();
|
||||
+ return state.func_185891_c();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Determines if this block is can be destroyed by the specified entities normal behavior.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The current world
|
||||
+ * @param pos Block position in world
|
||||
+ * @return True to allow the ender dragon to destroy this block
|
||||
+ */
|
||||
+ public boolean canEntityDestroy(IBlockAccess world, BlockPos pos, Entity entity)
|
||||
+ public boolean canEntityDestroy(IBlockState state, IBlockAccess world, BlockPos pos, Entity entity)
|
||||
+ {
|
||||
+ if (entity instanceof net.minecraft.entity.boss.EntityDragon)
|
||||
+ {
|
||||
+ return this != net.minecraft.init.Blocks.field_180401_cv && this != net.minecraft.init.Blocks.field_150343_Z && this != net.minecraft.init.Blocks.field_150377_bs && this != net.minecraft.init.Blocks.field_150357_h && this != net.minecraft.init.Blocks.field_150483_bI;
|
||||
+ return this != net.minecraft.init.Blocks.field_180401_cv &&
|
||||
+ this != net.minecraft.init.Blocks.field_150343_Z &&
|
||||
+ this != net.minecraft.init.Blocks.field_150377_bs &&
|
||||
+ this != net.minecraft.init.Blocks.field_150357_h &&
|
||||
+ this != net.minecraft.init.Blocks.field_150384_bq &&
|
||||
+ this != net.minecraft.init.Blocks.field_150378_br &&
|
||||
+ this != net.minecraft.init.Blocks.field_150483_bI &&
|
||||
+ this != net.minecraft.init.Blocks.field_185776_dc &&
|
||||
+ this != net.minecraft.init.Blocks.field_185777_dd &&
|
||||
+ this != net.minecraft.init.Blocks.field_150411_aY &&
|
||||
+ this != net.minecraft.init.Blocks.field_185775_db;
|
||||
+ }
|
||||
+ else if ((entity instanceof net.minecraft.entity.boss.EntityWither) ||
|
||||
+ (entity instanceof net.minecraft.entity.projectile.EntityWitherSkull))
|
||||
+ {
|
||||
+ return net.minecraft.entity.boss.EntityWither.func_181033_a(this);
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
@@ -1019,7 +1062,7 @@
|
||||
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty<?> prop : state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("facing") || prop.func_177701_a().equals("rotation"))
|
||||
+ {
|
||||
@@ -1040,10 +1083,11 @@
|
||||
+ public EnumFacing[] getValidRotations(World world, BlockPos pos)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty<?> prop : state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("facing") && prop.func_177699_b() == EnumFacing.class)
|
||||
+ {
|
||||
+ @SuppressWarnings("unchecked")
|
||||
+ java.util.Collection<EnumFacing> values = ((java.util.Collection<EnumFacing>)prop.func_177700_c());
|
||||
+ return values.toArray(new EnumFacing[values.size()]);
|
||||
+ }
|
||||
@@ -1070,10 +1114,11 @@
|
||||
+ * @param color The color to change to
|
||||
+ * @return If the recoloring was successful
|
||||
+ */
|
||||
+ @SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
+ public boolean recolorBlock(World world, BlockPos pos, EnumFacing side, net.minecraft.item.EnumDyeColor color)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty prop : state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("color") && prop.func_177699_b() == net.minecraft.item.EnumDyeColor.class)
|
||||
+ {
|
||||
@@ -1091,12 +1136,13 @@
|
||||
+ /**
|
||||
+ * Gathers how much experience this block drops when broken.
|
||||
+ *
|
||||
+ * @param state The current state
|
||||
+ * @param world The world
|
||||
+ * @param pos Block position
|
||||
+ * @param fortune
|
||||
+ * @return Amount of XP from breaking this block.
|
||||
+ */
|
||||
+ public int getExpDrop(IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
@@ -1116,9 +1162,9 @@
|
||||
+ * @param side The INPUT side of the block to be powered - ie the opposite of this block's output side
|
||||
+ * @return Whether Block#isProvidingWeakPower should be called when determining indirect power
|
||||
+ */
|
||||
+ public boolean shouldCheckWeakPower(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ public boolean shouldCheckWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ {
|
||||
+ return func_149721_r();
|
||||
+ return state.func_185915_l();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
@@ -1214,18 +1260,62 @@
|
||||
+ */
|
||||
+ public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return func_176221_a(state, world, pos);
|
||||
+ return state;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when the entity is inside this block, may be used to determined if the entity can breathing,
|
||||
+ * display material overlays, or if the entity can swim inside a block.
|
||||
+ *
|
||||
+ * @param world that is being tested.
|
||||
+ * @param blockpos position thats being tested.
|
||||
+ * @param iblockstate state at world/blockpos
|
||||
+ * @param entity that is being tested.
|
||||
+ * @param yToTest, primarily for testingHead, which sends the the eye level of the entity, other wise it sends a y that can be tested vs liquid height.
|
||||
+ * @param materialIn to test for.
|
||||
+ * @param testingHead when true, its testing the entities head for vision, breathing ect... otherwise its testing the body, for swimming and movement adjustment.
|
||||
+ * @return null for default behavior, true if the entity is within the material, false if it was not.
|
||||
+ */
|
||||
+ public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when boats or fishing hooks are inside the block to check if they are inside
|
||||
+ * the material requested.
|
||||
+ *
|
||||
+ * @param world world that is being tested.
|
||||
+ * @param pos block thats being tested.
|
||||
+ * @param boundingBox box to test, generally the bounds of an entity that are besting tested.
|
||||
+ * @param materialIn to check for.
|
||||
+ * @return null for default behavior, true if the box is within the material, false if it was not.
|
||||
+ */
|
||||
+ public Boolean isAABBInsideMaterial(World world, BlockPos pos, AxisAlignedBB boundingBox, Material materialIn)
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Queries if this block should render in a given layer.
|
||||
+ * ISmartBlockModel can use MinecraftForgeClient.getRenderLayer to alter their model based on layer
|
||||
+ * ISmartBlockModel can use {@link MinecraftForgeClient#getRenderLayer()} to alter their model based on layer.
|
||||
+ *
|
||||
+ * @deprecated New method with state sensitivity: {@link #canRenderInLayer(IBlockState, BlockRenderLayer)}
|
||||
+ */
|
||||
+ public boolean canRenderInLayer(EnumWorldBlockLayer layer)
|
||||
+ @Deprecated
|
||||
+ public boolean canRenderInLayer(BlockRenderLayer layer)
|
||||
+ {
|
||||
+ return func_180664_k() == layer;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Queries if this block should render in a given layer.
|
||||
+ * ISmartBlockModel can use {@link MinecraftForgeClient#getRenderLayer()} to alter their model based on layer.
|
||||
+ */
|
||||
+ public boolean canRenderInLayer(IBlockState state, BlockRenderLayer layer)
|
||||
+ {
|
||||
+ return canRenderInLayer(layer);
|
||||
+ }
|
||||
+ // For Internal use only to capture droped items inside getDrops
|
||||
+ protected static ThreadLocal<Boolean> captureDrops = new ThreadLocal<Boolean>()
|
||||
+ {
|
||||
@@ -1249,8 +1339,77 @@
|
||||
+ return capturedDrops.get();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Add information to the blocks tooltip, called from the default implementation of {@link ItemBlock#addInformation(ItemStack, EntityPlayer, List, boolean)}
|
||||
+ * @param stack The stack the tooltip is being retrieved for
|
||||
+ * @param player The player retrieving the tooltip
|
||||
+ * @param tooltip The lines to be displayed on the tooltip
|
||||
+ * @param advanced If the client has advanced debug tooltips enabled
|
||||
+ */
|
||||
+ public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sensitive version of getSoundType
|
||||
+ * @param state The state
|
||||
+ * @param world The world
|
||||
+ * @param pos The position. Note that the world may not necessarily have {@code state} here!
|
||||
+ * @param entity The entity that is breaking/stepping on/placing/hitting/falling on this block, or null if no entity is in this context
|
||||
+ * @return A SoundType to use
|
||||
+ */
|
||||
+ public SoundType getSoundType(IBlockState state, World world, BlockPos pos, @Nullable Entity entity)
|
||||
+ {
|
||||
+ return func_185467_w();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * @param state The state
|
||||
+ * @param world The world
|
||||
+ * @param pos The position of this state
|
||||
+ * @param beaconPos The position of the beacon
|
||||
+ * @return A float RGB [0.0, 1.0] array to be averaged with a beacon's existing beam color, or null to do nothing to the beam
|
||||
+ */
|
||||
+ @Nullable
|
||||
+ public float[] getBeaconColorMultiplier(IBlockState state, World world, BlockPos pos, BlockPos beaconPos)
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Gets the {@link IBlockState} to place
|
||||
+ * @param world The world the block is being placed in
|
||||
+ * @param pos The position the block is being placed at
|
||||
+ * @param facing The side the block is being placed on
|
||||
+ * @param hitX The X coordinate of the hit vector
|
||||
+ * @param hitY The Y coordinate of the hit vector
|
||||
+ * @param hitZ The Z coordinate of the hit vector
|
||||
+ * @param meta The metadata of {@link ItemStack} as processed by {@link Item#getMetadata(int)}
|
||||
+ * @param placer The entity placing the block
|
||||
+ * @param stack The stack being used to place this block
|
||||
+ * @return The state to be placed in the world
|
||||
+ */
|
||||
+ public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, ItemStack stack)
|
||||
+ {
|
||||
+ return func_180642_a(world, pos, facing, hitX, hitY, hitZ, meta, placer);
|
||||
+ }
|
||||
+
|
||||
+ /* ========================================= FORGE END ======================================*/
|
||||
+
|
||||
public static void func_149671_p()
|
||||
{
|
||||
func_176215_a(0, field_176230_a, (new BlockAir()).func_149663_c("air"));
|
||||
@@ -1169,11 +2372,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- for (IBlockState iblockstate : block16.func_176194_O().func_177619_a())
|
||||
- {
|
||||
- int k = field_149771_c.func_148757_b(block16) << 4 | block16.func_176201_c(iblockstate);
|
||||
- field_176229_d.func_148746_a(iblockstate, k);
|
||||
- }
|
||||
+// Handled in GameData.BlockCallbacks - leaving tripwire as it seems to be special cased
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockBanner.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockBanner.java
|
||||
@@ -107,14 +107,7 @@
|
||||
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
- ItemStack itemstack = this.func_185549_e(p_180653_1_, p_180653_2_, p_180653_3_);
|
||||
-
|
||||
- if (itemstack != null)
|
||||
{
|
||||
- func_180635_a(p_180653_1_, p_180653_2_, itemstack);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
}
|
||||
}
|
||||
@@ -141,6 +134,28 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ {
|
||||
+ TileEntity te = world.func_175625_s(pos);
|
||||
+
|
||||
+ java.util.List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
|
||||
+ if (te instanceof TileEntityBanner)
|
||||
+ {
|
||||
+ TileEntityBanner banner = (TileEntityBanner)te;
|
||||
+ ItemStack item = new ItemStack(Items.field_179564_cE, 1, banner.func_175115_b());
|
||||
+ NBTTagCompound nbt = new NBTTagCompound();
|
||||
+ TileEntityBanner.func_181020_a(nbt, banner.func_175115_b(), banner.func_181021_d());
|
||||
+ item.func_77983_a("BlockEntityTag", nbt);
|
||||
+ ret.add(item);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ret.add(new ItemStack(Items.field_179564_cE, 1, 0));
|
||||
+ }
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
public static class BlockBannerHanging extends BlockBanner
|
||||
{
|
||||
protected static final AxisAlignedBB field_185551_d = new AxisAlignedBB(0.0D, 0.0D, 0.875D, 1.0D, 0.78125D, 1.0D);
|
||||
@@ -1,40 +1,40 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockBush.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockBush.java
|
||||
@@ -13,7 +13,7 @@
|
||||
@@ -15,7 +15,7 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
-public class BlockBush extends Block
|
||||
+public class BlockBush extends Block implements net.minecraftforge.common.IPlantable
|
||||
{
|
||||
protected BlockBush()
|
||||
{
|
||||
@@ -36,7 +36,7 @@
|
||||
protected static final AxisAlignedBB field_185515_b = new AxisAlignedBB(0.30000001192092896D, 0.0D, 0.30000001192092896D, 0.699999988079071D, 0.6000000238418579D, 0.699999988079071D);
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
- return super.func_176196_c(p_176196_1_, p_176196_2_) && this.func_149854_a(p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_177230_c());
|
||||
+ return super.func_176196_c(p_176196_1_, p_176196_2_) && p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_177230_c().canSustainPlant(p_176196_1_, p_176196_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this);
|
||||
- return super.func_176196_c(p_176196_1_, p_176196_2_) && this.func_185514_i(p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()));
|
||||
+ IBlockState soil = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b());
|
||||
+ return super.func_176196_c(p_176196_1_, p_176196_2_) && soil.func_177230_c().canSustainPlant(soil, p_176196_1_, p_176196_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this);
|
||||
}
|
||||
|
||||
protected boolean func_149854_a(Block p_149854_1_)
|
||||
@@ -66,7 +66,10 @@
|
||||
protected boolean func_185514_i(IBlockState p_185514_1_)
|
||||
@@ -68,6 +69,11 @@
|
||||
|
||||
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
|
||||
{
|
||||
- return this.func_149854_a(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c());
|
||||
+ BlockPos down = p_180671_2_.func_177977_b();
|
||||
+ Block soil = p_180671_1_.func_180495_p(down).func_177230_c();
|
||||
+ if (p_180671_3_.func_177230_c() != this) return this.func_149854_a(soil); //Forge: This function is called during world gen and placement, before this block is set, so if we are not 'here' then assume it's the pre-check.
|
||||
+ return soil.canSustainPlant(p_180671_1_, down, net.minecraft.util.EnumFacing.UP, this);
|
||||
+ if (p_180671_3_.func_177230_c() == this) //Forge: This function is called during world gen and placement, before this block is set, so if we are not 'here' then assume it's the pre-check.
|
||||
+ {
|
||||
+ IBlockState soil = p_180671_1_.func_180495_p(p_180671_2_.func_177977_b());
|
||||
+ return soil.func_177230_c().canSustainPlant(soil, p_180671_1_, p_180671_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this);
|
||||
+ }
|
||||
return this.func_185514_i(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()));
|
||||
}
|
||||
|
||||
public AxisAlignedBB func_180640_a(World p_180640_1_, BlockPos p_180640_2_, IBlockState p_180640_3_)
|
||||
@@ -89,4 +92,33 @@
|
||||
{
|
||||
return EnumWorldBlockLayer.CUTOUT;
|
||||
@@ -92,6 +98,35 @@
|
||||
return false;
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override
|
||||
+ public net.minecraftforge.common.EnumPlantType getPlantType(net.minecraft.world.IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
@@ -63,4 +63,7 @@
|
||||
+ if (state.func_177230_c() != this) return func_176223_P();
|
||||
+ return state;
|
||||
+ }
|
||||
}
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public BlockRenderLayer func_180664_k()
|
||||
{
|
||||
@@ -1,12 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockButton.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockButton.java
|
||||
@@ -74,8 +74,7 @@
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
protected static boolean func_181088_a(World p_181088_0_, BlockPos p_181088_1_, EnumFacing p_181088_2_)
|
||||
{
|
||||
- BlockPos blockpos = p_181088_1_.func_177972_a(p_181088_2_);
|
||||
- return p_181088_2_ == EnumFacing.DOWN ? World.func_175683_a(p_181088_0_, blockpos) : p_181088_0_.func_180495_p(blockpos).func_177230_c().func_149721_r();
|
||||
+ return p_181088_2_ == EnumFacing.DOWN && World.func_175683_a(p_181088_0_, p_181088_1_.func_177977_b()) ? true : p_181088_0_.isSideSolid(p_181088_1_.func_177972_a(p_181088_2_), p_181088_2_.func_176734_d());
|
||||
BlockPos blockpos = p_181088_1_.func_177972_a(p_181088_2_);
|
||||
- return p_181088_2_ == EnumFacing.DOWN ? p_181088_0_.func_180495_p(blockpos).func_185896_q() : p_181088_0_.func_180495_p(blockpos).func_185915_l();
|
||||
+ return p_181088_0_.func_180495_p(blockpos).isSideSolid(p_181088_0_, blockpos, p_181088_2_.func_176734_d());
|
||||
}
|
||||
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
@@ -8,21 +8,40 @@
|
||||
+public class BlockCactus extends Block implements net.minecraftforge.common.IPlantable
|
||||
{
|
||||
public static final PropertyInteger field_176587_a = PropertyInteger.func_177719_a("age", 0, 15);
|
||||
protected static final AxisAlignedBB field_185593_b = new AxisAlignedBB(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.9375D, 0.9375D);
|
||||
@@ -49,6 +49,8 @@
|
||||
{
|
||||
int j = ((Integer)p_180650_3_.func_177229_b(field_176587_a)).intValue();
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
+ if(net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, blockpos, p_180650_3_, true))
|
||||
+ {
|
||||
if (j == 15)
|
||||
{
|
||||
p_180650_1_.func_175656_a(blockpos, this.func_176223_P());
|
||||
@@ -60,6 +62,8 @@
|
||||
{
|
||||
p_180650_1_.func_180501_a(p_180650_2_, p_180650_3_.func_177226_a(field_176587_a, Integer.valueOf(j + 1)), 4);
|
||||
}
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,8 +114,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
Block block = p_176586_1_.func_180495_p(p_176586_2_.func_177977_b()).func_177230_c();
|
||||
- return block == Blocks.field_150434_aF || block == Blocks.field_150354_m;
|
||||
+ return block.canSustainPlant(p_176586_1_, p_176586_2_.func_177977_b(), EnumFacing.UP, this);
|
||||
- Block block = p_176586_1_.func_180495_p(p_176586_2_.func_177977_b()).func_177230_c();
|
||||
- return block == Blocks.field_150434_aF || block == Blocks.field_150354_m && !p_176586_1_.func_180495_p(p_176586_2_.func_177984_a()).func_185904_a().func_76224_d();
|
||||
+ IBlockState state = p_176586_1_.func_180495_p(p_176586_2_.func_177977_b());
|
||||
+ return state.func_177230_c().canSustainPlant(state, p_176586_1_, p_176586_2_.func_177977_b(), EnumFacing.UP, this) && !p_176586_1_.func_180495_p(p_176586_2_.func_177984_a()).func_185904_a().func_76224_d();
|
||||
}
|
||||
|
||||
public void func_180634_a(World p_180634_1_, BlockPos p_180634_2_, IBlockState p_180634_3_, Entity p_180634_4_)
|
||||
@@ -137,4 +137,16 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176587_a});
|
||||
@@ -135,6 +139,18 @@
|
||||
return ((Integer)p_176201_1_.func_177229_b(field_176587_a)).intValue();
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override
|
||||
+ public net.minecraftforge.common.EnumPlantType getPlantType(net.minecraft.world.IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
@@ -34,4 +53,7 @@
|
||||
+ {
|
||||
+ return func_176223_P();
|
||||
+ }
|
||||
}
|
||||
+
|
||||
protected BlockStateContainer func_180661_e()
|
||||
{
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176587_a});
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockChest.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockChest.java
|
||||
@@ -527,7 +527,7 @@
|
||||
@@ -514,7 +514,7 @@
|
||||
|
||||
private boolean func_176456_n(World p_176456_1_, BlockPos p_176456_2_)
|
||||
{
|
||||
- return p_176456_1_.func_180495_p(p_176456_2_.func_177984_a()).func_177230_c().func_149721_r();
|
||||
+ return p_176456_1_.isSideSolid(p_176456_2_.func_177984_a(), EnumFacing.DOWN, false);
|
||||
- return p_176456_1_.func_180495_p(p_176456_2_.func_177984_a()).func_185915_l();
|
||||
+ return p_176456_1_.func_180495_p(p_176456_2_.func_177984_a()).isSideSolid(p_176456_1_, p_176456_2_.func_177984_a(), EnumFacing.DOWN);
|
||||
}
|
||||
|
||||
private boolean func_176453_o(World p_176453_1_, BlockPos p_176453_2_)
|
||||
@@ -0,0 +1,19 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockChorusFlower.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockChorusFlower.java
|
||||
@@ -52,7 +52,7 @@
|
||||
{
|
||||
int i = ((Integer)p_180650_3_.func_177229_b(field_185607_a)).intValue();
|
||||
|
||||
- if (i < 5 && p_180650_4_.nextInt(1) == 0)
|
||||
+ if (i < 5 && net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, blockpos, p_180650_3_, p_180650_4_.nextInt(1) == 0))
|
||||
{
|
||||
boolean flag = false;
|
||||
boolean flag1 = false;
|
||||
@@ -141,6 +141,7 @@
|
||||
{
|
||||
this.func_185605_c(p_180650_1_, p_180650_2_);
|
||||
}
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,23 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockCocoa.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockCocoa.java
|
||||
@@ -137,7 +137,14 @@
|
||||
@@ -43,13 +43,14 @@
|
||||
{
|
||||
this.func_176500_f(p_180650_1_, p_180650_2_, p_180650_3_);
|
||||
}
|
||||
- else if (p_180650_1_.field_73012_v.nextInt(5) == 0)
|
||||
+ else
|
||||
{
|
||||
int i = ((Integer)p_180650_3_.func_177229_b(field_176501_a)).intValue();
|
||||
|
||||
- if (i < 2)
|
||||
+ if (i < 2 && net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_.nextInt(5) == 0))
|
||||
{
|
||||
p_180650_1_.func_180501_a(p_180650_2_, p_180650_3_.func_177226_a(field_176501_a, Integer.valueOf(i + 1)), 2);
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -131,7 +132,14 @@
|
||||
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
@@ -16,7 +33,7 @@
|
||||
int j = 1;
|
||||
|
||||
if (i >= 2)
|
||||
@@ -147,8 +154,9 @@
|
||||
@@ -141,8 +149,9 @@
|
||||
|
||||
for (int k = 0; k < j; ++k)
|
||||
{
|
||||
@@ -26,4 +43,4 @@
|
||||
+ return dropped;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public ItemStack func_185473_a(World p_185473_1_, BlockPos p_185473_2_, IBlockState p_185473_3_)
|
||||
@@ -1,11 +1,23 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockCrops.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockCrops.java
|
||||
@@ -81,11 +81,11 @@
|
||||
@@ -79,9 +79,10 @@
|
||||
{
|
||||
float f = func_180672_a(this, p_180650_1_, p_180650_2_);
|
||||
|
||||
- if (p_180650_4_.nextInt((int)(25.0F / f) + 1) == 0)
|
||||
+ if(net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_.nextInt((int)(25.0F / f) + 1) == 0))
|
||||
{
|
||||
p_180650_1_.func_180501_a(p_180650_2_, this.func_185528_e(i + 1), 2);
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,11 +118,11 @@
|
||||
float f1 = 0.0F;
|
||||
IBlockState iblockstate = p_180672_1_.func_180495_p(blockpos.func_177982_a(i, 0, j));
|
||||
|
||||
- if (iblockstate.func_177230_c() == Blocks.field_150458_ak)
|
||||
+ if (iblockstate.func_177230_c().canSustainPlant(p_180672_1_, blockpos.func_177982_a(i, 0, j), net.minecraft.util.EnumFacing.UP, (net.minecraftforge.common.IPlantable)p_180672_0_))
|
||||
+ if (iblockstate.func_177230_c().canSustainPlant(iblockstate, p_180672_1_, blockpos.func_177982_a(i, 0, j), net.minecraft.util.EnumFacing.UP, (net.minecraftforge.common.IPlantable)p_180672_0_))
|
||||
{
|
||||
f1 = 1.0F;
|
||||
|
||||
@@ -14,59 +26,34 @@
|
||||
{
|
||||
f1 = 3.0F;
|
||||
}
|
||||
@@ -126,7 +126,7 @@
|
||||
@@ -162,7 +163,8 @@
|
||||
|
||||
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
|
||||
{
|
||||
- return (p_180671_1_.func_175699_k(p_180671_2_) >= 8 || p_180671_1_.func_175678_i(p_180671_2_)) && this.func_149854_a(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c());
|
||||
+ return (p_180671_1_.func_175699_k(p_180671_2_) >= 8 || p_180671_1_.func_175678_i(p_180671_2_)) && p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c().canSustainPlant(p_180671_1_, p_180671_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this);
|
||||
- return (p_180671_1_.func_175699_k(p_180671_2_) >= 8 || p_180671_1_.func_175678_i(p_180671_2_)) && this.func_185514_i(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()));
|
||||
+ IBlockState soil = p_180671_1_.func_180495_p(p_180671_2_.func_177977_b());
|
||||
+ return (p_180671_1_.func_175699_k(p_180671_2_) >= 8 || p_180671_1_.func_175678_i(p_180671_2_)) && soil.func_177230_c().canSustainPlant(soil, p_180671_1_, p_180671_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this);
|
||||
}
|
||||
|
||||
protected Item func_149866_i()
|
||||
@@ -142,24 +142,6 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, 0);
|
||||
-
|
||||
- if (!p_180653_1_.field_72995_K)
|
||||
- {
|
||||
- int i = ((Integer)p_180653_3_.func_177229_b(field_176488_a)).intValue();
|
||||
-
|
||||
- if (i >= 7)
|
||||
- {
|
||||
- int j = 3 + p_180653_5_;
|
||||
-
|
||||
- for (int k = 0; k < j; ++k)
|
||||
- {
|
||||
- if (p_180653_1_.field_73012_v.nextInt(15) <= i)
|
||||
- {
|
||||
- func_180635_a(p_180653_1_, p_180653_2_, new ItemStack(this.func_149866_i(), 1, 0));
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
@@ -175,11 +177,33 @@
|
||||
return Items.field_151015_O;
|
||||
}
|
||||
|
||||
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
|
||||
@@ -202,4 +184,26 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176488_a});
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ {
|
||||
+ java.util.List<ItemStack> ret = super.getDrops(world, pos, state, fortune);
|
||||
+ int age = ((Integer)state.func_177229_b(field_176488_a)).intValue();
|
||||
+ int age = func_185527_x(state);
|
||||
+ Random rand = world instanceof World ? ((World)world).field_73012_v : new Random();
|
||||
+
|
||||
+ if (age >= 7)
|
||||
+ if (age >= func_185526_g())
|
||||
+ {
|
||||
+ int k = 3 + fortune;
|
||||
+
|
||||
+ for (int i = 0; i < 3 + fortune; ++i)
|
||||
+ {
|
||||
+ if (rand.nextInt(15) <= age)
|
||||
+ if (rand.nextInt(2 * func_185526_g()) <= age)
|
||||
+ {
|
||||
+ ret.add(new ItemStack(this.func_149866_i(), 1, 0));
|
||||
+ }
|
||||
@@ -74,4 +61,13 @@
|
||||
+ }
|
||||
+ return ret;
|
||||
+ }
|
||||
}
|
||||
+
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, 0);
|
||||
|
||||
- if (!p_180653_1_.field_72995_K)
|
||||
+ if (false && !p_180653_1_.field_72995_K) // Forge: NOP all this.
|
||||
{
|
||||
int i = this.func_185527_x(p_180653_3_);
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDeadBush.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDeadBush.java
|
||||
@@ -14,7 +14,7 @@
|
||||
import net.minecraft.util.BlockPos;
|
||||
@@ -17,7 +17,7 @@
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
-public class BlockDeadBush extends BlockBush
|
||||
+public class BlockDeadBush extends BlockBush implements net.minecraftforge.common.IShearable
|
||||
{
|
||||
protected BlockDeadBush()
|
||||
{
|
||||
@@ -45,14 +45,15 @@
|
||||
protected static final AxisAlignedBB field_185516_a = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D);
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
|
||||
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop
|
||||
{
|
||||
- p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150330_I, 1, 0));
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150330_I, 1, 0));
|
||||
@@ -69,4 +69,11 @@
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
|
||||
}
|
||||
}
|
||||
+
|
||||
@@ -28,6 +27,6 @@
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ return new java.util.ArrayList<ItemStack>(java.util.Arrays.asList(new ItemStack(Blocks.field_150330_I)));
|
||||
+ return java.util.Arrays.asList(new ItemStack(Blocks.field_150330_I));
|
||||
+ }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDoor.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDoor.java
|
||||
@@ -154,7 +154,7 @@
|
||||
@@ -108,7 +108,7 @@
|
||||
{
|
||||
if (this.field_149764_J == Material.field_151573_f)
|
||||
{
|
||||
@@ -9,12 +9,21 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -272,7 +272,7 @@
|
||||
@@ -176,7 +176,7 @@
|
||||
flag1 = true;
|
||||
}
|
||||
|
||||
- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).func_185896_q())
|
||||
+ if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).isSideSolid(p_189540_2_, p_189540_3_.func_177977_b(), EnumFacing.UP))
|
||||
{
|
||||
p_189540_2_.func_175698_g(p_189540_3_);
|
||||
flag1 = true;
|
||||
@@ -221,7 +221,7 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
- return p_176196_2_.func_177956_o() >= 255 ? false : World.func_175683_a(p_176196_1_, p_176196_2_.func_177977_b()) && super.func_176196_c(p_176196_1_, p_176196_2_) && super.func_176196_c(p_176196_1_, p_176196_2_.func_177984_a());
|
||||
+ return p_176196_2_.func_177956_o() >= p_176196_1_.func_72800_K() - 1 ? false : World.func_175683_a(p_176196_1_, p_176196_2_.func_177977_b()) && super.func_176196_c(p_176196_1_, p_176196_2_) && super.func_176196_c(p_176196_1_, p_176196_2_.func_177984_a());
|
||||
- return p_176196_2_.func_177956_o() >= 255 ? false : p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_185896_q() && super.func_176196_c(p_176196_1_, p_176196_2_) && super.func_176196_c(p_176196_1_, p_176196_2_.func_177984_a());
|
||||
+ return p_176196_2_.func_177956_o() >= p_176196_1_.func_72800_K() - 1 ? false : p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).isSideSolid(p_176196_1_, p_176196_2_.func_177977_b(), EnumFacing.UP) && super.func_176196_c(p_176196_1_, p_176196_2_) && super.func_176196_c(p_176196_1_, p_176196_2_.func_177984_a());
|
||||
}
|
||||
|
||||
public int func_149656_h()
|
||||
public EnumPushReaction func_149656_h(IBlockState p_149656_1_)
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDoublePlant.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDoublePlant.java
|
||||
@@ -25,7 +25,7 @@
|
||||
@@ -26,7 +26,7 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{
|
||||
public static final PropertyEnum<BlockDoublePlant.EnumPlantType> field_176493_a = PropertyEnum.<BlockDoublePlant.EnumPlantType>func_177709_a("variant", BlockDoublePlant.EnumPlantType.class);
|
||||
public static final PropertyEnum<BlockDoublePlant.EnumBlockHalf> field_176492_b = PropertyEnum.<BlockDoublePlant.EnumBlockHalf>func_177709_a("half", BlockDoublePlant.EnumBlockHalf.class);
|
||||
@@ -90,6 +90,8 @@
|
||||
@@ -89,6 +89,8 @@
|
||||
Block block = (Block)(flag ? this : p_176475_1_.func_180495_p(blockpos).func_177230_c());
|
||||
Block block1 = (Block)(flag ? p_176475_1_.func_180495_p(blockpos1).func_177230_c() : this);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if (block == this)
|
||||
{
|
||||
p_176475_1_.func_180501_a(blockpos, Blocks.field_150350_a.func_176223_P(), 2);
|
||||
@@ -98,17 +100,13 @@
|
||||
@@ -97,17 +99,13 @@
|
||||
if (block1 == this)
|
||||
{
|
||||
p_176475_1_.func_180501_a(blockpos1, Blocks.field_150350_a.func_176223_P(), 3);
|
||||
@@ -37,24 +37,24 @@
|
||||
if (p_180671_3_.func_177229_b(field_176492_b) == BlockDoublePlant.EnumBlockHalf.UPPER)
|
||||
{
|
||||
return p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c() == this;
|
||||
@@ -158,7 +156,6 @@
|
||||
@@ -151,7 +149,6 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- if (p_180657_1_.field_72995_K || p_180657_2_.func_71045_bC() == null || p_180657_2_.func_71045_bC().func_77973_b() != Items.field_151097_aZ || p_180657_4_.func_177229_b(field_176492_b) != BlockDoublePlant.EnumBlockHalf.LOWER || !this.func_176489_b(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_))
|
||||
- if (p_180657_1_.field_72995_K || p_180657_6_ == null || p_180657_6_.func_77973_b() != Items.field_151097_aZ || p_180657_4_.func_177229_b(field_176492_b) != BlockDoublePlant.EnumBlockHalf.LOWER || !this.func_176489_b(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_))
|
||||
{
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
|
||||
}
|
||||
@@ -221,8 +218,6 @@
|
||||
@@ -211,8 +208,6 @@
|
||||
else
|
||||
{
|
||||
p_176489_4_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
p_176489_4_.func_71029_a(StatList.func_188055_a(this));
|
||||
- int i = (blockdoubleplant$enumplanttype == BlockDoublePlant.EnumPlantType.GRASS ? BlockTallGrass.EnumType.GRASS : BlockTallGrass.EnumType.FERN).func_177044_a();
|
||||
- func_180635_a(p_176489_1_, p_176489_2_, new ItemStack(Blocks.field_150329_H, 2, i));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -293,6 +288,32 @@
|
||||
@@ -283,6 +278,33 @@
|
||||
return Block.EnumOffsetType.XZ;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
+ EnumPlantType type = (EnumPlantType)state.func_177229_b(field_176493_a);
|
||||
+ return state.func_177229_b(field_176492_b) == EnumBlockHalf.LOWER && (type == EnumPlantType.FERN || type == EnumPlantType.GRASS);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
@@ -74,11 +75,11 @@
|
||||
+ if (type == EnumPlantType.GRASS) ret.add(new ItemStack(Blocks.field_150329_H, 2, BlockTallGrass.EnumType.GRASS.func_177044_a()));
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean removedByPlayer(World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ {
|
||||
+ //Forge: Break both parts on the client to prevent the top part flickering as default type for a few frames.
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ if (state.func_177230_c() == this && state.func_177229_b(field_176492_b) == EnumBlockHalf.LOWER && world.func_180495_p(pos.func_177984_a()).func_177230_c() == this)
|
||||
+ world.func_175698_g(pos.func_177984_a());
|
||||
+ return world.func_175698_g(pos);
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDragonEgg.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDragonEgg.java
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
private void func_180683_d(World p_180683_1_, BlockPos p_180683_2_)
|
||||
{
|
||||
- if (BlockFalling.func_185759_i(p_180683_1_.func_180495_p(p_180683_2_.func_177977_b())) && p_180683_2_.func_177956_o() >= 0)
|
||||
+ if (p_180683_1_.func_175623_d(p_180683_2_.func_177977_b()) && BlockFalling.func_185759_i(p_180683_1_.func_180495_p(p_180683_2_.func_177977_b())) && p_180683_2_.func_177956_o() >= 0)
|
||||
{
|
||||
int i = 32;
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
p_180683_1_.func_175698_g(p_180683_2_);
|
||||
BlockPos blockpos;
|
||||
|
||||
- for (blockpos = p_180683_2_; BlockFalling.func_185759_i(p_180683_1_.func_180495_p(blockpos)) && blockpos.func_177956_o() > 0; blockpos = blockpos.func_177977_b())
|
||||
+ for (blockpos = p_180683_2_; p_180683_1_.func_175623_d(blockpos) && BlockFalling.func_185759_i(p_180683_1_.func_180495_p(blockpos)) && blockpos.func_177956_o() > 0; blockpos = blockpos.func_177977_b())
|
||||
{
|
||||
;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDropper.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDropper.java
|
||||
@@ -44,7 +44,7 @@
|
||||
{
|
||||
ItemStack itemstack = tileentitydispenser.func_70301_a(i);
|
||||
|
||||
- if (itemstack != null)
|
||||
+ if (itemstack != null && net.minecraftforge.items.VanillaInventoryCodeHooks.dropperInsertHook(p_176439_1_, p_176439_2_, tileentitydispenser, i, itemstack))
|
||||
{
|
||||
EnumFacing enumfacing = (EnumFacing)p_176439_1_.func_180495_p(p_176439_2_).func_177229_b(field_176441_a);
|
||||
BlockPos blockpos = p_176439_2_.func_177972_a(enumfacing);
|
||||
@@ -0,0 +1,19 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockDynamicLiquid.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockDynamicLiquid.java
|
||||
@@ -67,7 +67,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (this.field_149815_a >= 2 && this.field_149764_J == Material.field_151586_h)
|
||||
+ if (this.field_149815_a >= 2 && net.minecraftforge.event.ForgeEventFactory.canCreateFluidSource(p_180650_1_, p_180650_2_, p_180650_3_, this.field_149764_J == Material.field_151586_h))
|
||||
{
|
||||
IBlockState iblockstate = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b());
|
||||
|
||||
@@ -166,6 +166,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (p_176375_3_.func_177230_c() != Blocks.field_150431_aC) //Forge: Vanilla has a 'bug' where snowballs don't drop like every other block. So special case because ewww...
|
||||
p_176375_3_.func_177230_c().func_176226_b(p_176375_1_, p_176375_2_, p_176375_3_, 0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockEnchantmentTable.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockEnchantmentTable.java
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
BlockPos blockpos = p_180655_3_.func_177982_a(i, k, j);
|
||||
|
||||
- if (p_180655_2_.func_180495_p(blockpos).func_177230_c() == Blocks.field_150342_X)
|
||||
+ if (net.minecraftforge.common.ForgeHooks.getEnchantPower(p_180655_2_, blockpos) > 0)
|
||||
{
|
||||
if (!p_180655_2_.func_175623_d(p_180655_3_.func_177982_a(i / 2, 0, j / 2)))
|
||||
{
|
||||
@@ -1,10 +1,32 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockFalling.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockFalling.java
|
||||
@@ -86,6 +86,7 @@
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
public static boolean func_180685_d(World p_180685_0_, BlockPos p_180685_1_)
|
||||
private void func_176503_e(World p_176503_1_, BlockPos p_176503_2_)
|
||||
{
|
||||
+ if (p_180685_0_.func_175623_d(p_180685_1_)) return true;
|
||||
Block block = p_180685_0_.func_180495_p(p_180685_1_).func_177230_c();
|
||||
Material material = block.field_149764_J;
|
||||
return block == Blocks.field_150480_ab || material == Material.field_151579_a || material == Material.field_151586_h || material == Material.field_151587_i;
|
||||
- if (func_185759_i(p_176503_1_.func_180495_p(p_176503_2_.func_177977_b())) && p_176503_2_.func_177956_o() >= 0)
|
||||
+ if ((p_176503_1_.func_175623_d(p_176503_2_.func_177977_b()) || func_185759_i(p_176503_1_.func_180495_p(p_176503_2_.func_177977_b()))) && p_176503_2_.func_177956_o() >= 0)
|
||||
{
|
||||
int i = 32;
|
||||
|
||||
@@ -62,17 +62,18 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
+ IBlockState state = p_176503_1_.func_180495_p(p_176503_2_);
|
||||
p_176503_1_.func_175698_g(p_176503_2_);
|
||||
BlockPos blockpos;
|
||||
|
||||
- for (blockpos = p_176503_2_.func_177977_b(); func_185759_i(p_176503_1_.func_180495_p(blockpos)) && blockpos.func_177956_o() > 0; blockpos = blockpos.func_177977_b())
|
||||
+ for (blockpos = p_176503_2_.func_177977_b(); (p_176503_1_.func_175623_d(blockpos) || func_185759_i(p_176503_1_.func_180495_p(blockpos))) && blockpos.func_177956_o() > 0; blockpos = blockpos.func_177977_b())
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
if (blockpos.func_177956_o() > 0)
|
||||
{
|
||||
- p_176503_1_.func_175656_a(blockpos.func_177984_a(), this.func_176223_P());
|
||||
+ p_176503_1_.func_175656_a(blockpos.func_177984_a(), state); //Forge: Fix loss of state information during world gen.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockFarmland.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockFarmland.java
|
||||
@@ -89,7 +89,7 @@
|
||||
@@ -83,7 +83,7 @@
|
||||
private boolean func_176529_d(World p_176529_1_, BlockPos p_176529_2_)
|
||||
{
|
||||
Block block = p_176529_1_.func_180495_p(p_176529_2_.func_177984_a()).func_177230_c();
|
||||
- return block instanceof BlockCrops || block instanceof BlockStem;
|
||||
+ return block instanceof net.minecraftforge.common.IPlantable && canSustainPlant(p_176529_1_, p_176529_2_, net.minecraft.util.EnumFacing.UP, (net.minecraftforge.common.IPlantable)block);
|
||||
+ return block instanceof net.minecraftforge.common.IPlantable && canSustainPlant(p_176529_1_.func_180495_p(p_176529_2_), p_176529_1_, p_176529_2_, net.minecraft.util.EnumFacing.UP, (net.minecraftforge.common.IPlantable)block);
|
||||
}
|
||||
|
||||
private boolean func_176530_e(World p_176530_1_, BlockPos p_176530_2_)
|
||||
@@ -1,34 +1,23 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockFire.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockFire.java
|
||||
@@ -41,18 +41,24 @@
|
||||
int j = p_176221_3_.func_177956_o();
|
||||
int k = p_176221_3_.func_177952_p();
|
||||
@@ -38,7 +38,15 @@
|
||||
|
||||
- if (!World.func_175683_a(p_176221_2_, p_176221_3_.func_177977_b()) && !Blocks.field_150480_ab.func_176535_e(p_176221_2_, p_176221_3_.func_177977_b()))
|
||||
+ if (!World.func_175683_a(p_176221_2_, p_176221_3_.func_177977_b()) && !Blocks.field_150480_ab.canCatchFire(p_176221_2_, p_176221_3_.func_177977_b(), EnumFacing.UP))
|
||||
{
|
||||
boolean flag = (i + j + k & 1) == 1;
|
||||
boolean flag1 = (i / 2 + j / 2 + k / 2 & 1) == 1;
|
||||
int l = 0;
|
||||
public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_)
|
||||
{
|
||||
- return !p_176221_2_.func_180495_p(p_176221_3_.func_177977_b()).func_185896_q() && !Blocks.field_150480_ab.func_176535_e(p_176221_2_, p_176221_3_.func_177977_b()) ? p_176221_1_.func_177226_a(field_176545_N, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177978_c()))).func_177226_a(field_176546_O, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177974_f()))).func_177226_a(field_176541_P, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177968_d()))).func_177226_a(field_176539_Q, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177976_e()))).func_177226_a(field_176542_R, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177984_a()))) : this.func_176223_P();
|
||||
+ if (!p_176221_2_.func_180495_p(p_176221_3_.func_177977_b()).isSideSolid(p_176221_2_, p_176221_3_.func_177977_b(), EnumFacing.UP) && !Blocks.field_150480_ab.canCatchFire(p_176221_2_, p_176221_3_.func_177977_b(), EnumFacing.UP))
|
||||
+ {
|
||||
+ return p_176221_1_.func_177226_a(field_176545_N, this.canCatchFire(p_176221_2_, p_176221_3_.func_177978_c(), EnumFacing.SOUTH))
|
||||
+ .func_177226_a(field_176546_O, this.canCatchFire(p_176221_2_, p_176221_3_.func_177974_f(), EnumFacing.WEST))
|
||||
+ .func_177226_a(field_176541_P, this.canCatchFire(p_176221_2_, p_176221_3_.func_177968_d(), EnumFacing.NORTH))
|
||||
+ .func_177226_a(field_176539_Q, this.canCatchFire(p_176221_2_, p_176221_3_.func_177976_e(), EnumFacing.EAST))
|
||||
+ .func_177226_a(field_176542_R, this.canCatchFire(p_176221_2_, p_176221_3_.func_177984_a(), EnumFacing.DOWN));
|
||||
+ }
|
||||
+ return this.func_176223_P();
|
||||
}
|
||||
|
||||
- if (this.func_176535_e(p_176221_2_, p_176221_3_.func_177984_a()))
|
||||
+ if (this.canCatchFire(p_176221_2_, p_176221_3_.func_177984_a(), EnumFacing.DOWN))
|
||||
{
|
||||
l = flag ? 1 : 2;
|
||||
}
|
||||
|
||||
- return p_176221_1_.func_177226_a(field_176545_N, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177978_c()))).func_177226_a(field_176546_O, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177974_f()))).func_177226_a(field_176541_P, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177968_d()))).func_177226_a(field_176539_Q, Boolean.valueOf(this.func_176535_e(p_176221_2_, p_176221_3_.func_177976_e()))).func_177226_a(field_176542_R, Integer.valueOf(l)).func_177226_a(field_176540_b, Boolean.valueOf(flag1)).func_177226_a(field_176544_M, Boolean.valueOf(flag));
|
||||
+ return p_176221_1_.func_177226_a(field_176545_N, Boolean.valueOf(this.canCatchFire(p_176221_2_, p_176221_3_.func_177978_c(), EnumFacing.SOUTH)))
|
||||
+ .func_177226_a(field_176546_O, Boolean.valueOf(this.canCatchFire(p_176221_2_, p_176221_3_.func_177974_f(), EnumFacing.EAST )))
|
||||
+ .func_177226_a(field_176541_P, Boolean.valueOf(this.canCatchFire(p_176221_2_, p_176221_3_.func_177968_d(), EnumFacing.NORTH)))
|
||||
+ .func_177226_a(field_176539_Q, Boolean.valueOf(this.canCatchFire(p_176221_2_, p_176221_3_.func_177976_e(), EnumFacing.EAST )))
|
||||
+ .func_177226_a(field_176542_R, Integer.valueOf(l))
|
||||
+ .func_177226_a(field_176540_b, Boolean.valueOf(flag1))
|
||||
+ .func_177226_a(field_176544_M, Boolean.valueOf(flag));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -108,6 +114,7 @@
|
||||
protected BlockFire()
|
||||
@@ -91,6 +99,7 @@
|
||||
|
||||
public void func_180686_a(Block p_180686_1_, int p_180686_2_, int p_180686_3_)
|
||||
{
|
||||
@@ -36,7 +25,7 @@
|
||||
this.field_149849_a.put(p_180686_1_, Integer.valueOf(p_180686_2_));
|
||||
this.field_149848_b.put(p_180686_1_, Integer.valueOf(p_180686_3_));
|
||||
}
|
||||
@@ -147,13 +154,8 @@
|
||||
@@ -131,13 +140,8 @@
|
||||
}
|
||||
|
||||
Block block = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).func_177230_c();
|
||||
@@ -48,10 +37,19 @@
|
||||
- flag = true;
|
||||
- }
|
||||
-
|
||||
if (!flag && p_180650_1_.func_72896_J() && this.func_176537_d(p_180650_1_, p_180650_2_))
|
||||
{
|
||||
p_180650_1_.func_175698_g(p_180650_2_);
|
||||
@@ -182,7 +184,7 @@
|
||||
int i = ((Integer)p_180650_3_.func_177229_b(field_176543_a)).intValue();
|
||||
|
||||
if (!flag && p_180650_1_.func_72896_J() && this.func_176537_d(p_180650_1_, p_180650_2_) && p_180650_4_.nextFloat() < 0.2F + (float)i * 0.03F)
|
||||
@@ -158,7 +162,7 @@
|
||||
{
|
||||
if (!this.func_176533_e(p_180650_1_, p_180650_2_))
|
||||
{
|
||||
- if (!p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).func_185896_q() || i > 3)
|
||||
+ if (!p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).isSideSolid(p_180650_1_, p_180650_2_.func_177977_b(), EnumFacing.UP) || i > 3)
|
||||
{
|
||||
p_180650_1_.func_175698_g(p_180650_2_);
|
||||
}
|
||||
@@ -166,7 +170,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -60,7 +58,7 @@
|
||||
{
|
||||
p_180650_1_.func_175698_g(p_180650_2_);
|
||||
return;
|
||||
@@ -197,12 +199,12 @@
|
||||
@@ -181,12 +185,12 @@
|
||||
j = -50;
|
||||
}
|
||||
|
||||
@@ -79,7 +77,7 @@
|
||||
|
||||
for (int k = -1; k <= 1; ++k)
|
||||
{
|
||||
@@ -261,22 +263,30 @@
|
||||
@@ -245,22 +249,30 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -111,7 +109,7 @@
|
||||
if (p_176536_4_.nextInt(p_176536_3_) < i)
|
||||
{
|
||||
IBlockState iblockstate = p_176536_1_.func_180495_p(p_176536_2_);
|
||||
@@ -308,7 +318,7 @@
|
||||
@@ -292,7 +304,7 @@
|
||||
{
|
||||
for (EnumFacing enumfacing : EnumFacing.values())
|
||||
{
|
||||
@@ -120,16 +118,16 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -329,7 +339,7 @@
|
||||
@@ -313,7 +325,7 @@
|
||||
|
||||
for (EnumFacing enumfacing : EnumFacing.values())
|
||||
{
|
||||
- i = Math.max(this.func_176534_d(p_176538_1_.func_180495_p(p_176538_2_.func_177972_a(enumfacing)).func_177230_c()), i);
|
||||
+ i = Math.max(p_176538_1_.func_180495_p(p_176538_2_.func_177972_a(enumfacing)).func_177230_c().getFlammability(p_176538_1_, p_176538_2_.func_177972_a(enumfacing), enumfacing.func_176734_d()), i);
|
||||
+ i = Math.max(p_176538_1_.func_180495_p(p_176538_2_.func_177972_a(enumfacing)).func_177230_c().getFireSpreadSpeed(p_176538_1_, p_176538_2_.func_177972_a(enumfacing), enumfacing.func_176734_d()), i);
|
||||
}
|
||||
|
||||
return i;
|
||||
@@ -341,9 +351,10 @@
|
||||
@@ -325,9 +337,10 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -141,57 +139,57 @@
|
||||
}
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
@@ -382,9 +393,9 @@
|
||||
p_180655_1_.func_72980_b((double)((float)p_180655_2_.func_177958_n() + 0.5F), (double)((float)p_180655_2_.func_177956_o() + 0.5F), (double)((float)p_180655_2_.func_177952_p() + 0.5F), "fire.fire", 1.0F + p_180655_4_.nextFloat(), p_180655_4_.nextFloat() * 0.7F + 0.3F, false);
|
||||
@@ -366,9 +379,9 @@
|
||||
p_180655_2_.func_184134_a((double)((float)p_180655_3_.func_177958_n() + 0.5F), (double)((float)p_180655_3_.func_177956_o() + 0.5F), (double)((float)p_180655_3_.func_177952_p() + 0.5F), SoundEvents.field_187643_bs, SoundCategory.BLOCKS, 1.0F + p_180655_4_.nextFloat(), p_180655_4_.nextFloat() * 0.7F + 0.3F, false);
|
||||
}
|
||||
|
||||
- if (!World.func_175683_a(p_180655_1_, p_180655_2_.func_177977_b()) && !Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177977_b()))
|
||||
+ if (!World.func_175683_a(p_180655_1_, p_180655_2_.func_177977_b()) && !Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177977_b(), EnumFacing.UP))
|
||||
- if (!p_180655_2_.func_180495_p(p_180655_3_.func_177977_b()).func_185896_q() && !Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177977_b()))
|
||||
+ if (!p_180655_2_.func_180495_p(p_180655_3_.func_177977_b()).isSideSolid(p_180655_2_, p_180655_3_.func_177977_b(), EnumFacing.UP) && !Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177977_b(), EnumFacing.UP))
|
||||
{
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177976_e()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177976_e(), EnumFacing.EAST))
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177976_e()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177976_e(), EnumFacing.EAST))
|
||||
{
|
||||
for (int j = 0; j < 2; ++j)
|
||||
{
|
||||
@@ -395,7 +406,7 @@
|
||||
@@ -379,7 +392,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177974_f()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177974_f(), EnumFacing.WEST))
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177974_f()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177974_f(), EnumFacing.WEST))
|
||||
{
|
||||
for (int k = 0; k < 2; ++k)
|
||||
{
|
||||
@@ -406,7 +417,7 @@
|
||||
@@ -390,7 +403,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177978_c()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177978_c(), EnumFacing.SOUTH))
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177978_c()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177978_c(), EnumFacing.SOUTH))
|
||||
{
|
||||
for (int l = 0; l < 2; ++l)
|
||||
{
|
||||
@@ -417,7 +428,7 @@
|
||||
@@ -401,7 +414,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177968_d()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177968_d(), EnumFacing.NORTH))
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177968_d()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177968_d(), EnumFacing.NORTH))
|
||||
{
|
||||
for (int i1 = 0; i1 < 2; ++i1)
|
||||
{
|
||||
@@ -428,7 +439,7 @@
|
||||
@@ -412,7 +425,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_1_, p_180655_2_.func_177984_a()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_1_, p_180655_2_.func_177984_a(), EnumFacing.DOWN))
|
||||
- if (Blocks.field_150480_ab.func_176535_e(p_180655_2_, p_180655_3_.func_177984_a()))
|
||||
+ if (Blocks.field_150480_ab.canCatchFire(p_180655_2_, p_180655_3_.func_177984_a(), EnumFacing.DOWN))
|
||||
{
|
||||
for (int j1 = 0; j1 < 2; ++j1)
|
||||
{
|
||||
@@ -476,4 +487,19 @@
|
||||
@@ -460,4 +473,19 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176543_a, field_176545_N, field_176546_O, field_176541_P, field_176539_Q, field_176542_R, field_176540_b, field_176544_M});
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176543_a, field_176545_N, field_176546_O, field_176541_P, field_176539_Q, field_176542_R});
|
||||
}
|
||||
+
|
||||
+ /*================================= Forge Start ======================================*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockFlowerPot.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockFlowerPot.java
|
||||
@@ -169,13 +169,6 @@
|
||||
@@ -151,13 +151,6 @@
|
||||
|
||||
public void func_180663_b(World p_180663_1_, BlockPos p_180663_2_, IBlockState p_180663_3_)
|
||||
{
|
||||
@@ -14,8 +14,8 @@
|
||||
super.func_180663_b(p_180663_1_, p_180663_2_, p_180663_3_);
|
||||
}
|
||||
|
||||
@@ -395,6 +388,31 @@
|
||||
return EnumWorldBlockLayer.CUTOUT;
|
||||
@@ -379,6 +372,31 @@
|
||||
return BlockRenderLayer.CUTOUT;
|
||||
}
|
||||
|
||||
+
|
||||
@@ -30,15 +30,15 @@
|
||||
+ return ret;
|
||||
+ }
|
||||
+ @Override
|
||||
+ public boolean removedByPlayer(World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
+ {
|
||||
+ if (willHarvest) return true; //If it will harvest, delay deletion of the block until after getDrops
|
||||
+ return super.removedByPlayer(world, pos, player, willHarvest);
|
||||
+ return super.removedByPlayer(state, world, pos, player, willHarvest);
|
||||
+ }
|
||||
+ @Override
|
||||
+ public void func_180657_a(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity te)
|
||||
+ public void func_180657_a(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity te, ItemStack tool)
|
||||
+ {
|
||||
+ super.func_180657_a(world, player, pos, state, te);
|
||||
+ super.func_180657_a(world, player, pos, state, te, tool);
|
||||
+ world.func_175698_g(pos);
|
||||
+ }
|
||||
+ /*===========================FORGE END==========================================*/
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockGrass.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockGrass.java
|
||||
@@ -58,7 +58,7 @@
|
||||
@@ -39,7 +39,7 @@
|
||||
{
|
||||
if (!p_180650_1_.field_72995_K)
|
||||
{
|
||||
- if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_177230_c().func_149717_k() > 2)
|
||||
+ if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_177230_c().getLightOpacity(p_180650_1_, p_180650_2_.func_177984_a()) > 2)
|
||||
- if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_185891_c() > 2)
|
||||
+ if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).getLightOpacity(p_180650_1_, p_180650_2_.func_177984_a()) > 2)
|
||||
{
|
||||
p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P());
|
||||
}
|
||||
@@ -72,7 +72,7 @@
|
||||
Block block = p_180650_1_.func_180495_p(blockpos.func_177984_a()).func_177230_c();
|
||||
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos);
|
||||
@@ -59,7 +59,7 @@
|
||||
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos.func_177984_a());
|
||||
IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos);
|
||||
|
||||
- if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && block.func_149717_k() <= 2)
|
||||
+ if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && block.getLightOpacity(p_180650_1_, blockpos.func_177984_a()) <= 2)
|
||||
- if (iblockstate1.func_177230_c() == Blocks.field_150346_d && iblockstate1.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && iblockstate.func_185891_c() <= 2)
|
||||
+ if (iblockstate1.func_177230_c() == Blocks.field_150346_d && iblockstate1.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && iblockstate.getLightOpacity(p_180650_1_, p_180650_2_.func_177984_a()) <= 2)
|
||||
{
|
||||
p_180650_1_.func_175656_a(blockpos, Blocks.field_150349_c.func_176223_P());
|
||||
}
|
||||
@@ -110,7 +110,7 @@
|
||||
@@ -98,18 +98,11 @@
|
||||
{
|
||||
if (j >= i / 16)
|
||||
{
|
||||
@@ -27,3 +27,15 @@
|
||||
{
|
||||
if (p_176474_2_.nextInt(8) == 0)
|
||||
{
|
||||
- BlockFlower.EnumFlowerType blockflower$enumflowertype = p_176474_1_.func_180494_b(blockpos1).func_180623_a(p_176474_2_, blockpos1);
|
||||
- BlockFlower blockflower = blockflower$enumflowertype.func_176964_a().func_180346_a();
|
||||
- IBlockState iblockstate = blockflower.func_176223_P().func_177226_a(blockflower.func_176494_l(), blockflower$enumflowertype);
|
||||
-
|
||||
- if (blockflower.func_180671_f(p_176474_1_, blockpos1, iblockstate))
|
||||
- {
|
||||
- p_176474_1_.func_180501_a(blockpos1, iblockstate, 3);
|
||||
- }
|
||||
+ p_176474_1_.func_180494_b(blockpos1).plantFlower(p_176474_1_, p_176474_2_, blockpos1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1,13 +1,13 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockHugeMushroom.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockHugeMushroom.java
|
||||
@@ -79,6 +79,20 @@
|
||||
return new BlockState(this, new IProperty[] {field_176380_a});
|
||||
@@ -223,6 +223,20 @@
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176380_a});
|
||||
}
|
||||
|
||||
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty prop : (java.util.Set<IProperty<?>>)state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("variant"))
|
||||
+ {
|
||||
|
||||
@@ -1,35 +1,34 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockIce.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockIce.java
|
||||
@@ -38,14 +38,17 @@
|
||||
p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
@@ -41,14 +41,19 @@
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
p_180657_2_.func_71020_j(0.025F);
|
||||
|
||||
- if (this.func_149700_E() && EnchantmentHelper.func_77502_d(p_180657_2_))
|
||||
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_1_.func_180495_p(p_180657_3_), p_180657_2_) && EnchantmentHelper.func_77502_d(p_180657_2_))
|
||||
- if (this.func_149700_E() && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
|
||||
+ if (this.canSilkHarvest(p_180657_1_, p_180657_3_, p_180657_4_, p_180657_2_) && EnchantmentHelper.func_77506_a(Enchantments.field_185306_r, p_180657_6_) > 0)
|
||||
{
|
||||
+ java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>();
|
||||
ItemStack itemstack = this.func_180643_i(p_180657_4_);
|
||||
|
||||
- if (itemstack != null)
|
||||
- {
|
||||
if (itemstack != null)
|
||||
{
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, itemstack);
|
||||
- }
|
||||
+ if (itemstack != null) items.add(itemstack);
|
||||
+
|
||||
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_1_.func_180495_p(p_180657_3_), 0, 1.0f, true, p_180657_2_);
|
||||
+ items.add(itemstack);
|
||||
}
|
||||
+
|
||||
+ net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, p_180657_1_, p_180657_3_, p_180657_4_, 0, 1.0f, true, p_180657_2_);
|
||||
+ for (ItemStack is : items)
|
||||
+ func_180635_a(p_180657_1_, p_180657_3_, is);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -56,7 +59,9 @@
|
||||
@@ -59,7 +64,9 @@
|
||||
}
|
||||
|
||||
int i = EnchantmentHelper.func_77517_e(p_180657_2_);
|
||||
int i = EnchantmentHelper.func_77506_a(Enchantments.field_185308_t, p_180657_6_);
|
||||
+ harvesters.set(p_180657_2_);
|
||||
this.func_176226_b(p_180657_1_, p_180657_3_, p_180657_4_, i);
|
||||
+ harvesters.set(null);
|
||||
Material material = p_180657_1_.func_180495_p(p_180657_3_.func_177977_b()).func_177230_c().func_149688_o();
|
||||
Material material = p_180657_1_.func_180495_p(p_180657_3_.func_177977_b()).func_185904_a();
|
||||
|
||||
if (material.func_76230_c() || material.func_76224_d())
|
||||
@@ -1,30 +1,30 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockLadder.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockLadder.java
|
||||
@@ -78,7 +78,10 @@
|
||||
@@ -61,7 +61,10 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
- return p_176196_1_.func_180495_p(p_176196_2_.func_177976_e()).func_177230_c().func_149721_r() ? true : (p_176196_1_.func_180495_p(p_176196_2_.func_177974_f()).func_177230_c().func_149721_r() ? true : (p_176196_1_.func_180495_p(p_176196_2_.func_177978_c()).func_177230_c().func_149721_r() ? true : p_176196_1_.func_180495_p(p_176196_2_.func_177968_d()).func_177230_c().func_149721_r()));
|
||||
+ return p_176196_1_.isSideSolid(p_176196_2_.func_177976_e(), EnumFacing.EAST, true) ||
|
||||
+ p_176196_1_.isSideSolid(p_176196_2_.func_177974_f(), EnumFacing.WEST, true) ||
|
||||
+ p_176196_1_.isSideSolid(p_176196_2_.func_177978_c(), EnumFacing.SOUTH, true) ||
|
||||
+ p_176196_1_.isSideSolid(p_176196_2_.func_177968_d(), EnumFacing.NORTH, true);
|
||||
- return p_176196_1_.func_180495_p(p_176196_2_.func_177976_e()).func_185915_l() ? true : (p_176196_1_.func_180495_p(p_176196_2_.func_177974_f()).func_185915_l() ? true : (p_176196_1_.func_180495_p(p_176196_2_.func_177978_c()).func_185915_l() ? true : p_176196_1_.func_180495_p(p_176196_2_.func_177968_d()).func_185915_l()));
|
||||
+ return p_176196_1_.func_180495_p(p_176196_2_.func_177976_e()).isSideSolid(p_176196_1_, p_176196_2_.func_177976_e(), EnumFacing.EAST) ||
|
||||
+ p_176196_1_.func_180495_p(p_176196_2_.func_177974_f()).isSideSolid(p_176196_1_, p_176196_2_.func_177974_f(), EnumFacing.WEST) ||
|
||||
+ p_176196_1_.func_180495_p(p_176196_2_.func_177978_c()).isSideSolid(p_176196_1_, p_176196_2_.func_177978_c(), EnumFacing.SOUTH) ||
|
||||
+ p_176196_1_.func_180495_p(p_176196_2_.func_177968_d()).isSideSolid(p_176196_1_, p_176196_2_.func_177968_d(), EnumFacing.NORTH);
|
||||
}
|
||||
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
@@ -116,7 +119,7 @@
|
||||
@@ -99,7 +102,7 @@
|
||||
|
||||
protected boolean func_176381_b(World p_176381_1_, BlockPos p_176381_2_, EnumFacing p_176381_3_)
|
||||
{
|
||||
- return p_176381_1_.func_180495_p(p_176381_2_.func_177972_a(p_176381_3_.func_176734_d())).func_177230_c().func_149721_r();
|
||||
+ return p_176381_1_.isSideSolid(p_176381_2_.func_177972_a(p_176381_3_.func_176734_d()), p_176381_3_, true);
|
||||
- return p_176381_1_.func_180495_p(p_176381_2_.func_177972_a(p_176381_3_.func_176734_d())).func_185915_l();
|
||||
+ return p_176381_1_.func_180495_p(p_176381_2_.func_177972_a(p_176381_3_.func_176734_d())).isSideSolid(p_176381_1_, p_176381_2_.func_177972_a(p_176381_3_.func_176734_d()), p_176381_3_);
|
||||
}
|
||||
|
||||
public IBlockState func_176203_a(int p_176203_1_)
|
||||
@@ -146,4 +149,6 @@
|
||||
@@ -139,4 +142,6 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176382_a});
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176382_a});
|
||||
}
|
||||
+
|
||||
+ @Override public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return true; }
|
||||
+ @Override public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return true; }
|
||||
}
|
||||
@@ -4,36 +4,36 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
-public abstract class BlockLeaves extends BlockLeavesBase
|
||||
+public abstract class BlockLeaves extends BlockLeavesBase implements net.minecraftforge.common.IShearable
|
||||
-public abstract class BlockLeaves extends Block
|
||||
+public abstract class BlockLeaves extends Block implements net.minecraftforge.common.IShearable
|
||||
{
|
||||
public static final PropertyBool field_176237_a = PropertyBool.func_177716_a("decayable");
|
||||
public static final PropertyBool field_176236_b = PropertyBool.func_177716_a("check_decay");
|
||||
@@ -75,9 +75,9 @@
|
||||
@@ -54,9 +54,9 @@
|
||||
BlockPos blockpos = p_180663_2_.func_177982_a(j1, k1, l1);
|
||||
IBlockState iblockstate = p_180663_1_.func_180495_p(blockpos);
|
||||
|
||||
- if (iblockstate.func_177230_c().func_149688_o() == Material.field_151584_j && !((Boolean)iblockstate.func_177229_b(field_176236_b)).booleanValue())
|
||||
+ if (iblockstate.func_177230_c().isLeaves(p_180663_1_, blockpos))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151584_j && !((Boolean)iblockstate.func_177229_b(field_176236_b)).booleanValue())
|
||||
+ if (iblockstate.func_177230_c().isLeaves(iblockstate, p_180663_1_, blockpos))
|
||||
{
|
||||
- p_180663_1_.func_180501_a(blockpos, iblockstate.func_177226_a(field_176236_b, Boolean.valueOf(true)), 4);
|
||||
+ iblockstate.func_177230_c().beginLeavesDecay(p_180663_1_, blockpos);
|
||||
+ iblockstate.func_177230_c().beginLeavesDecay(iblockstate, p_180663_1_, blockpos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,9 +117,9 @@
|
||||
{
|
||||
Block block = p_180650_1_.func_180495_p(blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)).func_177230_c();
|
||||
@@ -97,9 +97,9 @@
|
||||
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2));
|
||||
Block block = iblockstate.func_177230_c();
|
||||
|
||||
- if (block != Blocks.field_150364_r && block != Blocks.field_150363_s)
|
||||
+ if (!block.canSustainLeaves(p_180650_1_, blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)))
|
||||
+ if (!block.canSustainLeaves(iblockstate, p_180650_1_, blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)))
|
||||
{
|
||||
- if (block.func_149688_o() == Material.field_151584_j)
|
||||
+ if (block.isLeaves(p_180650_1_, blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151584_j)
|
||||
+ if (block.isLeaves(iblockstate, p_180650_1_, blockpos$mutableblockpos.func_181079_c(k + i2, l + j2, i1 + k2)))
|
||||
{
|
||||
this.field_150128_a[(i2 + l1) * k1 + (j2 + l1) * j1 + k2 + l1] = -2;
|
||||
this.field_150128_a[(i2 + 16) * 1024 + (j2 + 16) * 32 + k2 + 16] = -2;
|
||||
}
|
||||
@@ -226,40 +226,7 @@
|
||||
@@ -207,40 +207,7 @@
|
||||
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
@@ -75,18 +75,16 @@
|
||||
}
|
||||
|
||||
protected void func_176234_a(World p_176234_1_, BlockPos p_176234_2_, IBlockState p_176234_3_, int p_176234_4_)
|
||||
@@ -296,4 +263,48 @@
|
||||
}
|
||||
@@ -276,6 +243,49 @@
|
||||
|
||||
public abstract BlockPlanks.EnumType func_176233_b(int p_176233_1_);
|
||||
+
|
||||
|
||||
+ @Override public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos){ return true; }
|
||||
+ @Override public boolean isLeaves(IBlockAccess world, BlockPos pos){ return true; }
|
||||
+ @Override public boolean isLeaves(IBlockState state, IBlockAccess world, BlockPos pos){ return true; }
|
||||
+
|
||||
+ @Override
|
||||
+ public void beginLeavesDecay(World world, BlockPos pos)
|
||||
+ public void beginLeavesDecay(IBlockState state, World world, BlockPos pos)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ if (!(Boolean)state.func_177229_b(field_176236_b))
|
||||
+ {
|
||||
+ world.func_180501_a(pos, state.func_177226_a(field_176236_b, true), 4);
|
||||
@@ -123,4 +121,7 @@
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean func_176225_a(IBlockState p_176225_1_, IBlockAccess p_176225_2_, BlockPos p_176225_3_, EnumFacing p_176225_4_)
|
||||
{
|
||||
@@ -1,7 +1,7 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockLever.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockLever.java
|
||||
@@ -237,6 +237,12 @@
|
||||
return new BlockState(this, new IProperty[] {field_176360_a, field_176359_b});
|
||||
@@ -297,6 +297,12 @@
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176360_a, field_176359_b});
|
||||
}
|
||||
|
||||
+
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockLog.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockLog.java
|
||||
@@ -33,9 +33,9 @@
|
||||
@@ -34,9 +34,9 @@
|
||||
{
|
||||
IBlockState iblockstate = p_180663_1_.func_180495_p(blockpos);
|
||||
|
||||
- if (iblockstate.func_177230_c().func_149688_o() == Material.field_151584_j && !((Boolean)iblockstate.func_177229_b(BlockLeaves.field_176236_b)).booleanValue())
|
||||
+ if (iblockstate.func_177230_c().isLeaves(p_180663_1_, blockpos))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151584_j && !((Boolean)iblockstate.func_177229_b(BlockLeaves.field_176236_b)).booleanValue())
|
||||
+ if (iblockstate.func_177230_c().isLeaves(iblockstate, p_180663_1_, blockpos))
|
||||
{
|
||||
- p_180663_1_.func_180501_a(blockpos, iblockstate.func_177226_a(BlockLeaves.field_176236_b, Boolean.valueOf(true)), 4);
|
||||
+ iblockstate.func_177230_c().beginLeavesDecay(p_180663_1_, blockpos);
|
||||
+ iblockstate.func_177230_c().beginLeavesDecay(iblockstate, p_180663_1_, blockpos);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,6 +46,9 @@
|
||||
return super.func_180642_a(p_180642_1_, p_180642_2_, p_180642_3_, p_180642_4_, p_180642_5_, p_180642_6_, p_180642_7_, p_180642_8_).func_177226_a(field_176299_a, BlockLog.EnumAxis.func_176870_a(p_180642_3_.func_176740_k()));
|
||||
@@ -69,6 +69,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ @Override public boolean canSustainLeaves(net.minecraft.world.IBlockAccess world, BlockPos pos){ return true; }
|
||||
+ @Override public boolean canSustainLeaves(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos){ return true; }
|
||||
+ @Override public boolean isWood(net.minecraft.world.IBlockAccess world, BlockPos pos){ return true; }
|
||||
+
|
||||
public static enum EnumAxis implements IStringSerializable
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockMobSpawner.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockMobSpawner.java
|
||||
@@ -37,10 +37,14 @@
|
||||
@@ -41,10 +41,14 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
@@ -9,11 +9,11 @@
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public int getExpDrop(net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ return 15 + RANDOM.nextInt(15) + RANDOM.nextInt(15);
|
||||
+ }
|
||||
+
|
||||
public boolean func_149662_c()
|
||||
public boolean func_149662_c(IBlockState p_149662_1_)
|
||||
{
|
||||
return false;
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockMushroom.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockMushroom.java
|
||||
@@ -71,7 +71,7 @@
|
||||
@@ -78,7 +78,7 @@
|
||||
if (p_180671_2_.func_177956_o() >= 0 && p_180671_2_.func_177956_o() < 256)
|
||||
{
|
||||
IBlockState iblockstate = p_180671_1_.func_180495_p(p_180671_2_.func_177977_b());
|
||||
- return iblockstate.func_177230_c() == Blocks.field_150391_bh ? true : (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.PODZOL ? true : p_180671_1_.func_175699_k(p_180671_2_) < 13 && this.func_149854_a(iblockstate.func_177230_c()));
|
||||
+ return iblockstate.func_177230_c() == Blocks.field_150391_bh ? true : (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.PODZOL ? true : p_180671_1_.func_175699_k(p_180671_2_) < 13 && iblockstate.func_177230_c().canSustainPlant(p_180671_1_, p_180671_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this));
|
||||
- return iblockstate.func_177230_c() == Blocks.field_150391_bh ? true : (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.PODZOL ? true : p_180671_1_.func_175699_k(p_180671_2_) < 13 && this.func_185514_i(iblockstate));
|
||||
+ return iblockstate.func_177230_c() == Blocks.field_150391_bh ? true : (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.PODZOL ? true : p_180671_1_.func_175699_k(p_180671_2_) < 13 && iblockstate.func_177230_c().canSustainPlant(iblockstate, p_180671_1_, p_180671_2_.func_177977_b(), net.minecraft.util.EnumFacing.UP, this));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1,20 +1,20 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockMycelium.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockMycelium.java
|
||||
@@ -39,7 +39,7 @@
|
||||
@@ -40,7 +40,7 @@
|
||||
{
|
||||
if (!p_180650_1_.field_72995_K)
|
||||
{
|
||||
- if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_177230_c().func_149717_k() > 2)
|
||||
+ if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_177230_c().getLightOpacity(p_180650_1_, p_180650_2_.func_177984_a()) > 2)
|
||||
- if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).func_185891_c() > 2)
|
||||
+ if (p_180650_1_.func_175671_l(p_180650_2_.func_177984_a()) < 4 && p_180650_1_.func_180495_p(p_180650_2_.func_177984_a()).getLightOpacity(p_180650_1_, p_180650_2_.func_177984_a()) > 2)
|
||||
{
|
||||
p_180650_1_.func_175656_a(p_180650_2_, Blocks.field_150346_d.func_176223_P().func_177226_a(BlockDirt.field_176386_a, BlockDirt.DirtType.DIRT));
|
||||
}
|
||||
@@ -53,7 +53,7 @@
|
||||
@@ -54,7 +54,7 @@
|
||||
IBlockState iblockstate = p_180650_1_.func_180495_p(blockpos);
|
||||
Block block = p_180650_1_.func_180495_p(blockpos.func_177984_a()).func_177230_c();
|
||||
IBlockState iblockstate1 = p_180650_1_.func_180495_p(blockpos.func_177984_a());
|
||||
|
||||
- if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && block.func_149717_k() <= 2)
|
||||
+ if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && block.getLightOpacity(p_180650_1_, blockpos.func_177984_a()) <= 2)
|
||||
- if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && iblockstate1.func_185891_c() <= 2)
|
||||
+ if (iblockstate.func_177230_c() == Blocks.field_150346_d && iblockstate.func_177229_b(BlockDirt.field_176386_a) == BlockDirt.DirtType.DIRT && p_180650_1_.func_175671_l(blockpos.func_177984_a()) >= 4 && iblockstate1.getLightOpacity(p_180650_1_, blockpos.func_177984_a()) <= 2)
|
||||
{
|
||||
p_180650_1_.func_175656_a(blockpos, this.func_176223_P());
|
||||
}
|
||||
@@ -1,15 +1,25 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockNetherWart.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockNetherWart.java
|
||||
@@ -38,7 +38,7 @@
|
||||
@@ -43,25 +43,28 @@
|
||||
|
||||
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
|
||||
{
|
||||
- return this.func_149854_a(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c());
|
||||
- return this.func_185514_i(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()));
|
||||
+ return super.func_180671_f(p_180671_1_, p_180671_2_, p_180671_3_);
|
||||
}
|
||||
|
||||
public void func_180650_b(World p_180650_1_, BlockPos p_180650_2_, IBlockState p_180650_3_, Random p_180650_4_)
|
||||
@@ -54,9 +54,11 @@
|
||||
{
|
||||
int i = ((Integer)p_180650_3_.func_177229_b(field_176486_a)).intValue();
|
||||
|
||||
- if (i < 3 && p_180650_4_.nextInt(10) == 0)
|
||||
+ if (i < 3 && net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_.nextInt(10) == 0))
|
||||
{
|
||||
p_180650_3_ = p_180650_3_.func_177226_a(field_176486_a, Integer.valueOf(i + 1));
|
||||
p_180650_1_.func_180501_a(p_180650_2_, p_180650_3_, 2);
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
}
|
||||
|
||||
super.func_180650_b(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_);
|
||||
}
|
||||
|
||||
@@ -22,11 +32,10 @@
|
||||
{
|
||||
int i = 1;
|
||||
|
||||
@@ -107,4 +109,24 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176486_a});
|
||||
@@ -108,6 +111,26 @@
|
||||
return ((Integer)p_176201_1_.func_177229_b(field_176486_a)).intValue();
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ {
|
||||
@@ -46,4 +55,7 @@
|
||||
+
|
||||
+ return ret;
|
||||
+ }
|
||||
}
|
||||
+
|
||||
protected BlockStateContainer func_180661_e()
|
||||
{
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176486_a});
|
||||
@@ -1,24 +1,22 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockNewLeaf.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockNewLeaf.java
|
||||
@@ -99,14 +99,15 @@
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
|
||||
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) //Forge: Noop this
|
||||
{
|
||||
- p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176240_P)).func_176839_a() - 4));
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176240_P)).func_176839_a() - 4));
|
||||
@@ -109,4 +109,10 @@
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ return new java.util.ArrayList(java.util.Arrays.asList(new ItemStack(this, 1, ((BlockPlanks.EnumType)state.func_177229_b(field_176240_P)).func_176839_a() - 4)));
|
||||
+ return java.util.Arrays.asList(new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176240_P).func_176839_a() - 4));
|
||||
+ }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockNote.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockNote.java
|
||||
@@ -58,7 +58,9 @@
|
||||
@@ -65,7 +65,9 @@
|
||||
if (tileentity instanceof TileEntityNote)
|
||||
{
|
||||
TileEntityNote tileentitynote = (TileEntityNote)tileentity;
|
||||
@@ -8,16 +8,16 @@
|
||||
tileentitynote.func_145877_a();
|
||||
+ if (old == tileentitynote.field_145879_a) return false;
|
||||
tileentitynote.func_175108_a(p_180639_1_, p_180639_2_);
|
||||
p_180639_4_.func_71029_a(StatList.field_181735_S);
|
||||
p_180639_4_.func_71029_a(StatList.field_188087_U);
|
||||
}
|
||||
@@ -98,6 +100,10 @@
|
||||
@@ -105,6 +107,10 @@
|
||||
|
||||
public boolean func_180648_a(World p_180648_1_, BlockPos p_180648_2_, IBlockState p_180648_3_, int p_180648_4_, int p_180648_5_)
|
||||
public boolean func_189539_a(IBlockState p_189539_1_, World p_189539_2_, BlockPos p_189539_3_, int p_189539_4_, int p_189539_5_)
|
||||
{
|
||||
+ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_180648_1_, p_180648_2_, p_180648_3_, p_180648_5_, p_180648_4_);
|
||||
+ net.minecraftforge.event.world.NoteBlockEvent.Play e = new net.minecraftforge.event.world.NoteBlockEvent.Play(p_189539_2_, p_189539_3_, p_189539_1_, p_189539_5_, p_189539_4_);
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(e)) return false;
|
||||
+ p_180648_4_ = e.instrument.ordinal();
|
||||
+ p_180648_5_ = e.getVanillaNoteId();
|
||||
float f = (float)Math.pow(2.0D, (double)(p_180648_5_ - 12) / 12.0D);
|
||||
p_180648_1_.func_72908_a((double)p_180648_2_.func_177958_n() + 0.5D, (double)p_180648_2_.func_177956_o() + 0.5D, (double)p_180648_2_.func_177952_p() + 0.5D, "note." + this.func_176433_b(p_180648_4_), 3.0F, f);
|
||||
p_180648_1_.func_175688_a(EnumParticleTypes.NOTE, (double)p_180648_2_.func_177958_n() + 0.5D, (double)p_180648_2_.func_177956_o() + 1.2D, (double)p_180648_2_.func_177952_p() + 0.5D, (double)p_180648_5_ / 24.0D, 0.0D, 0.0D, new int[0]);
|
||||
+ p_189539_4_ = e.getInstrument().ordinal();
|
||||
+ p_189539_5_ = e.getVanillaNoteId();
|
||||
float f = (float)Math.pow(2.0D, (double)(p_189539_5_ - 12) / 12.0D);
|
||||
p_189539_2_.func_184133_a((EntityPlayer)null, p_189539_3_, this.func_185576_e(p_189539_4_), SoundCategory.RECORDS, 3.0F, f);
|
||||
p_189539_2_.func_175688_a(EnumParticleTypes.NOTE, (double)p_189539_3_.func_177958_n() + 0.5D, (double)p_189539_3_.func_177956_o() + 1.2D, (double)p_189539_3_.func_177952_p() + 0.5D, (double)p_189539_5_ / 24.0D, 0.0D, 0.0D, new int[0]);
|
||||
@@ -1,21 +1,20 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockOldLeaf.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockOldLeaf.java
|
||||
@@ -142,11 +142,17 @@
|
||||
if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
|
||||
@@ -104,11 +104,16 @@
|
||||
if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
|
||||
{
|
||||
p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Item.func_150898_a(this), 1, ((BlockPlanks.EnumType)p_180657_4_.func_177229_b(field_176239_P)).func_176839_a()));
|
||||
}
|
||||
else
|
||||
{
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ public List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ return new java.util.ArrayList(java.util.Arrays.asList(new ItemStack(this, 1, ((BlockPlanks.EnumType)state.func_177229_b(field_176239_P)).func_176839_a())));
|
||||
+ return java.util.Arrays.asList(new ItemStack(this, 1, world.func_180495_p(pos).func_177229_b(field_176239_P).func_176839_a()));
|
||||
+ }
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockOre.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockOre.java
|
||||
@@ -58,34 +58,40 @@
|
||||
@@ -61,34 +61,39 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
@@ -8,9 +8,8 @@
|
||||
- if (this.func_180660_a(p_180653_3_, p_180653_1_.field_73012_v, p_180653_5_) != Item.func_150898_a(this))
|
||||
+ }
|
||||
+ @Override
|
||||
+ public int getExpDrop(net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ Random rand = world instanceof World ? ((World)world).field_73012_v : new Random();
|
||||
+ if (this.func_180660_a(state, rand, fortune) != Item.func_150898_a(this))
|
||||
{
|
||||
@@ -48,4 +47,4 @@
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
public int func_176222_j(World p_176222_1_, BlockPos p_176222_2_)
|
||||
public ItemStack func_185473_a(World p_185473_1_, BlockPos p_185473_2_, IBlockState p_185473_3_)
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockPane.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockPane.java
|
||||
@@ -38,7 +38,10 @@
|
||||
@@ -106,7 +106,10 @@
|
||||
|
||||
public IBlockState func_176221_a(IBlockState p_176221_1_, IBlockAccess p_176221_2_, BlockPos p_176221_3_)
|
||||
{
|
||||
@@ -11,31 +11,16 @@
|
||||
+ .func_177226_a(field_176242_M, canPaneConnectTo(p_176221_2_, p_176221_3_, EnumFacing.EAST));
|
||||
}
|
||||
|
||||
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
|
||||
@@ -64,10 +67,10 @@
|
||||
|
||||
public void func_180638_a(World p_180638_1_, BlockPos p_180638_2_, IBlockState p_180638_3_, AxisAlignedBB p_180638_4_, List<AxisAlignedBB> p_180638_5_, Entity p_180638_6_)
|
||||
@Nullable
|
||||
@@ -184,4 +187,11 @@
|
||||
{
|
||||
- boolean flag = this.func_150098_a(p_180638_1_.func_180495_p(p_180638_2_.func_177978_c()).func_177230_c());
|
||||
- boolean flag1 = this.func_150098_a(p_180638_1_.func_180495_p(p_180638_2_.func_177968_d()).func_177230_c());
|
||||
- boolean flag2 = this.func_150098_a(p_180638_1_.func_180495_p(p_180638_2_.func_177976_e()).func_177230_c());
|
||||
- boolean flag3 = this.func_150098_a(p_180638_1_.func_180495_p(p_180638_2_.func_177974_f()).func_177230_c());
|
||||
+ boolean flag = this.canPaneConnectTo(p_180638_1_, p_180638_2_, EnumFacing.NORTH);
|
||||
+ boolean flag1 = this.canPaneConnectTo(p_180638_1_, p_180638_2_, EnumFacing.SOUTH);
|
||||
+ boolean flag2 = this.canPaneConnectTo(p_180638_1_, p_180638_2_, EnumFacing.WEST);
|
||||
+ boolean flag3 = this.canPaneConnectTo(p_180638_1_, p_180638_2_, EnumFacing.EAST);
|
||||
|
||||
if ((!flag2 || !flag3) && (flag2 || flag3 || flag || flag1))
|
||||
{
|
||||
@@ -186,4 +189,11 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176241_b, field_176242_M, field_176244_O, field_176243_N});
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176241_b, field_176242_M, field_176244_O, field_176243_N});
|
||||
}
|
||||
+
|
||||
+ public boolean canPaneConnectTo(IBlockAccess world, BlockPos pos, EnumFacing dir)
|
||||
+ {
|
||||
+ BlockPos off = pos.func_177972_a(dir);
|
||||
+ Block block = world.func_180495_p(off).func_177230_c();
|
||||
+ return func_150098_a(block) || block.isSideSolid(world, off, dir.func_176734_d());
|
||||
+ IBlockState state = world.func_180495_p(off);
|
||||
+ return func_150098_a(state.func_177230_c()) || state.isSideSolid(world, off, dir.func_176734_d());
|
||||
+ }
|
||||
}
|
||||
@@ -1,31 +1,31 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockPistonBase.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonBase.java
|
||||
@@ -189,7 +189,7 @@
|
||||
@@ -236,7 +236,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (!flag1 && block.func_149688_o() != Material.field_151579_a && func_180696_a(block, p_180648_1_, blockpos, enumfacing.func_176734_d(), false) && (block.func_149656_h() == 0 || block == Blocks.field_150331_J || block == Blocks.field_150320_F))
|
||||
+ if (!flag1 && !block.isAir(p_180648_1_, blockpos) && func_180696_a(block, p_180648_1_, blockpos, enumfacing.func_176734_d(), false) && (block.func_149656_h() == 0 || block == Blocks.field_150331_J || block == Blocks.field_150320_F))
|
||||
- if (!flag1 && iblockstate.func_185904_a() != Material.field_151579_a && func_185646_a(iblockstate, p_189539_2_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F))
|
||||
+ if (!flag1 && !iblockstate.func_177230_c().isAir(iblockstate, p_189539_2_, p_189539_3_) && func_185646_a(iblockstate, p_189539_2_, blockpos, enumfacing.func_176734_d(), false) && (iblockstate.func_185905_o() == EnumPushReaction.NORMAL || block == Blocks.field_150331_J || block == Blocks.field_150320_F))
|
||||
{
|
||||
this.func_176319_a(p_180648_1_, p_180648_2_, enumfacing, false);
|
||||
this.func_176319_a(p_189539_2_, p_189539_3_, enumfacing, false);
|
||||
}
|
||||
@@ -333,7 +333,7 @@
|
||||
@@ -322,7 +322,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
- return !(p_180696_0_ instanceof ITileEntityProvider);
|
||||
+ return !(p_180696_0_.hasTileEntity(p_180696_1_.func_180495_p(p_180696_2_)));
|
||||
- return !block.func_149716_u();
|
||||
+ return !block.hasTileEntity(p_185646_0_);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -371,7 +371,9 @@
|
||||
@@ -368,7 +368,9 @@
|
||||
{
|
||||
BlockPos blockpos = (BlockPos)list1.get(j);
|
||||
Block block = p_176319_1_.func_180495_p(blockpos).func_177230_c();
|
||||
- block.func_176226_b(p_176319_1_, blockpos, p_176319_1_.func_180495_p(blockpos), 0);
|
||||
+ //With our change to how snowballs are dropped this needs to disallow to mimic vanilla behavior.
|
||||
+ float chance = block instanceof BlockSnow ? -1.0f : 1.0f;
|
||||
+ block.func_180653_a(p_176319_1_, blockpos, p_176319_1_.func_180495_p(blockpos), chance, 0);
|
||||
p_176319_1_.func_175698_g(blockpos);
|
||||
--i;
|
||||
ablock[i] = block;
|
||||
BlockPos blockpos1 = (BlockPos)list2.get(j);
|
||||
IBlockState iblockstate = p_176319_1_.func_180495_p(blockpos1);
|
||||
- iblockstate.func_177230_c().func_176226_b(p_176319_1_, blockpos1, iblockstate, 0);
|
||||
+ // Forge: With our change to how snowballs are dropped this needs to disallow to mimic vanilla behavior.
|
||||
+ float chance = iblockstate.func_177230_c() instanceof BlockSnow ? -1.0f : 1.0f;
|
||||
+ iblockstate.func_177230_c().func_180653_a(p_176319_1_, blockpos1, iblockstate, chance, 0);
|
||||
p_176319_1_.func_175698_g(blockpos1);
|
||||
--k;
|
||||
aiblockstate[k] = iblockstate;
|
||||
@@ -1,32 +1,31 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockPistonMoving.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockPistonMoving.java
|
||||
@@ -109,16 +109,7 @@
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
- if (!p_180653_1_.field_72995_K)
|
||||
- {
|
||||
- TileEntityPiston tileentitypiston = this.func_176422_e(p_180653_1_, p_180653_2_);
|
||||
-
|
||||
- if (tileentitypiston != null)
|
||||
- {
|
||||
- IBlockState iblockstate = tileentitypiston.func_174927_b();
|
||||
- iblockstate.func_177230_c().func_176226_b(p_180653_1_, p_180653_2_, iblockstate, 0);
|
||||
- }
|
||||
- }
|
||||
+ super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
+ if (false && !p_180653_1_.field_72995_K) // Forge: Noop this out
|
||||
{
|
||||
TileEntityPiston tileentitypiston = this.func_185589_c(p_180653_1_, p_180653_2_);
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
iblockstate.func_177230_c().func_176226_b(p_180653_1_, p_180653_2_, iblockstate, 0);
|
||||
}
|
||||
}
|
||||
+ super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, 1, p_180653_5_); // mimic vanilla behavior from above and ignore chance
|
||||
}
|
||||
|
||||
public MovingObjectPosition func_180636_a(World p_180636_1_, BlockPos p_180636_2_, Vec3 p_180636_3_, Vec3 p_180636_4_)
|
||||
@@ -282,4 +273,16 @@
|
||||
public RayTraceResult func_180636_a(IBlockState p_180636_1_, World p_180636_2_, BlockPos p_180636_3_, Vec3d p_180636_4_, Vec3d p_180636_5_)
|
||||
@@ -195,4 +196,16 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176426_a, field_176425_b});
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176426_a, field_176425_b});
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public java.util.List<net.minecraft.item.ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ {
|
||||
+ TileEntityPiston tileentitypiston = this.func_176422_e(world, pos);
|
||||
+ TileEntityPiston tileentitypiston = this.func_185589_c(world, pos);
|
||||
+ if (tileentitypiston != null)
|
||||
+ {
|
||||
+ IBlockState pushed = tileentitypiston.func_174927_b();
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockPotato.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockPotato.java
|
||||
@@ -22,13 +22,14 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
@@ -27,7 +27,7 @@
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
-
|
||||
|
||||
- if (!p_180653_1_.field_72995_K)
|
||||
- {
|
||||
- if (((Integer)p_180653_3_.func_177229_b(field_176488_a)).intValue() >= 7 && p_180653_1_.field_73012_v.nextInt(50) == 0)
|
||||
- {
|
||||
- func_180635_a(p_180653_1_, p_180653_2_, new ItemStack(Items.field_151170_bI));
|
||||
- }
|
||||
- }
|
||||
+ if (false && !p_180653_1_.field_72995_K) //Forge: Moved to getDrops
|
||||
{
|
||||
if (this.func_185525_y(p_180653_3_) && p_180653_1_.field_73012_v.nextInt(50) == 0)
|
||||
{
|
||||
@@ -40,4 +40,13 @@
|
||||
{
|
||||
return field_185534_a[((Integer)p_185496_1_.func_177229_b(this.func_185524_e())).intValue()];
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public java.util.List<net.minecraft.item.ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ public java.util.List<ItemStack> getDrops(net.minecraft.world.IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
|
||||
+ {
|
||||
+ java.util.List<ItemStack> ret = super.getDrops(world, pos, state, fortune);
|
||||
+ java.util.Random rand = world instanceof World ? ((World)world).field_73012_v : new java.util.Random();
|
||||
+ if (((Integer)state.func_177229_b(field_176488_a)) >= 7 && rand.nextInt(50) == 0)
|
||||
+ if (this.func_185525_y(state) && RANDOM.nextInt(50) == 0)
|
||||
+ ret.add(new ItemStack(Items.field_151170_bI));
|
||||
+ return ret;
|
||||
+ }
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockPumpkin.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockPumpkin.java
|
||||
@@ -115,7 +115,7 @@
|
||||
@@ -124,7 +124,7 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
- return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().field_149764_J.func_76222_j() && World.func_175683_a(p_176196_1_, p_176196_2_.func_177977_b());
|
||||
+ return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().func_176200_f(p_176196_1_, p_176196_2_) && World.func_175683_a(p_176196_1_, p_176196_2_.func_177977_b());
|
||||
- return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().field_149764_J.func_76222_j() && p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_185896_q();
|
||||
+ return p_176196_1_.func_180495_p(p_176196_2_).func_177230_c().func_176200_f(p_176196_1_, p_176196_2_) && p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).isSideSolid(p_176196_1_, p_176196_2_, EnumFacing.UP);
|
||||
}
|
||||
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
public IBlockState func_185499_a(IBlockState p_185499_1_, Rotation p_185499_2_)
|
||||
@@ -1,13 +1,13 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockQuartz.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockQuartz.java
|
||||
@@ -90,6 +90,26 @@
|
||||
return new BlockState(this, new IProperty[] {field_176335_a});
|
||||
@@ -110,6 +110,26 @@
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176335_a});
|
||||
}
|
||||
|
||||
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty prop : state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("variant") && prop.func_177699_b() == EnumType.class)
|
||||
+ {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRailBase.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRailBase.java
|
||||
@@ -31,7 +31,7 @@
|
||||
@@ -32,7 +32,7 @@
|
||||
public static boolean func_176563_d(IBlockState p_176563_0_)
|
||||
{
|
||||
Block block = p_176563_0_.func_177230_c();
|
||||
@@ -9,7 +9,46 @@
|
||||
}
|
||||
|
||||
protected BlockRailBase(boolean p_i45389_1_)
|
||||
@@ -175,6 +175,81 @@
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
- return p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_185896_q();
|
||||
+ return p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).isSideSolid(p_176196_1_, p_176196_2_.func_177977_b(), EnumFacing.UP);
|
||||
}
|
||||
|
||||
public void func_176213_c(World p_176213_1_, BlockPos p_176213_2_, IBlockState p_176213_3_)
|
||||
@@ -89,24 +89,24 @@
|
||||
BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_189540_1_.func_177229_b(this.func_176560_l());
|
||||
boolean flag = false;
|
||||
|
||||
- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).func_185896_q())
|
||||
+ if (!p_189540_2_.func_180495_p(p_189540_3_.func_177977_b()).isSideSolid(p_189540_2_, p_189540_3_.func_177977_b(), EnumFacing.UP))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
|
||||
- if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_189540_2_.func_180495_p(p_189540_3_.func_177974_f()).func_185896_q())
|
||||
+ if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_EAST && !p_189540_2_.func_180495_p(p_189540_3_.func_177974_f()).isSideSolid(p_189540_2_, p_189540_3_.func_177974_f(), EnumFacing.UP))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_189540_2_.func_180495_p(p_189540_3_.func_177976_e()).func_185896_q())
|
||||
+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_WEST && !p_189540_2_.func_180495_p(p_189540_3_.func_177976_e()).isSideSolid(p_189540_2_, p_189540_3_.func_177976_e(), EnumFacing.UP))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177978_c()).func_185896_q())
|
||||
+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_NORTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177978_c()).isSideSolid(p_189540_2_, p_189540_3_.func_177978_c(), EnumFacing.UP))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
- else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177968_d()).func_185896_q())
|
||||
+ else if (blockrailbase$enumraildirection == BlockRailBase.EnumRailDirection.ASCENDING_SOUTH && !p_189540_2_.func_180495_p(p_189540_3_.func_177968_d()).isSideSolid(p_189540_2_, p_189540_3_.func_177968_d(), EnumFacing.UP))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
@@ -161,6 +161,98 @@
|
||||
|
||||
public abstract IProperty<BlockRailBase.EnumRailDirection> func_176560_l();
|
||||
|
||||
@@ -18,7 +57,7 @@
|
||||
+ * Return true if the rail can make corners.
|
||||
+ * Used by placement logic.
|
||||
+ * @param world The world.
|
||||
+ * @param pod Block's position in world
|
||||
+ * @param pos Block's position in world
|
||||
+ * @return True if the rail can make corners.
|
||||
+ */
|
||||
+ public boolean isFlexibleRail(IBlockAccess world, BlockPos pos)
|
||||
@@ -30,7 +69,7 @@
|
||||
+ * Returns true if the rail can make up and down slopes.
|
||||
+ * Used by placement logic.
|
||||
+ * @param world The world.
|
||||
+ * @param pod Block's position in world
|
||||
+ * @param pos Block's position in world
|
||||
+ * @return True if the rail can make slopes.
|
||||
+ */
|
||||
+ public boolean canMakeSlopes(IBlockAccess world, BlockPos pos)
|
||||
@@ -39,10 +78,27 @@
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Return the rail's direction.
|
||||
+ * Can be used to make the cart think the rail is a different shape,
|
||||
+ * for example when making diamond junctions or switches.
|
||||
+ * The cart parameter will often be null unless it it called from EntityMinecart.
|
||||
+ *
|
||||
+ * @param world The world.
|
||||
+ * @param pos Block's position in world
|
||||
+ * @param state The BlockState
|
||||
+ * @param cart The cart asking for the metadata, null if it is not called by EntityMinecart.
|
||||
+ * @return The direction.
|
||||
+ */
|
||||
+ public EnumRailDirection getRailDirection(IBlockAccess world, BlockPos pos, IBlockState state, @javax.annotation.Nullable net.minecraft.entity.item.EntityMinecart cart)
|
||||
+ {
|
||||
+ return state.func_177229_b(func_176560_l());
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Returns the max speed of the rail at the specified position.
|
||||
+ * @param world The world.
|
||||
+ * @param cart The cart on the rail, may be null.
|
||||
+ * @param pod Block's position in world
|
||||
+ * @param pos Block's position in world
|
||||
+ * @return The max speed of the current rail.
|
||||
+ */
|
||||
+ public float getRailMaxSpeed(World world, net.minecraft.entity.item.EntityMinecart cart, BlockPos pos)
|
||||
@@ -55,7 +111,7 @@
|
||||
+ * It is called once per update tick that the minecart is on the rail.
|
||||
+ * @param world The world.
|
||||
+ * @param cart The cart on the rail.
|
||||
+ * @param pod Block's position in world
|
||||
+ * @param pos Block's position in world
|
||||
+ */
|
||||
+ public void onMinecartPass(World world, net.minecraft.entity.item.EntityMinecart cart, BlockPos pos)
|
||||
+ {
|
||||
@@ -75,7 +131,7 @@
|
||||
+ public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
|
||||
+ {
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ for (IProperty prop : (java.util.Set<IProperty>)state.func_177228_b().keySet())
|
||||
+ for (IProperty prop : state.func_177228_b().keySet())
|
||||
+ {
|
||||
+ if (prop.func_177701_a().equals("shape"))
|
||||
+ {
|
||||
@@ -91,7 +147,7 @@
|
||||
public static enum EnumRailDirection implements IStringSerializable
|
||||
{
|
||||
NORTH_SOUTH(0, "north_south"),
|
||||
@@ -245,6 +320,7 @@
|
||||
@@ -231,6 +323,7 @@
|
||||
private IBlockState field_180366_e;
|
||||
private final boolean field_150656_f;
|
||||
private final List<BlockPos> field_150657_g = Lists.<BlockPos>newArrayList();
|
||||
@@ -99,17 +155,19 @@
|
||||
|
||||
public Rail(World p_i45739_2_, BlockPos p_i45739_3_, IBlockState p_i45739_4_)
|
||||
{
|
||||
@@ -253,7 +329,8 @@
|
||||
@@ -238,8 +331,9 @@
|
||||
this.field_180367_c = p_i45739_3_;
|
||||
this.field_180366_e = p_i45739_4_;
|
||||
this.field_180365_d = (BlockRailBase)p_i45739_4_.func_177230_c();
|
||||
BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_i45739_4_.func_177229_b(BlockRailBase.this.func_176560_l());
|
||||
- BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = (BlockRailBase.EnumRailDirection)p_i45739_4_.func_177229_b(this.field_180365_d.func_176560_l());
|
||||
- this.field_150656_f = this.field_180365_d.field_150053_a;
|
||||
+ BlockRailBase.EnumRailDirection blockrailbase$enumraildirection = field_180365_d.getRailDirection(p_i45739_2_, p_i45739_3_, p_i45739_4_, null);
|
||||
+ this.field_150656_f = !this.field_180365_d.isFlexibleRail(p_i45739_2_, p_i45739_3_);
|
||||
+ canMakeSlopes = this.field_180365_d.canMakeSlopes(p_i45739_2_, p_i45739_3_);
|
||||
+ this.canMakeSlopes = this.field_180365_d.canMakeSlopes(p_i45739_2_, p_i45739_3_);
|
||||
this.func_180360_a(blockrailbase$enumraildirection);
|
||||
}
|
||||
|
||||
@@ -439,7 +516,7 @@
|
||||
@@ -431,7 +525,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +176,7 @@
|
||||
{
|
||||
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a()))
|
||||
{
|
||||
@@ -452,7 +529,7 @@
|
||||
@@ -444,7 +538,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +185,7 @@
|
||||
{
|
||||
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos3.func_177984_a()))
|
||||
{
|
||||
@@ -595,7 +672,7 @@
|
||||
@@ -587,7 +681,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +194,7 @@
|
||||
{
|
||||
if (BlockRailBase.func_176562_d(this.field_150660_b, blockpos.func_177984_a()))
|
||||
{
|
||||
@@ -608,7 +685,7 @@
|
||||
@@ -600,7 +694,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRailDetector.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRailDetector.java
|
||||
@@ -156,6 +156,8 @@
|
||||
{
|
||||
if (((Boolean)p_180641_1_.func_177229_b(field_176574_M)).booleanValue())
|
||||
{
|
||||
+ List<EntityMinecart> carts = this.func_176571_a(p_180641_2_, p_180641_3_, EntityMinecart.class);
|
||||
+ if (!carts.isEmpty() && carts.get(0).getComparatorLevel() > -1) return carts.get(0).getComparatorLevel();
|
||||
List<EntityMinecartCommandBlock> list = this.<EntityMinecartCommandBlock>func_176571_a(p_180641_2_, p_180641_3_, EntityMinecartCommandBlock.class, new Predicate[0]);
|
||||
|
||||
if (!list.isEmpty())
|
||||
@@ -1,7 +1,7 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneComparator.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneComparator.java
|
||||
@@ -295,6 +295,21 @@
|
||||
return this.func_176223_P().func_177226_a(field_176387_N, p_180642_8_.func_174811_aO().func_176734_d()).func_177226_a(field_176464_a, Boolean.valueOf(false)).func_177226_a(field_176463_b, BlockRedstoneComparator.Mode.COMPARE);
|
||||
@@ -312,6 +312,21 @@
|
||||
return this.func_176223_P().func_177226_a(field_185512_D, p_180642_8_.func_174811_aO().func_176734_d()).func_177226_a(field_176464_a, Boolean.valueOf(false)).func_177226_a(field_176463_b, BlockRedstoneComparator.Mode.COMPARE);
|
||||
}
|
||||
|
||||
+ @Override
|
||||
@@ -9,7 +9,7 @@
|
||||
+ {
|
||||
+ if (pos.func_177956_o() == neighbor.func_177956_o() && world instanceof World)
|
||||
+ {
|
||||
+ func_176204_a((World)world, pos, world.func_180495_p(pos), world.func_180495_p(neighbor).func_177230_c());
|
||||
+ func_189540_a(world.func_180495_p(pos), (World)world, pos, world.func_180495_p(neighbor).func_177230_c());
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneDiode.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneDiode.java
|
||||
@@ -198,6 +198,8 @@
|
||||
@@ -204,6 +204,8 @@
|
||||
{
|
||||
EnumFacing enumfacing = (EnumFacing)p_176400_3_.func_177229_b(field_176387_N);
|
||||
EnumFacing enumfacing = (EnumFacing)p_176400_3_.func_177229_b(field_185512_D);
|
||||
BlockPos blockpos = p_176400_2_.func_177972_a(enumfacing.func_176734_d());
|
||||
+ if(net.minecraftforge.event.ForgeEventFactory.onNeighborNotify(p_176400_1_, p_176400_2_, p_176400_1_.func_180495_p(p_176400_2_), java.util.EnumSet.of(enumfacing.func_176734_d())).isCanceled())
|
||||
+ return;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneOre.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneOre.java
|
||||
@@ -91,12 +91,16 @@
|
||||
@@ -94,12 +94,16 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
- if (this.func_180660_a(p_180653_3_, p_180653_1_.field_73012_v, p_180653_5_) != Item.func_150898_a(this))
|
||||
+ @Override
|
||||
+ public int getExpDrop(net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ public int getExpDrop(IBlockState state, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
|
||||
+ {
|
||||
+ if (this.func_180660_a(world.func_180495_p(pos), RANDOM, fortune) != Item.func_150898_a(this))
|
||||
+ if (this.func_180660_a(state, RANDOM, fortune) != Item.func_150898_a(this))
|
||||
{
|
||||
- int i = 1 + p_180653_1_.field_73012_v.nextInt(5);
|
||||
- this.func_180637_b(p_180653_1_, p_180653_2_, i);
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneTorch.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneTorch.java
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
public class BlockRedstoneTorch extends BlockTorch
|
||||
{
|
||||
- private static final Map<World, List<BlockRedstoneTorch.Toggle>> field_150112_b = Maps.<World, List<BlockRedstoneTorch.Toggle>>newHashMap();
|
||||
+ private static final Map<World, List<BlockRedstoneTorch.Toggle>> field_150112_b = new java.util.WeakHashMap<World, List<BlockRedstoneTorch.Toggle>>(); // FORGE - fix vanilla MC-101233
|
||||
private final boolean field_150113_a;
|
||||
|
||||
private boolean func_176598_a(World p_176598_1_, BlockPos p_176598_2_, boolean p_176598_3_)
|
||||
@@ -1,59 +1,55 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneWire.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneWire.java
|
||||
@@ -58,10 +58,10 @@
|
||||
@@ -98,15 +98,15 @@
|
||||
BlockPos blockpos = p_176341_2_.func_177972_a(p_176341_3_);
|
||||
Block block = p_176341_1_.func_180495_p(p_176341_2_.func_177972_a(p_176341_3_)).func_177230_c();
|
||||
IBlockState iblockstate = p_176341_1_.func_180495_p(p_176341_2_.func_177972_a(p_176341_3_));
|
||||
|
||||
- if (!func_176343_a(p_176341_1_.func_180495_p(blockpos), p_176341_3_) && (block.func_149637_q() || !func_176346_d(p_176341_1_.func_180495_p(blockpos.func_177977_b()))))
|
||||
+ if (!canRestoneConnect(p_176341_1_, blockpos, p_176341_3_) && (block.func_149637_q() || !canRestoneConnect(p_176341_1_, blockpos.func_177977_b(), null)))
|
||||
- if (!func_176343_a(p_176341_1_.func_180495_p(blockpos), p_176341_3_) && (iblockstate.func_185915_l() || !func_176346_d(p_176341_1_.func_180495_p(blockpos.func_177977_b()))))
|
||||
+ if (!canConnectTo(p_176341_1_.func_180495_p(blockpos), p_176341_3_, p_176341_1_, blockpos) && (iblockstate.func_185915_l() || !func_176340_e(p_176341_1_, blockpos.func_177977_b())))
|
||||
{
|
||||
Block block1 = p_176341_1_.func_180495_p(p_176341_2_.func_177984_a()).func_177230_c();
|
||||
- return !block1.func_149637_q() && block.func_149637_q() && func_176346_d(p_176341_1_.func_180495_p(blockpos.func_177984_a())) ? BlockRedstoneWire.EnumAttachPosition.UP : BlockRedstoneWire.EnumAttachPosition.NONE;
|
||||
+ return !block1.func_149637_q() && block.func_149637_q() && canRestoneConnect(p_176341_1_, blockpos.func_177984_a(), null) ? BlockRedstoneWire.EnumAttachPosition.UP : BlockRedstoneWire.EnumAttachPosition.NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -359,35 +359,24 @@
|
||||
Block block = iblockstate.func_177230_c();
|
||||
boolean flag = block.func_149721_r();
|
||||
boolean flag1 = p_176339_1_.func_180495_p(p_176339_2_.func_177984_a()).func_177230_c().func_149721_r();
|
||||
- return !flag1 && flag && func_176340_e(p_176339_1_, blockpos.func_177984_a()) ? true : (func_176343_a(iblockstate, p_176339_3_) ? true : (block == Blocks.field_150416_aS && iblockstate.func_177229_b(BlockRedstoneDiode.field_176387_N) == p_176339_3_ ? true : !flag && func_176340_e(p_176339_1_, blockpos.func_177977_b())));
|
||||
+ return !flag1 && flag && canRestoneConnect(p_176339_1_, blockpos.func_177984_a(), null) ? true : (canRestoneConnect(p_176339_1_, blockpos, p_176339_3_) ? true : (block == Blocks.field_150416_aS && iblockstate.func_177229_b(BlockRedstoneDiode.field_176387_N) == p_176339_3_ ? true : !flag && canRestoneConnect(p_176339_1_, blockpos.func_177977_b(), null)));
|
||||
IBlockState iblockstate1 = p_176341_1_.func_180495_p(p_176341_2_.func_177984_a());
|
||||
|
||||
if (!iblockstate1.func_185915_l())
|
||||
{
|
||||
- boolean flag = p_176341_1_.func_180495_p(blockpos).func_185896_q() || p_176341_1_.func_180495_p(blockpos).func_177230_c() == Blocks.field_150426_aN;
|
||||
+ boolean flag = p_176341_1_.func_180495_p(blockpos).isSideSolid(p_176341_1_, blockpos, EnumFacing.UP) || p_176341_1_.func_180495_p(blockpos).func_177230_c() == Blocks.field_150426_aN;
|
||||
|
||||
- if (flag && func_176346_d(p_176341_1_.func_180495_p(blockpos.func_177984_a())))
|
||||
+ if (flag && func_176340_e(p_176341_1_, blockpos.func_177984_a()))
|
||||
{
|
||||
if (iblockstate.func_185898_k())
|
||||
{
|
||||
@@ -409,21 +409,16 @@
|
||||
IBlockState iblockstate = p_176339_1_.func_180495_p(blockpos);
|
||||
boolean flag = iblockstate.func_185915_l();
|
||||
boolean flag1 = p_176339_1_.func_180495_p(p_176339_2_.func_177984_a()).func_185915_l();
|
||||
- return !flag1 && flag && func_176340_e(p_176339_1_, blockpos.func_177984_a()) ? true : (func_176343_a(iblockstate, p_176339_3_) ? true : (iblockstate.func_177230_c() == Blocks.field_150416_aS && iblockstate.func_177229_b(BlockRedstoneDiode.field_185512_D) == p_176339_3_ ? true : !flag && func_176340_e(p_176339_1_, blockpos.func_177977_b())));
|
||||
+ return !flag1 && flag && func_176340_e(p_176339_1_, blockpos.func_177984_a()) ? true : (canConnectTo(iblockstate, p_176339_3_, p_176339_1_, p_176339_2_) ? true : (iblockstate.func_177230_c() == Blocks.field_150416_aS && iblockstate.func_177229_b(BlockRedstoneDiode.field_185512_D) == p_176339_3_ ? true : !flag && func_176340_e(p_176339_1_, blockpos.func_177977_b())));
|
||||
}
|
||||
|
||||
- protected static boolean func_176340_e(IBlockAccess p_176340_0_, BlockPos p_176340_1_)
|
||||
+ protected static boolean canRestoneConnect(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
protected static boolean func_176340_e(IBlockAccess p_176340_0_, BlockPos p_176340_1_)
|
||||
{
|
||||
- return func_176346_d(p_176340_0_.func_180495_p(p_176340_1_));
|
||||
- }
|
||||
-
|
||||
+ return canConnectTo(p_176340_0_.func_180495_p(p_176340_1_), null, p_176340_0_, p_176340_1_);
|
||||
}
|
||||
|
||||
- protected static boolean func_176346_d(IBlockState p_176346_0_)
|
||||
- {
|
||||
+ protected static boolean canConnectTo(IBlockState p_176343_0_, @Nullable EnumFacing p_176343_1_, IBlockAccess world, BlockPos pos )
|
||||
{
|
||||
- return func_176343_a(p_176346_0_, (EnumFacing)null);
|
||||
- }
|
||||
-
|
||||
- protected static boolean func_176343_a(IBlockState p_176343_0_, EnumFacing p_176343_1_)
|
||||
- protected static boolean func_176343_a(IBlockState p_176343_0_, @Nullable EnumFacing p_176343_1_)
|
||||
- {
|
||||
- Block block = p_176343_0_.func_177230_c();
|
||||
-
|
||||
- if (block == Blocks.field_150488_af)
|
||||
+ IBlockState state = world.func_180495_p(pos);
|
||||
+ if (state.func_177230_c() == Blocks.field_150488_af)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- else if (Blocks.field_150413_aR.func_149907_e(block))
|
||||
+ else if (Blocks.field_150413_aR.func_149907_e(state.func_177230_c()))
|
||||
{
|
||||
- EnumFacing enumfacing = (EnumFacing)p_176343_0_.func_177229_b(BlockRedstoneRepeater.field_176387_N);
|
||||
- return enumfacing == p_176343_1_ || enumfacing.func_176734_d() == p_176343_1_;
|
||||
+ EnumFacing direction = (EnumFacing)state.func_177229_b(BlockRedstoneRepeater.field_176387_N);
|
||||
+ return direction == side || direction.func_176734_d() == side;
|
||||
Block block = p_176343_0_.func_177230_c();
|
||||
|
||||
if (block == Blocks.field_150488_af)
|
||||
@@ -437,7 +432,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- return block.func_149744_f() && p_176343_1_ != null;
|
||||
+ return state.func_177230_c().canConnectRedstone(world, pos, side);
|
||||
- return p_176343_0_.func_185897_m() && p_176343_1_ != null;
|
||||
+ return p_176343_0_.func_177230_c().canConnectRedstone(p_176343_0_, world, pos, p_176343_1_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockReed.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockReed.java
|
||||
@@ -18,7 +18,7 @@
|
||||
@@ -20,7 +20,7 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -8,20 +8,40 @@
|
||||
+public class BlockReed extends Block implements net.minecraftforge.common.IPlantable
|
||||
{
|
||||
public static final PropertyInteger field_176355_a = PropertyInteger.func_177719_a("age", 0, 15);
|
||||
protected static final AxisAlignedBB field_185701_b = new AxisAlignedBB(0.125D, 0.0D, 0.125D, 0.875D, 1.0D, 0.875D);
|
||||
@@ -54,6 +54,8 @@
|
||||
{
|
||||
int j = ((Integer)p_180650_3_.func_177229_b(field_176355_a)).intValue();
|
||||
|
||||
+ if(net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, p_180650_2_, p_180650_3_, true))
|
||||
+ {
|
||||
if (j == 15)
|
||||
{
|
||||
p_180650_1_.func_175656_a(p_180650_2_.func_177984_a(), this.func_176223_P());
|
||||
@@ -63,6 +65,8 @@
|
||||
{
|
||||
p_180650_1_.func_180501_a(p_180650_2_, p_180650_3_.func_177226_a(field_176355_a, Integer.valueOf(j + 1)), 4);
|
||||
}
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,7 +74,9 @@
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
Block block = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_177230_c();
|
||||
+ if (block.canSustainPlant(p_176196_1_, p_176196_2_.func_177977_b(), EnumFacing.UP, this)) return true;
|
||||
- Block block = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b()).func_177230_c();
|
||||
+ IBlockState state = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b());
|
||||
+ Block block = state.func_177230_c();
|
||||
+ if (block.canSustainPlant(state, p_176196_1_, p_176196_2_.func_177977_b(), EnumFacing.UP, this)) return true;
|
||||
|
||||
if (block == this)
|
||||
{
|
||||
@@ -164,4 +165,15 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176355_a});
|
||||
@@ -165,6 +171,17 @@
|
||||
return ((Integer)p_176201_1_.func_177229_b(field_176355_a)).intValue();
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override
|
||||
+ public net.minecraftforge.common.EnumPlantType getPlantType(IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
@@ -32,4 +52,7 @@
|
||||
+ {
|
||||
+ return this.func_176223_P();
|
||||
+ }
|
||||
}
|
||||
+
|
||||
protected BlockStateContainer func_180661_e()
|
||||
{
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176355_a});
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockRotatedPillar.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockRotatedPillar.java
|
||||
@@ -18,4 +18,18 @@
|
||||
{
|
||||
@@ -28,6 +28,21 @@
|
||||
super(p_i46385_1_, p_i46385_2_);
|
||||
}
|
||||
+
|
||||
+ public boolean rotateBlock(net.minecraft.world.World world, net.minecraft.util.BlockPos pos, EnumFacing axis)
|
||||
|
||||
+ @Override
|
||||
+ public boolean rotateBlock(net.minecraft.world.World world, BlockPos pos, EnumFacing axis)
|
||||
+ {
|
||||
+ net.minecraft.block.state.IBlockState state = world.func_180495_p(pos);
|
||||
+ for (net.minecraft.block.properties.IProperty<?> prop : state.func_177228_b().keySet())
|
||||
@@ -18,4 +18,7 @@
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
+
|
||||
public IBlockState func_185499_a(IBlockState p_185499_1_, Rotation p_185499_2_)
|
||||
{
|
||||
switch (p_185499_2_)
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockSapling.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockSapling.java
|
||||
@@ -71,6 +71,7 @@
|
||||
@@ -77,6 +77,7 @@
|
||||
|
||||
public void func_176476_e(World p_176476_1_, BlockPos p_176476_2_, IBlockState p_176476_3_, Random p_176476_4_)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockSkull.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockSkull.java
|
||||
@@ -121,10 +121,6 @@
|
||||
return tileentity instanceof TileEntitySkull ? ((TileEntitySkull)tileentity).func_145904_a() : super.func_176222_j(p_176222_1_, p_176222_2_);
|
||||
@@ -118,10 +118,6 @@
|
||||
return new ItemStack(Items.field_151144_bL, 1, i);
|
||||
}
|
||||
|
||||
- public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
@@ -11,7 +11,7 @@
|
||||
public void func_176208_a(World p_176208_1_, BlockPos p_176208_2_, IBlockState p_176208_3_, EntityPlayer p_176208_4_)
|
||||
{
|
||||
if (p_176208_4_.field_71075_bZ.field_75098_d)
|
||||
@@ -132,13 +128,18 @@
|
||||
@@ -129,13 +125,18 @@
|
||||
p_176208_3_ = p_176208_3_.func_177226_a(field_176417_b, Boolean.valueOf(true));
|
||||
p_176208_1_.func_180501_a(p_176208_2_, p_176208_3_, 4);
|
||||
}
|
||||
@@ -31,16 +31,16 @@
|
||||
{
|
||||
if (!((Boolean)p_180663_3_.func_177229_b(field_176417_b)).booleanValue())
|
||||
{
|
||||
@@ -147,7 +148,7 @@
|
||||
@@ -144,7 +145,7 @@
|
||||
if (tileentity instanceof TileEntitySkull)
|
||||
{
|
||||
TileEntitySkull tileentityskull = (TileEntitySkull)tileentity;
|
||||
- ItemStack itemstack = new ItemStack(Items.field_151144_bL, 1, this.func_176222_j(p_180663_1_, p_180663_2_));
|
||||
- ItemStack itemstack = this.func_185473_a(p_180663_1_, p_180663_2_, p_180663_3_);
|
||||
+ ItemStack itemstack = new ItemStack(Items.field_151144_bL, 1, tileentityskull.func_145904_a());
|
||||
|
||||
if (tileentityskull.func_145904_a() == 3 && tileentityskull.func_152108_a() != null)
|
||||
{
|
||||
@@ -157,12 +158,11 @@
|
||||
@@ -154,12 +155,11 @@
|
||||
itemstack.func_77978_p().func_74782_a("SkullOwner", nbttagcompound);
|
||||
}
|
||||
|
||||
@@ -54,4 +54,4 @@
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
|
||||
@Nullable
|
||||
@@ -1,38 +1,38 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockSlab.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockSlab.java
|
||||
@@ -91,6 +91,17 @@
|
||||
@@ -50,6 +50,19 @@
|
||||
return this.func_176552_j();
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ {
|
||||
+ if ( func_149662_c() )
|
||||
+ public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ {
|
||||
+ if (net.minecraftforge.common.ForgeModContainer.disableStairSlabCulling)
|
||||
+ return super.doesSideBlockRendering(state, world, pos, face);
|
||||
+
|
||||
+ if ( state.func_185914_p() )
|
||||
+ return true;
|
||||
+
|
||||
+ // face is on the block being rendered, not this block.
|
||||
+ EnumBlockHalf side = world.func_180495_p(pos).func_177229_b(field_176554_a);
|
||||
+ return (side == EnumBlockHalf.TOP && face == EnumFacing.DOWN) || (side == EnumBlockHalf.BOTTOM && face == EnumFacing.UP);
|
||||
+
|
||||
+ EnumBlockHalf side = state.func_177229_b(field_176554_a);
|
||||
+ return (side == EnumBlockHalf.TOP && face == EnumFacing.UP) || (side == EnumBlockHalf.BOTTOM && face == EnumFacing.DOWN);
|
||||
+ }
|
||||
+
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
{
|
||||
IBlockState iblockstate = super.func_180642_a(p_180642_1_, p_180642_2_, p_180642_3_, p_180642_4_, p_180642_5_, p_180642_6_, p_180642_7_, p_180642_8_).func_177226_a(field_176554_a, BlockSlab.EnumBlockHalf.BOTTOM);
|
||||
@@ -118,15 +129,8 @@
|
||||
@@ -77,13 +90,14 @@
|
||||
{
|
||||
return false;
|
||||
}
|
||||
- else
|
||||
- {
|
||||
- BlockPos blockpos = p_176225_2_.func_177972_a(p_176225_3_.func_176734_d());
|
||||
- IBlockState iblockstate = p_176225_1_.func_180495_p(p_176225_2_);
|
||||
- IBlockState iblockstate1 = p_176225_1_.func_180495_p(blockpos);
|
||||
- boolean flag = func_150003_a(iblockstate.func_177230_c()) && iblockstate.func_177229_b(field_176554_a) == BlockSlab.EnumBlockHalf.TOP;
|
||||
- boolean flag1 = func_150003_a(iblockstate1.func_177230_c()) && iblockstate1.func_177229_b(field_176554_a) == BlockSlab.EnumBlockHalf.TOP;
|
||||
- return flag1 ? (p_176225_3_ == EnumFacing.DOWN ? true : (p_176225_3_ == EnumFacing.UP && super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_) ? true : !func_150003_a(iblockstate.func_177230_c()) || !flag)) : (p_176225_3_ == EnumFacing.UP ? true : (p_176225_3_ == EnumFacing.DOWN && super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_) ? true : !func_150003_a(iblockstate.func_177230_c()) || flag));
|
||||
- }
|
||||
+ // additional logic breaks doesSideBlockRendering and is no longer useful.
|
||||
+ return super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_);
|
||||
+ else if (false) // Forge: Additional logic breaks doesSideBlockRendering and is no longer useful.
|
||||
{
|
||||
IBlockState iblockstate = p_176225_2_.func_180495_p(p_176225_3_.func_177972_a(p_176225_4_));
|
||||
boolean flag = func_185675_i(iblockstate) && iblockstate.func_177229_b(field_176554_a) == BlockSlab.EnumBlockHalf.TOP;
|
||||
boolean flag1 = func_185675_i(p_176225_1_) && p_176225_1_.func_177229_b(field_176554_a) == BlockSlab.EnumBlockHalf.TOP;
|
||||
return flag1 ? (p_176225_4_ == EnumFacing.DOWN ? true : (p_176225_4_ == EnumFacing.UP && super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_, p_176225_4_) ? true : !func_185675_i(iblockstate) || !flag)) : (p_176225_4_ == EnumFacing.UP ? true : (p_176225_4_ == EnumFacing.DOWN && super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_, p_176225_4_) ? true : !func_185675_i(iblockstate) || flag));
|
||||
}
|
||||
+ return super.func_176225_a(p_176225_1_, p_176225_2_, p_176225_3_, p_176225_4_);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@@ -1,15 +1,15 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockSnow.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockSnow.java
|
||||
@@ -79,7 +79,7 @@
|
||||
@@ -75,7 +75,7 @@
|
||||
{
|
||||
IBlockState iblockstate = p_176196_1_.func_180495_p(p_176196_2_.func_177977_b());
|
||||
Block block = iblockstate.func_177230_c();
|
||||
- return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (block.func_149688_o() == Material.field_151584_j ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : block.func_149662_c() && block.field_149764_J.func_76230_c())) : false;
|
||||
+ return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (block.isLeaves(p_176196_1_, p_176196_2_.func_177977_b()) ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : block.func_149662_c() && block.field_149764_J.func_76230_c())) : false;
|
||||
- return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_185904_a() == Material.field_151584_j ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
|
||||
+ return block != Blocks.field_150432_aD && block != Blocks.field_150403_cj ? (iblockstate.func_177230_c().isLeaves(iblockstate, p_176196_1_, p_176196_2_.func_177977_b()) ? true : (block == this && ((Integer)iblockstate.func_177229_b(field_176315_a)).intValue() >= 7 ? true : iblockstate.func_185914_p() && iblockstate.func_185904_a().func_76230_c())) : false;
|
||||
}
|
||||
|
||||
public void func_176204_a(World p_176204_1_, BlockPos p_176204_2_, IBlockState p_176204_3_, Block p_176204_4_)
|
||||
@@ -91,7 +91,6 @@
|
||||
public void func_189540_a(IBlockState p_189540_1_, World p_189540_2_, BlockPos p_189540_3_, Block p_189540_4_)
|
||||
@@ -87,7 +87,6 @@
|
||||
{
|
||||
if (!this.func_176196_c(p_176314_1_, p_176314_2_))
|
||||
{
|
||||
@@ -17,18 +17,18 @@
|
||||
p_176314_1_.func_175698_g(p_176314_2_);
|
||||
return false;
|
||||
}
|
||||
@@ -103,9 +102,8 @@
|
||||
@@ -99,9 +98,8 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Items.field_151126_ay, ((Integer)p_180657_4_.func_177229_b(field_176315_a)).intValue() + 1, 0));
|
||||
+ super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
+ super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_, p_180657_6_);
|
||||
p_180657_1_.func_175698_g(p_180657_3_);
|
||||
- p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
- p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
}
|
||||
|
||||
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
|
||||
@@ -115,14 +113,13 @@
|
||||
@Nullable
|
||||
@@ -112,14 +110,13 @@
|
||||
|
||||
public int func_149745_a(Random p_149745_1_)
|
||||
{
|
||||
@@ -44,10 +44,12 @@
|
||||
p_180650_1_.func_175698_g(p_180650_2_);
|
||||
}
|
||||
}
|
||||
@@ -152,4 +149,6 @@
|
||||
{
|
||||
return new BlockState(this, new IProperty[] {field_176315_a});
|
||||
@@ -153,6 +150,8 @@
|
||||
return ((Integer)p_176201_1_.func_177229_b(field_176315_a)).intValue() - 1;
|
||||
}
|
||||
+
|
||||
|
||||
+ @Override public int quantityDropped(IBlockState state, int fortune, Random random){ return ((Integer)state.func_177229_b(field_176315_a)) + 1; }
|
||||
}
|
||||
+
|
||||
protected BlockStateContainer func_180661_e()
|
||||
{
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176315_a});
|
||||
@@ -1,22 +1,32 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockStairs.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockStairs.java
|
||||
@@ -68,6 +68,19 @@
|
||||
return false;
|
||||
@@ -445,6 +445,29 @@
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176309_a, field_176308_b, field_176310_M});
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ {
|
||||
+ if ( func_149662_c() )
|
||||
+ public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face)
|
||||
+ {
|
||||
+ if (net.minecraftforge.common.ForgeModContainer.disableStairSlabCulling)
|
||||
+ return super.doesSideBlockRendering(state, world, pos, face);
|
||||
+
|
||||
+ if ( state.func_185914_p() )
|
||||
+ return true;
|
||||
+
|
||||
+ // face is on the block being rendered, not this block.
|
||||
+ IBlockState iblockstate = world.func_180495_p(pos);
|
||||
+ EnumHalf half = iblockstate.func_177229_b(field_176308_b);
|
||||
+ EnumFacing side = iblockstate.func_177229_b(field_176309_a);
|
||||
+ return side == face.func_176734_d() || (half == EnumHalf.TOP && face == EnumFacing.DOWN) || (half == EnumHalf.BOTTOM && face == EnumFacing.UP);
|
||||
+
|
||||
+ state = this.func_176221_a(state, world, pos);
|
||||
+
|
||||
+ EnumHalf half = state.func_177229_b(field_176308_b);
|
||||
+ EnumFacing side = state.func_177229_b(field_176309_a);
|
||||
+ EnumShape shape = state.func_177229_b(field_176310_M);
|
||||
+ if (face == EnumFacing.UP) return half == EnumHalf.TOP;
|
||||
+ if (face == EnumFacing.DOWN) return half == EnumHalf.BOTTOM;
|
||||
+ if (shape == EnumShape.OUTER_LEFT || shape == EnumShape.OUTER_RIGHT) return false;
|
||||
+ if (face == side) return true;
|
||||
+ if (shape == EnumShape.INNER_LEFT && face.func_176746_e() == side) return true;
|
||||
+ if (shape == EnumShape.INNER_RIGHT && face.func_176735_f() == side) return true;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
public boolean func_149686_d()
|
||||
public static enum EnumHalf implements IStringSerializable
|
||||
{
|
||||
return false;
|
||||
TOP("top"),
|
||||
@@ -0,0 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockStaticLiquid.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockStaticLiquid.java
|
||||
@@ -52,7 +52,7 @@
|
||||
{
|
||||
blockpos = blockpos.func_177982_a(p_180650_4_.nextInt(3) - 1, 1, p_180650_4_.nextInt(3) - 1);
|
||||
|
||||
- if (blockpos.func_177956_o() >= 0 && blockpos.func_177956_o() < 256 && !p_180650_1_.func_175667_e(blockpos))
|
||||
+ if (blockpos.func_177956_o() >= 0 && blockpos.func_177956_o() < p_180650_1_.func_72800_K() && !p_180650_1_.func_175667_e(blockpos))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -1,15 +1,33 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockStem.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockStem.java
|
||||
@@ -94,7 +94,7 @@
|
||||
@@ -70,7 +70,7 @@
|
||||
{
|
||||
float f = BlockCrops.func_180672_a(this, p_180650_1_, p_180650_2_);
|
||||
|
||||
- if (p_180650_4_.nextInt((int)(25.0F / f) + 1) == 0)
|
||||
+ if(net.minecraftforge.common.ForgeHooks.onCropsGrowPre(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_4_.nextInt((int)(25.0F / f) + 1) == 0))
|
||||
{
|
||||
int i = ((Integer)p_180650_3_.func_177229_b(field_176484_a)).intValue();
|
||||
|
||||
@@ -90,13 +90,15 @@
|
||||
}
|
||||
|
||||
p_180650_2_ = p_180650_2_.func_177972_a(EnumFacing.Plane.HORIZONTAL.func_179518_a(p_180650_4_));
|
||||
Block block = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).func_177230_c();
|
||||
- Block block = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b()).func_177230_c();
|
||||
+ IBlockState soil = p_180650_1_.func_180495_p(p_180650_2_.func_177977_b());
|
||||
+ Block block = soil.func_177230_c();
|
||||
|
||||
- if (p_180650_1_.func_180495_p(p_180650_2_).func_177230_c().field_149764_J == Material.field_151579_a && (block == Blocks.field_150458_ak || block == Blocks.field_150346_d || block == Blocks.field_150349_c))
|
||||
+ if (p_180650_1_.func_175623_d(p_180650_2_) && (block.canSustainPlant(p_180650_1_, p_180650_2_.func_177977_b(), EnumFacing.UP, this) || block == Blocks.field_150346_d || block == Blocks.field_150349_c))
|
||||
+ if (p_180650_1_.func_175623_d(p_180650_2_) && (block.canSustainPlant(soil, p_180650_1_, p_180650_2_.func_177977_b(), EnumFacing.UP, this) || block == Blocks.field_150346_d || block == Blocks.field_150349_c))
|
||||
{
|
||||
p_180650_1_.func_175656_a(p_180650_2_, this.field_149877_a.func_176223_P());
|
||||
}
|
||||
@@ -148,24 +148,29 @@
|
||||
}
|
||||
+ net.minecraftforge.common.ForgeHooks.onCropsGrowPost(p_180650_1_, p_180650_2_, p_180650_3_, p_180650_1_.func_180495_p(p_180650_2_));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,24 +112,29 @@
|
||||
public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_)
|
||||
{
|
||||
super.func_180653_a(p_180653_1_, p_180653_2_, p_180653_3_, p_180653_4_, p_180653_5_);
|
||||
@@ -42,4 +60,4 @@
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
protected Item func_176481_j()
|
||||
@Nullable
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockTallGrass.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockTallGrass.java
|
||||
@@ -23,7 +23,7 @@
|
||||
@@ -24,7 +24,7 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
+public class BlockTallGrass extends BlockBush implements IGrowable, net.minecraftforge.common.IShearable
|
||||
{
|
||||
public static final PropertyEnum<BlockTallGrass.EnumType> field_176497_a = PropertyEnum.<BlockTallGrass.EnumType>func_177709_a("type", BlockTallGrass.EnumType.class);
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
protected static final AxisAlignedBB field_185522_c = new AxisAlignedBB(0.09999999403953552D, 0.0D, 0.09999999403953552D, 0.8999999761581421D, 0.800000011920929D, 0.8999999761581421D);
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
public boolean func_180671_f(World p_180671_1_, BlockPos p_180671_2_, IBlockState p_180671_3_)
|
||||
{
|
||||
- return this.func_149854_a(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()).func_177230_c());
|
||||
- return this.func_185514_i(p_180671_1_.func_180495_p(p_180671_2_.func_177977_b()));
|
||||
+ return super.func_180671_f(p_180671_1_, p_180671_2_, p_180671_3_);
|
||||
}
|
||||
|
||||
public boolean func_176200_f(World p_176200_1_, BlockPos p_176200_2_)
|
||||
public boolean func_176200_f(IBlockAccess p_176200_1_, BlockPos p_176200_2_)
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
@Nullable
|
||||
public Item func_180660_a(IBlockState p_180660_1_, Random p_180660_2_, int p_180660_3_)
|
||||
{
|
||||
- return p_180660_2_.nextInt(8) == 0 ? Items.field_151014_N : null;
|
||||
@@ -27,21 +27,16 @@
|
||||
}
|
||||
|
||||
public int func_149679_a(int p_149679_1_, Random p_149679_2_)
|
||||
@@ -63,13 +63,7 @@
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
|
||||
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop Taken care of by IShearable
|
||||
{
|
||||
- p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)p_180657_4_.func_177229_b(field_176497_a)).func_177044_a()));
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
}
|
||||
}
|
||||
@@ -204,4 +198,22 @@
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150329_H, 1, ((BlockTallGrass.EnumType)p_180657_4_.func_177229_b(field_176497_a)).func_177044_a()));
|
||||
@@ -183,4 +183,22 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -59,7 +54,7 @@
|
||||
+ {
|
||||
+ List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
|
||||
+ if (RANDOM.nextInt(8) != 0) return ret;
|
||||
+ ItemStack seed = net.minecraftforge.common.ForgeHooks.getGrassSeed(RANDOM);
|
||||
+ ItemStack seed = net.minecraftforge.common.ForgeHooks.getGrassSeed(RANDOM, fortune);
|
||||
+ if (seed != null) ret.add(seed);
|
||||
+ return ret;
|
||||
+ }
|
||||
|
||||
@@ -1,15 +1,24 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockTorch.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockTorch.java
|
||||
@@ -63,7 +63,7 @@
|
||||
@@ -81,14 +81,14 @@
|
||||
|
||||
private boolean func_176594_d(World p_176594_1_, BlockPos p_176594_2_)
|
||||
{
|
||||
- if (p_176594_1_.func_180495_p(p_176594_2_).func_185896_q())
|
||||
+ IBlockState state = p_176594_1_.func_180495_p(p_176594_2_);
|
||||
+ if (state.isSideSolid(p_176594_1_, p_176594_2_, EnumFacing.UP))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Block block = p_176594_1_.func_180495_p(p_176594_2_).func_177230_c();
|
||||
- Block block = p_176594_1_.func_180495_p(p_176594_2_).func_177230_c();
|
||||
- return block instanceof BlockFence || block == Blocks.field_150359_w || block == Blocks.field_150463_bK || block == Blocks.field_150399_cn;
|
||||
+ return block.canPlaceTorchOnTop(p_176594_1_, p_176594_2_);
|
||||
+ return state.func_177230_c().canPlaceTorchOnTop(state, p_176594_1_, p_176594_2_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
@@ -109,7 +109,7 @@
|
||||
{
|
||||
BlockPos blockpos = p_176595_2_.func_177972_a(p_176595_3_.func_176734_d());
|
||||
boolean flag = p_176595_3_.func_176740_k().func_176722_c();
|
||||
@@ -18,7 +27,7 @@
|
||||
}
|
||||
|
||||
public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
|
||||
@@ -97,7 +97,7 @@
|
||||
@@ -122,7 +122,7 @@
|
||||
{
|
||||
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL)
|
||||
{
|
||||
@@ -27,7 +36,7 @@
|
||||
{
|
||||
return this.func_176223_P().func_177226_a(field_176596_a, enumfacing);
|
||||
}
|
||||
@@ -130,7 +130,7 @@
|
||||
@@ -155,7 +155,7 @@
|
||||
EnumFacing enumfacing1 = enumfacing.func_176734_d();
|
||||
boolean flag = false;
|
||||
|
||||
|
||||
@@ -1,43 +1,21 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockTrapDoor.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockTrapDoor.java
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
public class BlockTrapDoor extends Block
|
||||
{
|
||||
+ /** Set this to allow trapdoors to remain free-floating */
|
||||
+ public static boolean disableValidation = false;
|
||||
public static final PropertyDirection field_176284_a = PropertyDirection.func_177712_a("facing", EnumFacing.Plane.HORIZONTAL);
|
||||
public static final PropertyBool field_176283_b = PropertyBool.func_177716_a("open");
|
||||
public static final PropertyEnum<BlockTrapDoor.DoorHalf> field_176285_M = PropertyEnum.<BlockTrapDoor.DoorHalf>func_177709_a("half", BlockTrapDoor.DoorHalf.class);
|
||||
@@ -140,9 +142,10 @@
|
||||
{
|
||||
if (!p_176204_1_.field_72995_K)
|
||||
{
|
||||
+ EnumFacing direction = (EnumFacing)p_176204_3_.func_177229_b(field_176284_a);
|
||||
BlockPos blockpos = p_176204_2_.func_177972_a(((EnumFacing)p_176204_3_.func_177229_b(field_176284_a)).func_176734_d());
|
||||
|
||||
- if (!func_150119_a(p_176204_1_.func_180495_p(blockpos).func_177230_c()))
|
||||
+ if (!(func_150119_a(p_176204_1_.func_180495_p(blockpos).func_177230_c()) || p_176204_1_.isSideSolid(blockpos, direction, true)))
|
||||
{
|
||||
p_176204_1_.func_175698_g(p_176204_2_);
|
||||
this.func_176226_b(p_176204_1_, p_176204_2_, p_176204_3_, 0);
|
||||
@@ -186,7 +189,10 @@
|
||||
|
||||
public boolean func_176198_a(World p_176198_1_, BlockPos p_176198_2_, EnumFacing p_176198_3_)
|
||||
{
|
||||
- return !p_176198_3_.func_176740_k().func_176720_b() && func_150119_a(p_176198_1_.func_180495_p(p_176198_2_.func_177972_a(p_176198_3_.func_176734_d())).func_177230_c());
|
||||
+ if (disableValidation) return true;
|
||||
+ EnumFacing dir = p_176198_3_.func_176734_d();
|
||||
+ p_176198_2_ = p_176198_2_.func_177972_a(dir);
|
||||
+ return !p_176198_3_.func_176740_k().func_176720_b() && (func_150119_a(p_176198_1_.func_180495_p(p_176198_2_).func_177230_c()) || p_176198_1_.isSideSolid(p_176198_2_, p_176198_3_, true));
|
||||
@@ -240,6 +240,18 @@
|
||||
return new BlockStateContainer(this, new IProperty[] {field_176284_a, field_176283_b, field_176285_M});
|
||||
}
|
||||
|
||||
protected static EnumFacing func_176281_b(int p_176281_0_)
|
||||
@@ -223,6 +229,7 @@
|
||||
|
||||
private static boolean func_150119_a(Block p_150119_0_)
|
||||
+ @Override
|
||||
+ public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity)
|
||||
+ {
|
||||
+ if (state.func_177229_b(field_176283_b))
|
||||
+ {
|
||||
+ IBlockState down = world.func_180495_p(pos.func_177977_b());
|
||||
+ if (down.func_177230_c() == net.minecraft.init.Blocks.field_150468_ap)
|
||||
+ return down.func_177229_b(BlockLadder.field_176382_a) == state.func_177229_b(field_176284_a);
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
public static enum DoorHalf implements IStringSerializable
|
||||
{
|
||||
+ if (disableValidation) return true;
|
||||
return p_150119_0_.field_149764_J.func_76218_k() && p_150119_0_.func_149686_d() || p_150119_0_ == Blocks.field_150426_aN || p_150119_0_ instanceof BlockSlab || p_150119_0_ instanceof BlockStairs;
|
||||
}
|
||||
|
||||
TOP("top"),
|
||||
@@ -1,28 +1,28 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockTripWireHook.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockTripWireHook.java
|
||||
@@ -58,14 +58,14 @@
|
||||
@@ -79,14 +79,14 @@
|
||||
|
||||
public boolean func_176198_a(World p_176198_1_, BlockPos p_176198_2_, EnumFacing p_176198_3_)
|
||||
{
|
||||
- return p_176198_3_.func_176740_k().func_176722_c() && p_176198_1_.func_180495_p(p_176198_2_.func_177972_a(p_176198_3_.func_176734_d())).func_177230_c().func_149721_r();
|
||||
+ return p_176198_3_.func_176740_k().func_176722_c() && p_176198_1_.isSideSolid(p_176198_2_.func_177972_a(p_176198_3_.func_176734_d()), p_176198_3_, true);
|
||||
- return p_176198_3_.func_176740_k().func_176722_c() && p_176198_1_.func_180495_p(p_176198_2_.func_177972_a(p_176198_3_.func_176734_d())).func_185915_l();
|
||||
+ return p_176198_3_.func_176740_k().func_176722_c() && p_176198_1_.func_180495_p(p_176198_2_.func_177972_a(p_176198_3_.func_176734_d())).isSideSolid(p_176198_1_, p_176198_2_.func_177972_a(p_176198_3_.func_176734_d()), p_176198_3_);
|
||||
}
|
||||
|
||||
public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_)
|
||||
{
|
||||
for (EnumFacing enumfacing : EnumFacing.Plane.HORIZONTAL)
|
||||
{
|
||||
- if (p_176196_1_.func_180495_p(p_176196_2_.func_177972_a(enumfacing)).func_177230_c().func_149721_r())
|
||||
+ if (p_176196_1_.isSideSolid(p_176196_2_.func_177972_a(enumfacing), enumfacing.func_176734_d(), true))
|
||||
- if (p_176196_1_.func_180495_p(p_176196_2_.func_177972_a(enumfacing)).func_185915_l())
|
||||
+ if (p_176196_1_.func_180495_p(p_176196_2_.func_177972_a(enumfacing)).isSideSolid(p_176196_1_, p_176196_2_.func_177972_a(enumfacing), enumfacing.func_176734_d()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -99,7 +99,7 @@
|
||||
@@ -120,7 +120,7 @@
|
||||
{
|
||||
EnumFacing enumfacing = (EnumFacing)p_176204_3_.func_177229_b(field_176264_a);
|
||||
EnumFacing enumfacing = (EnumFacing)p_189540_1_.func_177229_b(field_176264_a);
|
||||
|
||||
- if (!p_176204_1_.func_180495_p(p_176204_2_.func_177972_a(enumfacing.func_176734_d())).func_177230_c().func_149721_r())
|
||||
+ if (!p_176204_1_.isSideSolid(p_176204_2_.func_177972_a(enumfacing.func_176734_d()), enumfacing, true))
|
||||
- if (!p_189540_2_.func_180495_p(p_189540_3_.func_177972_a(enumfacing.func_176734_d())).func_185915_l())
|
||||
+ if (!p_189540_2_.func_180495_p(p_189540_3_.func_177972_a(enumfacing.func_176734_d())).isSideSolid(p_189540_2_, p_189540_3_.func_177972_a(enumfacing.func_176734_d()), enumfacing))
|
||||
{
|
||||
this.func_176226_b(p_176204_1_, p_176204_2_, p_176204_3_, 0);
|
||||
p_176204_1_.func_175698_g(p_176204_2_);
|
||||
this.func_176226_b(p_189540_2_, p_189540_3_, p_189540_1_, 0);
|
||||
p_189540_2_.func_175698_g(p_189540_3_);
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/BlockVine.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/BlockVine.java
|
||||
@@ -25,7 +25,7 @@
|
||||
@@ -27,7 +27,7 @@
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -9,26 +9,21 @@
|
||||
{
|
||||
public static final PropertyBool field_176277_a = PropertyBool.func_177716_a("up");
|
||||
public static final PropertyBool field_176273_b = PropertyBool.func_177716_a("north");
|
||||
@@ -387,13 +387,7 @@
|
||||
@@ -345,7 +345,7 @@
|
||||
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
|
||||
public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, @Nullable TileEntity p_180657_5_, @Nullable ItemStack p_180657_6_)
|
||||
{
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
|
||||
- if (!p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ)
|
||||
+ if (false && !p_180657_1_.field_72995_K && p_180657_6_ != null && p_180657_6_.func_77973_b() == Items.field_151097_aZ) // Forge: Noop, Covered by IShearable
|
||||
{
|
||||
- p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
|
||||
- func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150395_bd, 1, 0));
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
|
||||
}
|
||||
}
|
||||
@@ -474,4 +468,14 @@
|
||||
p_180657_2_.func_71029_a(StatList.func_188055_a(this));
|
||||
func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150395_bd, 1, 0));
|
||||
@@ -460,4 +460,14 @@
|
||||
|
||||
return i;
|
||||
}
|
||||
+ /*************************FORGE START***********************************/
|
||||
+ @Override public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity){ return true; }
|
||||
+ @Override public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity){ return true; }
|
||||
+ @Override public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos){ return true; }
|
||||
+ @Override
|
||||
+ public java.util.List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/SoundType.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/SoundType.java
|
||||
@@ -48,7 +48,6 @@
|
||||
return this.field_185861_n;
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
public SoundEvent func_185845_c()
|
||||
{
|
||||
return this.field_185862_o;
|
||||
@@ -64,7 +63,6 @@
|
||||
return this.field_185864_q;
|
||||
}
|
||||
|
||||
- @SideOnly(Side.CLIENT)
|
||||
public SoundEvent func_185846_f()
|
||||
{
|
||||
return this.field_185865_r;
|
||||
@@ -1,29 +1,29 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/state/BlockPistonStructureHelper.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/state/BlockPistonStructureHelper.java
|
||||
@@ -78,7 +78,7 @@
|
||||
{
|
||||
Block block = this.field_177261_a.func_180495_p(p_177251_1_).func_177230_c();
|
||||
@@ -80,7 +80,7 @@
|
||||
IBlockState iblockstate = this.field_177261_a.func_180495_p(p_177251_1_);
|
||||
Block block = iblockstate.func_177230_c();
|
||||
|
||||
- if (block.func_149688_o() == Material.field_151579_a)
|
||||
+ if (block.isAir(field_177261_a, p_177251_1_))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151579_a)
|
||||
+ if (iblockstate.func_177230_c().isAir(iblockstate, this.field_177261_a, p_177251_1_))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -109,7 +109,7 @@
|
||||
BlockPos blockpos = p_177251_1_.func_177967_a(this.field_177257_d.func_176734_d(), i);
|
||||
block = this.field_177261_a.func_180495_p(blockpos).func_177230_c();
|
||||
@@ -112,7 +112,7 @@
|
||||
iblockstate = this.field_177261_a.func_180495_p(blockpos);
|
||||
block = iblockstate.func_177230_c();
|
||||
|
||||
- if (block.func_149688_o() == Material.field_151579_a || !BlockPistonBase.func_180696_a(block, this.field_177261_a, blockpos, this.field_177257_d, false) || blockpos.equals(this.field_177259_b))
|
||||
+ if (block.isAir(field_177261_a, blockpos)|| !BlockPistonBase.func_180696_a(block, this.field_177261_a, blockpos, this.field_177257_d, false) || blockpos.equals(this.field_177259_b))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151579_a || !BlockPistonBase.func_185646_a(iblockstate, this.field_177261_a, blockpos, this.field_177257_d, false) || blockpos.equals(this.field_177259_b))
|
||||
+ if (iblockstate.func_177230_c().isAir(iblockstate, this.field_177261_a, blockpos) || !BlockPistonBase.func_185646_a(iblockstate, this.field_177261_a, blockpos, this.field_177257_d, false) || blockpos.equals(this.field_177259_b))
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -156,7 +156,7 @@
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
block = this.field_177261_a.func_180495_p(blockpos1).func_177230_c();
|
||||
iblockstate = this.field_177261_a.func_180495_p(blockpos1);
|
||||
|
||||
- if (block.func_149688_o() == Material.field_151579_a)
|
||||
+ if (block.isAir(field_177261_a, blockpos1))
|
||||
- if (iblockstate.func_185904_a() == Material.field_151579_a)
|
||||
+ if (iblockstate.func_177230_c().isAir(iblockstate, this.field_177261_a, blockpos1))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/state/BlockState.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/state/BlockState.java
|
||||
@@ -38,6 +38,16 @@
|
||||
|
||||
public BlockState(Block p_i45663_1_, IProperty... p_i45663_2_)
|
||||
{
|
||||
+ this(p_i45663_1_, p_i45663_2_, null);
|
||||
+ }
|
||||
+
|
||||
+ protected StateImplementation createState(Block block, ImmutableMap<IProperty, Comparable> properties, ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
|
||||
+ {
|
||||
+ return new StateImplementation(block, properties);
|
||||
+ }
|
||||
+
|
||||
+ protected BlockState(Block p_i45663_1_, IProperty[] p_i45663_2_, ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
|
||||
+ {
|
||||
this.field_177627_c = p_i45663_1_;
|
||||
Arrays.sort(p_i45663_2_, new Comparator<IProperty>()
|
||||
{
|
||||
@@ -53,7 +63,7 @@
|
||||
for (List<Comparable> list1 : Cartesian.func_179321_a(this.func_177620_e()))
|
||||
{
|
||||
Map<IProperty, Comparable> map1 = MapPopulator.<IProperty, Comparable>func_179400_b(this.field_177624_d, list1);
|
||||
- BlockState.StateImplementation blockstate$stateimplementation = new BlockState.StateImplementation(p_i45663_1_, ImmutableMap.copyOf(map1));
|
||||
+ BlockState.StateImplementation blockstate$stateimplementation = createState(p_i45663_1_, ImmutableMap.copyOf(map1), unlistedProperties);
|
||||
map.put(map1, blockstate$stateimplementation);
|
||||
list.add(blockstate$stateimplementation);
|
||||
}
|
||||
@@ -132,6 +142,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ protected StateImplementation(Block blockIn, ImmutableMap<IProperty, Comparable> propertiesIn, ImmutableTable<IProperty, Comparable, IBlockState> propertyValueTable)
|
||||
+ {
|
||||
+ this.field_177239_a = blockIn;
|
||||
+ this.field_177237_b = propertiesIn;
|
||||
+ this.field_177238_c = propertyValueTable;
|
||||
+ }
|
||||
+
|
||||
public <T extends Comparable<T>, V extends T> IBlockState func_177226_a(IProperty<T> p_177226_1_, V p_177226_2_)
|
||||
{
|
||||
if (!this.field_177237_b.containsKey(p_177226_1_))
|
||||
@@ -199,5 +216,10 @@
|
||||
map.put(p_177236_1_, p_177236_2_);
|
||||
return map;
|
||||
}
|
||||
+
|
||||
+ public ImmutableTable<IProperty, Comparable, IBlockState> getPropertyValueTable()
|
||||
+ {
|
||||
+ return field_177238_c;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/state/BlockStateBase.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/state/BlockStateBase.java
|
||||
@@ -67,4 +67,9 @@
|
||||
@@ -73,4 +73,9 @@
|
||||
|
||||
return stringbuilder.toString();
|
||||
}
|
||||
+
|
||||
+ public com.google.common.collect.ImmutableTable<IProperty, Comparable, IBlockState> getPropertyValueTable()
|
||||
+
|
||||
+ public com.google.common.collect.ImmutableTable<IProperty<?>, Comparable<?>, IBlockState> getPropertyValueTable()
|
||||
+ {
|
||||
+ return null;
|
||||
+ }
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/state/BlockStateContainer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/state/BlockStateContainer.java
|
||||
@@ -57,12 +57,22 @@
|
||||
|
||||
public BlockStateContainer(Block p_i45663_1_, IProperty<?>... p_i45663_2_)
|
||||
{
|
||||
- this.field_177627_c = p_i45663_1_;
|
||||
+ this(p_i45663_1_, p_i45663_2_, null);
|
||||
+ }
|
||||
+
|
||||
+ protected StateImplementation createState(Block block, ImmutableMap<IProperty<?>, Comparable<?>> properties, ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
|
||||
+ {
|
||||
+ return new StateImplementation(block, properties);
|
||||
+ }
|
||||
+
|
||||
+ protected BlockStateContainer(Block blockIn, IProperty<?>[] properties, ImmutableMap<net.minecraftforge.common.property.IUnlistedProperty<?>, com.google.common.base.Optional<?>> unlistedProperties)
|
||||
+ {
|
||||
+ this.field_177627_c = blockIn;
|
||||
Map < String, IProperty<? >> map = Maps. < String, IProperty<? >> newHashMap();
|
||||
|
||||
- for (IProperty<?> iproperty : p_i45663_2_)
|
||||
+ for (IProperty<?> iproperty : properties)
|
||||
{
|
||||
- func_185919_a(p_i45663_1_, iproperty);
|
||||
+ func_185919_a(blockIn, iproperty);
|
||||
map.put(iproperty.func_177701_a(), iproperty);
|
||||
}
|
||||
|
||||
@@ -73,7 +83,7 @@
|
||||
for (List < Comparable<? >> list : Cartesian.func_179321_a(this.func_177620_e()))
|
||||
{
|
||||
Map < IProperty<?>, Comparable<? >> map1 = MapPopulator. < IProperty<?>, Comparable<? >> func_179400_b(this.field_177624_d.values(), list);
|
||||
- BlockStateContainer.StateImplementation blockstatecontainer$stateimplementation = new BlockStateContainer.StateImplementation(p_i45663_1_, ImmutableMap.copyOf(map1));
|
||||
+ BlockStateContainer.StateImplementation blockstatecontainer$stateimplementation = createState(blockIn, ImmutableMap.copyOf(map1), unlistedProperties);
|
||||
map2.put(map1, blockstatecontainer$stateimplementation);
|
||||
list1.add(blockstatecontainer$stateimplementation);
|
||||
}
|
||||
@@ -165,6 +175,13 @@
|
||||
this.field_177237_b = p_i45660_2_;
|
||||
}
|
||||
|
||||
+ protected StateImplementation(Block blockIn, ImmutableMap<IProperty<?>, Comparable<?>> propertiesIn, ImmutableTable<IProperty<?>, Comparable<?>, IBlockState> propertyValueTable)
|
||||
+ {
|
||||
+ this.field_177239_a = blockIn;
|
||||
+ this.field_177237_b = propertiesIn;
|
||||
+ this.field_177238_c = propertyValueTable;
|
||||
+ }
|
||||
+
|
||||
public Collection < IProperty<? >> func_177227_a()
|
||||
{
|
||||
return Collections. < IProperty<? >> unmodifiableCollection(this.field_177237_b.keySet());
|
||||
@@ -445,5 +462,86 @@
|
||||
{
|
||||
this.field_177239_a.func_189540_a(this, p_189546_1_, p_189546_2_, p_189546_3_);
|
||||
}
|
||||
+
|
||||
+ //Forge Start
|
||||
+ public ImmutableTable<IProperty<?>, Comparable<?>, IBlockState> getPropertyValueTable()
|
||||
+ {
|
||||
+ return field_177238_c;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getLightOpacity(IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return this.field_177239_a.getLightOpacity(this, world, pos);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getLightValue(IBlockAccess world, BlockPos pos)
|
||||
+ {
|
||||
+ return this.field_177239_a.getLightValue(this, world, pos);
|
||||
+ }
|
||||
+
|
||||
+ public boolean isSideSolid(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ {
|
||||
+ return this.field_177239_a.isSideSolid(this, world, pos, side);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing side)
|
||||
+ {
|
||||
+ return this.field_177239_a.doesSideBlockRendering(this, world, pos, side);
|
||||
+ }
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Forge added class to make building things easier.
|
||||
+ * Will return an instance of BlockStateContainer appropriate for
|
||||
+ * the list of properties passed in.
|
||||
+ *
|
||||
+ * Example usage:
|
||||
+ *
|
||||
+ * protected BlockStateContainer createBlockState()
|
||||
+ * {
|
||||
+ * return (new BlockStateContainer.Builder(this)).add(FACING).add(SOME_UNLISTED).build();
|
||||
+ * }
|
||||
+ *
|
||||
+ */
|
||||
+ public static class Builder
|
||||
+ {
|
||||
+ private final Block block;
|
||||
+ private final List<IProperty<?>> listed = Lists.newArrayList();
|
||||
+ private final List<net.minecraftforge.common.property.IUnlistedProperty<?>> unlisted = Lists.newArrayList();
|
||||
+
|
||||
+ public Builder(Block block)
|
||||
+ {
|
||||
+ this.block = block;
|
||||
+ }
|
||||
+
|
||||
+ public Builder add(IProperty<?>... props)
|
||||
+ {
|
||||
+ for (IProperty<?> prop : props)
|
||||
+ this.listed.add(prop);
|
||||
+ return this;
|
||||
+ }
|
||||
+
|
||||
+ public Builder add(net.minecraftforge.common.property.IUnlistedProperty<?>... props)
|
||||
+ {
|
||||
+ for (net.minecraftforge.common.property.IUnlistedProperty<?> prop : props)
|
||||
+ this.unlisted.add(prop);
|
||||
+ return this;
|
||||
+ }
|
||||
+
|
||||
+ public BlockStateContainer build()
|
||||
+ {
|
||||
+ IProperty<?>[] listed = new IProperty[this.listed.size()];
|
||||
+ listed = this.listed.toArray(listed);
|
||||
+ if (this.unlisted.size() == 0)
|
||||
+ return new BlockStateContainer(this.block, listed);
|
||||
+
|
||||
+ net.minecraftforge.common.property.IUnlistedProperty<?>[] unlisted = new net.minecraftforge.common.property.IUnlistedProperty[this.unlisted.size()];
|
||||
+ unlisted = this.unlisted.toArray(unlisted);
|
||||
+
|
||||
+ return new net.minecraftforge.common.property.ExtendedBlockState(this.block, listed, unlisted);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
--- ../src-base/minecraft/net/minecraft/block/state/IBlockProperties.java
|
||||
+++ ../src-work/minecraft/net/minecraft/block/state/IBlockProperties.java
|
||||
@@ -28,9 +28,13 @@
|
||||
|
||||
boolean func_189884_a(Entity p_189884_1_);
|
||||
|
||||
+ @Deprecated //Forge location aware version below
|
||||
int func_185891_c();
|
||||
+ int getLightOpacity(IBlockAccess world, BlockPos pos);
|
||||
|
||||
+ @Deprecated //Forge location aware version below
|
||||
int func_185906_d();
|
||||
+ int getLightValue(IBlockAccess world, BlockPos pos);
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
boolean func_185895_e();
|
||||
@@ -92,5 +96,10 @@
|
||||
|
||||
RayTraceResult func_185910_a(World p_185910_1_, BlockPos p_185910_2_, Vec3d p_185910_3_, Vec3d p_185910_4_);
|
||||
|
||||
+ @Deprecated // Forge: Use isSideSolid(IBlockAccess, BlockPos, EnumFacing.UP) instead
|
||||
boolean func_185896_q();
|
||||
+
|
||||
+ //Forge added functions
|
||||
+ boolean doesSideBlockRendering(IBlockAccess world, BlockPos pos, EnumFacing side);
|
||||
+ boolean isSideSolid(IBlockAccess world, BlockPos pos, EnumFacing side);
|
||||
}
|
||||
@@ -9,10 +9,10 @@
|
||||
+ if (!net.minecraftforge.fml.client.FMLClientHandler.instance().handleLoadingScreen(scaledresolution)) //FML Don't render while FML's pre-screen is rendering
|
||||
+ {
|
||||
Tessellator tessellator = Tessellator.func_178181_a();
|
||||
WorldRenderer worldrenderer = tessellator.func_178180_c();
|
||||
VertexBuffer vertexbuffer = tessellator.func_178180_c();
|
||||
this.field_73725_b.func_110434_K().func_110577_a(Gui.field_110325_k);
|
||||
@@ -174,6 +178,12 @@
|
||||
GlStateManager.func_179120_a(770, 771, 1, 0);
|
||||
GlStateManager.func_187428_a(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
this.field_73725_b.field_71466_p.func_175063_a(this.field_73726_c, (float)((k - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2), (float)(l / 2 - 4 - 16), 16777215);
|
||||
this.field_73725_b.field_71466_p.func_175063_a(this.field_73727_a, (float)((k - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2), (float)(l / 2 - 4 + 8), 16777215);
|
||||
+ }
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java
|
||||
@@ -301,7 +301,6 @@
|
||||
this.field_152355_az = (new YggdrasilAuthenticationService(p_i45547_1_.field_178745_a.field_178751_c, UUID.randomUUID().toString())).createMinecraftSessionService();
|
||||
@@ -322,7 +322,6 @@
|
||||
this.field_152355_az = (new YggdrasilAuthenticationService(this.field_110453_aa, UUID.randomUUID().toString())).createMinecraftSessionService();
|
||||
this.field_71449_j = p_i45547_1_.field_178745_a.field_178752_a;
|
||||
field_147123_G.info("Setting user: " + this.field_71449_j.func_111285_a());
|
||||
- field_147123_G.info("(Session ID is " + this.field_71449_j.func_111286_b() + ")");
|
||||
field_147123_G.info("Setting user: {}", new Object[] {this.field_71449_j.func_111285_a()});
|
||||
- field_147123_G.debug("(Session ID is {})", new Object[] {this.field_71449_j.func_111286_b()});
|
||||
this.field_71459_aj = p_i45547_1_.field_178741_d.field_178756_a;
|
||||
this.field_71443_c = p_i45547_1_.field_178743_b.field_178764_a > 0 ? p_i45547_1_.field_178743_b.field_178764_a : 1;
|
||||
this.field_71440_d = p_i45547_1_.field_178743_b.field_178762_b > 0 ? p_i45547_1_.field_178743_b.field_178762_b : 1;
|
||||
@@ -415,10 +414,10 @@
|
||||
@@ -437,10 +436,10 @@
|
||||
this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an);
|
||||
this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab);
|
||||
this.field_110451_am.func_110542_a(this.field_135017_as);
|
||||
@@ -18,10 +18,19 @@
|
||||
this.field_110451_am.func_110542_a(this.field_71446_o);
|
||||
- this.func_180510_a(this.field_71446_o);
|
||||
+ net.minecraftforge.fml.client.SplashProgress.drawVanillaScreen(this.field_71446_o);
|
||||
this.func_175595_al();
|
||||
this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az);
|
||||
this.field_71469_aa = new AnvilSaveConverter(new File(this.field_71412_D, "saves"));
|
||||
@@ -453,6 +452,8 @@
|
||||
this.field_71469_aa = new AnvilSaveConverter(new File(this.field_71412_D, "saves"), this.field_184131_U);
|
||||
this.field_147127_av = new SoundHandler(this.field_110451_am, this.field_71474_y);
|
||||
@@ -465,7 +464,7 @@
|
||||
{
|
||||
try
|
||||
{
|
||||
- return String.format(p_74535_1_, new Object[] {GameSettings.func_74298_c(Minecraft.this.field_71474_y.field_151445_Q.func_151463_i())});
|
||||
+ return String.format(p_74535_1_, new Object[] {Minecraft.this.field_71474_y.field_151445_Q.getDisplayName()});
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
@@ -474,6 +473,8 @@
|
||||
}
|
||||
});
|
||||
this.field_71417_B = new MouseHelper();
|
||||
@@ -30,13 +39,13 @@
|
||||
this.func_71361_d("Pre startup");
|
||||
GlStateManager.func_179098_w();
|
||||
GlStateManager.func_179103_j(7425);
|
||||
@@ -466,17 +467,21 @@
|
||||
@@ -487,19 +488,24 @@
|
||||
GlStateManager.func_179096_D();
|
||||
GlStateManager.func_179128_n(5888);
|
||||
this.func_71361_d("Startup");
|
||||
- this.field_147128_au = new TextureMap("textures");
|
||||
+ bar.step("Loading Texture Map");
|
||||
+ this.field_147128_au = new TextureMap("textures",true);
|
||||
+ this.field_147128_au = new TextureMap("textures", true);
|
||||
this.field_147128_au.func_147633_a(this.field_71474_y.field_151442_I);
|
||||
this.field_71446_o.func_110580_a(TextureMap.field_110575_b, this.field_147128_au);
|
||||
this.field_71446_o.func_110577_a(TextureMap.field_110575_b);
|
||||
@@ -44,19 +53,23 @@
|
||||
+ bar.step("Loading Model Manager");
|
||||
this.field_175617_aL = new ModelManager(this.field_147128_au);
|
||||
this.field_110451_am.func_110542_a(this.field_175617_aL);
|
||||
this.field_184127_aH = BlockColors.func_186723_a();
|
||||
this.field_184128_aI = ItemColors.func_186729_a(this.field_184127_aH);
|
||||
+ bar.step("Loading Item Renderer");
|
||||
this.field_175621_X = new RenderItem(this.field_71446_o, this.field_175617_aL);
|
||||
this.field_175621_X = new RenderItem(this.field_71446_o, this.field_175617_aL, this.field_184128_aI);
|
||||
this.field_175616_W = new RenderManager(this.field_71446_o, this.field_175621_X);
|
||||
this.field_175620_Y = new ItemRenderer(this);
|
||||
this.field_110451_am.func_110542_a(this.field_175621_X);
|
||||
+ bar.step("Loading Entity Renderer");
|
||||
+ net.minecraftforge.fml.client.SplashProgress.pause();
|
||||
this.field_71460_t = new EntityRenderer(this, this.field_110451_am);
|
||||
this.field_110451_am.func_110542_a(this.field_71460_t);
|
||||
this.field_175618_aM = new BlockRendererDispatcher(this.field_175617_aL.func_174954_c(), this.field_71474_y);
|
||||
@@ -486,22 +491,25 @@
|
||||
this.field_175618_aM = new BlockRendererDispatcher(this.field_175617_aL.func_174954_c(), this.field_184127_aH);
|
||||
@@ -509,23 +515,27 @@
|
||||
this.field_71458_u = new GuiAchievement(this);
|
||||
GlStateManager.func_179083_b(0, 0, this.field_71443_c, this.field_71440_d);
|
||||
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
|
||||
this.field_71452_i = new ParticleManager(this.field_71441_e, this.field_71446_o);
|
||||
+ net.minecraftforge.fml.client.SplashProgress.resume();
|
||||
+ net.minecraftforge.fml.common.ProgressManager.pop(bar);
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().finishMinecraftLoading();
|
||||
this.func_71361_d("Post startup");
|
||||
@@ -77,12 +90,13 @@
|
||||
+ net.minecraftforge.fml.client.SplashProgress.clearVanillaResources(field_71446_o, field_152354_ay);
|
||||
this.field_152354_ay = null;
|
||||
this.field_71461_s = new LoadingScreenRenderer(this);
|
||||
this.field_184132_p = new DebugRenderer(this);
|
||||
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().onInitializationComplete();
|
||||
if (this.field_71474_y.field_74353_u && !this.field_71431_Q)
|
||||
{
|
||||
this.func_71352_k();
|
||||
@@ -681,21 +689,23 @@
|
||||
@@ -697,21 +707,23 @@
|
||||
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
|
||||
Bootstrap.func_179870_a(p_71377_1_.func_71502_e());
|
||||
|
||||
@@ -109,9 +123,9 @@
|
||||
}
|
||||
|
||||
public boolean func_152349_b()
|
||||
@@ -883,11 +893,6 @@
|
||||
@@ -904,11 +916,6 @@
|
||||
|
||||
public void func_147108_a(GuiScreen p_147108_1_)
|
||||
public void func_147108_a(@Nullable GuiScreen p_147108_1_)
|
||||
{
|
||||
- if (this.field_71462_r != null)
|
||||
- {
|
||||
@@ -121,8 +135,8 @@
|
||||
if (p_147108_1_ == null && this.field_71441_e == null)
|
||||
{
|
||||
p_147108_1_ = new GuiMainMenu();
|
||||
@@ -897,6 +902,17 @@
|
||||
p_147108_1_ = new GuiGameOver();
|
||||
@@ -918,6 +925,17 @@
|
||||
p_147108_1_ = new GuiGameOver((ITextComponent)null);
|
||||
}
|
||||
|
||||
+ GuiScreen old = this.field_71462_r;
|
||||
@@ -130,16 +144,16 @@
|
||||
+
|
||||
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return;
|
||||
+
|
||||
+ p_147108_1_ = event.gui;
|
||||
+ p_147108_1_ = event.getGui();
|
||||
+ if (old != null && p_147108_1_ != old)
|
||||
+ {
|
||||
+ old.func_146281_b();
|
||||
+ }
|
||||
+
|
||||
if (p_147108_1_ instanceof GuiMainMenu)
|
||||
if (p_147108_1_ instanceof GuiMainMenu || p_147108_1_ instanceof GuiMultiplayer)
|
||||
{
|
||||
this.field_71474_y.field_74330_P = false;
|
||||
@@ -1030,9 +1046,11 @@
|
||||
@@ -1053,9 +1071,11 @@
|
||||
|
||||
if (!this.field_71454_w)
|
||||
{
|
||||
@@ -151,47 +165,53 @@
|
||||
}
|
||||
|
||||
this.field_71424_I.func_76319_b();
|
||||
@@ -1377,7 +1395,7 @@
|
||||
@@ -1398,9 +1418,9 @@
|
||||
{
|
||||
BlockPos blockpos = this.field_71476_x.func_178782_a();
|
||||
|
||||
if (this.field_71441_e.func_180495_p(blockpos).func_177230_c().func_149688_o() != Material.field_151579_a && this.field_71442_b.func_180512_c(blockpos, this.field_71476_x.field_178784_b))
|
||||
- if (this.field_71441_e.func_180495_p(blockpos).func_185904_a() != Material.field_151579_a && this.field_71442_b.func_180512_c(blockpos, this.field_71476_x.field_178784_b))
|
||||
+ if (!this.field_71441_e.func_175623_d(blockpos) && this.field_71442_b.func_180512_c(blockpos, this.field_71476_x.field_178784_b))
|
||||
{
|
||||
- this.field_71452_i.func_180532_a(blockpos, this.field_71476_x.field_178784_b);
|
||||
+ this.field_71452_i.addBlockHitEffects(blockpos, this.field_71476_x);
|
||||
this.field_71439_g.func_71038_i();
|
||||
this.field_71439_g.func_184609_a(EnumHand.MAIN_HAND);
|
||||
}
|
||||
}
|
||||
@@ -1463,15 +1481,19 @@
|
||||
@@ -1434,7 +1454,7 @@
|
||||
case BLOCK:
|
||||
BlockPos blockpos = this.field_71476_x.func_178782_a();
|
||||
|
||||
- if (this.field_71441_e.func_180495_p(blockpos).func_177230_c().func_149688_o() != Material.field_151579_a)
|
||||
- if (this.field_71441_e.func_180495_p(blockpos).func_185904_a() != Material.field_151579_a)
|
||||
+ if (!this.field_71441_e.func_175623_d(blockpos))
|
||||
{
|
||||
int i = itemstack != null ? itemstack.field_77994_a : 0;
|
||||
this.field_71442_b.func_180511_b(blockpos, this.field_71476_x.field_178784_b);
|
||||
break;
|
||||
@@ -1448,6 +1468,7 @@
|
||||
}
|
||||
|
||||
+
|
||||
+ boolean result = !net.minecraftforge.event.ForgeEventFactory.onPlayerInteract(field_71439_g, net.minecraftforge.event.entity.player.PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK, this.field_71441_e, blockpos, this.field_71476_x.field_178784_b).isCanceled();
|
||||
+ if (result) { //Forge: Kept separate to simplify patch
|
||||
if (this.field_71442_b.func_178890_a(this.field_71439_g, this.field_71441_e, itemstack, blockpos, this.field_71476_x.field_178784_b, this.field_71476_x.field_72307_f))
|
||||
{
|
||||
flag = false;
|
||||
this.field_71439_g.func_71038_i();
|
||||
}
|
||||
+ }
|
||||
|
||||
if (itemstack == null)
|
||||
{
|
||||
@@ -1494,7 +1516,8 @@
|
||||
{
|
||||
ItemStack itemstack1 = this.field_71439_g.field_71071_by.func_70448_g();
|
||||
|
||||
- if (itemstack1 != null && this.field_71442_b.func_78769_a(this.field_71439_g, this.field_71441_e, itemstack1))
|
||||
+ boolean result = !net.minecraftforge.event.ForgeEventFactory.onPlayerInteract(field_71439_g, net.minecraftforge.event.entity.player.PlayerInteractEvent.Action.RIGHT_CLICK_AIR, field_71441_e, null, null).isCanceled();
|
||||
+ if (result && itemstack1 != null && this.field_71442_b.func_78769_a(this.field_71439_g, this.field_71441_e, itemstack1))
|
||||
{
|
||||
this.field_71460_t.field_78516_c.func_78445_c();
|
||||
this.field_71439_g.func_184821_cY();
|
||||
+ net.minecraftforge.common.ForgeHooks.onEmptyLeftClick(this.field_71439_g, this.field_71439_g.func_184614_ca());
|
||||
}
|
||||
@@ -1598,6 +1621,8 @@
|
||||
|
||||
this.field_71439_g.func_184609_a(EnumHand.MAIN_HAND);
|
||||
@@ -1477,7 +1498,6 @@
|
||||
switch (this.field_71476_x.field_72313_a)
|
||||
{
|
||||
case ENTITY:
|
||||
-
|
||||
if (this.field_71442_b.func_187102_a(this.field_71439_g, this.field_71476_x.field_72308_g, this.field_71476_x, this.field_71439_g.func_184586_b(enumhand), enumhand) == EnumActionResult.SUCCESS)
|
||||
{
|
||||
return;
|
||||
@@ -1520,7 +1540,7 @@
|
||||
}
|
||||
|
||||
ItemStack itemstack1 = this.field_71439_g.func_184586_b(enumhand);
|
||||
-
|
||||
+ if (itemstack1 == null && (this.field_71476_x == null || this.field_71476_x.field_72313_a == RayTraceResult.Type.MISS)) net.minecraftforge.common.ForgeHooks.onEmptyClick(this.field_71439_g, enumhand);
|
||||
if (itemstack1 != null && this.field_71442_b.func_187101_a(this.field_71439_g, this.field_71441_e, itemstack1, enumhand) == EnumActionResult.SUCCESS)
|
||||
{
|
||||
this.field_71460_t.field_78516_c.func_187460_a(enumhand);
|
||||
@@ -1627,6 +1647,8 @@
|
||||
--this.field_71467_ac;
|
||||
}
|
||||
|
||||
@@ -200,48 +220,48 @@
|
||||
this.field_71424_I.func_76320_a("gui");
|
||||
|
||||
if (!this.field_71445_n)
|
||||
@@ -1690,6 +1715,8 @@
|
||||
|
||||
while (Mouse.next())
|
||||
{
|
||||
+ if (net.minecraftforge.client.ForgeHooksClient.postMouseEvent()) continue;
|
||||
+
|
||||
int i = Mouse.getEventButton();
|
||||
KeyBinding.func_74510_a(i - 100, Mouse.getEventButtonState());
|
||||
|
||||
@@ -1745,6 +1772,7 @@
|
||||
this.field_71462_r.func_146274_d();
|
||||
}
|
||||
@@ -1738,6 +1760,7 @@
|
||||
this.field_71457_ai = 0;
|
||||
this.field_71441_e.func_72897_h(this.field_71439_g);
|
||||
}
|
||||
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().fireMouseInput();
|
||||
}
|
||||
|
||||
if (this.field_71429_W > 0)
|
||||
@@ -1923,6 +1951,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().fireKeyInput();
|
||||
}
|
||||
|
||||
for (int l = 0; l < 9; ++l)
|
||||
@@ -2119,12 +2148,15 @@
|
||||
this.field_71424_I.func_76318_c("gameRenderer");
|
||||
@@ -1825,6 +1848,7 @@
|
||||
this.field_71453_ak.func_74428_b();
|
||||
}
|
||||
|
||||
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostClientTick();
|
||||
+
|
||||
this.field_71424_I.func_76319_b();
|
||||
this.field_71423_H = func_71386_F();
|
||||
}
|
||||
@@ -1931,6 +1955,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+ net.minecraftforge.fml.common.FMLCommonHandler.instance().fireKeyInput();
|
||||
}
|
||||
|
||||
public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_)
|
||||
this.func_184117_aA();
|
||||
@@ -2177,6 +2202,8 @@
|
||||
{
|
||||
while (Mouse.next())
|
||||
{
|
||||
+ if (net.minecraftforge.client.ForgeHooksClient.postMouseEvent()) continue;
|
||||
+
|
||||
int i = Mouse.getEventButton();
|
||||
KeyBinding.func_74510_a(i - 100, Mouse.getEventButtonState());
|
||||
|
||||
@@ -2242,6 +2269,7 @@
|
||||
|
||||
public void func_71371_a(String p_71371_1_, String p_71371_2_, @Nullable WorldSettings p_71371_3_)
|
||||
{
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_);
|
||||
this.func_71403_a((WorldClient)null);
|
||||
System.gc();
|
||||
ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
|
||||
@@ -2160,6 +2192,12 @@
|
||||
@@ -2284,6 +2312,12 @@
|
||||
|
||||
while (!this.field_71437_Z.func_71200_ad())
|
||||
{
|
||||
@@ -254,36 +274,36 @@
|
||||
String s = this.field_71437_Z.func_71195_b_();
|
||||
|
||||
if (s != null)
|
||||
@@ -2185,8 +2223,14 @@
|
||||
@@ -2309,8 +2343,14 @@
|
||||
SocketAddress socketaddress = this.field_71437_Z.func_147137_ag().func_151270_a();
|
||||
NetworkManager networkmanager = NetworkManager.func_150722_a(socketaddress);
|
||||
networkmanager.func_150719_a(new NetHandlerLoginClient(networkmanager, this, (GuiScreen)null));
|
||||
- networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
|
||||
- networkmanager.func_179290_a(new C00PacketLoginStart(this.func_110432_I().func_148256_e()));
|
||||
+ networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true));
|
||||
- networkmanager.func_179290_a(new C00Handshake(210, socketaddress.toString(), 0, EnumConnectionState.LOGIN));
|
||||
- networkmanager.func_179290_a(new CPacketLoginStart(this.func_110432_I().func_148256_e()));
|
||||
+ networkmanager.func_179290_a(new C00Handshake(210, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true));
|
||||
+ com.mojang.authlib.GameProfile gameProfile = this.func_110432_I().func_148256_e();
|
||||
+ if (!this.func_110432_I().hasCachedProperties())
|
||||
+ {
|
||||
+ gameProfile = field_152355_az.fillProfileProperties(gameProfile, true); //Forge: Fill profile properties upon game load. Fixes MC-52974.
|
||||
+ this.func_110432_I().setProperties(gameProfile.getProperties());
|
||||
+ }
|
||||
+ networkmanager.func_179290_a(new C00PacketLoginStart(gameProfile));
|
||||
+ networkmanager.func_179290_a(new CPacketLoginStart(gameProfile));
|
||||
this.field_71453_ak = networkmanager;
|
||||
}
|
||||
|
||||
@@ -2197,6 +2241,8 @@
|
||||
@@ -2321,6 +2361,8 @@
|
||||
|
||||
public void func_71353_a(WorldClient p_71353_1_, String p_71353_2_)
|
||||
public void func_71353_a(@Nullable WorldClient p_71353_1_, String p_71353_2_)
|
||||
{
|
||||
+ if (field_71441_e != null) net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.WorldEvent.Unload(field_71441_e));
|
||||
+
|
||||
if (p_71353_1_ == null)
|
||||
{
|
||||
NetHandlerPlayClient nethandlerplayclient = this.func_147114_u();
|
||||
@@ -2210,6 +2256,18 @@
|
||||
@@ -2333,6 +2375,18 @@
|
||||
if (this.field_71437_Z != null && this.field_71437_Z.func_175578_N())
|
||||
{
|
||||
this.field_71437_Z.func_71263_m();
|
||||
this.field_71437_Z.func_175592_a();
|
||||
+ if (field_71461_s != null)
|
||||
+ {
|
||||
+ this.field_71461_s.func_73719_c(I18n.func_135052_a("forge.client.shutdown.internal"));
|
||||
@@ -299,7 +319,7 @@
|
||||
}
|
||||
|
||||
this.field_71437_Z = null;
|
||||
@@ -2232,6 +2290,7 @@
|
||||
@@ -2356,6 +2410,7 @@
|
||||
this.field_71456_v.func_181029_i();
|
||||
this.func_71351_a((ServerData)null);
|
||||
this.field_71455_al = false;
|
||||
@@ -307,77 +327,72 @@
|
||||
}
|
||||
|
||||
this.field_147127_av.func_147690_c();
|
||||
@@ -2336,126 +2395,10 @@
|
||||
if (this.field_71476_x != null)
|
||||
@@ -2473,159 +2528,8 @@
|
||||
{
|
||||
if (this.field_71476_x != null && this.field_71476_x.field_72313_a != RayTraceResult.Type.MISS)
|
||||
{
|
||||
boolean flag = this.field_71439_g.field_71075_bZ.field_75098_d;
|
||||
- int i = 0;
|
||||
- boolean flag1 = false;
|
||||
- boolean flag = this.field_71439_g.field_71075_bZ.field_75098_d;
|
||||
- TileEntity tileentity = null;
|
||||
- Item item;
|
||||
- ItemStack itemstack;
|
||||
-
|
||||
- if (this.field_71476_x.field_72313_a == MovingObjectPosition.MovingObjectType.BLOCK)
|
||||
- if (this.field_71476_x.field_72313_a == RayTraceResult.Type.BLOCK)
|
||||
- {
|
||||
- BlockPos blockpos = this.field_71476_x.func_178782_a();
|
||||
- Block block = this.field_71441_e.func_180495_p(blockpos).func_177230_c();
|
||||
- IBlockState iblockstate = this.field_71441_e.func_180495_p(blockpos);
|
||||
- Block block = iblockstate.func_177230_c();
|
||||
-
|
||||
- if (block.func_149688_o() == Material.field_151579_a)
|
||||
- if (iblockstate.func_185904_a() == Material.field_151579_a)
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- item = block.func_180665_b(this.field_71441_e, blockpos);
|
||||
- itemstack = block.func_185473_a(this.field_71441_e, blockpos, iblockstate);
|
||||
-
|
||||
- if (item == null)
|
||||
- if (itemstack == null)
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (flag && GuiScreen.func_146271_m())
|
||||
- if (flag && GuiScreen.func_146271_m() && block.func_149716_u())
|
||||
- {
|
||||
- tileentity = this.field_71441_e.func_175625_s(blockpos);
|
||||
- }
|
||||
-
|
||||
- Block block1 = item instanceof ItemBlock && !block.func_149648_K() ? Block.func_149634_a(item) : block;
|
||||
- i = block1.func_176222_j(this.field_71441_e, blockpos);
|
||||
- flag1 = item.func_77614_k();
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- if (this.field_71476_x.field_72313_a != MovingObjectPosition.MovingObjectType.ENTITY || this.field_71476_x.field_72308_g == null || !flag)
|
||||
- if (this.field_71476_x.field_72313_a != RayTraceResult.Type.ENTITY || this.field_71476_x.field_72308_g == null || !flag)
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (this.field_71476_x.field_72308_g instanceof EntityPainting)
|
||||
- {
|
||||
- item = Items.field_151159_an;
|
||||
- itemstack = new ItemStack(Items.field_151159_an);
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityLeashKnot)
|
||||
- {
|
||||
- item = Items.field_151058_ca;
|
||||
- itemstack = new ItemStack(Items.field_151058_ca);
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityItemFrame)
|
||||
- {
|
||||
- EntityItemFrame entityitemframe = (EntityItemFrame)this.field_71476_x.field_72308_g;
|
||||
- ItemStack itemstack = entityitemframe.func_82335_i();
|
||||
- ItemStack itemstack1 = entityitemframe.func_82335_i();
|
||||
-
|
||||
- if (itemstack == null)
|
||||
- if (itemstack1 == null)
|
||||
- {
|
||||
- item = Items.field_151160_bD;
|
||||
- itemstack = new ItemStack(Items.field_151160_bD);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- item = itemstack.func_77973_b();
|
||||
- i = itemstack.func_77960_j();
|
||||
- flag1 = true;
|
||||
- itemstack = ItemStack.func_77944_b(itemstack1);
|
||||
- }
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityMinecart)
|
||||
- {
|
||||
- EntityMinecart entityminecart = (EntityMinecart)this.field_71476_x.field_72308_g;
|
||||
- Item item;
|
||||
-
|
||||
- switch (entityminecart.func_180456_s())
|
||||
- switch (entityminecart.func_184264_v())
|
||||
- {
|
||||
- case FURNACE:
|
||||
- item = Items.field_151109_aJ;
|
||||
@@ -397,53 +412,91 @@
|
||||
- default:
|
||||
- item = Items.field_151143_au;
|
||||
- }
|
||||
-
|
||||
- itemstack = new ItemStack(item);
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityBoat)
|
||||
- {
|
||||
- item = Items.field_151124_az;
|
||||
- itemstack = new ItemStack(((EntityBoat)this.field_71476_x.field_72308_g).func_184455_j());
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityArmorStand)
|
||||
- {
|
||||
- item = Items.field_179565_cj;
|
||||
- itemstack = new ItemStack(Items.field_179565_cj);
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72308_g instanceof EntityEnderCrystal)
|
||||
- {
|
||||
- itemstack = new ItemStack(Items.field_185158_cP);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- item = Items.field_151063_bx;
|
||||
- i = EntityList.func_75619_a(this.field_71476_x.field_72308_g);
|
||||
- flag1 = true;
|
||||
- String s = EntityList.func_75621_b(this.field_71476_x.field_72308_g);
|
||||
-
|
||||
- if (!EntityList.field_75627_a.containsKey(Integer.valueOf(i)))
|
||||
- if (!EntityList.field_75627_a.containsKey(s))
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- itemstack = new ItemStack(Items.field_151063_bx);
|
||||
- ItemMonsterPlacer.func_185078_a(itemstack, s);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
InventoryPlayer inventoryplayer = this.field_71439_g.field_71071_by;
|
||||
|
||||
- if (tileentity == null)
|
||||
- if (itemstack.func_77973_b() == null)
|
||||
- {
|
||||
- inventoryplayer.func_146030_a(item, i, flag1, flag);
|
||||
- String s1 = "";
|
||||
-
|
||||
- if (this.field_71476_x.field_72313_a == RayTraceResult.Type.BLOCK)
|
||||
- {
|
||||
- s1 = ((ResourceLocation)Block.field_149771_c.func_177774_c(this.field_71441_e.func_180495_p(this.field_71476_x.func_178782_a()).func_177230_c())).toString();
|
||||
- }
|
||||
- else if (this.field_71476_x.field_72313_a == RayTraceResult.Type.ENTITY)
|
||||
- {
|
||||
- s1 = EntityList.func_75621_b(this.field_71476_x.field_72308_g);
|
||||
- }
|
||||
-
|
||||
- field_147123_G.warn("Picking on: [{}] {} gave null item", new Object[] {this.field_71476_x.field_72313_a, s1});
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- ItemStack itemstack1 = this.func_181036_a(item, i, tileentity);
|
||||
- inventoryplayer.func_70299_a(inventoryplayer.field_70461_c, itemstack1);
|
||||
- }
|
||||
- InventoryPlayer inventoryplayer = this.field_71439_g.field_71071_by;
|
||||
-
|
||||
+ if (!net.minecraftforge.common.ForgeHooks.onPickBlock(this.field_71476_x, this.field_71439_g, this.field_71441_e)) return;
|
||||
- if (tileentity != null)
|
||||
- {
|
||||
- this.func_184119_a(itemstack, tileentity);
|
||||
- }
|
||||
-
|
||||
- int i = inventoryplayer.func_184429_b(itemstack);
|
||||
-
|
||||
- if (flag)
|
||||
- {
|
||||
- inventoryplayer.func_184434_a(itemstack);
|
||||
- this.field_71442_b.func_78761_a(this.field_71439_g.func_184586_b(EnumHand.MAIN_HAND), 36 + inventoryplayer.field_70461_c);
|
||||
- }
|
||||
- else if (i != -1)
|
||||
- {
|
||||
- if (InventoryPlayer.func_184435_e(i))
|
||||
- {
|
||||
- inventoryplayer.field_70461_c = i;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- this.field_71442_b.func_187100_a(i);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
+ net.minecraftforge.common.ForgeHooks.onPickBlock(this.field_71476_x, this.field_71439_g, this.field_71441_e);
|
||||
+ // We delete this code wholly instead of commenting it out, to make sure we detect changes in it between MC versions
|
||||
if (flag)
|
||||
{
|
||||
int j = this.field_71439_g.field_71069_bz.field_75151_b.size() - 9 + inventoryplayer.field_70461_c;
|
||||
@@ -2756,18 +2699,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2927,18 +2831,8 @@
|
||||
|
||||
public static int func_71369_N()
|
||||
{
|
||||
- for (int i = 16384; i > 0; i >>= 1)
|
||||
- {
|
||||
- GL11.glTexImage2D(GL11.GL_PROXY_TEXTURE_2D, 0, GL11.GL_RGBA, i, i, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer)((ByteBuffer)null));
|
||||
- int j = GL11.glGetTexLevelParameteri(GL11.GL_PROXY_TEXTURE_2D, 0, GL11.GL_TEXTURE_WIDTH);
|
||||
- GlStateManager.func_187419_a(32868, 0, 6408, i, i, 0, 6408, 5121, (IntBuffer)null);
|
||||
- int j = GlStateManager.func_187411_c(32868, 0, 4096);
|
||||
-
|
||||
- if (j != 0)
|
||||
- {
|
||||
@@ -457,15 +510,35 @@
|
||||
}
|
||||
|
||||
public boolean func_70002_Q()
|
||||
@@ -2924,9 +2857,9 @@
|
||||
{
|
||||
this.func_147108_a(new GuiYesNo(new GuiYesNoCallback()
|
||||
{
|
||||
- public void func_73878_a(boolean p_73878_1_, int p_73878_2_)
|
||||
+ public void func_73878_a(boolean result, int id)
|
||||
{
|
||||
- if (p_73878_1_)
|
||||
+ if (result)
|
||||
{
|
||||
Minecraft.this.func_152346_Z().func_152930_t();
|
||||
}
|
||||
@@ -3077,15 +2971,16 @@
|
||||
{
|
||||
if (Keyboard.getEventKeyState())
|
||||
{
|
||||
- if (i == this.field_71474_y.field_152395_am.func_151463_i())
|
||||
+ if (this.field_71474_y.field_152395_am.isActiveAndMatches(i))
|
||||
{
|
||||
this.func_71352_k();
|
||||
}
|
||||
- else if (i == this.field_71474_y.field_151447_Z.func_151463_i())
|
||||
+ else if (this.field_71474_y.field_151447_Z.isActiveAndMatches(i))
|
||||
{
|
||||
this.field_71456_v.func_146158_b().func_146227_a(ScreenShotHelper.func_148260_a(this.field_71412_D, this.field_71443_c, this.field_71440_d, this.field_147124_at));
|
||||
}
|
||||
}
|
||||
+ else if (this.field_71462_r instanceof GuiControls) ((GuiControls)this.field_71462_r).field_146491_f = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3205,6 +3100,12 @@
|
||||
return this.field_184127_aH;
|
||||
}
|
||||
|
||||
+ // FORGE
|
||||
+ public ItemColors getItemColors()
|
||||
+ {
|
||||
+ return this.field_184128_aI;
|
||||
+ }
|
||||
+
|
||||
public boolean func_189648_am()
|
||||
{
|
||||
return this.field_71439_g != null && this.field_71439_g.func_175140_cp() || this.field_71474_y.field_178879_v;
|
||||
@@ -1,6 +1,6 @@
|
||||
--- ../src-base/minecraft/net/minecraft/client/audio/SoundManager.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/audio/SoundManager.java
|
||||
@@ -69,6 +69,7 @@
|
||||
@@ -76,6 +76,7 @@
|
||||
{
|
||||
SoundSystemConfig.addLibrary(LibraryLWJGLOpenAL.class);
|
||||
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
|
||||
@@ -8,34 +8,42 @@
|
||||
}
|
||||
catch (SoundSystemException soundsystemexception)
|
||||
{
|
||||
@@ -80,6 +81,7 @@
|
||||
{
|
||||
@@ -100,6 +101,7 @@
|
||||
|
||||
this.func_148613_b();
|
||||
this.func_148608_i();
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.sound.SoundLoadEvent(this));
|
||||
}
|
||||
|
||||
private synchronized void func_148608_i()
|
||||
@@ -316,6 +318,9 @@
|
||||
@@ -205,6 +207,7 @@
|
||||
this.field_148620_e.stop(s);
|
||||
}
|
||||
else
|
||||
{
|
||||
+ p_148611_1_ = net.minecraftforge.client.ForgeHooksClient.playSound(this, p_148611_1_);
|
||||
+ if (p_148611_1_ == null) return;
|
||||
+
|
||||
SoundEventAccessorComposite soundeventaccessorcomposite = this.field_148622_c.func_147680_a(p_148611_1_.func_147650_b());
|
||||
|
||||
if (soundeventaccessorcomposite == null)
|
||||
@@ -357,10 +362,12 @@
|
||||
if (soundpoolentry.func_148648_d())
|
||||
+ this.field_189000_p.clear(); //Forge: MC-35856 Fixed paused sounds repeating when switching worlds
|
||||
this.field_148629_h.clear();
|
||||
this.field_148626_m.clear();
|
||||
this.field_148625_l.clear();
|
||||
@@ -338,6 +341,9 @@
|
||||
{
|
||||
if (this.field_148617_f)
|
||||
{
|
||||
+ p_148611_1_ = net.minecraftforge.client.ForgeHooksClient.playSound(this, p_148611_1_);
|
||||
+ if (p_148611_1_ == null) return;
|
||||
+
|
||||
SoundEventAccessor soundeventaccessor = p_148611_1_.func_184366_a(this.field_148622_c);
|
||||
ResourceLocation resourcelocation = p_148611_1_.func_147650_b();
|
||||
|
||||
@@ -400,10 +406,12 @@
|
||||
if (sound.func_188723_h())
|
||||
{
|
||||
this.field_148620_e.newStreamingSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
|
||||
this.field_148620_e.newStreamingSource(false, s, func_148612_a(resourcelocation1), resourcelocation1.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.sound.PlayStreamingSourceEvent(this, p_148611_1_, s));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.field_148620_e.newSource(false, s, func_148612_a(resourcelocation), resourcelocation.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f1);
|
||||
this.field_148620_e.newSource(false, s, func_148612_a(resourcelocation1), resourcelocation1.toString(), flag, p_148611_1_.func_147649_g(), p_148611_1_.func_147654_h(), p_148611_1_.func_147651_i(), p_148611_1_.func_147656_j().func_148586_a(), f);
|
||||
+ net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.sound.PlaySoundSourceEvent(this, p_148611_1_, s));
|
||||
}
|
||||
|
||||
field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {soundpoolentry.func_148652_a(), soundeventaccessorcomposite.func_148729_c(), s});
|
||||
field_148621_b.debug(field_148623_a, "Playing sound {} for event {} as channel {}", new Object[] {sound.func_188719_a(), resourcelocation1, s});
|
||||
Loaded 100 of 1152 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user