Compare commits
1661 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9e0046ba83 | |||
| 150d929a45 | |||
| 9b46613355 | |||
| a44469eac4 | |||
| 87e5647379 | |||
| 045c9f46d2 | |||
| 7826d756d0 | |||
| f37ed0cccf | |||
| 6fcdde8a9f | |||
| cd20fb1e34 | |||
| d7c96bbba4 | |||
| 5c30d077dd | |||
| 7df442878d | |||
| b8f90ddc55 | |||
| cc134092ed | |||
| 5d4268e902 | |||
| c718733104 | |||
| 97e7f05636 | |||
| b4269afc9f | |||
| 46740f51a7 | |||
| 9ccbc792b4 | |||
| 89ea4c5172 | |||
| 61c83e4c10 | |||
| 65e053db0d | |||
| a9ccc6fa34 | |||
| 3f5622debf | |||
| bddf9c85e8 | |||
| cb6d4a1471 | |||
| 2651e3d435 | |||
| 2f4c398852 | |||
| b255e0ac68 | |||
| 848b75ad7d | |||
| 556550fea8 | |||
| 223326afe2 | |||
| 0cfdf8f57e | |||
| 1859d0ea96 | |||
| 9392decd35 | |||
| f6e2f2f52a | |||
| bc1a4ec138 | |||
| 06b43d6627 | |||
| 30055805d8 | |||
| a07e43ad5c | |||
| cbc34fad82 | |||
| 35af4eaed3 | |||
| 15ee6a9512 | |||
| ab88d06cff | |||
| b622095883 | |||
| 4ab2fef1ac | |||
| a27593149a | |||
| 8a4172dda1 | |||
| 0e0f5ec3ea | |||
| d0822213d5 | |||
| 5e924a00b1 | |||
| 71536230b6 | |||
| 08483d02c6 | |||
| e771f8a53c | |||
| 23b9f16747 | |||
| 7e287dab71 | |||
| 4cb2bb97a8 | |||
| d7eb8d9416 | |||
| 9c8d77a4f3 | |||
| 779431b123 | |||
| d106a79532 | |||
| 0efa4c3de3 | |||
| 1c90270eb6 | |||
| a8bee52159 | |||
| 3adc37c63f | |||
| 9268a43446 | |||
| 3c4e57cff5 | |||
| ac0eacb721 | |||
| b0c2874e71 | |||
| e61f6bb802 | |||
| 69a2c18452 | |||
| 146dd85920 | |||
| 163c0bf1fa | |||
| 45c47533c2 | |||
| 22c11b3eeb | |||
| 8a9f63ab25 | |||
| 79b0b3dc0a | |||
| fe9695e889 | |||
| d878e464f6 | |||
| 2667101453 | |||
| 7507cf98a7 | |||
| 9e63f7ed4d | |||
| 0f5cf77f23 | |||
| d52323ff44 | |||
| 7549543268 | |||
| 43366e1f6e | |||
| 19aedc14cd | |||
| ec29ea8cc1 | |||
| ab031d2961 | |||
| 0da306225d | |||
| 51190efc66 | |||
| 1b8ee5cd48 | |||
| fa12443cb1 | |||
| 798a5c6c96 | |||
| 51c76fe5fb | |||
| 9e8ca25a71 | |||
| 8299955a55 | |||
| a691b27b4f | |||
| 47b6730f63 | |||
| c6ff1b60bb | |||
| 796e8652a8 | |||
| f65b4205c3 | |||
| 0caf164e06 | |||
| 8dbeb16f33 | |||
| 1d88d12632 | |||
| c1309eb4e8 | |||
| 7c678a4a41 | |||
| 25d51842a7 | |||
| 532271ab10 | |||
| b984345ca0 | |||
| ebebc5566e | |||
| 77d8f413e6 | |||
| 19d20f5591 | |||
| 706a423c5f | |||
| 88d78c53fd | |||
| 0c30c72d26 | |||
| d0805ea775 | |||
| 2c154613a0 | |||
| 070b52da5e | |||
| 20452ceb76 | |||
| 1880c65078 | |||
| 104be7804c | |||
| 9460fc9b04 | |||
| e8bce52ead | |||
| 614e1e027f | |||
| b999a321c7 | |||
| f32e25f52f | |||
| 5e413cfe93 | |||
| b5853d20ee | |||
| 39e477f8ca | |||
| 22e91d62b6 | |||
| ca9dfed516 | |||
| 466ebe0503 | |||
| d21244ce23 | |||
| eee52c8f55 | |||
| ddc3291bf7 | |||
| 0dc267f038 | |||
| efc2ce84e4 | |||
| bd3592ee5b | |||
| e693e2f9e0 | |||
| ab60df6240 | |||
| 124dbe700f | |||
| d1d7cc4dd2 | |||
| 42135636af | |||
| fc248d0956 | |||
| b641436d80 | |||
| 7959097fe3 | |||
| e73e3a5587 | |||
| 9c918c7bbb | |||
| 7e869105cb | |||
| 8af14ad3e7 | |||
| 1ebbd9f7e4 | |||
| f9b544cc11 | |||
| 04b961b164 | |||
| 09aa607a48 | |||
| 5ee6141d3f | |||
| 73facf1f35 | |||
| f01001726a | |||
| 3356af9cca | |||
| 773f17ddfe | |||
| 836332959c | |||
| de514b1d1d | |||
| 8e46ce07e0 | |||
| d5b929f7a7 | |||
| 2eae46271b | |||
| 2d7e0d8b21 | |||
| ebc5f30863 | |||
| e90daa8e5b | |||
| 0a8847cdc0 | |||
| 3daa0eb6ce | |||
| 7ba3fc0dda | |||
| d07a285323 | |||
| 5610d9bc0a | |||
| 4b8f27ed78 | |||
| b3a09a12fa | |||
| 0b3958eb58 | |||
| 528499215a | |||
| ad2e3e738e | |||
| e3eb08a983 | |||
| 4c5204172e | |||
| 645567c474 | |||
| 446c274094 | |||
| 23ebfcb9bf | |||
| 643112953e | |||
| 488b598d97 | |||
| fecefc8bdf | |||
| 30dd5f5d59 | |||
| b9896d3020 | |||
| 1d0a979e5c | |||
| 8b47c3ea5b | |||
| 79340dd9f2 | |||
| 117bfb7f31 | |||
| 5e2accadca | |||
| f746f8b4ec | |||
| b3c4ea47d7 | |||
| b244a17358 | |||
| ca425eae6d | |||
| 2cd1dc6e92 | |||
| 0942f0f1a3 | |||
| 135b950db1 | |||
| 917e532408 | |||
| 0d76a8edfe | |||
| b1e97214ec | |||
| 639c24dd8e | |||
| 5b6836d184 | |||
| fa1527243f | |||
| cbd404913f | |||
| b57d7c13df | |||
| bf2c36369e | |||
| 41b313943b | |||
| c4d0b693eb | |||
| 611aae667c | |||
| 2900417a3a | |||
| 146d9da417 | |||
| 2d4f057eb0 | |||
| 9ef25bdee0 | |||
| 363a1aea4d | |||
| fa03336a5d | |||
| b38b33e87e | |||
| 96074c2f50 | |||
| 5f7e9c16f4 | |||
| b1ed91af2a | |||
| 416c0db163 | |||
| f387a2ca1b | |||
| ad24cbebe3 | |||
| 8eb4afef68 | |||
| b0ad8fa637 | |||
| b014317e1a | |||
| 50257c6b94 | |||
| 29fabe1849 | |||
| 201c0c3e3e | |||
| bafbbf225e | |||
| 451b3cfdbe | |||
| c6104e2dd9 | |||
| 70b3460928 | |||
| 35d2d638d4 | |||
| c40067359f | |||
| d69e6b7d8d | |||
| 5921dfa749 | |||
| 62bf59f098 | |||
| 06478a56bb | |||
| 6c915c571a | |||
| 80ed8127f5 | |||
| 1e5a4d43f7 | |||
| 78e2b4ff3f | |||
| c45ed9aa70 | |||
| 4c2c89de57 | |||
| c724c6211e | |||
| 4b14fe82e7 | |||
| 31971e03db | |||
| 6e87a31e2e | |||
| df097b9425 | |||
| d3a575542d | |||
| 7ce89e9903 | |||
| 7f4e5d9e58 | |||
| ae65fb8e93 | |||
| 2bf997e882 | |||
| f4e7eb6a38 | |||
| 229e042994 | |||
| fb5b16e557 | |||
| ff90dc04b7 | |||
| 21b5470863 | |||
| 05c523ffdf | |||
| 82b2bf1434 | |||
| 83999fd516 | |||
| 9caad6ee41 | |||
| f3a83addd4 | |||
| 28649f4287 | |||
| 1a5bd288c8 | |||
| 94f1d99672 | |||
| bf62ecff0b | |||
| 974cd95867 | |||
| edaee7edd2 | |||
| 526f483bfb | |||
| 444090ed39 | |||
| e0d25fdd88 | |||
| 4ddfb8342d | |||
| 8f0c820c09 | |||
| bbcf1d0071 | |||
| ece2fc5e6a | |||
| 513fc4c686 | |||
| 417cf0a891 | |||
| 820683783b | |||
| ffb1ce4355 | |||
| 1bea96b050 | |||
| 3231a2df3e | |||
| 756af2bec4 | |||
| bbaea5e614 | |||
| 6409cbad09 | |||
| 18ed2e7eee | |||
| f45a4b8d62 | |||
| f0238dc4ea | |||
| 6011a16e11 | |||
| 5c6302edbd | |||
| 0e57870ba9 | |||
| cd55659331 | |||
| 2516ba5524 | |||
| 45045de794 | |||
| f81b453c39 | |||
| e966d40ae2 | |||
| 57c5c618f9 | |||
| 30cf937539 | |||
| d1df845e79 | |||
| 877b0dae25 | |||
| 1ec06fa94e | |||
| 94b2b63767 | |||
| 65751b0abd | |||
| df859bd9fc | |||
| 05349beb8d | |||
| b18fcb5815 | |||
| 9b183aba93 | |||
| d9e3293cf3 | |||
| e1b448dd39 | |||
| ebef91601e | |||
| fb424aadb6 | |||
| d15eba1185 | |||
| 03d2d0c3a2 | |||
| b0f1a6e70d | |||
| adae64f42c | |||
| d12d132e4c | |||
| a36b231ce8 | |||
| ee24bd0881 | |||
| 1be2d24f42 | |||
| e6a5a65f21 | |||
| 42d80cbe34 | |||
| 2c6f2717f0 | |||
| bf17a72a7a | |||
| f0575d0bc2 | |||
| 42a875ed8d | |||
| 312b32cd63 | |||
| 181232c18e | |||
| cbf84639ca | |||
| 2142799fab | |||
| db218adcf4 | |||
| da692ab928 | |||
| 9bbb861b4e | |||
| 37acd4a130 | |||
| 3004685235 | |||
| 1b094576d7 | |||
| 4333cf65a2 | |||
| a4b7e3e021 | |||
| e7021dff2b | |||
| a91c6e7e9e | |||
| 26c86b4059 | |||
| 14bc64ea6d | |||
| a2ed27c1d3 | |||
| ebbeb02489 | |||
| c46e12fb7a | |||
| 752c4af676 | |||
| b5bd50f789 | |||
| a5d0035f81 | |||
| 72e396bbcd | |||
| 7d7202950e | |||
| cb0b610812 | |||
| 19cde1bbd4 | |||
| 1fe209d72a | |||
| a61317aa57 | |||
| 05a16e00ad | |||
| 03efa3c191 | |||
| 9d5bfc4f16 | |||
| 1aa45bd9d6 | |||
| 04e8a99320 | |||
| 5b8649630c | |||
| 89e92504e4 | |||
| 6fa0c802dc | |||
| 10b3c94782 | |||
| cdb0ce63b8 | |||
| 29d474c577 | |||
| 74cac0c263 | |||
| 9a82b718a5 | |||
| cd7463728f | |||
| f5fd27d513 | |||
| 568a4b0a2e | |||
| 2c01b29dad | |||
| 5ae2731008 | |||
| b096183388 | |||
| ae4fe153ed | |||
| f92fc89073 | |||
| 15e03e03e9 | |||
| 4cddc9efe4 | |||
| 4a4a3bf297 | |||
| 704da8cfc1 | |||
| cd9f8a5f9b | |||
| 3555a9aa01 | |||
| f41552b760 | |||
| 064853c6ff | |||
| bc0437f78a | |||
| b4fe07643e | |||
| b1c07c6204 | |||
| 8a0e3a710c | |||
| 1ae1f1f36f | |||
| 2cee805645 | |||
| db58aa117a | |||
| 1c247e0da2 | |||
| 4d863adac5 | |||
| 96a39bce69 | |||
| 9a89731a59 | |||
| 269b763b73 | |||
| 00806933e0 | |||
| 84236e7a31 | |||
| 5ee1bea7c0 | |||
| a5178cecea | |||
| cc933b6bd0 | |||
| 03f50b168d | |||
| 13b7a20ff6 | |||
| 62e8bea246 | |||
| a51bb760d0 | |||
| a28eddc1d5 | |||
| 61564d8914 | |||
| 378ea5599b | |||
| 5ec874d4a0 | |||
| d3865551a5 | |||
| 8f42acbd65 | |||
| 25f4ef3224 | |||
| a37b0abd18 | |||
| 22281d477c | |||
| 0b2284e258 | |||
| 7d84e05b1f | |||
| 2d1729d325 | |||
| e415d1cb72 | |||
| 5735599569 | |||
| d73c0b9531 | |||
| faf51a57e7 | |||
| d6d94804a0 | |||
| a21edfeed6 | |||
| 36092008ef | |||
| ae8c95250c | |||
| e484926f62 | |||
| 8ae78dbf60 | |||
| ac1beb732d | |||
| 1e7b459b6a | |||
| b234c3e57e | |||
| e8dc6f12e0 | |||
| e8a7ec1cf8 | |||
| c199cd60ec | |||
| 8c19fc60f8 | |||
| 3290ba3b34 | |||
| ea7f199c9b | |||
| 36fc6aaea3 | |||
| ea05ef3d3d | |||
| 72ee854655 | |||
| 65e6aa1aa0 | |||
| cc16e21352 | |||
| 2cf798ed4c | |||
| 8c7d640f37 | |||
| d98c052d0d | |||
| 31faa9925a | |||
| ceda768f2b | |||
| 4da4666aec | |||
| 08359b1b31 | |||
| 1da2b3558e | |||
| 4cd6bc06f1 | |||
| 4f1f11e769 | |||
| f21545a3af | |||
| 33cb8c02e8 | |||
| ed596955f7 | |||
| 800ffc5611 | |||
| 89c6dc0333 | |||
| 2e49bf299e | |||
| 2c71a2a63a | |||
| 3d62ca361d | |||
| dc1ce86cc3 | |||
| a60f91ad00 | |||
| 6976cb9bb0 | |||
| d71ab1138b | |||
| a3a41c44a9 | |||
| 1af6e83086 | |||
| 8c7937f9a2 | |||
| f692ddaf93 | |||
| 3ee3b9c98c | |||
| 88b02ef2f7 | |||
| 7a0a217822 | |||
| 983703479f | |||
| e29974282e | |||
| aee6407941 | |||
| 9ba1b18fac | |||
| c28ec12983 | |||
| b894cc8836 | |||
| 08f78c22f0 | |||
| 751eb75c50 | |||
| 7ac562c5e9 | |||
| 3148991667 | |||
| d4a75eb73c | |||
| 9f46dd13a6 | |||
| f6df6e83a5 | |||
| 58378ffcba | |||
| d3a7bb7b9d | |||
| 5c03d7446b | |||
| fa93a22ab2 | |||
| 93cfea4c84 | |||
| ee93122254 | |||
| 44691f38f1 | |||
| 4439983ace | |||
| 0978f4a4d8 | |||
| 2cd2941cbe | |||
| 2cb1e32817 | |||
| c6ee61777c | |||
| 781bcd318c | |||
| b3591066bd | |||
| 7a3f63040d | |||
| f8857d2a1d | |||
| cfa00010d9 | |||
| 0979d75a5d | |||
| 53e8519aab | |||
| 8871b893c1 | |||
| 2216eed449 | |||
| 9e43076853 | |||
| 7470552576 | |||
| a0bc44ca06 | |||
| 2e647b5781 | |||
| cdc6635a76 | |||
| 89724e4a74 | |||
| d5922900b5 | |||
| 269cbf8355 | |||
| 1fba04132b | |||
| e62ddc302b | |||
| 2ab48e0a8b | |||
| 697abb520b | |||
| f1b31a4cfe | |||
| d553965f28 | |||
| 089f887035 | |||
| 1d637668c6 | |||
| 3361ba2fab | |||
| 971caca9c9 | |||
| 48a3675eec | |||
| c8f9c83935 | |||
| 81992f6a87 | |||
| f8814e3a11 | |||
| f6ee8048eb | |||
| 794e9afc10 | |||
| ed6a4573eb | |||
| 4ec4b2f8dd | |||
| 1e05972e3c | |||
| 786c445a91 | |||
| 3b14bd655c | |||
| d5f3ac9fb8 | |||
| 35f5bce149 | |||
| 2964acfc8c | |||
| 6babf730dc | |||
| f57c52b2d0 | |||
| 3113263012 | |||
| c0e0412de9 | |||
| 283f4c9782 | |||
| 461302d290 | |||
| d6352b9ea6 | |||
| 4bf12c7fc4 | |||
| 8431256b2c | |||
| 0e1c4c49c2 | |||
| a30bfdf397 | |||
| 158a614482 | |||
| 974953ae9d | |||
| 02449a909a | |||
| 42841fe2a1 | |||
| 70989a9369 | |||
| ef21987817 | |||
| 56c8441daf | |||
| b229d928c1 | |||
| 3db7ffeb01 | |||
| ec2382372e | |||
| 4c081fcf26 | |||
| 61b5ec1d70 | |||
| 859fcaf1b8 | |||
| 91f67cac9b | |||
| c7ac9faccd | |||
| 123f17288c | |||
| 11ec8b1eaa | |||
| c80136719d | |||
| ff3949f353 | |||
| 8809fa88ce | |||
| 97d5429b34 | |||
| 3784458cba | |||
| 155648035b | |||
| c75c830ab2 | |||
| ea5b19b4e7 | |||
| be1d13e6ad | |||
| 4563e4872e | |||
| ceb0c215c5 | |||
| d239defb94 | |||
| ff7e945b07 | |||
| 26b6e19753 | |||
| 4969d2362d | |||
| 7dc054c1dd | |||
| e488cb8a4c | |||
| 7aa432951c | |||
| 468c8b134c | |||
| 1139a6eec7 | |||
| d4bc5bbc82 | |||
| e5ab12ef3e | |||
| 55bf122bc1 | |||
| 300834f582 | |||
| bde1c860b9 | |||
| 858bf3e99b | |||
| 8489003e0c | |||
| 56959094ae | |||
| 2914ddd121 | |||
| f67949dbc4 | |||
| 8df8ed4a02 | |||
| 470c9ff5b5 | |||
| d3cf47ccd7 | |||
| 2b97fa639a | |||
| 91a6f4468a | |||
| 27c5f308a8 | |||
| c56cbb20c4 | |||
| e6f673783b | |||
| fe05594d45 | |||
| a97d8bb8ee | |||
| 766ee0975e | |||
| a3efc652dc | |||
| 4df9c1ca01 | |||
| d1ecec9ee9 | |||
| 857979b7f2 | |||
| 72e1e29a0b | |||
| 59c62aa6f0 | |||
| 510dc47943 | |||
| c2f7ca8f38 | |||
| dc88c46dc9 | |||
| fc54e0f893 | |||
| 9f9c542a6c | |||
| 2930a899d8 | |||
| 38a7a837e7 | |||
| df63dd1370 | |||
| 4de8812861 | |||
| f8f6c9f877 | |||
| 260358be93 | |||
| e5dcc4189d | |||
| 475e4da4a7 | |||
| 7ccb5c1806 | |||
| ba0de99948 | |||
| b53739a112 | |||
| 8bcfe3e35d | |||
| 1345982795 | |||
| ff1a1d5164 | |||
| 783ceeb633 | |||
| 42f45f05c3 | |||
| 5800029206 | |||
| 146c2e6f1c | |||
| 76bc81233a | |||
| 3ea55065b3 | |||
| a724938f71 | |||
| fc1bbd2f91 | |||
| 622a1633fa | |||
| 66d3fc8151 | |||
| 5f68122336 | |||
| 8daa52f36e | |||
| 61c8288b99 | |||
| d9ef3670fa | |||
| 8f6ee82fc7 | |||
| 3179ba0db8 | |||
| e58b1fffed | |||
| 84b50761bd | |||
| b17f19efb3 | |||
| 3f25472437 | |||
| 3415db58a6 | |||
| 9be69863ae | |||
| 65ef693cb5 | |||
| d5fc8b760a | |||
| 895a0db542 | |||
| 3062c29230 | |||
| fa8f7b2a37 | |||
| af5bb351e8 | |||
| a00cfbb7de | |||
| 86683d85c8 | |||
| 30b6600b7d | |||
| 860374fd1b | |||
| 4df1bd10a9 | |||
| f24bc112c3 | |||
| 57664ff1f1 | |||
| c8e6a56467 | |||
| 8401353e4d | |||
| 675682d631 | |||
| 7f51aef384 | |||
| fdb470b5b3 | |||
| b71b9e13a6 | |||
| 5db5bce308 | |||
| 6a87a87597 | |||
| 388ea9050f | |||
| 9d518a5fd6 | |||
| 6acb1a2e9f | |||
| f0d3ece345 | |||
| a00e1c22c3 | |||
| a7a54598b2 | |||
| c3ed5f98a5 | |||
| fe16c5a9ca | |||
| dbcc15e185 | |||
| f6e68082b7 | |||
| 3190d60729 | |||
| 3283a250ed | |||
| 2444d7068f | |||
| 24b32ad6c9 | |||
| 5a74249f8a | |||
| 66f4595b7b | |||
| ce3a06e410 | |||
| 76b464d5d7 | |||
| 8727cd09af | |||
| c5041de5d4 | |||
| 51bb3eec3d | |||
| 060dca1574 | |||
| cb23b1ee55 | |||
| fce04b419d | |||
| 7a5e1b5726 | |||
| 2ead289ade | |||
| f3414ed73d | |||
| 693df3f88a | |||
| 187c15ddb4 | |||
| 4a069b42d8 | |||
| 80f9bcb148 | |||
| 973e106882 | |||
| ed9cccccea | |||
| 5fb79325ce | |||
| 96edfcb065 | |||
| 581ac02472 | |||
| 730216b761 | |||
| 7d5b3c8917 | |||
| 83ab7e46b3 | |||
| 5a014f163d | |||
| 62ff9606c1 | |||
| f07973a1ce | |||
| 2fc74914b4 | |||
| 2b0ee29a8c | |||
| b50c2cf9a9 | |||
| 55f39996cb | |||
| 44a66a3d93 | |||
| 649cd5bbe8 | |||
| 748b484377 | |||
| ea40006023 | |||
| 52edbd7c18 | |||
| 10b9161188 | |||
| 77b8b973dc | |||
| b9cfe535d1 | |||
| 77bc3bd3c2 | |||
| 81ac90feb4 | |||
| 48ef896e06 | |||
| e288302bfa | |||
| 2fc76e2842 | |||
| e660c466f8 | |||
| 1f9aa2f70b | |||
| 8378b1f09a | |||
| 8bae038612 | |||
| 114d3210fb | |||
| e2a3f23e91 | |||
| 98634e2a0b | |||
| 2358797a82 | |||
| d91cde2319 | |||
| aee752a112 | |||
| cc35e50edc | |||
| 007749c9ef | |||
| e3ae9126bf | |||
| 88e2482068 | |||
| 76dfff013f | |||
| 88fbd76952 | |||
| 7c9301745a | |||
| 048b745be0 | |||
| 35f239693d | |||
| 9789b5be12 | |||
| 89f0d719c8 | |||
| 368541b09c | |||
| d04b4c0d55 | |||
| 1dad6fd83f | |||
| be38d82b26 | |||
| b0f9122599 | |||
| feb03efafa | |||
| 6066b98a9b | |||
| cf60322be6 | |||
| 5dcb73b30a | |||
| a3c991d769 | |||
| 31a563ee90 | |||
| 5bc9ce7c8a | |||
| 56e4454e41 | |||
| d5c1b7669d | |||
| 2f249c39d4 | |||
| 173e216fa3 | |||
| e760c6a4e3 | |||
| 419323bedb | |||
| 71f8bccb7d | |||
| 40225cb13f | |||
| 1568f73c40 | |||
| 6127ca192d | |||
| 64b7e2ef33 | |||
| 808380b461 | |||
| 773cd3aaef | |||
| 55019c51ed | |||
| f5784c07b1 | |||
| ac73b52b23 | |||
| 122e24ad6d | |||
| b7ca6dbd87 | |||
| 594f42a889 | |||
| 5c2f89a0a5 | |||
| a5db19cfc9 | |||
| fa8a62b8a9 | |||
| d0819fb6c1 | |||
| d335e10057 | |||
| f5a0789321 | |||
| fb77c766a6 | |||
| 1c65d030b1 | |||
| f98ab8a56b | |||
| 175581ca76 | |||
| ed61354ec0 | |||
| 0631f7adf7 | |||
| 9f81194d21 | |||
| 419af81523 | |||
| 6832d21a3b | |||
| 6db6c69983 | |||
| d502fd4daa | |||
| b2196448f7 | |||
| 2ab16b1fe5 | |||
| d99d34683c | |||
| 500d3cde57 | |||
| 98ee3f9e5f | |||
| 24a335565e | |||
| 12d5d9e32b | |||
| a00671c2e5 | |||
| 8ae03af7c2 | |||
| 2ea75821a1 | |||
| bb491f5de1 | |||
| 082f7597b2 | |||
| 758ff8a527 | |||
| f785e75622 | |||
| 5a33a4511b | |||
| 531af72173 | |||
| 190a55e98b | |||
| 79a2e52e30 | |||
| a1ca634891 | |||
| 9829173928 | |||
| 19593d4ea7 | |||
| cd53cd8ffa | |||
| 72b89814b6 | |||
| 0179f10166 | |||
| b3a36e4f1f | |||
| b1d6429225 | |||
| c9aa7553af | |||
| 0e6f294ad7 | |||
| 25ba274a36 | |||
| d2bb99fb4b | |||
| 9902fbb424 | |||
| 10b0cf9d8c | |||
| 8f499d7320 | |||
| c9e2864c88 | |||
| a003ecf378 | |||
| 46432e772c | |||
| 7ba43286d9 | |||
| f4ece1816d | |||
| add6ee6f11 | |||
| 3b4054c3c7 | |||
| a67cbf3435 | |||
| 3930641fb6 | |||
| a8682ec164 | |||
| 1ee254f38b | |||
| fd42a94430 | |||
| 6124f5cb4f | |||
| 5cb70b5e76 | |||
| 8f6109768c | |||
| d64446ecda | |||
| 05d4e4bf61 | |||
| 4b29e96686 | |||
| a49a81be14 | |||
| d992bd05f4 | |||
| ed935f6a0f | |||
| f58ac4b647 | |||
| dbfc434fa7 | |||
| d16f763df0 | |||
| e00d1c95e3 | |||
| dc5086a29f | |||
| b46e85b542 | |||
| 1dc3bc2889 | |||
| 09eea400eb | |||
| ea24d619e2 | |||
| 013a293052 | |||
| 0cd04df689 | |||
| 3d9f21df25 | |||
| f2ae458e7c | |||
| 749491b520 | |||
| 42fc173ae2 | |||
| c539a3f3be | |||
| 041c2ad5d7 | |||
| 920ca5ec40 | |||
| 5986069eb9 | |||
| 9eb0f18a52 | |||
| b38827a8de | |||
| 7a723bdf14 | |||
| 7444670189 | |||
| f22be2b42c | |||
| 762e099bf1 | |||
| 562b0a8da2 | |||
| 95db633e09 | |||
| 6a6ea845ea | |||
| f8df9cd4e2 | |||
| 428a0cd10b | |||
| aee6c84dae | |||
| 98e55bb1a3 | |||
| a3f2cdc72f | |||
| 824a8f835c | |||
| b4eda2fc46 | |||
| 3a80639538 | |||
| 84727148a8 | |||
| 537f7164c7 | |||
| 3bed312499 | |||
| ea76c29c23 | |||
| a2f0ff89ac | |||
| 123c259831 | |||
| a7e64e7188 | |||
| 5894af6eca | |||
| d87cf40b22 | |||
| edca69b789 | |||
| fe16c34b6f | |||
| 47c0cef4df | |||
| e543f1ce73 | |||
| 8b580c51d6 | |||
| b1b71ad021 | |||
| 62c78b133d | |||
| ed6790458d | |||
| d592f87d62 | |||
| 4470cea9b2 | |||
| 2400d999a3 | |||
| a2afe4de5f | |||
| 64ebadea65 | |||
| 7bcef43ef9 | |||
| 1fee51f344 | |||
| d4712732ec | |||
| dfd8818fe7 | |||
| 1c366bb75b | |||
| c6a6e6c14d | |||
| de6c8af95f | |||
| 2cb044f4b5 | |||
| 05ca9bca15 | |||
| 2a8e4cec23 | |||
| 03a36a80ff | |||
| 84d998e847 | |||
| 299742a4da | |||
| 250ace6f28 | |||
| 09dfa5477d | |||
| 3aa097ab82 | |||
| bd3b263f1b | |||
| 6404216f9d | |||
| 7a715ff313 | |||
| cf18554646 | |||
| 99f94d8be0 | |||
| ec1393ee85 | |||
| c8c927d8f8 | |||
| 64a1120be2 | |||
| be5d5ec404 | |||
| 9ea5aba0ab | |||
| e1c0299368 | |||
| 20dc5032ad | |||
| d8e5d588d9 | |||
| ecbadfb8c6 | |||
| 6103625911 | |||
| f136fe9bde | |||
| 3a4743b717 | |||
| 553a125614 | |||
| eb5da6fa4d | |||
| 158b7561bc | |||
| 45a2e67341 | |||
| 6e67ce307e | |||
| 7e3a5181d5 | |||
| b03ea39338 | |||
| 63e75fb508 | |||
| 3d413b072b | |||
| e017d3d599 | |||
| 5c9170d13b | |||
| e48e7fbf7a | |||
| 39778fe944 | |||
| 85a0e75786 | |||
| df646bb87c | |||
| b11d1c4b3e | |||
| b013d93908 | |||
| 4d9264321c | |||
| 5f84f01fb8 | |||
| 3d13f6f46f | |||
| 90295b7dcf | |||
| d2a0057919 | |||
| 146a2d38cb | |||
| 45b410806b | |||
| afc045dd4c | |||
| 8856843830 | |||
| afd18ef56c | |||
| 4f496958fb | |||
| 82fe7c099d | |||
| 779d93700f | |||
| 7d060d8b85 | |||
| f4c1c9ebbf | |||
| cb88a48d78 | |||
| 3ffd4e9ff6 | |||
| ba64241774 | |||
| 1b682580fd | |||
| 7b795af7b3 | |||
| eec8db6223 | |||
| a465a8da9d | |||
| 0b05ced5b9 | |||
| a985e1c542 | |||
| 8a32d7f84a | |||
| d4b6ec74a8 | |||
| cda265b07f | |||
| 57fec0f805 | |||
| 04b12a2715 | |||
| 63950edc96 | |||
| 515ebb8c99 | |||
| 03acb159e0 | |||
| 837f7d6b5f | |||
| ea8076db97 | |||
| 38ff3b6942 | |||
| 29b5cd9a50 | |||
| 4e0254154f | |||
| adf5d3eb14 | |||
| 3c4faf1cd0 | |||
| bf2ae21c21 | |||
| 32e11062df | |||
| 7d2ab7f589 | |||
| aac99f1682 | |||
| 64bed83ddb | |||
| 333dc4d0e0 | |||
| d7338a7bb7 | |||
| 0ddd68b6e6 | |||
| a9583a6227 | |||
| 2020cae17a | |||
| af3916b089 | |||
| df0a5f5bd0 | |||
| 44e280e8b7 | |||
| b6ef754d61 | |||
| 579302f643 | |||
| cb23fddd53 | |||
| 2f99de7900 | |||
| 6056d7f7d1 | |||
| 586c550c80 | |||
| 4b5bfe6799 | |||
| 45cc0f38be | |||
| 3c72765c9a | |||
| ded7dde42a | |||
| 3510facd1e | |||
| c5c298708f | |||
| d687ec892a | |||
| dbfde9f637 | |||
| f2be1bd034 | |||
| dd8ee36487 | |||
| e5116e1ec9 | |||
| ce472729d6 | |||
| f691f016bc | |||
| 380f92e105 | |||
| 7ab60df578 | |||
| 03822f9e74 | |||
| b760a16416 | |||
| e3567c923a | |||
| 1a1d6370f9 | |||
| a517e6997b | |||
| b63c4b9e7e | |||
| 5bb14820b6 | |||
| f09bfa7cfd | |||
| 825f424ae0 | |||
| 48ae72e0ce | |||
| 94de6380e8 | |||
| 43de87be0d | |||
| 067730379f | |||
| 32456c3110 | |||
| 12cbcd9159 | |||
| 04e25499ac | |||
| 3158620440 | |||
| c65e8c068c | |||
| cc4ffaf415 | |||
| 1a047e14b6 | |||
| daf4d8b975 | |||
| d35befdf8e | |||
| 6c9c6c9e99 | |||
| 51e5408bb6 | |||
| b967d94ece | |||
| 07d92f95cb | |||
| 075364b26a | |||
| b53c6d8c76 | |||
| 209ccdae76 | |||
| 6beac75c0f | |||
| 3fbc2bdb1c | |||
| ab92a5ba42 | |||
| 382b006210 | |||
| 022a288c97 | |||
| 9f601ea6b3 | |||
| cc474caf33 | |||
| 70369fa468 | |||
| 42d3e38daa | |||
| 1234e47f55 | |||
| c44c501cd8 | |||
| 9a27cc1e65 | |||
| 381d3fe216 | |||
| 2376baf936 | |||
| be0ce75ceb | |||
| ea41fbc664 | |||
| 5579b1dc95 | |||
| 8d5926fb2d | |||
| 03752509e7 | |||
| e7d16b2109 | |||
| 54252d10f5 | |||
| 19d8306094 | |||
| 373b354b20 | |||
| b9edf2ef93 | |||
| b4ffd65fbc | |||
| eaee05df3f | |||
| 7403657d83 | |||
| 2a7e5ef9c9 | |||
| e0cc271cf1 | |||
| 5174c71363 | |||
| af9215c849 | |||
| acd78a6067 | |||
| 5c0aef32c1 | |||
| 924465a788 | |||
| cf34457d20 | |||
| 0615a2917c | |||
| 4a3b4a1e23 | |||
| 553c348a0d | |||
| be036fe67a | |||
| 070cdc13e2 | |||
| 6ac762d415 | |||
| 40db02cce3 | |||
| cabc1d1de9 | |||
| 5e12edb251 | |||
| 42623b4583 | |||
| 5dfd8d3738 | |||
| 031bde07dd | |||
| 3f91c479f4 | |||
| 5afbe961e7 | |||
| f8e3665e14 | |||
| 01ebf690f0 | |||
| 6f743380dc | |||
| 73edce1580 | |||
| 3dbc0ee5cd | |||
| a35a797ce0 | |||
| 912a7687c3 | |||
| 16c6dffdd6 | |||
| 3b621ac497 | |||
| 271bdb9f12 | |||
| fbcf687ef9 | |||
| e4b5a7cb93 | |||
| 0832555ec0 | |||
| 13d4c74367 | |||
| a97f9cf9b4 | |||
| 1916ad49c4 | |||
| b16ae15f94 | |||
| e695c18871 | |||
| 3a1e9adab2 | |||
| c95b0849e3 | |||
| 0e9f7eb653 | |||
| 95c59b775a | |||
| 4e6d69860b | |||
| dc7ddfd527 | |||
| 1675d01dfb | |||
| 1adeaad231 | |||
| d6397d6444 | |||
| 449aaf2d3a | |||
| 97440d7a71 | |||
| d62e709c48 | |||
| a1123e89ce | |||
| bd9bfd7d0f | |||
| 49b345776f | |||
| 7bc8b46ac0 | |||
| 7e2b5e65be | |||
| c71ca6fd27 | |||
| f76eb3c1b2 | |||
| 92a8e16375 | |||
| 0cb46c9b57 | |||
| 4697f942e2 | |||
| 6ff1d92ce1 | |||
| 228ba2b2e2 | |||
| 5116cef99a | |||
| 0c6e620406 | |||
| 41b9e1b404 | |||
| 38dc13a34a | |||
| 5ec91475a4 | |||
| 6441f2aa6c | |||
| 1b137eae50 | |||
| 6a2298dff9 | |||
| 3efeea8987 | |||
| 0f5efa2036 | |||
| d67cb6b2a9 | |||
| c001943a5e | |||
| 19e618ea00 | |||
| a08cd3107f | |||
| 8cc9636fa7 | |||
| f44230df40 | |||
| c94cf2a6ec | |||
| d5a8e1eb1b | |||
| e3caab440a | |||
| 1adf6e0582 | |||
| 7f5a533827 | |||
| ee8c698d77 | |||
| deaef0b88d | |||
| 226fa90561 | |||
| 8b9a2f80b7 | |||
| 365371c5b9 | |||
| e698df0b19 | |||
| fde9f6f129 | |||
| a249631d76 | |||
| 3359d6c619 | |||
| ab1967b17f | |||
| 3de68248de | |||
| e631785c9c | |||
| 7f79f4d39d | |||
| 29cf0ead7d | |||
| 597cd4629f | |||
| 59d5b475c5 | |||
| 7bc6b673ea | |||
| 2b930f3fd7 | |||
| 0b6b14177e | |||
| a27e9bac0c | |||
| 7ea614f257 | |||
| 723a5f8281 | |||
| 98fde3de74 | |||
| 9b7dfa81da | |||
| 1a761aad4c | |||
| 9e3f729c8f | |||
| 7311664acd | |||
| b02a2d0008 | |||
| e26ac63dff | |||
| b96622f1cd | |||
| 763476e648 | |||
| c0c4cf8b56 | |||
| 575bd5b1e6 | |||
| 38a8c73311 | |||
| c3c170d07a | |||
| 0ab0aeeec6 | |||
| bf698ad7b9 | |||
| d792031c57 | |||
| eff161fb24 | |||
| 1489cb0bdb | |||
| 434abcf1ae | |||
| 581515efc4 | |||
| 79441b0bdd | |||
| 24260a057a | |||
| 6fd47f360c | |||
| be28ed8319 | |||
| 007e993148 | |||
| eb0bb8a67d | |||
| 00c7f7adaf | |||
| 0a806c1218 | |||
| d6a83c8b61 | |||
| 0647d212d6 | |||
| 840b02c2db | |||
| 2b1837e812 | |||
| 4a7af41397 | |||
| aad3a5d2a3 | |||
| 0f06fedb95 | |||
| 6ca2da3f7f | |||
| 1b5a10591b | |||
| a935c648e2 | |||
| 2ce8692d84 | |||
| 0249894386 | |||
| c2d8e16bc0 | |||
| e6c833a643 | |||
| 1e235f0cd6 | |||
| d3e293db2c | |||
| 6eb97f654c | |||
| b64fdf214e | |||
| 77519bde9d | |||
| 103a03c90f | |||
| d31013a680 | |||
| d283922741 | |||
| 60af4429eb | |||
| c67079c928 | |||
| cd1c12be12 | |||
| 1099f5ec24 | |||
| d723a1fa84 | |||
| 0bd5730128 | |||
| f11752da96 | |||
| 51601e710a | |||
| 3dfaed4409 | |||
| 571ecc5e9c | |||
| c9947d0250 | |||
| 53813020d4 | |||
| 904288e6ec | |||
| 244a1c273c | |||
| 60112e9bce | |||
| 378c064629 | |||
| 2429cbbb52 | |||
| 8099925dc2 | |||
| ae7dd5ba7e | |||
| 4c2a2fffc1 | |||
| 87e40c0723 | |||
| 1965785ff6 | |||
| 1caf6b03b4 | |||
| f1ed837610 | |||
| cddf27be45 | |||
| b9abfaa573 | |||
| ed0b03a680 | |||
| 56f02af579 | |||
| c091566a86 | |||
| 2e9d118ab9 | |||
| f85d25900b | |||
| 2ec7cc8c6d | |||
| b1ff93bb91 | |||
| ce991cd912 | |||
| b8af1794a6 | |||
| 9fcced23e4 | |||
| 54e35f0907 | |||
| 8d8de8692b | |||
| b34778952a | |||
| a082f2ae86 | |||
| 8b1cb258b4 | |||
| 58be4da5ca | |||
| 956f13c674 | |||
| 1f6f03745a | |||
| 52b26c2046 | |||
| 825c72d572 | |||
| dd11b89bb9 | |||
| 905e73fd1c | |||
| 4158573129 | |||
| b4ea8854a8 | |||
| 22628983a7 | |||
| afd88470d8 | |||
| 2e773279b7 | |||
| f91629bf21 | |||
| 47645a6346 | |||
| 52ed3c8733 | |||
| 6c249335c5 | |||
| d0f43a6760 | |||
| 9adf2a75f8 | |||
| fc5cb6796b | |||
| 690dd319cb | |||
| 541fbbb36b | |||
| 14bd059a88 | |||
| 6fc31192c2 | |||
| ec738aea22 | |||
| 92a98aba96 | |||
| f6a1901ef8 | |||
| cceb2c38e4 | |||
| 6e229b86b0 | |||
| 4d09441399 | |||
| c80a5b102d | |||
| 4f1203b32c | |||
| 1bfc6db8b4 | |||
| 54d41bfc3f | |||
| 0914b825fe | |||
| 3f23ef960b | |||
| dfc75f2a65 | |||
| f2c19ef3a3 | |||
| 14b855ada6 | |||
| d21e334e15 | |||
| ba701eb014 | |||
| 0a70ec9986 | |||
| 050d88dd13 | |||
| 1b0c97ffca | |||
| 1dadf056da | |||
| e61da323d8 | |||
| 2328f44e3a | |||
| b0b5007341 | |||
| 35b00165a2 | |||
| 659c62d4b4 | |||
| 0e001dd2d3 | |||
| 00a18352d8 | |||
| a53bdc6abf | |||
| cecd01b7d9 | |||
| 09ceab5c70 | |||
| 53ded97714 | |||
| 5a2366eb13 | |||
| 5e775e4c88 | |||
| 75b23ee904 | |||
| dbae5a3b05 | |||
| b5a05bfe21 | |||
| 71f55ef0e3 | |||
| f323eaf666 | |||
| 7ee113ddff | |||
| f61d113493 | |||
| eaadd6fc71 | |||
| 89a46ae5e1 | |||
| 7a00ba09a2 | |||
| 9eefd53fdc | |||
| 17d2e61688 | |||
| e24aa32cce | |||
| b33f7bbabd | |||
| 758b5b6db6 | |||
| 1f8bd81958 | |||
| 950a1d34ea | |||
| bcc65b8153 | |||
| a5ade02dec | |||
| 1aaae5c1da | |||
| cf62774a78 | |||
| 2fdf2b9cfc | |||
| 55463f2377 | |||
| 43d53e71c9 | |||
| 14d0e65c68 | |||
| 9799b0a263 | |||
| 519a4c1452 | |||
| 30959cfdd0 | |||
| 717c33078f | |||
| 8b877a5f1a | |||
| 427105189b | |||
| 821feae1d5 | |||
| 29c5d70171 | |||
| 5e91824c7d | |||
| 9575429296 | |||
| 22f9d20aae | |||
| 45ec219bb5 | |||
| ae0eb0fd91 | |||
| 3785426793 | |||
| d1126afc44 | |||
| f203679de4 | |||
| e2d90f6627 | |||
| 75ab228e46 | |||
| 0b7bd84af5 | |||
| 322ccee672 | |||
| 9c669c2fe6 | |||
| c69b7d14bf | |||
| ae60c8e974 | |||
| 5819d8c3f3 | |||
| a179fb9ff9 | |||
| c491a36b71 | |||
| 78ccb8aaf2 | |||
| 90fe892291 | |||
| b80bfe813c | |||
| 0dafdc527a | |||
| 1cc00b7174 | |||
| 3995e07d91 | |||
| 04220584b3 | |||
| b13203c62e | |||
| 68ef9126ed | |||
| c7a84831e9 | |||
| 633ad1f490 | |||
| 1fc6487374 | |||
| d3732306a6 | |||
| 25d4b8ab3d | |||
| e5f3e2e7b0 | |||
| 43ec3a081d | |||
| 88ccc76045 | |||
| 6a49a100e7 | |||
| 6c8a7ef989 | |||
| 6aab2d287c | |||
| d58cd204cc | |||
| be74011e5e | |||
| f6e5bdbd2f | |||
| 9a8145ff45 | |||
| 46bc17e9ac | |||
| 6fe2b6f331 | |||
| 823da76896 | |||
| 2e833136f6 | |||
| f08e7974cd | |||
| 64ee49de03 | |||
| c29289d602 | |||
| b9cd99cb6c | |||
| 6862f5667b | |||
| 30aba99c27 | |||
| a49512f750 | |||
| 89e2d10f24 | |||
| 2abb117d2e | |||
| c110e268b8 | |||
| 78c6ae3b90 | |||
| 50810c7406 | |||
| e903ec53f5 | |||
| a4546c63e3 | |||
| 50c5d044f1 | |||
| 5947716a6a | |||
| 85fec37bed | |||
| 49769d0aac | |||
| d7b73f378e | |||
| ff2763df9e | |||
| 973be40324 | |||
| 5f486b6258 | |||
| cdbee5e239 | |||
| b95f095721 | |||
| 5b1568e9a6 | |||
| 109f2ea7a4 | |||
| 0e73aa1820 | |||
| c4a9a72118 | |||
| d5f7818252 | |||
| 3f89c485e1 | |||
| c11f63f606 | |||
| 1c2a4a43d0 | |||
| adc51bab9a | |||
| dc466e61d1 | |||
| 02157d52f6 | |||
| 299a7c67f0 | |||
| 484c95e26a | |||
| 45f7ca2954 | |||
| a7c3f9ec20 | |||
| c7e4781a95 | |||
| 9a8ed301cb | |||
| 8c0767523d | |||
| 88915ca92f | |||
| 207eded4b4 | |||
| c01fc2ed86 | |||
| 3d19fec723 | |||
| 6b5c14cdd9 | |||
| 1bd3ce8809 | |||
| e6937d010f | |||
| 51de4da845 | |||
| b1c6ff9588 | |||
| 889e983cc5 | |||
| 4f6433ee0f | |||
| e04f1d9dd5 | |||
| 9673150fa1 | |||
| 32747baadf | |||
| 6629ec9dc0 | |||
| 9a91b8f306 | |||
| 78fe3923e2 | |||
| cca82fd67a | |||
| cd10fc013a | |||
| 7c6b4ef059 | |||
| 172a6d9239 | |||
| ed312cb45e | |||
| d617d2b91d | |||
| 027406ffca | |||
| 267da77a0a | |||
| e9c558eefe | |||
| 9434275e51 | |||
| cedffb03d8 | |||
| 2f9404e203 | |||
| f277121148 | |||
| 5c6a511c42 | |||
| 890904cfe8 | |||
| c98ae392eb | |||
| 6a6ab4bd78 | |||
| ab7b97b29c | |||
| 32fd3b6084 | |||
| e0947d3490 | |||
| 0adf9b31cf | |||
| aabf087f55 | |||
| bff4797ab4 | |||
| 6386cc5d88 | |||
| d92b1f1032 | |||
| 1855e27d29 | |||
| 957466b419 | |||
| 3f757e8c32 | |||
| 932146eea8 | |||
| 1c63dd5183 | |||
| bdc8384c49 | |||
| c77f8e254b | |||
| 9299e2d53f | |||
| 00118ea885 | |||
| 50dc8efafc | |||
| 2399583841 | |||
| 82ef1581dd | |||
| 2bb78fcc88 | |||
| a374d58907 | |||
| 13b820e17a | |||
| 30248dcaac | |||
| 66c9feda6e | |||
| 7cda3251eb | |||
| 0df4011a9a | |||
| bc194f8e6c | |||
| 491f8bea4c | |||
| b780a975ee | |||
| 74e58f5043 | |||
| 04bc771c6d | |||
| dc1c130fb9 | |||
| 976e36e80c | |||
| 1d4c292e06 | |||
| 602d2c4016 | |||
| fd58b10800 | |||
| 9ada9cc463 | |||
| 9ffc6e5a93 | |||
| 742f8b53bb | |||
| b2942f51e2 | |||
| b13559b172 | |||
| 37384d8b8b | |||
| fef487f698 | |||
| 33f999d139 | |||
| c880d80925 | |||
| 6a15705b51 | |||
| fb83a2eaf9 | |||
| 1743aad851 | |||
| 6df38f9c7c | |||
| 8c31236ccd | |||
| 2410ad9f23 | |||
| cd721277e7 | |||
| e497b5f9e8 | |||
| 83fac52334 | |||
| 4d2e68e4e5 | |||
| 145260bf6d | |||
| d5e24ad2bb | |||
| f4f186ff78 | |||
| 94b20a363d | |||
| e862124c68 | |||
| 8133620fcf | |||
| 1182a0cac3 | |||
| 1809721665 | |||
| e8f79f8bec | |||
| 030fb3b667 | |||
| 1dd947e573 | |||
| f35cf673e1 | |||
| 510df79f90 | |||
| 83540cf2d5 | |||
| a10e82651d | |||
| 987dfbc87f | |||
| b391252c03 | |||
| af82e4a6d4 | |||
| 37a8183176 | |||
| 3e5d27505c | |||
| e0280cc038 | |||
| ad1e3ef62a | |||
| 8e296f98d7 | |||
| 8e524a915c | |||
| 3ea3df62e9 | |||
| cb85e396f0 | |||
| a6165d56b6 | |||
| 4d352b012f | |||
| d7962fbb4e | |||
| 4a0a541fff | |||
| 67e32d31ac | |||
| 57cd396920 | |||
| 1336997ce0 | |||
| d99b6270a6 | |||
| 9caed982e3 | |||
| e13c331f0a | |||
| 3044a25adc | |||
| c797b5397b | |||
| 0c52fe8364 | |||
| 786e00e88f | |||
| e8b964d8b7 | |||
| 3f6a2d5195 | |||
| c01f81b4ad | |||
| d8bb79c533 | |||
| 2e9d95d29c | |||
| 5b4643a5ae | |||
| 8e0566c4f1 | |||
| a872547d72 | |||
| ff181761c2 | |||
| 909707214f | |||
| 1ba3647b6b | |||
| 586786fd18 | |||
| c4258ca96c | |||
| 037e890d0d | |||
| 961c936f92 | |||
| f8292e8daa | |||
| 06281321d0 | |||
| 09a9e98937 | |||
| b4bad71813 | |||
| 5ddf4f6ddf | |||
| 79224bdca3 | |||
| 10943e0d7d | |||
| 031539bd31 | |||
| be7a077367 | |||
| e116b891a8 | |||
| 4310721640 | |||
| 2888091b47 | |||
| 600314e419 | |||
| 768bd88982 | |||
| 7ee05282dd | |||
| 417c3fcf8b | |||
| 76ac0ad3ff | |||
| 170042620a | |||
| 529777360b | |||
| f5d48ebcd3 | |||
| ad0eb208ea | |||
| babc65217c | |||
| 5a79fac6b1 | |||
| bc0afd2bd5 | |||
| 3fb4d631ac | |||
| 83a2fa86d9 | |||
| 1f80084377 | |||
| 69e0cfe97a | |||
| 85f16e749a | |||
| a3bbdc421f | |||
| b431670255 | |||
| 0b28257f2f | |||
| 6f7b1ac223 | |||
| db2636946e | |||
| 2fa54347ea | |||
| 538df6000c | |||
| 509c9cb21c | |||
| 711658fe38 | |||
| ffa6bb5653 | |||
| 44a16ef4fe | |||
| 081958db59 | |||
| 83ec6f4da2 | |||
| 6ff797c1cc | |||
| d04247094a |
@@ -0,0 +1,700 @@
|
||||
# DH Core
|
||||
|
||||
# Note: please keep this and the main .editorconfig in sync
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = crlf
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
insert_final_newline = false
|
||||
max_line_length = 1000
|
||||
tab_width = 4
|
||||
trim_trailing_whitespace = false
|
||||
ij_continuation_indent_size = 8
|
||||
ij_formatter_off_tag = @formatter:off
|
||||
ij_formatter_on_tag = @formatter:on
|
||||
ij_formatter_tags_enabled = true
|
||||
ij_smart_tabs = false
|
||||
ij_visual_guides = none
|
||||
ij_wrap_on_typing = false
|
||||
|
||||
[*.java]
|
||||
indent_style = tab
|
||||
ij_smart_tabs = true
|
||||
ij_java_align_consecutive_assignments = false
|
||||
ij_java_align_consecutive_variable_declarations = false
|
||||
ij_java_align_group_field_declarations = false
|
||||
ij_java_align_multiline_annotation_parameters = false
|
||||
ij_java_align_multiline_array_initializer_expression = false
|
||||
ij_java_align_multiline_assignment = false
|
||||
ij_java_align_multiline_binary_operation = false
|
||||
ij_java_align_multiline_chained_methods = false
|
||||
ij_java_align_multiline_deconstruction_list_components = false
|
||||
ij_java_align_multiline_extends_list = false
|
||||
ij_java_align_multiline_for = false
|
||||
ij_java_align_multiline_method_parentheses = false
|
||||
ij_java_align_multiline_parameters = false
|
||||
ij_java_align_multiline_parameters_in_calls = false
|
||||
ij_java_align_multiline_parenthesized_expression = false
|
||||
ij_java_align_multiline_records = false
|
||||
ij_java_align_multiline_resources = false
|
||||
ij_java_align_multiline_ternary_operation = false
|
||||
ij_java_align_multiline_text_blocks = false
|
||||
ij_java_align_multiline_throws_list = false
|
||||
ij_java_align_subsequent_simple_methods = false
|
||||
ij_java_align_throws_keyword = false
|
||||
ij_java_align_types_in_multi_catch = false
|
||||
ij_java_annotation_parameter_wrap = off
|
||||
ij_java_array_initializer_new_line_after_left_brace = false
|
||||
ij_java_array_initializer_right_brace_on_new_line = false
|
||||
ij_java_array_initializer_wrap = normal
|
||||
ij_java_assert_statement_colon_on_next_line = false
|
||||
ij_java_assert_statement_wrap = off
|
||||
ij_java_assignment_wrap = off
|
||||
ij_java_binary_operation_sign_on_next_line = false
|
||||
ij_java_binary_operation_wrap = off
|
||||
ij_java_blank_lines_after_anonymous_class_header = 0
|
||||
ij_java_blank_lines_after_class_header = 0
|
||||
ij_java_blank_lines_after_imports = 1
|
||||
ij_java_blank_lines_after_package = 1
|
||||
ij_java_blank_lines_around_class = 1
|
||||
ij_java_blank_lines_around_field = 0
|
||||
ij_java_blank_lines_around_field_in_interface = 0
|
||||
ij_java_blank_lines_around_initializer = 0
|
||||
ij_java_blank_lines_around_method = 0
|
||||
ij_java_blank_lines_around_method_in_interface = 0
|
||||
ij_java_blank_lines_before_class_end = 1
|
||||
ij_java_blank_lines_before_imports = 1
|
||||
ij_java_blank_lines_before_method_body = 0
|
||||
ij_java_blank_lines_before_package = 1
|
||||
ij_java_block_brace_style = next_line
|
||||
ij_java_block_comment_add_space = false
|
||||
ij_java_block_comment_at_first_column = true
|
||||
ij_java_builder_methods = none
|
||||
ij_java_call_parameters_new_line_after_left_paren = false
|
||||
ij_java_call_parameters_right_paren_on_new_line = false
|
||||
ij_java_call_parameters_wrap = normal
|
||||
ij_java_case_statement_on_separate_line = true
|
||||
ij_java_catch_on_new_line = true
|
||||
ij_java_class_annotation_wrap = off
|
||||
ij_java_class_brace_style = next_line
|
||||
ij_java_class_count_to_use_import_on_demand = 5
|
||||
ij_java_class_names_in_javadoc = 1
|
||||
ij_java_deconstruction_list_wrap = normal
|
||||
ij_java_do_not_indent_top_level_class_members = false
|
||||
ij_java_do_not_wrap_after_single_annotation = false
|
||||
ij_java_do_not_wrap_after_single_annotation_in_parameter = false
|
||||
ij_java_do_while_brace_force = never
|
||||
ij_java_doc_add_blank_line_after_description = true
|
||||
ij_java_doc_add_blank_line_after_param_comments = false
|
||||
ij_java_doc_add_blank_line_after_return = false
|
||||
ij_java_doc_add_p_tag_on_empty_lines = false
|
||||
ij_java_doc_align_exception_comments = false
|
||||
ij_java_doc_align_param_comments = false
|
||||
ij_java_doc_do_not_wrap_if_one_line = true
|
||||
ij_java_doc_enable_formatting = true
|
||||
ij_java_doc_enable_leading_asterisks = true
|
||||
ij_java_doc_indent_on_continuation = false
|
||||
ij_java_doc_keep_empty_lines = true
|
||||
ij_java_doc_keep_empty_parameter_tag = true
|
||||
ij_java_doc_keep_empty_return_tag = false
|
||||
ij_java_doc_keep_empty_throws_tag = true
|
||||
ij_java_doc_keep_invalid_tags = true
|
||||
ij_java_doc_param_description_on_new_line = false
|
||||
ij_java_doc_preserve_line_breaks = false
|
||||
ij_java_doc_use_throws_not_exception_tag = true
|
||||
ij_java_else_on_new_line = true
|
||||
ij_java_enum_constants_wrap = off
|
||||
ij_java_extends_keyword_wrap = normal
|
||||
ij_java_extends_list_wrap = normal
|
||||
ij_java_field_annotation_wrap = off
|
||||
ij_java_finally_on_new_line = true
|
||||
ij_java_for_brace_force = always
|
||||
ij_java_for_statement_new_line_after_left_paren = false
|
||||
ij_java_for_statement_right_paren_on_new_line = false
|
||||
ij_java_for_statement_wrap = off
|
||||
ij_java_generate_final_locals = false
|
||||
ij_java_generate_final_parameters = false
|
||||
ij_java_if_brace_force = never
|
||||
ij_java_imports_layout = *,|,javax.**,java.**,|,$*
|
||||
ij_java_indent_case_from_switch = true
|
||||
ij_java_insert_inner_class_imports = false
|
||||
ij_java_insert_override_annotation = true
|
||||
ij_java_keep_blank_lines_before_right_brace = 10
|
||||
ij_java_keep_blank_lines_between_package_declaration_and_header = 2
|
||||
ij_java_keep_blank_lines_in_code = 10
|
||||
ij_java_keep_blank_lines_in_declarations = 10
|
||||
ij_java_keep_builder_methods_indents = false
|
||||
ij_java_keep_control_statement_in_one_line = true
|
||||
ij_java_keep_first_column_comment = true
|
||||
ij_java_keep_indents_on_empty_lines = true
|
||||
ij_java_keep_line_breaks = true
|
||||
ij_java_keep_multiple_expressions_in_one_line = true
|
||||
ij_java_keep_simple_blocks_in_one_line = false
|
||||
ij_java_keep_simple_classes_in_one_line = true
|
||||
ij_java_keep_simple_lambdas_in_one_line = true
|
||||
ij_java_keep_simple_methods_in_one_line = true
|
||||
ij_java_label_indent_absolute = false
|
||||
ij_java_label_indent_size = 0
|
||||
ij_java_lambda_brace_style = end_of_line
|
||||
ij_java_layout_static_imports_separately = true
|
||||
ij_java_line_comment_add_space = false
|
||||
ij_java_line_comment_add_space_on_reformat = false
|
||||
ij_java_line_comment_at_first_column = false
|
||||
ij_java_method_annotation_wrap = off
|
||||
ij_java_method_brace_style = next_line
|
||||
ij_java_method_call_chain_wrap = normal
|
||||
ij_java_method_parameters_new_line_after_left_paren = true
|
||||
ij_java_method_parameters_right_paren_on_new_line = false
|
||||
ij_java_method_parameters_wrap = normal
|
||||
ij_java_modifier_list_wrap = false
|
||||
ij_java_multi_catch_types_wrap = normal
|
||||
ij_java_names_count_to_use_import_on_demand = 3
|
||||
ij_java_new_line_after_lparen_in_annotation = false
|
||||
ij_java_new_line_after_lparen_in_deconstruction_pattern = true
|
||||
ij_java_new_line_after_lparen_in_record_header = false
|
||||
ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
|
||||
ij_java_parameter_annotation_wrap = off
|
||||
ij_java_parentheses_expression_new_line_after_left_paren = false
|
||||
ij_java_parentheses_expression_right_paren_on_new_line = false
|
||||
ij_java_place_assignment_sign_on_next_line = false
|
||||
ij_java_prefer_longer_names = true
|
||||
ij_java_prefer_parameters_wrap = false
|
||||
ij_java_record_components_wrap = normal
|
||||
ij_java_repeat_synchronized = true
|
||||
ij_java_replace_instanceof_and_cast = false
|
||||
ij_java_replace_null_check = false
|
||||
ij_java_replace_sum_lambda_with_method_ref = false
|
||||
ij_java_resource_list_new_line_after_left_paren = false
|
||||
ij_java_resource_list_right_paren_on_new_line = false
|
||||
ij_java_resource_list_wrap = on_every_item
|
||||
ij_java_rparen_on_new_line_in_annotation = false
|
||||
ij_java_rparen_on_new_line_in_deconstruction_pattern = true
|
||||
ij_java_rparen_on_new_line_in_record_header = false
|
||||
ij_java_space_after_closing_angle_bracket_in_type_argument = false
|
||||
ij_java_space_after_colon = true
|
||||
ij_java_space_after_comma = true
|
||||
ij_java_space_after_comma_in_type_arguments = true
|
||||
ij_java_space_after_for_semicolon = true
|
||||
ij_java_space_after_quest = true
|
||||
ij_java_space_after_type_cast = true
|
||||
ij_java_space_before_annotation_array_initializer_left_brace = false
|
||||
ij_java_space_before_annotation_parameter_list = false
|
||||
ij_java_space_before_array_initializer_left_brace = false
|
||||
ij_java_space_before_catch_keyword = true
|
||||
ij_java_space_before_catch_left_brace = true
|
||||
ij_java_space_before_catch_parentheses = true
|
||||
ij_java_space_before_class_left_brace = true
|
||||
ij_java_space_before_colon = true
|
||||
ij_java_space_before_colon_in_foreach = true
|
||||
ij_java_space_before_comma = false
|
||||
ij_java_space_before_deconstruction_list = false
|
||||
ij_java_space_before_do_left_brace = true
|
||||
ij_java_space_before_else_keyword = true
|
||||
ij_java_space_before_else_left_brace = true
|
||||
ij_java_space_before_finally_keyword = true
|
||||
ij_java_space_before_finally_left_brace = true
|
||||
ij_java_space_before_for_left_brace = true
|
||||
ij_java_space_before_for_parentheses = true
|
||||
ij_java_space_before_for_semicolon = false
|
||||
ij_java_space_before_if_left_brace = true
|
||||
ij_java_space_before_if_parentheses = true
|
||||
ij_java_space_before_method_call_parentheses = false
|
||||
ij_java_space_before_method_left_brace = true
|
||||
ij_java_space_before_method_parentheses = false
|
||||
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
|
||||
ij_java_space_before_quest = true
|
||||
ij_java_space_before_switch_left_brace = true
|
||||
ij_java_space_before_switch_parentheses = true
|
||||
ij_java_space_before_synchronized_left_brace = false
|
||||
ij_java_space_before_synchronized_parentheses = true
|
||||
ij_java_space_before_try_left_brace = true
|
||||
ij_java_space_before_try_parentheses = true
|
||||
ij_java_space_before_type_parameter_list = false
|
||||
ij_java_space_before_while_keyword = true
|
||||
ij_java_space_before_while_left_brace = true
|
||||
ij_java_space_before_while_parentheses = true
|
||||
ij_java_space_inside_one_line_enum_braces = false
|
||||
ij_java_space_within_empty_array_initializer_braces = true
|
||||
ij_java_space_within_empty_method_call_parentheses = false
|
||||
ij_java_space_within_empty_method_parentheses = false
|
||||
ij_java_spaces_around_additive_operators = true
|
||||
ij_java_spaces_around_annotation_eq = true
|
||||
ij_java_spaces_around_assignment_operators = true
|
||||
ij_java_spaces_around_bitwise_operators = true
|
||||
ij_java_spaces_around_equality_operators = true
|
||||
ij_java_spaces_around_lambda_arrow = true
|
||||
ij_java_spaces_around_logical_operators = true
|
||||
ij_java_spaces_around_method_ref_dbl_colon = false
|
||||
ij_java_spaces_around_multiplicative_operators = true
|
||||
ij_java_spaces_around_relational_operators = true
|
||||
ij_java_spaces_around_shift_operators = true
|
||||
ij_java_spaces_around_type_bounds_in_type_parameters = true
|
||||
ij_java_spaces_around_unary_operator = false
|
||||
ij_java_spaces_within_angle_brackets = false
|
||||
ij_java_spaces_within_annotation_parentheses = false
|
||||
ij_java_spaces_within_array_initializer_braces = false
|
||||
ij_java_spaces_within_braces = true
|
||||
ij_java_spaces_within_brackets = false
|
||||
ij_java_spaces_within_cast_parentheses = false
|
||||
ij_java_spaces_within_catch_parentheses = false
|
||||
ij_java_spaces_within_deconstruction_list = false
|
||||
ij_java_spaces_within_for_parentheses = false
|
||||
ij_java_spaces_within_if_parentheses = false
|
||||
ij_java_spaces_within_method_call_parentheses = false
|
||||
ij_java_spaces_within_method_parentheses = false
|
||||
ij_java_spaces_within_parentheses = false
|
||||
ij_java_spaces_within_record_header = false
|
||||
ij_java_spaces_within_switch_parentheses = false
|
||||
ij_java_spaces_within_synchronized_parentheses = false
|
||||
ij_java_spaces_within_try_parentheses = false
|
||||
ij_java_spaces_within_while_parentheses = false
|
||||
ij_java_special_else_if_treatment = true
|
||||
ij_java_subclass_name_suffix = Impl
|
||||
ij_java_ternary_operation_signs_on_next_line = false
|
||||
ij_java_ternary_operation_wrap = on_every_item
|
||||
ij_java_test_name_suffix = Test
|
||||
ij_java_throws_keyword_wrap = normal
|
||||
ij_java_throws_list_wrap = normal
|
||||
ij_java_use_external_annotations = false
|
||||
ij_java_use_fq_class_names = false
|
||||
ij_java_use_relative_indents = false
|
||||
ij_java_use_single_class_imports = true
|
||||
ij_java_variable_annotation_wrap = off
|
||||
ij_java_visibility = public
|
||||
ij_java_while_brace_force = always
|
||||
ij_java_while_on_new_line = true
|
||||
ij_java_wrap_comments = false
|
||||
ij_java_wrap_first_method_in_call_chain = false
|
||||
ij_java_wrap_long_lines = false
|
||||
|
||||
[*.nbtt]
|
||||
indent_style = tab
|
||||
max_line_length = 150
|
||||
ij_continuation_indent_size = 4
|
||||
ij_nbtt_keep_indents_on_empty_lines = false
|
||||
ij_nbtt_space_after_colon = true
|
||||
ij_nbtt_space_after_comma = true
|
||||
ij_nbtt_space_before_colon = true
|
||||
ij_nbtt_space_before_comma = false
|
||||
ij_nbtt_spaces_within_brackets = false
|
||||
ij_nbtt_spaces_within_parentheses = false
|
||||
|
||||
[*.properties]
|
||||
ij_properties_align_group_field_declarations = false
|
||||
ij_properties_keep_blank_lines = false
|
||||
ij_properties_key_value_delimiter = equals
|
||||
ij_properties_spaces_around_key_value_delimiter = false
|
||||
|
||||
[.editorconfig]
|
||||
ij_editorconfig_align_group_field_declarations = false
|
||||
ij_editorconfig_space_after_colon = false
|
||||
ij_editorconfig_space_after_comma = true
|
||||
ij_editorconfig_space_before_colon = false
|
||||
ij_editorconfig_space_before_comma = false
|
||||
ij_editorconfig_spaces_around_assignment_operators = true
|
||||
|
||||
[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.jspx,*.pom,*.rng,*.tagx,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}]
|
||||
ij_xml_align_attributes = true
|
||||
ij_xml_align_text = false
|
||||
ij_xml_attribute_wrap = normal
|
||||
ij_xml_block_comment_add_space = false
|
||||
ij_xml_block_comment_at_first_column = true
|
||||
ij_xml_keep_blank_lines = 2
|
||||
ij_xml_keep_indents_on_empty_lines = false
|
||||
ij_xml_keep_line_breaks = true
|
||||
ij_xml_keep_line_breaks_in_text = true
|
||||
ij_xml_keep_whitespaces = false
|
||||
ij_xml_keep_whitespaces_around_cdata = preserve
|
||||
ij_xml_keep_whitespaces_inside_cdata = false
|
||||
ij_xml_line_comment_at_first_column = true
|
||||
ij_xml_space_after_tag_name = false
|
||||
ij_xml_space_around_equals_in_attribute = false
|
||||
ij_xml_space_inside_empty_tag = false
|
||||
ij_xml_text_wrap = normal
|
||||
ij_xml_use_custom_settings = false
|
||||
|
||||
[{*.bash,*.sh,*.zsh}]
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
ij_shell_binary_ops_start_line = false
|
||||
ij_shell_keep_column_alignment_padding = false
|
||||
ij_shell_minify_program = false
|
||||
ij_shell_redirect_followed_by_space = false
|
||||
ij_shell_switch_cases_indented = false
|
||||
ij_shell_use_unix_line_separator = true
|
||||
|
||||
[{*.comp,*.frag,*.fsh,*.geom,*.glsl,*.gsh,*.tesc,*.tese,*.vert,*.vsh}]
|
||||
ij_glsl_space_after_colon = true
|
||||
ij_glsl_space_after_comma = true
|
||||
ij_glsl_space_after_for_semicolon = true
|
||||
ij_glsl_space_after_quest = true
|
||||
ij_glsl_space_before_colon = false
|
||||
ij_glsl_space_before_comma = false
|
||||
ij_glsl_space_before_for_semicolon = false
|
||||
ij_glsl_space_before_quest = true
|
||||
ij_glsl_spaces_around_additive_operators = true
|
||||
ij_glsl_spaces_around_assignment_operators = true
|
||||
ij_glsl_spaces_around_bitwise_operators = true
|
||||
ij_glsl_spaces_around_equality_operators = true
|
||||
ij_glsl_spaces_around_logical_operators = true
|
||||
ij_glsl_spaces_around_multiplicative_operators = true
|
||||
ij_glsl_spaces_around_relational_operators = true
|
||||
ij_glsl_spaces_around_shift_operators = true
|
||||
ij_glsl_spaces_within_brackets = false
|
||||
ij_glsl_spaces_within_parentheses = false
|
||||
|
||||
[{*.gant,*.groovy,*.gy}]
|
||||
ij_groovy_align_group_field_declarations = false
|
||||
ij_groovy_align_multiline_array_initializer_expression = false
|
||||
ij_groovy_align_multiline_assignment = false
|
||||
ij_groovy_align_multiline_binary_operation = false
|
||||
ij_groovy_align_multiline_chained_methods = false
|
||||
ij_groovy_align_multiline_extends_list = false
|
||||
ij_groovy_align_multiline_for = true
|
||||
ij_groovy_align_multiline_list_or_map = true
|
||||
ij_groovy_align_multiline_method_parentheses = false
|
||||
ij_groovy_align_multiline_parameters = true
|
||||
ij_groovy_align_multiline_parameters_in_calls = false
|
||||
ij_groovy_align_multiline_resources = true
|
||||
ij_groovy_align_multiline_ternary_operation = false
|
||||
ij_groovy_align_multiline_throws_list = false
|
||||
ij_groovy_align_named_args_in_map = true
|
||||
ij_groovy_align_throws_keyword = false
|
||||
ij_groovy_array_initializer_new_line_after_left_brace = false
|
||||
ij_groovy_array_initializer_right_brace_on_new_line = false
|
||||
ij_groovy_array_initializer_wrap = off
|
||||
ij_groovy_assert_statement_wrap = off
|
||||
ij_groovy_assignment_wrap = off
|
||||
ij_groovy_binary_operation_wrap = off
|
||||
ij_groovy_blank_lines_after_class_header = 0
|
||||
ij_groovy_blank_lines_after_imports = 1
|
||||
ij_groovy_blank_lines_after_package = 1
|
||||
ij_groovy_blank_lines_around_class = 1
|
||||
ij_groovy_blank_lines_around_field = 0
|
||||
ij_groovy_blank_lines_around_field_in_interface = 0
|
||||
ij_groovy_blank_lines_around_method = 1
|
||||
ij_groovy_blank_lines_around_method_in_interface = 1
|
||||
ij_groovy_blank_lines_before_imports = 1
|
||||
ij_groovy_blank_lines_before_method_body = 0
|
||||
ij_groovy_blank_lines_before_package = 0
|
||||
ij_groovy_block_brace_style = end_of_line
|
||||
ij_groovy_block_comment_add_space = false
|
||||
ij_groovy_block_comment_at_first_column = true
|
||||
ij_groovy_call_parameters_new_line_after_left_paren = false
|
||||
ij_groovy_call_parameters_right_paren_on_new_line = false
|
||||
ij_groovy_call_parameters_wrap = off
|
||||
ij_groovy_catch_on_new_line = false
|
||||
ij_groovy_class_annotation_wrap = split_into_lines
|
||||
ij_groovy_class_brace_style = end_of_line
|
||||
ij_groovy_class_count_to_use_import_on_demand = 5
|
||||
ij_groovy_do_while_brace_force = never
|
||||
ij_groovy_else_on_new_line = false
|
||||
ij_groovy_enable_groovydoc_formatting = true
|
||||
ij_groovy_enum_constants_wrap = off
|
||||
ij_groovy_extends_keyword_wrap = off
|
||||
ij_groovy_extends_list_wrap = off
|
||||
ij_groovy_field_annotation_wrap = split_into_lines
|
||||
ij_groovy_finally_on_new_line = false
|
||||
ij_groovy_for_brace_force = never
|
||||
ij_groovy_for_statement_new_line_after_left_paren = false
|
||||
ij_groovy_for_statement_right_paren_on_new_line = false
|
||||
ij_groovy_for_statement_wrap = off
|
||||
ij_groovy_ginq_general_clause_wrap_policy = 2
|
||||
ij_groovy_ginq_having_wrap_policy = 1
|
||||
ij_groovy_ginq_indent_having_clause = true
|
||||
ij_groovy_ginq_indent_on_clause = true
|
||||
ij_groovy_ginq_on_wrap_policy = 1
|
||||
ij_groovy_ginq_space_after_keyword = true
|
||||
ij_groovy_if_brace_force = never
|
||||
ij_groovy_import_annotation_wrap = 2
|
||||
ij_groovy_imports_layout = *,|,javax.**,java.**,|,$*
|
||||
ij_groovy_indent_case_from_switch = true
|
||||
ij_groovy_indent_label_blocks = true
|
||||
ij_groovy_insert_inner_class_imports = false
|
||||
ij_groovy_keep_blank_lines_before_right_brace = 2
|
||||
ij_groovy_keep_blank_lines_in_code = 2
|
||||
ij_groovy_keep_blank_lines_in_declarations = 2
|
||||
ij_groovy_keep_control_statement_in_one_line = true
|
||||
ij_groovy_keep_first_column_comment = true
|
||||
ij_groovy_keep_indents_on_empty_lines = false
|
||||
ij_groovy_keep_line_breaks = true
|
||||
ij_groovy_keep_multiple_expressions_in_one_line = false
|
||||
ij_groovy_keep_simple_blocks_in_one_line = false
|
||||
ij_groovy_keep_simple_classes_in_one_line = true
|
||||
ij_groovy_keep_simple_lambdas_in_one_line = true
|
||||
ij_groovy_keep_simple_methods_in_one_line = true
|
||||
ij_groovy_label_indent_absolute = false
|
||||
ij_groovy_label_indent_size = 0
|
||||
ij_groovy_lambda_brace_style = end_of_line
|
||||
ij_groovy_layout_static_imports_separately = true
|
||||
ij_groovy_line_comment_add_space = false
|
||||
ij_groovy_line_comment_add_space_on_reformat = false
|
||||
ij_groovy_line_comment_at_first_column = true
|
||||
ij_groovy_method_annotation_wrap = split_into_lines
|
||||
ij_groovy_method_brace_style = end_of_line
|
||||
ij_groovy_method_call_chain_wrap = off
|
||||
ij_groovy_method_parameters_new_line_after_left_paren = false
|
||||
ij_groovy_method_parameters_right_paren_on_new_line = false
|
||||
ij_groovy_method_parameters_wrap = off
|
||||
ij_groovy_modifier_list_wrap = false
|
||||
ij_groovy_names_count_to_use_import_on_demand = 3
|
||||
ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
|
||||
ij_groovy_parameter_annotation_wrap = off
|
||||
ij_groovy_parentheses_expression_new_line_after_left_paren = false
|
||||
ij_groovy_parentheses_expression_right_paren_on_new_line = false
|
||||
ij_groovy_prefer_parameters_wrap = false
|
||||
ij_groovy_resource_list_new_line_after_left_paren = false
|
||||
ij_groovy_resource_list_right_paren_on_new_line = false
|
||||
ij_groovy_resource_list_wrap = off
|
||||
ij_groovy_space_after_assert_separator = true
|
||||
ij_groovy_space_after_colon = true
|
||||
ij_groovy_space_after_comma = true
|
||||
ij_groovy_space_after_comma_in_type_arguments = true
|
||||
ij_groovy_space_after_for_semicolon = true
|
||||
ij_groovy_space_after_quest = true
|
||||
ij_groovy_space_after_type_cast = true
|
||||
ij_groovy_space_before_annotation_parameter_list = false
|
||||
ij_groovy_space_before_array_initializer_left_brace = false
|
||||
ij_groovy_space_before_assert_separator = false
|
||||
ij_groovy_space_before_catch_keyword = true
|
||||
ij_groovy_space_before_catch_left_brace = true
|
||||
ij_groovy_space_before_catch_parentheses = true
|
||||
ij_groovy_space_before_class_left_brace = true
|
||||
ij_groovy_space_before_closure_left_brace = true
|
||||
ij_groovy_space_before_colon = true
|
||||
ij_groovy_space_before_comma = false
|
||||
ij_groovy_space_before_do_left_brace = true
|
||||
ij_groovy_space_before_else_keyword = true
|
||||
ij_groovy_space_before_else_left_brace = true
|
||||
ij_groovy_space_before_finally_keyword = true
|
||||
ij_groovy_space_before_finally_left_brace = true
|
||||
ij_groovy_space_before_for_left_brace = true
|
||||
ij_groovy_space_before_for_parentheses = true
|
||||
ij_groovy_space_before_for_semicolon = false
|
||||
ij_groovy_space_before_if_left_brace = true
|
||||
ij_groovy_space_before_if_parentheses = true
|
||||
ij_groovy_space_before_method_call_parentheses = false
|
||||
ij_groovy_space_before_method_left_brace = true
|
||||
ij_groovy_space_before_method_parentheses = false
|
||||
ij_groovy_space_before_quest = true
|
||||
ij_groovy_space_before_record_parentheses = false
|
||||
ij_groovy_space_before_switch_left_brace = true
|
||||
ij_groovy_space_before_switch_parentheses = true
|
||||
ij_groovy_space_before_synchronized_left_brace = true
|
||||
ij_groovy_space_before_synchronized_parentheses = true
|
||||
ij_groovy_space_before_try_left_brace = true
|
||||
ij_groovy_space_before_try_parentheses = true
|
||||
ij_groovy_space_before_while_keyword = true
|
||||
ij_groovy_space_before_while_left_brace = true
|
||||
ij_groovy_space_before_while_parentheses = true
|
||||
ij_groovy_space_in_named_argument = true
|
||||
ij_groovy_space_in_named_argument_before_colon = false
|
||||
ij_groovy_space_within_empty_array_initializer_braces = false
|
||||
ij_groovy_space_within_empty_method_call_parentheses = false
|
||||
ij_groovy_spaces_around_additive_operators = true
|
||||
ij_groovy_spaces_around_assignment_operators = true
|
||||
ij_groovy_spaces_around_bitwise_operators = true
|
||||
ij_groovy_spaces_around_equality_operators = true
|
||||
ij_groovy_spaces_around_lambda_arrow = true
|
||||
ij_groovy_spaces_around_logical_operators = true
|
||||
ij_groovy_spaces_around_multiplicative_operators = true
|
||||
ij_groovy_spaces_around_regex_operators = true
|
||||
ij_groovy_spaces_around_relational_operators = true
|
||||
ij_groovy_spaces_around_shift_operators = true
|
||||
ij_groovy_spaces_within_annotation_parentheses = false
|
||||
ij_groovy_spaces_within_array_initializer_braces = false
|
||||
ij_groovy_spaces_within_braces = true
|
||||
ij_groovy_spaces_within_brackets = false
|
||||
ij_groovy_spaces_within_cast_parentheses = false
|
||||
ij_groovy_spaces_within_catch_parentheses = false
|
||||
ij_groovy_spaces_within_for_parentheses = false
|
||||
ij_groovy_spaces_within_gstring_injection_braces = false
|
||||
ij_groovy_spaces_within_if_parentheses = false
|
||||
ij_groovy_spaces_within_list_or_map = false
|
||||
ij_groovy_spaces_within_method_call_parentheses = false
|
||||
ij_groovy_spaces_within_method_parentheses = false
|
||||
ij_groovy_spaces_within_parentheses = false
|
||||
ij_groovy_spaces_within_switch_parentheses = false
|
||||
ij_groovy_spaces_within_synchronized_parentheses = false
|
||||
ij_groovy_spaces_within_try_parentheses = false
|
||||
ij_groovy_spaces_within_tuple_expression = false
|
||||
ij_groovy_spaces_within_while_parentheses = false
|
||||
ij_groovy_special_else_if_treatment = true
|
||||
ij_groovy_ternary_operation_wrap = off
|
||||
ij_groovy_throws_keyword_wrap = off
|
||||
ij_groovy_throws_list_wrap = off
|
||||
ij_groovy_use_flying_geese_braces = false
|
||||
ij_groovy_use_fq_class_names = false
|
||||
ij_groovy_use_fq_class_names_in_javadoc = true
|
||||
ij_groovy_use_relative_indents = false
|
||||
ij_groovy_use_single_class_imports = true
|
||||
ij_groovy_variable_annotation_wrap = off
|
||||
ij_groovy_while_brace_force = never
|
||||
ij_groovy_while_on_new_line = false
|
||||
ij_groovy_wrap_chain_calls_after_dot = false
|
||||
ij_groovy_wrap_long_lines = false
|
||||
|
||||
[{*.har,*.json,*.png.mcmeta,mcmod.info,pack.mcmeta}]
|
||||
indent_size = 4
|
||||
ij_json_array_wrapping = split_into_lines
|
||||
ij_json_keep_blank_lines_in_code = 0
|
||||
ij_json_keep_indents_on_empty_lines = false
|
||||
ij_json_keep_line_breaks = true
|
||||
ij_json_keep_trailing_comma = false
|
||||
ij_json_object_wrapping = split_into_lines
|
||||
ij_json_property_alignment = do_not_align
|
||||
ij_json_space_after_colon = true
|
||||
ij_json_space_after_comma = true
|
||||
ij_json_space_before_colon = false
|
||||
ij_json_space_before_comma = false
|
||||
ij_json_spaces_within_braces = false
|
||||
ij_json_spaces_within_brackets = false
|
||||
ij_json_wrap_long_lines = false
|
||||
|
||||
[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
|
||||
ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
|
||||
ij_html_align_attributes = true
|
||||
ij_html_align_text = false
|
||||
ij_html_attribute_wrap = normal
|
||||
ij_html_block_comment_add_space = false
|
||||
ij_html_block_comment_at_first_column = true
|
||||
ij_html_do_not_align_children_of_min_lines = 0
|
||||
ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
|
||||
ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot
|
||||
ij_html_enforce_quotes = false
|
||||
ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
|
||||
ij_html_keep_blank_lines = 2
|
||||
ij_html_keep_indents_on_empty_lines = false
|
||||
ij_html_keep_line_breaks = true
|
||||
ij_html_keep_line_breaks_in_text = true
|
||||
ij_html_keep_whitespaces = false
|
||||
ij_html_keep_whitespaces_inside = span,pre,textarea
|
||||
ij_html_line_comment_at_first_column = true
|
||||
ij_html_new_line_after_last_attribute = never
|
||||
ij_html_new_line_before_first_attribute = never
|
||||
ij_html_quote_style = double
|
||||
ij_html_remove_new_line_before_tags = br
|
||||
ij_html_space_after_tag_name = false
|
||||
ij_html_space_around_equality_in_attribute = false
|
||||
ij_html_space_inside_empty_tag = false
|
||||
ij_html_text_wrap = normal
|
||||
|
||||
[{*.kt,*.kts}]
|
||||
ij_kotlin_align_in_columns_case_branch = false
|
||||
ij_kotlin_align_multiline_binary_operation = false
|
||||
ij_kotlin_align_multiline_extends_list = false
|
||||
ij_kotlin_align_multiline_method_parentheses = false
|
||||
ij_kotlin_align_multiline_parameters = true
|
||||
ij_kotlin_align_multiline_parameters_in_calls = false
|
||||
ij_kotlin_allow_trailing_comma = false
|
||||
ij_kotlin_allow_trailing_comma_on_call_site = false
|
||||
ij_kotlin_assignment_wrap = off
|
||||
ij_kotlin_blank_lines_after_class_header = 0
|
||||
ij_kotlin_blank_lines_around_block_when_branches = 0
|
||||
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
|
||||
ij_kotlin_block_comment_add_space = false
|
||||
ij_kotlin_block_comment_at_first_column = true
|
||||
ij_kotlin_call_parameters_new_line_after_left_paren = false
|
||||
ij_kotlin_call_parameters_right_paren_on_new_line = false
|
||||
ij_kotlin_call_parameters_wrap = off
|
||||
ij_kotlin_catch_on_new_line = false
|
||||
ij_kotlin_class_annotation_wrap = split_into_lines
|
||||
ij_kotlin_continuation_indent_for_chained_calls = true
|
||||
ij_kotlin_continuation_indent_for_expression_bodies = true
|
||||
ij_kotlin_continuation_indent_in_argument_lists = true
|
||||
ij_kotlin_continuation_indent_in_elvis = true
|
||||
ij_kotlin_continuation_indent_in_if_conditions = true
|
||||
ij_kotlin_continuation_indent_in_parameter_lists = true
|
||||
ij_kotlin_continuation_indent_in_supertype_lists = true
|
||||
ij_kotlin_else_on_new_line = false
|
||||
ij_kotlin_enum_constants_wrap = off
|
||||
ij_kotlin_extends_list_wrap = off
|
||||
ij_kotlin_field_annotation_wrap = split_into_lines
|
||||
ij_kotlin_finally_on_new_line = false
|
||||
ij_kotlin_if_rparen_on_new_line = false
|
||||
ij_kotlin_import_nested_classes = false
|
||||
ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
|
||||
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
|
||||
ij_kotlin_keep_blank_lines_before_right_brace = 2
|
||||
ij_kotlin_keep_blank_lines_in_code = 2
|
||||
ij_kotlin_keep_blank_lines_in_declarations = 2
|
||||
ij_kotlin_keep_first_column_comment = true
|
||||
ij_kotlin_keep_indents_on_empty_lines = false
|
||||
ij_kotlin_keep_line_breaks = true
|
||||
ij_kotlin_lbrace_on_next_line = false
|
||||
ij_kotlin_line_break_after_multiline_when_entry = true
|
||||
ij_kotlin_line_comment_add_space = false
|
||||
ij_kotlin_line_comment_add_space_on_reformat = false
|
||||
ij_kotlin_line_comment_at_first_column = true
|
||||
ij_kotlin_method_annotation_wrap = split_into_lines
|
||||
ij_kotlin_method_call_chain_wrap = off
|
||||
ij_kotlin_method_parameters_new_line_after_left_paren = false
|
||||
ij_kotlin_method_parameters_right_paren_on_new_line = false
|
||||
ij_kotlin_method_parameters_wrap = off
|
||||
ij_kotlin_name_count_to_use_star_import = 5
|
||||
ij_kotlin_name_count_to_use_star_import_for_members = 3
|
||||
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.**
|
||||
ij_kotlin_parameter_annotation_wrap = off
|
||||
ij_kotlin_space_after_comma = true
|
||||
ij_kotlin_space_after_extend_colon = true
|
||||
ij_kotlin_space_after_type_colon = true
|
||||
ij_kotlin_space_before_catch_parentheses = true
|
||||
ij_kotlin_space_before_comma = false
|
||||
ij_kotlin_space_before_extend_colon = true
|
||||
ij_kotlin_space_before_for_parentheses = true
|
||||
ij_kotlin_space_before_if_parentheses = true
|
||||
ij_kotlin_space_before_lambda_arrow = true
|
||||
ij_kotlin_space_before_type_colon = false
|
||||
ij_kotlin_space_before_when_parentheses = true
|
||||
ij_kotlin_space_before_while_parentheses = true
|
||||
ij_kotlin_spaces_around_additive_operators = true
|
||||
ij_kotlin_spaces_around_assignment_operators = true
|
||||
ij_kotlin_spaces_around_equality_operators = true
|
||||
ij_kotlin_spaces_around_function_type_arrow = true
|
||||
ij_kotlin_spaces_around_logical_operators = true
|
||||
ij_kotlin_spaces_around_multiplicative_operators = true
|
||||
ij_kotlin_spaces_around_range = false
|
||||
ij_kotlin_spaces_around_relational_operators = true
|
||||
ij_kotlin_spaces_around_unary_operator = false
|
||||
ij_kotlin_spaces_around_when_arrow = true
|
||||
ij_kotlin_variable_annotation_wrap = off
|
||||
ij_kotlin_while_on_new_line = false
|
||||
ij_kotlin_wrap_elvis_expressions = 1
|
||||
ij_kotlin_wrap_expression_body_functions = 0
|
||||
ij_kotlin_wrap_first_method_in_call_chain = false
|
||||
|
||||
[{*.markdown,*.md}]
|
||||
ij_markdown_force_one_space_after_blockquote_symbol = true
|
||||
ij_markdown_force_one_space_after_header_symbol = true
|
||||
ij_markdown_force_one_space_after_list_bullet = true
|
||||
ij_markdown_force_one_space_between_words = true
|
||||
ij_markdown_format_tables = true
|
||||
ij_markdown_insert_quote_arrows_on_wrap = true
|
||||
ij_markdown_keep_indents_on_empty_lines = false
|
||||
ij_markdown_keep_line_breaks_inside_text_blocks = true
|
||||
ij_markdown_max_lines_around_block_elements = 1
|
||||
ij_markdown_max_lines_around_header = 1
|
||||
ij_markdown_max_lines_between_paragraphs = 1
|
||||
ij_markdown_min_lines_around_block_elements = 1
|
||||
ij_markdown_min_lines_around_header = 1
|
||||
ij_markdown_min_lines_between_paragraphs = 1
|
||||
ij_markdown_wrap_text_if_long = true
|
||||
ij_markdown_wrap_text_inside_blockquotes = true
|
||||
|
||||
[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}]
|
||||
ij_toml_keep_indents_on_empty_lines = false
|
||||
|
||||
[{*.yaml,*.yml}]
|
||||
indent_size = 4
|
||||
ij_yaml_align_values_properties = do_not_align
|
||||
ij_yaml_autoinsert_sequence_marker = true
|
||||
ij_yaml_block_mapping_on_new_line = false
|
||||
ij_yaml_indent_sequence_value = true
|
||||
ij_yaml_keep_indents_on_empty_lines = false
|
||||
ij_yaml_keep_line_breaks = true
|
||||
ij_yaml_sequence_on_new_line = false
|
||||
ij_yaml_space_before_colon = false
|
||||
ij_yaml_spaces_within_braces = true
|
||||
ij_yaml_spaces_within_brackets = true
|
||||
@@ -24,3 +24,6 @@ run
|
||||
# Files from Forge MDK
|
||||
logs
|
||||
forge*changelog.txt
|
||||
|
||||
# Sqlite databases
|
||||
*.sqlite
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
@@ -4,7 +4,7 @@ This repo is for the Distant Horizons mod.
|
||||
The purpose of this submodule is to isolate code that isn't tied to a specific version of minecraft. This prevents us from having duplicate code; reducing errors and potentially helping us port to different versions faster and easier.
|
||||
|
||||
Check out the mod's main GitLab page here:
|
||||
https://gitlab.com/jeseibel/minecraft-lod-mod
|
||||
https://gitlab.com/jeseibel/distant-horizons
|
||||
|
||||
## source code installation
|
||||
|
||||
@@ -14,8 +14,14 @@ It should be automatically included when pulling the full mod.
|
||||
|
||||
## Open Source Acknowledgements
|
||||
|
||||
XZ for Java (data compression)\
|
||||
https://tukaani.org/xz/java.html
|
||||
LZ4 for Java (data compression)\
|
||||
https://github.com/lz4/lz4-java
|
||||
|
||||
Toml for Java (config handeling)\
|
||||
NightConfig for Json & Toml (config handling)\
|
||||
https://github.com/TheElectronWill/night-config
|
||||
|
||||
SVG Salamander for SVG support (not being used atm)\
|
||||
https://github.com/blackears/svgSalamander
|
||||
|
||||
sqlite-jdbc\
|
||||
https://github.com/xerial/sqlite-jdbc
|
||||
|
||||
@@ -1,390 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<profiles version="21">
|
||||
<profile kind="CodeFormatterProfile" name="Eclipse (James' Edit)" version="21">
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="99"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="1200"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
@@ -1,11 +0,0 @@
|
||||
These Files are used when developing the mod.
|
||||
|
||||
Eclipse Auto Formatting
|
||||
IntelliJ Auto Formatting
|
||||
- These files are the auto-formatting settings that should be used when developing for the mod. We want to make sure the style of code is consistant regardless of who is writting the code.
|
||||
|
||||
renderDocMcDistantHorizonsSettings
|
||||
- This file contains the configuration to run a remote debug instance so you can edit the mod in your IDE while also viewing the OpenGL code in RenderDoc.
|
||||
|
||||
minecraft launch options
|
||||
- This file contains the Java command line arguments used to launch the mod from a development environment (specifically Eclipse, James didn't test it with IntelliJ), and is included to more easily edit the options for RenderDoc
|
||||
@@ -1,50 +0,0 @@
|
||||
<code_scheme name="Eclipse (James' Edit)" version="173">
|
||||
<option name="RIGHT_MARGIN" value="1200" />
|
||||
<JavaCodeStyleSettings>
|
||||
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
|
||||
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
|
||||
<option name="JD_ADD_BLANK_AFTER_DESCRIPTION" value="false" />
|
||||
<option name="JD_P_AT_EMPTY_LINES" value="false" />
|
||||
<option name="JD_KEEP_INVALID_TAGS" value="false" />
|
||||
<option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
|
||||
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
|
||||
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
|
||||
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
|
||||
</JavaCodeStyleSettings>
|
||||
<codeStyleSettings language="JAVA">
|
||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||
<option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="10" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="10" />
|
||||
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="10" />
|
||||
<option name="BLANK_LINES_BEFORE_PACKAGE" value="1" />
|
||||
<option name="BRACE_STYLE" value="2" />
|
||||
<option name="CLASS_BRACE_STYLE" value="2" />
|
||||
<option name="METHOD_BRACE_STYLE" value="2" />
|
||||
<option name="ELSE_ON_NEW_LINE" value="true" />
|
||||
<option name="WHILE_ON_NEW_LINE" value="true" />
|
||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
||||
<option name="INDENT_CASE_FROM_SWITCH" value="false" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_RESOURCES" value="false" />
|
||||
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
|
||||
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="RESOURCE_LIST_WRAP" value="5" />
|
||||
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||
<option name="THROWS_LIST_WRAP" value="1" />
|
||||
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
|
||||
<option name="THROWS_KEYWORD_WRAP" value="1" />
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="5" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||
<option name="METHOD_ANNOTATION_WRAP" value="0" />
|
||||
<option name="CLASS_ANNOTATION_WRAP" value="0" />
|
||||
<option name="FIELD_ANNOTATION_WRAP" value="0" />
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
@@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" standalone="yes"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="2040" height="2040">
|
||||
<!-- Distant Horizons logo in svg format -->
|
||||
<!-- Converted svg made by coolGi -->
|
||||
<!-- Made by hand so there may be inaccuracies -->
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Colors used
|
||||
|
||||
Blue: "fill:#465AA8"
|
||||
Green: "fill:#5C7E3C"
|
||||
Wierd green: "fill:#DCD7AA"
|
||||
-->
|
||||
|
||||
|
||||
<!-- Big Blue -->
|
||||
<polygon points="1018.5,15 1434,255 1018.5,486 603,255" style="fill:#465AA8" />
|
||||
<polygon points="1460,270 1875.5,509.5 1460,750 1045,509" style="fill:#465AA8" />
|
||||
<polygon points="1889,531.5 1889,1012 1473,1252 1473,772" style="fill:#465AA8" />
|
||||
<!-- Big Green -->
|
||||
<polygon points="577,269 992,510 577,750 162,509.5" style="fill:#5C7E3C" />
|
||||
<polygon points="149,532 564,772 564,1252 149,1012" style="fill:#5C7E3C" />
|
||||
<polygon points="1889,1041 1889,1522 1474,1762 1473,1281" style="fill:#5C7E3C" />
|
||||
<!-- Big Wierd Green -->
|
||||
<polygon points="149,1042 564,1282 564,1762 149,1522" style="fill:#DCD7AA" />
|
||||
<polygon points="590,1297 1006,1537 1006,2017 590,1777" style="fill:#DCD7AA" />
|
||||
<polygon points="1031,1537 1447,1297 1447,1777 1031,2017" style="fill:#DCD7AA" />
|
||||
|
||||
|
||||
<!-- Mid Blue -->
|
||||
<polygon points="1239.5,652 1434,764.5 1239.5,877 1045,764.5" style="fill:#465AA8" />
|
||||
<polygon points="1447,787 1447,1012 1252,1125 1252,899" style="fill:#465AA8" />
|
||||
<!-- Mid Green -->
|
||||
<polygon points="1018.5,525 1214,637 1018.5,749 824,637" style="fill:#5C7E3C" />
|
||||
<polygon points="798,652 992,764.5 798,877 603,764.5" style="fill:#5C7E3C" />
|
||||
<polygon points="590,787 785,899 785,1125 590,1012" style="fill:#5C7E3C" />
|
||||
<polygon points="1447,1042 1447,1267 1252,1380 1252,1154" style="fill:#5C7E3C" />
|
||||
<polygon points="1226,1170 1226,1395 1031,1507 1031,1282" style="fill:#5C7E3C" />
|
||||
<!-- Mid Wierd Green -->
|
||||
<polygon points="590,1042 785,1154 785,1379 590,1267" style="fill:#DCD7AA" />
|
||||
<polygon points="811,1169 1006,1282 1006,1507 811,1395" style="fill:#DCD7AA" />
|
||||
|
||||
<!-- Out Small Blue -->
|
||||
<polygon points="1018.5,779.5 1103,828 1018.5,877 934,828" style="fill:#465AA8" />
|
||||
<polygon points="1129,843 1214,892 1129,941 1044,892" style="fill:#465AA8" />
|
||||
<polygon points="1226,914 1226,1012 1142,1061 1142,963" style="fill:#465AA8" />
|
||||
<polygon points="1226,1042 1226,1140 1142,1188 1142,1090" style="fill:#465AA8" />
|
||||
<polygon points="1116,1105 1116,1203 1031,1252 1031,1154" style="fill:#465AA8" />
|
||||
<!-- Out Small Green -->
|
||||
<polygon points="908,843 993,892 908,941 823,892" style="fill:#5C7E3C" />
|
||||
<polygon points="811,914 895,963 895,1061 811,1012" style="fill:#5C7E3C" />
|
||||
<polygon points="921,1105 1006,1154 1006,1252 921,1203" style="fill:#5C7E3C" />
|
||||
<!-- Out Small Wierd Green -->
|
||||
<polygon points="811,1042 895,1090 895,1188 811,1140" style="fill:#DCD7AA" />
|
||||
|
||||
<!-- In Small Blue -->
|
||||
<polygon points="1116,978 1116,1076 1031,1125 1031,1027" style="fill:#465AA8" />
|
||||
<!-- In Small Green -->
|
||||
<polygon points="1018.5,907 1103,956 1018.5,1004 934,956" style="fill:#5C7E3C" />
|
||||
<polygon points="921,978 1006,1027 1006,1125 921,1076" style="fill:#5C7E3C" />
|
||||
</svg>
|
||||
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
@@ -0,0 +1,4 @@
|
||||
FROM anapsix/alpine-java
|
||||
MAINTAINER Ran
|
||||
COPY anotherquestion-1.0-SNAPSHOT.jar /home/anotherquestion-1.0-SNAPSHOT.jar
|
||||
CMD ["java","-jar","/home/anotherquestion-1.0-SNAPSHOT.jar"]
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
The following is short tutorial to setup and register a gitlab runner in a docker container on windows.
|
||||
Docker can be installed via an installer from their website and these instructions assume that has already been done.
|
||||
|
||||
longer tutorials can be found at the following links:
|
||||
https://faun.pub/gitlab-runner-setup-run-in-docker-container-on-windows-44fee102d02e
|
||||
https://datawookie.dev/blog/2021/03/install-gitlab-runner-with-docker/
|
||||
|
||||
|
||||
1. install the gitlab runner
|
||||
run the following command in powershell, changing the config file location if need be
|
||||
Note: This will NOT work in git bash, only powershell
|
||||
|
||||
docker run -d --name gitlab-runner --restart always -v C:\DistantHorizonsWorkspace\Docker\config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
|
||||
|
||||
|
||||
2. to make sure the docker container was set up correctly run:
|
||||
docker container list
|
||||
|
||||
it will display the docker containers that have been created
|
||||
|
||||
|
||||
3. start and register the runner
|
||||
run the following command in powershell. change the <ITEM>'s to whatever they should be for the runner you are creating.
|
||||
|
||||
docker run --rm -t -i -v C:\gitlab-runner\config:/etc/gitlab-runner gitlab/gitlab-runner register --non-interactive --executor "docker" --docker-image alpine:latest --url "https://gitlab.com/" --registration-token "<TOKEN>" --description "<DESCRIPTION THAT SHOWS UP ON GITLAB>" --run-untagged="true" --locked="false"
|
||||
|
||||
|
||||
4. done
|
||||
at this point the runner should be up and running, to confirm this go to your:
|
||||
gitlab project -> settings (on the left menu bar) -> CI/CD -> Runners
|
||||
and you should see the newly registered runner (the description should show up under the runner's auto generated ID)
|
||||
|
||||
|
||||
5. optional config
|
||||
Open Docker Desktop -> Containers -> Files, go to the file "etc/gitlab-runner/config.toml"
|
||||
concurrent can be changed to allow for concurrent builds.
|
||||
|
||||
|
||||
|
||||
Additional commands:
|
||||
|
||||
manual registering (shouldn't be needed)
|
||||
docker exec -it gitlab-runner gitlab-runner register
|
||||
|
||||
list gitlab runner info
|
||||
docker exec -it gitlab-runner gitlab-runner list
|
||||
|
||||
list all commands the runner can use
|
||||
(replace "help" with whatever command you want to use)
|
||||
docker exec -it gitlab-runner gitlab-runner help
|
||||
@@ -0,0 +1,89 @@
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
|
||||
plugins {
|
||||
id "java"
|
||||
|
||||
id "com.github.johnrengelman.shadow" version '7.1.2' apply false
|
||||
}
|
||||
|
||||
|
||||
shadowJar {
|
||||
// required for basic shadowJar setup
|
||||
configurations = [project.configurations.shadow]
|
||||
}
|
||||
|
||||
task addSourcesToCompiledJar(type: ShadowJar) {
|
||||
|
||||
def sourceJarPath = "build/libs/DistantHorizons-api-${rootProject.versionStr}-sources.jar"
|
||||
def secondJarFile = file(sourceJarPath)
|
||||
|
||||
// doFirst is so these only run when the task is actually executed
|
||||
doFirst {
|
||||
System.out.println("Adding source files from: \n" +
|
||||
"[" + sourceJarPath + "] to compiled API jar: \n" +
|
||||
"[" + shadowJar.archivePath + "]")
|
||||
|
||||
// Validate the input JAR file
|
||||
if (!secondJarFile.exists()) {
|
||||
throw new GradleException("Second JAR file not found: [${secondJarFile}]")
|
||||
}
|
||||
}
|
||||
|
||||
// Set the name of the combined JAR file
|
||||
archiveFileName.set("DistantHorizonsApi-${rootProject.api_version}.jar")
|
||||
|
||||
// Set the destination directory for the combined JAR file
|
||||
destinationDirectory = file('build/libs/merged/')
|
||||
|
||||
// Set the input JAR files to be combined
|
||||
from sourceSets.main.allJava
|
||||
from {
|
||||
configurations.shadow.collect { it.isDirectory() ? it : zipTree(it) }
|
||||
}
|
||||
|
||||
// set the jars to merge
|
||||
from shadowJar.archivePath
|
||||
from secondJarFile
|
||||
|
||||
// alternative method to Include the source files in the combined JAR
|
||||
// and/or see which files are being included
|
||||
eachFile { file ->
|
||||
// can be set to true for debugging
|
||||
def useAlternateEmbedMethod = false
|
||||
def showFileEmbedding = false
|
||||
|
||||
if (showFileEmbedding || useAlternateEmbedMethod) {
|
||||
System.out.println("attempting to add file: " + file)
|
||||
|
||||
def relativePath = file.relativePath.pathString
|
||||
if (relativePath.endsWith('.class')) {
|
||||
System.out.println("class file: " + relativePath)
|
||||
def sourceFile = file.file.parentFile.resolveSibling('src/main/java/' + relativePath.replace('.class', '.java'))
|
||||
if (sourceFile.exists()) {
|
||||
System.out.println("adding source file: " + sourceFile)
|
||||
if (useAlternateEmbedMethod) {
|
||||
file.withInputStream { inputStream ->
|
||||
copy {
|
||||
from(inputStream)
|
||||
into(relativePath.replace('.class', '.java'))
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
System.out.println('missing source file: ' + sourceFile)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
javadoc {
|
||||
options {
|
||||
// Don't log warnings.
|
||||
// There are a lot of warnings related to missing @param and @return javadocs
|
||||
// that aren't necessary and would clutter up said javadocs.
|
||||
// For more info see: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html
|
||||
addStringOption('Xdoclint:all,-missing', '-quiet')
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.events.IDhApiEventInjector;
|
||||
import com.seibel.distanthorizons.api.interfaces.factories.IDhApiWrapperFactory;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGeneratorOverrideRegister;
|
||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
|
||||
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDhInitEvent;
|
||||
import com.seibel.distanthorizons.api.methods.override.DhApiWorldGeneratorOverrideRegister;
|
||||
import com.seibel.distanthorizons.coreapi.ModInfo;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfig;
|
||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiWorldProxy;
|
||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector;
|
||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.OverrideInjector;
|
||||
import com.seibel.distanthorizons.api.interfaces.data.IDhApiTerrainDataRepo;
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IOverrideInjector;
|
||||
|
||||
/**
|
||||
* This is the masthead of the API, almost everything you could want to do
|
||||
* can be achieved from here. <br>
|
||||
* For example: you can access singletons which handle the config or event binding. <br><br>
|
||||
*
|
||||
* <strong>Q:</strong> Why should I use this class instead of just getting the API singleton I need? <br>
|
||||
* <strong>A:</strong> This way there is a lower chance of your code breaking if we change something on our end.
|
||||
* For example, if we realized there is a much better way of handling dependency injection we would keep the
|
||||
* interface the same so your code doesn't have to change. Whereas if you were directly referencing
|
||||
* the concrete object we replaced, there would be issues.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-12-16
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public class DhApi
|
||||
{
|
||||
/**
|
||||
* If you can see this Java Doc, this can be ignored. <br>
|
||||
* This is just to let you know that Javadocs are available and that you should use the API jar
|
||||
* instead of the full mod jar. <br><br>
|
||||
*
|
||||
* Note: Don't use this string in your code. It may change and is only for reference.
|
||||
*/
|
||||
public static final String READ_ME =
|
||||
"If you don't see Javadocs something is wrong. \n" +
|
||||
"If you are only using the full DH Mod in your build script, you won't have access to our javadocs and could potentially call into unsafe code. \n" +
|
||||
"\n" +
|
||||
"Please use the API jar in your build script as a compile time dependency " +
|
||||
"and the full DH jar as a runtime dependency. \n" +
|
||||
"\n" +
|
||||
"Please refer to the example API project or the DH Developer Wiki for additional information " +
|
||||
"and suggested setup. \n" + // DH Dev note: no links were included to prevent link rot.
|
||||
"";
|
||||
public static String readMe() { return READ_ME; }
|
||||
|
||||
/**
|
||||
* This is just a humorous way to reference the {@link DhApi#READ_ME} constant string and hopefully peak a few people's attention
|
||||
* vs the relatively boring "readMe".
|
||||
*/
|
||||
public static final String HEY_YOU_YOURE_FINALLY_AWAKE = READ_ME;
|
||||
/**
|
||||
* This is just a humorous way to reference the {@link DhApi#READ_ME} constant string and hopefully peak a few people's attention
|
||||
* vs the relatively boring "readMe".
|
||||
*/
|
||||
public static String heyYou_YoureFinallyAwake() { return READ_ME; }
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <strong>WARNING:</strong>
|
||||
* All objects in this class will be null until after DH initializes for the first time. <br><br>
|
||||
*
|
||||
* Bind a custom {@link DhApiAfterDhInitEvent DhApiAfterDhInitEvent}
|
||||
* to {@link DhApi#events ApiCoreInjectors.events} in order to be notified when this class can
|
||||
* be safely used.
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static class Delayed
|
||||
{
|
||||
/**
|
||||
* Used to interact with Distant Horizons' Configs.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static IDhApiConfig configs = null;
|
||||
|
||||
/**
|
||||
* Used to interact with Distant Horizons' terrain data.
|
||||
* Designed to be used in conjunction with {@link DhApi.Delayed#worldProxy}.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static IDhApiTerrainDataRepo terrainRepo = null;
|
||||
|
||||
/**
|
||||
* Used to interact with Distant Horizons' currently loaded world.
|
||||
* Designed to be used in conjunction with {@link DhApi.Delayed#terrainRepo}.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static IDhApiWorldProxy worldProxy = null;
|
||||
|
||||
/**
|
||||
* Used to interact with Distant Horizons' rendering system.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static IDhApiRenderProxy renderProxy = null;
|
||||
|
||||
/**
|
||||
* Used to create wrappers for Minecraft objects needed by other Distant Horizons API methods.
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public static IDhApiWrapperFactory wrapperFactory = null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//==================//
|
||||
// always available //
|
||||
//==================//
|
||||
|
||||
// interfaces //
|
||||
|
||||
/**
|
||||
* Used to bind/unbind Distant Horizons Api events.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static final IDhApiEventInjector events = ApiEventInjector.INSTANCE;
|
||||
|
||||
/**
|
||||
* Used to bind/unbind Distant Horizons Api events.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static final IDhApiWorldGeneratorOverrideRegister worldGenOverrides = DhApiWorldGeneratorOverrideRegister.INSTANCE;
|
||||
|
||||
/**
|
||||
* Used to bind overrides to change Distant Horizons' core behavior.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static final IOverrideInjector<IDhApiOverrideable> overrides = OverrideInjector.INSTANCE;
|
||||
|
||||
|
||||
// getters //
|
||||
|
||||
/**
|
||||
* This version should only be updated when breaking changes are introduced to the Distant Horizons API.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static int getApiMajorVersion() { return ModInfo.API_MAJOR_VERSION; }
|
||||
/**
|
||||
* This version should be updated whenever new methods are added to the Distant Horizons API.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static int getApiMinorVersion() { return ModInfo.API_MINOR_VERSION; }
|
||||
/**
|
||||
* This version should be updated whenever non-breaking fixes are added to the Distant Horizons API.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static int getApiPatchVersion() { return ModInfo.API_PATH_VERSION; }
|
||||
|
||||
/**
|
||||
* Returns the mod's semantic version number in the format: Major.Minor.Patch
|
||||
* with optional extensions "-a" for alpha, "-b" for beta, and -dev for unstable development builds. <br>
|
||||
* Examples: "1.6.9-a", "1.7.0-a-dev", "2.1.0-b", "3.0.0", "3.1.4-dev"
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static String getModVersion() { return ModInfo.VERSION; }
|
||||
/**
|
||||
* Returns true if the mod is a development version, false if it is a release version.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static boolean getIsDevVersion() { return ModInfo.IS_DEV_BUILD; }
|
||||
|
||||
/**
|
||||
* Returns the network protocol version.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public static int getNetworkProtocolVersion() { return ModInfo.PROTOCOL_VERSION; }
|
||||
|
||||
|
||||
// methods //
|
||||
|
||||
/**
|
||||
* Returns true if the thread this method was called from is owned by Distant Horizons.
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public static boolean isDhThread() { return Thread.currentThread().getName().startsWith(ModInfo.THREAD_NAME_PREFIX); }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums;
|
||||
|
||||
/**
|
||||
* BLOCK - Detail Level: 0, width 1 block, <br>
|
||||
* CHUNK - Detail Level: 4, width 16 block, <br>
|
||||
* REGION - Detail Level: 9, width 512 block <br> <br>
|
||||
*
|
||||
* Detail levels in Distant Horizons represent how large a section (of either LODs or MC chunks)
|
||||
* is, with the smallest being 0 (1 block wide). <br>
|
||||
* The width of a detail level can be calculated by putting the detail level to the power of 2. <br>
|
||||
* Example for the chunk detail level (4): 2^4 = 16 blocks wide <Br><br>
|
||||
*
|
||||
* This enum doesn't contain all valid detail levels, only those most likely to be needed.
|
||||
* Detail levels 1,2,3, ... 255 are all technically valid detail levels
|
||||
* (although anything beyond {@link EDhApiDetailLevel#REGION} may be difficult deal with).
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-12-5
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EDhApiDetailLevel
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
/**
|
||||
* detail level: 0 <Br>
|
||||
* width in Blocks: 1
|
||||
*/
|
||||
BLOCK(0, 1),
|
||||
/**
|
||||
* detail level: 4 <Br>
|
||||
* width in Blocks: 16
|
||||
*/
|
||||
CHUNK(4, 16),
|
||||
/**
|
||||
* detail level: 9 <Br>
|
||||
* width in Blocks: 512
|
||||
*/
|
||||
REGION(9, 512);
|
||||
|
||||
|
||||
public final byte detailLevel;
|
||||
public final byte widthInBlocks;
|
||||
|
||||
EDhApiDetailLevel(int detailLevel, int widthInBlocks)
|
||||
{
|
||||
this.detailLevel = (byte) detailLevel;
|
||||
this.widthInBlocks = (byte) widthInBlocks;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Add this annotation to enum values that
|
||||
* are valid config options, but shouldn't be selectable
|
||||
* when toggling through the options. <br><br>
|
||||
*
|
||||
* Example: A preset's "custom" option shouldn't be selectable
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface DisallowSelectingViaConfigGui
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* NONE, <br>
|
||||
* NON_COLLIDING, <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EBlocksToAvoid
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
NONE(false),
|
||||
NON_COLLIDING(true);
|
||||
|
||||
public final boolean noCollision;
|
||||
|
||||
EBlocksToAvoid(boolean noCollision) { this.noCollision = noCollision; }
|
||||
|
||||
}
|
||||
@@ -1,35 +1,37 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod (formerly the LOD Mod),
|
||||
* licensed under the GNU GPL v3 License.
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2022 James Seibel
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.lod.core.enums.config;
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* CONSTANT <br>
|
||||
* FREQUENT <br>
|
||||
* NORMAL <br>
|
||||
* RARE <br>
|
||||
* <br>
|
||||
* Determines how fast the buffers need to be regenerated
|
||||
*
|
||||
* RARE <br> <br>
|
||||
*
|
||||
* Determines how fast the buffers should be regenerated
|
||||
*
|
||||
* @author Leonardo Amato
|
||||
* @version 9-25-2021
|
||||
*/
|
||||
public enum BufferRebuildTimes
|
||||
@Deprecated // not currently in use, if the config this enum represents is re-implemented, the deprecated flag can be removed
|
||||
public enum EBufferRebuildTimes
|
||||
{
|
||||
CONSTANT(0, 0, 0, 1),
|
||||
|
||||
@@ -44,7 +46,7 @@ public enum BufferRebuildTimes
|
||||
public final int chunkChangeTimeout;
|
||||
public final int playerMoveDistance;
|
||||
|
||||
BufferRebuildTimes(int playerMoveTimeout, int renderedChunkTimeout, int chunkChangeTimeout, int playerMoveDistance)
|
||||
EBufferRebuildTimes(int playerMoveTimeout, int renderedChunkTimeout, int chunkChangeTimeout, int playerMoveDistance)
|
||||
{
|
||||
this.playerMoveTimeout = playerMoveTimeout;
|
||||
this.renderedChunkTimeout = renderedChunkTimeout;
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EGLErrorHandlingMode
|
||||
{
|
||||
IGNORE,
|
||||
LOG,
|
||||
LOG_THROW;
|
||||
}
|
||||
@@ -1,37 +1,42 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod (formerly the LOD Mod),
|
||||
* licensed under the GNU GPL v3 License.
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2022 James Seibel
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.lod.core.enums.config;
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* AUTO <br>
|
||||
* Near_First <br>
|
||||
* Far_First <br>
|
||||
* <br>
|
||||
* Far_First <br> <br>
|
||||
*
|
||||
* Determines which LODs should have priority when generating
|
||||
* outside the normal view distance.
|
||||
*
|
||||
*
|
||||
* @author Leonardo Amato
|
||||
* @version 12-1-2021
|
||||
*/
|
||||
public enum GenerationPriority
|
||||
@Deprecated // not currently in use, if the config this enum represents is re-implemented, the deprecated flag can be removed
|
||||
public enum EGenerationPriority
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
/** NEAR_FIRST when connected to servers and BALANCED when on single player */
|
||||
AUTO,
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EGlProfileMode
|
||||
{
|
||||
CORE,
|
||||
COMPAT,
|
||||
ANY;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* AUTO, <br>
|
||||
* BUFFER_STORAGE, <br>
|
||||
* SUB_DATA, <br>
|
||||
* BUFFER_MAPPING, <br>
|
||||
* DATA <br>
|
||||
*
|
||||
* @author Leetom
|
||||
* @author James Seibel
|
||||
* @version 2022-7-2
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EGpuUploadMethod
|
||||
{
|
||||
/** Picks the best option based on the GPU the user has. */
|
||||
AUTO(false, false),
|
||||
|
||||
// commented out since it isn't currently in use
|
||||
//BUFFER_STORAGE_MAPPING(true, true),
|
||||
|
||||
/** Fast rendering, no stuttering. */
|
||||
BUFFER_STORAGE(false, true),
|
||||
|
||||
/** Fast rendering but may stutter when uploading. */
|
||||
SUB_DATA(false, false),
|
||||
|
||||
/**
|
||||
* May end up storing buffers in System memory. <br>
|
||||
* Fast rending if in GPU memory, slow if in system memory, <br>
|
||||
* but won't stutter when uploading.
|
||||
*/
|
||||
BUFFER_MAPPING(true, false),
|
||||
|
||||
/** Fast rendering but may stutter when uploading. */
|
||||
DATA(false, false);
|
||||
|
||||
|
||||
|
||||
public final boolean useEarlyMapping;
|
||||
public final boolean useBufferStorage;
|
||||
|
||||
EGpuUploadMethod(boolean useEarlyMapping, boolean useBufferStorage)
|
||||
{
|
||||
this.useEarlyMapping = useEarlyMapping;
|
||||
this.useBufferStorage = useBufferStorage;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* LOWEST <br>
|
||||
* LOW <br>
|
||||
* MEDIUM <br>
|
||||
* HIGH <br>
|
||||
* UNLIMITED <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EHorizontalQuality
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
// FIXME any quadraticBase less than 2.0f has issues with DetailDistanceUtil, and will always return the lowest detail level.
|
||||
// So for now we are limiting the lowest value to 2.0
|
||||
// LOWEST was originally 1.0f and LOW was 1.5f
|
||||
|
||||
LOWEST(2.0f, 4),
|
||||
LOW(2.0f, 8),
|
||||
MEDIUM(2.0f, 12),
|
||||
HIGH(2.2f, 24),
|
||||
EXTREME(2.4f, 64),
|
||||
|
||||
UNLIMITED(-1, -1);
|
||||
|
||||
|
||||
|
||||
public final double quadraticBase;
|
||||
public final int distanceUnitInBlocks;
|
||||
|
||||
EHorizontalQuality(double quadraticBase, int distanceUnitInBlocks)
|
||||
{
|
||||
this.quadraticBase = quadraticBase;
|
||||
this.distanceUnitInBlocks = distanceUnitInBlocks;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* DISTANT_HORIZONS, <br>
|
||||
* MINECRAFT,
|
||||
*
|
||||
* @author Leetom
|
||||
* @version 2023-6-7
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ELightGenerationMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
DISTANT_HORIZONS,
|
||||
|
||||
MINECRAFT
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* MINECRAFT <br>
|
||||
* OLD_LIGHTING <br>
|
||||
* NONE <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ELodShading
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
/** Uses Minecraft's shading for LODs */
|
||||
MINECRAFT,
|
||||
/**
|
||||
* Simulates Minecraft's shading.
|
||||
* This is most useful for shaders that disable Minecraft's shading
|
||||
* but still require shading on LODs.
|
||||
*/
|
||||
OLD_LIGHTING,
|
||||
/** LODs will have no shading */
|
||||
NONE;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
/**
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ELoggerMode
|
||||
{
|
||||
DISABLED(Level.OFF, Level.OFF),
|
||||
LOG_ALL_TO_FILE(Level.ALL, Level.OFF),
|
||||
LOG_ERROR_TO_CHAT(Level.ALL, Level.ERROR),
|
||||
LOG_WARNING_TO_CHAT(Level.ALL, Level.WARN),
|
||||
LOG_INFO_TO_CHAT(Level.ALL, Level.INFO),
|
||||
LOG_DEBUG_TO_CHAT(Level.ALL, Level.DEBUG),
|
||||
LOG_ALL_TO_CHAT(Level.ALL, Level.ALL),
|
||||
LOG_ERROR_TO_CHAT_AND_FILE(Level.ERROR, Level.ERROR),
|
||||
LOG_WARNING_TO_CHAT_AND_FILE(Level.WARN, Level.WARN),
|
||||
LOG_INFO_TO_CHAT_AND_FILE(Level.INFO, Level.INFO),
|
||||
LOG_DEBUG_TO_CHAT_AND_FILE(Level.DEBUG, Level.DEBUG),
|
||||
LOG_WARNING_TO_CHAT_AND_INFO_TO_FILE(Level.INFO, Level.WARN),
|
||||
LOG_ERROR_TO_CHAT_AND_INFO_TO_FILE(Level.INFO, Level.ERROR),
|
||||
;
|
||||
public final Level levelForFile;
|
||||
public final Level levelForChat;
|
||||
ELoggerMode(Level levelForFile, Level levelForChat)
|
||||
{
|
||||
this.levelForFile = levelForFile;
|
||||
this.levelForChat = levelForChat;
|
||||
}
|
||||
}
|
||||
@@ -1,41 +1,42 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod (formerly the LOD Mod),
|
||||
* licensed under the GNU GPL v3 License.
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2022 James Seibel
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.lod.core.enums.config;
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
import com.seibel.lod.core.util.LodUtil;
|
||||
import com.seibel.distanthorizons.coreapi.util.MathUtil;
|
||||
|
||||
/**
|
||||
* chunk <Br>
|
||||
* half_chunk <Br>
|
||||
* four_blocks <br>
|
||||
* two_blocks <Br>
|
||||
* block <br>
|
||||
*
|
||||
* BLOCK <Br>
|
||||
* TWO_BLOCKS <Br>
|
||||
* FOUR_BLOCKS <br>
|
||||
* HALF_CHUNK <Br>
|
||||
* CHUNK <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @author Leonardo Amato
|
||||
* @version 9-25-2021
|
||||
* @version 2023-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum HorizontalResolution
|
||||
public enum EMaxHorizontalResolution
|
||||
{
|
||||
/** render 256 LODs for each chunk */
|
||||
BLOCK(16, 0),
|
||||
@@ -54,8 +55,6 @@ public enum HorizontalResolution
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* How many DataPoints should
|
||||
* be drawn per side, per LodChunk
|
||||
@@ -85,22 +84,22 @@ public enum HorizontalResolution
|
||||
* 2nd dimension: An array of all LodDetails that are less than or <br>
|
||||
* equal to that detailLevel
|
||||
*/
|
||||
private static HorizontalResolution[][] lowerDetailArrays;
|
||||
private static EMaxHorizontalResolution[][] lowerDetailArrays;
|
||||
|
||||
|
||||
|
||||
|
||||
HorizontalResolution(int newLengthCount, int newDetailLevel)
|
||||
EMaxHorizontalResolution(int newLengthCount, int newDetailLevel)
|
||||
{
|
||||
detailLevel = (byte) newDetailLevel;
|
||||
dataPointLengthCount = newLengthCount;
|
||||
dataPointWidth = 16 / dataPointLengthCount;
|
||||
this.detailLevel = (byte) newDetailLevel;
|
||||
this.dataPointLengthCount = newLengthCount;
|
||||
this.dataPointWidth = 16 / this.dataPointLengthCount;
|
||||
|
||||
startX = new int[dataPointLengthCount * dataPointLengthCount];
|
||||
endX = new int[dataPointLengthCount * dataPointLengthCount];
|
||||
this.startX = new int[this.dataPointLengthCount * this.dataPointLengthCount];
|
||||
this.endX = new int[this.dataPointLengthCount * this.dataPointLengthCount];
|
||||
|
||||
startZ = new int[dataPointLengthCount * dataPointLengthCount];
|
||||
endZ = new int[dataPointLengthCount * dataPointLengthCount];
|
||||
this.startZ = new int[this.dataPointLengthCount * this.dataPointLengthCount];
|
||||
this.endZ = new int[this.dataPointLengthCount * this.dataPointLengthCount];
|
||||
|
||||
|
||||
int index = 0;
|
||||
@@ -108,11 +107,11 @@ public enum HorizontalResolution
|
||||
{
|
||||
for (int z = 0; z < newLengthCount; z++)
|
||||
{
|
||||
startX[index] = x * dataPointWidth;
|
||||
startZ[index] = z * dataPointWidth;
|
||||
this.startX[index] = x * this.dataPointWidth;
|
||||
this.startZ[index] = z * this.dataPointWidth;
|
||||
|
||||
endX[index] = (x * dataPointWidth) + dataPointWidth;
|
||||
endZ[index] = (z * dataPointWidth) + dataPointWidth;
|
||||
this.endX[index] = (x * this.dataPointWidth) + this.dataPointWidth;
|
||||
this.endZ[index] = (z * this.dataPointWidth) + this.dataPointWidth;
|
||||
|
||||
index++;
|
||||
}
|
||||
@@ -122,27 +121,28 @@ public enum HorizontalResolution
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//================//
|
||||
// static methods //
|
||||
//================//
|
||||
|
||||
/**
|
||||
* Returns an array of all LodDetails that have a detail level
|
||||
* that is less than or equal to the given LodDetail
|
||||
*/
|
||||
public static HorizontalResolution[] getSelfAndLowerDetails(HorizontalResolution detail)
|
||||
public static EMaxHorizontalResolution[] getSelfAndLowerDetails(EMaxHorizontalResolution detail)
|
||||
{
|
||||
if (lowerDetailArrays == null)
|
||||
{
|
||||
// run first time setup
|
||||
lowerDetailArrays = new HorizontalResolution[HorizontalResolution.values().length][];
|
||||
lowerDetailArrays = new EMaxHorizontalResolution[EMaxHorizontalResolution.values().length][];
|
||||
|
||||
// go through each LodDetail
|
||||
for (HorizontalResolution currentDetail : HorizontalResolution.values())
|
||||
for (EMaxHorizontalResolution currentDetail : EMaxHorizontalResolution.values())
|
||||
{
|
||||
ArrayList<HorizontalResolution> lowerDetails = new ArrayList<>();
|
||||
ArrayList<EMaxHorizontalResolution> lowerDetails = new ArrayList<>();
|
||||
|
||||
// find the details lower than currentDetail
|
||||
for (HorizontalResolution compareDetail : HorizontalResolution.values())
|
||||
for (EMaxHorizontalResolution compareDetail : EMaxHorizontalResolution.values())
|
||||
{
|
||||
if (currentDetail.detailLevel <= compareDetail.detailLevel)
|
||||
{
|
||||
@@ -154,7 +154,7 @@ public enum HorizontalResolution
|
||||
Collections.sort(lowerDetails);
|
||||
Collections.reverse(lowerDetails);
|
||||
|
||||
lowerDetailArrays[currentDetail.detailLevel] = lowerDetails.toArray(new HorizontalResolution[lowerDetails.size()]);
|
||||
lowerDetailArrays[currentDetail.detailLevel] = lowerDetails.toArray(new EMaxHorizontalResolution[lowerDetails.size()]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,14 +162,13 @@ public enum HorizontalResolution
|
||||
}
|
||||
|
||||
/** Returns what detail level should be used at a given distance and maxDistance. */
|
||||
public static HorizontalResolution getDetailForDistance(HorizontalResolution maxDetailLevel, int distance, int maxDistance)
|
||||
public static EMaxHorizontalResolution getDetailForDistance(EMaxHorizontalResolution maxDetailLevel, int distance, int maxDistance)
|
||||
{
|
||||
HorizontalResolution[] lowerDetails = getSelfAndLowerDetails(maxDetailLevel);
|
||||
EMaxHorizontalResolution[] lowerDetails = getSelfAndLowerDetails(maxDetailLevel);
|
||||
int distanceBetweenDetails = maxDistance / lowerDetails.length;
|
||||
int index = LodUtil.clamp(0, distance / distanceBetweenDetails, lowerDetails.length - 1);
|
||||
int index = MathUtil.clamp(0, distance / distanceBetweenDetails, lowerDetails.length - 1);
|
||||
|
||||
return lowerDetails[index];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* NONE <br>
|
||||
* LIGHT <br>
|
||||
* MEDIUM <br>
|
||||
* HEAVY <br>
|
||||
*
|
||||
* CUSTOM <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
* @deprecated will be removed when DH updates to MC 1.21 <br>
|
||||
* After removal a float value will be used to control overdraw instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public enum EOverdrawPrevention
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
NONE,
|
||||
LIGHT,
|
||||
MEDIUM,
|
||||
HEAVY,
|
||||
|
||||
/**
|
||||
* Should not be passed in. <br>
|
||||
* Is returned if the overdraw value doesn't match any of the enums defined here.
|
||||
*/
|
||||
CUSTOM;
|
||||
}
|
||||
@@ -1,68 +1,66 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod (formerly the LOD Mod),
|
||||
* licensed under the GNU GPL v3 License.
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2022 Tom Lee (TomTheFurry)
|
||||
* Copyright (C) 2020-2022 James Seibel
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.lod.core.enums.config;
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* AUTO <br>
|
||||
* NAME_ONLY <br>
|
||||
* NAME_IP <br>
|
||||
* NAME_IP_PORT <br>
|
||||
* <br>
|
||||
* NAME_ONLY, <br>
|
||||
* NAME_IP, <br>
|
||||
* NAME_IP_PORT, <br>
|
||||
* NAME_IP_PORT_MC_VERSION, <br> <br>
|
||||
*
|
||||
* Determines how the multiplayer folders should be named.
|
||||
*
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 3-7-2022
|
||||
* @version 2022-7-1
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ServerFolderNameMode
|
||||
public enum EServerFolderNameMode
|
||||
{
|
||||
/**
|
||||
* NAME_IP for LAN connections <Br>
|
||||
* NAME_IP_PORT for all others
|
||||
*/
|
||||
AUTO,
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
/** Only use the server name */
|
||||
NAME_ONLY,
|
||||
|
||||
/**
|
||||
/**
|
||||
* {SERVER_NAME} IP {IP} <br>
|
||||
* Minecraft Server IP 192.168.1.40
|
||||
* Example: Minecraft Server IP 192.168.1.40
|
||||
*/
|
||||
NAME_IP,
|
||||
|
||||
/**
|
||||
* {SERVER_NAME} IP {IP} <br>
|
||||
* Minecraft Server IP 192.168.1.40:25565
|
||||
/**
|
||||
* {SERVER_NAME} IP {IP}:{PORT} <br>
|
||||
* Example: Minecraft Server IP 192.168.1.40:25565
|
||||
*/
|
||||
NAME_IP_PORT,
|
||||
|
||||
/**
|
||||
/**
|
||||
* {SERVER_NAME} IP {IP} <br>
|
||||
* Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5 <Br> <br>
|
||||
*
|
||||
* Example: Minecraft Server IP 192.168.1.40:25565 GameVersion 1.16.5 <Br> <br>
|
||||
*
|
||||
* Not normally recommended, since the game version can change if the
|
||||
* server installs paper or some other jar. <br>
|
||||
* This is just here to provide backwards compatibility.
|
||||
*
|
||||
* TODO add this to config desc
|
||||
*/
|
||||
NAME_IP_PORT_MC_VERSION;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
public enum EUpdateBranch
|
||||
{
|
||||
STABLE,
|
||||
NIGHTLY
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
/**
|
||||
* NEVER, <br>
|
||||
* DYNAMIC, <br>
|
||||
* ALWAYS <br> <br>
|
||||
*
|
||||
* This represents how far the LODs should overlap with
|
||||
* the vanilla Minecraft terrain.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-30
|
||||
*/
|
||||
@Deprecated // not currently in use, if the config this enum represents is re-implemented, the deprecated flag can be removed
|
||||
public enum EVanillaOverdraw
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
/**
|
||||
* Don't draw LODs where a minecraft chunk could be.
|
||||
* Use Overdraw Offset to tweak the border thickness.
|
||||
*/
|
||||
NEVER,
|
||||
|
||||
/**
|
||||
* Draw LODs over the farther minecraft chunks.
|
||||
* Dynamically decides the border thickness
|
||||
*/
|
||||
DYNAMIC,
|
||||
|
||||
/** Draw LODs over all minecraft chunks. */
|
||||
ALWAYS,
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config;
|
||||
|
||||
import com.seibel.distanthorizons.coreapi.util.MathUtil;
|
||||
|
||||
/**
|
||||
* HEIGHT_MAP <br>
|
||||
* LOW <br>
|
||||
* MEDIUM <br>
|
||||
* HIGH <br>
|
||||
* EXTREME <br>
|
||||
*
|
||||
* @author Leonardo Amato
|
||||
* @version 2023-2-5
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EVerticalQuality
|
||||
{
|
||||
HEIGHT_MAP(new int[]{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}),
|
||||
LOW(new int[]{4, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1}),
|
||||
MEDIUM(new int[]{6, 4, 3, 2, 2, 1, 1, 1, 1, 1, 1}),
|
||||
HIGH(new int[]{8, 6, 4, 2, 2, 2, 2, 1, 1, 1, 1}),
|
||||
EXTREME(new int[]{16, 8, 4, 2, 2, 2, 2, 1, 1, 1, 1}),
|
||||
WHAT(new int[]{64, 16, 8, 4, 2, 2, 2, 2, 1, 1, 1}),
|
||||
WHY(new int[]{120, 16, 8, 4, 2, 2, 2, 2, 1, 1, 1});
|
||||
|
||||
/** represents how many LODs can be rendered in a single vertical slice */
|
||||
public final int[] maxVerticalData;
|
||||
|
||||
|
||||
|
||||
EVerticalQuality(int[] maxVerticalData) { this.maxVerticalData = maxVerticalData; }
|
||||
|
||||
|
||||
|
||||
public int calculateMaxVerticalData(byte dataDetail)
|
||||
{
|
||||
// for detail levels lower than what the enum defines, use the lowest quality item
|
||||
int index = MathUtil.clamp(0, dataDetail, this.maxVerticalData.length - 1);
|
||||
return this.maxVerticalData[index];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config.quickOptions;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.config.DisallowSelectingViaConfigGui;
|
||||
|
||||
/**
|
||||
* CUSTOM, <br><br>
|
||||
*
|
||||
* MINIMUM, <br>
|
||||
* LOW, <br>
|
||||
* MEDIUM, <br>
|
||||
* HIGH, <br>
|
||||
* EXTREME, <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EQualityPreset
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
@DisallowSelectingViaConfigGui
|
||||
CUSTOM,
|
||||
|
||||
MINIMUM,
|
||||
LOW,
|
||||
MEDIUM,
|
||||
HIGH,
|
||||
EXTREME;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.config.quickOptions;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.config.DisallowSelectingViaConfigGui;
|
||||
|
||||
/**
|
||||
* CUSTOM, <br><br>
|
||||
*
|
||||
* MINIMAL_IMPACT, <br>
|
||||
* LOW_IMPACT, <br>
|
||||
* BALANCED, <br>
|
||||
* AGGRESSIVE, <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EThreadPreset
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
@DisallowSelectingViaConfigGui
|
||||
CUSTOM,
|
||||
|
||||
MINIMAL_IMPACT,
|
||||
LOW_IMPACT,
|
||||
BALANCED,
|
||||
AGGRESSIVE,
|
||||
|
||||
// temporarily removed due to stability concerns
|
||||
I_PAID_FOR_THE_WHOLE_CPU,
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* OFF, <br>
|
||||
* SHOW_DETAIL, <br>
|
||||
* SHOW_GENMODE, <br>
|
||||
* SHOW_OVERLAPPING_QUADS, <br>
|
||||
* SHOW_RENDER_SOURCE_FLAG, <br>
|
||||
*
|
||||
* @author Leetom
|
||||
* @author James Seibel
|
||||
* @version 2023-6-7
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EDebugRendering
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
/** LODs are rendered normally */
|
||||
OFF,
|
||||
|
||||
/** LOD colors are based on their detail */
|
||||
SHOW_DETAIL,
|
||||
|
||||
@Deprecated
|
||||
/** LOD colors are based on their gen mode. */
|
||||
SHOW_GENMODE,
|
||||
|
||||
/** Block Materials are often used by Iris shaders to determine how LODs should be rendered */
|
||||
SHOW_BLOCK_MATERIAL,
|
||||
|
||||
/** Only draw overlapping LOD quads. */
|
||||
SHOW_OVERLAPPING_QUADS,
|
||||
|
||||
/** LOD colors are based on renderSource flags. */
|
||||
SHOW_RENDER_SOURCE_FLAG;
|
||||
|
||||
|
||||
public static EDebugRendering next(EDebugRendering type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case OFF:
|
||||
return SHOW_DETAIL;
|
||||
case SHOW_DETAIL:
|
||||
return SHOW_BLOCK_MATERIAL;
|
||||
case SHOW_BLOCK_MATERIAL:
|
||||
return SHOW_OVERLAPPING_QUADS;
|
||||
case SHOW_OVERLAPPING_QUADS:
|
||||
return SHOW_RENDER_SOURCE_FLAG;
|
||||
default:
|
||||
return OFF;
|
||||
}
|
||||
}
|
||||
|
||||
public static EDebugRendering previous(EDebugRendering type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case OFF:
|
||||
return SHOW_RENDER_SOURCE_FLAG;
|
||||
case SHOW_RENDER_SOURCE_FLAG:
|
||||
return SHOW_OVERLAPPING_QUADS;
|
||||
case SHOW_OVERLAPPING_QUADS:
|
||||
return SHOW_GENMODE;
|
||||
case SHOW_GENMODE:
|
||||
return SHOW_DETAIL;
|
||||
default:
|
||||
return OFF;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* OPAQUE_AND_TRANSPARENT, <br>
|
||||
* OPAQUE, <br>
|
||||
* TRANSPARENT, <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-1-30
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public enum EDhApiRenderPass
|
||||
{
|
||||
OPAQUE_AND_TRANSPARENT,
|
||||
OPAQUE,
|
||||
TRANSPARENT,
|
||||
}
|
||||
@@ -1,42 +1,47 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod (formerly the LOD Mod),
|
||||
* licensed under the GNU GPL v3 License.
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2022 James Seibel
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.lod.core.enums.rendering;
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* USE_DEFAULT_FOG_COLOR, <br>
|
||||
* USE_SKY_COLOR, <br>
|
||||
*
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 11-27-2021
|
||||
* @version 2022-6-9
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum FogColorMode
|
||||
public enum EFogColorMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items: up the API minor version
|
||||
// when removing items: up the API major version
|
||||
|
||||
/** Fog uses Minecraft's fog color. */
|
||||
USE_WORLD_FOG_COLOR,
|
||||
|
||||
/**
|
||||
* Replicates the effect of the clear sky mod.
|
||||
* Making the fog blend in with the sky better
|
||||
* For it to look good you need one of the following mods:
|
||||
* https://www.curseforge.com/minecraft/mc-mods/clear-skies
|
||||
* https://www.curseforge.com/minecraft/mc-mods/clear-skies-forge-port
|
||||
* For it to look good you need one of those mods
|
||||
*/
|
||||
USE_SKY_COLOR,
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* NEAR, <br>
|
||||
* FAR, <br>
|
||||
* NEAR_AND_FAR <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-2
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EFogDistance
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
NEAR,
|
||||
FAR,
|
||||
NEAR_AND_FAR
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* USE_OPTIFINE_FOG_SETTING, <br>
|
||||
* FOG_ENABLED, <br>
|
||||
* FOG_DISABLED <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-2
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EFogDrawMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
/**
|
||||
* Use whatever Fog setting optifine is using.
|
||||
* If optifine isn't installed this defaults to FOG_ENABLED.
|
||||
*/
|
||||
USE_OPTIFINE_SETTING,
|
||||
|
||||
FOG_ENABLED,
|
||||
FOG_DISABLED;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* LINEAR, <br>
|
||||
* EXPONENTIAL, <br>
|
||||
* EXPONENTIAL_SQUARED <br>
|
||||
*
|
||||
* @author Leetom
|
||||
* @version 2022-6-30
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EFogFalloff
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
LINEAR,
|
||||
EXPONENTIAL,
|
||||
EXPONENTIAL_SQUARED,
|
||||
// TEXTURE_BASED, // TODO: Impl this
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* BASIC <br>
|
||||
* IGNORE_HEIGHT <br>
|
||||
* ADDITION <br>
|
||||
* MAX <br>
|
||||
* MULTIPLY <br>
|
||||
* INVERSE_MULTIPLY <br>
|
||||
* LIMITED_ADDITION <br>
|
||||
* MULTIPLY_ADDITION <br>
|
||||
* INVERSE_MULTIPLY_ADDITION <br>
|
||||
* AVERAGE <br>
|
||||
*
|
||||
* @author Leetom
|
||||
* @version 2022-4-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EHeightFogMixMode
|
||||
{
|
||||
BASIC,
|
||||
IGNORE_HEIGHT,
|
||||
ADDITION,
|
||||
MAX,
|
||||
MULTIPLY,
|
||||
INVERSE_MULTIPLY,
|
||||
LIMITED_ADDITION,
|
||||
MULTIPLY_ADDITION,
|
||||
INVERSE_MULTIPLY_ADDITION,
|
||||
AVERAGE,
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* ABOVE_CAMERA, <br>
|
||||
* BELOW_CAMERA, <br>
|
||||
* ABOVE_AND_BELOW_CAMERA, <br>
|
||||
* ABOVE_SET_HEIGHT, <br>
|
||||
* BELOW_SET_HEIGHT, <br>
|
||||
* ABOVE_AND_BELOW_SET_HEIGHT, <br>
|
||||
*
|
||||
* @author Leetom
|
||||
* @version 6-30-2022
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EHeightFogMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
ABOVE_CAMERA(true, true, false),
|
||||
BELOW_CAMERA(true, false, true),
|
||||
ABOVE_AND_BELOW_CAMERA(true, true, true),
|
||||
ABOVE_SET_HEIGHT(false, true, false),
|
||||
BELOW_SET_HEIGHT(false, false, true),
|
||||
ABOVE_AND_BELOW_SET_HEIGHT(false, true, true);
|
||||
|
||||
public final boolean basedOnCamera;
|
||||
public final boolean above;
|
||||
public final boolean below;
|
||||
|
||||
EHeightFogMode(boolean basedOnCamera, boolean above, boolean below)
|
||||
{
|
||||
this.basedOnCamera = basedOnCamera;
|
||||
this.above = above;
|
||||
this.below = below;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* Default <br>
|
||||
* Debug <br>
|
||||
* Disabled <br>
|
||||
*
|
||||
* @version 2022-6-2
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ERendererMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
DEFAULT,
|
||||
DEBUG,
|
||||
DISABLED;
|
||||
|
||||
|
||||
/** Used by the config GUI to cycle through the available rendering options */
|
||||
public static ERendererMode next(ERendererMode type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DEFAULT:
|
||||
return DEBUG;
|
||||
case DEBUG:
|
||||
return DISABLED;
|
||||
default:
|
||||
return DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
/** Used by the config GUI to cycle through the available rendering options */
|
||||
public static ERendererMode previous(ERendererMode type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DEFAULT:
|
||||
return DISABLED;
|
||||
case DEBUG:
|
||||
return DEFAULT;
|
||||
default:
|
||||
return DEBUG;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.rendering;
|
||||
|
||||
/**
|
||||
* DISABLED, <br>
|
||||
* FAKE, <br>
|
||||
* COMPLETE, <br>
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum ETransparency
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
DISABLED(false, false),
|
||||
FAKE(true, true),
|
||||
COMPLETE(true, false);
|
||||
|
||||
public final boolean transparencyEnabled;
|
||||
public final boolean fakeTransparencyEnabled;
|
||||
|
||||
ETransparency(boolean transparencyEnabled, boolean fakeTransparencyEnabled)
|
||||
{
|
||||
this.transparencyEnabled = transparencyEnabled;
|
||||
this.fakeTransparencyEnabled = fakeTransparencyEnabled;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
||||
|
||||
/**
|
||||
* PRE_EXISTING_ONLY <br>
|
||||
* SURFACE <br>
|
||||
* FEATURES <br><br>
|
||||
*
|
||||
* In order of fastest to slowest.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @author Leonardo Amato
|
||||
* @version 2022-12-10
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EDhApiDistantGeneratorMode
|
||||
{
|
||||
// Reminder:
|
||||
// when adding items up the API minor version
|
||||
// when removing items up the API major version
|
||||
|
||||
|
||||
/** Don't generate any new terrain, just generate LODs for already generated chunks. */
|
||||
PRE_EXISTING_ONLY((byte) 1),
|
||||
|
||||
/*
|
||||
* Not currently implemented <br><br>
|
||||
*
|
||||
* Only generate the biomes and use biome
|
||||
* grass/foliage color, water color, or ice color
|
||||
* to generate the color. <br>
|
||||
* Doesn't generate height, everything is shown at sea level.
|
||||
*/
|
||||
//BIOME_ONLY((byte) 2),
|
||||
|
||||
/*
|
||||
* Not currently implemented <br><br>
|
||||
*
|
||||
* Same as BIOME_ONLY, except instead
|
||||
* of always using sea level as the LOD height
|
||||
* different biome types (mountain, ocean, forest, etc.)
|
||||
* use predetermined heights to simulate having height data.
|
||||
*/
|
||||
//BIOME_ONLY_SIMULATE_HEIGHT((byte) 3),
|
||||
|
||||
/**
|
||||
* Generate the world surface,
|
||||
* this does NOT include caves, trees,
|
||||
* or structures.
|
||||
*/
|
||||
SURFACE((byte) 4),
|
||||
|
||||
/**
|
||||
* Generate including structures.
|
||||
* NOTE: This may cause world generation bugs or instability,
|
||||
* since some features can cause concurrentModification exceptions.
|
||||
*/
|
||||
FEATURES((byte) 5);
|
||||
|
||||
|
||||
|
||||
/** The higher the number the more complete the generation is. */
|
||||
public final byte complexity;
|
||||
|
||||
|
||||
EDhApiDistantGeneratorMode(byte complexity) { this.complexity = complexity; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
||||
|
||||
/**
|
||||
* SERVER_LEVEL, <br>
|
||||
* CLIENT_LEVEL, <br>
|
||||
* UNKNOWN <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-7-13
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EDhApiLevelType
|
||||
{
|
||||
SERVER_LEVEL,
|
||||
CLIENT_LEVEL,
|
||||
UNKNOWN
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
||||
|
||||
/**
|
||||
* EMPTY, <br>
|
||||
* STRUCTURE_START, <br>
|
||||
* STRUCTURE_REFERENCE, <br>
|
||||
* BIOMES, <br>
|
||||
* NOISE, <br>
|
||||
* SURFACE, <br>
|
||||
* CARVERS, <br>
|
||||
* LIQUID_CARVERS, <br>
|
||||
* FEATURES, <br>
|
||||
* LIGHT, <br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-4-20
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public enum EDhApiWorldGenerationStep
|
||||
{
|
||||
EMPTY(0, "empty"),
|
||||
STRUCTURE_START(1, "structure_start"),
|
||||
STRUCTURE_REFERENCE(2, "structure_reference"),
|
||||
BIOMES(3, "biomes"),
|
||||
NOISE(4, "noise"),
|
||||
SURFACE(5, "surface"),
|
||||
CARVERS(6, "carvers"),
|
||||
LIQUID_CARVERS(7, "liquid_carvers"),
|
||||
FEATURES(8, "features"),
|
||||
LIGHT(9, "light");
|
||||
|
||||
|
||||
|
||||
/** used when serializing this enum. */
|
||||
public final String name;
|
||||
public final byte value;
|
||||
|
||||
|
||||
EDhApiWorldGenerationStep(int value, String name)
|
||||
{
|
||||
this.value = (byte) value;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
//=========//
|
||||
// parsing //
|
||||
//=========//
|
||||
|
||||
/** @return null if the value doesn't correspond to a {@link EDhApiWorldGenerationStep}. */
|
||||
public static EDhApiWorldGenerationStep fromValue(int value)
|
||||
{
|
||||
for (EDhApiWorldGenerationStep genStep : EDhApiWorldGenerationStep.values())
|
||||
{
|
||||
if (genStep.value == value)
|
||||
{
|
||||
return genStep;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** @return null if the value doesn't correspond to a {@link EDhApiWorldGenerationStep}. */
|
||||
public static EDhApiWorldGenerationStep fromName(String name)
|
||||
{
|
||||
for (EDhApiWorldGenerationStep genStep : EDhApiWorldGenerationStep.values())
|
||||
{
|
||||
if (genStep.name.equals(name))
|
||||
{
|
||||
return genStep;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.enums.worldGeneration;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* VANILLA_CHUNKS, <br>
|
||||
* API_CHUNKS <br>
|
||||
*
|
||||
* @author Builderb0y, James Seibel
|
||||
* @version 2023-12-21
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public enum EDhApiWorldGeneratorReturnType
|
||||
{
|
||||
/**
|
||||
* when this constant is returned by {@link IDhApiWorldGenerator#getReturnType()},
|
||||
* {@link IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
||||
* will be used when generating terrain.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
VANILLA_CHUNKS,
|
||||
|
||||
/**
|
||||
* when this constant is returned by {@link IDhApiWorldGenerator#getReturnType()},
|
||||
* {@link IDhApiWorldGenerator#generateApiChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
||||
* will be used when generating terrain.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
API_CHUNKS;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces;
|
||||
|
||||
/**
|
||||
* Implemented by wrappers so developers can
|
||||
* access the underlying Minecraft object(s).
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-17
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiUnsafeWrapper
|
||||
{
|
||||
|
||||
/**
|
||||
* Returns the Minecraft object this wrapper contains. <br>
|
||||
* <strong>Warning</strong>: This object will be Minecraft
|
||||
* version dependent and may change without notice. <br> <br>
|
||||
*
|
||||
* In order to cast this object to something usable, you may want
|
||||
* to use <code>obj.getClass()</code> when in your IDE
|
||||
* in order to determine what object this method returns for
|
||||
* the specific version of Minecraft you are developing for.
|
||||
*/
|
||||
Object getWrappedMcObject();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.block;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
|
||||
|
||||
/**
|
||||
* A Minecraft version independent way of handling Biomes.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 3-5-2022
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiBiomeWrapper extends IDhApiUnsafeWrapper
|
||||
{
|
||||
String getName();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.block;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
|
||||
|
||||
/**
|
||||
* A Minecraft version independent way of handling Blocks.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-11
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiBlockStateWrapper extends IDhApiUnsafeWrapper
|
||||
{
|
||||
boolean isAir();
|
||||
|
||||
boolean isSolid();
|
||||
boolean isLiquid();
|
||||
|
||||
// TODO:
|
||||
// boolean hasNoCollision();
|
||||
// boolean noFaceIsFullFace();
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.config.both.IDhApiWorldGenerationConfig;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.client.*;
|
||||
|
||||
/**
|
||||
* This interfaces holds all config groups
|
||||
* the API has access to for easy access.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiConfig
|
||||
{
|
||||
IDhApiGraphicsConfig graphics();
|
||||
IDhApiWorldGenerationConfig worldGenerator();
|
||||
IDhApiMultiplayerConfig multiplayer();
|
||||
IDhApiMultiThreadingConfig multiThreading();
|
||||
IDhApiGpuBuffersConfig gpuBuffers();
|
||||
// note: DON'T add the Auto Updater to this API. We only want the user's to have the ability to control when things are downloaded to their machines.
|
||||
//IDhApiLoggingConfig logging(); // TODO implement
|
||||
IDhApiDebuggingConfig debugging();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config;
|
||||
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable;
|
||||
|
||||
/**
|
||||
* This interface is just used to organize API config groups so
|
||||
* they can be more easily handled together.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 9-15-2022
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiConfigGroup extends IBindable
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* An interface for Distant Horizon's Config.
|
||||
*
|
||||
* @param <T> The data type of this config.
|
||||
* @author James Seibel
|
||||
* @version 2023-12-7
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiConfigValue<T>
|
||||
{
|
||||
|
||||
/**
|
||||
* Returns the active value for this config. <br>
|
||||
* Returns the True value if either the config cannot be overridden by
|
||||
* the API or if it hasn't been set by the API.
|
||||
*/
|
||||
T getValue();
|
||||
/**
|
||||
* Returns the value held by this config. <br>
|
||||
* This is the value stored in the config file.
|
||||
*/
|
||||
T getTrueValue();
|
||||
/**
|
||||
* Returns the value of the config if it was set by the API.
|
||||
* Returns null if the config hasn't been set by the API.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
T getApiValue();
|
||||
|
||||
/**
|
||||
* Sets the config's value. <br>
|
||||
* If the newValue is set to null then the config
|
||||
* will revert to using the True Value
|
||||
* (IE the value visible in the config menu).<br>
|
||||
* If the config cannot be set via the API this method will return false. <br><br>
|
||||
*
|
||||
* @return true if the value was set, false otherwise.
|
||||
*/
|
||||
boolean setValue(T newValue);
|
||||
|
||||
/**
|
||||
* Un-sets the config's API value. <br>
|
||||
* After this method is called this config will
|
||||
* use the value set in the config menu.
|
||||
*
|
||||
* @return true if the value was set, false otherwise.
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
boolean clearValue();
|
||||
|
||||
/** @return true if this config can be set via the API, false otherwise. */
|
||||
boolean getCanBeOverrodeByApi();
|
||||
|
||||
/** Returns the default value for this config. */
|
||||
T getDefaultValue();
|
||||
/** Returns the max value for this config, null if there is no max. */
|
||||
T getMaxValue();
|
||||
/** Returns the min value for this config, null if there is no min. */
|
||||
T getMinValue();
|
||||
|
||||
/** Adds a {@link Consumer} that will be called whenever the config changes to a new value. */
|
||||
void addChangeListener(Consumer<T> onValueChangeFunc);
|
||||
//void removeListener(Consumer<T> onValueChangeFunc); // not currently implemented
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.both;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.config.ELightGenerationMode;
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' world generation configuration. <br><br>
|
||||
*
|
||||
* Note: Chunks generated via DH's world generator are NOT saved in Minecraft's vanilla save system.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-15
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiWorldGenerationConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
/**
|
||||
* Defines whether LOD chunks will be generated
|
||||
* outside Minecraft's vanilla render distance.
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> enableDistantWorldGeneration();
|
||||
|
||||
/** Defines to what level LOD chunks will be generated. */
|
||||
IDhApiConfigValue<EDhApiDistantGeneratorMode> distantGeneratorMode();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogColorMode;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogDistance;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogDrawMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' fog configuration. <br><br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-6
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiAmbientOcclusionConfig extends IDhApiConfigGroup
|
||||
{
|
||||
/** Determines if Ambient Occlusion is rendered */
|
||||
IDhApiConfigValue<Boolean> enabled();
|
||||
|
||||
/**
|
||||
* Determines how many points in space are sampled for the occlusion test.
|
||||
* Higher numbers will improve quality and reduce banding, but will increase GPU load.
|
||||
*/
|
||||
IDhApiConfigValue<Integer> sampleCount();
|
||||
|
||||
/** Determines the radius Screen Space Ambient Occlusion is applied, measured in blocks. */
|
||||
IDhApiConfigValue<Double> radius();
|
||||
|
||||
/** Determines how dark the Screen Space Ambient Occlusion effect will be. */
|
||||
IDhApiConfigValue<Double> strength();
|
||||
|
||||
/** Increasing the value can reduce banding at the cost of reducing the strength of the effect. */
|
||||
IDhApiConfigValue<Double> bias();
|
||||
|
||||
/**
|
||||
* Determines how dark the occlusion shadows can be. <br>
|
||||
* 0 = totally black at the corners <br>
|
||||
* 1 = no shadow
|
||||
*/
|
||||
IDhApiConfigValue<Double> minLight();
|
||||
|
||||
/**
|
||||
* The radius, measured in pixels, that blurring is calculated. <br>
|
||||
* Higher numbers will reduce banding at the cost of GPU performance.
|
||||
*/
|
||||
IDhApiConfigValue<Integer> blurRadius();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EDebugRendering;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' debug configuration.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-15
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiDebuggingConfig extends IDhApiConfigGroup
|
||||
{
|
||||
/** Can be used to debug the standard fake chunk rendering. */
|
||||
IDhApiConfigValue<EDebugRendering> debugRendering();
|
||||
|
||||
/** If enabled debug keybindings can be used. */
|
||||
IDhApiConfigValue<Boolean> debugKeybindings();
|
||||
|
||||
/** If enabled all LODs will be rendered as wireframe. */
|
||||
IDhApiConfigValue<Boolean> renderWireframe();
|
||||
|
||||
/** If enabled Distant Horizons will attempt to disable Minecraft's block rendering so only LODs will render. */
|
||||
IDhApiConfigValue<Boolean> lodOnlyMode();
|
||||
|
||||
/** If enabled Distant Horizons' debug wireframe rendering will be enabled. */
|
||||
IDhApiConfigValue<Boolean> debugWireframeRendering();
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogFalloff;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.*;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' fog configuration. <br><br>
|
||||
*
|
||||
* Note: unless an option explicitly states that it modifies
|
||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
||||
* these settings will only affect Distant horizons' fog.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiFarFogConfig extends IDhApiConfigGroup
|
||||
{
|
||||
/**
|
||||
* Defines where the fog starts as a percent of the
|
||||
* fake chunks render distance radius. <br>
|
||||
* Can be greater than the fog end distance to invert the fog direction. <br> <br>
|
||||
*
|
||||
* 0.0 = fog starts at the camera <br>
|
||||
* 1.0 = fog starts at the edge of the fake chunk render distance <br>
|
||||
*/
|
||||
IDhApiConfigValue<Double> farFogStartDistance();
|
||||
|
||||
/**
|
||||
* Defines where the fog ends as a percent of the radius
|
||||
* of the fake chunks render distance. <br>
|
||||
* Can be less than the fog start distance to invert the fog direction. <br> <br>
|
||||
*
|
||||
* 0.0 = fog ends at the camera <br>
|
||||
* 1.0 = fog ends at the edge of the fake chunk render distance <br>
|
||||
*/
|
||||
IDhApiConfigValue<Double> farFogEndDistance();
|
||||
|
||||
/** Defines how opaque the fog is at its thinnest point. */
|
||||
IDhApiConfigValue<Double> farFogMinThickness();
|
||||
|
||||
/** Defines how opaque the fog is at its thickest point. */
|
||||
IDhApiConfigValue<Double> farFogMaxThickness();
|
||||
|
||||
/** Defines how the fog changes in thickness. */
|
||||
IDhApiConfigValue<EFogFalloff> farFogFalloff();
|
||||
|
||||
/** Defines the fog density. */
|
||||
IDhApiConfigValue<Double> farFogDensity();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogColorMode;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogDistance;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogDrawMode;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.*;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' fog configuration. <br><br>
|
||||
*
|
||||
* Note: unless an option explicitly states that it modifies
|
||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
||||
* these settings will only affect Distant horizons' fog.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiFogConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
//===============//
|
||||
// inner configs //
|
||||
//===============//
|
||||
|
||||
/**
|
||||
* The advanced fog config.
|
||||
*/
|
||||
IDhApiFarFogConfig farFog();
|
||||
|
||||
/**
|
||||
* The height fog config.
|
||||
*/
|
||||
IDhApiHeightFogConfig heightFog();
|
||||
|
||||
//====================//
|
||||
// basic fog settings //
|
||||
//====================//
|
||||
|
||||
/** Defines at what distance fog is rendered on fake chunks. */
|
||||
IDhApiConfigValue<EFogDistance> distance();
|
||||
|
||||
/** Should be used to enable/disable fog rendering. */
|
||||
IDhApiConfigValue<EFogDrawMode> drawMode();
|
||||
|
||||
/** Can be used to enable support with mods that change vanilla MC's fog color. */
|
||||
IDhApiConfigValue<EFogColorMode> color();
|
||||
|
||||
/**
|
||||
* If enabled attempts to disable vanilla MC's fog on real chunks. <br>
|
||||
* May not play nice with other fog editing mods.
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> disableVanillaFog();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.config.EGpuUploadMethod;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' OpenGL buffer configuration.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiGpuBuffersConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
/** Defines how geometry data is uploaded to the GPU. */
|
||||
IDhApiConfigValue<EGpuUploadMethod> gpuUploadMethod();
|
||||
|
||||
/**
|
||||
* Defines how long we should wait after uploading one
|
||||
* Megabyte of geometry data to the GPU before uploading
|
||||
* the next Megabyte of data. <br>
|
||||
* This can be set to a non-zero number to reduce stuttering caused by
|
||||
* uploading buffers to the GPU.
|
||||
*/
|
||||
IDhApiConfigValue<Integer> gpuUploadPerMegabyteInMilliseconds();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.config.*;
|
||||
import com.seibel.distanthorizons.api.enums.config.*;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.ERendererMode;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.ETransparency;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' graphics/rendering configuration.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiGraphicsConfig extends IDhApiConfigGroup
|
||||
{
|
||||
//===============//
|
||||
// inner configs //
|
||||
//===============//
|
||||
|
||||
IDhApiFogConfig fog();
|
||||
IDhApiAmbientOcclusionConfig ambientOcclusion();
|
||||
IDhApiNoiseTextureConfig noiseTexture();
|
||||
|
||||
|
||||
|
||||
//========================//
|
||||
// basic graphic settings //
|
||||
//========================//
|
||||
|
||||
/** The distance is the radius measured in chunks. */
|
||||
IDhApiConfigValue<Integer> chunkRenderDistance();
|
||||
|
||||
/**
|
||||
* Simplified version of {@link IDhApiGraphicsConfig#renderingMode()}
|
||||
* that only enables/disables the fake chunk rendering. <br><br>
|
||||
*
|
||||
* Changing this config also changes {@link IDhApiGraphicsConfig#renderingMode()}'s value.
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> renderingEnabled();
|
||||
|
||||
/**
|
||||
* Can be used to enable/disable fake chunk rendering or enable the debug renderer. <br><br>
|
||||
*
|
||||
* The debug renderer is used to confirm rendering is working at and will draw
|
||||
* a single multicolor rhombus on the screen in skybox space (AKA behind MC's rendering). <br><br>
|
||||
*
|
||||
* Changing this config also changes {@link IDhApiGraphicsConfig#renderingEnabled()}'s value.
|
||||
*/
|
||||
IDhApiConfigValue<ERendererMode> renderingMode();
|
||||
|
||||
|
||||
|
||||
//==================//
|
||||
// graphic settings //
|
||||
//==================//
|
||||
|
||||
/** Defines how detailed fake chunks are in the horizontal direction */
|
||||
IDhApiConfigValue<EMaxHorizontalResolution> maxHorizontalResolution();
|
||||
|
||||
/** Defines how detailed fake chunks are in the vertical direction */
|
||||
IDhApiConfigValue<EVerticalQuality> verticalQuality();
|
||||
|
||||
/** Modifies the quadratic function fake chunks use for horizontal quality drop-off. */
|
||||
IDhApiConfigValue<EHorizontalQuality> horizontalQuality();
|
||||
|
||||
IDhApiConfigValue<ETransparency> transparency();
|
||||
|
||||
/** Defines what blocks won't be rendered as LODs. */
|
||||
IDhApiConfigValue<EBlocksToAvoid> blocksToAvoid();
|
||||
|
||||
/**
|
||||
* Defines if the color of avoided blocks will color the block below them. <Br>
|
||||
* (IE: if flowers are avoided, should they color the grass below them?)
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> tintWithAvoidedBlocks();
|
||||
|
||||
/*
|
||||
* The same as vanilla Minecraft's biome blending. <br><br>
|
||||
*
|
||||
* 0 = blending of 1x1 aka off <br>
|
||||
* 1 = blending of 3x3 <br>
|
||||
* 2 = blending of 5x5 <br>
|
||||
* ... <br>
|
||||
*/
|
||||
// IDhApiConfigValue<Integer> getBiomeBlending();
|
||||
|
||||
|
||||
|
||||
//===========================//
|
||||
// advanced graphic settings //
|
||||
//===========================//
|
||||
|
||||
/**
|
||||
* Sets the distance used by the near clip plane to reduce
|
||||
* overdraw. <br>
|
||||
* Disabling this reduces holes in the world due to the near clip plane
|
||||
* being too close to the camera and the terrain not being covered by vanilla terrain.
|
||||
*
|
||||
* @deprecated Use {@link IDhApiGraphicsConfig#overdrawPreventionRadius()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
IDhApiConfigValue<EOverdrawPrevention> overdrawPrevention();
|
||||
|
||||
/**
|
||||
* Sets the radius used by the near clip shader to reduce
|
||||
* overdraw. <br>
|
||||
* Measured in percentages of the render distance, IE: <br>
|
||||
* 0.5 = 50% vanilla render distance <br>
|
||||
* 0.1 = 10% vanilla render distance <br>
|
||||
* <br>
|
||||
* Setting this to 0 will reduce/prevent holes in the world due to clipping to close to the camera
|
||||
* but may cause overdraw issues with transparent or non-full blocks.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
IDhApiConfigValue<Double> overdrawPreventionRadius();
|
||||
|
||||
/**
|
||||
* Modifies how bright fake chunks are. <br>
|
||||
* This is done when generating the vertex data and is applied before any shaders.
|
||||
*/
|
||||
IDhApiConfigValue<Double> brightnessMultiplier();
|
||||
|
||||
/**
|
||||
* Modifies how saturated fake chunks are. <br>
|
||||
* This is done when generating the vertex data and is applied before any shaders.
|
||||
*/
|
||||
IDhApiConfigValue<Double> saturationMultiplier();
|
||||
|
||||
/** Defines if Distant Horizons should attempt to cull fake chunk cave geometry. */
|
||||
IDhApiConfigValue<Boolean> caveCullingEnabled();
|
||||
|
||||
/** Defines what height cave culling should be used below if enabled. */
|
||||
IDhApiConfigValue<Integer> caveCullingHeight();
|
||||
|
||||
/** This ratio is relative to Earth's real world curvature. */
|
||||
IDhApiConfigValue<Integer> earthCurvatureRatio();
|
||||
|
||||
/** If enabled vanilla chunk rendering is disabled and only fake chunks are rendered. */
|
||||
IDhApiConfigValue<Boolean> lodOnlyMode();
|
||||
|
||||
/**
|
||||
* Setting this to a non-zero number will modify vanilla Minecraft's LOD Bias,
|
||||
* increasing how quickly its textures fade away.
|
||||
*/
|
||||
IDhApiConfigValue<Double> lodBias();
|
||||
|
||||
/**
|
||||
* Determines how LODs should be shaded.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
IDhApiConfigValue<ELodShading> lodShading();
|
||||
|
||||
/**
|
||||
* Sets whether LODs outside the view frustum culling will
|
||||
* be culled. <br><br>
|
||||
*
|
||||
* Disabling this will prevent LODs not rendering on the corner
|
||||
* of the users vision and may fix issues if LODs appear to
|
||||
* start/stop rendering incorrectly based on the camera direction,
|
||||
* but will also reduce FPS.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
* @see IDhApiGraphicsConfig#disableShadowFrustumCulling()
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> disableFrustumCulling();
|
||||
|
||||
/**
|
||||
* Identical to the other frustum culling option, except that it is
|
||||
* only used when a shader mod is present using the DH API
|
||||
* and the shadow pass is being rendered. <br><br>
|
||||
*
|
||||
* Disable this if shadows render incorrectly.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
* @see IDhApiGraphicsConfig#disableFrustumCulling()
|
||||
*/
|
||||
IDhApiConfigValue<Boolean> disableShadowFrustumCulling();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EFogFalloff;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EHeightFogMixMode;
|
||||
import com.seibel.distanthorizons.api.enums.rendering.EHeightFogMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' fog configuration. <br><br>
|
||||
*
|
||||
* Note: unless an option explicitly states that it modifies
|
||||
* Minecraft's vanilla rendering (like DisableVanillaFog)
|
||||
* these settings will only affect Distant horizons' fog.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiHeightFogConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
/** Defines how the height fog mixes. */
|
||||
IDhApiConfigValue<EHeightFogMixMode> heightFogMixMode();
|
||||
|
||||
/** Defines how the height fog is drawn relative to the camera or world. */
|
||||
IDhApiConfigValue<EHeightFogMode> heightFogMode();
|
||||
|
||||
/**
|
||||
* Defines the height fog's base height if {@link IDhApiHeightFogConfig#heightFogMode()}
|
||||
* is set to use a specific height.
|
||||
*/
|
||||
IDhApiConfigValue<Double> heightFogBaseHeight();
|
||||
|
||||
/** Defines the height fog's starting height as a percent of the world height. */
|
||||
IDhApiConfigValue<Double> heightFogStartingHeightPercent();
|
||||
|
||||
/** Defines the height fog's ending height as a percent of the world height. */
|
||||
IDhApiConfigValue<Double> heightFogEndingHeightPercent();
|
||||
|
||||
/** Defines how opaque the height fog is at its thinnest point. */
|
||||
IDhApiConfigValue<Double> heightFogMinThickness();
|
||||
|
||||
/** Defines how opaque the height fog is at its thickest point. */
|
||||
IDhApiConfigValue<Double> heightFogMaxThickness();
|
||||
|
||||
/** Defines how the height fog changes in thickness. */
|
||||
IDhApiConfigValue<EFogFalloff> heightFogFalloff();
|
||||
|
||||
/** Defines the height fog's density. */
|
||||
IDhApiConfigValue<Double> heightFogDensity();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' logging configuration. <br><br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiLoggingConfig extends IDhApiConfigGroup
|
||||
{
|
||||
// TODO implement
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' threading configuration.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-10-29
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiMultiThreadingConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
/**
|
||||
* Defines how many world generator threads are used to generate
|
||||
* terrain outside Minecraft's vanilla render distance. <br>
|
||||
* <br>
|
||||
* If the number of threads is less than 1 it will be treated as a percentage
|
||||
* representing how often the single thread will actively generate terrain.
|
||||
*/
|
||||
IDhApiConfigValue<Integer> worldGeneratorThreads();
|
||||
|
||||
/** Defines how many file handler threads are used. */
|
||||
IDhApiConfigValue<Integer> fileHandlerThreads();
|
||||
|
||||
/**
|
||||
* Defines how many threads are used
|
||||
* to build LODs. <br><br>
|
||||
*
|
||||
* This includes: <br>
|
||||
* - lighting <br>
|
||||
* - Chunk -> LOD conversion <br>
|
||||
* - Buffer generation <br>
|
||||
*/
|
||||
IDhApiConfigValue<Integer> lodBuilderThreads();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
import com.seibel.distanthorizons.api.enums.config.EServerFolderNameMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
|
||||
/**
|
||||
* Distant Horizons' client-side multiplayer configuration.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiMultiplayerConfig extends IDhApiConfigGroup
|
||||
{
|
||||
|
||||
/**
|
||||
* Defines how multiplayer server folders are named. <br>
|
||||
* Note: Changing this while connected to a multiplayer world will cause undefined behavior!
|
||||
*/
|
||||
IDhApiConfigValue<EServerFolderNameMode> folderSavingMode();
|
||||
|
||||
/**
|
||||
* Defines the necessary similarity (as a percent) that two potential levels
|
||||
* need in order to be considered the same. <br> <br>
|
||||
*
|
||||
* Setting this to zero causes every level of a specific dimension type to be considered
|
||||
* the same level. <br>
|
||||
* Setting this to a non-zero value allows for usage in servers that user Multiverse
|
||||
* or similar mods.
|
||||
*/
|
||||
IDhApiConfigValue<Double> multiverseSimilarityRequirement();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.config.client;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
|
||||
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
|
||||
|
||||
/**
|
||||
* Distant Horizons' noise texture configuration. <br><br>
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-6-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiNoiseTextureConfig extends IDhApiConfigGroup
|
||||
{
|
||||
/** If enabled a noise texture will be rendered on the LODs. */
|
||||
IDhApiConfigValue<Boolean> noiseEnabled();
|
||||
|
||||
/** Defines how many steps of noise should be applied. */
|
||||
IDhApiConfigValue<Integer> noiseSteps();
|
||||
|
||||
/** Defines how intense the noise will be. */
|
||||
IDhApiConfigValue<Double> noiseIntensity();
|
||||
|
||||
/**
|
||||
* Defines how far should the noise texture render before it fades away. (in blocks) <br>
|
||||
* Set to 0 to disable noise from fading away
|
||||
*/
|
||||
IDhApiConfigValue<Integer> noiseDropoff();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.data;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.worldGenerator.IDhApiWorldGenerator;
|
||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
||||
import com.seibel.distanthorizons.api.objects.data.DhApiRaycastResult;
|
||||
import com.seibel.distanthorizons.api.objects.data.DhApiTerrainDataPoint;
|
||||
|
||||
/**
|
||||
* Used to interface with Distant Horizons' terrain data.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-22
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiTerrainDataRepo
|
||||
{
|
||||
|
||||
//=========//
|
||||
// getters //
|
||||
//=========//
|
||||
|
||||
/** Returns the terrain datapoint at the given block position, at/or containing the given Y position. */
|
||||
DhApiResult<DhApiTerrainDataPoint> getSingleDataPointAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosY, int blockPosZ);
|
||||
/** Returns every datapoint in the column located at the given block X and Z position top to bottom. */
|
||||
DhApiResult<DhApiTerrainDataPoint[]> getColumnDataAtBlockPos(IDhApiLevelWrapper levelWrapper, int blockPosX, int blockPosZ);
|
||||
|
||||
/**
|
||||
* Returns every datapoint in the given chunk's X and Z position. <br><br>
|
||||
*
|
||||
* The returned array is ordered: [relativeBlockX][relativeBlockZ][columnIndex] <br>
|
||||
* RelativeBlockX/Z are relative to the block position closest to negative infinity in the chunk's position. <br>
|
||||
* The column data is ordered from top to bottom. Note: each column may have a different number of values. <br>
|
||||
*/
|
||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtChunkPos(IDhApiLevelWrapper levelWrapper, int chunkPosX, int chunkPosZ);
|
||||
|
||||
/**
|
||||
* Returns every datapoint in the given region's X and Z position. <br><br>
|
||||
*
|
||||
* The returned array is ordered: [relativeBlockX][relativeBlockZ][columnIndex] <br>
|
||||
* RelativeBlockX/Z are relative to the block position closest to negative infinity in the region's position. <br>
|
||||
* The column data is ordered from top to bottom. Note: each column may have a different number of values. <br>
|
||||
*/
|
||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtRegionPos(IDhApiLevelWrapper levelWrapper, int regionPosX, int regionPosZ);
|
||||
|
||||
/**
|
||||
* Returns every datapoint in the column located at the given detail level and X/Z position. <br>
|
||||
* This can be used to return terrain data for non-standard sizes (IE 2x2 blocks or 2x2 chunks).
|
||||
*
|
||||
* @param detailLevel a positive byte defining the detail level of the returned data. <br>
|
||||
* Every increase doubles the width of the returned area. <br>
|
||||
* Example values: 0 = block, 1 = 2x2 blocks, 2 = 4x4 blocks, ... 4 = chunk (16x16 blocks), ... 9 = region (512x512 blocks) <br>
|
||||
* See {@link EDhApiDetailLevel} for more information.
|
||||
*/
|
||||
DhApiResult<DhApiTerrainDataPoint[][][]> getAllTerrainDataAtDetailLevelAndPos(IDhApiLevelWrapper levelWrapper, byte detailLevel, int posX, int posZ);
|
||||
|
||||
/**
|
||||
* Returns the datapoint and position of the LOD
|
||||
* at the end of the given ray. <br><br>
|
||||
*
|
||||
* Will return "success" with a null datapoint if the ray reaches the max length without finding any data.
|
||||
*/
|
||||
DhApiResult<DhApiRaycastResult> raycast(
|
||||
IDhApiLevelWrapper levelWrapper,
|
||||
double rayOriginX, double rayOriginY, double rayOriginZ,
|
||||
float rayDirectionX, float rayDirectionY, float rayDirectionZ,
|
||||
int maxRayBlockLength);
|
||||
|
||||
|
||||
|
||||
//=========//
|
||||
// setters //
|
||||
//=========//
|
||||
|
||||
/**
|
||||
* Sets the LOD data for the given chunk at the chunk's position. <br><br>
|
||||
*
|
||||
* Notes: <br>
|
||||
* - Only works if the given {@link IDhApiLevelWrapper} points to a loaded level. <br>
|
||||
* - If the player travels to this chunk, or the chunk is updated in some other way; your data will be replaced
|
||||
* by whatever the current chunk is. <br>
|
||||
* - This method may not update the LOD data immediately. Any other chunks have
|
||||
* been queued to update, they will be handled first.
|
||||
*
|
||||
* @param levelWrapper the level wrapper that the chunk should be saved to.
|
||||
* @param chunkObjectArray see {@link IDhApiWorldGenerator#generateChunks} for what objects are expected.
|
||||
* @throws ClassCastException if chunkObjectArray doesn't contain the right objects.
|
||||
* The exception will contain the expected object(s).
|
||||
*/
|
||||
public DhApiResult<Void> overwriteChunkDataAsync(IDhApiLevelWrapper levelWrapper, Object[] chunkObjectArray) throws ClassCastException;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.events;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IDependencyInjector;
|
||||
|
||||
/**
|
||||
* This class takes care of dependency injection for API events.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-13
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiEventInjector extends IDependencyInjector<IDhApiEvent>
|
||||
{
|
||||
|
||||
/**
|
||||
* Unlinks the given event handler, preventing the handler from being called in the future.
|
||||
*
|
||||
* @param dependencyInterface the base interface for the {@link IDhApiEvent}
|
||||
* @param dependencyClassToRemove the concrete {@link IDhApiEvent} class to remove
|
||||
* @return true if the handler was unbound, false if the handler wasn't bound.
|
||||
* @throws IllegalArgumentException if the implementation object doesn't implement the interface
|
||||
*/
|
||||
// Note to self: Don't try adding a generic type to IDhApiEvent, the constructor won't accept it
|
||||
boolean unbind(Class<? extends IDhApiEvent> dependencyInterface, Class<? extends IDhApiEvent> dependencyClassToRemove) throws IllegalArgumentException;
|
||||
|
||||
|
||||
/**
|
||||
* Fires all bound events of the given type (does nothing if no events are bound).
|
||||
*
|
||||
* @param abstractEvent event type
|
||||
* @param eventParameterObject event parameter
|
||||
* @param <T> the parameter type taken by the event handlers.
|
||||
* @param <U> the {@link IDhApiEvent}'s class
|
||||
* @return if any of the bound event handlers notified that this event should be canceled.
|
||||
*/
|
||||
<T, U extends IDhApiEvent<T>> boolean fireAllEvents(Class<U> abstractEvent, T eventParameterObject);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.factories;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBiomeWrapper;
|
||||
import com.seibel.distanthorizons.api.interfaces.block.IDhApiBlockStateWrapper;
|
||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.distanthorizons.api.DhApi;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* This handles creating abstract wrapper objects.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-12-16
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public interface IDhApiWrapperFactory
|
||||
{
|
||||
/**
|
||||
* Constructs a {@link IDhApiBiomeWrapper} for use by other DhApi methods.
|
||||
*
|
||||
* @param objectArray Expects the following Minecraft objects (in order) for each MC version: <br>
|
||||
* <b>1.16</b> and <b>1.17</b><br>
|
||||
* - [net.minecraft.world.level.biome.Biome] <br>
|
||||
* <b>1.18</b> and <b>newer</b> <br>
|
||||
* - {@literal [net.minecraft.core.Holder<net.minecraft.world.level.biome.Biome>] }<br>
|
||||
*
|
||||
* @param levelWrapper Expects a {@link IDhApiLevelWrapper} returned by one of DH's {@link DhApi.Delayed#worldProxy} methods. <br>
|
||||
* A custom implementation of {@link IDhApiLevelWrapper} will not be accepted.
|
||||
*
|
||||
* @throws ClassCastException if any of the given parameters is of the wrong type.
|
||||
* If thrown the error message will contain the list of expected object types in order.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
IDhApiBiomeWrapper getBiomeWrapper(Object[] objectArray, IDhApiLevelWrapper levelWrapper) throws ClassCastException;
|
||||
|
||||
/**
|
||||
* Constructs a {@link IDhApiBlockStateWrapper} for use by other DhApi methods.
|
||||
*
|
||||
* @param objectArray Expects the following Minecraft objects (in order) for each MC version: <br>
|
||||
* <b>1.16</b> and <b>newer</b> <br>
|
||||
* - [net.minecraft.world.level.block.state.BlockState]<br>
|
||||
*
|
||||
* @param levelWrapper Expects a {@link IDhApiBlockStateWrapper} returned by one of DH's {@link DhApi.Delayed#worldProxy} methods. <br>
|
||||
* A custom implementation of {@link IDhApiBlockStateWrapper} will not be accepted.
|
||||
*
|
||||
* @throws ClassCastException if any of the given parameters is of the wrong type.
|
||||
* If thrown the error message will contain the list of expected object types in order.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
IDhApiBlockStateWrapper getBlockStateWrapper(Object[] objectArray, IDhApiLevelWrapper levelWrapper) throws ClassCastException;
|
||||
|
||||
/**
|
||||
* Returns the {@link IDhApiBlockStateWrapper} representing air.
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
IDhApiBlockStateWrapper getAirBlockStateWrapper();
|
||||
|
||||
|
||||
|
||||
///**
|
||||
// * Specifically designed to be used with the API.
|
||||
// *
|
||||
// * @throws ClassCastException with instructions on expected objects if the object couldn't be cast
|
||||
// */
|
||||
//IChunkWrapper createChunkWrapper(Object[] objectArray) throws ClassCastException;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override;
|
||||
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindable;
|
||||
import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IOverrideInjector;
|
||||
|
||||
/**
|
||||
* Implemented by all DhApi objects that can be overridden.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-5
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiOverrideable extends IBindable
|
||||
{
|
||||
/**
|
||||
* Higher (larger numerical) priorities override lower (smaller numerical) priorities. <br>
|
||||
* For most developers this can be left at the default.
|
||||
*
|
||||
* @return The priority of this interface, the lowest legal value is {@link IOverrideInjector#MIN_NON_CORE_OVERRIDE_PRIORITY}.
|
||||
*/
|
||||
default int getPriority() { return IOverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.coreapi.util.math.Mat4f;
|
||||
|
||||
/**
|
||||
* Used to determine if a LOD should be rendered or is outside the
|
||||
* user's field of view.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-2-6
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public interface IDhApiCullingFrustum extends IDhApiOverrideable
|
||||
{
|
||||
|
||||
/**
|
||||
* Called before a render pass is done.
|
||||
*
|
||||
* @param worldMinBlockY the lowest block position this level allows.
|
||||
* @param worldMaxBlockY the highest block position this level allows.
|
||||
* @param worldViewProjection the projection matrix used in this render pass.
|
||||
*/
|
||||
void update(int worldMinBlockY, int worldMaxBlockY, Mat4f worldViewProjection);
|
||||
|
||||
/**
|
||||
* returns true if the LOD bounds intersect this frustum
|
||||
*
|
||||
* @param lodBlockPosMinX this LOD's starting block X position closest to negative infinity
|
||||
* @param lodBlockPosMinZ this LOD's starting block Z position closest to negative infinity
|
||||
* @param lodBlockWidth this LOD's width in blocks
|
||||
* @param lodDetailLevel this LOD's detail level
|
||||
*
|
||||
* @see EDhApiDetailLevel
|
||||
*/
|
||||
boolean intersects(int lodBlockPosMinX, int lodBlockPosMinZ, int lodBlockWidth, int lodDetailLevel);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2024-1-24
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public interface IDhApiFramebuffer extends IDhApiOverrideable
|
||||
{
|
||||
|
||||
/**
|
||||
* If this method is called that means this program has the highest priority as defined by {@link IDhApiOverrideable#getPriority()}
|
||||
* and gets to decide if it wants to be used to render this frame or not. <br><br>
|
||||
*
|
||||
* If this method returns true then this program will be used for this frame. <br>
|
||||
* If this returns false then the default DH {@link IDhApiShaderProgram} will be used instead.
|
||||
*/
|
||||
boolean overrideThisFrame();
|
||||
|
||||
/** Runs any necessary binding this program needs so rendering can be done. */
|
||||
void bind();
|
||||
|
||||
/** Binds the given OpenGL depth texture ID. */
|
||||
void addDepthAttachment(int textureId, boolean isCombinedStencil);
|
||||
|
||||
/** @return the OpenGL ID for this shader program */
|
||||
int getId();
|
||||
|
||||
/** @return the OpenGL framebuffer status as defined by <code>glCheckFramebufferStatus</code> */
|
||||
int getStatus();
|
||||
|
||||
/** Binds the given OpenGL texture ID to the given texture index relative to OpenGL's <code>GL_COLOR_ATTACHMENT0</code> */
|
||||
void addColorAttachment(int textureIndex, int textureId);
|
||||
|
||||
/** Destroys this framebuffer's OpenGL object(s). */
|
||||
void destroy();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
||||
import com.seibel.distanthorizons.coreapi.util.math.Mat4f;
|
||||
import com.seibel.distanthorizons.coreapi.util.math.Vec3f;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2024-1-24
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public interface IDhApiShaderProgram extends IDhApiOverrideable
|
||||
{
|
||||
|
||||
/**
|
||||
* If this method is called that means this program has the highest priority as defined by {@link IDhApiOverrideable#getPriority()}
|
||||
* and gets to decide if it wants to be used to render this frame or not. <br><br>
|
||||
*
|
||||
* If this method returns true then this program will be used for this frame. <br>
|
||||
* If this returns false then the default DH {@link IDhApiShaderProgram} will be used instead.
|
||||
*/
|
||||
boolean overrideThisFrame();
|
||||
|
||||
/** @return the OpenGL ID for this shader program */
|
||||
int getId();
|
||||
|
||||
/** Free any OpenGL objects owned by this program. */
|
||||
void free();
|
||||
|
||||
/** Runs any necessary binding this program needs so rendering can be done. */
|
||||
void bind();
|
||||
/** Runs any necessary unbinding this program needs so rendering can be done by another program. */
|
||||
void unbind();
|
||||
|
||||
|
||||
/** sets up the necessary uniforms for rendering */
|
||||
void fillUniformData(DhApiRenderParam renderParameters);
|
||||
|
||||
/** sets the vec3 that all DH verticies should be offset by when rendering */
|
||||
void setModelOffsetPos(Vec3f modelPos);
|
||||
|
||||
/** Binds the given Vertex Buffer Object to this shader program for rendering. */
|
||||
void bindVertexBuffer(int vbo);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.rendering;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.coreapi.util.math.Mat4f;
|
||||
|
||||
/**
|
||||
* The culling frustum used during Distant Horizons' shadow pass
|
||||
* if another mod has enabled Distant Horizons' shadow
|
||||
* pass via the API. <br><br>
|
||||
*
|
||||
* If no {@link IDhApiShadowCullingFrustum} is bound then culling
|
||||
* will not be done in the shadow pass.
|
||||
*
|
||||
* @see IDhApiCullingFrustum
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-2-10
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public interface IDhApiShadowCullingFrustum extends IDhApiCullingFrustum
|
||||
{
|
||||
// should be identical to the parent culling frustum
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.coreapi.util.BitShiftUtil;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2023-6-22
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public abstract class AbstractDhApiChunkWorldGenerator implements Closeable, IDhApiOverrideable, IDhApiWorldGenerator
|
||||
{
|
||||
//============//
|
||||
// parameters //
|
||||
//============//
|
||||
|
||||
@Override
|
||||
public final byte getSmallestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
||||
@Override
|
||||
public final byte getLargestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
||||
@Override
|
||||
public final byte getMinGenerationGranularity() { return EDhApiDetailLevel.CHUNK.detailLevel; }
|
||||
@Override
|
||||
public final byte getMaxGenerationGranularity() { return (byte) (EDhApiDetailLevel.CHUNK.detailLevel + 2); }
|
||||
|
||||
|
||||
|
||||
//=================//
|
||||
// world generator //
|
||||
//=================//
|
||||
|
||||
@Override
|
||||
public final CompletableFuture<Void> generateChunks(
|
||||
int chunkPosMinX, int chunkPosMinZ,
|
||||
byte granularity, byte targetDataDetail, EDhApiDistantGeneratorMode generatorMode,
|
||||
ExecutorService worldGeneratorThreadPool, Consumer<Object[]> resultConsumer) throws ClassCastException
|
||||
{
|
||||
return CompletableFuture.runAsync(() ->
|
||||
{
|
||||
// TODO what does this mean?
|
||||
int genChunkWidth = BitShiftUtil.powerOfTwo(granularity - 4);
|
||||
|
||||
for (int chunkX = chunkPosMinX; chunkX < chunkPosMinX + genChunkWidth; chunkX++)
|
||||
{
|
||||
for (int chunkZ = chunkPosMinZ; chunkZ < chunkPosMinZ + genChunkWidth; chunkZ++)
|
||||
{
|
||||
Object[] rawMcObjectArray = this.generateChunk(chunkX, chunkZ, generatorMode);
|
||||
resultConsumer.accept(rawMcObjectArray);
|
||||
}
|
||||
}
|
||||
}, worldGeneratorThreadPool);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called to generate terrain over a given area
|
||||
* from a thread defined by Distant Horizons. <br><br>
|
||||
*
|
||||
* @param chunkPosX the chunk X position in the level (not to be confused with the chunk's BlockPos in the level)
|
||||
* @param chunkPosZ the chunk Z position in the level (not to be confused with the chunk's BlockPos in the level)
|
||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
||||
*
|
||||
* @return See {@link IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer) IDhApiWorldGenerator.generateChunks}
|
||||
* for the list of Object's this method should return along with additional documentation.
|
||||
*
|
||||
* @see IDhApiWorldGenerator#generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer) IDhApiWorldGenerator#generateChunks
|
||||
*/
|
||||
public abstract Object[] generateChunk(int chunkPosX, int chunkPosZ, EDhApiDistantGeneratorMode generatorMode);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,222 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
||||
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiWorldGeneratorReturnType;
|
||||
import com.seibel.distanthorizons.api.interfaces.override.IDhApiOverrideable;
|
||||
import com.seibel.distanthorizons.api.enums.EDhApiDetailLevel;
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiDistantGeneratorMode;
|
||||
import com.seibel.distanthorizons.api.objects.data.DhApiChunk;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2023-6-22
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiWorldGenerator extends Closeable, IDhApiOverrideable
|
||||
{
|
||||
//============//
|
||||
// parameters //
|
||||
//============//
|
||||
|
||||
/**
|
||||
* Defines the smallest datapoint size that can be generated at a time. <br>
|
||||
* Minimum detail level is 0 (1 block) <br>
|
||||
* Default detail level is 0 <br>
|
||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}. <br><br>
|
||||
*
|
||||
* TODO: System currently only supports 1x1 block per data.
|
||||
*
|
||||
* @see EDhApiDetailLevel
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
default byte getSmallestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
||||
/**
|
||||
* Defines the largest datapoint size that can be generated at a time. <br>
|
||||
* Minimum detail level is 0 (1 block) <br>
|
||||
* Default detail level is 0 <br>
|
||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
||||
*
|
||||
* @see EDhApiDetailLevel
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
default byte getLargestDataDetailLevel() { return EDhApiDetailLevel.BLOCK.detailLevel; }
|
||||
|
||||
/**
|
||||
* When creating generation requests the system will attempt to group nearby tasks together. <br><br>
|
||||
* What is the minimum size a single generation call can batch together? <br>
|
||||
*
|
||||
* Minimum detail level is 4 (the size of a MC chunk) <br>
|
||||
* Default detail level is 4 <br>
|
||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
||||
*
|
||||
* @see EDhApiDetailLevel
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
default byte getMinGenerationGranularity() { return EDhApiDetailLevel.CHUNK.detailLevel; }
|
||||
|
||||
/**
|
||||
* When creating generation requests the system will attempt to group nearby tasks together. <br><br>
|
||||
* What is the maximum size a single generation call can batch together? <br>
|
||||
*
|
||||
* Minimum detail level is 4 (the size of a MC chunk) <br>
|
||||
* Default detail level is 6 (4x4 chunks) <br>
|
||||
* For more information on what detail levels represent see: {@link EDhApiDetailLevel}.
|
||||
*
|
||||
* @see EDhApiDetailLevel
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
default byte getMaxGenerationGranularity() { return (byte) (EDhApiDetailLevel.CHUNK.detailLevel + 2); }
|
||||
|
||||
/**
|
||||
* @return true if the generator is unable to accept new generation requests.
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
boolean isBusy();
|
||||
|
||||
|
||||
|
||||
|
||||
//=================//
|
||||
// world generator //
|
||||
//=================//
|
||||
|
||||
/**
|
||||
* This method is called by Distant Horizons to generate terrain over a given area when
|
||||
* {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS}. <br><br>
|
||||
*
|
||||
* After a chunk has been generated it (and any necessary supporting objects as listed below) should be passed into the
|
||||
* resultConsumer's {@link Consumer#accept} method. If the Consumer is given the wrong data
|
||||
* type(s) it will disable the world generator and log an error with a list of objects it was expecting. <br>
|
||||
* <strong>Note:</strong> these objects are minecraft version dependent and <i>will</i> change without notice!
|
||||
* Please run your generator in game at least once to confirm the objects you are returning are correct. <br><br>
|
||||
*
|
||||
* Consumer expected inputs for each minecraft version (in order): <br>
|
||||
* <strong>1.16</strong>, <strong>1.17</strong>, <strong>1.18</strong>, <strong>1.19</strong>, <strong>1.20</strong>: <br>
|
||||
* - [net.minecraft.world.level.chunk.ChunkAccess] <br>
|
||||
* - [net.minecraft.world.level.ServerLevel] or [net.minecraft.world.level.ClientLevel] <br>
|
||||
*
|
||||
* @implNote the default implementation of this method throws an {@link UnsupportedOperationException},
|
||||
* and must be overridden when {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS}.
|
||||
* since {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS} by default,
|
||||
* this method must also be overridden when {@link #getReturnType()} is NOT overridden.
|
||||
*
|
||||
* @param chunkPosMinX the chunk X position closest to negative infinity
|
||||
* @param chunkPosMinZ the chunk Z position closest to negative infinity
|
||||
* @param granularity TODO find a central location to store the definition of granularity. For now it is stored in the Core method: WorldGenerationQueue#startGenerationEvent
|
||||
* @param targetDataDetail the LOD Detail level requested to generate. See {@link EDhApiDetailLevel} for additional information.
|
||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
||||
* @param worldGeneratorThreadPool the thread pool that should be used when generating the returned {@link CompletableFuture}.
|
||||
* @param resultConsumer the consumer that should be fired whenever a chunk finishes generating.
|
||||
*
|
||||
* @return a future that should run on the worldGeneratorThreadPool and complete once the given generation task has completed.
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
default CompletableFuture<Void> generateChunks(
|
||||
int chunkPosMinX,
|
||||
int chunkPosMinZ,
|
||||
byte granularity,
|
||||
byte targetDataDetail,
|
||||
EDhApiDistantGeneratorMode generatorMode,
|
||||
ExecutorService worldGeneratorThreadPool,
|
||||
Consumer<Object[]> resultConsumer
|
||||
)
|
||||
{
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called by Distant Horizons to generate terrain over a given area when
|
||||
* {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#API_CHUNKS}. <br><br>
|
||||
*
|
||||
* After the {@link DhApiChunk} has been generated, it should be passed into the
|
||||
* resultConsumer's {@link Consumer#accept(Object)} method.
|
||||
*
|
||||
* @implNote the default implementation of this method throws an {@link UnsupportedOperationException},
|
||||
* and must be overridden when {@link #getReturnType()} returns {@link EDhApiWorldGeneratorReturnType#API_CHUNKS}.
|
||||
*
|
||||
* @param chunkPosMinX the chunk X position closest to negative infinity
|
||||
* @param chunkPosMinZ the chunk Z position closest to negative infinity
|
||||
* @param granularity TODO find a central location to store the definition of granularity. For now it is stored in the Core method: WorldGenerationQueue#startGenerationEvent
|
||||
* @param targetDataDetail the LOD Detail level requested to generate. See {@link EDhApiDetailLevel} for additional information.
|
||||
* @param generatorMode how far into the world gen pipeline this method run. See {@link EDhApiDistantGeneratorMode} for additional documentation.
|
||||
* @param worldGeneratorThreadPool the thread pool that should be used when generating the returned {@link CompletableFuture}.
|
||||
* @param resultConsumer the consumer that should be fired whenever a chunk finishes generating.
|
||||
*
|
||||
* @return a future that should run on the worldGeneratorThreadPool and complete once the given generation task has completed.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
default CompletableFuture<Void> generateApiChunks(
|
||||
int chunkPosMinX,
|
||||
int chunkPosMinZ,
|
||||
byte granularity,
|
||||
byte targetDataDetail,
|
||||
EDhApiDistantGeneratorMode generatorMode,
|
||||
ExecutorService worldGeneratorThreadPool,
|
||||
Consumer<DhApiChunk> resultConsumer
|
||||
)
|
||||
{
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method controls how Distant Horizons requests generated chunks.
|
||||
* By default, the return value is {@link EDhApiWorldGeneratorReturnType#VANILLA_CHUNKS},
|
||||
* which means that {@link #generateChunks(int, int, byte, byte, EDhApiDistantGeneratorMode, ExecutorService, Consumer)}
|
||||
* will be invoked whenever Distant Horizons wants to generate terrain with this world generator.
|
||||
*
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
default EDhApiWorldGeneratorReturnType getReturnType() { return EDhApiWorldGeneratorReturnType.VANILLA_CHUNKS; }
|
||||
|
||||
|
||||
|
||||
//===============//
|
||||
// event methods //
|
||||
//===============//
|
||||
|
||||
/**
|
||||
* Called before a new generator task is started. <br>
|
||||
* This can be used to run cleanup on existing tasks before new tasks are started.
|
||||
*
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
void preGeneratorTaskStart();
|
||||
|
||||
|
||||
|
||||
//===========//
|
||||
// overrides //
|
||||
//===========//
|
||||
|
||||
// This is overridden to remove the "throws IOException"
|
||||
// that is present in the default Closeable.close() method
|
||||
@Override
|
||||
void close();
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.override.worldGenerator;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.world.IDhApiLevelWrapper;
|
||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
||||
|
||||
/**
|
||||
* Handles adding world generator overrides.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-12-10
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiWorldGeneratorOverrideRegister
|
||||
{
|
||||
/**
|
||||
* Registers the given world generator for the given level. <Br> <Br>
|
||||
*
|
||||
* Only one world generator can be registered for a specific level at a given time. <Br>
|
||||
* If another world generator has already been registered, DhApiResult will return
|
||||
* the name of the previously registered generator and success = false.
|
||||
*/
|
||||
DhApiResult<Void> registerWorldGeneratorOverride(IDhApiLevelWrapper levelWrapper, IDhApiWorldGenerator worldGenerator);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.render;
|
||||
|
||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
||||
|
||||
|
||||
/**
|
||||
* Used to interact with Distant Horizons' rendering system.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-10-13
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiRenderProxy
|
||||
{
|
||||
/**
|
||||
* Forces any cached render data to be deleted and regenerated.
|
||||
* This is generally called whenever resource packs are changed or specific
|
||||
* rendering settings are changed in Distant Horizon's config. <Br><Br>
|
||||
*
|
||||
* If this is called on a dedicated server it won't do anything and will return {@link DhApiResult#success} = false <Br><Br>
|
||||
*
|
||||
* Background: <Br>
|
||||
* Distant Horizons has two different file formats: Full data and Render data. <Br>
|
||||
* - Full data files store the block, biome, etc. information and is the result of loading or generating new chunks. <Br>
|
||||
* - Render data files store LOD colors and are created using the Full data and currently loaded resource packs. <Br>
|
||||
* This is the data cleared by this method.
|
||||
*/
|
||||
DhApiResult<Boolean> clearRenderDataCache();
|
||||
|
||||
|
||||
|
||||
//=======================//
|
||||
// OpenGL object getters //
|
||||
//=======================//
|
||||
|
||||
/**
|
||||
* Returns the name of Distant Horizons' depth texture. <br>
|
||||
* Will return {@link DhApiResult#success} = false and {@link DhApiResult#payload} = -1 if the texture hasn't been created yet.
|
||||
*/
|
||||
DhApiResult<Integer> getDhDepthTextureId();
|
||||
|
||||
/**
|
||||
* Returns the name of Distant Horizons' color texture. <br>
|
||||
* Will return {@link DhApiResult#success} = false and {@link DhApiResult#payload} = -1 if the texture hasn't been created yet.
|
||||
*/
|
||||
DhApiResult<Integer> getDhColorTextureId();
|
||||
|
||||
|
||||
|
||||
//======================//
|
||||
// Shader compatibility //
|
||||
//======================//
|
||||
|
||||
/**
|
||||
* If set to true DH won't render opaque and transparent LODs in the same pass.
|
||||
* Instead, opaque objects will be rendered at the normal time, but
|
||||
* transparent objects will only be rendered in a second pass during Minecraft's
|
||||
* own transparent rendering pass.
|
||||
*/
|
||||
void setDeferTransparentRendering(boolean deferTransparentRendering);
|
||||
/** @return If DH should defer transparent rendering or not. */
|
||||
boolean getDeferTransparentRendering();
|
||||
|
||||
/** This may change based on FOV, player speed, and other factors. */
|
||||
float getNearClipPlaneDistanceInBlocks(float partialTicks);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.world;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
|
||||
|
||||
/**
|
||||
* @author James Seibel
|
||||
* @version 2022-7-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiDimensionTypeWrapper extends IDhApiUnsafeWrapper
|
||||
{
|
||||
String getDimensionName();
|
||||
|
||||
boolean hasCeiling();
|
||||
|
||||
boolean hasSkyLight();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.world;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
|
||||
import com.seibel.distanthorizons.api.enums.worldGeneration.EDhApiLevelType;
|
||||
|
||||
/**
|
||||
* Can be either a Server or Client level.<br>
|
||||
* A level is equivalent to a dimension in vanilla Minecraft.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-7-14
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiLevelWrapper extends IDhApiUnsafeWrapper
|
||||
{
|
||||
IDhApiDimensionTypeWrapper getDimensionType();
|
||||
|
||||
EDhApiLevelType getLevelType();
|
||||
|
||||
boolean hasCeiling();
|
||||
|
||||
boolean hasSkyLight();
|
||||
|
||||
/** Returns the max block height of the level(?) */
|
||||
int getHeight();
|
||||
|
||||
/**
|
||||
* Returns the lowest possible block position for the level. <br>
|
||||
* For MC versions before 1.18 this will return 0.
|
||||
*/
|
||||
default int getMinHeight() { return 0; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.interfaces.world;
|
||||
|
||||
/**
|
||||
* Used to interact with Distant Horizons' current world. <br>
|
||||
* A world is equivalent to a single server connection or a singleplayer world.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-11-20
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public interface IDhApiWorldProxy
|
||||
{
|
||||
/** Returns true if a world is loaded. */
|
||||
boolean worldLoaded();
|
||||
|
||||
|
||||
/**
|
||||
* In singleplayer this will return the level the player is currently in. <br>
|
||||
* In multiplayer this will return null.
|
||||
*
|
||||
* @throws IllegalStateException if no world is loaded
|
||||
*/
|
||||
IDhApiLevelWrapper getSinglePlayerLevel() throws IllegalStateException;
|
||||
|
||||
/** @throws IllegalStateException if no world is loaded */
|
||||
Iterable<IDhApiLevelWrapper> getAllLoadedLevelWrappers() throws IllegalStateException;
|
||||
|
||||
/**
|
||||
* In the case of servers running multiverse there may be multiple levels for the same dimensionType.
|
||||
*
|
||||
* @throws IllegalStateException if no world is loaded
|
||||
*/
|
||||
Iterable<IDhApiLevelWrapper> getAllLoadedLevelsForDimensionType(IDhApiDimensionTypeWrapper dimensionTypeWrapper) throws IllegalStateException;
|
||||
|
||||
/**
|
||||
* Returns any dimensions that have names containing the given string (case-insensitive). <br>
|
||||
* In the case of servers running multiverse there may be multiple levels for the same dimensionType.
|
||||
*
|
||||
* @throws IllegalStateException if no world is loaded
|
||||
*/
|
||||
Iterable<IDhApiLevelWrapper> getAllLoadedLevelsWithDimensionNameLike(String dimensionName) throws IllegalStateException;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events;
|
||||
|
||||
import com.seibel.distanthorizons.api.objects.DhApiResult;
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector;
|
||||
|
||||
/**
|
||||
* Handles adding/removing event handlers.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2022-9-16
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public class DhApiEventRegister
|
||||
{
|
||||
/**
|
||||
* Registers the given event handler. <Br>
|
||||
* Only one eventHandler of a specific class can be registered at a time.
|
||||
* If multiple of the same eventHandler are added DhApiResult will return
|
||||
* the name of the already added handler and success = false.
|
||||
*/
|
||||
public static DhApiResult<Void> on(Class<? extends IDhApiEvent> eventInterface, IDhApiEvent eventHandlerImplementation)
|
||||
{
|
||||
try
|
||||
{
|
||||
ApiEventInjector.INSTANCE.bind(eventInterface, eventHandlerImplementation);
|
||||
return DhApiResult.createSuccess();
|
||||
}
|
||||
catch (IllegalStateException e)
|
||||
{
|
||||
return DhApiResult.createFail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregisters the given event handler for this event if one has been registered. <br>
|
||||
* If no eventHandler of the given class has been registered the result will return
|
||||
* success = false.
|
||||
*/
|
||||
public static DhApiResult<Void> off(Class<? extends IDhApiEvent> eventInterface, Class<IDhApiEvent> eventHandlerClass)
|
||||
{
|
||||
if (ApiEventInjector.INSTANCE.unbind(eventInterface, eventHandlerClass))
|
||||
{
|
||||
return DhApiResult.createSuccess();
|
||||
}
|
||||
else
|
||||
{
|
||||
return DhApiResult.createFail("No event handler [" + eventHandlerClass.getSimpleName() + "] was bound for the event [" + eventInterface.getSimpleName() + "].");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiOneTimeEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
||||
|
||||
/**
|
||||
* Fired after Distant Horizons finishes running its setup.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-23
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public abstract class DhApiAfterDhInitEvent implements IDhApiEvent<Void>, IDhApiOneTimeEvent<Void>
|
||||
{
|
||||
/** Fired after Distant Horizons finishes its initial setup on Minecraft startup. */
|
||||
public abstract void afterDistantHorizonsInit(DhApiEventParam<Void> input);
|
||||
|
||||
|
||||
//=========================//
|
||||
// internal DH API methods //
|
||||
//=========================//
|
||||
|
||||
@Override
|
||||
public final void fireEvent(DhApiEventParam<Void> input) { this.afterDistantHorizonsInit(input); }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
||||
|
||||
/**
|
||||
* Fired after Distant Horizons finishes rendering a frame. <br>
|
||||
* At this point DH will have also finished cleaning up any modifications it
|
||||
* did to the OpenGL state, so the state should be back to Minecraft's defaults.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-1-31
|
||||
* @see DhApiRenderParam
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public abstract class DhApiAfterRenderEvent implements IDhApiEvent<DhApiRenderParam>
|
||||
{
|
||||
/** Fired after Distant Horizons finishes rendering fake chunks. */
|
||||
public abstract void afterRender(DhApiEventParam<DhApiRenderParam> event);
|
||||
|
||||
|
||||
//=========================//
|
||||
// internal DH API methods //
|
||||
//=========================//
|
||||
|
||||
@Override
|
||||
public final void fireEvent(DhApiEventParam<DhApiRenderParam> event) { this.afterRender(event); }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiCancelableEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiCancelableEventParam;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
||||
|
||||
/**
|
||||
* Fired before DH runs its apply shader.
|
||||
* The apply shader is a shader that copies over everything DH has rendered
|
||||
* for this pass into MC's framebuffers so it can be rendered to the screen.
|
||||
* Canceling this event prevents the apply shader from running.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-1-31
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public abstract class DhApiBeforeApplyShaderRenderEvent implements IDhApiCancelableEvent<DhApiRenderParam>
|
||||
{
|
||||
/** Fired before the apply shader is run. */
|
||||
public abstract void beforeRender(DhApiCancelableEventParam<DhApiRenderParam> event);
|
||||
|
||||
|
||||
//=========================//
|
||||
// internal DH API methods //
|
||||
//=========================//
|
||||
|
||||
@Override
|
||||
public final void fireEvent(DhApiCancelableEventParam<DhApiRenderParam> event) { this.beforeRender(event); }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiRenderParam;
|
||||
import com.seibel.distanthorizons.coreapi.util.math.Vec3f;
|
||||
|
||||
/**
|
||||
* Called before Distant Horizons starts rendering a buffer. <br>
|
||||
* This event cannot be cancelled, use {@link DhApiBeforeRenderEvent} if you want to cancel rendering.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-1-31
|
||||
* @since API 1.1.0
|
||||
*
|
||||
* @see DhApiBeforeRenderEvent
|
||||
*/
|
||||
public abstract class DhApiBeforeBufferRenderEvent implements IDhApiEvent<DhApiBeforeBufferRenderEvent.EventParam>
|
||||
{
|
||||
/** Fired immediately before Distant Horizons starts rendering a buffer. */
|
||||
public abstract void beforeRender(DhApiEventParam<EventParam> input);
|
||||
|
||||
|
||||
//=========================//
|
||||
// internal DH API methods //
|
||||
//=========================//
|
||||
|
||||
@Override
|
||||
public final void fireEvent(DhApiEventParam<EventParam> input) { this.beforeRender(input); }
|
||||
|
||||
|
||||
//==================//
|
||||
// parameter object //
|
||||
//==================//
|
||||
|
||||
public static class EventParam extends DhApiRenderParam
|
||||
{
|
||||
/**
|
||||
* Measured in blocks.
|
||||
* Should be applied to the model view matrix to move the buffer into its proper place.
|
||||
*/
|
||||
public final Vec3f modelPos;
|
||||
|
||||
|
||||
public EventParam(DhApiRenderParam parent, Vec3f modelPos)
|
||||
{
|
||||
super(parent);
|
||||
this.modelPos = modelPos;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.interfaces.render.IDhApiRenderProxy;
|
||||
|
||||
/**
|
||||
* Called before Distant Horizons starts rendering the deferred rendering pass. <br>
|
||||
* Will only happen if {@link IDhApiRenderProxy#getDeferTransparentRendering()} is true. <br>
|
||||
* Generally this is only used when shaders are enabled. <br>
|
||||
* Canceling the event will prevent DH from rendering the deferred pass that frame.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2024-1-22
|
||||
* @since API 1.1.0
|
||||
*/
|
||||
public abstract class DhApiBeforeDeferredRenderEvent extends DhApiBeforeRenderEvent
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* This file is part of the Distant Horizons mod
|
||||
* licensed under the GNU LGPL v3 License.
|
||||
*
|
||||
* Copyright (C) 2020-2023 James Seibel
|
||||
*
|
||||
* This program 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, version 3.
|
||||
*
|
||||
* This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.seibel.distanthorizons.api.methods.events.abstractEvents;
|
||||
|
||||
import com.seibel.distanthorizons.api.methods.events.interfaces.IDhApiEvent;
|
||||
import com.seibel.distanthorizons.api.methods.events.sharedParameterObjects.DhApiEventParam;
|
||||
|
||||
/**
|
||||
* Fired before Distant Horizons starts running its mod loader setup. <br>
|
||||
* IE this is called before Forge's initClient/initServer or Fabric's init method.
|
||||
*
|
||||
* @author James Seibel
|
||||
* @version 2023-6-23
|
||||
* @since API 1.0.0
|
||||
*/
|
||||
public abstract class DhApiBeforeDhInitEvent implements IDhApiEvent<Void>
|
||||
{
|
||||
/** Fired before Distant Horizons starts its initial setup on Minecraft startup. */
|
||||
public abstract void beforeDistantHorizonsInit(DhApiEventParam<Void> input);
|
||||
|
||||
|
||||
//=========================//
|
||||
// internal DH API methods //
|
||||
//=========================//
|
||||
|
||||
@Override
|
||||
public final void fireEvent(DhApiEventParam<Void> input) { this.beforeDistantHorizonsInit(input); }
|
||||
|
||||
}
|
||||