Compare commits
836 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ebe3341bfe | |||
| 7566b3e2fc | |||
| 30c074021b | |||
| e6586ac360 | |||
| 0429fe5f21 | |||
| e16d90333b | |||
| 59c7dd1285 | |||
| 13ba399418 | |||
| 8d152afcd3 | |||
| 9fdfbbea54 | |||
| f4303fc1ec | |||
| 3c62ac79c3 | |||
| e42863643d | |||
| ace7c7d660 | |||
| 35f2aa7d51 | |||
| 926a4a87c6 | |||
| d1d2c415bf | |||
| f631858be6 | |||
| d407ec4922 | |||
| 3587fce218 | |||
| 7464647bb8 | |||
| 0848f5db70 | |||
| 822e394966 | |||
| 68ed4c9c0f | |||
| f13d7f351d | |||
| 086ddd5a67 | |||
| acb1d00197 | |||
| 4aaa3f8929 | |||
| 793b8d6655 | |||
| cba89b0323 | |||
| 1f2cdfd843 | |||
| da39d81d5f | |||
| 1442248ec3 | |||
| 1500661e43 | |||
| a7c2824624 | |||
| 9d2549bdd8 | |||
| a37a2b4e89 | |||
| aa6bad7a72 | |||
| e2e5eed351 | |||
| b6de4ebf18 | |||
| 4545d78a51 | |||
| 6dc75fe26e | |||
| 0552282d9d | |||
| 8be01dfb87 | |||
| 4c5803b986 | |||
| 3b4b9a1bd5 | |||
| 2c7959e399 | |||
| 4649841341 | |||
| 3d4cfb2ee8 | |||
| 8092d0d354 | |||
| ceee1f181f | |||
| eefb11544e | |||
| af5921f9e8 | |||
| 75be2ff039 | |||
| b6f4bdb64d | |||
| b76c9f1371 | |||
| 50bf591418 | |||
| b077aff1f8 | |||
| 8debd6c499 | |||
| 53ad6c776b | |||
| e37f8ef65d | |||
| d8b20f53a9 | |||
| bf1a3b7751 | |||
| c8a6d50ce3 | |||
| 13af30f657 | |||
| 5d7f552643 | |||
| 82be548fc7 | |||
| 38249608e4 | |||
| 8f66765696 | |||
| fd5f9263d8 | |||
| 36d94a17aa | |||
| ede2b4ce25 | |||
| e09ec8c420 | |||
| 3d4c03e184 | |||
| 17119fd990 | |||
| 9a00185b6d | |||
| 2c7b239914 | |||
| 4039188712 | |||
| ecb697ab11 | |||
| ab1f519401 | |||
| d06a70ee22 | |||
| 422f9faf76 | |||
| 96ab73001b | |||
| 854676a33c | |||
| 7f76723da5 | |||
| 3fc7cf0247 | |||
| b377dfdd69 | |||
| 51522019ca | |||
| ff1091d252 | |||
| 15dff5d53d | |||
| 7ab89a0657 | |||
| dcd36b3b2f | |||
| 7b985c72bd | |||
| 269d3766db | |||
| d7e7ef0cb4 | |||
| 472f1e65a2 | |||
| 56268aba79 | |||
| 9d7dacdc29 | |||
| fb2aa21337 | |||
| 8bad14f982 | |||
| 0e797b2120 | |||
| 17c38a6418 | |||
| 58a6dabb20 | |||
| 329e613c99 | |||
| 11a4783881 | |||
| e230440cba | |||
| 149e7d251a | |||
| 405f14bd13 | |||
| acd77ff3f2 | |||
| a0ec9ceb51 | |||
| d6f2ed30e5 | |||
| 9785e38e3f | |||
| 1759bd898e | |||
| ae0d02e7d5 | |||
| d76eec2145 | |||
| d7e1554e41 | |||
| 9dee7f6c0e | |||
| 13c3067068 | |||
| 7c4e5679a3 | |||
| 03ed421331 | |||
| 36197a5dc6 | |||
| f407a26a8f | |||
| cb1011295c | |||
| 55a56ad79d | |||
| dd2f1c6dc7 | |||
| f14407b87a | |||
| 04f006695e | |||
| 4f36ccf64d | |||
| d9b4410c94 | |||
| 9bbd0ad61b | |||
| 662a7805dd | |||
| c46eadec08 | |||
| 148207f5c3 | |||
| 3ae251f098 | |||
| 82a906886f | |||
| 5b2c6658c0 | |||
| 653557bc65 | |||
| dde87448a9 | |||
| 8c29eeecdc | |||
| d852d0c216 | |||
| f9bb00a7e7 | |||
| 9f7e42ca7d | |||
| b76c18fedf | |||
| 98ce8235bb | |||
| e1ea4ae22f | |||
| 20ba83c529 | |||
| 225a4d5ab6 | |||
| bd4f03652e | |||
| d6650f9617 | |||
| c5607bda4e | |||
| 11af1f2111 | |||
| 7748f7c92d | |||
| 801fec3eaa | |||
| de324aad91 | |||
| 16ccb2ee46 | |||
| bd0d2a1f28 | |||
| 9abd53a8e8 | |||
| 1f12fc5e91 | |||
| 87fcc6c267 | |||
| e301459dfa | |||
| bf802f1c6f | |||
| 7ba4ca6923 | |||
| 53ed861e23 | |||
| 833f8aca2a | |||
| 9bcf45b7e2 | |||
| b2847677ed | |||
| 95845d5a6c | |||
| 286a3631be | |||
| 6506301049 | |||
| 422543f205 | |||
| 1eec160b74 | |||
| de23b62493 | |||
| 2b6299f2b0 | |||
| b495c972c4 | |||
| 7722dcc720 | |||
| c4d5add5f1 | |||
| 348e6436b8 | |||
| 92457ac680 | |||
| 9e53737635 | |||
| 0e0729166f | |||
| 15a1e8f150 | |||
| b443f1ce57 | |||
| 486a68d06b | |||
| 9b263c5501 | |||
| daf4910548 | |||
| 4f5bdfefe8 | |||
| c9f1387098 | |||
| 1f1d6d041a | |||
| 403a6e8b4a | |||
| 0a0c23c190 | |||
| d28cd798e9 | |||
| 3dedb7eefb | |||
| ae3295d3c9 | |||
| 4bac5f43db | |||
| 2e9a5dc8ea | |||
| 9ac4ea4e6e | |||
| 601faf5087 | |||
| 88e3df897e | |||
| f57a8cefda | |||
| d3fdac2b81 | |||
| f7be92adcf | |||
| 53f18f8e80 | |||
| 770db27777 | |||
| de674f72bd | |||
| 19747ba1f1 | |||
| 024b5c6503 | |||
| 63dd035c85 | |||
| e611b1fb76 | |||
| 4c8ad87875 | |||
| 194d1171f9 | |||
| 376bbf7e84 | |||
| ddfac3a339 | |||
| 95d8216992 | |||
| 4e2afb297e | |||
| d9588441b0 | |||
| 86a42e970f | |||
| bdb0ac14c5 | |||
| 8c735305d7 | |||
| 9011273229 | |||
| 3328bfcda2 | |||
| 158d7c6a04 | |||
| 0085262779 | |||
| 1ed654843c | |||
| 6277058167 | |||
| 6e6f8d33cd | |||
| efb9ab512a | |||
| a9c891f69a | |||
| 2ea120e614 | |||
| 29c18bbf33 | |||
| 027e8477c2 | |||
| f8bac0475a | |||
| 55c527e557 | |||
| 7714f5196e | |||
| 430ee8430d | |||
| 2e98ec015c | |||
| b6955d42b6 | |||
| e696b31013 | |||
| b84c25e64c | |||
| 327b26559f | |||
| f434688f3a | |||
| 7996c44075 | |||
| f5e9df07d4 | |||
| 159a9370c9 | |||
| ad5dcf5c97 | |||
| 104d6fc34d | |||
| 40caeec92f | |||
| 119cdbc2c0 | |||
| a44c74b0d7 | |||
| a55dbb061c | |||
| 9fdf0345b3 | |||
| 346f5aeaac | |||
| d4b5d0dc26 | |||
| d77838146d | |||
| 5b1f98b2d8 | |||
| 1c197c0f20 | |||
| 46a1faaca2 | |||
| dd28b610e1 | |||
| aa2bb45199 | |||
| 48146af137 | |||
| 582d7f140c | |||
| ffdc052d99 | |||
| de7d6321f0 | |||
| 235eef23e3 | |||
| c7fcdf7d8b | |||
| 3a6ab149e4 | |||
| 9337eceb82 | |||
| 35f91bf0d0 | |||
| 6d14d082b0 | |||
| 98ad919f1b | |||
| fb4af262b7 | |||
| 5f774749e8 | |||
| 81b3ff6976 | |||
| c8698fc2bf | |||
| be9fb6d04c | |||
| 90ca2c7e92 | |||
| 39ac308889 | |||
| 4d268b97a9 | |||
| 4b6fbf68b6 | |||
| a289dec832 | |||
| a4f50ea9ef | |||
| 0e8f7c9d03 | |||
| 7c0935f447 | |||
| 1e9e8d2639 | |||
| 3455e815b8 | |||
| a08e61b818 | |||
| 19c6e2ff2d | |||
| 4f25c1551b | |||
| 3b94e9420d | |||
| f30f334a23 | |||
| ed702a5c73 | |||
| 1364117374 | |||
| ed4b864ba2 | |||
| 706e577dab | |||
| ccc8486571 | |||
| 3e8440644e | |||
| 50f4e08b64 | |||
| cfa9fa2843 | |||
| 47f819e021 | |||
| e67b196e19 | |||
| 6d151bb890 | |||
| 3305270a71 | |||
| f824bfd2e1 | |||
| 036f4e1c5b | |||
| 146d3f5628 | |||
| 9c821cb015 | |||
| 3a83c99b1f | |||
| 447c6debab | |||
| 50470ae3cf | |||
| 993be652c9 | |||
| b3bfbd0b58 | |||
| 49b3dc8b60 | |||
| 71ffcfb839 | |||
| 73f76a6654 | |||
| 645de1d868 | |||
| 8f40478695 | |||
| 056fcc3818 | |||
| 0ed0eb9d5f | |||
| 3ddc846648 | |||
| f98f6ef852 | |||
| 4192d721a0 | |||
| a0f3ef9d86 | |||
| 6b29288de6 | |||
| 285fc6314c | |||
| 50fd83e96b | |||
| cc51138a6a | |||
| 918df0bf7f | |||
| c852199901 | |||
| fd95d3de47 | |||
| c3dd6dabe1 | |||
| b0e81ac2d1 | |||
| 30f4cdf545 | |||
| ee9441474e | |||
| 8846202270 | |||
| 17a900ae9a | |||
| 66bc243b41 | |||
| a2bda8f449 | |||
| a2c2a4df0f | |||
| b4e237244a | |||
| b541ad8d18 | |||
| 64f29a7dba | |||
| 6d25b7ef3c | |||
| c3a608ef59 | |||
| af1f5c34d2 | |||
| f5378e060e | |||
| 47407acc42 | |||
| d7f3428824 | |||
| 63e339b88b | |||
| 98761809fd | |||
| 8cb013b686 | |||
| f2fe376982 | |||
| 603452de1f | |||
| 40bd96d21c | |||
| a14d160a07 | |||
| df28a5520f | |||
| 0d096944cc | |||
| 963d3414d8 | |||
| 4414451f5e | |||
| e0ddb92b81 | |||
| 6f551ad67f | |||
| fd3349614d | |||
| 903f211044 | |||
| 78e1e26a11 | |||
| 2a6de11597 | |||
| cd2b53af85 | |||
| 1c5565491a | |||
| 311cc5c6f6 | |||
| 41796449ed | |||
| 9eef9d3840 | |||
| 13afa6908a | |||
| 103438f805 | |||
| eaa01f7648 | |||
| e81fb09599 | |||
| 94d73aec7c | |||
| b51af43dba | |||
| 85dc8ae7c1 | |||
| c34176f392 | |||
| 76fe2175a0 | |||
| c5d33ed892 | |||
| b423d99879 | |||
| 81156b411d | |||
| 6be1660d41 | |||
| 304f394497 | |||
| 50f21125c8 | |||
| 30b85bd239 | |||
| 9ce00d338f | |||
| 11f5b71089 | |||
| e7da72163b | |||
| 6d7c65dd70 | |||
| 5e21101619 | |||
| 3db8d0185f | |||
| 2f5ecfe638 | |||
| 75843e802d | |||
| e41b6943aa | |||
| 92347ad2f5 | |||
| 517bd77df7 | |||
| 19f928a9a5 | |||
| 73251a0fe5 | |||
| 9335daff7d | |||
| cc5377d53b | |||
| 059f20d801 | |||
| d229570495 | |||
| c284748b6c | |||
| 880a9c8821 | |||
| c68c02ef3b | |||
| 89c4d2736c | |||
| 01778794e5 | |||
| 8f2a06e457 | |||
| 2d71b75019 | |||
| 9f09cd04d4 | |||
| b041fae0d5 | |||
| c466a0e00e | |||
| 618e9390c6 | |||
| 9a71bfb0f0 | |||
| 9680123906 | |||
| 87730894e9 | |||
| 71c944daea | |||
| e96b4a698a | |||
| 1d5465a4b8 | |||
| 09cbfe96d6 | |||
| cbdad7c58e | |||
| 6be96956a9 | |||
| e376e002e9 | |||
| 0b9df31d4e | |||
| cef6dbf0d7 | |||
| e4af7b1947 | |||
| 6eadb8f861 | |||
| b6b6a83563 | |||
| 32ab4c6af4 | |||
| fda8c87410 | |||
| 389e060707 | |||
| 0942a90ef4 | |||
| 8cef06512a | |||
| 8e4658be20 | |||
| 0bd2bd6b5a | |||
| db2c4c4325 | |||
| ac793ee847 | |||
| 6404f26cca | |||
| ced6ad865c | |||
| 24750f00b1 | |||
| df08ce0513 | |||
| f9c274fb48 | |||
| 3582582e3f | |||
| 6de48f8541 | |||
| 5a2c2d06d3 | |||
| 98d3cafdfd | |||
| 904de49543 | |||
| b0772bf94c | |||
| aa5d5e3623 | |||
| 42f4ef2855 | |||
| 3eb2582f29 | |||
| 307f86ded8 | |||
| 56f57e18a5 | |||
| eab695b692 | |||
| 0fb393820b | |||
| 01fe5c7a8b | |||
| 8468b47443 | |||
| 6cb583c918 | |||
| d69395a117 | |||
| 59effe8131 | |||
| 6f42876963 | |||
| 08952b48dd | |||
| e3c9c4ce65 | |||
| 7b91da58c0 | |||
| 26c06bca15 | |||
| 4458bd28ab | |||
| df3f00d978 | |||
| 18ae994ee4 | |||
| 47888b5546 | |||
| e18593feb5 | |||
| af4c3de55e | |||
| bea29331a3 | |||
| 9b9579b358 | |||
| 52da4f9528 | |||
| 50aac2c768 | |||
| 33946438bd | |||
| 9372cb2f14 | |||
| 00037ace77 | |||
| e13af643ba | |||
| ffcfd809d8 | |||
| 7c10a6b883 | |||
| c2bddc30c4 | |||
| 024655f84d | |||
| 589e48ac01 | |||
| 43d3a2c1c0 | |||
| c432fa7200 | |||
| cc744ab8b9 | |||
| 8fe4229a8e | |||
| 3f86884965 | |||
| 1319ec79c9 | |||
| 31a3afc18b | |||
| 9d6026635d | |||
| 39038ac935 | |||
| 4f627b234c | |||
| 6180c188e6 | |||
| 7ada6d18ee | |||
| f493767243 | |||
| ba4cdbcb85 | |||
| f3877aa1ec | |||
| 366b31b3aa | |||
| 533fb5c34b | |||
| 62d1d904c6 | |||
| 03fb43db16 | |||
| 9576bec855 | |||
| b5da6730a1 | |||
| 039bab4811 | |||
| 4b5bdf9893 | |||
| 3c3c23712d | |||
| af91c04ea1 | |||
| 0240a5d76a | |||
| 0c0aafba2f | |||
| b541025738 | |||
| 62f842d4ef | |||
| fc154d8568 | |||
| 4641e48529 | |||
| 0fae87afc7 | |||
| ee1b6bb0d7 | |||
| 36ca8b9f0a | |||
| 9c94c7342b | |||
| 399d67b42c | |||
| 10761a1e9d | |||
| d1ddf53d99 | |||
| f776b4d548 | |||
| 41180792e1 | |||
| 2269c05d98 | |||
| 63616e5730 | |||
| 6ca3e6e696 | |||
| a4b5cfc3b9 | |||
| 38b0a7a153 | |||
| aa4863a979 | |||
| 44c7a46315 | |||
| c3b1dea7c5 | |||
| 40ec517480 | |||
| 2fdc16d3a8 | |||
| 053485a95a | |||
| e910af7734 | |||
| 59d7bd6c16 | |||
| 1a11462ddd | |||
| 77d615559f | |||
| 6878bfa4b0 | |||
| f1d50eca1a | |||
| 4ee32dd0b0 | |||
| 66e589324a | |||
| 362b001cb4 | |||
| b6fd4b3c0f | |||
| e364603a5a | |||
| c58bebc346 | |||
| 97f11f0c61 | |||
| 5c2fa72f95 | |||
| ebd8501301 | |||
| fa07247bd7 | |||
| 95d25ddf47 | |||
| 7a45e1faf4 | |||
| 1f88494832 | |||
| c629b4e0cf | |||
| 65ca607134 | |||
| 898c07ca01 | |||
| 883c267aa8 | |||
| 22cf913708 | |||
| b4ba1af1ec | |||
| 892c919ee2 | |||
| a65b3d2ceb | |||
| c826a3e24f | |||
| fc98505f22 | |||
| ea54ccbcf5 | |||
| 7796c6d4b6 | |||
| e2e6f6e83f | |||
| a7a1a87cd8 | |||
| e50eb7965f | |||
| d25a8a53a2 | |||
| 92b48f01a2 | |||
| 42f0d37c44 | |||
| 088a1827be | |||
| 6a21968dab | |||
| 7c5ff5322a | |||
| 7834028459 | |||
| c43cbbef43 | |||
| ead6274ca4 | |||
| f1c41bab3f | |||
| 12e74dc0de | |||
| c10088d907 | |||
| a12d29c4a0 | |||
| 2227510acf | |||
| 97ae7e1f14 | |||
| fc119070b2 | |||
| 82e3a95f11 | |||
| e6998913e1 | |||
| a3e69ce608 | |||
| ceef176a2a | |||
| c2e2696707 | |||
| 4d6c61dfcb | |||
| 932141cc9e | |||
| adf59774d4 | |||
| 9c6668b0f7 | |||
| 1b7f11a12e | |||
| 3cf4f9122c | |||
| d97996070a | |||
| 8a165bea09 | |||
| f707f95373 | |||
| b2a660ec9b | |||
| d6499c16b0 | |||
| de3e0178a4 | |||
| 203522316c | |||
| 719ea5090b | |||
| 00e19d67a2 | |||
| 169f6393d1 | |||
| 12bf337238 | |||
| 3b544c2486 | |||
| 660e17d167 | |||
| b10246a67b | |||
| 74362bb543 | |||
| 81df58afa5 | |||
| 535289e694 | |||
| d730503378 | |||
| f3349b0a2d | |||
| f667e9a5f0 | |||
| 2c0a2975de | |||
| 2e3d6b721a | |||
| 94e294f4e9 | |||
| 91620a0042 | |||
| ffc79b5494 | |||
| ce7c29d0ac | |||
| 5ac8db41e7 | |||
| 6ece190ac4 | |||
| 00a596ea8f | |||
| 1fc1d5517d | |||
| d5fc7a5b21 | |||
| 1f85d0f607 | |||
| dfe5b82bda | |||
| c7f8f4249e | |||
| 5efa6d6251 | |||
| 4269a66a4b | |||
| df2a7c1858 | |||
| c483bd17f5 | |||
| 92536fceb4 | |||
| ded71cb2bd | |||
| 41a4518c5b | |||
| 87643094c3 | |||
| 8a4c9b58e6 | |||
| 5436e6bf08 | |||
| 078112d97b | |||
| 46355a4e9b | |||
| eb389971a3 | |||
| a38ebf7c4d | |||
| dfcba264f3 | |||
| d343ac47f5 | |||
| 05db930a4e | |||
| 33bc0a6a3f | |||
| f2f48a8d59 | |||
| 0f0af2349b | |||
| 32a4fcab77 | |||
| a847a01d8a | |||
| ed643787df | |||
| 524b26d2a2 | |||
| 184b1f8efb | |||
| 06cca13087 | |||
| 8e735e72ff | |||
| d3dd137570 | |||
| 78e1126c38 | |||
| ebe3ff045d | |||
| 6291a545c3 | |||
| 99fd5a9d53 | |||
| 416c7d2683 | |||
| 0c88d1e7ee | |||
| d88f550eb0 | |||
| e21c59b326 | |||
| d8af8d26be | |||
| 02426bc101 | |||
| 11f8471772 | |||
| d35b720a16 | |||
| 7a5b84c10a | |||
| 800860d4e6 | |||
| ac81418684 | |||
| 7daad58607 | |||
| 038ca23523 | |||
| 37d8833b95 | |||
| fdcba13369 | |||
| b1ac0adfd8 | |||
| 7ba2893635 | |||
| ed8baf8c15 | |||
| 758377ed5d | |||
| a2091d10fe | |||
| fed12cb99f | |||
| 66c365d11f | |||
| 044f4c9ed3 | |||
| 91a74813d9 | |||
| a0b645a0a7 | |||
| d439fb2915 | |||
| 7efd4d872f | |||
| 1b09760631 | |||
| 04daadceed | |||
| 4d3df96350 | |||
| d7e2ae8fcb | |||
| 73f471e685 | |||
| 390ad875ee | |||
| e5f43bf315 | |||
| 8a72ebca89 | |||
| ad1eff2adb | |||
| 9e252df8d9 | |||
| 67584083c6 | |||
| c1c7e94cf6 | |||
| 85dec35366 | |||
| d5372a5ff6 | |||
| c8eb792d38 | |||
| f4ef7edf86 | |||
| 67c733b418 | |||
| fe4db2eb98 | |||
| 2891014cf6 | |||
| e809c688df | |||
| 71a9bb2532 | |||
| 3363acb7db | |||
| 8f6f35b9cf | |||
| ff75f34333 | |||
| e2c0129037 | |||
| 7fe7f4b1c2 | |||
| 693487504c | |||
| 883d9ba49b | |||
| fe8d824526 | |||
| d2250b115f | |||
| e5ab9df086 | |||
| 96af371882 | |||
| bde76d1fb1 | |||
| eb4caaa688 | |||
| 3ba04b3831 | |||
| 7cd8b72bb7 | |||
| 2182b6e37c | |||
| 5d26b98ab8 | |||
| 979531afb7 | |||
| dcf7de9000 | |||
| 87999dbf27 | |||
| c2d18ce013 | |||
| 046a27bf4c | |||
| 841bc6e356 | |||
| e72b5b369c | |||
| d635a87f01 | |||
| 51481d3e30 | |||
| 77e11c7a24 | |||
| 3056bb6ffb | |||
| edc0cef2bb | |||
| 4bd2797f5e | |||
| f37dfd0a24 | |||
| 937ea00e9d | |||
| b431d5d681 | |||
| 0ef854ca4b | |||
| 2c6e50d48a | |||
| dcd94b1cfa | |||
| 89de98f71e | |||
| d16677224a | |||
| 89bebc4385 | |||
| 987ea8d39d | |||
| f4212a86c3 | |||
| 3c4a0cae11 | |||
| 2894a7caa0 | |||
| 044e639827 | |||
| d7b97fa7b8 | |||
| 62435a65f1 | |||
| bf4818cf97 | |||
| 3e09c49e03 | |||
| 9481c9a7d7 | |||
| ccefb47581 | |||
| 59af05aeb1 | |||
| b32834e2b3 | |||
| 6c7cbb7ee1 | |||
| 84c065ff28 | |||
| c9b92a81a3 | |||
| eed4776c6f | |||
| 22807bc619 | |||
| ae352c093e | |||
| 36d6681eac | |||
| 6cffe93970 | |||
| b1472c58d0 | |||
| 96450a76c7 | |||
| ac209053b9 | |||
| dce1aa37eb | |||
| 0b6831e4d7 | |||
| da6d8ba9a8 | |||
| f0e45c7a3c | |||
| cbfc88c87f | |||
| 8c5842aca9 | |||
| 483049f555 | |||
| a7a65ae39d | |||
| 45878df17d | |||
| 98142d8ade | |||
| 7956872d1d | |||
| e243c8e9a2 | |||
| 641d0d40cc | |||
| 50fad685b6 | |||
| 1ad49edd76 | |||
| 7ceaa4cc3e | |||
| b70c86542b | |||
| c1197c0084 | |||
| f0d807f0a2 | |||
| 5fa2c0ab27 | |||
| 3063bd887c | |||
| fac4a8f9dc | |||
| 9d8226da19 | |||
| 33754d289d | |||
| 959672dae3 | |||
| 90c17c09a8 | |||
| e0bf7223e0 | |||
| ba9af94228 | |||
| 122b6163dc | |||
| fab42ccc75 | |||
| f5dd2c8b0a | |||
| a126112a2d | |||
| 99cda5f5a3 | |||
| 56a5363528 | |||
| be65edbd5b | |||
| fe5d9251eb | |||
| 3cf48b2291 | |||
| cc4599b5fc | |||
| c1fa77df51 | |||
| 725fa491e6 | |||
| e2a6cd1d57 | |||
| 6ddf60fab8 | |||
| 2c07acfe81 | |||
| 3749742231 | |||
| 74b9610b45 | |||
| a725779ff6 | |||
| b82df25c75 | |||
| cc9b33b473 | |||
| 5496b746ea | |||
| f80f623ccf | |||
| cba6c5500f | |||
| bc8268af94 | |||
| 297cd16702 | |||
| 41711e50b9 | |||
| 2bfb8b75e8 | |||
| 58e96aa3de | |||
| 4f07b63b13 | |||
| 905dd6c888 | |||
| ab7f35a9ee | |||
| 6e81f698c0 | |||
| 8ad8ce68b5 | |||
| 644194d0d6 | |||
| 95b27f490c | |||
| 6032c0328e |
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: You found a bug or encountered a crash? Please report it here.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Provide a summary of the issue in the Title above, please do not "[Tag]" it. -->
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
<!-- Always use the most recent version from ae-mod.info, it might already be fixed. -->
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
<!-- Please provide the steps to reproduce it, otherwise we might not be able to fix it. -->
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
<!-- A clear and concise description of what you expected to happen. -->
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
<!-- Screenshots, crashlogs, etc. -->
|
||||||
|
<!-- A complete crashlog is required when reporting a crash. No excerpts. -->
|
||||||
|
<!-- Please use pastebin or gist for posting the complete crashlog. -->
|
||||||
|
|
||||||
|
**Environment**
|
||||||
|
<!-- Include as many relevant details about the environment -->
|
||||||
|
<!-- Like the used version, SP/MP, other mods and their version -->
|
||||||
|
<!-- The following ones are required, please note "latest" is not a version -->
|
||||||
|
|
||||||
|
- Minecraft Version:
|
||||||
|
- AE2 Version:
|
||||||
|
- Forge Version:
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: A feature request or suggestion to improve Applied Energistics 2
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- Provide a summary of the issue in the Title above, please do not "[Tag]" it. -->
|
||||||
|
|
||||||
|
**Describe the feature**
|
||||||
|
<!-- Tell us how it should work. -->
|
||||||
|
|
||||||
|
**Reasons why it should be considered**
|
||||||
|
<!-- This can help us in various degrees, e.g. to determine if it fits our design ideas. -->
|
||||||
|
|
||||||
|
**Additional Context**
|
||||||
|
<!-- Use this for further details, e.g. screenshots, links to mods for integrations. -->
|
||||||
|
<!-- Features will only be considered for the latest/next version. -->
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
name: Build mod
|
||||||
|
|
||||||
|
on: [ push, pull_request, workflow_dispatch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build mod
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up JDK 1.8
|
||||||
|
uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
distribution: 'adopt'
|
||||||
|
java-version: '8'
|
||||||
|
- name: Grant execute permission for gradlew
|
||||||
|
run: chmod +x gradlew
|
||||||
|
- name: Build with Gradle
|
||||||
|
run: ./gradlew -Pnet.minecraftforge.gradle.disableUpdateChecker=true build
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: appliedenergistics2
|
||||||
|
path: build/libs
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
!gradlew.bat
|
!gradlew.bat
|
||||||
!build.gradle
|
!build.gradle
|
||||||
!gradle.properties
|
!gradle.properties
|
||||||
|
!settings.gradle
|
||||||
!.travis.yml
|
!.travis.yml
|
||||||
|
|
||||||
# include markdowns
|
# include markdowns
|
||||||
|
|||||||
+19
-6
@@ -7,14 +7,27 @@ jdk:
|
|||||||
- openjdk8
|
- openjdk8
|
||||||
|
|
||||||
before_cache:
|
before_cache:
|
||||||
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
||||||
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
|
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
|
||||||
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/providedDummy.jar
|
- rm -f $HOME/.gradle/caches/minecraft/ForgeVersion.json
|
||||||
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/compileDummy.jar
|
- rm -f $HOME/.gradle/caches/minecraft/ForgeVersion.json.etag
|
||||||
|
- rm -fr $HOME/.gradle/caches/minecraft/deobfedDeps
|
||||||
|
- rm -f $HOME/.gradle/caches/*/fileHashes/fileHashes.bin
|
||||||
|
- rm -f $HOME/.gradle/caches/*/fileHashes/fileHashes.lock
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.gradle/caches/
|
- '$HOME/.m2/repository'
|
||||||
- $HOME/.gradle/wrapper/
|
- '$HOME/.sonar/cache'
|
||||||
|
- '$HOME/.gradle/wrapper'
|
||||||
|
- '$HOME/.gradle/caches'
|
||||||
|
|
||||||
|
addons:
|
||||||
|
sonarcloud:
|
||||||
|
organization: "appliedenergistics"
|
||||||
|
|
||||||
install: "./gradlew setupCIWorkspace"
|
install: "./gradlew setupCIWorkspace"
|
||||||
script: "./gradlew build test"
|
script:
|
||||||
|
- "./gradlew build"
|
||||||
|
- "./gradlew test"
|
||||||
|
- "./gradlew sonarqube"
|
||||||
|
|||||||
+58
@@ -0,0 +1,58 @@
|
|||||||
|
Changes so far :
|
||||||
|
|
||||||
|
Design changes/breakages:
|
||||||
|
- Interfaces no longer spill items of one pattern on other faces
|
||||||
|
- Interfaces now push patterns in round-robin (Interfaces, then sides)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
|
||||||
|
- Fix gregtech machines appearing with 'unnamed' or 'draconium lens' on the interface terminal on specific situations.
|
||||||
|
- Add memorycard support for fluid interfaces, import/export/storage busses and level emitters ( this fix was upstreamed to AE2 for MC 1.16)
|
||||||
|
- Storage busses now hide/show inaccessible items as configured.
|
||||||
|
- Exclusive Blocking mode for GTCE ( shapes, molds and configured circuits do not block GTCE machines )
|
||||||
|
- Blocking modes default to block on any item in the iventory the entity exposes
|
||||||
|
- Fuzzy includes items that report that they're damageable, but report a maxDamage of 0 ( auto-crafting of basic capacitors -> resonant capacitors is now possible ) <- Broken item implementation.
|
||||||
|
- Fix CME exceptions on the energy grid
|
||||||
|
- Fix AE going offline even with enough power by extracting from the local buffer always last
|
||||||
|
- Fix IO-Port copying craftable flag into items
|
||||||
|
- Fix NBT of old items not clearing on drives that reached 64 types once
|
||||||
|
|
||||||
|
Performance:
|
||||||
|
|
||||||
|
- Added @talchas fixes for insane channelless AE networks.
|
||||||
|
- Implemented StorageDrawers slotless itemrepository.
|
||||||
|
- Removed CraftedEvent calls (really bad lag with craftweaker versions before CraftTweaker2-1.12-4.1.20.626)
|
||||||
|
- Count items set in interfaces before queuing crafting for them needlessly
|
||||||
|
- Backported b7ca98d ( Avoid copying items on simulated item extraction )
|
||||||
|
- Cache some level emitters functions
|
||||||
|
- Reduced import bus insert simulation to 1 before real insertion (if possible)
|
||||||
|
- Backported itemlist re-implementation along with pattern changes to avoid CraftingManager fallback issues
|
||||||
|
- Instead of recalculating all the content of the network on every change, track the changes properly and apply them to the cached list of items
|
||||||
|
|
||||||
|
QOL:
|
||||||
|
|
||||||
|
- added highlight interface button to interface terminal ("?" button on the left of the interface slots)
|
||||||
|
- Added bar on the interface terminal that search by inputs ( The one on the LEFT, also searchs by interface name )
|
||||||
|
- Shortcut to molecular assemblers with free slots on the terminal interface by @Theisyat
|
||||||
|
- Toggle button on interface terminal to hide full interfaces
|
||||||
|
- JEI "U", "R" and "A" (Usages/Recipes/Bookmark) now work on the Crafting Status GUI. ( the one that shows the total items to craft, and whats missing)
|
||||||
|
- Patterns can now be made with items currently showing on JEI. ( This is overriden by Just Enough Energistics. )
|
||||||
|
- Added multiplier buttons to processing pattern gui
|
||||||
|
- Switched crafting terminal JEI search to fuzzy mode. If the recipe uses a damageable item, AE will try to grab it ( damaged tools )
|
||||||
|
- Encoded patterns stack up to 64 ( holding shift and clicking the encode arrow will transfer the encoded pattern to the player inventory)
|
||||||
|
- Encoded patterns can be draggred on the interface terminal.
|
||||||
|
- Storage Monitor and Conversion Monitor now also ccepts fluids
|
||||||
|
- Draggable JEI ghost items (also works on bookmarked items. SHIFT + Click will move the hovered item into the first free target slot)
|
||||||
|
- JEI auto switches between crafting and processing patterns
|
||||||
|
- GTCE Blocking mode work through phantom itemfaces
|
||||||
|
- Shift-clicking blank patterns into the pattern terminal will try to fill the blank pattern slots first
|
||||||
|
- Mismached simulated/real item count ( most often due to compacting drawers ) will now tell the player wich item cause the failure when trying to start a craft
|
||||||
|
- Added 'pattern expansion' cards that adds an extra row of patterns to interfaces. up to 3 card on an interface. (each card will increase the interface idle power draw by 4 times)
|
||||||
|
|
||||||
|
HOTKEYS:
|
||||||
|
|
||||||
|
- Implemented mousetweaks API. AE2 custom keybinds now work. (Try right clicking and use the scroll-wheel on the terminals)
|
||||||
|
- Holding SHIFT and scrolling UP and DOWN will increase the items set on the configured slots of Interfaces and Pattern Terminal (Processing mode)
|
||||||
@@ -1,189 +1,34 @@
|
|||||||
[](https://travis-ci.org/AppliedEnergistics/Applied-Energistics-2)
|
This is a fork of AE2 i made for trying to solve issues for the [Omnifactory](https://www.curseforge.com/minecraft/modpacks/omnifactory) modpack.
|
||||||
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases)
|
|
||||||
|
|
||||||
# Applied Energistics 2
|
See [AE2-Omnifactory](https://github.com/PrototypeTrousers/Applied-Energistics-2/tree/AE2-Omnifactory) branch for commits and [Releases](https://github.com/PrototypeTrousers/Applied-Energistics-2/releases) for the compiled jars.
|
||||||
|
|
||||||
## Table of Contents
|
# Applied Energistics 2 (PrototypeTrousers fork for Omnifactory)
|
||||||
|
|
||||||
* [About](#about)
|
|
||||||
* [Contacts](#contacts)
|
|
||||||
* [License](#license)
|
|
||||||
* [Downloads](#downloads)
|
|
||||||
* [Installation](#installation)
|
|
||||||
* [Issues](#issues)
|
|
||||||
* [Building](#building)
|
|
||||||
* [Contribution](#contribution)
|
|
||||||
* [API](#applied-energistics-2-api)
|
|
||||||
* [Localization](#applied-energistics-2-localization)
|
|
||||||
* [Credits](#credits)
|
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
A Mod about Matter, Energy and using them to conquer the world.
|
||||||
|
|
||||||
A Mod about Matter, Energy and using them to conquer the world..
|
## RecipeStages
|
||||||
|
You need to add the following into a CraftTweaker script:
|
||||||
|
```
|
||||||
|
mods.recipestages.Recipes.setPackageStage("appeng", allStages);
|
||||||
|
```
|
||||||
|
|
||||||
## Contacts
|
The second argument allows you to customize which stages exactly you want to be craftable with AE2. Idk why would you like to restrict any, but you can.
|
||||||
|
|
||||||
* [Website](http://ae-mod.info/)
|
|
||||||
* [IRC #appliedenergistics on esper.net](http://webchat.esper.net/?channels=appliedenergistics&prompt=1)
|
|
||||||
* [GitHub](https://github.com/AppliedEnergistics/Applied-Energistics-2)
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
* Applied Energistics 2 API
|
* Applied Energistics 2 API
|
||||||
- (c) 2013 - 2017 AlgorithmX2 et al
|
- (c) 2013 - 2018 AlgorithmX2 et al
|
||||||
- [](http://opensource.org/licenses/MIT)
|
- [](http://opensource.org/licenses/MIT)
|
||||||
* Applied Energistics 2
|
* Applied Energistics 2
|
||||||
- (c) 2013 - 2017 AlgorithmX2 et al
|
- (c) 2013 - 2018 AlgorithmX2 et al
|
||||||
- [](https://raw.githubusercontent.com/AppliedEnergistics/Applied-Energistics-2/rv2/LICENSE)
|
- [](https://raw.githubusercontent.com/AppliedEnergistics/Applied-Energistics-2/rv2/LICENSE)
|
||||||
* Textures and Models
|
* Textures and Models
|
||||||
- (c) 2013 - 2017 AlgorithmX2 et al
|
- (c) 2013 - 2018 AlgorithmX2 et al
|
||||||
- [](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
- [](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||||
* Text and Translations
|
* Text and Translations
|
||||||
- [](https://creativecommons.org/publicdomain/zero/1.0/)
|
- [](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
|
|
||||||
## Downloads
|
|
||||||
|
|
||||||
Downloads can be found on [CurseForge](http://www.curse.com/mc-mods/minecraft/223794-applied-energistics-2) or on the [official website](http://ae-mod.info/Downloads/).
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
You install this mod by putting it into the `minecraft/mods/` folder. It has no additional hard dependencies.
|
|
||||||
|
|
||||||
## Issues
|
|
||||||
|
|
||||||
Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue now!
|
|
||||||
|
|
||||||
1. Make sure your issue has not already been answered or fixed and you are using the latest version. Also think about whether your issue is a valid one before submitting it.
|
|
||||||
* If it is already possible with vanilla and AE2 itself, the suggestion will be considered invalid.
|
|
||||||
* Asking for a smaller version, more compact version, or more efficient version of something will also be considered invalid.
|
|
||||||
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues) and click [new issue](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/new)
|
|
||||||
3. Enter your a title of your issue (something that summarizes your issue), and then create a detailed description of the issue.
|
|
||||||
* Do not tag it with something like `[Feature]`, `[Bug]`, or a version.
|
|
||||||
* Restrict it to a single bug or feature, it makes managing them way easier for us.
|
|
||||||
* The following details are required. Also refer to the issue template when creating one.
|
|
||||||
* Forge version
|
|
||||||
* AE2 version
|
|
||||||
* Crash log, when reporting a crash (Please make sure to use [pastebin](http://pastebin.com/))
|
|
||||||
* Never post an excerpt of what you consider important
|
|
||||||
* Always post the full log
|
|
||||||
* Other mods and their version, when reporting an issue between AE and another mod
|
|
||||||
* Also consider updating these before submitting a new issue, it might be already fixed
|
|
||||||
* A detailed description of the bug or feature
|
|
||||||
* To further help in resolving your issues please try to include the follow if applicable:
|
|
||||||
* What was expected?
|
|
||||||
* How to reproduce the problem?
|
|
||||||
* This is usually a great detail and allows us to fix it way faster
|
|
||||||
* Server or Single Player?
|
|
||||||
* Screen shots or Pictures of the problem
|
|
||||||
* Mod Pack using and version?
|
|
||||||
* Keep in mind that some mods might use an outdated version of AE2
|
|
||||||
* If so you should report it to your modpack
|
|
||||||
4. Click `Submit New Issue`, and wait for feedback!
|
|
||||||
|
|
||||||
Providing as many details as possible does help us to find and resolve the issue faster and also you getting a fixed version as fast as possible.
|
|
||||||
|
|
||||||
Please note that we might close any issue not matching these requirements.
|
|
||||||
|
|
||||||
## Building
|
|
||||||
|
|
||||||
1. Clone this repository via
|
|
||||||
- SSH `git clone git@github.com:AppliedEnergistics/Applied-Energistics-2.git` or
|
|
||||||
- HTTPS `git clone https://github.com/AppliedEnergistics/Applied-Energistics-2.git`
|
|
||||||
2. Setup workspace
|
|
||||||
- Decompiled source `gradlew setupDecompWorkspace`
|
|
||||||
- Obfuscated source `gradlew setupDevWorkspace`
|
|
||||||
- CI server `gradlew setupCIWorkspace`
|
|
||||||
3. Build `gradlew build`. Jar will be in `build/libs`
|
|
||||||
4. For core developer: Setup IDE
|
|
||||||
- IntelliJ: Import into IDE, execute `gradlew genIntellijRuns` and change RunConfiguration to `*_main` as quickfix for [ForgeGradle](https://github.com/MinecraftForge/ForgeGradle/issues/357)
|
|
||||||
- Eclipse: execute `gradlew eclipse`
|
|
||||||
5. For add-on developer: Core-Mod Detection
|
|
||||||
- In order to have FML detect AE from your dev environment, add the following VM Option to your run profile
|
|
||||||
- `-Dfml.coreMods.load=appeng.coremod.AppEngCore`
|
|
||||||
|
|
||||||
## Contribution
|
|
||||||
|
|
||||||
Before you want to add major changes, you might want to discuss them with us first, before wasting your time.
|
|
||||||
If you are still willing to contribute to this project, you can contribute via [Pull-Request](https://help.github.com/articles/creating-a-pull-request).
|
|
||||||
|
|
||||||
The [guidelines for contributing](https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/master/.github/CONTRIBUTING.md) contain more detailed information about topics like the used code style and should also be considered.
|
|
||||||
|
|
||||||
Here are a few things to keep in mind that will help get your PR approved.
|
|
||||||
|
|
||||||
* A PR should be focused on content. Any PRs where the changes are only syntax will be rejected.
|
|
||||||
* Use the file you are editing as a style guide.
|
|
||||||
* Consider your feature. [Suggestion Guidelines](http://ae-mod.info/Suggestion-Guidelines/)
|
|
||||||
- Is your suggestion already possible using Vanilla + AE2?
|
|
||||||
- Make sure your feature isn't already in the works, or hasn't been rejected previously.
|
|
||||||
- Does your feature simplify another feature of AE2? These changes will not be accepted.
|
|
||||||
- If your feature can be done by any popular mod, discuss with us first.
|
|
||||||
|
|
||||||
**Getting Started**
|
|
||||||
|
|
||||||
1. Fork this repository
|
|
||||||
2. Clone the fork via
|
|
||||||
* SSH `git clone git@github.com:<your username>/Applied-Energistics-2.git` or
|
|
||||||
* HTTPS `git clone https://github.com/<your username>/Applied-Energistics-2.git`
|
|
||||||
3. Change code base
|
|
||||||
4. Add changes to git `git add -A`
|
|
||||||
5. Commit changes to your clone `git commit -m "<summery of made changes>"`
|
|
||||||
6. Push to your fork `git push`
|
|
||||||
7. Create a Pull-Request on GitHub
|
|
||||||
8. Wait for review
|
|
||||||
9. Squash commits for cleaner history
|
|
||||||
|
|
||||||
If you are only doing single file pull requests, GitHub supports using a quick way without the need of cloning your fork. Also read up about [synching](https://help.github.com/articles/syncing-a-fork) if you plan to contribute on regular basis.
|
|
||||||
|
|
||||||
## Applied Energistics 2 API
|
|
||||||
|
|
||||||
The API for Applied Energistics 2. It is open source to discuss changes, improve documentation, and provide better add-on support in general.
|
|
||||||
|
|
||||||
Universal builds obtained [Here](http://ae2.ae-mod.info/Downloads/) should work in a development environment.
|
|
||||||
|
|
||||||
### Maven
|
|
||||||
|
|
||||||
When compiling against the AE2 API you can use gradle dependencies, just add
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compile "appeng:appliedenergistics2:rv_-_____-__:dev"
|
|
||||||
}
|
|
||||||
|
|
||||||
or add the compile line to your existing dependencies task to your build.gradle
|
|
||||||
|
|
||||||
Where the __ are filled in with the correct version criteria; AE2 is available from the default forge maven so no additional repositories are necessary.
|
|
||||||
|
|
||||||
An example string would be `appeng:appliedenergistics2:rv2-alpha-30:dev`
|
|
||||||
|
|
||||||
## Applied Energistics 2 Localization
|
|
||||||
|
|
||||||
### English Text
|
|
||||||
|
|
||||||
`en_US` is included in this repository, fixes to typos are welcome.
|
|
||||||
|
|
||||||
### Encoding
|
|
||||||
|
|
||||||
Files must be encoded as UTF-8.
|
|
||||||
|
|
||||||
### New or updated Translations
|
|
||||||
|
|
||||||
The language files are located in `/src/main/resources/assets/appliedenergistics2/lang/` and use the [appropriate locale code](http://minecraft.gamepedia.com/Language) as name and `.lang` as extension.
|
|
||||||
|
|
||||||
To update an translation edit the corresponding file and improve/correct the existing entry. Or copy any entries from `en_US.lang` for missing translation.
|
|
||||||
|
|
||||||
To create a new translation, copy the contents of `en_US.lang`, create a new file with appropriate filename, and translate it to your language.
|
|
||||||
|
|
||||||
Please keep in mind that we use [String format](https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html) to pass additional data to the text for displaying.
|
|
||||||
Therefore you should preserve parts like `%s` or `%1$d%%`, which allows us to replace them with the correct values while you still have the option to change their order for match the rules of grammar.
|
|
||||||
This might not be possible for some languages. Should this be the case, please contact us.
|
|
||||||
|
|
||||||
### Final Note
|
|
||||||
|
|
||||||
If you have have issues localizing something feel free to contact us on IRC, at #AppliedEnergistics on Esper.net
|
|
||||||
|
|
||||||
Thanks to everyone helping out to improve localization of AE2.
|
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
Thanks to
|
Thanks to
|
||||||
|
|
||||||
* Notch et al for Minecraft
|
* Notch et al for Minecraft
|
||||||
|
|||||||
+993
-81
File diff suppressed because it is too large
Load Diff
+134
-17
@@ -1,31 +1,148 @@
|
|||||||
aeversion=rv5
|
aeversion=rv6
|
||||||
aechannel=alpha
|
aechannel=stable
|
||||||
aebuild=0
|
aebuild=7
|
||||||
aegroup=appeng
|
aegroup=appeng
|
||||||
aebasename=appliedenergistics2
|
aebasename=appliedenergistics2
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Versions #
|
# Versions #
|
||||||
#########################################################
|
#########################################################
|
||||||
minecraft_version=1.12.1
|
minecraft_version=1.12.2
|
||||||
mcp_mappings=snapshot_20170811
|
mcp_mappings=snapshot_20171003
|
||||||
forge_version=14.22.1.2478
|
forge_version=14.23.5.2847
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Installable #
|
# Installable #
|
||||||
#########################################################
|
#########################################################
|
||||||
hwyla_version=1.8.20-B35_1.12
|
hwyla_version=1.8.26-B41_1.12.2
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# Provided APIs #
|
# Provided APIs #
|
||||||
#########################################################
|
#########################################################
|
||||||
jei_version=4.7.8.95
|
jei_version=4.16.1.302
|
||||||
tesla_version=1.0.61
|
tesla_version=1.0.63
|
||||||
ic2_version=2.8.19-ex112
|
ic2_version=2.8.73-ex112
|
||||||
top_version=1.12-1.4.18-10
|
top_version=1.12-1.4.23-16
|
||||||
|
crafttweaker_version=4.1.20.684
|
||||||
|
ctm_version=MC1.12.2-0.3.1.16
|
||||||
|
forestry_version=5.8.2.387
|
||||||
#########################################################
|
#########################################################
|
||||||
# Deployment #
|
# Deployment #
|
||||||
#########################################################
|
#########################################################
|
||||||
website_version=1.12.x
|
website_version=1.12.2
|
||||||
curse_versions=1.12,1.12.1
|
curse_versions=1.12.2
|
||||||
|
mapping_channel=snapshot
|
||||||
|
mapping_version=20171003
|
||||||
|
# Run Configurations
|
||||||
|
minecraft_username=Developer
|
||||||
|
extra_jvm_args=
|
||||||
|
modName=Applied Energistics 2
|
||||||
|
# This is a case-sensitive string to identify your mod. Convention is to use lower case.
|
||||||
|
modId=appliedenergistics2
|
||||||
|
modGroup=appeng
|
||||||
|
# Version of your mod.
|
||||||
|
# This field can be left empty if you want your mod's version to be determined by the latest git tag instead.
|
||||||
|
modVersion=rv6-stable-7-extended_life-v0.55.21
|
||||||
|
# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version)
|
||||||
|
includeMCVersionJar=false
|
||||||
|
# The name of your jar when you produce builds, not including any versioning info
|
||||||
|
modArchivesBaseName=appliedenergistics2
|
||||||
|
# Will update your build.gradle automatically whenever an update is available
|
||||||
|
autoUpdateBuildScript=false
|
||||||
|
minecraftVersion=1.12.2
|
||||||
|
# Select a username for testing your mod with breakpoints. You may leave this empty for a random username each time you
|
||||||
|
# restart Minecraft in development. Choose this dependent on your mod:
|
||||||
|
# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name
|
||||||
|
# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty
|
||||||
|
# Alternatively this can be set with the 'DEV_USERNAME' environment variable.
|
||||||
|
developmentEnvironmentUserName=Developer
|
||||||
|
# Enables using modern java syntax (up to version 17) via Jabel, while still targeting JVM 8.
|
||||||
|
# See https://github.com/bsideup/jabel for details on how this works.
|
||||||
|
# Using this requires that you use a Java 17 JDK for development.
|
||||||
|
enableModernJavaSyntax=true
|
||||||
|
# Generate a class with String fields for the mod id, name and version named with the fields below
|
||||||
|
generateGradleTokenClass=appeng.Tags
|
||||||
|
gradleTokenModId=
|
||||||
|
gradleTokenModName=
|
||||||
|
gradleTokenVersion=VERSION
|
||||||
|
# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can
|
||||||
|
# leave this property empty.
|
||||||
|
# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api
|
||||||
|
apiPackage=api
|
||||||
|
# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/
|
||||||
|
# There can be multiple files in a comma-separated list.
|
||||||
|
# Example value: mymodid_at.cfg,jei_at.cfg
|
||||||
|
accessTransformersFile=appliedenergistics2_at.cfg
|
||||||
|
# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled!
|
||||||
|
usesMixins=false
|
||||||
|
# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail!
|
||||||
|
mixinsPackage=
|
||||||
|
# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin!
|
||||||
|
# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin
|
||||||
|
coreModClass=core.AE2ELCore
|
||||||
|
# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod (meaning that
|
||||||
|
# there is no class annotated with @Mod) you want this to be true. When in doubt: leave it on false!
|
||||||
|
containsMixinsAndOrCoreModOnly=false
|
||||||
|
# Enables Mixins even if this mod doesn't use them, useful if one of the dependencies uses mixins.
|
||||||
|
forceEnableMixins=false
|
||||||
|
# Adds CurseMaven, Modrinth Maven, BlameJared maven, and some more well-known 1.12.2 repositories
|
||||||
|
includeWellKnownRepositories=true
|
||||||
|
# Adds JEI and TheOneProbe to your development environment. Adds them as 'implementation', meaning they will
|
||||||
|
# be available at compiletime and runtime for your mod (in-game and in-code).
|
||||||
|
# Overrides the above setting to be always true, as these repositories are needed to fetch the mods
|
||||||
|
includeCommonDevEnvMods=true
|
||||||
|
# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your
|
||||||
|
# responsibility check the licence and request permission for distribution, if required.
|
||||||
|
usesShadowedDependencies=false
|
||||||
|
# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access
|
||||||
|
# their own classes, making the minimization unreliable.
|
||||||
|
minimizeShadowedDependencies=true
|
||||||
|
# If disabled, won't rename the shadowed classes.
|
||||||
|
relocateShadowedDependencies=true
|
||||||
|
# Publishing to modrinth requires you to set the MODRINTH_API_KEY environment variable to your current modrinth API token.
|
||||||
|
# The project's ID on Modrinth. Can be either the slug or the ID.
|
||||||
|
# Leave this empty if you don't want to publish on Modrinth.
|
||||||
|
# Alternatively this can be set with the 'MODRINTH_PROJECT_ID' environment variable.
|
||||||
|
modrinthProjectId=
|
||||||
|
# The project's relations on Modrinth. You can use this to refer to other projects on Modrinth.
|
||||||
|
# Syntax: scope1-type1:name1;scope2-type2:name2;...
|
||||||
|
# Where scope can be one of [required, optional, incompatible, embedded],
|
||||||
|
# type can be one of [project, version],
|
||||||
|
# and the name is the Modrinth project or version slug/id of the other mod.
|
||||||
|
# Example: required-project:jei;optional-project:top;incompatible-project:gregtech
|
||||||
|
modrinthRelations=
|
||||||
|
# Publishing to CurseForge requires you to set the CURSEFORGE_API_KEY environment variable to one of your CurseForge API tokens.
|
||||||
|
# The project's numeric ID on CurseForge. You can find this in the About Project box.
|
||||||
|
# Leave this empty if you don't want to publish on CurseForge.
|
||||||
|
# Alternatively this can be set with the 'CURSEFORGE_PROJECT_ID' environment variable.
|
||||||
|
curseForgeProjectId=
|
||||||
|
# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge.
|
||||||
|
# Syntax: type1:name1;type2:name2;...
|
||||||
|
# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible],
|
||||||
|
# and the name is the CurseForge project slug of the other mod.
|
||||||
|
# Example: requiredDependency:railcraft;embeddedLibrary:cofhlib;incompatible:buildcraft
|
||||||
|
curseForgeRelations=
|
||||||
|
# This project's release type on CurseForge and/or Modrinth
|
||||||
|
# Allowed types: release, beta, alpha
|
||||||
|
releaseType=beta
|
||||||
|
# Generate a default changelog for releases. Requires git to be installed, as it uses it to generate a changelog of
|
||||||
|
# commits since the last tagged release.
|
||||||
|
generateDefaultChangelog=false
|
||||||
|
# Prevent the source code from being published
|
||||||
|
noPublishedSources=false
|
||||||
|
# Enable spotless checks
|
||||||
|
# Enforces code formatting on your source code
|
||||||
|
# By default this will use the files found here: https://github.com/GregTechCEu/Buildscripts/tree/master/spotless
|
||||||
|
# to format your code. However, you can create your own version of these files and place them in your project's
|
||||||
|
# root directory to apply your own formatting options instead.
|
||||||
|
enableSpotless=false
|
||||||
|
# Enable JUnit testing platform used for testing your code.
|
||||||
|
# Uses JUnit 5. See guide and documentation here: https://junit.org/junit5/docs/current/user-guide/
|
||||||
|
enableJUnit=true
|
||||||
|
# Deployment debug setting
|
||||||
|
# Uncomment this to test deployments to CurseForge and Modrinth
|
||||||
|
# Alternatively, you can set the 'DEPLOYMENT_DEBUG' environment variable.
|
||||||
|
deploymentDebug=false
|
||||||
|
# Gradle Settings
|
||||||
|
# Effectively applies the '--stacktrace' flag by default
|
||||||
|
org.gradle.logging.stacktrace=all
|
||||||
|
# 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
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of Applied Energistics 2.
|
|
||||||
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Suppresses warnings/errors when building javadocs
|
|
||||||
allprojects {
|
|
||||||
tasks.withType(Javadoc) {
|
|
||||||
options.addStringOption('Xdoclint:none', '-quiet')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
javadoc {
|
|
||||||
options.encoding = 'UTF-8'
|
|
||||||
options.charSet = 'UTF-8'
|
|
||||||
}
|
|
||||||
|
|
||||||
task javadocs(type: Javadoc) {
|
|
||||||
source = sourceSets.api.java
|
|
||||||
include "appeng/api/**"
|
|
||||||
|
|
||||||
// Due to ForgeGradle having to be a special snowflake,
|
|
||||||
// we have to add some custom configurations to the normal compile configuration and hope it does not break.
|
|
||||||
classpath = configurations.compile + configurations.forgeGradleMc + configurations.forgeGradleMcDeps
|
|
||||||
}
|
|
||||||
|
|
||||||
task javadocJar(type: Jar, dependsOn: javadocs) {
|
|
||||||
from javadoc.destinationDir
|
|
||||||
classifier = 'javadoc'
|
|
||||||
}
|
|
||||||
|
|
||||||
task apiJar(type: Jar) {
|
|
||||||
from sourceSets.api.java
|
|
||||||
include "appeng/api/**"
|
|
||||||
|
|
||||||
from sourceSets.api.output
|
|
||||||
include "appeng/api/**"
|
|
||||||
|
|
||||||
classifier = 'api'
|
|
||||||
}
|
|
||||||
|
|
||||||
artifacts {
|
|
||||||
archives apiJar
|
|
||||||
archives javadocJar
|
|
||||||
archives sourceJar
|
|
||||||
}
|
|
||||||
@@ -19,6 +19,15 @@
|
|||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
|
|
||||||
|
maven {
|
||||||
|
url "https://cursemaven.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
maven {
|
||||||
|
name = "CurseForge"
|
||||||
|
url = "https://minecraft.curseforge.com/api/maven/"
|
||||||
|
}
|
||||||
|
|
||||||
maven {
|
maven {
|
||||||
name "Mobius"
|
name "Mobius"
|
||||||
url "http://mobiusstrip.eu/maven"
|
url "http://mobiusstrip.eu/maven"
|
||||||
@@ -30,8 +39,8 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
maven {
|
maven {
|
||||||
name = "Tesla repo"
|
name "Ellpeck"
|
||||||
url "http://maven.epoxide.xyz"
|
url "https://maven.ellpeck.de"
|
||||||
}
|
}
|
||||||
|
|
||||||
maven {
|
maven {
|
||||||
@@ -48,16 +57,21 @@ repositories {
|
|||||||
name 'tterrag maven'
|
name 'tterrag maven'
|
||||||
url "http://maven.tterrag.com/"
|
url "http://maven.tterrag.com/"
|
||||||
}
|
}
|
||||||
|
|
||||||
maven { // McJtyLib
|
maven { // McJtyLib
|
||||||
name 'mcjty'
|
name 'mcjty'
|
||||||
url "http://maven.k-4u.nl/"
|
url "http://maven.k-4u.nl/"
|
||||||
}
|
}
|
||||||
|
|
||||||
maven { // Hwyla
|
maven { // CraftTweaker
|
||||||
name 'tehnut'
|
name 'jared maven'
|
||||||
url "http://tehnut.info/maven"
|
url "http://maven.blamejared.com/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//maven { // modmaven, maven proxy
|
||||||
|
// name 'modmaven'
|
||||||
|
// url "https://modmaven.k-4u.nl/"
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
@@ -65,21 +79,42 @@ configurations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
// deobfCompile "gregtechce:gregtech:1.12.2:1.15.1.735"
|
||||||
// installable runtime dependencies
|
// installable runtime dependencies
|
||||||
mods "mcp.mobius.waila:Hwyla:${hwyla_version}"
|
implementation rfg.deobf("curse.maven:gregtechceu-557242:4429261")
|
||||||
|
|
||||||
|
compileOnly "curse.maven:chisel-235279:2915375"
|
||||||
|
|
||||||
|
implementation rfg.deobf("curse.maven:baubles-227083:2518667")
|
||||||
|
//mods "mcp.mobius.waila:Hwyla:${hwyla_version}"
|
||||||
|
mods "curse.maven:hwyla-253449:2568751"
|
||||||
mods "net.industrial-craft:industrialcraft-2:${ic2_version}:dev"
|
mods "net.industrial-craft:industrialcraft-2:${ic2_version}:dev"
|
||||||
mods "mcjty.theoneprobe:TheOneProbe-${minecraft_version}:${top_version}"
|
mods "mcjty.theoneprobe:TheOneProbe-${minecraft_version}:${top_version}"
|
||||||
|
|
||||||
// compile against provided APIs
|
// compile against provided APIs
|
||||||
compileOnly "mezz.jei:jei_${minecraft_version}:${jei_version}:api"
|
compileOnly "mezz.jei:jei_${minecraft_version}:${jei_version}:api"
|
||||||
compileOnly "mcp.mobius.waila:Hwyla:${hwyla_version}"
|
//compileOnly "mcp.mobius.waila:Hwyla:${hwyla_version}"
|
||||||
compileOnly "net.darkhax.tesla:Tesla-1.12:${tesla_version}"
|
compileOnly "curse.maven:hwyla-253449:2568751"
|
||||||
|
//Code chicken lib, GTCE dependency
|
||||||
|
implementation rfg.deobf("curse.maven:CCL-242818:2779848")
|
||||||
|
|
||||||
|
compileOnly "curse.maven:recipe-stages-280554:3405072"
|
||||||
|
compileOnly "curse.maven:item-stages-280316:2696769"
|
||||||
|
compileOnly "curse.maven:game-stages-268655:2951844"
|
||||||
|
compileOnly "net.darkhax.tesla:Tesla-1.12.2:${tesla_version}"
|
||||||
compileOnly "net.industrial-craft:industrialcraft-2:${ic2_version}:api"
|
compileOnly "net.industrial-craft:industrialcraft-2:${ic2_version}:api"
|
||||||
compileOnly "mcjty.theoneprobe:TheOneProbe-1.12:${top_version}:api"
|
compileOnly "mcjty.theoneprobe:TheOneProbe-1.12:${top_version}:api"
|
||||||
|
compileOnly "curse.maven:CoFHCore-69162:2920433"
|
||||||
|
compileOnly "CraftTweaker2:CraftTweaker2-API:${crafttweaker_version}"
|
||||||
|
compileOnly "curse.maven:inventory-tweaks-223094:2482482"
|
||||||
|
compileOnly "curse.maven:inventory-bogo-sorter-632327:4399738"
|
||||||
|
compileOnly "team.chisel.ctm:CTM:${ctm_version}"
|
||||||
|
compileOnly "de.ellpeck.actuallyadditions:ActuallyAdditions:1.12.2-r152.16:api"
|
||||||
|
implementation rfg.deobf("net.sengir.forestry:forestry_${minecraft_version}:$forestry_version")
|
||||||
|
|
||||||
// at runtime, use the full JEI jar
|
// at runtime, use the full JEI jar
|
||||||
runtime "mezz.jei:jei_${minecraft_version}:${jei_version}"
|
runtimeOnly "mezz.jei:jei_${minecraft_version}:${jei_version}"
|
||||||
|
|
||||||
// unit test dependencies
|
// unit test dependencies
|
||||||
testCompile "junit:junit:4.12"
|
testImplementation "junit:junit:4.12"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,41 +15,40 @@
|
|||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General Public License
|
||||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
task wrapper(type: Wrapper) {
|
|
||||||
gradleVersion = "2.14"
|
|
||||||
}
|
|
||||||
|
|
||||||
// HWYLA
|
// HWYLA
|
||||||
task installHwyla(type: Copy, dependsOn: "deinstallHwyla") {
|
tasks.register('installHwyla', Copy) {
|
||||||
|
dependsOn "deinstallHwyla"
|
||||||
from { configurations.mods }
|
from { configurations.mods }
|
||||||
include "**/*Hwyla*.jar"
|
include "**/*Hwyla*.jar"
|
||||||
into file(minecraft.runDir + "/mods")
|
into file("/run/mods")
|
||||||
}
|
}
|
||||||
|
|
||||||
task deinstallHwyla(type: Delete) {
|
tasks.register('deinstallHwyla', Delete) {
|
||||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Hwyla*.jar")
|
delete fileTree(dir: "/run/mods", include: "*Hwyla*.jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
// IC2
|
// IC2
|
||||||
task installIC2(type: Copy, dependsOn: "deinstallIC2") {
|
tasks.register('installIC2', Copy) {
|
||||||
|
dependsOn "deinstallIC2"
|
||||||
from { configurations.mods }
|
from { configurations.mods }
|
||||||
include "**/*industrialcraft-2*.jar"
|
include "**/*industrialcraft-2*.jar"
|
||||||
into file(minecraft.runDir + "/mods")
|
into file("/run/mods")
|
||||||
}
|
}
|
||||||
|
|
||||||
task deinstallIC2(type: Delete) {
|
tasks.register('deinstallIC2', Delete) {
|
||||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*industrialcraft-2*.jar")
|
delete fileTree(dir: "/run/mods", include: "*industrialcraft-2*.jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TOP
|
// TOP
|
||||||
task installTop(type: Copy, dependsOn: ["deinstallTop"]) {
|
tasks.register('installTop', Copy) {
|
||||||
|
dependsOn["deinstallTop"]
|
||||||
from { configurations.mods }
|
from { configurations.mods }
|
||||||
include "**/*TheOneProbe*.jar"
|
include "**/*TheOneProbe*.jar"
|
||||||
into file(minecraft.runDir + "/mods")
|
into file("/run/mods")
|
||||||
}
|
}
|
||||||
|
|
||||||
task deinstallTop(type: Delete) {
|
tasks.register('deinstallTop', Delete) {
|
||||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*TheOneProbe*.jar")
|
delete fileTree(dir: "/run/mods", include: "*TheOneProbe*.jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
#Tue Jul 04 22:38:49 CEST 2017
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
|
||||||
|
networkTimeout=10000
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip
|
|
||||||
|
|||||||
@@ -1,78 +1,129 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright © 2015-2021 the original authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
##
|
#
|
||||||
## Gradle start up script for UN*X
|
# Gradle start up script for POSIX generated by Gradle.
|
||||||
##
|
#
|
||||||
|
# Important for running:
|
||||||
|
#
|
||||||
|
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||||
|
# noncompliant, but you have some other compliant shell such as ksh or
|
||||||
|
# bash, then to run this script, type that shell name before the whole
|
||||||
|
# command line, like:
|
||||||
|
#
|
||||||
|
# ksh Gradle
|
||||||
|
#
|
||||||
|
# Busybox and similar reduced shells will NOT work, because this script
|
||||||
|
# requires all of these POSIX shell features:
|
||||||
|
# * functions;
|
||||||
|
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||||
|
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||||
|
# * compound commands having a testable exit status, especially «case»;
|
||||||
|
# * various built-in commands including «command», «set», and «ulimit».
|
||||||
|
#
|
||||||
|
# Important for patching:
|
||||||
|
#
|
||||||
|
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||||
|
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||||
|
#
|
||||||
|
# The "traditional" practice of packing multiple parameters into a
|
||||||
|
# space-separated string is a well documented source of bugs and security
|
||||||
|
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||||
|
# options in "$@", and eventually passing that to Java.
|
||||||
|
#
|
||||||
|
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||||
|
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||||
|
# see the in-line comments for details.
|
||||||
|
#
|
||||||
|
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||||
|
# Darwin, MinGW, and NonStop.
|
||||||
|
#
|
||||||
|
# (3) This script is generated from the Groovy template
|
||||||
|
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
|
# within the Gradle project.
|
||||||
|
#
|
||||||
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
# Attempt to set APP_HOME
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="Gradle"
|
# Resolve links: $0 may be a link
|
||||||
APP_BASE_NAME=`basename "$0"`
|
app_path=$0
|
||||||
|
|
||||||
|
# Need this for daisy-chained symlinks.
|
||||||
|
while
|
||||||
|
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||||
|
[ -h "$app_path" ]
|
||||||
|
do
|
||||||
|
ls=$( ls -ld "$app_path" )
|
||||||
|
link=${ls#*' -> '}
|
||||||
|
case $link in #(
|
||||||
|
/*) app_path=$link ;; #(
|
||||||
|
*) app_path=$APP_HOME$link ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# This is normally unused
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
APP_BASE_NAME=${0##*/}
|
||||||
|
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
DEFAULT_JVM_OPTS=""
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD="maximum"
|
MAX_FD=maximum
|
||||||
|
|
||||||
warn ( ) {
|
warn () {
|
||||||
echo "$*"
|
echo "$*"
|
||||||
}
|
} >&2
|
||||||
|
|
||||||
die ( ) {
|
die () {
|
||||||
echo
|
echo
|
||||||
echo "$*"
|
echo "$*"
|
||||||
echo
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
}
|
} >&2
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
# OS specific support (must be 'true' or 'false').
|
||||||
cygwin=false
|
cygwin=false
|
||||||
msys=false
|
msys=false
|
||||||
darwin=false
|
darwin=false
|
||||||
nonstop=false
|
nonstop=false
|
||||||
case "`uname`" in
|
case "$( uname )" in #(
|
||||||
CYGWIN* )
|
CYGWIN* ) cygwin=true ;; #(
|
||||||
cygwin=true
|
Darwin* ) darwin=true ;; #(
|
||||||
;;
|
MSYS* | MINGW* ) msys=true ;; #(
|
||||||
Darwin* )
|
NONSTOP* ) nonstop=true ;;
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||||
else
|
else
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
JAVACMD=$JAVA_HOME/bin/java
|
||||||
fi
|
fi
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||||
@@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
|
|||||||
location of your Java installation."
|
location of your Java installation."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
JAVACMD="java"
|
JAVACMD=java
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
@@ -89,76 +140,105 @@ location of your Java installation."
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
# Increase the maximum file descriptors if we can.
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
case $MAX_FD in #(
|
||||||
if [ $? -eq 0 ] ; then
|
max*)
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
# shellcheck disable=SC3045
|
||||||
fi
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
ulimit -n $MAX_FD
|
warn "Could not query maximum file descriptor limit"
|
||||||
if [ $? -ne 0 ] ; then
|
esac
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
case $MAX_FD in #(
|
||||||
fi
|
'' | soft) :;; #(
|
||||||
else
|
*)
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||||
fi
|
# shellcheck disable=SC3045
|
||||||
fi
|
ulimit -n "$MAX_FD" ||
|
||||||
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
|
||||||
if $cygwin ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=$((i+1))
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
(0) set -- ;;
|
|
||||||
(1) set -- "$args0" ;;
|
|
||||||
(2) set -- "$args0" "$args1" ;;
|
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
# Collect all arguments for the java command, stacking in reverse order:
|
||||||
function splitJvmOpts() {
|
# * args from the command line
|
||||||
JVM_OPTS=("$@")
|
# * the main class name
|
||||||
}
|
# * -classpath
|
||||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
# * -D...appname settings
|
||||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
# * --module-path (only if needed)
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||||
|
|
||||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
|
if "$cygwin" || "$msys" ; then
|
||||||
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||||
|
for arg do
|
||||||
|
if
|
||||||
|
case $arg in #(
|
||||||
|
-*) false ;; # don't mess with options #(
|
||||||
|
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||||
|
[ -e "$t" ] ;; #(
|
||||||
|
*) false ;;
|
||||||
|
esac
|
||||||
|
then
|
||||||
|
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||||
|
fi
|
||||||
|
# Roll the args list around exactly as many times as the number of
|
||||||
|
# args, so each arg winds up back in the position where it started, but
|
||||||
|
# possibly modified.
|
||||||
|
#
|
||||||
|
# NB: a `for` loop captures its iteration list before it begins, so
|
||||||
|
# changing the positional parameters here affects neither the number of
|
||||||
|
# iterations, nor the values presented in `arg`.
|
||||||
|
shift # remove old arg
|
||||||
|
set -- "$@" "$arg" # push replacement arg
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Collect all arguments for the java command;
|
||||||
|
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||||
|
# shell script including quotes and variable substitutions, so put them in
|
||||||
|
# double quotes to make sure that they get re-expanded; and
|
||||||
|
# * put everything else in single quotes, so that it's not re-expanded.
|
||||||
|
|
||||||
|
set -- \
|
||||||
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
|
org.gradle.wrapper.GradleWrapperMain \
|
||||||
|
"$@"
|
||||||
|
|
||||||
|
# Stop when "xargs" is not available.
|
||||||
|
if ! command -v xargs >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "xargs is not available"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use "xargs" to parse quoted args.
|
||||||
|
#
|
||||||
|
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||||
|
#
|
||||||
|
# In Bash we could simply go:
|
||||||
|
#
|
||||||
|
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||||
|
# set -- "${ARGS[@]}" "$@"
|
||||||
|
#
|
||||||
|
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||||
|
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||||
|
# character that might be a shell metacharacter, then use eval to reverse
|
||||||
|
# that process (while maintaining the separation between arguments), and wrap
|
||||||
|
# the whole thing up as a single "set" statement.
|
||||||
|
#
|
||||||
|
# This will of course break if any of these variables contains a newline or
|
||||||
|
# an unmatched quote.
|
||||||
|
#
|
||||||
|
|
||||||
|
eval "set -- $(
|
||||||
|
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||||
|
xargs -n1 |
|
||||||
|
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||||
|
tr '\n' ' '
|
||||||
|
)" '"$@"'
|
||||||
|
|
||||||
|
exec "$JAVACMD" "$@"
|
||||||
|
|||||||
Vendored
-6
@@ -49,7 +49,6 @@ goto fail
|
|||||||
@rem Get command-line arguments, handling Windows variants
|
@rem Get command-line arguments, handling Windows variants
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
|
||||||
|
|
||||||
:win9xME_args
|
:win9xME_args
|
||||||
@rem Slurp the command line arguments.
|
@rem Slurp the command line arguments.
|
||||||
@@ -60,11 +59,6 @@ set _SKIP=2
|
|||||||
if "x%~1" == "x" goto execute
|
if "x%~1" == "x" goto execute
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
set CMD_LINE_ARGS=%*
|
||||||
goto execute
|
|
||||||
|
|
||||||
:4NT_args
|
|
||||||
@rem Get arguments from the 4NT Shell from JP Software
|
|
||||||
set CMD_LINE_ARGS=%$
|
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
// RetroFuturaGradle
|
||||||
|
name 'GTNH Maven'
|
||||||
|
//noinspection HttpUrlsUsage
|
||||||
|
url 'http://jenkins.usrv.eu:8081/nexus/content/groups/public/'
|
||||||
|
allowInsecureProtocol = true
|
||||||
|
//noinspection GroovyAssignabilityCheck
|
||||||
|
mavenContent {
|
||||||
|
includeGroup 'com.gtnewhorizons'
|
||||||
|
includeGroup 'com.gtnewhorizons.retrofuturagradle'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
gradlePluginPortal()
|
||||||
|
mavenCentral()
|
||||||
|
mavenLocal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
// Automatic toolchain provisioning
|
||||||
|
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
rootProject.name = rootProject.projectDir.getName()
|
||||||
@@ -25,13 +25,13 @@ package appeng.api;
|
|||||||
|
|
||||||
|
|
||||||
import appeng.api.definitions.IDefinitions;
|
import appeng.api.definitions.IDefinitions;
|
||||||
import appeng.api.exceptions.FailedConnection;
|
|
||||||
import appeng.api.features.IRegistryContainer;
|
import appeng.api.features.IRegistryContainer;
|
||||||
import appeng.api.networking.IGridBlock;
|
import appeng.api.networking.IGridHelper;
|
||||||
import appeng.api.networking.IGridConnection;
|
|
||||||
import appeng.api.networking.IGridNode;
|
import appeng.api.networking.IGridNode;
|
||||||
import appeng.api.parts.IPartHelper;
|
import appeng.api.parts.IPartHelper;
|
||||||
import appeng.api.storage.IStorageHelper;
|
import appeng.api.storage.IStorageHelper;
|
||||||
|
import appeng.api.util.IClientHelper;
|
||||||
|
|
||||||
|
|
||||||
@AEInjectable
|
@AEInjectable
|
||||||
public interface IAppEngApi
|
public interface IAppEngApi
|
||||||
@@ -42,36 +42,28 @@ public interface IAppEngApi
|
|||||||
IRegistryContainer registries();
|
IRegistryContainer registries();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return helper for working with storage data types.
|
* @return A helper for working with storage data types.
|
||||||
*/
|
*/
|
||||||
IStorageHelper storage();
|
IStorageHelper storage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return helper for working with grids, and buses.
|
* @return A helper to create {@link IGridNode} and other grid related objects.
|
||||||
|
*/
|
||||||
|
IGridHelper grid();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return A helper for working with grids, and buses.
|
||||||
*/
|
*/
|
||||||
IPartHelper partHelper();
|
IPartHelper partHelper();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return an accessible list of all AE definitions
|
* @return An accessible list of all AE definitions
|
||||||
*/
|
*/
|
||||||
IDefinitions definitions();
|
IDefinitions definitions();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create a grid node for your {@link appeng.api.networking.IGridHost}
|
* @return Utility methods primarily useful for client side stuff
|
||||||
*
|
|
||||||
* @param block grid block
|
|
||||||
*
|
|
||||||
* @return grid node of block
|
|
||||||
*/
|
*/
|
||||||
IGridNode createGridNode( IGridBlock block );
|
IClientHelper client();
|
||||||
|
|
||||||
/**
|
|
||||||
* create a connection between two {@link appeng.api.networking.IGridNode}
|
|
||||||
*
|
|
||||||
* @param a to be connected gridnode
|
|
||||||
* @param b to be connected gridnode
|
|
||||||
*
|
|
||||||
* @throws appeng.api.exceptions.FailedConnection
|
|
||||||
*/
|
|
||||||
IGridConnection createGridConnection( IGridNode a, IGridNode b ) throws FailedConnection;
|
|
||||||
}
|
}
|
||||||
@@ -26,5 +26,20 @@ package appeng.api.config;
|
|||||||
|
|
||||||
public enum ActionItems
|
public enum ActionItems
|
||||||
{
|
{
|
||||||
WRENCH, CLOSE, STASH, ENCODE, SUBSTITUTION
|
WRENCH,
|
||||||
|
CLOSE,
|
||||||
|
STASH,
|
||||||
|
ENCODE,
|
||||||
|
SUBSTITUTION,
|
||||||
|
MULTIPLY_BY_TWO,
|
||||||
|
MULTIPLY_BY_THREE,
|
||||||
|
INCREASE_BY_ONE,
|
||||||
|
DIVIDE_BY_TWO,
|
||||||
|
DIVIDE_BY_THREE,
|
||||||
|
DECREASE_BY_ONE,
|
||||||
|
MAX_COUNT,
|
||||||
|
FREE_MOLECULAR_SLOT_SHORTCUT,
|
||||||
|
TOGGLE_SHOW_FULL_INTERFACES_ON,
|
||||||
|
TOGGLE_SHOW_FULL_INTERFACES_OFF,
|
||||||
|
HIGHLIGHT_INTERFACE
|
||||||
}
|
}
|
||||||
@@ -28,7 +28,8 @@ public enum PowerUnits
|
|||||||
{
|
{
|
||||||
AE( "gui.appliedenergistics2.units.appliedenergstics" ), // Native Units - AE Energy
|
AE( "gui.appliedenergistics2.units.appliedenergstics" ), // Native Units - AE Energy
|
||||||
EU( "gui.appliedenergistics2.units.ic2" ), // IndustrialCraft 2 - Energy Units
|
EU( "gui.appliedenergistics2.units.ic2" ), // IndustrialCraft 2 - Energy Units
|
||||||
RF( "gui.appliedenergistics2.units.rf" ); // RF - Redstone Flux
|
RF( "gui.appliedenergistics2.units.rf" ), // RF - Redstone Flux
|
||||||
|
GTEU( "gui.appliedenergistics2.units.gteu" ); // RF - Redstone Flux
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* unlocalized name for the power unit.
|
* unlocalized name for the power unit.
|
||||||
@@ -46,14 +47,13 @@ public enum PowerUnits
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* do power conversion using AE's conversion rates.
|
* do power conversion using AE's conversion rates.
|
||||||
*
|
* <p>
|
||||||
* Example: PowerUnits.EU.convertTo( PowerUnits.AE, 32 );
|
* Example: PowerUnits.EU.convertTo( PowerUnits.AE, 32 );
|
||||||
*
|
* <p>
|
||||||
* will normally returns 64, as it will convert the EU, to AE with AE's power settings.
|
* will normally returns 64, as it will convert the EU, to AE with AE's power settings.
|
||||||
*
|
*
|
||||||
* @param target target power unit
|
* @param target target power unit
|
||||||
* @param value value
|
* @param value value
|
||||||
*
|
|
||||||
* @return value converted to target units, from this units.
|
* @return value converted to target units, from this units.
|
||||||
*/
|
*/
|
||||||
public double convertTo( final PowerUnits target, final double value )
|
public double convertTo( final PowerUnits target, final double value )
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ package appeng.api.config;
|
|||||||
|
|
||||||
public enum SearchBoxMode
|
public enum SearchBoxMode
|
||||||
{
|
{
|
||||||
AUTOSEARCH, MANUAL_SEARCH, JEI_AUTOSEARCH, JEI_MANUAL_SEARCH
|
AUTOSEARCH, AUTOSEARCH_KEEP, MANUAL_SEARCH, MANUAL_SEARCH_KEEP, JEI_AUTOSEARCH, JEI_AUTOSEARCH_KEEP, JEI_MANUAL_SEARCH, JEI_MANUAL_SEARCH_KEEP
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,29 +33,53 @@ public enum Settings
|
|||||||
{
|
{
|
||||||
LEVEL_EMITTER_MODE( EnumSet.allOf( LevelEmitterMode.class ) ),
|
LEVEL_EMITTER_MODE( EnumSet.allOf( LevelEmitterMode.class ) ),
|
||||||
|
|
||||||
REDSTONE_EMITTER( EnumSet.of( RedstoneMode.HIGH_SIGNAL, RedstoneMode.LOW_SIGNAL ) ), REDSTONE_CONTROLLED( EnumSet.allOf( RedstoneMode.class ) ),
|
REDSTONE_EMITTER( EnumSet.of( RedstoneMode.HIGH_SIGNAL, RedstoneMode.LOW_SIGNAL ) ),
|
||||||
|
|
||||||
|
REDSTONE_CONTROLLED( EnumSet.allOf( RedstoneMode.class ) ),
|
||||||
|
|
||||||
CONDENSER_OUTPUT( EnumSet.allOf( CondenserOutput.class ) ),
|
CONDENSER_OUTPUT( EnumSet.allOf( CondenserOutput.class ) ),
|
||||||
|
|
||||||
POWER_UNITS( EnumSet.allOf( PowerUnits.class ) ), ACCESS( EnumSet.of( AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE ) ),
|
POWER_UNITS( EnumSet.allOf( PowerUnits.class ) ),
|
||||||
|
|
||||||
SORT_DIRECTION( EnumSet.allOf( SortDir.class ) ), SORT_BY( EnumSet.allOf( SortOrder.class ) ),
|
ACCESS( EnumSet.of( AccessRestriction.READ_WRITE, AccessRestriction.READ, AccessRestriction.WRITE ) ),
|
||||||
|
|
||||||
SEARCH_TOOLTIPS( EnumSet.of( YesNo.YES, YesNo.NO ) ), VIEW_MODE( EnumSet.allOf( ViewItems.class ) ), SEARCH_MODE( EnumSet.allOf( SearchBoxMode.class ) ),
|
SORT_DIRECTION( EnumSet.allOf( SortDir.class ) ),
|
||||||
|
|
||||||
ACTIONS( EnumSet.allOf( ActionItems.class ) ), IO_DIRECTION( EnumSet.of( RelativeDirection.LEFT, RelativeDirection.RIGHT ) ),
|
SORT_BY( EnumSet.allOf( SortOrder.class ) ),
|
||||||
|
|
||||||
BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ), OPERATION_MODE( EnumSet.allOf( OperationMode.class ) ),
|
SEARCH_TOOLTIPS( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
FULLNESS_MODE( EnumSet.allOf( FullnessMode.class ) ), CRAFT_ONLY( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
VIEW_MODE( EnumSet.allOf( ViewItems.class ) ),
|
||||||
|
|
||||||
FUZZY_MODE( EnumSet.allOf( FuzzyMode.class ) ), LEVEL_TYPE( EnumSet.allOf( LevelType.class ) ),
|
SEARCH_MODE( EnumSet.allOf( SearchBoxMode.class ) ),
|
||||||
|
|
||||||
TERMINAL_STYLE( EnumSet.of( TerminalStyle.TALL, TerminalStyle.SMALL ) ), COPY_MODE( EnumSet.allOf( CopyMode.class ) ),
|
ACTIONS( EnumSet.allOf( ActionItems.class ) ),
|
||||||
|
|
||||||
INTERFACE_TERMINAL( EnumSet.of( YesNo.YES, YesNo.NO ) ), CRAFT_VIA_REDSTONE( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
IO_DIRECTION( EnumSet.of( RelativeDirection.LEFT, RelativeDirection.RIGHT ) ),
|
||||||
|
|
||||||
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
|
OPERATION_MODE( EnumSet.allOf( OperationMode.class ) ),
|
||||||
|
|
||||||
|
FULLNESS_MODE( EnumSet.allOf( FullnessMode.class ) ),
|
||||||
|
|
||||||
|
CRAFT_ONLY( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
|
FUZZY_MODE( EnumSet.allOf( FuzzyMode.class ) ),
|
||||||
|
|
||||||
|
LEVEL_TYPE( EnumSet.allOf( LevelType.class ) ),
|
||||||
|
|
||||||
|
TERMINAL_STYLE( EnumSet.of( TerminalStyle.TALL, TerminalStyle.SMALL ) ),
|
||||||
|
|
||||||
|
COPY_MODE( EnumSet.allOf( CopyMode.class ) ),
|
||||||
|
|
||||||
|
INTERFACE_TERMINAL( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
|
CRAFT_VIA_REDSTONE( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
|
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ),
|
||||||
|
|
||||||
|
PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||||
|
|
||||||
SCHEDULING_MODE( EnumSet.allOf( SchedulingMode.class ) );
|
SCHEDULING_MODE( EnumSet.allOf( SchedulingMode.class ) );
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public enum TunnelType
|
|||||||
ME, // Network Tunnel
|
ME, // Network Tunnel
|
||||||
IC2_POWER, // EU Tunnel
|
IC2_POWER, // EU Tunnel
|
||||||
FE_POWER, // Forge Energy tunnel
|
FE_POWER, // Forge Energy tunnel
|
||||||
|
GTEU_POWER, // Forge Energy tunnel
|
||||||
REDSTONE, // Redstone Tunnel
|
REDSTONE, // Redstone Tunnel
|
||||||
FLUID, // Fluid Tunnel
|
FLUID, // Fluid Tunnel
|
||||||
ITEM, // Item Tunnel
|
ITEM, // Item Tunnel
|
||||||
|
|||||||
@@ -32,61 +32,61 @@ import net.minecraft.item.ItemStack;
|
|||||||
import appeng.api.definitions.IItemDefinition;
|
import appeng.api.definitions.IItemDefinition;
|
||||||
|
|
||||||
|
|
||||||
public enum Upgrades
|
public enum Upgrades {
|
||||||
{
|
/**
|
||||||
/**
|
* Gold Tier Upgrades.
|
||||||
* Gold Tier Upgrades.
|
*/
|
||||||
*/
|
CAPACITY(0),
|
||||||
CAPACITY( 0 ), REDSTONE( 0 ), CRAFTING( 0 ),
|
REDSTONE(0),
|
||||||
|
CRAFTING(0),
|
||||||
|
MAGNET(0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Diamond Tier Upgrades.
|
* Diamond Tier Upgrades.
|
||||||
*/
|
*/
|
||||||
FUZZY( 1 ), SPEED( 1 ), INVERTER( 1 );
|
FUZZY(1),
|
||||||
|
SPEED(1),
|
||||||
|
INVERTER(1),
|
||||||
|
PATTERN_EXPANSION(1),
|
||||||
|
QUANTUM_LINK(1);
|
||||||
|
|
||||||
private final int tier;
|
private final int tier;
|
||||||
private final Map<ItemStack, Integer> supportedMax = new HashMap<>();
|
private final Map<ItemStack, Integer> supportedMax = new HashMap<>();
|
||||||
|
|
||||||
Upgrades( final int tier )
|
Upgrades(final int tier) {
|
||||||
{
|
this.tier = tier;
|
||||||
this.tier = tier;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return list of Items/Blocks that support this upgrade, and how many it supports.
|
* @return list of Items/Blocks that support this upgrade, and how many it supports.
|
||||||
*/
|
*/
|
||||||
public Map<ItemStack, Integer> getSupported()
|
public Map<ItemStack, Integer> getSupported() {
|
||||||
{
|
return this.supportedMax;
|
||||||
return this.supportedMax;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a specific amount of this upgrade into a specific machine
|
* Registers a specific amount of this upgrade into a specific machine
|
||||||
*
|
*
|
||||||
* @param item machine in which this upgrade can be installed
|
* @param item machine in which this upgrade can be installed
|
||||||
* @param maxSupported amount how many upgrades can be installed
|
* @param maxSupported amount how many upgrades can be installed
|
||||||
*/
|
*/
|
||||||
public void registerItem( final IItemDefinition item, final int maxSupported )
|
public void registerItem(final IItemDefinition item, final int maxSupported) {
|
||||||
{
|
item.maybeStack(1).ifPresent(is -> this.registerItem(is, maxSupported));
|
||||||
item.maybeStack( 1 ).ifPresent( is -> this.registerItem( is, maxSupported ) );
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a specific amount of this upgrade into a specific machine
|
* Registers a specific amount of this upgrade into a specific machine
|
||||||
*
|
*
|
||||||
* @param stack machine in which this upgrade can be installed
|
* @param stack machine in which this upgrade can be installed
|
||||||
* @param maxSupported amount how many upgrades can be installed
|
* @param maxSupported amount how many upgrades can be installed
|
||||||
*/
|
*/
|
||||||
public void registerItem( final ItemStack stack, final int maxSupported )
|
public void registerItem(final ItemStack stack, final int maxSupported) {
|
||||||
{
|
if (stack != null) {
|
||||||
if( stack != null )
|
this.supportedMax.put(stack, maxSupported);
|
||||||
{
|
}
|
||||||
this.supportedMax.put( stack, maxSupported );
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getTier()
|
public int getTier() {
|
||||||
{
|
return this.tier;
|
||||||
return this.tier;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,6 +148,8 @@ public interface IBlocks
|
|||||||
|
|
||||||
ITileDefinition iface();
|
ITileDefinition iface();
|
||||||
|
|
||||||
|
ITileDefinition fluidIface();
|
||||||
|
|
||||||
ITileDefinition cellWorkbench();
|
ITileDefinition cellWorkbench();
|
||||||
|
|
||||||
ITileDefinition iOPort();
|
ITileDefinition iOPort();
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ import appeng.api.util.AEColoredItemDefinition;
|
|||||||
/**
|
/**
|
||||||
* A list of all items in AE
|
* A list of all items in AE
|
||||||
*/
|
*/
|
||||||
public interface IItems
|
public interface IItems {
|
||||||
{
|
|
||||||
IItemDefinition certusQuartzAxe();
|
IItemDefinition certusQuartzAxe();
|
||||||
|
|
||||||
IItemDefinition certusQuartzHoe();
|
IItemDefinition certusQuartzHoe();
|
||||||
@@ -64,6 +63,12 @@ public interface IItems
|
|||||||
|
|
||||||
IItemDefinition wirelessTerminal();
|
IItemDefinition wirelessTerminal();
|
||||||
|
|
||||||
|
IItemDefinition wirelessCraftingTerminal();
|
||||||
|
|
||||||
|
IItemDefinition wirelessPatternTerminal();
|
||||||
|
|
||||||
|
IItemDefinition wirelessFluidTerminal();
|
||||||
|
|
||||||
IItemDefinition biometricCard();
|
IItemDefinition biometricCard();
|
||||||
|
|
||||||
IItemDefinition chargedStaff();
|
IItemDefinition chargedStaff();
|
||||||
@@ -88,6 +93,14 @@ public interface IItems
|
|||||||
|
|
||||||
IItemDefinition cell64k();
|
IItemDefinition cell64k();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell1k();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell4k();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell16k();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell64k();
|
||||||
|
|
||||||
IItemDefinition spatialCell2();
|
IItemDefinition spatialCell2();
|
||||||
|
|
||||||
IItemDefinition spatialCell16();
|
IItemDefinition spatialCell16();
|
||||||
|
|||||||
@@ -27,111 +27,124 @@ package appeng.api.definitions;
|
|||||||
/**
|
/**
|
||||||
* A list of all materials in AE
|
* A list of all materials in AE
|
||||||
*/
|
*/
|
||||||
public interface IMaterials
|
public interface IMaterials {
|
||||||
{
|
IItemDefinition cell2SpatialPart();
|
||||||
IItemDefinition cell2SpatialPart();
|
|
||||||
|
|
||||||
IItemDefinition cell16SpatialPart();
|
IItemDefinition cell16SpatialPart();
|
||||||
|
|
||||||
IItemDefinition cell128SpatialPart();
|
IItemDefinition cell128SpatialPart();
|
||||||
|
|
||||||
IItemDefinition silicon();
|
IItemDefinition silicon();
|
||||||
|
|
||||||
IItemDefinition skyDust();
|
IItemDefinition skyDust();
|
||||||
|
|
||||||
IItemDefinition calcProcessorPress();
|
IItemDefinition calcProcessorPress();
|
||||||
|
|
||||||
IItemDefinition engProcessorPress();
|
IItemDefinition engProcessorPress();
|
||||||
|
|
||||||
IItemDefinition logicProcessorPress();
|
IItemDefinition logicProcessorPress();
|
||||||
|
|
||||||
IItemDefinition calcProcessorPrint();
|
IItemDefinition calcProcessorPrint();
|
||||||
|
|
||||||
IItemDefinition engProcessorPrint();
|
IItemDefinition engProcessorPrint();
|
||||||
|
|
||||||
IItemDefinition logicProcessorPrint();
|
IItemDefinition logicProcessorPrint();
|
||||||
|
|
||||||
IItemDefinition siliconPress();
|
IItemDefinition siliconPress();
|
||||||
|
|
||||||
IItemDefinition siliconPrint();
|
IItemDefinition siliconPrint();
|
||||||
|
|
||||||
IItemDefinition namePress();
|
IItemDefinition namePress();
|
||||||
|
|
||||||
IItemDefinition logicProcessor();
|
IItemDefinition logicProcessor();
|
||||||
|
|
||||||
IItemDefinition calcProcessor();
|
IItemDefinition calcProcessor();
|
||||||
|
|
||||||
IItemDefinition engProcessor();
|
IItemDefinition engProcessor();
|
||||||
|
|
||||||
IItemDefinition basicCard();
|
IItemDefinition basicCard();
|
||||||
|
|
||||||
IItemDefinition advCard();
|
IItemDefinition advCard();
|
||||||
|
|
||||||
IItemDefinition purifiedCertusQuartzCrystal();
|
IItemDefinition purifiedCertusQuartzCrystal();
|
||||||
|
|
||||||
IItemDefinition purifiedNetherQuartzCrystal();
|
IItemDefinition purifiedNetherQuartzCrystal();
|
||||||
|
|
||||||
IItemDefinition purifiedFluixCrystal();
|
IItemDefinition purifiedFluixCrystal();
|
||||||
|
|
||||||
IItemDefinition cell1kPart();
|
IItemDefinition cell1kPart();
|
||||||
|
|
||||||
IItemDefinition cell4kPart();
|
IItemDefinition cell4kPart();
|
||||||
|
|
||||||
IItemDefinition cell16kPart();
|
IItemDefinition cell16kPart();
|
||||||
|
|
||||||
IItemDefinition cell64kPart();
|
IItemDefinition cell64kPart();
|
||||||
|
|
||||||
IItemDefinition emptyStorageCell();
|
IItemDefinition emptyStorageCell();
|
||||||
|
|
||||||
IItemDefinition cardRedstone();
|
IItemDefinition cardRedstone();
|
||||||
|
|
||||||
IItemDefinition cardSpeed();
|
IItemDefinition cardSpeed();
|
||||||
|
|
||||||
IItemDefinition cardCapacity();
|
IItemDefinition cardCapacity();
|
||||||
|
|
||||||
IItemDefinition cardFuzzy();
|
IItemDefinition cardPatternExpansion();
|
||||||
|
|
||||||
IItemDefinition cardInverter();
|
IItemDefinition cardQuantumLink();
|
||||||
|
|
||||||
IItemDefinition cardCrafting();
|
IItemDefinition cardMagnet();
|
||||||
|
|
||||||
IItemDefinition enderDust();
|
IItemDefinition cardFuzzy();
|
||||||
|
|
||||||
IItemDefinition flour();
|
IItemDefinition cardInverter();
|
||||||
|
|
||||||
IItemDefinition goldDust();
|
IItemDefinition cardCrafting();
|
||||||
|
|
||||||
IItemDefinition ironDust();
|
IItemDefinition enderDust();
|
||||||
|
|
||||||
IItemDefinition fluixDust();
|
IItemDefinition flour();
|
||||||
|
|
||||||
IItemDefinition certusQuartzDust();
|
IItemDefinition goldDust();
|
||||||
|
|
||||||
IItemDefinition netherQuartzDust();
|
IItemDefinition ironDust();
|
||||||
|
|
||||||
IItemDefinition matterBall();
|
IItemDefinition fluixDust();
|
||||||
|
|
||||||
IItemDefinition certusQuartzCrystal();
|
IItemDefinition certusQuartzDust();
|
||||||
|
|
||||||
IItemDefinition certusQuartzCrystalCharged();
|
IItemDefinition netherQuartzDust();
|
||||||
|
|
||||||
IItemDefinition fluixCrystal();
|
IItemDefinition matterBall();
|
||||||
|
|
||||||
IItemDefinition fluixPearl();
|
IItemDefinition certusQuartzCrystal();
|
||||||
|
|
||||||
IItemDefinition woodenGear();
|
IItemDefinition certusQuartzCrystalCharged();
|
||||||
|
|
||||||
IItemDefinition wirelessReceiver();
|
IItemDefinition fluixCrystal();
|
||||||
|
|
||||||
IItemDefinition wirelessBooster();
|
IItemDefinition fluixPearl();
|
||||||
|
|
||||||
IItemDefinition annihilationCore();
|
IItemDefinition woodenGear();
|
||||||
|
|
||||||
IItemDefinition formationCore();
|
IItemDefinition wirelessReceiver();
|
||||||
|
|
||||||
IItemDefinition singularity();
|
IItemDefinition wirelessBooster();
|
||||||
|
|
||||||
IItemDefinition qESingularity();
|
IItemDefinition annihilationCore();
|
||||||
|
|
||||||
IItemDefinition blankPattern();
|
IItemDefinition formationCore();
|
||||||
|
|
||||||
|
IItemDefinition singularity();
|
||||||
|
|
||||||
|
IItemDefinition qESingularity();
|
||||||
|
|
||||||
|
IItemDefinition blankPattern();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell1kPart();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell4kPart();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell16kPart();
|
||||||
|
|
||||||
|
IItemDefinition fluidCell64kPart();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,81 +30,106 @@ import appeng.api.util.AEColoredItemDefinition;
|
|||||||
/**
|
/**
|
||||||
* A list of all parts in AE
|
* A list of all parts in AE
|
||||||
*/
|
*/
|
||||||
public interface IParts
|
public interface IParts {
|
||||||
{
|
AEColoredItemDefinition cableSmart();
|
||||||
AEColoredItemDefinition cableSmart();
|
|
||||||
|
|
||||||
AEColoredItemDefinition cableCovered();
|
AEColoredItemDefinition cableCovered();
|
||||||
|
|
||||||
AEColoredItemDefinition cableGlass();
|
AEColoredItemDefinition cableGlass();
|
||||||
|
|
||||||
AEColoredItemDefinition cableDenseCovered();
|
AEColoredItemDefinition cableDenseCovered();
|
||||||
|
|
||||||
AEColoredItemDefinition cableDenseSmart();
|
|
||||||
|
|
||||||
AEColoredItemDefinition lumenCableSmart();
|
AEColoredItemDefinition cableDenseSmart();
|
||||||
|
|
||||||
AEColoredItemDefinition lumenCableCovered();
|
AEColoredItemDefinition lumenCableSmart();
|
||||||
|
|
||||||
AEColoredItemDefinition lumenCableGlass();
|
AEColoredItemDefinition lumenCableCovered();
|
||||||
|
|
||||||
AEColoredItemDefinition lumenDenseCableSmart();
|
AEColoredItemDefinition lumenCableGlass();
|
||||||
|
|
||||||
IItemDefinition quartzFiber();
|
AEColoredItemDefinition lumenDenseCableSmart();
|
||||||
|
|
||||||
IItemDefinition toggleBus();
|
IItemDefinition quartzFiber();
|
||||||
|
|
||||||
IItemDefinition invertedToggleBus();
|
IItemDefinition toggleBus();
|
||||||
|
|
||||||
IItemDefinition storageBus();
|
IItemDefinition invertedToggleBus();
|
||||||
|
|
||||||
IItemDefinition importBus();
|
IItemDefinition storageBus();
|
||||||
|
|
||||||
IItemDefinition exportBus();
|
IItemDefinition oreDictStorageBus();
|
||||||
|
|
||||||
IItemDefinition iface();
|
IItemDefinition importBus();
|
||||||
|
|
||||||
IItemDefinition levelEmitter();
|
IItemDefinition exportBus();
|
||||||
|
|
||||||
IItemDefinition annihilationPlane();
|
IItemDefinition iface();
|
||||||
|
|
||||||
IItemDefinition identityAnnihilationPlane();
|
IItemDefinition fluidIface();
|
||||||
|
|
||||||
IItemDefinition formationPlane();
|
IItemDefinition levelEmitter();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelME();
|
IItemDefinition annihilationPlane();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelRedstone();
|
IItemDefinition identityAnnihilationPlane();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelItems();
|
IItemDefinition formationPlane();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelFluids();
|
IItemDefinition p2PTunnelME();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelEU();
|
IItemDefinition p2PTunnelRedstone();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelFE();
|
IItemDefinition p2PTunnelItems();
|
||||||
|
|
||||||
IItemDefinition p2PTunnelLight();
|
IItemDefinition p2PTunnelFluids();
|
||||||
|
|
||||||
// IItemDefinition p2PTunnelOpenComputers();
|
IItemDefinition p2PTunnelEU();
|
||||||
|
|
||||||
IItemDefinition cableAnchor();
|
IItemDefinition p2PTunnelFE();
|
||||||
|
|
||||||
IItemDefinition monitor();
|
IItemDefinition p2PTunnelGTEU();
|
||||||
|
|
||||||
IItemDefinition semiDarkMonitor();
|
IItemDefinition p2PTunnelLight();
|
||||||
|
|
||||||
IItemDefinition darkMonitor();
|
// IItemDefinition p2PTunnelOpenComputers();
|
||||||
|
|
||||||
IItemDefinition interfaceTerminal();
|
IItemDefinition cableAnchor();
|
||||||
|
|
||||||
IItemDefinition patternTerminal();
|
IItemDefinition monitor();
|
||||||
|
|
||||||
IItemDefinition craftingTerminal();
|
IItemDefinition semiDarkMonitor();
|
||||||
|
|
||||||
IItemDefinition terminal();
|
IItemDefinition darkMonitor();
|
||||||
|
|
||||||
IItemDefinition storageMonitor();
|
IItemDefinition interfaceTerminal();
|
||||||
|
|
||||||
IItemDefinition conversionMonitor();
|
IItemDefinition patternTerminal();
|
||||||
|
|
||||||
|
IItemDefinition expandedProcessingPatternTerminal();
|
||||||
|
|
||||||
|
IItemDefinition interfaceConfigurationTerminal();
|
||||||
|
|
||||||
|
IItemDefinition fluidInterfaceConfigurationTerminal();
|
||||||
|
|
||||||
|
IItemDefinition craftingTerminal();
|
||||||
|
|
||||||
|
IItemDefinition terminal();
|
||||||
|
|
||||||
|
IItemDefinition storageMonitor();
|
||||||
|
|
||||||
|
IItemDefinition conversionMonitor();
|
||||||
|
|
||||||
|
IItemDefinition fluidTerminal();
|
||||||
|
|
||||||
|
IItemDefinition fluidImportBus();
|
||||||
|
|
||||||
|
IItemDefinition fluidExportBus();
|
||||||
|
|
||||||
|
IItemDefinition fluidStorageBus();
|
||||||
|
|
||||||
|
IItemDefinition fluidLevelEmitter();
|
||||||
|
|
||||||
|
IItemDefinition fluidAnnihilationPlane();
|
||||||
|
|
||||||
|
IItemDefinition fluidFormationnPlane();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ package appeng.api.exceptions;
|
|||||||
|
|
||||||
public class CoreInaccessibleException extends RuntimeException
|
public class CoreInaccessibleException extends RuntimeException
|
||||||
{
|
{
|
||||||
|
private static final long serialVersionUID = -7434641554655517242L;
|
||||||
|
|
||||||
public CoreInaccessibleException( final String message )
|
public CoreInaccessibleException( final String message )
|
||||||
{
|
{
|
||||||
super( message );
|
super( message );
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import appeng.api.networking.IGridNode;
|
|||||||
* @version rv3
|
* @version rv3
|
||||||
* @since rv3
|
* @since rv3
|
||||||
*/
|
*/
|
||||||
public class ExistingConnectionException extends FailedConnection
|
public class ExistingConnectionException extends FailedConnectionException
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = 2975450379720353182L;
|
private static final long serialVersionUID = 2975450379720353182L;
|
||||||
|
|||||||
+3
-3
@@ -40,16 +40,16 @@ import appeng.api.networking.IGridNode;
|
|||||||
* @version rv3
|
* @version rv3
|
||||||
* @since rv0
|
* @since rv0
|
||||||
*/
|
*/
|
||||||
public class FailedConnection extends Exception
|
public class FailedConnectionException extends Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -2544208090248293753L;
|
private static final long serialVersionUID = -2544208090248293753L;
|
||||||
|
|
||||||
public FailedConnection()
|
public FailedConnectionException()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public FailedConnection( String message )
|
public FailedConnectionException( String message )
|
||||||
{
|
{
|
||||||
super( message );
|
super( message );
|
||||||
}
|
}
|
||||||
+4
-2
@@ -19,9 +19,11 @@
|
|||||||
package appeng.api.exceptions;
|
package appeng.api.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class MissingDefinition extends RuntimeException
|
public class MissingDefinitionException extends RuntimeException
|
||||||
{
|
{
|
||||||
public MissingDefinition( final String message )
|
private static final long serialVersionUID = -6547396584255825761L;
|
||||||
|
|
||||||
|
public MissingDefinitionException( final String message )
|
||||||
{
|
{
|
||||||
super( message );
|
super( message );
|
||||||
}
|
}
|
||||||
+2
-2
@@ -24,12 +24,12 @@
|
|||||||
package appeng.api.exceptions;
|
package appeng.api.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class MissingIngredientError extends Exception
|
public class MissingIngredientException extends Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -998858343831371697L;
|
private static final long serialVersionUID = -998858343831371697L;
|
||||||
|
|
||||||
public MissingIngredientError( final String n )
|
public MissingIngredientException( final String n )
|
||||||
{
|
{
|
||||||
super( n );
|
super( n );
|
||||||
}
|
}
|
||||||
+2
-2
@@ -24,12 +24,12 @@
|
|||||||
package appeng.api.exceptions;
|
package appeng.api.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class ModNotInstalled extends Exception
|
public class ModNotInstalledException extends Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -9052435206368425494L;
|
private static final long serialVersionUID = -9052435206368425494L;
|
||||||
|
|
||||||
public ModNotInstalled( final String t )
|
public ModNotInstalledException( final String t )
|
||||||
{
|
{
|
||||||
super( t );
|
super( t );
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ package appeng.api.exceptions;
|
|||||||
* @version rv3
|
* @version rv3
|
||||||
* @since rv3
|
* @since rv3
|
||||||
*/
|
*/
|
||||||
public class NullNodeConnectionException extends FailedConnection
|
public class NullNodeConnectionException extends FailedConnectionException
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -2143719383495321764L;
|
private static final long serialVersionUID = -2143719383495321764L;
|
||||||
|
|||||||
+2
-2
@@ -24,12 +24,12 @@
|
|||||||
package appeng.api.exceptions;
|
package appeng.api.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class RecipeError extends Exception
|
public class RecipeException extends Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -6602870588617670262L;
|
private static final long serialVersionUID = -6602870588617670262L;
|
||||||
|
|
||||||
public RecipeError( final String n )
|
public RecipeException( final String n )
|
||||||
{
|
{
|
||||||
super( n );
|
super( n );
|
||||||
}
|
}
|
||||||
+2
-2
@@ -24,12 +24,12 @@
|
|||||||
package appeng.api.exceptions;
|
package appeng.api.exceptions;
|
||||||
|
|
||||||
|
|
||||||
public class RegistrationError extends Exception
|
public class RegistrationException extends Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final long serialVersionUID = -6602870588617670263L;
|
private static final long serialVersionUID = -6602870588617670263L;
|
||||||
|
|
||||||
public RegistrationError( final String n )
|
public RegistrationException( final String n )
|
||||||
{
|
{
|
||||||
super( n );
|
super( n );
|
||||||
}
|
}
|
||||||
@@ -34,7 +34,7 @@ package appeng.api.exceptions;
|
|||||||
* @version rv3
|
* @version rv3
|
||||||
* @since rv3
|
* @since rv3
|
||||||
*/
|
*/
|
||||||
public class SecurityConnectionException extends FailedConnection
|
public class SecurityConnectionException extends FailedConnectionException
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 5048714900434215426L;
|
private static final long serialVersionUID = 5048714900434215426L;
|
||||||
private static final String DEFAULT_MESSAGE = "Connection failed due to different security realms.";
|
private static final String DEFAULT_MESSAGE = "Connection failed due to different security realms.";
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017 AlgorithmX2
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
* this software and associated documentation files (the "Software"), to deal in
|
||||||
|
* the Software without restriction, including without limitation the rights to
|
||||||
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package appeng.api.features;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
import appeng.api.implementations.items.IAEItemPowerStorage;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A registry to allow mapping {@link Item}s to a specific charge rate when being placed inside a charger.
|
||||||
|
*
|
||||||
|
* The registry is used in favor of an additional method for {@link IAEItemPowerStorage} with a fixed value per item.
|
||||||
|
* This allows more flexibility for other charger like machines to choose their own values when needed.
|
||||||
|
*
|
||||||
|
* There is no guarantee that this is charged per tick, it only represents the value per operation.
|
||||||
|
* By default this is one charging operation every 10 ticks in case of an AE2 charger.
|
||||||
|
*
|
||||||
|
* @author yueh
|
||||||
|
* @version rv5
|
||||||
|
* @since rv5
|
||||||
|
*/
|
||||||
|
public interface IChargerRegistry
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch a charge rate for a specific item.
|
||||||
|
*
|
||||||
|
* The specific item does not need to have a mapping registered at all.
|
||||||
|
* In this case it will use a default value of 160 AE.
|
||||||
|
*
|
||||||
|
* @param item A {@link Item} implementing {@link IAEItemPowerStorage}.
|
||||||
|
* @return custom rate or default of 160
|
||||||
|
*/
|
||||||
|
@Nonnegative
|
||||||
|
double getChargeRate( @Nonnull Item item );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a custom charge rate for a specific item.
|
||||||
|
*
|
||||||
|
* Capped at 16000 to avoid extracting too much energy from a network for each operation.
|
||||||
|
* This is done silently without any feedback or exception.
|
||||||
|
* Further the cap is not fixed, it can change at any time in the future should power issues arise.
|
||||||
|
*
|
||||||
|
* @param item A {@link Item} implementing {@link IAEItemPowerStorage}.
|
||||||
|
* @param chargeRate the custom rate, must be > 0, capped to 16000d
|
||||||
|
*/
|
||||||
|
void addChargeRate( @Nonnull Item item, @Nonnegative double chargeRate );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the custom rate for a specific item.
|
||||||
|
*
|
||||||
|
* It will revert to the default value afterwards.
|
||||||
|
*
|
||||||
|
* @param item A {@link Item} implementing {@link IAEItemPowerStorage}.
|
||||||
|
*/
|
||||||
|
void removeChargeRate( @Nonnull Item item );
|
||||||
|
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ import javax.annotation.Nonnull;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
|
||||||
import appeng.api.config.TunnelType;
|
import appeng.api.config.TunnelType;
|
||||||
|
|
||||||
@@ -46,8 +47,11 @@ public interface IP2PTunnelRegistry
|
|||||||
* @param type - the type of tunnel. Nullable, but then ignored
|
* @param type - the type of tunnel. Nullable, but then ignored
|
||||||
*/
|
*/
|
||||||
void addNewAttunement( @Nonnull ItemStack trigger, @Nullable TunnelType type );
|
void addNewAttunement( @Nonnull ItemStack trigger, @Nullable TunnelType type );
|
||||||
|
|
||||||
void addNewAttunement( @Nonnull String ModId, @Nullable TunnelType type );
|
void addNewAttunement( @Nonnull String ModId, @Nullable TunnelType type );
|
||||||
|
|
||||||
|
void addNewAttunement( @Nonnull Capability<?> cap, @Nullable TunnelType type );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns null if no attunement can be found.
|
* returns null if no attunement can be found.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public interface IRecipeHandlerRegistry
|
|||||||
* @param name name of crafthandler
|
* @param name name of crafthandler
|
||||||
* @param handler class of crafthandler
|
* @param handler class of crafthandler
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
void addNewCraftHandler( String name, Class<? extends ICraftHandler> handler );
|
void addNewCraftHandler( String name, Class<? extends ICraftHandler> handler );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,11 +66,13 @@ public interface IRecipeHandlerRegistry
|
|||||||
* @return A recipe handler by name, returns null on failure.
|
* @return A recipe handler by name, returns null on failure.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@Deprecated
|
||||||
ICraftHandler getCraftHandlerFor( String name );
|
ICraftHandler getCraftHandlerFor( String name );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a new recipe handler, which can be used to parse, and read recipe files.
|
* @return a new recipe handler, which can be used to parse, and read recipe files.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
IRecipeHandler createNewRecipehandler();
|
IRecipeHandler createNewRecipehandler();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ import appeng.api.storage.ICellRegistry;
|
|||||||
/**
|
/**
|
||||||
* @author AlgorithmX2
|
* @author AlgorithmX2
|
||||||
* @author thatsIch
|
* @author thatsIch
|
||||||
* @version rv2
|
* @author yueh
|
||||||
|
* @version rv5
|
||||||
* @since rv0
|
* @since rv0
|
||||||
*/
|
*/
|
||||||
@AEInjectable
|
@AEInjectable
|
||||||
@@ -76,6 +77,11 @@ public interface IRegistryContainer
|
|||||||
*/
|
*/
|
||||||
IInscriberRegistry inscriber();
|
IInscriberRegistry inscriber();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Manage charger via API
|
||||||
|
*/
|
||||||
|
IChargerRegistry charger();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get access to the locatable registry
|
* get access to the locatable registry
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -28,47 +28,45 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import appeng.api.util.IConfigManager;
|
import appeng.api.util.IConfigManager;
|
||||||
|
import net.minecraftforge.fml.common.network.IGuiHandler;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A handler for a wireless terminal.
|
* A handler for a wireless terminal.
|
||||||
*/
|
*/
|
||||||
public interface IWirelessTermHandler extends INetworkEncodable
|
public interface IWirelessTermHandler extends INetworkEncodable {
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param is wireless terminal
|
* @param is wireless terminal
|
||||||
*
|
* @return true, if usePower, hasPower, etc... can be called for the provided item
|
||||||
* @return true, if usePower, hasPower, etc... can be called for the provided item
|
*/
|
||||||
*/
|
boolean canHandle(ItemStack is);
|
||||||
boolean canHandle( ItemStack is );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* use an amount of power, in AE units
|
* use an amount of power, in AE units
|
||||||
*
|
*
|
||||||
* @param amount is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
|
* @param amount is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
|
||||||
* hasPower
|
* hasPower
|
||||||
* @param is wireless terminal
|
* @param is wireless terminal
|
||||||
*
|
* @return true if wireless terminal uses power
|
||||||
* @return true if wireless terminal uses power
|
*/
|
||||||
*/
|
boolean usePower(EntityPlayer player, double amount, ItemStack is);
|
||||||
boolean usePower( EntityPlayer player, double amount, ItemStack is );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gets the power status of the item.
|
* gets the power status of the item.
|
||||||
*
|
*
|
||||||
* @param is wireless terminal
|
* @param is wireless terminal
|
||||||
*
|
* @return returns true if there is any power left.
|
||||||
* @return returns true if there is any power left.
|
*/
|
||||||
*/
|
boolean hasPower(EntityPlayer player, double amount, ItemStack is);
|
||||||
boolean hasPower( EntityPlayer player, double amount, ItemStack is );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the config manager for the wireless terminal.
|
* Return the config manager for the wireless terminal.
|
||||||
*
|
*
|
||||||
* @param is wireless terminal
|
* @param is wireless terminal
|
||||||
*
|
* @return config manager of wireless terminal
|
||||||
* @return config manager of wireless terminal
|
*/
|
||||||
*/
|
IConfigManager getConfigManager(ItemStack is);
|
||||||
IConfigManager getConfigManager( ItemStack is );
|
|
||||||
|
IGuiHandler getGuiHandler(ItemStack is);
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package appeng.api.implementations;
|
||||||
|
|
||||||
|
public interface IUpgradeableCellContainer {
|
||||||
|
int availableUpgrades();
|
||||||
|
|
||||||
|
void setupUpgrades();
|
||||||
|
}
|
||||||
+11
-9
@@ -21,19 +21,21 @@
|
|||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package appeng.api.client;
|
package appeng.api.implementations;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import appeng.api.config.Upgrades;
|
||||||
|
import appeng.api.implementations.tiles.ISegmentedInventory;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import appeng.api.util.IConfigurableObject;
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
|
|
||||||
|
|
||||||
public interface BakingPipelineElement<F, T>
|
public interface IUpgradeableCellHost extends IConfigurableObject, ISegmentedInventory {
|
||||||
{
|
|
||||||
|
|
||||||
public List<T> pipe( List<F> elements, IBakedModel parent, IBlockState state, EnumFacing side, long rand );
|
/**
|
||||||
|
* determine how many of an upgrade are installed.
|
||||||
|
*/
|
||||||
|
default int getInstalledUpgrades(Upgrades u) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -35,6 +35,6 @@ import appeng.api.networking.IGridHost;
|
|||||||
public interface INetworkTool extends IGuiItemObject
|
public interface INetworkTool extends IGuiItemObject
|
||||||
{
|
{
|
||||||
IGridHost getGridHost(); // null for most purposes.
|
IGridHost getGridHost(); // null for most purposes.
|
||||||
|
|
||||||
IItemHandler getInventory();
|
IItemHandler getInventory();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
|
import appeng.api.util.AEColor;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Memory Card API
|
* Memory Card API
|
||||||
@@ -41,13 +43,18 @@ public interface IMemoryCard
|
|||||||
* Configures the data stored on the memory card, the SettingsName, will be
|
* Configures the data stored on the memory card, the SettingsName, will be
|
||||||
* localized when displayed.
|
* localized when displayed.
|
||||||
*
|
*
|
||||||
|
* The data can contain an optional string with the key "tooltip", which will be used as
|
||||||
|
* unlocalized string to display it after the settings name.
|
||||||
|
*
|
||||||
|
* The data can contain an optional intArray using "colorCode" to be displayed on the model itself.
|
||||||
|
* It needs to have exactly 8 elements representing the ordinal of the matching {@link AEColor}.
|
||||||
|
* The first 4 values represent the top row, left to right. The second 4 the bottom row.
|
||||||
|
*
|
||||||
* @param is item
|
* @param is item
|
||||||
* @param SettingsName unlocalized string that represents the tile entity.
|
* @param settingsName unlocalized string that represents the tile entity.
|
||||||
* @param data may contain a String called "tooltip" which is is a
|
* @param data the NBT tag, refer to the normal comment for special keys.
|
||||||
* unlocalized string displayed after the settings name, optional
|
|
||||||
* but can be used to add details to the card for later.
|
|
||||||
*/
|
*/
|
||||||
void setMemoryCardContents( ItemStack is, String SettingsName, NBTTagCompound data );
|
void setMemoryCardContents( ItemStack is, String settingsName, NBTTagCompound data );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns the settings name provided by a previous call to
|
* returns the settings name provided by a previous call to
|
||||||
@@ -68,6 +75,17 @@ public interface IMemoryCard
|
|||||||
*/
|
*/
|
||||||
NBTTagCompound getData( ItemStack is );
|
NBTTagCompound getData( ItemStack is );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This represent as 4x2 grid of {@link AEColor} without transparent/fluix color.
|
||||||
|
*
|
||||||
|
* First 4 colors are used for the top row, second for the bottom one.
|
||||||
|
*
|
||||||
|
* @param is item
|
||||||
|
*
|
||||||
|
* @return a hash representation of the memory card content
|
||||||
|
*/
|
||||||
|
AEColor[] getColorCode( ItemStack is );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* notify the user of a outcome related to the memory card.
|
* notify the user of a outcome related to the memory card.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -24,10 +24,13 @@
|
|||||||
package appeng.api.implementations.items;
|
package appeng.api.implementations.items;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import appeng.api.storage.ICellWorkbenchItem;
|
import appeng.api.storage.ICellWorkbenchItem;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.IStorageChannel;
|
||||||
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,7 +43,7 @@ import appeng.api.storage.data.IAEItemStack;
|
|||||||
*
|
*
|
||||||
* The standard AE implementation only provides 1-63 Types
|
* The standard AE implementation only provides 1-63 Types
|
||||||
*/
|
*/
|
||||||
public interface IStorageCell extends ICellWorkbenchItem
|
public interface IStorageCell<T extends IAEStack<T>> extends ICellWorkbenchItem
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,7 +54,7 @@ public interface IStorageCell extends ICellWorkbenchItem
|
|||||||
*
|
*
|
||||||
* @return number of bytes
|
* @return number of bytes
|
||||||
*/
|
*/
|
||||||
int getBytes( ItemStack cellItem );
|
int getBytes( @Nonnull ItemStack cellItem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines the number of bytes used for any type included on the cell.
|
* Determines the number of bytes used for any type included on the cell.
|
||||||
@@ -60,7 +63,7 @@ public interface IStorageCell extends ICellWorkbenchItem
|
|||||||
*
|
*
|
||||||
* @return number of bytes
|
* @return number of bytes
|
||||||
*/
|
*/
|
||||||
int getBytesPerType( ItemStack cellItem );
|
int getBytesPerType( @Nonnull ItemStack cellItem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Must be between 1 and 63, indicates how many types you want to store on
|
* Must be between 1 and 63, indicates how many types you want to store on
|
||||||
@@ -70,7 +73,7 @@ public interface IStorageCell extends ICellWorkbenchItem
|
|||||||
*
|
*
|
||||||
* @return number of types
|
* @return number of types
|
||||||
*/
|
*/
|
||||||
int getTotalTypes( ItemStack cellItem );
|
int getTotalTypes( @Nonnull ItemStack cellItem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows you to fine tune which items are allowed on a given cell, if you
|
* Allows you to fine tune which items are allowed on a given cell, if you
|
||||||
@@ -82,7 +85,7 @@ public interface IStorageCell extends ICellWorkbenchItem
|
|||||||
*
|
*
|
||||||
* @return true to preventAdditionOfItem
|
* @return true to preventAdditionOfItem
|
||||||
*/
|
*/
|
||||||
boolean isBlackListed( ItemStack cellItem, IAEItemStack requestedAddition );
|
boolean isBlackListed( @Nonnull ItemStack cellItem, @Nonnull T requestedAddition );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows you to specify if this storage cell can be stored inside other
|
* Allows you to specify if this storage cell can be stored inside other
|
||||||
@@ -103,10 +106,16 @@ public interface IStorageCell extends ICellWorkbenchItem
|
|||||||
*
|
*
|
||||||
* @return if the ItemStack should behavior as a storage cell.
|
* @return if the ItemStack should behavior as a storage cell.
|
||||||
*/
|
*/
|
||||||
boolean isStorageCell( ItemStack i );
|
boolean isStorageCell( @Nonnull ItemStack i );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return drain in ae/t this storage cell will use.
|
* @return drain in ae/t this storage cell will use.
|
||||||
*/
|
*/
|
||||||
double getIdleDrain();
|
double getIdleDrain();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the type of channel your cell should be part of
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IStorageChannel<T> getChannel();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,5 +29,5 @@ package appeng.api.implementations.items;
|
|||||||
*/
|
*/
|
||||||
public enum MemoryCardMessages
|
public enum MemoryCardMessages
|
||||||
{
|
{
|
||||||
INVALID_MACHINE, SETTINGS_LOADED, SETTINGS_SAVED, SETTINGS_CLEARED
|
INVALID_MACHINE, SETTINGS_LOADED, SETTINGS_SAVED, SETTINGS_RESET, SETTINGS_CLEARED
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
package appeng.api.implementations.tiles;
|
package appeng.api.implementations.tiles;
|
||||||
|
|
||||||
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
package appeng.api.implementations.tiles;
|
package appeng.api.implementations.tiles;
|
||||||
|
|
||||||
|
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.networking.events.MENetworkEvent;
|
import appeng.api.networking.events.MENetworkEvent;
|
||||||
import appeng.api.util.IReadOnlyCollection;
|
import appeng.api.util.IReadOnlyCollection;
|
||||||
|
|
||||||
@@ -43,7 +45,8 @@ public interface IGrid
|
|||||||
*
|
*
|
||||||
* @return the IGridCache you requested.
|
* @return the IGridCache you requested.
|
||||||
*/
|
*/
|
||||||
<C extends IGridCache> C getCache( Class<? extends IGridCache> iface );
|
@Nonnull
|
||||||
|
<C extends IGridCache> C getCache( @Nonnull Class<? extends IGridCache> iface );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post an event into the network event bus.
|
* Post an event into the network event bus.
|
||||||
@@ -52,7 +55,8 @@ public interface IGrid
|
|||||||
*
|
*
|
||||||
* @return returns ev back to original poster
|
* @return returns ev back to original poster
|
||||||
*/
|
*/
|
||||||
MENetworkEvent postEvent( MENetworkEvent ev );
|
@Nonnull
|
||||||
|
MENetworkEvent postEvent( @Nonnull MENetworkEvent ev );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post an event into the network event bus, but direct it at a single node.
|
* Post an event into the network event bus, but direct it at a single node.
|
||||||
@@ -61,7 +65,8 @@ public interface IGrid
|
|||||||
*
|
*
|
||||||
* @return returns ev back to original poster
|
* @return returns ev back to original poster
|
||||||
*/
|
*/
|
||||||
MENetworkEvent postEventTo( IGridNode node, MENetworkEvent ev );
|
@Nonnull
|
||||||
|
MENetworkEvent postEventTo( @Nonnull IGridNode node, @Nonnull MENetworkEvent ev );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get a list of the diversity of classes, you can use this to better detect which machines your interested in,
|
* get a list of the diversity of classes, you can use this to better detect which machines your interested in,
|
||||||
@@ -69,6 +74,7 @@ public interface IGrid
|
|||||||
*
|
*
|
||||||
* @return IReadOnlyCollection of all available host types (Of Type IGridHost).
|
* @return IReadOnlyCollection of all available host types (Of Type IGridHost).
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IReadOnlyCollection<Class<? extends IGridHost>> getMachinesClasses();
|
IReadOnlyCollection<Class<? extends IGridHost>> getMachinesClasses();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,11 +84,13 @@ public interface IGrid
|
|||||||
*
|
*
|
||||||
* @return IMachineSet of all nodes belonging to hosts of specified class.
|
* @return IMachineSet of all nodes belonging to hosts of specified class.
|
||||||
*/
|
*/
|
||||||
IMachineSet getMachines( Class<? extends IGridHost> gridHostClass );
|
@Nonnull
|
||||||
|
IMachineSet getMachines( @Nonnull Class<? extends IGridHost> gridHostClass );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return IReadOnlyCollection for all nodes on the network, node visitors are preferred.
|
* @return IReadOnlyCollection for all nodes on the network, node visitors are preferred.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IReadOnlyCollection<IGridNode> getNodes();
|
IReadOnlyCollection<IGridNode> getNodes();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,5 +101,6 @@ public interface IGrid
|
|||||||
/**
|
/**
|
||||||
* @return the node considered the pivot point of the grid.
|
* @return the node considered the pivot point of the grid.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridNode getPivot();
|
IGridNode getPivot();
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,9 @@ package appeng.api.networking;
|
|||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
@@ -49,6 +52,7 @@ public interface IGridBlock
|
|||||||
*
|
*
|
||||||
* @return ae/t to use.
|
* @return ae/t to use.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getIdlePowerUsage();
|
double getIdlePowerUsage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,10 +60,11 @@ public interface IGridBlock
|
|||||||
*
|
*
|
||||||
* @return Set of flags for this IGridBlock
|
* @return Set of flags for this IGridBlock
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
EnumSet<GridFlags> getFlags();
|
EnumSet<GridFlags> getFlags();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generally speaking you will return true for this, the one exception is buses, or worm holes where the node
|
* Generally speaking you will return true for this, the one exception is buses, or worm holes where the node
|
||||||
* represents something that isn't a real connection in the world, but rather one represented internally to the
|
* represents something that isn't a real connection in the world, but rather one represented internally to the
|
||||||
* block.
|
* block.
|
||||||
*
|
*
|
||||||
@@ -68,37 +73,46 @@ public interface IGridBlock
|
|||||||
boolean isWorldAccessible();
|
boolean isWorldAccessible();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Must not return when {@link #isWorldAccessible()} is true.
|
||||||
|
* Otherwise the behavior is unspecified.
|
||||||
|
*
|
||||||
* @return current location of this node
|
* @return current location of this node
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
DimensionalCoord getLocation();
|
DimensionalCoord getLocation();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Transparent, or a valid color, NULL IS NOT A VALID RETURN
|
* @return Transparent, or a valid color, NULL IS NOT A VALID RETURN
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
AEColor getGridColor();
|
AEColor getGridColor();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies your IGridBlock that changes were made to your connections
|
* Notifies your IGridBlock that changes were made to your connections
|
||||||
*/
|
*/
|
||||||
void onGridNotification( GridNotification notification );
|
void onGridNotification( @Nonnull GridNotification notification );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Blocks network/connection/booting status. grid,
|
* Update Blocks network/connection/booting status. grid,
|
||||||
*
|
*
|
||||||
* @param grid grid
|
* @param grid grid
|
||||||
* @param channelsInUse used channels
|
* @param channelsInUse used channels
|
||||||
|
* @deprecated to be removed in rv7
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
void setNetworkStatus( IGrid grid, int channelsInUse );
|
void setNetworkStatus( IGrid grid, int channelsInUse );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine which sides of the block can be connected too, only used when isWorldAccessible returns true, not used
|
* Determine which sides of the block can be connected too, only used when isWorldAccessible returns true, not used
|
||||||
* for {@link IPart} implementations.
|
* for {@link IPart} implementations.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
EnumSet<EnumFacing> getConnectableSides();
|
EnumSet<EnumFacing> getConnectableSides();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the IGridHost for the node, this will be an IGridPart or a TileEntity generally speaking.
|
* @return the IGridHost for the node, this will be an IGridPart or a TileEntity generally speaking.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridHost getMachine();
|
IGridHost getMachine();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -109,7 +123,8 @@ public interface IGridBlock
|
|||||||
/**
|
/**
|
||||||
* Determines what item stack is used to render this node in the GUI.
|
* Determines what item stack is used to render this node in the GUI.
|
||||||
*
|
*
|
||||||
* @return the render item stack to use to render this node, null is valid, and will not show this node.
|
* @return the render item stack to use to render this node. Returning an empty ItemStack will not show this node.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
ItemStack getMachineRepresentation();
|
ItemStack getMachineRepresentation();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows you to create a network wise service, AE2 uses these for providing
|
* Allows you to create a network wise service, AE2 uses these for providing
|
||||||
* item, spatial, and tunnel services.
|
* item, spatial, and tunnel services.
|
||||||
@@ -50,7 +53,7 @@ public interface IGridCache
|
|||||||
* @param gridNode removed from that grid
|
* @param gridNode removed from that grid
|
||||||
* @param machine to be removed machine
|
* @param machine to be removed machine
|
||||||
*/
|
*/
|
||||||
void removeNode( IGridNode gridNode, IGridHost machine );
|
void removeNode( @Nonnull IGridNode gridNode, @Nonnull IGridHost machine );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* informs you cache that a machine was added to the grid.
|
* informs you cache that a machine was added to the grid.
|
||||||
@@ -62,7 +65,7 @@ public interface IGridCache
|
|||||||
* @param gridNode added to grid node
|
* @param gridNode added to grid node
|
||||||
* @param machine to be added machine
|
* @param machine to be added machine
|
||||||
*/
|
*/
|
||||||
void addNode( IGridNode gridNode, IGridHost machine );
|
void addNode( @Nonnull IGridNode gridNode, @Nonnull IGridHost machine );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a grid splits into two grids, AE will call a split as it
|
* Called when a grid splits into two grids, AE will call a split as it
|
||||||
@@ -71,7 +74,7 @@ public interface IGridCache
|
|||||||
*
|
*
|
||||||
* @param destinationStorage storage which receives half of old grid
|
* @param destinationStorage storage which receives half of old grid
|
||||||
*/
|
*/
|
||||||
void onSplit( IGridStorage destinationStorage );
|
void onSplit( @Nonnull IGridStorage destinationStorage );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when two grids merge into one, AE will call a join as it
|
* Called when two grids merge into one, AE will call a join as it
|
||||||
@@ -80,12 +83,12 @@ public interface IGridCache
|
|||||||
*
|
*
|
||||||
* @param sourceStorage old storage
|
* @param sourceStorage old storage
|
||||||
*/
|
*/
|
||||||
void onJoin( IGridStorage sourceStorage );
|
void onJoin( @Nonnull IGridStorage sourceStorage );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when saving changes,
|
* Called when saving changes,
|
||||||
*
|
*
|
||||||
* @param destinationStorage storage
|
* @param destinationStorage storage
|
||||||
*/
|
*/
|
||||||
void populateGridStorage( IGridStorage destinationStorage );
|
void populateGridStorage( @Nonnull IGridStorage destinationStorage );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,9 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,14 +40,14 @@ public interface IGridCacheRegistry
|
|||||||
*
|
*
|
||||||
* @param iface grid cache class
|
* @param iface grid cache class
|
||||||
*/
|
*/
|
||||||
void registerGridCache( Class<? extends IGridCache> iface, Class<? extends IGridCache> implementation );
|
void registerGridCache( @Nonnull Class<? extends IGridCache> iface, @Nonnull Class<? extends IGridCache> implementation );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* requests a new INSTANCE of a grid cache for use, used internally
|
* requests a new INSTANCE of a grid cache for use, used internally
|
||||||
*
|
*
|
||||||
* @param grid grid
|
* @param grid grid
|
||||||
*
|
*
|
||||||
* @return a new HashMap of IGridCaches from the registry, called from IGrid when constructing a new grid.
|
* @return a new Map of IGridCaches from the registry, called from IGrid when constructing a new grid.
|
||||||
*/
|
*/
|
||||||
HashMap<Class<? extends IGridCache>, IGridCache> createCacheInstance( IGrid grid );
|
Map<Class<? extends IGridCache>, IGridCache> createCacheInstance( IGrid grid );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.util.AEPartLocation;
|
import appeng.api.util.AEPartLocation;
|
||||||
|
|
||||||
|
|
||||||
@@ -45,6 +47,7 @@ public interface IGridConnection
|
|||||||
*
|
*
|
||||||
* @return the IGridNode which represents the opposite side of the connection.
|
* @return the IGridNode which represents the opposite side of the connection.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridNode getOtherSide( IGridNode gridNode );
|
IGridNode getOtherSide( IGridNode gridNode );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,6 +57,7 @@ public interface IGridConnection
|
|||||||
*
|
*
|
||||||
* @return the direction of the connection, only valid for in world connections.
|
* @return the direction of the connection, only valid for in world connections.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
AEPartLocation getDirection( IGridNode gridNode );
|
AEPartLocation getDirection( IGridNode gridNode );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,11 +69,13 @@ public interface IGridConnection
|
|||||||
/**
|
/**
|
||||||
* @return node A
|
* @return node A
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridNode a();
|
IGridNode a();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return node B
|
* @return node B
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridNode b();
|
IGridNode b();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
public interface IGridConnectionVisitor extends IGridVisitor
|
public interface IGridConnectionVisitor extends IGridVisitor
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -32,5 +35,5 @@ public interface IGridConnectionVisitor extends IGridVisitor
|
|||||||
*
|
*
|
||||||
* @param n the connection.
|
* @param n the connection.
|
||||||
*/
|
*/
|
||||||
void visitConnection( IGridConnection n );
|
void visitConnection( @Nonnull IGridConnection n );
|
||||||
}
|
}
|
||||||
|
|||||||
+32
-28
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
*
|
*
|
||||||
* Copyright (c) 2013 AlgorithmX2
|
* Copyright (c) 2017 AlgorithmX2
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
* this software and associated documentation files (the "Software"), to deal in
|
* this software and associated documentation files (the "Software"), to deal in
|
||||||
@@ -21,44 +21,48 @@
|
|||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package appeng.api.client;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
import java.util.List;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import appeng.api.exceptions.FailedConnectionException;
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Needs to be moved to an internal class. API is only allowed to contain interfaces and/or data.
|
* A helper responsible for creating new {@link IGridNode}, {@link IGridConnection} or potentially similar tasks.
|
||||||
*
|
*
|
||||||
* @deprecated
|
* @author yueh
|
||||||
|
* @version rv5
|
||||||
|
* @since rv5
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
public interface IGridHelper
|
||||||
public class BakingPipeline<F, T> implements BakingPipelineElement<F, T>
|
|
||||||
{
|
{
|
||||||
|
|
||||||
private final ImmutableList<BakingPipelineElement<?, ?>> pipeline;
|
/**
|
||||||
|
* Create a grid node for your {@link IGridHost}
|
||||||
public BakingPipeline( BakingPipelineElement<?, ?>... pipeline )
|
*
|
||||||
{
|
* The passed {@link IGridBlock} represents the definition for properties like connectable sides.
|
||||||
this.pipeline = ImmutableList.copyOf( pipeline );
|
* Refer to its documentation for further details.
|
||||||
}
|
*
|
||||||
|
* @param block grid block
|
||||||
|
*
|
||||||
|
* @return grid node of block
|
||||||
|
*/
|
||||||
|
@Nonnull
|
||||||
|
IGridNode createGridNode( @Nonnull IGridBlock block );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: fix generics
|
* Create a direct connection between two {@link IGridNode}.
|
||||||
|
*
|
||||||
|
* This will be considered as having a distance of 1, regardless of the location of both nodes.
|
||||||
|
*
|
||||||
|
* @param a to be connected gridnode
|
||||||
|
* @param b to be connected gridnode
|
||||||
|
*
|
||||||
|
* @throws appeng.api.exceptions.FailedConnectionException
|
||||||
*/
|
*/
|
||||||
@Override
|
@Nonnull
|
||||||
public List pipe( List things, IBakedModel parent, IBlockState state, EnumFacing side, long rand )
|
IGridConnection createGridConnection( @Nonnull IGridNode a, @Nonnull IGridNode b ) throws FailedConnectionException;
|
||||||
{
|
|
||||||
for( BakingPipelineElement pipe : this.pipeline )
|
|
||||||
{
|
|
||||||
things = pipe.pipe( things, parent, state, side, rand );
|
|
||||||
}
|
|
||||||
return things;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
import appeng.api.parts.IPart;
|
import appeng.api.parts.IPart;
|
||||||
@@ -49,7 +52,8 @@ public interface IGridHost
|
|||||||
* @return a new IGridNode, create these with
|
* @return a new IGridNode, create these with
|
||||||
* AEApi.INSTANCE().createGridNode( MyIGridBlock )
|
* AEApi.INSTANCE().createGridNode( MyIGridBlock )
|
||||||
*/
|
*/
|
||||||
IGridNode getGridNode( AEPartLocation dir );
|
@Nullable
|
||||||
|
IGridNode getGridNode( @Nonnull AEPartLocation dir );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines how cables render when they connect to this block. Priority is
|
* Determines how cables render when they connect to this block. Priority is
|
||||||
@@ -57,7 +61,8 @@ public interface IGridHost
|
|||||||
*
|
*
|
||||||
* @param dir direction
|
* @param dir direction
|
||||||
*/
|
*/
|
||||||
AECableType getCableConnectionType( AEPartLocation dir );
|
@Nonnull
|
||||||
|
AECableType getCableConnectionType( @Nonnull AEPartLocation dir );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* break this host, its violating security rules, just break your block, or part.
|
* break this host, its violating security rules, just break your block, or part.
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ package appeng.api.networking;
|
|||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An extension of IGridBlock, only means something when your getFlags() contains REQUIRE_CHANNEL, when done properly it
|
* An extension of IGridBlock, only means something when your getFlags() contains REQUIRE_CHANNEL, when done properly it
|
||||||
@@ -40,5 +42,6 @@ public interface IGridMultiblock extends IGridBlock
|
|||||||
*
|
*
|
||||||
* @return an iterator that will iterate all the nodes for the multiblock. ( read-only iterator expected. )
|
* @return an iterator that will iterate all the nodes for the multiblock. ( read-only iterator expected. )
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
Iterator<IGridNode> getMultiblockNodes();
|
Iterator<IGridNode> getMultiblockNodes();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ package appeng.api.networking;
|
|||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
@@ -50,7 +52,7 @@ public interface IGridNode
|
|||||||
*
|
*
|
||||||
* @param visitor visitor
|
* @param visitor visitor
|
||||||
*/
|
*/
|
||||||
void beginVisit( IGridVisitor visitor );
|
void beginVisit( @Nonnull IGridVisitor visitor );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* inform the node that your IGridBlock has changed its internal state, and force the node to update.
|
* inform the node that your IGridBlock has changed its internal state, and force the node to update.
|
||||||
@@ -68,6 +70,7 @@ public interface IGridNode
|
|||||||
*
|
*
|
||||||
* @return grid host
|
* @return grid host
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridHost getMachine();
|
IGridHost getMachine();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,6 +78,7 @@ public interface IGridNode
|
|||||||
*
|
*
|
||||||
* @return grid
|
* @return grid
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGrid getGrid();
|
IGrid getGrid();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,11 +90,13 @@ public interface IGridNode
|
|||||||
/**
|
/**
|
||||||
* @return the world the node is located in
|
* @return the world the node is located in
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
World getWorld();
|
World getWorld();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a set of the connected sides, INTERNAL represents an invisible connection
|
* @return a set of the connected sides, INTERNAL represents an invisible connection
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
EnumSet<AEPartLocation> getConnectedSides();
|
EnumSet<AEPartLocation> getConnectedSides();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,11 +104,13 @@ public interface IGridNode
|
|||||||
*
|
*
|
||||||
* @return grid connections
|
* @return grid connections
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IReadOnlyCollection<IGridConnection> getConnections();
|
IReadOnlyCollection<IGridConnection> getConnections();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the IGridBlock for this node
|
* @return the IGridBlock for this node
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridBlock getGridBlock();
|
IGridBlock getGridBlock();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -122,7 +130,7 @@ public interface IGridNode
|
|||||||
* @param name nbt name
|
* @param name nbt name
|
||||||
* @param nodeData to be loaded data
|
* @param nodeData to be loaded data
|
||||||
*/
|
*/
|
||||||
void loadFromNBT( String name, NBTTagCompound nodeData );
|
void loadFromNBT( @Nonnull String name, @Nonnull NBTTagCompound nodeData );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* this should be called for each node you maintain, you can save all your nodes to the same tag with different
|
* this should be called for each node you maintain, you can save all your nodes to the same tag with different
|
||||||
@@ -131,7 +139,7 @@ public interface IGridNode
|
|||||||
* @param name nbt name
|
* @param name nbt name
|
||||||
* @param nodeData to be saved data
|
* @param nodeData to be saved data
|
||||||
*/
|
*/
|
||||||
void saveToNBT( String name, NBTTagCompound nodeData );
|
void saveToNBT( @Nonnull String name, @Nonnull NBTTagCompound nodeData );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return if the node's channel requirements are currently met, use this for display purposes, use isActive for
|
* @return if the node's channel requirements are currently met, use this for display purposes, use isActive for
|
||||||
@@ -146,7 +154,7 @@ public interface IGridNode
|
|||||||
*
|
*
|
||||||
* @return true if has flag
|
* @return true if has flag
|
||||||
*/
|
*/
|
||||||
boolean hasFlag( GridFlags flag );
|
boolean hasFlag( @Nonnull GridFlags flag );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the ownerID this represents the person who placed the node.
|
* @return the ownerID this represents the person who placed the node.
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
|
|
||||||
@@ -33,6 +35,7 @@ public interface IGridStorage
|
|||||||
/**
|
/**
|
||||||
* @return an NBTTagCompound that can be read, and written too.
|
* @return an NBTTagCompound that can be read, and written too.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
NBTTagCompound dataObject();
|
NBTTagCompound dataObject();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple Visitor pattern access to network nodes.
|
* Simple Visitor pattern access to network nodes.
|
||||||
*/
|
*/
|
||||||
@@ -39,5 +42,5 @@ public interface IGridVisitor
|
|||||||
*
|
*
|
||||||
* @return true to continue visiting nodes beyond this node.
|
* @return true to continue visiting nodes beyond this node.
|
||||||
*/
|
*/
|
||||||
boolean visitNode( IGridNode n );
|
boolean visitNode( @Nonnull IGridNode n );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking;
|
package appeng.api.networking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.util.IReadOnlyCollection;
|
import appeng.api.util.IReadOnlyCollection;
|
||||||
|
|
||||||
|
|
||||||
@@ -33,5 +35,6 @@ public interface IMachineSet extends IReadOnlyCollection<IGridNode>
|
|||||||
/**
|
/**
|
||||||
* @return the machine class for this set.
|
* @return the machine class for this set.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
Class<? extends IGridHost> getMachineClass();
|
Class<? extends IGridHost> getMachineClass();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import appeng.api.networking.security.IActionSource;
|
|||||||
import appeng.api.networking.storage.IBaseMonitor;
|
import appeng.api.networking.storage.IBaseMonitor;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
|
||||||
public interface ICraftingCPU extends IBaseMonitor<IAEItemStack>
|
public interface ICraftingCPU extends IBaseMonitor<IAEItemStack>
|
||||||
{
|
{
|
||||||
@@ -56,4 +58,30 @@ public interface ICraftingCPU extends IBaseMonitor<IAEItemStack>
|
|||||||
* @return an empty string or the name of the cpu.
|
* @return an empty string or the name of the cpu.
|
||||||
*/
|
*/
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return final output of the current crafting operation, or null if not crafting
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
default IAEItemStack getFinalOutput()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return remaining count of items (or other units of processing) for the current crafting job
|
||||||
|
*/
|
||||||
|
default long getRemainingItemCount()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return total count of items (or other units of processing) for the current crafting job
|
||||||
|
*/
|
||||||
|
default long getStartItemCount()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.crafting;
|
package appeng.api.networking.crafting;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
public interface ICraftingCallback
|
public interface ICraftingCallback
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -32,5 +35,5 @@ public interface ICraftingCallback
|
|||||||
*
|
*
|
||||||
* @param job - final job
|
* @param job - final job
|
||||||
*/
|
*/
|
||||||
void calculationComplete( ICraftingJob job );
|
void calculationComplete( @Nonnull ICraftingJob job );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,9 +99,18 @@ public interface ICraftingGrid extends IGridCache
|
|||||||
/**
|
/**
|
||||||
* is this item being crafted?
|
* is this item being crafted?
|
||||||
*
|
*
|
||||||
* @param aeStackInSlot item being crafted
|
* @param what item being crafted
|
||||||
*
|
*
|
||||||
* @return true if it is being crafting
|
* @return true if it is being crafting
|
||||||
*/
|
*/
|
||||||
boolean isRequesting( IAEItemStack aeStackInSlot );
|
boolean isRequesting( IAEItemStack what );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The total amount being requested across all crafting cpus of a grid.
|
||||||
|
*
|
||||||
|
* @param what item being requested, ignores stacksize
|
||||||
|
*
|
||||||
|
* @return The total amount being requested.
|
||||||
|
*/
|
||||||
|
long requesting( IAEItemStack what );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ import net.minecraft.world.World;
|
|||||||
import appeng.api.implementations.ICraftingPatternItem;
|
import appeng.api.implementations.ICraftingPatternItem;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* do not implement provided by {@link ICraftingPatternItem}
|
* do not implement provided by {@link ICraftingPatternItem}
|
||||||
@@ -84,6 +87,11 @@ public interface ICraftingPatternDetails
|
|||||||
*/
|
*/
|
||||||
boolean canSubstitute();
|
boolean canSubstitute();
|
||||||
|
|
||||||
|
default List<IAEItemStack> getSubstituteInputs( int slot )
|
||||||
|
{
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow using this INSTANCE of the pattern details to preform the crafting action with performance enhancements.
|
* Allow using this INSTANCE of the pattern details to preform the crafting action with performance enhancements.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking.energy;
|
package appeng.api.networking.energy;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.config.AccessRestriction;
|
import appeng.api.config.AccessRestriction;
|
||||||
import appeng.api.config.Actionable;
|
import appeng.api.config.Actionable;
|
||||||
|
|
||||||
@@ -42,7 +44,7 @@ public interface IAEPowerStorage extends IEnergySource
|
|||||||
*
|
*
|
||||||
* @return amount of power which was unable to be stored
|
* @return amount of power which was unable to be stored
|
||||||
*/
|
*/
|
||||||
double injectAEPower( double amt, Actionable mode );
|
double injectAEPower( double amt, @Nonnull Actionable mode );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the current maximum power ( this can change :P )
|
* @return the current maximum power ( this can change :P )
|
||||||
@@ -67,5 +69,6 @@ public interface IAEPowerStorage extends IEnergySource
|
|||||||
*
|
*
|
||||||
* @return access restriction what the network can do
|
* @return access restriction what the network can do
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
AccessRestriction getPowerFlow();
|
AccessRestriction getPowerFlow();
|
||||||
}
|
}
|
||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.energy;
|
package appeng.api.networking.energy;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.config.Actionable;
|
import appeng.api.config.Actionable;
|
||||||
import appeng.api.networking.IGridCache;
|
import appeng.api.networking.IGridCache;
|
||||||
import appeng.api.networking.events.MENetworkPowerStatusChange;
|
import appeng.api.networking.events.MENetworkPowerStatusChange;
|
||||||
@@ -38,17 +41,20 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
|||||||
/**
|
/**
|
||||||
* @return the current calculated idle energy drain each tick, is used internally to drain power for each tick.
|
* @return the current calculated idle energy drain each tick, is used internally to drain power for each tick.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getIdlePowerUsage();
|
double getIdlePowerUsage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the average power drain over the past 10 ticks, includes idle usage during this time, and all use of
|
* @return the average power drain over the past 10 ticks, includes idle usage during this time, and all use of
|
||||||
* extractPower.
|
* extractPower.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getAvgPowerUsage();
|
double getAvgPowerUsage();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the average energy injected into the system per tick, for the last 10 ticks.
|
* @return the average energy injected into the system per tick, for the last 10 ticks.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getAvgPowerInjection();
|
double getAvgPowerInjection();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,13 +85,15 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
|||||||
*
|
*
|
||||||
* @return the amount of power that the network has OVER the limit.
|
* @return the amount of power that the network has OVER the limit.
|
||||||
*/
|
*/
|
||||||
double injectPower( double amt, Actionable mode );
|
@Nonnegative
|
||||||
|
double injectPower( @Nonnegative double amt, @Nonnull Actionable mode );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* this is should be considered an estimate, and not relied upon for real calculations.
|
* this is should be considered an estimate, and not relied upon for real calculations.
|
||||||
*
|
*
|
||||||
* @return estimated available power.
|
* @return estimated available power.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getStoredPower();
|
double getStoredPower();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,6 +101,7 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
|||||||
*
|
*
|
||||||
* @return estimated available power.
|
* @return estimated available power.
|
||||||
*/
|
*/
|
||||||
|
@Nonnegative
|
||||||
double getMaxStoredPower();
|
double getMaxStoredPower();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,5 +110,6 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
|||||||
*
|
*
|
||||||
* @return Amount of power required to charge the grid, in AE.
|
* @return Amount of power required to charge the grid, in AE.
|
||||||
*/
|
*/
|
||||||
double getEnergyDemand( double maxRequired );
|
@Nonnegative
|
||||||
|
double getEnergyDemand( @Nonnegative double maxRequired );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.energy;
|
package appeng.api.networking.energy;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.config.Actionable;
|
import appeng.api.config.Actionable;
|
||||||
import appeng.api.config.PowerMultiplier;
|
import appeng.api.config.PowerMultiplier;
|
||||||
|
|
||||||
@@ -39,5 +42,6 @@ public interface IEnergySource
|
|||||||
*
|
*
|
||||||
* @return returns extracted power.
|
* @return returns extracted power.
|
||||||
*/
|
*/
|
||||||
double extractAEPower( double amt, Actionable mode, PowerMultiplier usePowerMultiplier );
|
@Nonnegative
|
||||||
|
double extractAEPower( @Nonnegative double amt, @Nonnull Actionable mode, @Nonnull PowerMultiplier usePowerMultiplier );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.energy;
|
package appeng.api.networking.energy;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DO NOT IMPLEMENT.
|
* DO NOT IMPLEMENT.
|
||||||
*
|
*
|
||||||
@@ -39,7 +42,7 @@ public interface IEnergyWatcher
|
|||||||
* @param amount
|
* @param amount
|
||||||
* @return true, if successfully added.
|
* @return true, if successfully added.
|
||||||
*/
|
*/
|
||||||
boolean add( double amount );
|
boolean add( @Nonnegative double amount );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a specific threshold from the watcher.
|
* Remove a specific threshold from the watcher.
|
||||||
@@ -47,7 +50,7 @@ public interface IEnergyWatcher
|
|||||||
* @param amount
|
* @param amount
|
||||||
* @return true, if successfully removed.
|
* @return true, if successfully removed.
|
||||||
*/
|
*/
|
||||||
boolean remove( double amount );
|
boolean remove( @Nonnegative double amount );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes all thresholds and resets the watcher to a clean state.
|
* Removes all thresholds and resets the watcher to a clean state.
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.energy;
|
package appeng.api.networking.energy;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
public interface IEnergyWatcherHost
|
public interface IEnergyWatcherHost
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -33,12 +36,12 @@ public interface IEnergyWatcherHost
|
|||||||
*
|
*
|
||||||
* @param newWatcher new watcher
|
* @param newWatcher new watcher
|
||||||
*/
|
*/
|
||||||
void updateWatcher( IEnergyWatcher newWatcher );
|
void updateWatcher( @Nonnull IEnergyWatcher newWatcher );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a threshold is crossed.
|
* Called when a threshold is crossed.
|
||||||
*
|
*
|
||||||
* @param energyGrid grid
|
* @param energyGrid grid
|
||||||
*/
|
*/
|
||||||
void onThresholdPass( IEnergyGrid energyGrid );
|
void onThresholdPass( @Nonnull IEnergyGrid energyGrid );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ package appeng.api.networking.events;
|
|||||||
|
|
||||||
|
|
||||||
import appeng.api.storage.IMEMonitor;
|
import appeng.api.storage.IMEMonitor;
|
||||||
import appeng.api.storage.StorageChannel;
|
import appeng.api.storage.IStorageChannel;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,9 +40,9 @@ public class MENetworkStorageEvent extends MENetworkEvent
|
|||||||
{
|
{
|
||||||
|
|
||||||
public final IMEMonitor monitor;
|
public final IMEMonitor monitor;
|
||||||
public final StorageChannel channel;
|
public final IStorageChannel channel;
|
||||||
|
|
||||||
public MENetworkStorageEvent( final IMEMonitor o, final StorageChannel chan )
|
public MENetworkStorageEvent( final IMEMonitor o, final IStorageChannel chan )
|
||||||
{
|
{
|
||||||
this.monitor = o;
|
this.monitor = o;
|
||||||
this.channel = chan;
|
this.channel = chan;
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking.pathing;
|
package appeng.api.networking.pathing;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.networking.IGridCache;
|
import appeng.api.networking.IGridCache;
|
||||||
|
|
||||||
|
|
||||||
@@ -39,6 +41,7 @@ public interface IPathingGrid extends IGridCache
|
|||||||
* @return the controller state of the network, useful if you want to
|
* @return the controller state of the network, useful if you want to
|
||||||
* require a controller for a feature.
|
* require a controller for a feature.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
ControllerState getControllerState();
|
ControllerState getControllerState();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking.security;
|
package appeng.api.networking.security;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.networking.IGridNode;
|
import appeng.api.networking.IGridNode;
|
||||||
|
|
||||||
|
|
||||||
@@ -38,5 +40,6 @@ public interface IActionHost
|
|||||||
* @return the the gridnode that actions from this IGridHost are preformed
|
* @return the the gridnode that actions from this IGridHost are preformed
|
||||||
* by.
|
* by.
|
||||||
*/
|
*/
|
||||||
|
@Nonnull
|
||||||
IGridNode getActionableNode();
|
IGridNode getActionableNode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
package appeng.api.networking.security;
|
package appeng.api.networking.security;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnegative;
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
|
||||||
import appeng.api.config.SecurityPermissions;
|
import appeng.api.config.SecurityPermissions;
|
||||||
@@ -46,7 +49,7 @@ public interface ISecurityGrid extends IGridCache
|
|||||||
*
|
*
|
||||||
* @return true if the player has permissions.
|
* @return true if the player has permissions.
|
||||||
*/
|
*/
|
||||||
boolean hasPermission( EntityPlayer player, SecurityPermissions perm );
|
boolean hasPermission( @Nonnull EntityPlayer player, @Nonnull SecurityPermissions perm );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if a player has permissions.
|
* Check if a player has permissions.
|
||||||
@@ -56,7 +59,7 @@ public interface ISecurityGrid extends IGridCache
|
|||||||
*
|
*
|
||||||
* @return true if the player has permissions.
|
* @return true if the player has permissions.
|
||||||
*/
|
*/
|
||||||
boolean hasPermission( int playerID, SecurityPermissions perm );
|
boolean hasPermission( @Nonnegative int playerID, @Nonnull SecurityPermissions perm );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return PlayerID of the admin, or owner, this is the person who placed the security block.
|
* @return PlayerID of the admin, or owner, this is the person who placed the security block.
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ package appeng.api.networking.security;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
import java.util.Map;
|
||||||
|
|
||||||
import appeng.api.config.SecurityPermissions;
|
import appeng.api.config.SecurityPermissions;
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ public interface ISecurityProvider
|
|||||||
*
|
*
|
||||||
* @param playerPerms player permissions
|
* @param playerPerms player permissions
|
||||||
*/
|
*/
|
||||||
void readPermissions( HashMap<Integer, EnumSet<SecurityPermissions>> playerPerms );
|
void readPermissions( Map<Integer, EnumSet<SecurityPermissions>> playerPerms );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return is security on or off?
|
* @return is security on or off?
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ package appeng.api.networking.security;
|
|||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.config.SecurityPermissions;
|
import appeng.api.config.SecurityPermissions;
|
||||||
|
|
||||||
|
|
||||||
@@ -41,5 +43,5 @@ public interface ISecurityRegistry
|
|||||||
* @param playerID player id
|
* @param playerID player id
|
||||||
* @param permissions permissions of player
|
* @param permissions permissions of player
|
||||||
*/
|
*/
|
||||||
void addPlayer( int playerID, EnumSet<SecurityPermissions> permissions );
|
void addPlayer( int playerID, @Nonnull EnumSet<SecurityPermissions> permissions );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ import appeng.api.storage.IMEMonitorHandlerReceiver;
|
|||||||
import appeng.api.storage.data.IAEStack;
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
public interface IBaseMonitor<T extends IAEStack>
|
public interface IBaseMonitor<T extends IAEStack<T>>
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ package appeng.api.networking.storage;
|
|||||||
|
|
||||||
|
|
||||||
import appeng.api.networking.security.IActionSource;
|
import appeng.api.networking.security.IActionSource;
|
||||||
import appeng.api.storage.StorageChannel;
|
import appeng.api.storage.IStorageChannel;
|
||||||
import appeng.api.storage.data.IAEStack;
|
import appeng.api.storage.data.IAEStack;
|
||||||
import appeng.api.storage.data.IItemList;
|
import appeng.api.storage.data.IItemList;
|
||||||
|
|
||||||
@@ -44,11 +44,8 @@ public interface IStackWatcherHost
|
|||||||
/**
|
/**
|
||||||
* Called when a watched item changes amounts.
|
* Called when a watched item changes amounts.
|
||||||
*
|
*
|
||||||
* @param o changed item list
|
|
||||||
* @param fullStack old stack
|
|
||||||
* @param diffStack new stack
|
* @param diffStack new stack
|
||||||
* @param src action source
|
|
||||||
* @param chan storage channel
|
* @param chan storage channel
|
||||||
*/
|
*/
|
||||||
void onStackChange( IItemList o, IAEStack fullStack, IAEStack diffStack, IActionSource src, StorageChannel chan );
|
void onStackChange( IItemList<?> o, IAEStack<?> fullStack, IAEStack<?> diffStack, IActionSource src, IStorageChannel<?> chan );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ import appeng.api.networking.IGridHost;
|
|||||||
import appeng.api.networking.security.IActionSource;
|
import appeng.api.networking.security.IActionSource;
|
||||||
import appeng.api.storage.ICellContainer;
|
import appeng.api.storage.ICellContainer;
|
||||||
import appeng.api.storage.ICellProvider;
|
import appeng.api.storage.ICellProvider;
|
||||||
|
import appeng.api.storage.IStorageChannel;
|
||||||
import appeng.api.storage.IStorageMonitorable;
|
import appeng.api.storage.IStorageMonitorable;
|
||||||
import appeng.api.storage.StorageChannel;
|
|
||||||
import appeng.api.storage.data.IAEStack;
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
@@ -50,7 +50,8 @@ public interface IStorageGrid extends IGridCache, IStorageMonitorable
|
|||||||
*
|
*
|
||||||
* @param input injected items
|
* @param input injected items
|
||||||
*/
|
*/
|
||||||
void postAlterationOfStoredItems( StorageChannel chan, Iterable<? extends IAEStack> input, IActionSource src );
|
void postAlterationOfStoredItems( IStorageChannel<?> chan, Iterable<? extends IAEStack<?>> input, IActionSource src );
|
||||||
|
void postCraftablesChanges( IStorageChannel<?> chan, Iterable<? extends IAEStack<?>> input, IActionSource src);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to add a cell provider to the storage system
|
* Used to add a cell provider to the storage system
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking.ticking;
|
package appeng.api.networking.ticking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.networking.IGridNode;
|
import appeng.api.networking.IGridNode;
|
||||||
|
|
||||||
|
|
||||||
@@ -45,18 +47,18 @@ public interface IGridTickable
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can return null, if you wish to tick using MC's ticking mechanism, or
|
* Return a valid TickingRequest to tell AE a guide for which type of
|
||||||
* you can return a valid TickingRequest to tell AE a guide for which type
|
* responsiveness your device wants.
|
||||||
* of responsiveness your device wants.
|
|
||||||
*
|
*
|
||||||
* this will be called for your tile any time your tile changes grids, this
|
* This will be called for your tile any time your tile changes grids, this
|
||||||
* can happen at any time, so if your using the sleep feature you may wish
|
* can happen at any time, so if your using the sleep feature you may wish
|
||||||
* to preserve your sleep, in the result of this method. or you can simply
|
* to preserve your sleep, in the result of this method. or you can simply
|
||||||
* reset it.
|
* reset it.
|
||||||
*
|
*
|
||||||
* @return null or a valid new TickingRequest
|
* @return a valid new TickingRequest
|
||||||
*/
|
*/
|
||||||
TickingRequest getTickingRequest( IGridNode node );
|
@Nonnull
|
||||||
|
TickingRequest getTickingRequest( @Nonnull IGridNode node );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AE lets you adjust your tick rate based on the results of your tick, if
|
* AE lets you adjust your tick rate based on the results of your tick, if
|
||||||
@@ -67,11 +69,12 @@ public interface IGridTickable
|
|||||||
*
|
*
|
||||||
* Note: this is never called if you return null from getTickingRequest.
|
* Note: this is never called if you return null from getTickingRequest.
|
||||||
*
|
*
|
||||||
* @param TicksSinceLastCall the number of world ticks that were skipped since your last
|
* @param ticksSinceLastCall the number of world ticks that were skipped since your last
|
||||||
* tick, you can use this to adjust speed of processing or adjust
|
* tick, you can use this to adjust speed of processing or adjust
|
||||||
* your tick rate.
|
* your tick rate.
|
||||||
*
|
*
|
||||||
* @return tick rate adjustment.
|
* @return tick rate adjustment.
|
||||||
*/
|
*/
|
||||||
TickRateModulation tickingRequest( IGridNode node, int TicksSinceLastCall );
|
@Nonnull
|
||||||
|
TickRateModulation tickingRequest( @Nonnull IGridNode node, int ticksSinceLastCall );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
package appeng.api.networking.ticking;
|
package appeng.api.networking.ticking;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import appeng.api.networking.IGridCache;
|
import appeng.api.networking.IGridCache;
|
||||||
import appeng.api.networking.IGridNode;
|
import appeng.api.networking.IGridNode;
|
||||||
|
|
||||||
@@ -42,7 +44,7 @@ public interface ITickManager extends IGridCache
|
|||||||
*
|
*
|
||||||
* @param node gridnode
|
* @param node gridnode
|
||||||
*/
|
*/
|
||||||
boolean alertDevice( IGridNode node );
|
boolean alertDevice( @Nonnull IGridNode node );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* disables ticking for your device.
|
* disables ticking for your device.
|
||||||
@@ -51,7 +53,7 @@ public interface ITickManager extends IGridCache
|
|||||||
*
|
*
|
||||||
* @return if the call was successful.
|
* @return if the call was successful.
|
||||||
*/
|
*/
|
||||||
boolean sleepDevice( IGridNode node );
|
boolean sleepDevice( @Nonnull IGridNode node );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enables ticking for your device, undoes a sleepDevice call.
|
* enables ticking for your device, undoes a sleepDevice call.
|
||||||
@@ -60,5 +62,5 @@ public interface ITickManager extends IGridCache
|
|||||||
*
|
*
|
||||||
* @return if the call was successful.
|
* @return if the call was successful.
|
||||||
*/
|
*/
|
||||||
boolean wakeDevice( IGridNode node );
|
boolean wakeDevice( @Nonnull IGridNode node );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
*
|
*
|
||||||
@@ -21,7 +22,7 @@
|
|||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@API( apiVersion = "@aeversion@", owner = "appliedenergistics2", provides = "appliedenergistics2|API" )
|
@API(apiVersion = "rv6", owner = "appliedenergistics2", provides = "appliedenergistics2|API")
|
||||||
package appeng.api;
|
package appeng.api;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ public interface IPart extends IBoxProvider, ICustomCableConnection
|
|||||||
* Called when you right click the part, very similar to Block.onActivateBlock
|
* Called when you right click the part, very similar to Block.onActivateBlock
|
||||||
*
|
*
|
||||||
* @param player right clicking player
|
* @param player right clicking player
|
||||||
|
* @param hand hand used
|
||||||
* @param pos position of block
|
* @param pos position of block
|
||||||
*
|
*
|
||||||
* @return if your activate method performed something.
|
* @return if your activate method performed something.
|
||||||
@@ -219,12 +220,41 @@ public interface IPart extends IBoxProvider, ICustomCableConnection
|
|||||||
* Called when you right click the part, very similar to Block.onActivateBlock
|
* Called when you right click the part, very similar to Block.onActivateBlock
|
||||||
*
|
*
|
||||||
* @param player shift right clicking player
|
* @param player shift right clicking player
|
||||||
|
* @param hand hand used
|
||||||
* @param pos position of block
|
* @param pos position of block
|
||||||
*
|
*
|
||||||
* @return if your activate method performed something, you should use false unless you really need it.
|
* @return if your activate method performed something, you should use false unless you really need it.
|
||||||
*/
|
*/
|
||||||
boolean onShiftActivate( EntityPlayer player, EnumHand hand, Vec3d pos );
|
boolean onShiftActivate( EntityPlayer player, EnumHand hand, Vec3d pos );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when you left click the part, very similar to Block.onBlockClicked
|
||||||
|
*
|
||||||
|
* @param player left clicking player
|
||||||
|
* @param hand hand used
|
||||||
|
* @param pos position of block
|
||||||
|
*
|
||||||
|
* @return if your activate method performed something, you should use false unless you really need it.
|
||||||
|
*/
|
||||||
|
default boolean onClicked( EntityPlayer player, EnumHand hand, Vec3d pos )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when you shift-left click the part, very similar to Block.onBlockClicked
|
||||||
|
*
|
||||||
|
* @param player shift-left clicking player
|
||||||
|
* @param hand hand used
|
||||||
|
* @param pos position of block
|
||||||
|
*
|
||||||
|
* @return if your activate method performed something, you should use false unless you really need it.
|
||||||
|
*/
|
||||||
|
default boolean onShiftClicked( EntityPlayer player, EnumHand hand, Vec3d pos )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add drops to the items being dropped into the world, if your item stores its contents when wrenched use the
|
* Add drops to the items being dropped into the world, if your item stores its contents when wrenched use the
|
||||||
* wrenched boolean to control what data is saved vs dropped when it is broken.
|
* wrenched boolean to control what data is saved vs dropped when it is broken.
|
||||||
@@ -261,6 +291,9 @@ public interface IPart extends IBoxProvider, ICustomCableConnection
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to determine which parts can be placed on what cables.
|
* Used to determine which parts can be placed on what cables.
|
||||||
|
*
|
||||||
|
* Dense cables are not allowed for functional (getGridNode returns a node) parts.
|
||||||
|
* Doing so will result in crashes.
|
||||||
*
|
*
|
||||||
* @param what placed part
|
* @param what placed part
|
||||||
*
|
*
|
||||||
@@ -325,4 +358,14 @@ public interface IPart extends IBoxProvider, ICustomCableConnection
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
/**
|
||||||
|
* Flag to be passed to the renderer.
|
||||||
|
*
|
||||||
|
* @return flag or null
|
||||||
|
*/
|
||||||
|
default Long getRenderFlag()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
package appeng.api.parts;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IPartBakedModel
|
||||||
|
{
|
||||||
|
List<BakedQuad> getPartQuads( @Nullable Long partFlags, long rand );
|
||||||
|
}
|
||||||
@@ -72,7 +72,7 @@ public interface IPartHost extends ICustomCableConnection
|
|||||||
* @return null if the item failed to add, the side it was placed on other wise ( may different for cables,
|
* @return null if the item failed to add, the side it was placed on other wise ( may different for cables,
|
||||||
* {@link AEPartLocation}.UNKNOWN )
|
* {@link AEPartLocation}.UNKNOWN )
|
||||||
*/
|
*/
|
||||||
AEPartLocation addPart( ItemStack is, AEPartLocation side, EntityPlayer owner, EnumHand hand );
|
AEPartLocation addPart( ItemStack is, AEPartLocation side, EntityPlayer owner, EnumHand hand );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get part by side ( center is {@link AEPartLocation}.UNKNOWN )
|
* Get part by side ( center is {@link AEPartLocation}.UNKNOWN )
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
package appeng.api.parts;
|
package appeng.api.parts;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Consider removing and replacing with capabilities.
|
* TODO: Consider removing and replacing with capabilities.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -26,11 +26,12 @@ package appeng.api.recipes;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import appeng.api.exceptions.MissingIngredientError;
|
import appeng.api.exceptions.MissingIngredientException;
|
||||||
import appeng.api.exceptions.RecipeError;
|
import appeng.api.exceptions.RecipeException;
|
||||||
import appeng.api.exceptions.RegistrationError;
|
import appeng.api.exceptions.RegistrationException;
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public interface ICraftHandler
|
public interface ICraftHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -40,15 +41,15 @@ public interface ICraftHandler
|
|||||||
* @param input parsed inputs
|
* @param input parsed inputs
|
||||||
* @param output parsed outputs
|
* @param output parsed outputs
|
||||||
*
|
*
|
||||||
* @throws RecipeError
|
* @throws RecipeException
|
||||||
*/
|
*/
|
||||||
void setup( List<List<IIngredient>> input, List<List<IIngredient>> output ) throws RecipeError;
|
void setup( List<List<IIngredient>> input, List<List<IIngredient>> output ) throws RecipeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* called when all recipes are parsed, and your required to register your recipe.
|
* called when all recipes are parsed, and your required to register your recipe.
|
||||||
*
|
*
|
||||||
* @throws RegistrationError
|
* @throws RegistrationException
|
||||||
* @throws MissingIngredientError
|
* @throws MissingIngredientException
|
||||||
*/
|
*/
|
||||||
void register() throws RegistrationError, MissingIngredientError;
|
void register() throws RegistrationException, MissingIngredientException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,10 +26,11 @@ package appeng.api.recipes;
|
|||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import appeng.api.exceptions.MissingIngredientError;
|
import appeng.api.exceptions.MissingIngredientException;
|
||||||
import appeng.api.exceptions.RegistrationError;
|
import appeng.api.exceptions.RegistrationException;
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public interface IIngredient
|
public interface IIngredient
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -39,10 +40,10 @@ public interface IIngredient
|
|||||||
*
|
*
|
||||||
* @return a single ItemStack for the recipe handler.
|
* @return a single ItemStack for the recipe handler.
|
||||||
*
|
*
|
||||||
* @throws RegistrationError
|
* @throws RegistrationException
|
||||||
* @throws MissingIngredientError
|
* @throws MissingIngredientException
|
||||||
*/
|
*/
|
||||||
ItemStack getItemStack() throws RegistrationError, MissingIngredientError;
|
ItemStack getItemStack() throws RegistrationException, MissingIngredientException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Acquire a list of all the input stacks for the current recipe, this is for handlers that support
|
* Acquire a list of all the input stacks for the current recipe, this is for handlers that support
|
||||||
@@ -50,10 +51,10 @@ public interface IIngredient
|
|||||||
*
|
*
|
||||||
* @return an array of ItemStacks for the recipe handler.
|
* @return an array of ItemStacks for the recipe handler.
|
||||||
*
|
*
|
||||||
* @throws RegistrationError
|
* @throws RegistrationException
|
||||||
* @throws MissingIngredientError
|
* @throws MissingIngredientException
|
||||||
*/
|
*/
|
||||||
ItemStack[] getItemStackSet() throws RegistrationError, MissingIngredientError;
|
ItemStack[] getItemStackSet() throws RegistrationException, MissingIngredientException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If you wish to support air, you must test before getting the ItemStack, or ItemStackSet
|
* If you wish to support air, you must test before getting the ItemStack, or ItemStackSet
|
||||||
@@ -85,8 +86,8 @@ public interface IIngredient
|
|||||||
/**
|
/**
|
||||||
* Bakes the lists in for faster runtime look-ups.
|
* Bakes the lists in for faster runtime look-ups.
|
||||||
*
|
*
|
||||||
* @throws MissingIngredientError
|
* @throws MissingIngredientException
|
||||||
* @throws RegistrationError
|
* @throws RegistrationException
|
||||||
*/
|
*/
|
||||||
void bake() throws RegistrationError, MissingIngredientError;
|
void bake() throws RegistrationException, MissingIngredientException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ package appeng.api.recipes;
|
|||||||
/**
|
/**
|
||||||
* Represents the AE2 Recipe Loading/Reading Class
|
* Represents the AE2 Recipe Loading/Reading Class
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public interface IRecipeHandler
|
public interface IRecipeHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import java.io.BufferedReader;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public interface IRecipeLoader
|
public interface IRecipeLoader
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
package appeng.api.storage;
|
||||||
|
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import appeng.api.implementations.tiles.IChestOrDrive;
|
||||||
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
|
public interface ICellGuiHandler
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Return true if this handler can show GUI for this channel.
|
||||||
|
*
|
||||||
|
* @param channel Storage channel
|
||||||
|
* @return True if handled, else false.
|
||||||
|
*/
|
||||||
|
<T extends IAEStack<T>> boolean isHandlerFor( IStorageChannel<T> channel );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true to prioritize this handler for the provided {@link ItemStack}.
|
||||||
|
*
|
||||||
|
* @param is Cell ItemStack
|
||||||
|
* @return True, if specialized else false.
|
||||||
|
*/
|
||||||
|
default boolean isSpecializedFor( ItemStack is )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the storage cell is placed in an ME Chest and the user tries to open the terminal side, if your item
|
||||||
|
* is not available via ME Chests simply tell the user they can't use it, or something, other wise you should open
|
||||||
|
* your gui and display the cell to the user.
|
||||||
|
*
|
||||||
|
* @param player player opening chest gui
|
||||||
|
* @param chest to be opened chest
|
||||||
|
* @param cellHandler cell handler
|
||||||
|
* @param inv inventory handler
|
||||||
|
* @param is item
|
||||||
|
* @param chan storage channel
|
||||||
|
*/
|
||||||
|
<T extends IAEStack<T>> void openChestGui( EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler<T> inv, ItemStack is, IStorageChannel<T> chan );
|
||||||
|
|
||||||
|
}
|
||||||
@@ -24,10 +24,9 @@
|
|||||||
package appeng.api.storage;
|
package appeng.api.storage;
|
||||||
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
import appeng.api.implementations.tiles.IChestOrDrive;
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,26 +50,12 @@ public interface ICellHandler
|
|||||||
*
|
*
|
||||||
* @param is a storage cell item.
|
* @param is a storage cell item.
|
||||||
* @param host anytime the contents of your storage cell changes it should use this to request a save, please
|
* @param host anytime the contents of your storage cell changes it should use this to request a save, please
|
||||||
* note, this value can be null.
|
* note, this value can be null. If provided, the host is responsible for persisting the cell content.
|
||||||
* @param channel the storage channel requested.
|
* @param channel the storage channel requested.
|
||||||
*
|
*
|
||||||
* @return a new IMEHandler for the provided item
|
* @return a new IMEHandler for the provided item
|
||||||
*/
|
*/
|
||||||
IMEInventoryHandler getCellInventory( ItemStack is, ISaveProvider host, StorageChannel channel );
|
<T extends IAEStack<T>> ICellInventoryHandler<T> getCellInventory( ItemStack is, ISaveProvider host, IStorageChannel<T> channel );
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the storage cell is planed in an ME Chest and the user tries to open the terminal side, if your item
|
|
||||||
* is not available via ME Chests simply tell the user they can't use it, or something, other wise you should open
|
|
||||||
* your gui and display the cell to the user.
|
|
||||||
*
|
|
||||||
* @param player player opening chest gui
|
|
||||||
* @param chest to be opened chest
|
|
||||||
* @param cellHandler cell handler
|
|
||||||
* @param inv inventory handler
|
|
||||||
* @param is item
|
|
||||||
* @param chan storage channel
|
|
||||||
*/
|
|
||||||
void openChestGui( EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0 - cell is missing.
|
* 0 - cell is missing.
|
||||||
@@ -86,10 +71,31 @@ public interface ICellHandler
|
|||||||
*
|
*
|
||||||
* @return get the status of the cell based on its contents.
|
* @return get the status of the cell based on its contents.
|
||||||
*/
|
*/
|
||||||
int getStatusForCell( ItemStack is, IMEInventory handler );
|
default <T extends IAEStack<T>> int getStatusForCell( ItemStack is, ICellInventoryHandler<T> handler )
|
||||||
|
{
|
||||||
|
if( handler.getCellInv() != null )
|
||||||
|
{
|
||||||
|
int val = handler.getCellInv().getStatusForCell();
|
||||||
|
|
||||||
|
if( val == 1 && handler.isPreformatted() )
|
||||||
|
{
|
||||||
|
val = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the ae/t to drain for this storage cell inside a chest/drive.
|
* @return the ae/t to drain for this storage cell inside a chest/drive.
|
||||||
*/
|
*/
|
||||||
double cellIdleDrain( ItemStack is, IMEInventory handler );
|
default <T extends IAEStack<T>> double cellIdleDrain( ItemStack is, ICellInventoryHandler<T> handler )
|
||||||
|
{
|
||||||
|
if( handler.getCellInv() != null )
|
||||||
|
{
|
||||||
|
return handler.getCellInv().getIdleDrain();
|
||||||
|
}
|
||||||
|
return 1.0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -28,10 +28,10 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
import appeng.api.config.FuzzyMode;
|
import appeng.api.config.FuzzyMode;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
public interface ICellInventory extends IMEInventory<IAEItemStack>
|
public interface ICellInventory<T extends IAEStack<T>> extends IMEInventory<T>
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,7 +40,7 @@ public interface ICellInventory extends IMEInventory<IAEItemStack>
|
|||||||
ItemStack getItemStack();
|
ItemStack getItemStack();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return idle cost for this Storage Cell
|
* @return the ae/t to drain for this storage cell inside a chest/drive.
|
||||||
*/
|
*/
|
||||||
double getIdleDrain();
|
double getIdleDrain();
|
||||||
|
|
||||||
@@ -115,7 +115,20 @@ public interface ICellInventory extends IMEInventory<IAEItemStack>
|
|||||||
int getUnusedItemCount();
|
int getUnusedItemCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the status number for this drive.
|
* 0 - cell is missing.
|
||||||
|
*
|
||||||
|
* 1 - green, ( usually means available room for types or items. )
|
||||||
|
*
|
||||||
|
* 2 - orange, ( usually means available room for items, but not types. )
|
||||||
|
*
|
||||||
|
* 3 - red, ( usually means the cell is 100% full )
|
||||||
|
*
|
||||||
|
* @return get the status of the cell based on its contents.
|
||||||
*/
|
*/
|
||||||
int getStatusForCell();
|
int getStatusForCell();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tells the cell to persist to NBT
|
||||||
|
*/
|
||||||
|
void persist();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,17 +24,22 @@
|
|||||||
package appeng.api.storage;
|
package appeng.api.storage;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import appeng.api.config.IncludeExclude;
|
import appeng.api.config.IncludeExclude;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
public interface ICellInventoryHandler extends IMEInventoryHandler<IAEItemStack>
|
public interface ICellInventoryHandler<T extends IAEStack<T>> extends IMEInventoryHandler<T>
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Get access to the ICellInventory. Can be null for custom cells.
|
||||||
|
*
|
||||||
* @return get access to the Cell Inventory.
|
* @return get access to the Cell Inventory.
|
||||||
*/
|
*/
|
||||||
ICellInventory getCellInv();
|
@Nullable
|
||||||
|
ICellInventory<T> getCellInv();
|
||||||
|
|
||||||
boolean isPreformatted();
|
boolean isPreformatted();
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public interface ICellProvider
|
|||||||
*
|
*
|
||||||
* @return a valid list of handlers, NEVER NULL
|
* @return a valid list of handlers, NEVER NULL
|
||||||
*/
|
*/
|
||||||
List<IMEInventoryHandler> getCellArray( StorageChannel channel );
|
List<IMEInventoryHandler> getCellArray( IStorageChannel<?> channel );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the storage's priority.
|
* the storage's priority.
|
||||||
|
|||||||
@@ -24,9 +24,14 @@
|
|||||||
package appeng.api.storage;
|
package appeng.api.storage;
|
||||||
|
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
|
|
||||||
import appeng.api.IAppEngApi;
|
import appeng.api.IAppEngApi;
|
||||||
|
import appeng.api.storage.data.IAEStack;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,9 +46,19 @@ public interface ICellRegistry
|
|||||||
/**
|
/**
|
||||||
* Register a new handler.
|
* Register a new handler.
|
||||||
*
|
*
|
||||||
|
* Never be call before {@link FMLInitializationEvent} was handled by AE2.
|
||||||
|
* Will throw an exception otherwise.
|
||||||
|
*
|
||||||
* @param handler cell handler
|
* @param handler cell handler
|
||||||
*/
|
*/
|
||||||
void addCellHandler( ICellHandler handler );
|
void addCellHandler( @Nonnull ICellHandler handler );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a new handler
|
||||||
|
*
|
||||||
|
* @param handler cell gui handler
|
||||||
|
*/
|
||||||
|
void addCellGuiHandler( @Nonnull ICellGuiHandler handler );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return true, if you can get a InventoryHandler for the item passed.
|
* return true, if you can get a InventoryHandler for the item passed.
|
||||||
@@ -56,22 +71,34 @@ public interface ICellRegistry
|
|||||||
boolean isCellHandled( ItemStack is );
|
boolean isCellHandled( ItemStack is );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the handler, for the requested type.
|
* get the handler, for the requested item.
|
||||||
*
|
*
|
||||||
* @param is to be checked item
|
* @param is to be checked item
|
||||||
*
|
*
|
||||||
* @return the handler registered for this item type.
|
* @return the handler registered for this item type.
|
||||||
*/
|
*/
|
||||||
|
@Nullable
|
||||||
ICellHandler getHandler( ItemStack is );
|
ICellHandler getHandler( ItemStack is );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns an IMEInventoryHandler for the provided item.
|
* get the handler, for the requested channel.
|
||||||
|
*
|
||||||
|
* @param channel requested channel
|
||||||
|
* @param Cell ItemStack
|
||||||
|
* @return the handler registered for this channel.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<T extends IAEStack<T>> ICellGuiHandler getGuiHandler( IStorageChannel<T> channel, ItemStack is );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns an ICellInventoryHandler for the provided item by querying all registered handlers.
|
||||||
*
|
*
|
||||||
* @param is item with inventory handler
|
* @param is item with inventory handler
|
||||||
* @param host can be null, or the hosting tile / part.
|
* @param host can be null. If provided, the host is responsible for persisting the cell content.
|
||||||
* @param chan the storage channel to request the handler for.
|
* @param chan the storage channel to request the handler for.
|
||||||
*
|
*
|
||||||
* @return new IMEInventoryHandler, or null if there isn't one.
|
* @return new ICellInventoryHandler, or null if there isn't one.
|
||||||
*/
|
*/
|
||||||
IMEInventoryHandler getCellInventory( ItemStack is, ISaveProvider host, StorageChannel chan );
|
@Nullable
|
||||||
|
<T extends IAEStack<T>> ICellInventoryHandler<T> getCellInventory( ItemStack is, ISaveProvider host, IStorageChannel<T> chan );
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ import appeng.api.storage.data.IItemList;
|
|||||||
* If you want to request a stack of an item, you should should determine that prior to requesting the stack from the
|
* If you want to request a stack of an item, you should should determine that prior to requesting the stack from the
|
||||||
* inventory.
|
* inventory.
|
||||||
*/
|
*/
|
||||||
public interface IMEInventory<StackType extends IAEStack>
|
public interface IMEInventory<T extends IAEStack<T>>
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -52,7 +52,7 @@ public interface IMEInventory<StackType extends IAEStack>
|
|||||||
*
|
*
|
||||||
* @return returns the number of items not added.
|
* @return returns the number of items not added.
|
||||||
*/
|
*/
|
||||||
StackType injectItems( StackType input, Actionable type, IActionSource src );
|
T injectItems( T input, Actionable type, IActionSource src );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract the specified item from the ME Inventory
|
* Extract the specified item from the ME Inventory
|
||||||
@@ -62,7 +62,7 @@ public interface IMEInventory<StackType extends IAEStack>
|
|||||||
*
|
*
|
||||||
* @return returns the number of items extracted, null
|
* @return returns the number of items extracted, null
|
||||||
*/
|
*/
|
||||||
StackType extractItems( StackType request, Actionable mode, IActionSource src );
|
T extractItems( T request, Actionable mode, IActionSource src );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* request a full report of all available items, storage.
|
* request a full report of all available items, storage.
|
||||||
@@ -71,10 +71,10 @@ public interface IMEInventory<StackType extends IAEStack>
|
|||||||
*
|
*
|
||||||
* @return returns same list that was passed in, is passed out
|
* @return returns same list that was passed in, is passed out
|
||||||
*/
|
*/
|
||||||
IItemList<StackType> getAvailableItems( IItemList<StackType> out );
|
IItemList<T> getAvailableItems( IItemList<T> out );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the type of channel your handler should be part of
|
* @return the type of channel your handler should be part of
|
||||||
*/
|
*/
|
||||||
StorageChannel getChannel();
|
IStorageChannel<T> getChannel();
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user