Compare commits
573 Commits
Beta-v0.1.
...
broken
Author | SHA1 | Date |
---|---|---|
thunderdog1138 | ade014fdab | |
thunderdog1138 | 7d7a8c4667 | |
thunderdog1138 | d53b3272e8 | |
thunderdog1138 | 97316abf39 | |
thunderdog1138 | a64e98099a | |
thunderdog1138 | 8213dde380 | |
thunderdog1138 | 461411d718 | |
thunderdog1138 | d87404dafd | |
thunderdog1138 | 20f330e6dc | |
thunderdog1138 | 19a914b53d | |
thunderdog1138 | 217a14cb52 | |
thunderdog1138 | 63a34391d9 | |
thunderdog1138 | ca72aabc51 | |
thunderdog1138 | 0fb59784c1 | |
thunderdog1138 | 675d469a8e | |
thunderdog1138 | f8143f7a9b | |
thunderdog1138 | 09aa54273e | |
thunderdog1138 | c16f831ae4 | |
thunderdog1138 | 1204a5e70e | |
thunderdog1138 | 6da715d33e | |
thunderdog1138 | 9eb8291ab5 | |
thunderdog1138 | d46ab94abe | |
thunderdog1138 | a66518fa0a | |
thunderdog1138 | 1d019d6f7a | |
thunderdog1138 | 28a25133f3 | |
thunderdog1138 | b9f532d6a8 | |
thunderdog1138 | ce41be62b2 | |
thunderdog1138 | 261e6a0aa4 | |
thunderdog1138 | 473ce7221e | |
thunderdog1138 | 51290665b9 | |
thunderdog1138 | c5ca89d219 | |
thunderdog1138 | 976045daef | |
thunderdog1138 | d43bd4f8ca | |
thunderdog1138 | a05695b9eb | |
thunderdog1138 | 982e1c1d9e | |
thunderdog1138 | 51ec8e6bdf | |
thunderdog1138 | dfd8c8065f | |
thunderdog1138 | 6c88635a87 | |
thunderdog1138 | 5ad864dce7 | |
thunderdog1138 | f50334b4e4 | |
thunderdog1138 | ccac5999e4 | |
thunderdog1138 | b0053daa97 | |
thunderdog1138 | e0b034262e | |
thunderdog1138 | 3c812572a2 | |
thunderdog1138 | d810f47a31 | |
thunderdog1138 | ca4b489300 | |
thunderdog1138 | afb3693690 | |
thunderdog1138 | 235a48487d | |
thunderdog1138 | 7fd50d0498 | |
thunderdog1138 | a6adeb645f | |
thunderdog1138 | c24eb9aac7 | |
thunderdog1138 | 034a92332f | |
thunderdog1138 | c694b1d6c2 | |
thunderdog1138 | a832b8bad9 | |
thunderdog1138 | e1e4176e29 | |
thunderdog1138 | b78bae063c | |
thunderdog1138 | 53049754d2 | |
thunderdog1138 | a8e670f1b6 | |
thunderdog1138 | 06a31c7ea3 | |
thunderdog1138 | afbe8a2d2c | |
thunderdog1138 | 715ce63f9d | |
thunderdog1138 | 8c59503b2d | |
thunderdog1138 | c715596bfb | |
thunderdog1138 | 5f03fc7a53 | |
thunderdog1138 | 4cd4337193 | |
thunderdog1138 | 6917a29bc9 | |
thunderdog1138 | 73fc029e36 | |
thunderdog1138 | 784f0f8ff0 | |
thunderdog1138 | 47126dcb93 | |
thunderdog1138 | 0c36c5e081 | |
thunderdog1138 | bfdfcb897d | |
thunderdog1138 | 6b54502859 | |
thunderdog1138 | ddf3b7b4ec | |
thunderdog1138 | 17589b54f5 | |
thunderdog1138 | eab6b8f305 | |
thunderdog1138 | 24a5b6ee58 | |
thunderdog1138 | f1a7a01bac | |
thunderdog1138 | 02ce2198bc | |
thunderdog1138 | 693d1fe681 | |
thunderdog1138 | eb4b54ae55 | |
thunderdog1138 | 49481eb992 | |
thunderdog1138 | 92df038d4a | |
thunderdog1138 | b744accad9 | |
thunderdog1138 | d90595e606 | |
thunderdog1138 | fda5f111d6 | |
thunderdog1138 | d91c23b305 | |
thunderdog1138 | ed9835b439 | |
thunderdog1138 | 956ee618da | |
thunderdog1138 | 529332537e | |
thunderdog1138 | 5b46976e86 | |
thunderdog1138 | 3248804e65 | |
thunderdog1138 | 3bbb5c62df | |
thunderdog1138 | 4d391afc49 | |
thunderdog1138 | 5ecfe3edc5 | |
thunderdog1138 | fca68856cd | |
thunderdog1138 | 6fa193a63f | |
thunderdog1138 | 2d30e5208d | |
thunderdog1138 | 2ea3dc8286 | |
thunderdog1138 | f7581c93d6 | |
thunderdog1138 | a65c99de26 | |
thunderdog1138 | 7f05716d94 | |
thunderdog1138 | 6d397ba109 | |
thunderdog1138 | 896b03d457 | |
thunderdog1138 | ffc492bced | |
thunderdog1138 | 71f5ab8969 | |
thunderdog1138 | 501a7a82dd | |
thunderdog1138 | 040c403368 | |
thunderdog1138 | 13af2a8448 | |
thunderdog1138 | 764229d1a6 | |
thunderdog1138 | 02b54ad6e7 | |
thunderdog1138 | abeffd8610 | |
thunderdog1138 | dc78c2465d | |
thunderdog1138 | 16da10e8e7 | |
thunderdog1138 | 9d43d2996b | |
thunderdog1138 | fae0ce841b | |
thunderdog1138 | d0f768123d | |
thunderdog1138 | a363a394e0 | |
thunderdog1138 | c7965c9e88 | |
thunderdog1138 | e1581931d6 | |
thunderdog1138 | 0edbb8522b | |
thunderdog1138 | 1d6af3711a | |
thunderdog1138 | 1fefd14aea | |
thunderdog1138 | 2f0856b805 | |
thunderdog1138 | cafe29deaa | |
thunderdog1138 | 8edb238753 | |
thunderdog1138 | 7bf90e88a2 | |
thunderdog1138 | c2c3eae22d | |
thunderdog1138 | 125fe8bcf1 | |
thunderdog1138 | fa392d4766 | |
thunderdog1138 | 6601e401b2 | |
thunderdog1138 | 00a9bbfc22 | |
thunderdog1138 | 02ed7c357f | |
thunderdog1138 | ff51cdd18d | |
thunderdog1138 | 8652bcc8ba | |
thunderdog1138 | b199de0213 | |
thunderdog1138 | 34e9cb9d97 | |
thunderdog1138 | 94523e04f7 | |
thunderdog1138 | adc944b9bd | |
thunderdog1138 | 0f0e4cd1b7 | |
thunderdog1138 | 786bd94a5e | |
thunderdog1138 | 85756d4685 | |
thunderdog1138 | 3f83105e98 | |
thunderdog1138 | 2cadd936bc | |
thunderdog1138 | 57846bc7f3 | |
thunderdog1138 | c864574ec3 | |
thunderdog1138 | e9b35f1f69 | |
thunderdog1138 | f335be652d | |
thunderdog1138 | 7d0679872e | |
thunderdog1138 | 1a33b4984c | |
thunderdog1138 | 2c0b6bdae8 | |
thunderdog1138 | 2944939504 | |
thunderdog1138 | bf53db06bb | |
thunderdog1138 | 67edf01a1d | |
thunderdog1138 | 0c4570e658 | |
thunderdog1138 | ae12a1895b | |
thunderdog1138 | 7ddab29721 | |
thunderdog1138 | b14b4b4f14 | |
thunderdog1138 | 167d90b23c | |
thunderdog1138 | 0713fff618 | |
thunderdog1138 | 347506be77 | |
thunderdog1138 | a9fbc943c2 | |
thunderdog1138 | 4e4c5d925f | |
thunderdog1138 | 8f4b90d82b | |
thunderdog1138 | e72d1b7b82 | |
thunderdog1138 | aa614492b5 | |
thunderdog1138 | 625343a1f7 | |
thunderdog1138 | 1dacb6850c | |
thunderdog1138 | 9c3916b1af | |
thunderdog1138 | 118f3a3e23 | |
thunderdog1138 | 023be669e8 | |
thunderdog1138 | 307087a74e | |
thunderdog1138 | 03757025f6 | |
thunderdog1138 | e3afc3e616 | |
thunderdog1138 | 28c09f57da | |
thunderdog1138 | d11b536c1d | |
thunderdog1138 | aeaca23efa | |
thunderdog1138 | 46f59c968f | |
thunderdog1138 | a245d7ee9d | |
thunderdog1138 | e8c49b546f | |
thunderdog1138 | 87fe8df225 | |
thunderdog1138 | 09a74121b0 | |
thunderdog1138 | 909b1bd10e | |
thunderdog1138 | 97e132cd84 | |
thunderdog1138 | fd145f1a0d | |
thunderdog1138 | 9dce7b7dbd | |
thunderdog1138 | 37d13688b7 | |
thunderdog1138 | 03a3129418 | |
thunderdog1138 | 93958967a9 | |
thunderdog1138 | 36e1e22ff1 | |
thunderdog1138 | d7141cab9b | |
thunderdog1138 | 045a0ac87a | |
thunderdog1138 | 391f5f3a07 | |
thunderdog1138 | 97bdf6c777 | |
thunderdog1138 | e3b7755223 | |
thunderdog1138 | 0d4eabb6e1 | |
thunderdog1138 | 7fcafc019d | |
thunderdog1138 | fd80266efe | |
thunderdog1138 | e6507cb522 | |
thunderdog1138 | 4561f6829a | |
thunderdog1138 | 8fcf7761c5 | |
thunderdog1138 | 2467028bdb | |
thunderdog1138 | 44836e9178 | |
thunderdog1138 | edc0b3ab63 | |
thunderdog1138 | 97182a09cd | |
thunderdog1138 | 36777fc2ee | |
thunderdog1138 | 52f0da9d9f | |
thunderdog1138 | 3f7cacf449 | |
thunderdog1138 | 705b91a402 | |
thunderdog1138 | ecf51d7441 | |
thunderdog1138 | 4c9e2f0371 | |
thunderdog1138 | 88c9ecf4ec | |
thunderdog1138 | 69235adad9 | |
thunderdog1138 | 3144248b51 | |
thunderdog1138 | 0583c47c88 | |
thunderdog1138 | 73684285ab | |
thunderdog1138 | caa7f2c4eb | |
thunderdog1138 | 547842d10e | |
thunderdog1138 | 62eaac4169 | |
thunderdog1138 | 0148df1b15 | |
thunderdog1138 | 97cbe3e82e | |
thunderdog1138 | 59f34704a0 | |
thunderdog1138 | 5f684dba04 | |
thunderdog1138 | f86170bee2 | |
thunderdog1138 | 77459f18eb | |
thunderdog1138 | 5d3d0e56af | |
thunderdog1138 | 6ca18cf2e7 | |
thunderdog1138 | 4873e3cc6d | |
thunderdog1138 | ffa8f9f70b | |
thunderdog1138 | 0760ad82dd | |
thunderdog1138 | a60d3547ca | |
thunderdog1138 | 3c78a1ac25 | |
thunderdog1138 | 7aff0a1ad4 | |
thunderdog1138 | 814be30bfe | |
thunderdog1138 | 7edcbfb8be | |
thunderdog1138 | a70867726a | |
thunderdog1138 | d91883fc39 | |
thunderdog1138 | ebc6d502ca | |
thunderdog1138 | 3d776ef679 | |
thunderdog1138 | 391d52e1c3 | |
thunderdog1138 | e4ad87b307 | |
thunderdog1138 | a708266527 | |
thunderdog1138 | 96e0ea61e6 | |
thunderdog1138 | 51ed0b6a8d | |
thunderdog1138 | 8af03b3bb4 | |
thunderdog1138 | d114f86afa | |
thunderdog1138 | d2f4536edf | |
thunderdog1138 | fe899935da | |
thunderdog1138 | a855cdbd78 | |
thunderdog1138 | 133ea7b4d6 | |
thunderdog1138 | 7a2837c7de | |
thunderdog1138 | c16de0f9f5 | |
thunderdog1138 | 9dab771577 | |
thunderdog1138 | fffeea91cb | |
thunderdog1138 | a14e7b29a9 | |
thunderdog1138 | 56eb8cb7a8 | |
thunderdog1138 | 92c082781c | |
thunderdog1138 | c06fafe372 | |
thunderdog1138 | 9acaf9bba0 | |
thunderdog1138 | 71877da8eb | |
thunderdog1138 | 79121cde01 | |
thunderdog1138 | ddd9192479 | |
thunderdog1138 | c81a3d5c41 | |
thunderdog1138 | 3790b7a3c6 | |
thunderdog1138 | 1af8586162 | |
thunderdog1138 | b61fad7ea3 | |
thunderdog1138 | 5d5a5fdfeb | |
thunderdog1138 | 87fc07f3c9 | |
thunderdog1138 | a9694181c5 | |
thunderdog1138 | f6ac135ded | |
thunderdog1138 | 4c68289fe1 | |
thunderdog1138 | ec5e5ea97e | |
thunderdog1138 | 9b0dcd76a5 | |
thunderdog1138 | 778a75256c | |
thunderdog1138 | 59e408fedb | |
thunderdog1138 | c939431e51 | |
thunderdog1138 | 47fe6467bf | |
thunderdog1138 | 9eadb80840 | |
thunderdog1138 | 21533bc868 | |
thunderdog1138 | 55e9e7b497 | |
thunderdog1138 | b78a04b83d | |
thunderdog1138 | a37a72bb5b | |
thunderdog1138 | 66cdc63fc9 | |
thunderdog1138 | 154eb09848 | |
thunderdog1138 | fe12b653f8 | |
thunderdog1138 | 0cff9919b4 | |
thunderdog1138 | ab06c807e6 | |
thunderdog1138 | 2bec93e9ee | |
thunderdog1138 | 19f41e38f9 | |
thunderdog1138 | 56d60d38f4 | |
thunderdog1138 | 0e27336202 | |
thunderdog1138 | c573f0790e | |
thunderdog1138 | a6cc783337 | |
thunderdog1138 | 22027c7a96 | |
thunderdog1138 | 88ab891352 | |
thunderdog1138 | 1c5536c6a3 | |
thunderdog1138 | d337a23de2 | |
thunderdog1138 | a0c5d1a6ca | |
thunderdog1138 | d9ad657d10 | |
thunderdog1138 | 5f2f6bec3d | |
thunderdog1138 | 4c5c458bf6 | |
thunderdog1138 | 531288621e | |
thunderdog1138 | b2d2eef7e1 | |
thunderdog1138 | 1d0ccdcf51 | |
thunderdog1138 | 105609d115 | |
thunderdog1138 | bf61eb716b | |
thunderdog1138 | 2956a6f98f | |
thunderdog1138 | aa86db1d1e | |
thunderdog1138 | 724ef20af2 | |
thunderdog1138 | 7fc2b0858f | |
thunderdog1138 | b1a9be6be9 | |
thunderdog1138 | 8803faacb0 | |
thunderdog1138 | c02e08bb57 | |
thunderdog1138 | d7a58b6074 | |
thunderdog1138 | 4e559b1d04 | |
thunderdog1138 | d2b1efec48 | |
thunderdog1138 | 20eb682919 | |
thunderdog1138 | d2951f4789 | |
thunderdog1138 | f9500a99a7 | |
thunderdog1138 | fbc5054681 | |
thunderdog1138 | 0e943146ad | |
thunderdog1138 | 6f70a2c62c | |
thunderdog1138 | 939f595606 | |
thunderdog1138 | 1bb971acd8 | |
thunderdog1138 | c66e05812d | |
thunderdog1138 | 26ae73f0fa | |
thunderdog1138 | e006a0e897 | |
thunderdog1138 | 09c99e40e3 | |
thunderdog1138 | cce3401e41 | |
thunderdog1138 | 5be40df9cd | |
thunderdog1138 | a468d34621 | |
thunderdog1138 | 7d2d304214 | |
thunderdog1138 | 4f97b971d6 | |
thunderdog1138 | d01c875368 | |
thunderdog1138 | 03d14e734b | |
thunderdog1138 | f8ad8cb0f9 | |
thunderdog1138 | 72895a125b | |
thunderdog1138 | 3199889541 | |
thunderdog1138 | 57797f00b6 | |
thunderdog1138 | 75d4929b8f | |
thunderdog1138 | 63cc781697 | |
thunderdog1138 | 4281a321dc | |
thunderdog1138 | 83c410f2e1 | |
thunderdog1138 | aff1e44a6e | |
thunderdog1138 | 1738831111 | |
thunderdog1138 | 65ce2d8543 | |
thunderdog1138 | b82ca570fc | |
thunderdog1138 | a0585184f0 | |
thunderdog1138 | a7b09b27ab | |
thunderdog1138 | 1bc0c2d309 | |
thunderdog1138 | 6bf1970ce6 | |
thunderdog1138 | 83d2b4247a | |
thunderdog1138 | e0a4b909e9 | |
thunderdog1138 | 98ade54bf7 | |
thunderdog1138 | e6c519a20c | |
thunderdog1138 | c23c579e1a | |
thunderdog1138 | 755a5fdcfe | |
thunderdog1138 | 62419b1282 | |
thunderdog1138 | f65f02164d | |
thunderdog1138 | f5612f24a5 | |
thunderdog1138 | 46d785d9c1 | |
thunderdog1138 | 00893839cd | |
thunderdog1138 | 0d86b45e0c | |
thunderdog1138 | 6ebf4cbcab | |
thunderdog1138 | b14dc661cc | |
thunderdog1138 | 25e8b87bcc | |
thunderdog1138 | 6e4b3f68bd | |
thunderdog1138 | 70c9f47259 | |
thunderdog1138 | 19821d117b | |
thunderdog1138 | fc7f8a611c | |
thunderdog1138 | 17ea90aa8d | |
thunderdog1138 | 604f5e2b91 | |
thunderdog1138 | 441f8788e5 | |
thunderdog1138 | d866a13291 | |
thunderdog1138 | d699767d18 | |
thunderdog1138 | f85803171f | |
thunderdog1138 | efc1565177 | |
thunderdog1138 | 0c22ed55e1 | |
thunderdog1138 | e5948b9374 | |
thunderdog1138 | e9ca405401 | |
thunderdog1138 | 86b68d1ed6 | |
thunderdog1138 | 2adbf1abd3 | |
thunderdog1138 | ba5c4c9ae6 | |
thunderdog1138 | 864afc31e9 | |
thunderdog1138 | 3511aad4b8 | |
thunderdog1138 | bf9a1addad | |
thunderdog1138 | 72c8402c8b | |
thunderdog1138 | c41ed303ee | |
thunderdog1138 | 7cb8a7d06e | |
thunderdog1138 | 173879104f | |
thunderdog1138 | 4daa2aff11 | |
thunderdog1138 | ca3dcb8ad9 | |
thunderdog1138 | 76bdd3a292 | |
thunderdog1138 | 78b6fac683 | |
thunderdog1138 | 174314695e | |
thunderdog1138 | d68047260b | |
thunderdog1138 | d0bcc9cfab | |
thunderdog1138 | dd824a27b8 | |
thunderdog1138 | 6aa4214b3b | |
thunderdog1138 | 38acb4939c | |
thunderdog1138 | ce877d634b | |
thunderdog1138 | 6a9b092d31 | |
thunderdog1138 | 0ac78554b5 | |
thunderdog1138 | 52fc8f70f5 | |
thunderdog1138 | 6d7fbd3423 | |
thunderdog1138 | 1203237060 | |
thunderdog1138 | a1bbaf71ea | |
thunderdog1138 | 3c4748c7fa | |
thunderdog1138 | ab312116a1 | |
thunderdog1138 | 62bf382b51 | |
thunderdog1138 | f76ab4e975 | |
thunderdog1138 | 5da5a3eac4 | |
thunderdog1138 | ed6daeaeaa | |
thunderdog1138 | d47503437b | |
thunderdog1138 | 587f1043eb | |
thunderdog1138 | f97ecb9c57 | |
thunderdog1138 | 78c27f5595 | |
thunderdog1138 | c161da3c7f | |
thunderdog1138 | da5b7e2e7b | |
thunderdog1138 | f7aa3e860f | |
thunderdog1138 | f6713e5734 | |
thunderdog1138 | cc32ac8430 | |
thunderdog1138 | 15b61f1060 | |
thunderdog1138 | 7353531458 | |
thunderdog1138 | ae868be2de | |
thunderdog1138 | b85a3e5982 | |
thunderdog1138 | 31d59e9810 | |
thunderdog1138 | 0ced46e08d | |
thunderdog1138 | cdc55b195a | |
thunderdog1138 | 92e661107e | |
thunderdog1138 | e89c818e89 | |
thunderdog1138 | e347e93e69 | |
thunderdog1138 | 1a726bc56d | |
thunderdog1138 | c1030c8733 | |
thunderdog1138 | fd4b7a7014 | |
thunderdog1138 | 3f8c276941 | |
thunderdog1138 | a93c49a901 | |
thunderdog1138 | 1f36d2b67c | |
thunderdog1138 | 4820a40de1 | |
thunderdog1138 | f69cb6be7d | |
thunderdog1138 | f01efa43b5 | |
thunderdog1138 | 08d2367b3b | |
thunderdog1138 | 6aba591882 | |
thunderdog1138 | e9656261b6 | |
thunderdog1138 | fb4d173330 | |
thunderdog1138 | 6ee7a70785 | |
thunderdog1138 | 4292f8c60f | |
thunderdog1138 | bbe152c730 | |
thunderdog1138 | 0f03a31e8a | |
thunderdog1138 | 01e46ba0b6 | |
thunderdog1138 | d5db6ed648 | |
thunderdog1138 | b50d15f547 | |
thunderdog1138 | 9d057335df | |
thunderdog1138 | 023233cd80 | |
thunderdog1138 | 05de1d807c | |
thunderdog1138 | cc1f215dd1 | |
thunderdog1138 | 67c0f9071e | |
thunderdog1138 | 6f7899710c | |
thunderdog1138 | 0caa082bf4 | |
thunderdog1138 | d9eee35931 | |
thunderdog1138 | ab6c8a6f10 | |
thunderdog1138 | 85a438e2ef | |
thunderdog1138 | 2c955df008 | |
thunderdog1138 | 9b4b7e5f49 | |
thunderdog1138 | 9df3b19cdf | |
thunderdog1138 | 54c87eb5e3 | |
thunderdog1138 | 2fc43daa39 | |
thunderdog1138 | 7c6cb79052 | |
thunderdog1138 | 92a03c21dd | |
thunderdog1138 | e256b259b1 | |
thunderdog1138 | 29107e4496 | |
thunderdog1138 | 17ea358aa8 | |
thunderdog1138 | 7e5a844b93 | |
thunderdog1138 | 7cd0e4919f | |
thunderdog1138 | 23a543c9d8 | |
thunderdog1138 | fde3c41801 | |
thunderdog1138 | bf1d8604f8 | |
thunderdog1138 | 0aab7c6d35 | |
thunderdog1138 | aa839d70a0 | |
thunderdog1138 | 6e75e273d7 | |
thunderdog1138 | 15474fdf9d | |
thunderdog1138 | a5e5d2bbe6 | |
thunderdog1138 | de182cb8f6 | |
thunderdog1138 | 0cb95f70c1 | |
thunderdog1138 | 68d2e926d9 | |
thunderdog1138 | 4af5477cfc | |
thunderdog1138 | 63d4a1814b | |
thunderdog1138 | f77a2bce8a | |
thunderdog1138 | 3643166afc | |
thunderdog1138 | a23b6ae794 | |
thunderdog1138 | cc0777c83a | |
thunderdog1138 | 33d93165e4 | |
thunderdog1138 | 462ef7cc63 | |
thunderdog1138 | bcd8c3ffcf | |
thunderdog1138 | 8f13f51b11 | |
thunderdog1138 | 4b8e2b7b35 | |
thunderdog1138 | afaa74fbd8 | |
thunderdog1138 | 6c24f37d2e | |
thunderdog1138 | 2ad894e091 | |
thunderdog1138 | 3b3510a9c3 | |
thunderdog1138 | 61bbc0c5d2 | |
thunderdog1138 | 472974eb14 | |
thunderdog1138 | 5562ba4f6b | |
thunderdog1138 | 9e6375c26b | |
thunderdog1138 | 391e090c49 | |
thunderdog1138 | 2364cc3f76 | |
thunderdog1138 | f63d6c3449 | |
thunderdog1138 | a4ff6c843e | |
thunderdog1138 | 533ca5e34c | |
thunderdog1138 | 174d81a518 | |
thunderdog1138 | cb2a2bfd44 | |
thunderdog1138 | f71272f2a4 | |
thunderdog1138 | 2dd88bba69 | |
thunderdog1138 | 6432387f61 | |
thunderdog1138 | d80081dc71 | |
thunderdog1138 | 6740915f3a | |
thunderdog1138 | f5b165b304 | |
thunderdog1138 | 4975236d03 | |
thunderdog1138 | c136e0b4b1 | |
thunderdog1138 | 75b4e10837 | |
thunderdog1138 | 560f96bfa1 | |
thunderdog1138 | c2094e10fa | |
thunderdog1138 | 265cd9e0e4 | |
thunderdog1138 | d948b41d81 | |
thunderdog1138 | a8557cfdc9 | |
thunderdog1138 | 2bd37f26a0 | |
thunderdog1138 | 70e1d3e713 | |
thunderdog1138 | 2a9195f561 | |
thunderdog1138 | 45b38682c3 | |
thunderdog1138 | 2a63097687 | |
thunderdog1138 | 526b3fa20a | |
thunderdog1138 | 059e72f453 | |
thunderdog1138 | c56b7a59bc | |
thunderdog1138 | 760aa4c675 | |
thunderdog1138 | 55eded2a6e | |
thunderdog1138 | b54a174fe2 | |
thunderdog1138 | 5d810eb769 | |
thunderdog1138 | 3b8ddf9a65 | |
thunderdog1138 | 17a7928900 | |
thunderdog1138 | d07fd97760 | |
thunderdog1138 | 42fd4914c3 | |
thunderdog1138 | 6bce39ea17 | |
thunderdog1138 | f5a779ccac | |
thunderdog1138 | 42cefb4a9d | |
thunderdog1138 | 4c1d49cad5 | |
thunderdog1138 | 65bf3cf75f | |
thunderdog1138 | 106fbeb71b | |
thunderdog1138 | b6b5a73387 | |
thunderdog1138 | cfda478d68 | |
thunderdog1138 | 9c18a8887a | |
thunderdog1138 | 3c9e4e95a9 | |
thunderdog1138 | 789594b425 | |
thunderdog1138 | e388b525be | |
thunderdog1138 | 0df81f8ea8 | |
thunderdog1138 | 14f95964f7 | |
thunderdog1138 | 5b1e2d22a0 | |
thunderdog1138 | 02d6d14149 | |
thunderdog1138 | c92986978b | |
thunderdog1138 | 1ceab9f829 | |
thunderdog1138 | 28e978a00c | |
thunderdog1138 | 32756df940 | |
thunderdog1138 | 8bd07a13ea | |
thunderdog1138 | d6fecdb493 | |
thunderdog1138 | c2dd91d98d | |
thunderdog1138 | 9261795a89 | |
thunderdog1138 | 8a6bc65853 | |
thunderdog1138 | 375f987c4f | |
thunderdog1138 | f899f7f9d0 | |
thunderdog1138 | 2fb1f51df1 | |
thunderdog1138 | 20b2c94fb1 | |
thunderdog1138 | 4a300c5c5f | |
thunderdog1138 | 1c8c7feb70 | |
thunderdog1138 | a28d06dd0d | |
thunderdog1138 | d00fe4cf71 |
|
@ -1,3 +1,3 @@
|
||||||
name = Star Wars
|
name = Star Wars broken
|
||||||
author = thunderdog1138
|
author = thunderdog1138
|
||||||
description = Star Wars themed version of the Minetest game.
|
description = Star Wars themed version of the Minetest game.
|
||||||
|
|
After Width: | Height: | Size: 379 B |
After Width: | Height: | Size: 242 KiB |
|
@ -7,24 +7,24 @@ local S = beds.get_translator
|
||||||
|
|
||||||
beds.register_bed("beds:fancy_bed", {
|
beds.register_bed("beds:fancy_bed", {
|
||||||
description = S("Fancy Bed"),
|
description = S("Fancy Bed"),
|
||||||
inventory_image = "beds_bed_fancy.png",
|
inventory_image = "bed_fancy.png",
|
||||||
wield_image = "beds_bed_fancy.png",
|
wield_image = "bed_fancy.png",
|
||||||
tiles = {
|
tiles = {
|
||||||
bottom = {
|
bottom = {
|
||||||
"beds_bed_top1.png",
|
"bed_top1.png",
|
||||||
"beds_bed_under.png",
|
"bed_under.png",
|
||||||
"beds_bed_side1.png",
|
"bed_side1.png",
|
||||||
"beds_bed_side1.png^[transformFX",
|
"bed_side1.png^[transformFX",
|
||||||
"beds_bed_foot.png",
|
"bed_foot.png",
|
||||||
"beds_bed_foot.png",
|
"bed_foot.png",
|
||||||
},
|
},
|
||||||
top = {
|
top = {
|
||||||
"beds_bed_top2.png",
|
"bed_top2.png",
|
||||||
"beds_bed_under.png",
|
"bed_under.png",
|
||||||
"beds_bed_side2.png",
|
"bed_side2.png",
|
||||||
"beds_bed_side2.png^[transformFX",
|
"bed_side2.png^[transformFX",
|
||||||
"beds_bed_head.png",
|
"bed_head.png",
|
||||||
"beds_bed_head.png",
|
"bed_head.png",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
nodebox = {
|
nodebox = {
|
||||||
|
@ -50,7 +50,7 @@ beds.register_bed("beds:fancy_bed", {
|
||||||
recipe = {
|
recipe = {
|
||||||
{"", "", "group:stick"},
|
{"", "", "group:stick"},
|
||||||
{"wool:white", "wool:white", "wool:white"},
|
{"wool:white", "wool:white", "wool:white"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -58,24 +58,24 @@ beds.register_bed("beds:fancy_bed", {
|
||||||
|
|
||||||
beds.register_bed("beds:bed", {
|
beds.register_bed("beds:bed", {
|
||||||
description = S("Simple Bed"),
|
description = S("Simple Bed"),
|
||||||
inventory_image = "beds_bed.png",
|
inventory_image = "bed.png",
|
||||||
wield_image = "beds_bed.png",
|
wield_image = "bed.png",
|
||||||
tiles = {
|
tiles = {
|
||||||
bottom = {
|
bottom = {
|
||||||
"beds_bed_top_bottom.png^[transformR90",
|
"bed_top_bottom.png^[transformR90",
|
||||||
"beds_bed_under.png",
|
"bed_under.png",
|
||||||
"beds_bed_side_bottom_r.png",
|
"bed_side_bottom_r.png",
|
||||||
"beds_bed_side_bottom_r.png^[transformfx",
|
"bed_side_bottom_r.png^[transformfx",
|
||||||
"beds_transparent.png",
|
"transparent.png",
|
||||||
"beds_bed_side_bottom.png"
|
"bed_side_bottom.png"
|
||||||
},
|
},
|
||||||
top = {
|
top = {
|
||||||
"beds_bed_top_top.png^[transformR90",
|
"bed_top_top.png^[transformR90",
|
||||||
"beds_bed_under.png",
|
"bed_under.png",
|
||||||
"beds_bed_side_top_r.png",
|
"bed_side_top_r.png",
|
||||||
"beds_bed_side_top_r.png^[transformfx",
|
"bed_side_top_r.png^[transformfx",
|
||||||
"beds_bed_side_top.png",
|
"bed_side_top.png",
|
||||||
"beds_transparent.png",
|
"transparent.png",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
nodebox = {
|
nodebox = {
|
||||||
|
@ -85,7 +85,7 @@ beds.register_bed("beds:bed", {
|
||||||
selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5},
|
selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5},
|
||||||
recipe = {
|
recipe = {
|
||||||
{"wool:white", "wool:white", "wool:white"},
|
{"wool:white", "wool:white", "wool:white"},
|
||||||
{"group:wood", "group:wood", "group:wood"}
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ minetest.after(4.7, cyclic_update)
|
||||||
|
|
||||||
minetest.register_craftitem("binoculars:binoculars", {
|
minetest.register_craftitem("binoculars:binoculars", {
|
||||||
description = S("Binoculars") .. "\n" .. S("Use with 'Zoom' key"),
|
description = S("Binoculars") .. "\n" .. S("Use with 'Zoom' key"),
|
||||||
inventory_image = "binoculars_binoculars.png",
|
inventory_image = "binoculars.png",
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
|
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
|
|
|
@ -36,7 +36,7 @@ local boat = {
|
||||||
collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5},
|
collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "boats_boat.obj",
|
mesh = "boats_boat.obj",
|
||||||
textures = {"default_wood.png"},
|
textures = {"jogan_wood.png"},
|
||||||
},
|
},
|
||||||
|
|
||||||
driver = nil,
|
driver = nil,
|
||||||
|
@ -238,8 +238,8 @@ minetest.register_entity("boats:boat", boat)
|
||||||
|
|
||||||
minetest.register_craftitem("boats:boat", {
|
minetest.register_craftitem("boats:boat", {
|
||||||
description = S("Boat"),
|
description = S("Boat"),
|
||||||
inventory_image = "boats_inventory.png",
|
inventory_image = "inventory.png",
|
||||||
wield_image = "boats_wield.png",
|
wield_image = "wield.png",
|
||||||
wield_scale = {x = 2, y = 2, z = 1},
|
wield_scale = {x = 2, y = 2, z = 1},
|
||||||
liquids_pointable = true,
|
liquids_pointable = true,
|
||||||
groups = {flammable = 2},
|
groups = {flammable = 2},
|
||||||
|
@ -282,8 +282,8 @@ minetest.register_craft({
|
||||||
output = "boats:boat",
|
output = "boats:boat",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"", "", "" },
|
{"", "", "" },
|
||||||
{"group:wood", "", "group:wood"},
|
{"group:soft_wood", "", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ local cart_entity = {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "carts_cart.b3d",
|
mesh = "carts_cart.b3d",
|
||||||
visual_size = {x=1, y=1},
|
visual_size = {x=1, y=1},
|
||||||
textures = {"carts_cart.png"},
|
textures = {"cart.png"},
|
||||||
},
|
},
|
||||||
|
|
||||||
driver = nil,
|
driver = nil,
|
||||||
|
|
|
@ -6,20 +6,20 @@ local S = carts.get_translator
|
||||||
carts:register_rail("carts:rail", {
|
carts:register_rail("carts:rail", {
|
||||||
description = S("Rail"),
|
description = S("Rail"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"carts_rail_straight.png", "carts_rail_curved.png",
|
"rail_straight.png", "rail_curved.png",
|
||||||
"carts_rail_t_junction.png", "carts_rail_crossing.png"
|
"rail_t_junction.png", "rail_crossing.png"
|
||||||
},
|
},
|
||||||
inventory_image = "carts_rail_straight.png",
|
inventory_image = "rail_straight.png",
|
||||||
wield_image = "carts_rail_straight.png",
|
wield_image = "rail_straight.png",
|
||||||
groups = carts:get_rail_groups(),
|
groups = carts:get_rail_groups(),
|
||||||
}, {})
|
}, {})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "carts:rail 18",
|
output = "carts:rail 18",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ minetest.register_alias("default:rail", "carts:rail")
|
||||||
carts:register_rail("carts:powerrail", {
|
carts:register_rail("carts:powerrail", {
|
||||||
description = S("Powered Rail"),
|
description = S("Powered Rail"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png",
|
"rail_straight_pwr.png", "rail_curved_pwr.png",
|
||||||
"carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png"
|
"rail_t_junction_pwr.png", "rail_crossing_pwr.png"
|
||||||
},
|
},
|
||||||
groups = carts:get_rail_groups(),
|
groups = carts:get_rail_groups(),
|
||||||
}, {acceleration = 5})
|
}, {acceleration = 5})
|
||||||
|
@ -38,9 +38,9 @@ carts:register_rail("carts:powerrail", {
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "carts:powerrail 18",
|
output = "carts:powerrail 18",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "default:mese_crystal", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "default:mese_crystal", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -48,8 +48,8 @@ minetest.register_craft({
|
||||||
carts:register_rail("carts:brakerail", {
|
carts:register_rail("carts:brakerail", {
|
||||||
description = S("Brake Rail"),
|
description = S("Brake Rail"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"carts_rail_straight_brk.png", "carts_rail_curved_brk.png",
|
"rail_straight_brk.png", "rail_curved_brk.png",
|
||||||
"carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png"
|
"rail_t_junction_brk.png", "rail_crossing_brk.png"
|
||||||
},
|
},
|
||||||
groups = carts:get_rail_groups(),
|
groups = carts:get_rail_groups(),
|
||||||
}, {acceleration = -3})
|
}, {acceleration = -3})
|
||||||
|
@ -57,8 +57,8 @@ carts:register_rail("carts:brakerail", {
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "carts:brakerail 18",
|
output = "carts:brakerail 18",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "default:coal_lump", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "default:coal_lump", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "group:wood", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "group:soft_wood", "default:durasteel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -289,12 +289,12 @@ end
|
||||||
default.chest.register_chest("chest", {
|
default.chest.register_chest("chest", {
|
||||||
description = S("Chest"),
|
description = S("Chest"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_chest_top.png",
|
"chest_top.png",
|
||||||
"default_chest_top.png",
|
"chest_top.png",
|
||||||
"default_chest_side.png",
|
"chest_side.png",
|
||||||
"default_chest_side.png",
|
"chest_side.png",
|
||||||
"default_chest_front.png",
|
"chest_front.png",
|
||||||
"default_chest_inside.png"
|
"chest_inside.png"
|
||||||
},
|
},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
sound_open = "default_chest_open",
|
sound_open = "default_chest_open",
|
||||||
|
@ -305,12 +305,12 @@ default.chest.register_chest("chest", {
|
||||||
default.chest.register_chest("chest_locked", {
|
default.chest.register_chest("chest_locked", {
|
||||||
description = S("Locked Chest"),
|
description = S("Locked Chest"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_chest_top.png",
|
"chest_top.png",
|
||||||
"default_chest_top.png",
|
"chest_top.png",
|
||||||
"default_chest_side.png",
|
"chest_side.png",
|
||||||
"default_chest_side.png",
|
"chest_side.png",
|
||||||
"default_chest_lock.png",
|
"chest_lock.png",
|
||||||
"default_chest_inside.png"
|
"chest_inside.png"
|
||||||
},
|
},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
sound_open = "default_chest_open",
|
sound_open = "default_chest_open",
|
||||||
|
|
|
@ -1,73 +1,66 @@
|
||||||
-- mods/default/crafting.lua
|
-- mods/default/crafting.lua
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:wood 4",
|
output = "default:jogan_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:tree"},
|
{"default:jogan_trunk"},
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:junglewood 4",
|
|
||||||
recipe = {
|
|
||||||
{"default:jungletree"},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:pine_wood 4",
|
output = "default:pine_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:pine_tree"},
|
{"default:pine_trunk"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:acacia_wood 4",
|
output = "default:uneti_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:acacia_tree"},
|
{"default:uneti_trunk"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:aspen_wood 4",
|
output = "default:brylark_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:aspen_tree"},
|
{"default:brylark_trunk"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:wood",
|
output = "default:wroshyr_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:bush_stem"},
|
{"default:wroshyr_trunk"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:acacia_wood",
|
output = "default:palm_wood 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:acacia_bush_stem"},
|
{"default:palm_trunk"},
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:pine_wood",
|
|
||||||
recipe = {
|
|
||||||
{"default:pine_bush_stem"},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:stick 4",
|
output = "default:stick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood"},
|
{"default:bush_stem"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:sign_wall_steel 3",
|
output = "default:stick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
{"group:soft_wood"},
|
||||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:sign_wall_durasteel 3",
|
||||||
|
recipe = {
|
||||||
|
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
|
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
{"", "group:stick", ""},
|
{"", "group:stick", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -75,8 +68,8 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:sign_wall_wood 3",
|
output = "default:sign_wall_wood 3",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"", "group:stick", ""},
|
{"", "group:stick", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -92,7 +85,7 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:pick_wood",
|
output = "default:pick_wood",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"", "group:stick", ""},
|
{"", "group:stick", ""},
|
||||||
{"", "group:stick", ""},
|
{"", "group:stick", ""},
|
||||||
}
|
}
|
||||||
|
@ -137,7 +130,7 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:shovel_wood",
|
output = "default:shovel_wood",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood"},
|
{"group:soft_wood"},
|
||||||
{"group:stick"},
|
{"group:stick"},
|
||||||
{"group:stick"},
|
{"group:stick"},
|
||||||
}
|
}
|
||||||
|
@ -185,8 +178,8 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:axe_wood",
|
output = "default:axe_wood",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "group:stick"},
|
{"group:soft_wood", "group:stick"},
|
||||||
{"", "group:stick"},
|
{"", "group:stick"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -230,8 +223,8 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:sword_wood",
|
output = "default:sword_wood",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood"},
|
{"group:soft_wood"},
|
||||||
{"group:wood"},
|
{"group:soft_wood"},
|
||||||
{"group:stick"},
|
{"group:stick"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -282,18 +275,18 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:chest",
|
output = "default:chest",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "", "group:wood"},
|
{"group:soft_wood", "", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:chest_locked",
|
output = "default:chest_locked",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "default:durasteel_ingot", "group:wood"},
|
{"group:soft_wood", "default:durasteel_ingot", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -313,7 +306,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:coalblock",
|
output = "default:coal_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:coal_lump", "default:coal_lump", "default:coal_lump"},
|
{"default:coal_lump", "default:coal_lump", "default:coal_lump"},
|
||||||
{"default:coal_lump", "default:coal_lump", "default:coal_lump"},
|
{"default:coal_lump", "default:coal_lump", "default:coal_lump"},
|
||||||
|
@ -324,12 +317,12 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:coal_lump 9",
|
output = "default:coal_lump 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:coalblock"},
|
{"default:coal_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:durasteelblock",
|
output = "default:durasteel_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
{"default:durasteel_ingot", "default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
|
@ -340,12 +333,12 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:durasteel_ingot 9",
|
output = "default:durasteel_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteelblock"},
|
{"default:durasteel_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:copperblock",
|
output = "default:copper_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
||||||
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
||||||
|
@ -356,12 +349,12 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:copper_ingot 9",
|
output = "default:copper_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:copperblock"},
|
{"default:copper_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:tinblock",
|
output = "default:tin_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"},
|
{"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"},
|
||||||
{"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"},
|
{"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"},
|
||||||
|
@ -372,7 +365,7 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:tin_ingot 9",
|
output = "default:tin_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:tinblock"},
|
{"default:tin_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -386,7 +379,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:bronzeblock",
|
output = "default:bronze_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"},
|
{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"},
|
||||||
{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"},
|
{"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"},
|
||||||
|
@ -397,12 +390,12 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:bronze_ingot 9",
|
output = "default:bronze_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:bronzeblock"},
|
{"default:bronze_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:goldblock",
|
output = "default:gold_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"},
|
{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"},
|
||||||
{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"},
|
{"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"},
|
||||||
|
@ -413,12 +406,12 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:gold_ingot 9",
|
output = "default:gold_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:goldblock"},
|
{"default:gold_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:beskarblock",
|
output = "default:beskar_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:beskar_ingot", "default:beskar_ingot", "default:beskar_ingot"},
|
{"default:beskar_ingot", "default:beskar_ingot", "default:beskar_ingot"},
|
||||||
{"default:beskar_ingot", "default:beskar_ingot", "default:beskar_ingot"},
|
{"default:beskar_ingot", "default:beskar_ingot", "default:beskar_ingot"},
|
||||||
|
@ -429,7 +422,7 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:beskar_ingot 9",
|
output = "default:beskar_ingot 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:beskarblock"},
|
{"default:beskar_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -449,7 +442,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:sandstonebrick 4",
|
output = "default:sandstone_brick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:sandstone", "default:sandstone"},
|
{"default:sandstone", "default:sandstone"},
|
||||||
{"default:sandstone", "default:sandstone"},
|
{"default:sandstone", "default:sandstone"},
|
||||||
|
@ -545,7 +538,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:brick",
|
output = "default:brick_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:clay_brick", "default:clay_brick"},
|
{"default:clay_brick", "default:clay_brick"},
|
||||||
{"default:clay_brick", "default:clay_brick"},
|
{"default:clay_brick", "default:clay_brick"},
|
||||||
|
@ -555,14 +548,14 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:clay_brick 4",
|
output = "default:clay_brick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:brick"},
|
{"default:brick_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:paper",
|
output = "default:paper",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:papyrus", "default:papyrus", "default:papyrus"},
|
{"default:reeds", "default:reeds", "default:reeds"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -578,9 +571,9 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:bookshelf",
|
output = "default:bookshelf",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"default:book", "default:book", "default:book"},
|
{"default:book", "default:book", "default:book"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -602,55 +595,6 @@ minetest.register_craft({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:mese",
|
|
||||||
recipe = {
|
|
||||||
{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"},
|
|
||||||
{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"},
|
|
||||||
{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:mese_crystal 9",
|
|
||||||
recipe = {
|
|
||||||
{"default:mese"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:mese_crystal_fragment 9",
|
|
||||||
recipe = {
|
|
||||||
{"default:mese_crystal"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:mese_crystal",
|
|
||||||
recipe = {
|
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:meselamp",
|
|
||||||
recipe = {
|
|
||||||
{"default:glass"},
|
|
||||||
{"default:mese_crystal"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:mese_post_light 3",
|
|
||||||
recipe = {
|
|
||||||
{"", "default:glass", ""},
|
|
||||||
{"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"},
|
|
||||||
{"", "group:wood", ""},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:obsidian_shard 9",
|
output = "default:obsidian_shard 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
|
@ -668,7 +612,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:obsidianbrick 4",
|
output = "default:obsidian_brick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:obsidian", "default:obsidian"},
|
{"default:obsidian", "default:obsidian"},
|
||||||
{"default:obsidian", "default:obsidian"}
|
{"default:obsidian", "default:obsidian"}
|
||||||
|
@ -685,7 +629,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:stonebrick 4",
|
output = "default:stone_brick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:stone", "default:stone"},
|
{"default:stone", "default:stone"},
|
||||||
{"default:stone", "default:stone"},
|
{"default:stone", "default:stone"},
|
||||||
|
@ -702,7 +646,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:desert_stonebrick 4",
|
output = "default:desert_stone_brick 4",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:desert_stone", "default:desert_stone"},
|
{"default:desert_stone", "default:desert_stone"},
|
||||||
{"default:desert_stone", "default:desert_stone"},
|
{"default:desert_stone", "default:desert_stone"},
|
||||||
|
@ -719,7 +663,7 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:snowblock",
|
output = "default:snow_block",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:snow", "default:snow", "default:snow"},
|
{"default:snow", "default:snow", "default:snow"},
|
||||||
{"default:snow", "default:snow", "default:snow"},
|
{"default:snow", "default:snow", "default:snow"},
|
||||||
|
@ -730,25 +674,19 @@ minetest.register_craft({
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:snow 9",
|
output = "default:snow 9",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:snowblock"},
|
{"default:snow_block"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:emergent_jungle_sapling",
|
output = "default:quicksand",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:junglesapling", "default:junglesapling", "default:junglesapling"},
|
{"group:sand", "group:sand", "group:sand"},
|
||||||
{"default:junglesapling", "default:junglesapling", "default:junglesapling"},
|
{"group:sand", "bucket:bucket_water", "group:sand"},
|
||||||
{"default:junglesapling", "default:junglesapling", "default:junglesapling"},
|
{"group:sand", "group:sand", "group:sand"},
|
||||||
}
|
},
|
||||||
})
|
replacements = {
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_empty"}
|
||||||
minetest.register_craft({
|
|
||||||
output = "default:large_cactus_seedling",
|
|
||||||
recipe = {
|
|
||||||
{"", "default:cactus", ""},
|
|
||||||
{"default:cactus", "default:cactus", "default:cactus"},
|
|
||||||
{"", "default:cactus", ""},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -799,8 +737,8 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "cooking",
|
type = "cooking",
|
||||||
output = "default:beskar_ingot",
|
output = "default:durasteel_ingot",
|
||||||
recipe = "default:iron_lump",
|
recipe = "default:zersium_lump",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -852,71 +790,69 @@ minetest.register_craft({
|
||||||
-- Fuels
|
-- Fuels
|
||||||
--
|
--
|
||||||
|
|
||||||
-- Support use of group:tree, includes default:tree which has the same burn time
|
-- Burn time for trunks
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "group:tree",
|
recipe = "default:jogan_trunk",
|
||||||
burntime = 30,
|
burntime = 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Burn time for all woods are in order of wood density,
|
|
||||||
-- which is also the order of wood colour darkness:
|
|
||||||
-- aspen, pine, apple, acacia, jungle
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:aspen_tree",
|
recipe = "default:pine_trunk",
|
||||||
burntime = 22,
|
burntime = 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:pine_tree",
|
recipe = "default:palm_trunk",
|
||||||
burntime = 26,
|
burntime = 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:acacia_tree",
|
recipe = "default:uneti_trunk",
|
||||||
burntime = 34,
|
burntime = 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:jungletree",
|
recipe = "default:wroshyr_trunk",
|
||||||
burntime = 38,
|
burntime = 30,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
-- Support use of group:wood, includes default:wood which has the same burn time
|
-- Burn time for wood
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "group:wood",
|
recipe = "default:jogan_wood",
|
||||||
burntime = 7,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:aspen_wood",
|
|
||||||
burntime = 5,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:pine_wood",
|
recipe = "default:pine_wood",
|
||||||
burntime = 6,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:acacia_wood",
|
recipe = "default:palm_wood",
|
||||||
burntime = 8,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:junglewood",
|
recipe = "default:uneti_wood",
|
||||||
burntime = 9,
|
burntime = 7,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:wroshyr_wood",
|
||||||
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -933,108 +869,66 @@ minetest.register_craft({
|
||||||
burntime = 3,
|
burntime = 3,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:acacia_bush_sapling",
|
|
||||||
burntime = 4,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:pine_bush_sapling",
|
recipe = "default:fence_jogan_wood",
|
||||||
burntime = 2,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:aspen_sapling",
|
|
||||||
burntime = 4,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:pine_sapling",
|
|
||||||
burntime = 5,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:acacia_sapling",
|
|
||||||
burntime = 6,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:junglesapling",
|
|
||||||
burntime = 6,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:emergent_jungle_sapling",
|
|
||||||
burntime = 7,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:fence_aspen_wood",
|
|
||||||
burntime = 5,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_pine_wood",
|
recipe = "default:fence_pine_wood",
|
||||||
burntime = 6,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:fence_wood",
|
|
||||||
burntime = 7,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_acacia_wood",
|
recipe = "default:fence_palm_wood",
|
||||||
burntime = 8,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_junglewood",
|
recipe = "default:fence_uneti_wood",
|
||||||
burntime = 9,
|
burntime = 7,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:fence_wroshyr_wood",
|
||||||
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_rail_aspen_wood",
|
recipe = "default:fence_rail_jogan_wood",
|
||||||
burntime = 3,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:fence_rail_pine_wood",
|
|
||||||
burntime = 4,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:fence_rail_wood",
|
|
||||||
burntime = 5,
|
burntime = 5,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_rail_acacia_wood",
|
recipe = "default:fence_rail_pine_wood",
|
||||||
burntime = 6,
|
burntime = 5,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:fence_rail_junglewood",
|
recipe = "default:fence_rail_palm_wood",
|
||||||
burntime = 7,
|
burntime = 5,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:fence_rail_uneti_wood",
|
||||||
|
burntime = 5,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:fence_rail_wroshyr_wood",
|
||||||
|
burntime = 5,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -1046,19 +940,7 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:acacia_bush_stem",
|
recipe = "default:jungle_grass",
|
||||||
burntime = 8,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:pine_bush_stem",
|
|
||||||
burntime = 6,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:junglegrass",
|
|
||||||
burntime = 3,
|
burntime = 3,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1076,13 +958,7 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:large_cactus_seedling",
|
recipe = "default:reeds",
|
||||||
burntime = 5,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "default:papyrus",
|
|
||||||
burntime = 3,
|
burntime = 3,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1136,7 +1012,7 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:coalblock",
|
recipe = "default:coal_block",
|
||||||
burntime = 370,
|
burntime = 370,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1160,7 +1036,7 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "default:marram_grass_1",
|
recipe = "default:saago_grass_1",
|
||||||
burntime = 2,
|
burntime = 2,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,13 @@ local S = default.get_translator
|
||||||
|
|
||||||
minetest.register_craftitem("default:stick", {
|
minetest.register_craftitem("default:stick", {
|
||||||
description = S("Stick"),
|
description = S("Stick"),
|
||||||
inventory_image = "default_stick.png",
|
inventory_image = "stick.png",
|
||||||
groups = {stick = 1, flammable = 2},
|
groups = {stick = 1, flammable = 2},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:paper", {
|
minetest.register_craftitem("default:paper", {
|
||||||
description = S("Paper"),
|
description = S("Paper"),
|
||||||
inventory_image = "default_paper.png",
|
inventory_image = "paper.png",
|
||||||
groups = {flammable = 3},
|
groups = {flammable = 3},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -160,14 +160,14 @@ end)
|
||||||
|
|
||||||
minetest.register_craftitem("default:book", {
|
minetest.register_craftitem("default:book", {
|
||||||
description = S("Book"),
|
description = S("Book"),
|
||||||
inventory_image = "default_book.png",
|
inventory_image = "book.png",
|
||||||
groups = {book = 1, flammable = 3},
|
groups = {book = 1, flammable = 3},
|
||||||
on_use = book_on_use,
|
on_use = book_on_use,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:book_written", {
|
minetest.register_craftitem("default:book_written", {
|
||||||
description = S("Book with Text"),
|
description = S("Book with Text"),
|
||||||
inventory_image = "default_book_written.png",
|
inventory_image = "book_written.png",
|
||||||
groups = {book = 1, not_in_creative_inventory = 1, flammable = 3},
|
groups = {book = 1, not_in_creative_inventory = 1, flammable = 3},
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
on_use = book_on_use,
|
on_use = book_on_use,
|
||||||
|
@ -204,7 +204,7 @@ end)
|
||||||
|
|
||||||
minetest.register_craftitem("default:skeleton_keycard", {
|
minetest.register_craftitem("default:skeleton_keycard", {
|
||||||
description = S("Skeleton Keycard"),
|
description = S("Skeleton Keycard"),
|
||||||
inventory_image = "default_keycard_skeleton.png",
|
inventory_image = "keycard_skeleton.png",
|
||||||
groups = {key = 1},
|
groups = {key = 1},
|
||||||
on_use = function(itemstack, user, pointed_thing)
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
if pointed_thing.type ~= "node" then
|
if pointed_thing.type ~= "node" then
|
||||||
|
@ -260,98 +260,106 @@ minetest.register_craftitem("default:skeleton_keycard", {
|
||||||
|
|
||||||
minetest.register_craftitem("default:coal_lump", {
|
minetest.register_craftitem("default:coal_lump", {
|
||||||
description = S("Coal Lump"),
|
description = S("Coal Lump"),
|
||||||
inventory_image = "default_coal_lump.png",
|
inventory_image = "coal_lump.png",
|
||||||
groups = {coal = 1, flammable = 1}
|
groups = {coal = 1, flammable = 1}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:iron_lump", {
|
minetest.register_craftitem("default:zersium_lump", {
|
||||||
description = S("Iron Lump"),
|
description = S("Zersium Lump"),
|
||||||
inventory_image = "default_iron_lump.png"
|
inventory_image = "zersium_lump.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:copper_lump", {
|
minetest.register_craftitem("default:copper_lump", {
|
||||||
description = S("Copper Lump"),
|
description = S("Copper Lump"),
|
||||||
inventory_image = "default_copper_lump.png"
|
inventory_image = "copper_lump.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:tin_lump", {
|
minetest.register_craftitem("default:tin_lump", {
|
||||||
description = S("Tin Lump"),
|
description = S("Tin Lump"),
|
||||||
inventory_image = "default_tin_lump.png"
|
inventory_image = "tin_lump.png"
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem("default:mese_crystal", {
|
|
||||||
description = S("Mese Crystal"),
|
|
||||||
inventory_image = "default_mese_crystal.png",
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:gold_lump", {
|
minetest.register_craftitem("default:gold_lump", {
|
||||||
description = S("Gold Lump"),
|
description = S("Gold Lump"),
|
||||||
inventory_image = "default_gold_lump.png"
|
inventory_image = "gold_lump.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:beskar_lump", {
|
minetest.register_craftitem("default:beskar_lump", {
|
||||||
description = S("Beskar Lump"),
|
description = S("Beskar Lump"),
|
||||||
inventory_image = "default_beskar_lump.png",
|
inventory_image = "beskar_lump.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:clay_lump", {
|
minetest.register_craftitem("default:clay_lump", {
|
||||||
description = S("Clay Lump"),
|
description = S("Clay Lump"),
|
||||||
inventory_image = "default_clay_lump.png",
|
inventory_image = "clay_lump.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:durasteel_ingot", {
|
minetest.register_craftitem("default:durasteel_ingot", {
|
||||||
description = S("Durasteel Ingot"),
|
description = S("Durasteel Ingot"),
|
||||||
inventory_image = "default_durasteel_ingot.png"
|
inventory_image = "durasteel_ingot.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:copper_ingot", {
|
minetest.register_craftitem("default:copper_ingot", {
|
||||||
description = S("Copper Ingot"),
|
description = S("Copper Ingot"),
|
||||||
inventory_image = "default_copper_ingot.png"
|
inventory_image = "copper_ingot.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:tin_ingot", {
|
minetest.register_craftitem("default:tin_ingot", {
|
||||||
description = S("Tin Ingot"),
|
description = S("Tin Ingot"),
|
||||||
inventory_image = "default_tin_ingot.png"
|
inventory_image = "tin_ingot.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:bronze_ingot", {
|
minetest.register_craftitem("default:bronze_ingot", {
|
||||||
description = S("Bronze Ingot"),
|
description = S("Bronze Ingot"),
|
||||||
inventory_image = "default_bronze_ingot.png"
|
inventory_image = "bronze_ingot.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:gold_ingot", {
|
minetest.register_craftitem("default:gold_ingot", {
|
||||||
description = S("Gold Ingot"),
|
description = S("Gold Ingot"),
|
||||||
inventory_image = "default_gold_ingot.png"
|
inventory_image = "gold_ingot.png"
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:beskar_ingot", {
|
minetest.register_craftitem("default:beskar_ingot", {
|
||||||
description = S("Beskar Ingot"),
|
description = S("Beskar Ingot"),
|
||||||
inventory_image = "default_beskar_ingot.png"
|
inventory_image = "beskar_ingot.png"
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem("default:mese_crystal_fragment", {
|
|
||||||
description = S("Mese Crystal Fragment"),
|
|
||||||
inventory_image = "default_mese_crystal_fragment.png",
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:clay_brick", {
|
minetest.register_craftitem("default:clay_brick", {
|
||||||
description = S("Clay Brick"),
|
description = S("Clay Brick"),
|
||||||
inventory_image = "default_clay_brick.png",
|
inventory_image = "clay_brick.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:obsidian_shard", {
|
minetest.register_craftitem("default:obsidian_shard", {
|
||||||
description = S("Obsidian Shard"),
|
description = S("Obsidian Shard"),
|
||||||
inventory_image = "default_obsidian_shard.png",
|
inventory_image = "obsidian_shard.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:flint", {
|
minetest.register_craftitem("default:kyber_crystal_blue", {
|
||||||
description = S("Flint"),
|
description = S("Kyber Crystal"),
|
||||||
inventory_image = "default_flint.png"
|
inventory_image = "kyber_crystal.png",
|
||||||
|
stack_max = 1
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craftitem("default:blueberries", {
|
minetest.register_craftitem("default:kyber_crystal_green", {
|
||||||
description = S("Blueberries"),
|
description = S("Kyber Crystal"),
|
||||||
inventory_image = "default_blueberries.png",
|
inventory_image = "kyber_crystal.png",
|
||||||
groups = {food_blueberries = 1, food_berry = 1},
|
stack_max = 1
|
||||||
on_use = minetest.item_eat(2),
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:kyber_crystal_yellow", {
|
||||||
|
description = S("Kyber Crystal"),
|
||||||
|
inventory_image = "kyber_crystal.png",
|
||||||
|
stack_max = 1
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:kyber_crystal_purple", {
|
||||||
|
description = S("Kyber Crystal"),
|
||||||
|
inventory_image = "kyber_crystal.png",
|
||||||
|
stack_max = 1
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:kyber_crystal_red", {
|
||||||
|
description = S("Bleeding Kyber Crystal"),
|
||||||
|
inventory_image = "kyber_crystal_red.png",
|
||||||
|
stack_max = 1
|
||||||
})
|
})
|
|
@ -0,0 +1,22 @@
|
||||||
|
-- support for MT game translation.
|
||||||
|
local S = default.get_translator
|
||||||
|
|
||||||
|
-- Jogan Fruit
|
||||||
|
minetest.register_node("default:jogan_fruit", {
|
||||||
|
description = S("Jogan Fruit"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"jogan_fruit.png"},
|
||||||
|
inventory_image = "jogan_fruit.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
is_ground_content = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16}
|
||||||
|
},
|
||||||
|
groups = {food_apple = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
|
||||||
|
leafdecay = 3, leafdecay_drop = 1},
|
||||||
|
on_use = minetest.item_eat(2),
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
|
@ -210,7 +210,7 @@ end
|
||||||
function default.grow_papyrus(pos, node)
|
function default.grow_papyrus(pos, node)
|
||||||
pos.y = pos.y - 1
|
pos.y = pos.y - 1
|
||||||
local name = minetest.get_node(pos).name
|
local name = minetest.get_node(pos).name
|
||||||
if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then
|
if name ~= "ethereal:grove_dirt" and name ~= "default:dirt" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if not minetest.find_node_near(pos, 3, {"group:water"}) then
|
if not minetest.find_node_near(pos, 3, {"group:water"}) then
|
||||||
|
@ -247,7 +247,7 @@ minetest.register_abm({
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Grow papyrus",
|
label = "Grow papyrus",
|
||||||
nodenames = {"default:papyrus"},
|
nodenames = {"default:papyrus"},
|
||||||
neighbors = {"default:dirt", "default:dirt_with_grass"},
|
neighbors = {"default:dirt", "ethereal:grove_dirt"},
|
||||||
interval = 14,
|
interval = 14,
|
||||||
chance = 71,
|
chance = 71,
|
||||||
action = function(...)
|
action = function(...)
|
||||||
|
@ -519,7 +519,7 @@ minetest.register_abm({
|
||||||
if name == "default:snow" then
|
if name == "default:snow" then
|
||||||
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
minetest.set_node(pos, {name = "default:dirt_with_snow"})
|
||||||
elseif minetest.get_item_group(name, "grass") ~= 0 then
|
elseif minetest.get_item_group(name, "grass") ~= 0 then
|
||||||
minetest.set_node(pos, {name = "default:dirt_with_grass"})
|
minetest.set_node(pos, {name = "ethereal:grove_dirt"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -531,7 +531,7 @@ minetest.register_abm({
|
||||||
|
|
||||||
minetest.register_abm({
|
minetest.register_abm({
|
||||||
label = "Grass covered",
|
label = "Grass covered",
|
||||||
nodenames = {"group:spreading_dirt_type", "default:dry_dirt_with_dry_grass"},
|
nodenames = {"group:spreading_dirt_type", "default:dirt_with_dry_grass"},
|
||||||
interval = 8,
|
interval = 8,
|
||||||
chance = 50,
|
chance = 50,
|
||||||
catch_up = false,
|
catch_up = false,
|
||||||
|
@ -542,7 +542,7 @@ minetest.register_abm({
|
||||||
if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or
|
if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or
|
||||||
nodedef.paramtype == "light") and
|
nodedef.paramtype == "light") and
|
||||||
nodedef.liquidtype == "none") then
|
nodedef.liquidtype == "none") then
|
||||||
if node.name == "default:dry_dirt_with_dry_grass" then
|
if node.name == "default:dirt_with_dry_grass" then
|
||||||
minetest.set_node(pos, {name = "default:dry_dirt"})
|
minetest.set_node(pos, {name = "default:dry_dirt"})
|
||||||
else
|
else
|
||||||
minetest.set_node(pos, {name = "default:dirt"})
|
minetest.set_node(pos, {name = "default:dirt"})
|
||||||
|
|
|
@ -11,8 +11,8 @@ function default.get_furnace_active_formspec(fuel_percent, item_percent)
|
||||||
return "size[8,8.5]"..
|
return "size[8,8.5]"..
|
||||||
"list[context;src;2.75,0.5;1,1;]"..
|
"list[context;src;2.75,0.5;1,1;]"..
|
||||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||||
"image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:"..
|
"image[2.75,1.5;1,1;furnace_fire_bg.png^[lowpart:"..
|
||||||
(fuel_percent)..":default_furnace_fire_fg.png]"..
|
(fuel_percent)..":furnace_fire_fg.png]"..
|
||||||
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:"..
|
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:"..
|
||||||
(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]"..
|
(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]"..
|
||||||
"list[context;dst;4.75,0.96;2,2;]"..
|
"list[context;dst;4.75,0.96;2,2;]"..
|
||||||
|
@ -31,7 +31,7 @@ function default.get_furnace_inactive_formspec()
|
||||||
return "size[8,8.5]"..
|
return "size[8,8.5]"..
|
||||||
"list[context;src;2.75,0.5;1,1;]"..
|
"list[context;src;2.75,0.5;1,1;]"..
|
||||||
"list[context;fuel;2.75,2.5;1,1;]"..
|
"list[context;fuel;2.75,2.5;1,1;]"..
|
||||||
"image[2.75,1.5;1,1;default_furnace_fire_bg.png]"..
|
"image[2.75,1.5;1,1;furnace_fire_bg.png]"..
|
||||||
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
||||||
"list[context;dst;4.75,0.96;2,2;]"..
|
"list[context;dst;4.75,0.96;2,2;]"..
|
||||||
"list[current_player;main;0,4.25;8,1;]"..
|
"list[current_player;main;0,4.25;8,1;]"..
|
||||||
|
@ -275,9 +275,9 @@ end
|
||||||
minetest.register_node("default:furnace", {
|
minetest.register_node("default:furnace", {
|
||||||
description = S("Furnace"),
|
description = S("Furnace"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_furnace_top.png", "default_furnace_bottom.png",
|
"furnace_top.png", "furnace_bottom.png",
|
||||||
"default_furnace_side.png", "default_furnace_side.png",
|
"furnace_side.png", "furnace_side.png",
|
||||||
"default_furnace_side.png", "default_furnace_front.png"
|
"furnace_side.png", "furnace_front.png"
|
||||||
},
|
},
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
groups = {cracky=2},
|
groups = {cracky=2},
|
||||||
|
@ -323,11 +323,11 @@ minetest.register_node("default:furnace", {
|
||||||
minetest.register_node("default:furnace_active", {
|
minetest.register_node("default:furnace_active", {
|
||||||
description = S("Furnace"),
|
description = S("Furnace"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_furnace_top.png", "default_furnace_bottom.png",
|
"furnace_top.png", "furnace_bottom.png",
|
||||||
"default_furnace_side.png", "default_furnace_side.png",
|
"furnace_side.png", "furnace_side.png",
|
||||||
"default_furnace_side.png",
|
"furnace_side.png",
|
||||||
{
|
{
|
||||||
image = "default_furnace_front_active.png",
|
image = "furnace_front_active.png",
|
||||||
backface_culling = false,
|
backface_culling = false,
|
||||||
animation = {
|
animation = {
|
||||||
type = "vertical_frames",
|
type = "vertical_frames",
|
||||||
|
|
|
@ -54,15 +54,15 @@ default.gui_survival_form = "size[8,8.5]"..
|
||||||
local default_path = minetest.get_modpath("default")
|
local default_path = minetest.get_modpath("default")
|
||||||
|
|
||||||
dofile(default_path.."/functions.lua")
|
dofile(default_path.."/functions.lua")
|
||||||
dofile(default_path.."/trees.lua")
|
|
||||||
dofile(default_path.."/nodes.lua")
|
dofile(default_path.."/nodes.lua")
|
||||||
dofile(default_path.."/chests.lua")
|
dofile(default_path.."/chests.lua")
|
||||||
dofile(default_path.."/furnace.lua")
|
dofile(default_path.."/furnace.lua")
|
||||||
dofile(default_path.."/torch.lua")
|
dofile(default_path.."/torch.lua")
|
||||||
dofile(default_path.."/tools.lua")
|
dofile(default_path.."/tools.lua")
|
||||||
|
dofile(default_path.."/food.lua")
|
||||||
dofile(default_path.."/item_entity.lua")
|
dofile(default_path.."/item_entity.lua")
|
||||||
dofile(default_path.."/craftitems.lua")
|
dofile(default_path.."/craftitems.lua")
|
||||||
dofile(default_path.."/crafting.lua")
|
dofile(default_path.."/crafting.lua")
|
||||||
dofile(default_path.."/mapgen.lua")
|
|
||||||
dofile(default_path.."/aliases.lua")
|
dofile(default_path.."/aliases.lua")
|
||||||
dofile(default_path.."/legacy.lua")
|
dofile(default_path.."/legacy.lua")
|
||||||
|
dofile(default_path.."/mapgen.lua")
|
||||||
|
|
|
@ -35,7 +35,7 @@ local item = {
|
||||||
minsize = 5,
|
minsize = 5,
|
||||||
maxsize = 5,
|
maxsize = 5,
|
||||||
collisiondetection = true,
|
collisiondetection = true,
|
||||||
texture = "default_item_smoke.png"
|
texture = "smoke.png"
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ minetest.register_item(":", {
|
||||||
|
|
||||||
minetest.register_tool("default:pick_wood", {
|
minetest.register_tool("default:pick_wood", {
|
||||||
description = S("Wooden Pickaxe"),
|
description = S("Wooden Pickaxe"),
|
||||||
inventory_image = "default_tool_woodpick.png",
|
inventory_image = "pick_wood.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.2,
|
full_punch_interval = 1.2,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -41,7 +41,7 @@ minetest.register_tool("default:pick_wood", {
|
||||||
|
|
||||||
minetest.register_tool("default:pick_stone", {
|
minetest.register_tool("default:pick_stone", {
|
||||||
description = S("Stone Pickaxe"),
|
description = S("Stone Pickaxe"),
|
||||||
inventory_image = "default_tool_stonepick.png",
|
inventory_image = "pick_stone.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.3,
|
full_punch_interval = 1.3,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -56,7 +56,7 @@ minetest.register_tool("default:pick_stone", {
|
||||||
|
|
||||||
minetest.register_tool("default:pick_bronze", {
|
minetest.register_tool("default:pick_bronze", {
|
||||||
description = S("Bronze Pickaxe"),
|
description = S("Bronze Pickaxe"),
|
||||||
inventory_image = "default_tool_bronzepick.png",
|
inventory_image = "pick_bronze.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -71,7 +71,7 @@ minetest.register_tool("default:pick_bronze", {
|
||||||
|
|
||||||
minetest.register_tool("default:pick_durasteel", {
|
minetest.register_tool("default:pick_durasteel", {
|
||||||
description = S("Durasteel Pickaxe"),
|
description = S("Durasteel Pickaxe"),
|
||||||
inventory_image = "default_tool_durasteelpick.png",
|
inventory_image = "pick_durasteel.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -86,7 +86,7 @@ minetest.register_tool("default:pick_durasteel", {
|
||||||
|
|
||||||
minetest.register_tool("default:pick_beskar", {
|
minetest.register_tool("default:pick_beskar", {
|
||||||
description = S("Beskar Pickaxe"),
|
description = S("Beskar Pickaxe"),
|
||||||
inventory_image = "default_tool_beskarpick.png",
|
inventory_image = "pick_beskar.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.9,
|
full_punch_interval = 0.9,
|
||||||
max_drop_level=3,
|
max_drop_level=3,
|
||||||
|
@ -105,8 +105,8 @@ minetest.register_tool("default:pick_beskar", {
|
||||||
|
|
||||||
minetest.register_tool("default:shovel_wood", {
|
minetest.register_tool("default:shovel_wood", {
|
||||||
description = S("Wooden Shovel"),
|
description = S("Wooden Shovel"),
|
||||||
inventory_image = "default_tool_woodshovel.png",
|
inventory_image = "shovel_wood.png",
|
||||||
wield_image = "default_tool_woodshovel.png^[transformR90",
|
wield_image = "shovel_wood.png^[transformR90",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.2,
|
full_punch_interval = 1.2,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -121,8 +121,8 @@ minetest.register_tool("default:shovel_wood", {
|
||||||
|
|
||||||
minetest.register_tool("default:shovel_stone", {
|
minetest.register_tool("default:shovel_stone", {
|
||||||
description = S("Stone Shovel"),
|
description = S("Stone Shovel"),
|
||||||
inventory_image = "default_tool_stoneshovel.png",
|
inventory_image = "shovel_stone.png",
|
||||||
wield_image = "default_tool_stoneshovel.png^[transformR90",
|
wield_image = "shovel_stone.png^[transformR90",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.4,
|
full_punch_interval = 1.4,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -137,8 +137,8 @@ minetest.register_tool("default:shovel_stone", {
|
||||||
|
|
||||||
minetest.register_tool("default:shovel_bronze", {
|
minetest.register_tool("default:shovel_bronze", {
|
||||||
description = S("Bronze Shovel"),
|
description = S("Bronze Shovel"),
|
||||||
inventory_image = "default_tool_bronzeshovel.png",
|
inventory_image = "shovel_bronze.png",
|
||||||
wield_image = "default_tool_bronzeshovel.png^[transformR90",
|
wield_image = "shovel_bronze.png^[transformR90",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.1,
|
full_punch_interval = 1.1,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -153,8 +153,8 @@ minetest.register_tool("default:shovel_bronze", {
|
||||||
|
|
||||||
minetest.register_tool("default:shovel_durasteel", {
|
minetest.register_tool("default:shovel_durasteel", {
|
||||||
description = S("Durateel Shovel"),
|
description = S("Durateel Shovel"),
|
||||||
inventory_image = "default_tool_durasteelshovel.png",
|
inventory_image = "shovel_durasteel.png",
|
||||||
wield_image = "default_tool_durasteelshovel.png^[transformR90",
|
wield_image = "shovel_durasteel.png^[transformR90",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.1,
|
full_punch_interval = 1.1,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -169,8 +169,8 @@ minetest.register_tool("default:shovel_durasteel", {
|
||||||
|
|
||||||
minetest.register_tool("default:shovel_beskar", {
|
minetest.register_tool("default:shovel_beskar", {
|
||||||
description = S("Beskar Shovel"),
|
description = S("Beskar Shovel"),
|
||||||
inventory_image = "default_tool_beskarshovel.png",
|
inventory_image = "shovel_beskar.png",
|
||||||
wield_image = "default_tool_beskarshovel.png^[transformR90",
|
wield_image = "shovel_beskar.png^[transformR90",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -189,7 +189,7 @@ minetest.register_tool("default:shovel_beskar", {
|
||||||
|
|
||||||
minetest.register_tool("default:axe_wood", {
|
minetest.register_tool("default:axe_wood", {
|
||||||
description = S("Wooden Axe"),
|
description = S("Wooden Axe"),
|
||||||
inventory_image = "default_tool_woodaxe.png",
|
inventory_image = "axe_wood.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -204,7 +204,7 @@ minetest.register_tool("default:axe_wood", {
|
||||||
|
|
||||||
minetest.register_tool("default:axe_stone", {
|
minetest.register_tool("default:axe_stone", {
|
||||||
description = S("Stone Axe"),
|
description = S("Stone Axe"),
|
||||||
inventory_image = "default_tool_stoneaxe.png",
|
inventory_image = "axe_stone.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.2,
|
full_punch_interval = 1.2,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -219,7 +219,7 @@ minetest.register_tool("default:axe_stone", {
|
||||||
|
|
||||||
minetest.register_tool("default:axe_bronze", {
|
minetest.register_tool("default:axe_bronze", {
|
||||||
description = S("Bronze Axe"),
|
description = S("Bronze Axe"),
|
||||||
inventory_image = "default_tool_bronzeaxe.png",
|
inventory_image = "axe_bronze.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -234,7 +234,7 @@ minetest.register_tool("default:axe_bronze", {
|
||||||
|
|
||||||
minetest.register_tool("default:axe_durasteel", {
|
minetest.register_tool("default:axe_durasteel", {
|
||||||
description = S("Durasteel Axe"),
|
description = S("Durasteel Axe"),
|
||||||
inventory_image = "default_tool_durasteelaxe.png",
|
inventory_image = "axe_durasteel.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -249,7 +249,7 @@ minetest.register_tool("default:axe_durasteel", {
|
||||||
|
|
||||||
minetest.register_tool("default:axe_beskar", {
|
minetest.register_tool("default:axe_beskar", {
|
||||||
description = S("Beskar Axe"),
|
description = S("Beskar Axe"),
|
||||||
inventory_image = "default_tool_beskaraxe.png",
|
inventory_image = "axe_beskar.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.9,
|
full_punch_interval = 0.9,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -268,7 +268,7 @@ minetest.register_tool("default:axe_beskar", {
|
||||||
|
|
||||||
minetest.register_tool("default:sword_wood", {
|
minetest.register_tool("default:sword_wood", {
|
||||||
description = S("Wooden Sword"),
|
description = S("Wooden Sword"),
|
||||||
inventory_image = "default_tool_woodsword.png",
|
inventory_image = "sword_wood.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1,
|
full_punch_interval = 1,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -283,7 +283,7 @@ minetest.register_tool("default:sword_wood", {
|
||||||
|
|
||||||
minetest.register_tool("default:sword_stone", {
|
minetest.register_tool("default:sword_stone", {
|
||||||
description = S("Stone Sword"),
|
description = S("Stone Sword"),
|
||||||
inventory_image = "default_tool_stonesword.png",
|
inventory_image = "sword_stone.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.2,
|
full_punch_interval = 1.2,
|
||||||
max_drop_level=0,
|
max_drop_level=0,
|
||||||
|
@ -298,7 +298,7 @@ minetest.register_tool("default:sword_stone", {
|
||||||
|
|
||||||
minetest.register_tool("default:sword_bronze", {
|
minetest.register_tool("default:sword_bronze", {
|
||||||
description = S("Bronze Sword"),
|
description = S("Bronze Sword"),
|
||||||
inventory_image = "default_tool_bronzesword.png",
|
inventory_image = "sword_bronze.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.8,
|
full_punch_interval = 0.8,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -313,7 +313,7 @@ minetest.register_tool("default:sword_bronze", {
|
||||||
|
|
||||||
minetest.register_tool("default:sword_durasteel", {
|
minetest.register_tool("default:sword_durasteel", {
|
||||||
description = S("Durasteel Sword"),
|
description = S("Durasteel Sword"),
|
||||||
inventory_image = "default_tool_durasteelsword.png",
|
inventory_image = "sword_durasteel.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.8,
|
full_punch_interval = 0.8,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -328,7 +328,7 @@ minetest.register_tool("default:sword_durasteel", {
|
||||||
|
|
||||||
minetest.register_tool("default:sword_beskar", {
|
minetest.register_tool("default:sword_beskar", {
|
||||||
description = S("Beskar Sword"),
|
description = S("Beskar Sword"),
|
||||||
inventory_image = "default_tool_beskarsword.png",
|
inventory_image = "sword_beskar.png",
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.7,
|
full_punch_interval = 0.7,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
|
@ -343,7 +343,7 @@ minetest.register_tool("default:sword_beskar", {
|
||||||
|
|
||||||
minetest.register_tool("default:keycard", {
|
minetest.register_tool("default:keycard", {
|
||||||
description = S("Keycard"),
|
description = S("Keycard"),
|
||||||
inventory_image = "default_keycard.png",
|
inventory_image = "keycard.png",
|
||||||
groups = {key = 1, not_in_creative_inventory = 1},
|
groups = {key = 1, not_in_creative_inventory = 1},
|
||||||
stack_max = 1,
|
stack_max = 1,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
|
|
@ -22,10 +22,10 @@ minetest.register_node("default:torch", {
|
||||||
description = S("Torch"),
|
description = S("Torch"),
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "torch_floor.obj",
|
mesh = "torch_floor.obj",
|
||||||
inventory_image = "default_torch_on_floor.png",
|
inventory_image = "torch.png",
|
||||||
wield_image = "default_torch_on_floor.png",
|
wield_image = "torch.png",
|
||||||
tiles = {{
|
tiles = {{
|
||||||
name = "default_torch_on_floor_animated.png",
|
name = "torch_animated.png",
|
||||||
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
||||||
}},
|
}},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -76,7 +76,7 @@ minetest.register_node("default:torch_wall", {
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "torch_wall.obj",
|
mesh = "torch_wall.obj",
|
||||||
tiles = {{
|
tiles = {{
|
||||||
name = "default_torch_on_floor_animated.png",
|
name = "torch_animated.png",
|
||||||
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
||||||
}},
|
}},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -99,7 +99,7 @@ minetest.register_node("default:torch_ceiling", {
|
||||||
drawtype = "mesh",
|
drawtype = "mesh",
|
||||||
mesh = "torch_ceiling.obj",
|
mesh = "torch_ceiling.obj",
|
||||||
tiles = {{
|
tiles = {{
|
||||||
name = "default_torch_on_floor_animated.png",
|
name = "torch_animated.png",
|
||||||
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3}
|
||||||
}},
|
}},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
|
|
@ -1,610 +0,0 @@
|
||||||
-- default/trees.lua
|
|
||||||
|
|
||||||
-- support for MT game translation.
|
|
||||||
local S = default.get_translator
|
|
||||||
|
|
||||||
local random = math.random
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Grow trees from saplings
|
|
||||||
--
|
|
||||||
|
|
||||||
-- 'can grow' function
|
|
||||||
|
|
||||||
function default.can_grow(pos)
|
|
||||||
local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z})
|
|
||||||
if not node_under then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
local name_under = node_under.name
|
|
||||||
local is_soil = minetest.get_item_group(name_under, "soil")
|
|
||||||
if is_soil == 0 then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
local light_level = minetest.get_node_light(pos)
|
|
||||||
if not light_level or light_level < 13 then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- 'is snow nearby' function
|
|
||||||
|
|
||||||
local function is_snow_nearby(pos)
|
|
||||||
return minetest.find_node_near(pos, 1, {"group:snowy"})
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Grow sapling
|
|
||||||
|
|
||||||
function default.grow_sapling(pos)
|
|
||||||
if not default.can_grow(pos) then
|
|
||||||
-- try again 5 min later
|
|
||||||
minetest.get_node_timer(pos):start(300)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
|
||||||
local node = minetest.get_node(pos)
|
|
||||||
if node.name == "default:sapling" then
|
|
||||||
minetest.log("action", "A sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
if mg_name == "v6" then
|
|
||||||
default.grow_tree(pos, random(1, 4) == 1)
|
|
||||||
else
|
|
||||||
default.grow_new_jogan_tree(pos)
|
|
||||||
end
|
|
||||||
elseif node.name == "default:junglesapling" then
|
|
||||||
minetest.log("action", "A jungle sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
if mg_name == "v6" then
|
|
||||||
default.grow_jungle_tree(pos)
|
|
||||||
else
|
|
||||||
default.grow_new_jungle_tree(pos)
|
|
||||||
end
|
|
||||||
elseif node.name == "default:pine_sapling" then
|
|
||||||
minetest.log("action", "A pine sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
local snow = is_snow_nearby(pos)
|
|
||||||
if mg_name == "v6" then
|
|
||||||
default.grow_pine_tree(pos, snow)
|
|
||||||
elseif snow then
|
|
||||||
default.grow_new_snowy_pine_tree(pos)
|
|
||||||
else
|
|
||||||
default.grow_new_pine_tree(pos)
|
|
||||||
end
|
|
||||||
elseif node.name == "default:acacia_sapling" then
|
|
||||||
minetest.log("action", "An acacia sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_new_acacia_tree(pos)
|
|
||||||
elseif node.name == "default:aspen_sapling" then
|
|
||||||
minetest.log("action", "An aspen sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_new_aspen_tree(pos)
|
|
||||||
elseif node.name == "default:bush_sapling" then
|
|
||||||
minetest.log("action", "A bush sapling grows into a bush at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_bush(pos)
|
|
||||||
elseif node.name == "default:blueberry_bush_sapling" then
|
|
||||||
minetest.log("action", "A blueberry bush sapling grows into a bush at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_blueberry_bush(pos)
|
|
||||||
elseif node.name == "default:acacia_bush_sapling" then
|
|
||||||
minetest.log("action", "An acacia bush sapling grows into a bush at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_acacia_bush(pos)
|
|
||||||
elseif node.name == "default:pine_bush_sapling" then
|
|
||||||
minetest.log("action", "A pine bush sapling grows into a bush at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_pine_bush(pos)
|
|
||||||
elseif node.name == "default:emergent_jungle_sapling" then
|
|
||||||
minetest.log("action", "An emergent jungle sapling grows into a tree at "..
|
|
||||||
minetest.pos_to_string(pos))
|
|
||||||
default.grow_new_emergent_jungle_tree(pos)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_lbm({
|
|
||||||
name = "default:convert_saplings_to_node_timer",
|
|
||||||
nodenames = {"default:sapling", "default:junglesapling",
|
|
||||||
"default:pine_sapling", "default:acacia_sapling",
|
|
||||||
"default:aspen_sapling"},
|
|
||||||
action = function(pos)
|
|
||||||
minetest.get_node_timer(pos):start(math.random(300, 1500))
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Tree generation
|
|
||||||
--
|
|
||||||
|
|
||||||
-- Jogan tree and jungle tree trunk and leaves function
|
|
||||||
|
|
||||||
local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid,
|
|
||||||
height, size, iters, is_jogan_tree)
|
|
||||||
local x, y, z = pos.x, pos.y, pos.z
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
local c_ignore = minetest.get_content_id("ignore")
|
|
||||||
local c_jogan = minetest.get_content_id("default:joganfruit")
|
|
||||||
|
|
||||||
-- Trunk
|
|
||||||
data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling
|
|
||||||
for yy = y + 1, y + height - 1 do
|
|
||||||
local vi = a:index(x, yy, z)
|
|
||||||
local node_id = data[vi]
|
|
||||||
if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then
|
|
||||||
data[vi] = tree_cid
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Force leaves near the trunk
|
|
||||||
for z_dist = -1, 1 do
|
|
||||||
for y_dist = -size, 1 do
|
|
||||||
local vi = a:index(x - 1, y + height + y_dist, z + z_dist)
|
|
||||||
for x_dist = -1, 1 do
|
|
||||||
if data[vi] == c_air or data[vi] == c_ignore then
|
|
||||||
if is_jogan_tree and random(1, 8) == 1 then
|
|
||||||
data[vi] = c_jogan
|
|
||||||
else
|
|
||||||
data[vi] = leaves_cid
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vi = vi + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Randomly add leaves in 2x2x2 clusters.
|
|
||||||
for i = 1, iters do
|
|
||||||
local clust_x = x + random(-size, size - 1)
|
|
||||||
local clust_y = y + height + random(-size, 0)
|
|
||||||
local clust_z = z + random(-size, size - 1)
|
|
||||||
|
|
||||||
for xi = 0, 1 do
|
|
||||||
for yi = 0, 1 do
|
|
||||||
for zi = 0, 1 do
|
|
||||||
local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi)
|
|
||||||
if data[vi] == c_air or data[vi] == c_ignore then
|
|
||||||
if is_jogan_tree and random(1, 8) == 1 then
|
|
||||||
data[vi] = c_jogan
|
|
||||||
else
|
|
||||||
data[vi] = leaves_cid
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Jogan tree
|
|
||||||
|
|
||||||
function default.grow_tree(pos, is_jogan_tree, bad)
|
|
||||||
--[[
|
|
||||||
NOTE: Tree-placing code is currently duplicated in the engine
|
|
||||||
and in games that have saplings; both are deprecated but not
|
|
||||||
replaced yet
|
|
||||||
--]]
|
|
||||||
if bad then
|
|
||||||
error("Deprecated use of default.grow_tree")
|
|
||||||
end
|
|
||||||
|
|
||||||
local x, y, z = pos.x, pos.y, pos.z
|
|
||||||
local height = random(4, 5)
|
|
||||||
local c_tree = minetest.get_content_id("default:tree")
|
|
||||||
local c_leaves = minetest.get_content_id("default:leaves")
|
|
||||||
|
|
||||||
local vm = minetest.get_voxel_manip()
|
|
||||||
local minp, maxp = vm:read_from_map(
|
|
||||||
{x = x - 2, y = y, z = z - 2},
|
|
||||||
{x = x + 2, y = y + height + 1, z = z + 2}
|
|
||||||
)
|
|
||||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
|
||||||
local data = vm:get_data()
|
|
||||||
|
|
||||||
add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_jogan_tree)
|
|
||||||
|
|
||||||
vm:set_data(data)
|
|
||||||
vm:write_to_map()
|
|
||||||
vm:update_map()
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Jungle tree
|
|
||||||
|
|
||||||
function default.grow_jungle_tree(pos, bad)
|
|
||||||
--[[
|
|
||||||
NOTE: Jungletree-placing code is currently duplicated in the engine
|
|
||||||
and in games that have saplings; both are deprecated but not
|
|
||||||
replaced yet
|
|
||||||
--]]
|
|
||||||
if bad then
|
|
||||||
error("Deprecated use of default.grow_jungle_tree")
|
|
||||||
end
|
|
||||||
|
|
||||||
local x, y, z = pos.x, pos.y, pos.z
|
|
||||||
local height = random(8, 12)
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
local c_ignore = minetest.get_content_id("ignore")
|
|
||||||
local c_jungletree = minetest.get_content_id("default:jungletree")
|
|
||||||
local c_jungleleaves = minetest.get_content_id("default:jungleleaves")
|
|
||||||
|
|
||||||
local vm = minetest.get_voxel_manip()
|
|
||||||
local minp, maxp = vm:read_from_map(
|
|
||||||
{x = x - 3, y = y - 1, z = z - 3},
|
|
||||||
{x = x + 3, y = y + height + 1, z = z + 3}
|
|
||||||
)
|
|
||||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
|
||||||
local data = vm:get_data()
|
|
||||||
|
|
||||||
add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves,
|
|
||||||
height, 3, 30, false)
|
|
||||||
|
|
||||||
-- Roots
|
|
||||||
for z_dist = -1, 1 do
|
|
||||||
local vi_1 = a:index(x - 1, y - 1, z + z_dist)
|
|
||||||
local vi_2 = a:index(x - 1, y, z + z_dist)
|
|
||||||
for x_dist = -1, 1 do
|
|
||||||
if random(1, 3) >= 2 then
|
|
||||||
if data[vi_1] == c_air or data[vi_1] == c_ignore then
|
|
||||||
data[vi_1] = c_jungletree
|
|
||||||
elseif data[vi_2] == c_air or data[vi_2] == c_ignore then
|
|
||||||
data[vi_2] = c_jungletree
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vi_1 = vi_1 + 1
|
|
||||||
vi_2 = vi_2 + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vm:set_data(data)
|
|
||||||
vm:write_to_map()
|
|
||||||
vm:update_map()
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat
|
|
||||||
|
|
||||||
local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles)
|
|
||||||
local node_id = data[vi]
|
|
||||||
if node_id == c_air or node_id == c_ignore or node_id == c_snow then
|
|
||||||
data[vi] = c_pine_needles
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function add_snow(data, vi, c_air, c_ignore, c_snow)
|
|
||||||
local node_id = data[vi]
|
|
||||||
if node_id == c_air or node_id == c_ignore then
|
|
||||||
data[vi] = c_snow
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function default.grow_pine_tree(pos, snow)
|
|
||||||
local x, y, z = pos.x, pos.y, pos.z
|
|
||||||
local maxy = y + random(9, 13) -- Trunk top
|
|
||||||
|
|
||||||
local c_air = minetest.get_content_id("air")
|
|
||||||
local c_ignore = minetest.get_content_id("ignore")
|
|
||||||
local c_pine_tree = minetest.get_content_id("default:pine_tree")
|
|
||||||
local c_pine_needles = minetest.get_content_id("default:pine_needles")
|
|
||||||
local c_snow = minetest.get_content_id("default:snow")
|
|
||||||
|
|
||||||
local vm = minetest.get_voxel_manip()
|
|
||||||
local minp, maxp = vm:read_from_map(
|
|
||||||
{x = x - 3, y = y, z = z - 3},
|
|
||||||
{x = x + 3, y = maxy + 3, z = z + 3}
|
|
||||||
)
|
|
||||||
local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp})
|
|
||||||
local data = vm:get_data()
|
|
||||||
|
|
||||||
-- Upper branches layer
|
|
||||||
local dev = 3
|
|
||||||
for yy = maxy - 1, maxy + 1 do
|
|
||||||
for zz = z - dev, z + dev do
|
|
||||||
local vi = a:index(x - dev, yy, zz)
|
|
||||||
local via = a:index(x - dev, yy + 1, zz)
|
|
||||||
for xx = x - dev, x + dev do
|
|
||||||
if random() < 0.95 - dev * 0.05 then
|
|
||||||
add_pine_needles(data, vi, c_air, c_ignore, c_snow,
|
|
||||||
c_pine_needles)
|
|
||||||
if snow then
|
|
||||||
add_snow(data, via, c_air, c_ignore, c_snow)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vi = vi + 1
|
|
||||||
via = via + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
dev = dev - 1
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Centre top nodes
|
|
||||||
add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow,
|
|
||||||
c_pine_needles)
|
|
||||||
add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow,
|
|
||||||
c_pine_needles) -- Paramat added a pointy top node
|
|
||||||
if snow then
|
|
||||||
add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Lower branches layer
|
|
||||||
local my = 0
|
|
||||||
for i = 1, 20 do -- Random 2x2 squares of needles
|
|
||||||
local xi = x + random(-3, 2)
|
|
||||||
local yy = maxy + random(-6, -5)
|
|
||||||
local zi = z + random(-3, 2)
|
|
||||||
if yy > my then
|
|
||||||
my = yy
|
|
||||||
end
|
|
||||||
for zz = zi, zi+1 do
|
|
||||||
local vi = a:index(xi, yy, zz)
|
|
||||||
local via = a:index(xi, yy + 1, zz)
|
|
||||||
for xx = xi, xi + 1 do
|
|
||||||
add_pine_needles(data, vi, c_air, c_ignore, c_snow,
|
|
||||||
c_pine_needles)
|
|
||||||
if snow then
|
|
||||||
add_snow(data, via, c_air, c_ignore, c_snow)
|
|
||||||
end
|
|
||||||
vi = vi + 1
|
|
||||||
via = via + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
dev = 2
|
|
||||||
for yy = my + 1, my + 2 do
|
|
||||||
for zz = z - dev, z + dev do
|
|
||||||
local vi = a:index(x - dev, yy, zz)
|
|
||||||
local via = a:index(x - dev, yy + 1, zz)
|
|
||||||
for xx = x - dev, x + dev do
|
|
||||||
if random() < 0.95 - dev * 0.05 then
|
|
||||||
add_pine_needles(data, vi, c_air, c_ignore, c_snow,
|
|
||||||
c_pine_needles)
|
|
||||||
if snow then
|
|
||||||
add_snow(data, via, c_air, c_ignore, c_snow)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vi = vi + 1
|
|
||||||
via = via + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
dev = dev - 1
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Trunk
|
|
||||||
-- Force-place lowest trunk node to replace sapling
|
|
||||||
data[a:index(x, y, z)] = c_pine_tree
|
|
||||||
for yy = y + 1, maxy do
|
|
||||||
local vi = a:index(x, yy, z)
|
|
||||||
local node_id = data[vi]
|
|
||||||
if node_id == c_air or node_id == c_ignore or
|
|
||||||
node_id == c_pine_needles or node_id == c_snow then
|
|
||||||
data[vi] = c_pine_tree
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vm:set_data(data)
|
|
||||||
vm:write_to_map()
|
|
||||||
vm:update_map()
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New jogan tree
|
|
||||||
|
|
||||||
function default.grow_new_jogan_tree(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/jogan_tree_from_sapling.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 3, y = pos.y - 1, z = pos.z - 3},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New jungle tree
|
|
||||||
|
|
||||||
function default.grow_new_jungle_tree(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/jungle_tree_from_sapling.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New emergent jungle tree
|
|
||||||
|
|
||||||
function default.grow_new_emergent_jungle_tree(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/emergent_jungle_tree_from_sapling.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 3, y = pos.y - 5, z = pos.z - 3},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New pine tree
|
|
||||||
|
|
||||||
function default.grow_new_pine_tree(pos)
|
|
||||||
local path
|
|
||||||
if math.random() > 0.5 then
|
|
||||||
path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/pine_tree_from_sapling.mts"
|
|
||||||
else
|
|
||||||
path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/small_pine_tree_from_sapling.mts"
|
|
||||||
end
|
|
||||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New snowy pine tree
|
|
||||||
|
|
||||||
function default.grow_new_snowy_pine_tree(pos)
|
|
||||||
local path
|
|
||||||
if math.random() > 0.5 then
|
|
||||||
path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/snowy_pine_tree_from_sapling.mts"
|
|
||||||
else
|
|
||||||
path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/snowy_small_pine_tree_from_sapling.mts"
|
|
||||||
end
|
|
||||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New acacia tree
|
|
||||||
|
|
||||||
function default.grow_new_acacia_tree(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/acacia_tree_from_sapling.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- New aspen tree
|
|
||||||
|
|
||||||
function default.grow_new_aspen_tree(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/aspen_tree_from_sapling.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Bushes do not need 'from sapling' schematic variants because
|
|
||||||
-- only the stem node is force-placed in the schematic.
|
|
||||||
|
|
||||||
-- Bush
|
|
||||||
|
|
||||||
function default.grow_bush(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/bush.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Blueberry bush
|
|
||||||
|
|
||||||
function default.grow_blueberry_bush(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/blueberry_bush.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 1, y = pos.y, z = pos.z - 1},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Acacia bush
|
|
||||||
|
|
||||||
function default.grow_acacia_bush(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/acacia_bush.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Pine bush
|
|
||||||
|
|
||||||
function default.grow_pine_bush(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/pine_bush.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1},
|
|
||||||
path, "0", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Large cactus
|
|
||||||
|
|
||||||
function default.grow_large_cactus(pos)
|
|
||||||
local path = minetest.get_modpath("default") ..
|
|
||||||
"/schematics/large_cactus.mts"
|
|
||||||
minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2},
|
|
||||||
path, "random", nil, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Sapling 'on place' function to check protection of node and resulting tree volume
|
|
||||||
--
|
|
||||||
|
|
||||||
function default.sapling_on_place(itemstack, placer, pointed_thing,
|
|
||||||
sapling_name, minp_relative, maxp_relative, interval)
|
|
||||||
-- Position of sapling
|
|
||||||
local pos = pointed_thing.under
|
|
||||||
local node = minetest.get_node_or_nil(pos)
|
|
||||||
local pdef = node and minetest.registered_nodes[node.name]
|
|
||||||
|
|
||||||
if pdef and pdef.on_rightclick and
|
|
||||||
not (placer and placer:is_player() and
|
|
||||||
placer:get_player_control().sneak) then
|
|
||||||
return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing)
|
|
||||||
end
|
|
||||||
|
|
||||||
if not pdef or not pdef.buildable_to then
|
|
||||||
pos = pointed_thing.above
|
|
||||||
node = minetest.get_node_or_nil(pos)
|
|
||||||
pdef = node and minetest.registered_nodes[node.name]
|
|
||||||
if not pdef or not pdef.buildable_to then
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local player_name = placer and placer:get_player_name() or ""
|
|
||||||
-- Check sapling position for protection
|
|
||||||
if minetest.is_protected(pos, player_name) then
|
|
||||||
minetest.record_protection_violation(pos, player_name)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
-- Check tree volume for protection
|
|
||||||
if minetest.is_area_protected(
|
|
||||||
vector.add(pos, minp_relative),
|
|
||||||
vector.add(pos, maxp_relative),
|
|
||||||
player_name,
|
|
||||||
interval) then
|
|
||||||
minetest.record_protection_violation(pos, player_name)
|
|
||||||
-- Print extra information to explain
|
|
||||||
-- minetest.chat_send_player(player_name,
|
|
||||||
-- itemstack:get_definition().description .. " will intersect protection " ..
|
|
||||||
-- "on growth")
|
|
||||||
minetest.chat_send_player(player_name,
|
|
||||||
S("@1 will intersect protection on growth.",
|
|
||||||
itemstack:get_definition().description))
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.log("action", player_name .. " places node "
|
|
||||||
.. sapling_name .. " at " .. minetest.pos_to_string(pos))
|
|
||||||
|
|
||||||
local take_item = not (creative and creative.is_enabled_for
|
|
||||||
and creative.is_enabled_for(player_name))
|
|
||||||
local newnode = {name = sapling_name}
|
|
||||||
local ndef = minetest.registered_nodes[sapling_name]
|
|
||||||
minetest.set_node(pos, newnode)
|
|
||||||
|
|
||||||
-- Run callback
|
|
||||||
if ndef and ndef.after_place_node then
|
|
||||||
-- Deepcopy place_to and pointed_thing because callback can modify it
|
|
||||||
if ndef.after_place_node(table.copy(pos), placer,
|
|
||||||
itemstack, table.copy(pointed_thing)) then
|
|
||||||
take_item = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Run script hook
|
|
||||||
for _, callback in ipairs(minetest.registered_on_placenodes) do
|
|
||||||
-- Deepcopy pos, node and pointed_thing because callback can modify them
|
|
||||||
if callback(table.copy(pos), table.copy(newnode),
|
|
||||||
placer, table.copy(node or {}),
|
|
||||||
itemstack, table.copy(pointed_thing)) then
|
|
||||||
take_item = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if take_item then
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
|
|
||||||
return itemstack
|
|
||||||
end
|
|
|
@ -93,7 +93,7 @@ minetest.register_node("doors:hidden", {
|
||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
on_blast = function() end,
|
on_blast = function() end,
|
||||||
tiles = {"doors_blank.png"},
|
tiles = {"door_blank.png"},
|
||||||
-- 1px transparent block inside door hinge near node top.
|
-- 1px transparent block inside door hinge near node top.
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
|
@ -454,37 +454,37 @@ function doors.register(name, def)
|
||||||
end
|
end
|
||||||
|
|
||||||
doors.register("door_wood", {
|
doors.register("door_wood", {
|
||||||
tiles = {{ name = "doors_door_wood.png", backface_culling = true }},
|
tiles = {{ name = "door_wood.png", backface_culling = true }},
|
||||||
description = S("Wooden Door"),
|
description = S("Wooden Door"),
|
||||||
inventory_image = "doors_item_wood.png",
|
inventory_image = "doore_wood_item.png",
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register("door_durasteel", {
|
doors.register("door_durasteel", {
|
||||||
tiles = {{name = "doors_door_durasteel.png", backface_culling = true}},
|
tiles = {{name = "door_durasteel.png", backface_culling = true}},
|
||||||
description = S("Durasteel Door"),
|
description = S("Durasteel Door"),
|
||||||
inventory_image = "doors_item_durasteel.png",
|
inventory_image = "door_durasteel_item.png",
|
||||||
protected = true,
|
protected = true,
|
||||||
groups = {cracky = 1, level = 2},
|
groups = {cracky = 1, level = 2},
|
||||||
sounds = default.node_sound_metal_defaults(),
|
sounds = default.node_sound_metal_defaults(),
|
||||||
sound_open = "doors_steel_door_open",
|
sound_open = "doors_steel_door_open",
|
||||||
sound_close = "doors_steel_door_close",
|
sound_close = "doors_steel_door_close",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:durasteel_ingot", "duradefault:steel_ingot"},
|
{"default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "duradefault:steel_ingot"},
|
{"default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
{"default:durasteel_ingot", "duradefault:steel_ingot"},
|
{"default:durasteel_ingot", "default:durasteel_ingot"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register("door_glass", {
|
doors.register("door_glass", {
|
||||||
tiles = {"doors_door_glass.png"},
|
tiles = {"door_glass.png"},
|
||||||
description = S("Glass Door"),
|
description = S("Glass Door"),
|
||||||
inventory_image = "doors_item_glass.png",
|
inventory_image = "door_glass_item.png",
|
||||||
groups = {cracky=3, oddly_breakable_by_hand=3},
|
groups = {cracky=3, oddly_breakable_by_hand=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
sound_open = "doors_glass_door_open",
|
sound_open = "doors_glass_door_open",
|
||||||
|
@ -497,9 +497,9 @@ doors.register("door_glass", {
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register("door_obsidian_glass", {
|
doors.register("door_obsidian_glass", {
|
||||||
tiles = {"doors_door_obsidian_glass.png"},
|
tiles = {"door_obsidian_glass.png"},
|
||||||
description = S("Obsidian Glass Door"),
|
description = S("Obsidian Glass Door"),
|
||||||
inventory_image = "doors_item_obsidian_glass.png",
|
inventory_image = "door_obsidian_glass_item.png",
|
||||||
groups = {cracky=3},
|
groups = {cracky=3},
|
||||||
sounds = default.node_sound_glass_defaults(),
|
sounds = default.node_sound_glass_defaults(),
|
||||||
sound_open = "doors_glass_door_open",
|
sound_open = "doors_glass_door_open",
|
||||||
|
@ -522,9 +522,9 @@ function doors.register_door(name, def)
|
||||||
local modname = name:sub(1, i - 1)
|
local modname = name:sub(1, i - 1)
|
||||||
if not def.tiles then
|
if not def.tiles then
|
||||||
if def.protected then
|
if def.protected then
|
||||||
def.tiles = {{name = "doors_door_durasteel.png", backface_culling = true}}
|
def.tiles = {{name = "door_durasteel.png", backface_culling = true}}
|
||||||
else
|
else
|
||||||
def.tiles = {{name = "doors_door_wood.png", backface_culling = true}}
|
def.tiles = {{name = "door_wood.png", backface_culling = true}}
|
||||||
end
|
end
|
||||||
minetest.log("warning", modname .. " registered door \"" .. name .. "\" " ..
|
minetest.log("warning", modname .. " registered door \"" .. name .. "\" " ..
|
||||||
"using deprecated API method \"doors.register_door()\" but " ..
|
"using deprecated API method \"doors.register_door()\" but " ..
|
||||||
|
@ -684,21 +684,21 @@ function doors.register_trapdoor(name, def)
|
||||||
doors.registered_trapdoors[name_closed] = true
|
doors.registered_trapdoors[name_closed] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
doors.register_trapdoor("doors:trapdoor", {
|
doors.register_trapdoor("doors:trapdoor_wood", {
|
||||||
description = S("Wooden Trapdoor"),
|
description = S("Wooden Trapdoor"),
|
||||||
inventory_image = "doors_trapdoor.png",
|
inventory_image = "trapdoor_wood.png",
|
||||||
wield_image = "doors_trapdoor.png",
|
wield_image = "trapdoor_wood.png",
|
||||||
tile_front = "doors_trapdoor.png",
|
tile_front = "trapdoor_wood.png",
|
||||||
tile_side = "doors_trapdoor_side.png",
|
tile_side = "trapdoor_wood_side.png",
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1},
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1},
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register_trapdoor("doors:trapdoor_durasteel", {
|
doors.register_trapdoor("doors:trapdoor_durasteel", {
|
||||||
description = S("Durasteel Trapdoor"),
|
description = S("Durasteel Trapdoor"),
|
||||||
inventory_image = "doors_trapdoor_durasteel.png",
|
inventory_image = "trapdoor_durasteel.png",
|
||||||
wield_image = "doors_trapdoor_durasteel.png",
|
wield_image = "trapdoor_durasteel.png",
|
||||||
tile_front = "doors_trapdoor_durasteel.png",
|
tile_front = "trapdoor_durasteel.png",
|
||||||
tile_side = "doors_trapdoor_durasteel_side.png",
|
tile_side = "trapdoor_durasteel_side.png",
|
||||||
protected = true,
|
protected = true,
|
||||||
sounds = default.node_sound_metal_defaults(),
|
sounds = default.node_sound_metal_defaults(),
|
||||||
sound_open = "doors_steel_door_open",
|
sound_open = "doors_steel_door_open",
|
||||||
|
@ -707,10 +707,10 @@ doors.register_trapdoor("doors:trapdoor_durasteel", {
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "doors:trapdoor 2",
|
output = "doors:trapdoor_wood 2",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"group:wood", "group:wood", "group:wood"},
|
{"group:soft_wood", "group:soft_wood", "group:soft_wood"},
|
||||||
{"", "", ""},
|
{"", "", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -801,39 +801,39 @@ function doors.register_fencegate(name, def)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
doors.register_fencegate("doors:gate_wood", {
|
doors.register_fencegate("doors:gate_jogan_wood", {
|
||||||
description = S("Apple Wood Fence Gate"),
|
description = S("Jogan Wood Fence Gate"),
|
||||||
texture = "default_wood.png",
|
texture = "jogan_wood.png",
|
||||||
material = "default:wood",
|
material = "default:jogan_wood",
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
|
||||||
})
|
|
||||||
|
|
||||||
doors.register_fencegate("doors:gate_acacia_wood", {
|
|
||||||
description = S("Acacia Wood Fence Gate"),
|
|
||||||
texture = "default_acacia_wood.png",
|
|
||||||
material = "default:acacia_wood",
|
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
|
||||||
})
|
|
||||||
|
|
||||||
doors.register_fencegate("doors:gate_junglewood", {
|
|
||||||
description = S("Jungle Wood Fence Gate"),
|
|
||||||
texture = "default_junglewood.png",
|
|
||||||
material = "default:junglewood",
|
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register_fencegate("doors:gate_pine_wood", {
|
doors.register_fencegate("doors:gate_pine_wood", {
|
||||||
description = S("Pine Wood Fence Gate"),
|
description = S("Pine Wood Fence Gate"),
|
||||||
texture = "default_pine_wood.png",
|
texture = "pine_wood.png",
|
||||||
material = "default:pine_wood",
|
material = "default:pine_wood",
|
||||||
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
})
|
})
|
||||||
|
|
||||||
doors.register_fencegate("doors:gate_aspen_wood", {
|
doors.register_fencegate("doors:gate_palm_wood", {
|
||||||
description = S("Aspen Wood Fence Gate"),
|
description = S("Palm Wood Fence Gate"),
|
||||||
texture = "default_aspen_wood.png",
|
texture = "palm_wood.png",
|
||||||
material = "default:aspen_wood",
|
material = "default:palm_wood",
|
||||||
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("doors:gate_uneti_wood", {
|
||||||
|
description = S("Uneti Wood Fence Gate"),
|
||||||
|
texture = "uneti_wood.png",
|
||||||
|
material = "default:uneti_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("doors:gate_wroshyr_wood", {
|
||||||
|
description = S("Wroshyr Wood Fence Gate"),
|
||||||
|
texture = "wroshyr_wood.png",
|
||||||
|
material = "default:wroshyr_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -841,7 +841,7 @@ doors.register_fencegate("doors:gate_aspen_wood", {
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "doors:trapdoor",
|
recipe = "doors:trapdoor_wood",
|
||||||
burntime = 7,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -853,30 +853,30 @@ minetest.register_craft({
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "doors:gate_wood_closed",
|
recipe = "doors:gate_jogan_wood_closed",
|
||||||
burntime = 7,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "doors:gate_acacia_wood_closed",
|
|
||||||
burntime = 8,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
type = "fuel",
|
|
||||||
recipe = "doors:gate_junglewood_closed",
|
|
||||||
burntime = 9,
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "doors:gate_pine_wood_closed",
|
recipe = "doors:gate_pine_wood_closed",
|
||||||
burntime = 6,
|
burntime = 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "doors:gate_aspen_wood_closed",
|
recipe = "doors:gate_palm_wood_closed",
|
||||||
burntime = 5,
|
burntime = 7,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "doors:gate_uneti_wood_closed",
|
||||||
|
burntime = 7,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "doors:gate_wroshyr_wood_closed",
|
||||||
|
burntime = 7,
|
||||||
})
|
})
|
|
@ -18,7 +18,7 @@ dungeon_loot.registered_loot = {
|
||||||
-- farming / consumable
|
-- farming / consumable
|
||||||
{name = "farming:string", chance = 0.5, count = {1, 8}},
|
{name = "farming:string", chance = 0.5, count = {1, 8}},
|
||||||
{name = "farming:wheat", chance = 0.5, count = {2, 5}},
|
{name = "farming:wheat", chance = 0.5, count = {2, 5}},
|
||||||
{name = "default:joganfruit", chance = 0.4, count = {1, 4}},
|
{name = "default:jogan_fruit", chance = 0.4, count = {1, 4}},
|
||||||
{name = "farming:seed_cotton", chance = 0.4, count = {1, 4},
|
{name = "farming:seed_cotton", chance = 0.4, count = {1, 4},
|
||||||
types = {"normal"}},
|
types = {"normal"}},
|
||||||
{name = "default:cactus", chance = 0.4, count = {1, 4},
|
{name = "default:cactus", chance = 0.4, count = {1, 4},
|
||||||
|
@ -28,7 +28,7 @@ dungeon_loot.registered_loot = {
|
||||||
{name = "default:coal_lump", chance = 0.9, count = {1, 12}},
|
{name = "default:coal_lump", chance = 0.9, count = {1, 12}},
|
||||||
{name = "default:gold_ingot", chance = 0.5},
|
{name = "default:gold_ingot", chance = 0.5},
|
||||||
{name = "default:durasteel_ingot", chance = 0.4, count = {1, 6}},
|
{name = "default:durasteel_ingot", chance = 0.4, count = {1, 6}},
|
||||||
{name = "default:mese_crystal", chance = 0.1, count = {2, 3}},
|
{name = "default:beskar_ingot", chance = 0.1, count = {2, 3}},
|
||||||
|
|
||||||
-- tools
|
-- tools
|
||||||
{name = "default:sword_wood", chance = 0.6},
|
{name = "default:sword_wood", chance = 0.6},
|
||||||
|
@ -47,7 +47,7 @@ dungeon_loot.registered_loot = {
|
||||||
{name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768},
|
{name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768},
|
||||||
types = {"normal", "sandstone", "desert"}},
|
types = {"normal", "sandstone", "desert"}},
|
||||||
{name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-32768, -512}},
|
{name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-32768, -512}},
|
||||||
{name = "default:mese", chance = 0.15, y = {-32768, -512}},
|
{name = "default:beskar_block", chance = 0.15, y = {-32768, -512}},
|
||||||
}
|
}
|
||||||
|
|
||||||
function dungeon_loot.register(t)
|
function dungeon_loot.register(t)
|
||||||
|
|
|
@ -56,15 +56,6 @@ minetest.register_craft({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Manually add blueberries->violet dye
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "dye:violet 2",
|
|
||||||
recipe = {
|
|
||||||
{"default:blueberries"}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Mix recipes
|
-- Mix recipes
|
||||||
|
|
||||||
local dye_recipes = {
|
local dye_recipes = {
|
||||||
|
|
|
@ -0,0 +1,377 @@
|
||||||
|
# ethereal
|
||||||
|
|
||||||
|
Ethereal Mapgen mod for Minetest (works on all except v6)
|
||||||
|
|
||||||
|
## Forum Topic
|
||||||
|
- https://forum.minetest.net/viewtopic.php?f=11&t=14638
|
||||||
|
|
||||||
|
## Lucky Blocks
|
||||||
|
42
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
### 1.27
|
||||||
|
|
||||||
|
- Added Etherium ore and dust
|
||||||
|
- Added sparse decoration of dry grass and shrub to caves biome
|
||||||
|
- Added sponges that spawn near coral, dry sponge in furnace to soak up water
|
||||||
|
- Added new savanna dirt and decorations
|
||||||
|
- Use default grass abms
|
||||||
|
|
||||||
|
### 1.26
|
||||||
|
|
||||||
|
- Added Sakura biome, pink sakura trees and saplings
|
||||||
|
- 1 in 10 chance of sakura sapling growing into white sakura
|
||||||
|
- Bamboo grows in higher elevation while sakura grows in lower
|
||||||
|
- Added sakura wood, stairs, fence, gate and door
|
||||||
|
- Added 5.0 checks to add new biomes and decorations
|
||||||
|
- Fixed water abm for dry dirt and added check for minetest 5.1 dry dirt also
|
||||||
|
|
||||||
|
### 1.25
|
||||||
|
|
||||||
|
- Converted .mts files into schematic tables for easier editing
|
||||||
|
- Added firethorn shrub in glacier areas (can be crafted into jelly)
|
||||||
|
- Tweaked mapgen decorations
|
||||||
|
- Added more lucky blocks
|
||||||
|
- Added igloo to glacier biome
|
||||||
|
- 2x2 bamboo = bamboo floor, 3x3 bamboo or 2x bamboo floor = bamboo block, blocks can be made into sticks, bamboo stairs need blocks to craft
|
||||||
|
|
||||||
|
### 1.24
|
||||||
|
|
||||||
|
- Updating code to newer functions, requires Minetest 0.4.16 and above
|
||||||
|
- Added food groups to be more compatible with other food mods
|
||||||
|
- Bonemeal removed (use Bonemeal mod to replace https://forum.minetest.net/viewtopic.php?f=9&t=16446 )
|
||||||
|
- Crystal Ingot recipe requires a bucket of water, unless you are using builtin_item mod where you can mix ingredients by dropping in a pool of water instead
|
||||||
|
|
||||||
|
### 1.23
|
||||||
|
|
||||||
|
- Added bonemeal support for bush sapling and acacia bush sapling
|
||||||
|
- Added support for [toolranks] mod if found
|
||||||
|
- Reworked Crystal Shovel so it acts more like a normal shovel with soft touch
|
||||||
|
|
||||||
|
### 1.22
|
||||||
|
|
||||||
|
- Added coral and silver sand to mapgen (0.4.15 only)
|
||||||
|
- Replaced ethereal:green_dirt with default:dirt_with_grass for mortrees compatibility
|
||||||
|
- Mesa biomes are now topped with dirt with dry grass (redwood saplings grow on dry grass)
|
||||||
|
- Added bonemeal support for moretree's saplings
|
||||||
|
- Added settings.conf file example so that settings remain after mod update
|
||||||
|
- Added support for Real Torch so that torches near water drop an unlit torch
|
||||||
|
- Added support for new leafdecay functions (0.4.15 dev)
|
||||||
|
- Mapgen will use dirt_with_rainforest_litter for jungles if found
|
||||||
|
- Added bushes to mapgen
|
||||||
|
|
||||||
|
### 1.21
|
||||||
|
|
||||||
|
- Saplings need clear space above to grow (depending on height of tree)
|
||||||
|
- Bonemeal changes to suit new sapling growth
|
||||||
|
- Fixes and tweaks
|
||||||
|
- Added default Abm overrides
|
||||||
|
- Added 4 new plants from baked clay mod to mapgen
|
||||||
|
- Added swamp biome to outskirts of bamboo areas
|
||||||
|
|
||||||
|
### 1.20
|
||||||
|
|
||||||
|
- Tweaked Ethereal to work with new features and nodes in Minetest 0.4.14
|
||||||
|
- Added bones found in dirt and bonemeal to make tree's and crops grow quicker
|
||||||
|
- Tree's follow default rules where saplings need light to grow
|
||||||
|
- Using default schematics for apple, pine, acacia and jungle tree's
|
||||||
|
- Tidied and split code into separate files
|
||||||
|
- Redid coloured grass spread function to run better
|
||||||
|
- Added support for moreblock's stairsplus feature
|
||||||
|
|
||||||
|
### 1.19
|
||||||
|
|
||||||
|
- Added new biome routine to help restructure biomes
|
||||||
|
- Tweaked biome values so that they are more spread out (no more huge bamboo biome)
|
||||||
|
- Tweaked biome plant and tree decorations
|
||||||
|
- Fixed farming compatibility when using hoe on ethereal dirt
|
||||||
|
- Dirt with dry grass turns into green grass when near water
|
||||||
|
- Ice or snow above sea level melts into river water
|
||||||
|
- Disabling ethereal biomes no longer shows error messages
|
||||||
|
- Fire Flowers re-generate, can also be made into Fire Dust and both are fuel
|
||||||
|
- Optimize and tidy code
|
||||||
|
|
||||||
|
### 1.18
|
||||||
|
|
||||||
|
- Added Birch tree, also stairs; fence and gate
|
||||||
|
- Added Fire flower to fiery biomes (careful, it hurts)
|
||||||
|
- Tweaked biomes and decoration slightly
|
||||||
|
- Added tree_tool for admin to quickly grow tree's
|
||||||
|
- Cobble to Mossycobble when near water has been toned down a bit
|
||||||
|
|
||||||
|
### 1.17
|
||||||
|
|
||||||
|
- Added new Glacier biome filled with snow and ice
|
||||||
|
- Changed Mesa biome to have more coloured clay patterns
|
||||||
|
- Changed Bamboo biome to have tall tree-like stalks with leaves that give
|
||||||
|
- Bamboo sprouts are now saplings to grow new stalks
|
||||||
|
- Removed farmed mushrooms and replaced with default game mushrooms with spores
|
||||||
|
|
||||||
|
### 1.16
|
||||||
|
|
||||||
|
- Added new tree schematics that change when placed with random leaves, fruit and height
|
||||||
|
- Changed frost dirt so that it no longer freezes water (saves lag)
|
||||||
|
- Torches cannot be placed next to water, otherwise they drop as items
|
||||||
|
- Added latest farming redo Bean Bushes to mapgen
|
||||||
|
- Code tidy (thanks HybridDog) and bug fix
|
||||||
|
- Banana, Orange and Apple fruits now drop when tree has been removed.
|
||||||
|
|
||||||
|
### 1.15
|
||||||
|
|
||||||
|
- Added Staff of Light (thanks Xanthin), crafted from illumishrooms and can turn stone into glostone and back again
|
||||||
|
- Changed how Crystal Spikes reproduce
|
||||||
|
- Crystal Ingots now require 2x mese crystal and 2x crystal spikes to craft
|
||||||
|
- Removed obsidian brick & stairs now they are in default game, also removed pine wood stairs for same reason
|
||||||
|
- Tidied code and optimized a few routines
|
||||||
|
|
||||||
|
|
||||||
|
### 1.14
|
||||||
|
|
||||||
|
- Changed Ethereal to work with Minetest 0.4.11 update and new mapgen features
|
||||||
|
- Changed Pine tree's to use default pine wood
|
||||||
|
- Added pine wood fence, gate and stairs
|
||||||
|
- Crystal Spikes now re-generate in crystal biomes
|
||||||
|
- Removed layer mapgen, keeping spread as default
|
||||||
|
|
||||||
|
|
||||||
|
### 1.13
|
||||||
|
|
||||||
|
- Changed melting feature to work with 0.4.11 pre-release now that group:hot and group:melt have been removed
|
||||||
|
|
||||||
|
|
||||||
|
### 1.12
|
||||||
|
|
||||||
|
- Added ability to disable biomes in the init.lua file by setting to 1 (enable) or 0 (disable)
|
||||||
|
- Supports Framing Redo 1.10 foods
|
||||||
|
|
||||||
|
|
||||||
|
### 1.11
|
||||||
|
|
||||||
|
- Added Stairs for Ethereal wood types, mushroom, dry dirt, obsidian brick and clay
|
||||||
|
- Added Green Coral which can be used as green dye
|
||||||
|
- Craft 5x Ice in X pattern to give 5x Snow
|
||||||
|
- Added Snow and Ice Bricks with their own stairs and slabs which melt when near heat
|
||||||
|
|
||||||
|
|
||||||
|
### 1.10
|
||||||
|
|
||||||
|
- Added Stone Ladders (another use for cobble)
|
||||||
|
- Craft 5x Gravel in X pattern to give 5 dirt, and 5x dirt in X pattern for 5 sand
|
||||||
|
- Added Acacia tree's to desert biome (a nice pink wood to build with, thanks to VanessaE for textures)
|
||||||
|
- Added Acacia fences and gates
|
||||||
|
- Added Vines, craftable with 2x3 leaves
|
||||||
|
|
||||||
|
|
||||||
|
### 1.09
|
||||||
|
|
||||||
|
- Fixed Quicksand bug where player see's only black when sinking instead of yellow effect, note this will only work on new maps or newly generated areas of map containing quicksand
|
||||||
|
- Hot nodes will melt ice and snow in a better way
|
||||||
|
- Few spelling errors sorted for sapling and wood names
|
||||||
|
|
||||||
|
|
||||||
|
### 1.08
|
||||||
|
|
||||||
|
- Saplings produce better placed tree's when grown, routines have been redone
|
||||||
|
- Orange tree's now spawn in prairie biomes
|
||||||
|
- The usual code tidy and few bug fixes along the way
|
||||||
|
|
||||||
|
### 1.07
|
||||||
|
|
||||||
|
- If Farming Redo mod detected then it's growing routines will be used for Ethereal plantlife instead of default
|
||||||
|
Leaftype and Mapstyle settings can be changed within init.lua file, new layered style maps are being tested
|
||||||
|
Changed crafting recipe for Fences, they tie in with Gates a little better
|
||||||
|
|
||||||
|
### 1.06
|
||||||
|
|
||||||
|
- Added support for Farming Redo mod, all plants spawn on newly generated areas:
|
||||||
|
- https://forum.minetest.net/viewtopic.php?id=9019
|
||||||
|
|
||||||
|
### 1.05b
|
||||||
|
|
||||||
|
- Added Gates for each of the fence types (thanks to Blockmen for gate model)
|
||||||
|
- Players can no longer jump over fences unless they wear crystal boots < REMOVED
|
||||||
|
|
||||||
|
### 1.04
|
||||||
|
|
||||||
|
- Farming of Mushrooms, Wild Onions and Strawberries now use minetest 0.4.10 functions
|
||||||
|
- Strawberries can be grown by using actual fruit, seeds no longer needed
|
||||||
|
- Tree leaves are no longer walkable, player can go through them
|
||||||
|
- Saplings now fall if block underneath disturbed
|
||||||
|
|
||||||
|
### 1.03
|
||||||
|
|
||||||
|
- Changed Fence recipe's so it doesn't interfere with 3d armor's wooden boots
|
||||||
|
- Tweaked textures to bring down file sizes
|
||||||
|
- Flowers, Sprouts and Ferns now spread over ALL grassland
|
||||||
|
|
||||||
|
### 1.02
|
||||||
|
|
||||||
|
- Fences added for each type of wood in Ethereal
|
||||||
|
- Changes to biome settings, less artifacts
|
||||||
|
|
||||||
|
### 1.01
|
||||||
|
|
||||||
|
- Quicksand generates throughout world near sandy water
|
||||||
|
- Bamboo as well as Papyrus now grow on dirt near water
|
||||||
|
- Fixed Coral textures and light
|
||||||
|
|
||||||
|
### 1.00
|
||||||
|
|
||||||
|
- Seaweed now spawns in deep water and can grow up to 10 high
|
||||||
|
- Coral also spawns in deep water and glows slightly (orange, pink and blue)
|
||||||
|
- Above items can be crafted into dye, also Seaweed is edible
|
||||||
|
- So long as sand isn't disturbed under the ocean, sealife will re-generate
|
||||||
|
- Fixed Leaves inventory images and Mushroom selection box (thanks Wuzzy)
|
||||||
|
|
||||||
|
### 0.0.9
|
||||||
|
#### 0.0.9p
|
||||||
|
|
||||||
|
- Willow Trees now spawn in grey biome instead of tiny grey trees (model by Phiwari123)
|
||||||
|
- Redwood Trees now spawn in Mesa biome (model by Wes42033)
|
||||||
|
- BakedClay mod no longer required for Mesa biome but used if found
|
||||||
|
- Paper Wall added
|
||||||
|
|
||||||
|
#### 0.0.9o
|
||||||
|
|
||||||
|
- Added Obsidian Brick craft for building
|
||||||
|
- Changed Illumishroom cave levels
|
||||||
|
- Changed *is_ground_content* to false for ethereal dirt so mapgen doesn't carve it up with caves
|
||||||
|
|
||||||
|
#### 0.0.9n
|
||||||
|
|
||||||
|
- New textures for farming mushrooms and spores
|
||||||
|
- Illumi-shrooms spawn in caves to brighten things up a little
|
||||||
|
- Crafting a wooden sign now gives 4 instead of 1
|
||||||
|
|
||||||
|
#### 0.0.9m
|
||||||
|
|
||||||
|
- Changed Bamboo biome slightly, Bamboo Sprout has new image
|
||||||
|
- Abm timings changed and a few bugs fixed
|
||||||
|
- Crystal Gilly Staff has to be used (left-click) to replenish air while underwater
|
||||||
|
- Crystal Shovel now works with protection mods
|
||||||
|
- Tidied code and changed ladder recipe's to double output
|
||||||
|
|
||||||
|
#### 0.0.9L
|
||||||
|
|
||||||
|
- Scorched Tree's are now different sizes
|
||||||
|
- Crystal Shovel with soft touch can now be used to dig up sand and gravel
|
||||||
|
- Bamboo and Papyrus drop entire stalk when bottom node dug
|
||||||
|
- Crystal Spikes require steel pick or better to dig and fall when dirt below is removed
|
||||||
|
- Few changes to mapgen and water functions
|
||||||
|
|
||||||
|
#### 0.0.9k
|
||||||
|
|
||||||
|
- Fixed bug in charcoal lumps (no more placing as unknown nodes)
|
||||||
|
- Added Crystal Shovel with soft touch, can be used to dig up dirt with grass intact
|
||||||
|
- Fixed bug in Crystal Shovel, now works with dirt_with_snow and has sounds
|
||||||
|
- Tweaked Fiery Biomes slightly, smaller craters on outside, large in hotter areas
|
||||||
|
|
||||||
|
#### 0.0.9i
|
||||||
|
|
||||||
|
- Cleaned up mapgen_v7.lua file, maps now generate a little faster
|
||||||
|
- Removed cactus.mts, no longer required
|
||||||
|
- Removed mushroomtwo.mts, no longer required
|
||||||
|
- Removed bamboo.mts, no longer required
|
||||||
|
- Removed deadtree.mts, no longer required
|
||||||
|
- Few new textures added
|
||||||
|
- Papyrus also spawns on jungle dirt near water
|
||||||
|
- Replaced dead tree's with scorched tree's
|
||||||
|
- Each scorched tree trunk crafts into 2x charcoal Lumps (fixed)
|
||||||
|
- Torches can also be crafted from Charcoal
|
||||||
|
|
||||||
|
#### 0.0.9h
|
||||||
|
|
||||||
|
- Added Strawberry farming, Strawberry Seeds and new Textures
|
||||||
|
- Tidied up mapgen_v7.lua for better spawning of plants and trees
|
||||||
|
- Player can no longer walk through Bamboo Stalks
|
||||||
|
|
||||||
|
#### 0.0.9g
|
||||||
|
|
||||||
|
- Changed Ethereal's growing routine for Saplings, it now uses 1 single abm to grow all tree's
|
||||||
|
|
||||||
|
#### 0.0.9f
|
||||||
|
|
||||||
|
- Added Fishing to Ethereal, Fishing Rod, Worms, Fish and Cooked Fish (Left-click the water with a Baited Rod in the hope of landing your prize)
|
||||||
|
|
||||||
|
#### 0.0.9e
|
||||||
|
|
||||||
|
- Changed textures for Bowl, Mushroom Soup, Crystal Spike, Banana Loaf, Strawberry & Bush
|
||||||
|
- Added Hearty Stew Recipes
|
||||||
|
- If BakedClay mod is installed, Mesa Biome will be added to the mix
|
||||||
|
|
||||||
|
#### 0.0.9d
|
||||||
|
|
||||||
|
- Added Bamboo Grove and Bamboo Sprouts )
|
||||||
|
- Craft Bamboo into Paper and Bamboo Flooring
|
||||||
|
- Cactus is now edible when crafted beside empty bucket
|
||||||
|
|
||||||
|
#### 0.0.9c
|
||||||
|
|
||||||
|
- Code re-worked so mod now uses sections for each function (easier to read and edit)
|
||||||
|
- New textures for Strawberry Bush and Crystal Spikes
|
||||||
|
|
||||||
|
#### 0.0.9b
|
||||||
|
|
||||||
|
- Pine Tree Leaves have new texture and sometimes give Pine Nuts
|
||||||
|
- Jungle Tree's now use default Jungle Wood as texture
|
||||||
|
|
||||||
|
#### 0.0.9
|
||||||
|
|
||||||
|
- Prairie, Grove, Jungle and Snowy biomes have their own dirt
|
||||||
|
- Saplings will only grow in the biomes they were taken from
|
||||||
|
- Mapgen tweaks and code changes for new dirt added
|
||||||
|
|
||||||
|
### 0.0.8 Changes
|
||||||
|
#### 0.0.8m
|
||||||
|
|
||||||
|
- Added Banana Trunk and Wood
|
||||||
|
- Added Boston Ferns to Grove biome
|
||||||
|
- Added edible Fern Tubers
|
||||||
|
- Mushroom Biome now has different sized mushrooms
|
||||||
|
- Changed Pine Needles texture
|
||||||
|
|
||||||
|
#### 0.0.8k
|
||||||
|
|
||||||
|
- Added Desert Sand biome
|
||||||
|
- Added Alpine biome with Pine Trees and Snow
|
||||||
|
- Added Grove biome with Banana Tree's (saplings only grow in that temperate area)
|
||||||
|
- Added Bananas, Banana Dough and Banana Bread
|
||||||
|
- Changed biome generation to be more like real-world environs (e.g. shrooms like hot & humid so that's where they spawn)
|
||||||
|
- Tidied up code and removed redundant lines
|
||||||
|
|
||||||
|
#### 0.0.8e
|
||||||
|
|
||||||
|
- New Plains biome added between Fiery and Green areas to hopefully stop forest fires, these have dry dirt and dead trees
|
||||||
|
- Placing water near Dry Dirt turns it into normal dirt, cooking normal dirt changes it into Dry Dirt
|
||||||
|
|
||||||
|
Note: if your Ethereal world does have a few forest fires appearing you can always add this line to your minetest.conf file:
|
||||||
|
|
||||||
|
disable_fire = true
|
||||||
|
|
||||||
|
#### 0.0.8
|
||||||
|
|
||||||
|
- Healing Tree (grows on high snowy peaks, leaves are edible and golden apples heal all hearts)
|
||||||
|
- Added some new images for Cooked Mushroom Soup, Mushroom Spores and Palm Trees
|
||||||
|
- 2D leaves or 3D leaves option, both wave in wind if enabled
|
||||||
|
- All new saplings can grow on their native dirt, and palm tree's on sand
|
||||||
|
- Crystal Spike or Crystal Dirt freezes nearby water, Heat can also melt ice
|
||||||
|
- Wild Mushrooms now give Spores, plant these to grow edible mushrooms
|
||||||
|
- Cobble in water turns mossy
|
||||||
|
- Palm Leaves can be cooked into Palm Wax and made into Candles
|
||||||
|
|
||||||
|
### 0.0.7c
|
||||||
|
|
||||||
|
- Gravel can be found under lake biomes (or craft 5 cobble in X pattern)
|
||||||
|
- Papyrus is found and grows on dirt near water (also craft 2x3 string for paper)
|
||||||
|
- Mushroom Heads have a chance of giving Mushroom Sapling (craft 1 head = 4x Mushrooms ready for Planting)
|
||||||
|
- Trees and Mushrooms have a chance of giving Saplings
|
||||||
|
- Frost Trunk and Mushroom Trunk are rotatable (craft 1 Mushroom Trunk = 4x White Dye)
|
||||||
|
- Desert areas have Dry Shrubs added
|
||||||
|
- Crystal Spikes added to Crystal Biome (watch out they hurt)
|
||||||
|
- Crystal Ingots added to make Sword and Pick
|
||||||
|
- New Pine Tree model added to snowy biome which adds Pine leaves and drops Pine Saplings
|
||||||
|
- Fixed GrassyTwo biome so that BigTree now spawns and grows from sapling
|
||||||
|
- Added Crystal Gilly Staff to allow breathing underwater (so long as it's in hand)
|
||||||
|
- Added Palm Trees, Trunk, Wood, Sapling, Coconuts, Coconut Slice (to eat)
|
||||||
|
- Thanks to VanessaE's for the Palm textures
|
|
@ -0,0 +1,127 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Blumfruit (can also be planted as seed)
|
||||||
|
minetest.register_craftitem("ethereal:blumfruit", {
|
||||||
|
description = S("Blumfruit"),
|
||||||
|
inventory_image = "blumfruit.png",
|
||||||
|
wield_image = "blumfruit.png",
|
||||||
|
groups = {food_blumfruit = 1, food_berry = 1, flammable = 2},
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:blumfruit_1")
|
||||||
|
end,
|
||||||
|
on_use = minetest.item_eat(1),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Define Blumfruit Bush growth stages
|
||||||
|
local crop_def = {
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"blumfruit_1.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
waving = 1,
|
||||||
|
walkable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
drop = "",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
|
||||||
|
not_in_creative_inventory = 1, growing = 1
|
||||||
|
},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
}
|
||||||
|
|
||||||
|
--stage 1
|
||||||
|
minetest.register_node("ethereal:blumfruit_1", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 2
|
||||||
|
crop_def.tiles = {"strawberry_2.png"}
|
||||||
|
minetest.register_node("ethereal:blumfruit_2", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 3
|
||||||
|
crop_def.tiles = {"strawberry_3.png"}
|
||||||
|
minetest.register_node("ethereal:blumfruit_3", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 4
|
||||||
|
crop_def.tiles = {"strawberry_4.png"}
|
||||||
|
minetest.register_node("ethereal:blumfruit_4", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 5
|
||||||
|
crop_def.tiles = {"strawberry_5.png"}
|
||||||
|
minetest.register_node("ethereal:blumfruit_5", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 6
|
||||||
|
crop_def.tiles = {"blumfruit_6.png"}
|
||||||
|
crop_def.drop = {
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:blumfruit 1"},rarity = 2},
|
||||||
|
{items = {"ethereal:blumfruit 2"},rarity = 3},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minetest.register_node("ethereal:blumfruit_6", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 7
|
||||||
|
crop_def.tiles = {"blumfruit_7.png"}
|
||||||
|
crop_def.drop = {
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:blumfruit 1"},rarity = 1},
|
||||||
|
{items = {"ethereal:blumfruit 2"},rarity = 3},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minetest.register_node("ethereal:blumfruit_7", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- stage 8
|
||||||
|
crop_def.tiles = {"blumfruit_8.png"}
|
||||||
|
crop_def.groups.growing = 0
|
||||||
|
crop_def.drop = {
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:blumfruit 2"},rarity = 1},
|
||||||
|
{items = {"ethereal:blumfruit 3"},rarity = 3},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minetest.register_node("ethereal:blumfruit_8", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- growing routine if farming redo isn't present
|
||||||
|
if not farming or not farming.mod or farming.mod ~= "redo" then
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
label = "Ethereal grow blumfruit",
|
||||||
|
nodenames = {
|
||||||
|
"ethereal:blumfruit_1", "ethereal:blumfruit_2", "ethereal:blumfruit_3",
|
||||||
|
"ethereal:blumfruit_4", "ethereal:blumfruit_5", "ethereal:blumfruit_6",
|
||||||
|
"ethereal:blumfruit_7"
|
||||||
|
},
|
||||||
|
neighbors = {"farming:soil_wet"},
|
||||||
|
interval = 9,
|
||||||
|
chance = 20,
|
||||||
|
catch_up = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
|
||||||
|
-- are we on wet soil?
|
||||||
|
pos.y = pos.y - 1
|
||||||
|
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
-- do we have enough light?
|
||||||
|
local light = minetest.get_node_light(pos)
|
||||||
|
|
||||||
|
if not light
|
||||||
|
or light < 13 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- grow to next stage
|
||||||
|
local num = node.name:split("_")[2]
|
||||||
|
|
||||||
|
node.name = "ethereal:blumfruit_" .. tonumber(num + 1)
|
||||||
|
|
||||||
|
minetest.swap_node(pos, node)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
end -- END IF
|
|
@ -0,0 +1,46 @@
|
||||||
|
|
||||||
|
-- add compatibility for ethereal nodes already in default game or name changed
|
||||||
|
minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree")
|
||||||
|
minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:fence_acacia", "default:fence_acacia_wood")
|
||||||
|
minetest.register_alias("ethereal:fence_junglewood", "default:fence_junglewood")
|
||||||
|
minetest.register_alias("ethereal:fence_pine", "default:fence_pine_wood")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves")
|
||||||
|
minetest.register_alias("ethereal:pineleaves", "default:pine_needles")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown")
|
||||||
|
minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown")
|
||||||
|
minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup")
|
||||||
|
minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown")
|
||||||
|
minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown")
|
||||||
|
minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown")
|
||||||
|
minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7")
|
||||||
|
minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry")
|
||||||
|
|
||||||
|
for i = 1, 5 do
|
||||||
|
minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:onion_7", "ethereal:onion_4")
|
||||||
|
minetest.register_alias("ethereal:onion_8", "ethereal:onion_5")
|
||||||
|
minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4")
|
||||||
|
minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5")
|
||||||
|
minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt")
|
||||||
|
minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt")
|
||||||
|
minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt")
|
||||||
|
minetest.register_alias("ethereal:green_dirt_top", "default;dirt_with_grass")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:tree_sapling", "default:sapling")
|
||||||
|
minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling")
|
||||||
|
minetest.register_alias("ethereal:acacia_sapling", "default:acacia_sapling")
|
||||||
|
minetest.register_alias("ethereal:pine_tree_sapling", "default:pine_sapling")
|
|
@ -0,0 +1,10 @@
|
||||||
|
default
|
||||||
|
farming?
|
||||||
|
stairs
|
||||||
|
flowers
|
||||||
|
doors
|
||||||
|
bakedclay?
|
||||||
|
moreblocks?
|
||||||
|
intllib?
|
||||||
|
lucky_block?
|
||||||
|
toolranks?
|
|
@ -0,0 +1 @@
|
||||||
|
Ethereal mod uses the v7 mapgen to add many new biomes to the world.
|
|
@ -0,0 +1,146 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- flower spread
|
||||||
|
local flower_spread = function(pos, node)
|
||||||
|
|
||||||
|
if (minetest.get_node_light(pos) or 0) < 13 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos0 = {x = pos.x - 4, y = pos.y - 2, z = pos.z - 4}
|
||||||
|
local pos1 = {x = pos.x + 4, y = pos.y + 2, z = pos.z + 4}
|
||||||
|
|
||||||
|
local num = #minetest.find_nodes_in_area(pos0, pos1, "group:flora")
|
||||||
|
|
||||||
|
-- stop flowers spreading too much just below top of map block
|
||||||
|
if minetest.find_node_near(pos, 2, "ignore") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local seedling = minetest.find_nodes_in_area_under_air(
|
||||||
|
pos0, pos1, {"group:soil"})
|
||||||
|
|
||||||
|
if #seedling > 0 then
|
||||||
|
|
||||||
|
pos = seedling[math.random(#seedling)]
|
||||||
|
|
||||||
|
-- default farming has desert sand as soil, so dont spread on this
|
||||||
|
if minetest.get_node(pos).name == "default:desert_sand" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
if (minetest.get_node_light(pos) or 0) < 13 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.swap_node(pos, {name = node.name})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- grow reeds up to 4 high and bamboo up to 8 high
|
||||||
|
local grow_reeds = function(pos, node)
|
||||||
|
|
||||||
|
local oripos = pos.y
|
||||||
|
local high = 4
|
||||||
|
|
||||||
|
pos.y = pos.y - 1
|
||||||
|
|
||||||
|
local nod = minetest.get_node_or_nil(pos)
|
||||||
|
|
||||||
|
if not nod
|
||||||
|
or minetest.get_item_group(nod.name, "soil") < 1
|
||||||
|
or minetest.find_node_near(pos, 3, {"group:water"}) == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if node.name == "default:bamboo" then
|
||||||
|
high = 8
|
||||||
|
end
|
||||||
|
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
local height = 0
|
||||||
|
|
||||||
|
while height < high
|
||||||
|
and minetest.get_node(pos).name == node.name do
|
||||||
|
height = height + 1
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
nod = minetest.get_node_or_nil(pos)
|
||||||
|
|
||||||
|
if nod
|
||||||
|
and nod.name == "air"
|
||||||
|
and height < high then
|
||||||
|
|
||||||
|
if node.name == "default:bamboo"
|
||||||
|
and height == (high - 1) then
|
||||||
|
|
||||||
|
ethereal.grow_bamboo_tree({x = pos.x, y = oripos, z = pos.z})
|
||||||
|
else
|
||||||
|
minetest.swap_node(pos, {name = node.name})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
-- loop through active abm's
|
||||||
|
for _, ab in pairs(minetest.registered_abms) do
|
||||||
|
|
||||||
|
local label = ab.label or ""
|
||||||
|
local node1 = ab.nodenames and ab.nodenames[1] or ""
|
||||||
|
local node2 = ab.nodenames and ab.nodenames[2] or ""
|
||||||
|
local neigh = ab.neighbors and ab.neighbors[1] or ""
|
||||||
|
|
||||||
|
if label == "Flower spread"
|
||||||
|
or node1 == "group:flora" then
|
||||||
|
|
||||||
|
--ab.interval = 1
|
||||||
|
--ab.chance = 1
|
||||||
|
ab.nodenames = {"group:flora"}
|
||||||
|
ab.neighbors = {"group:soil"}
|
||||||
|
ab.action = flower_spread
|
||||||
|
|
||||||
|
-- find grow papyrus abm and change to grow_papyrus function
|
||||||
|
elseif label == "Grow reeds"
|
||||||
|
or node1 == "default:reeds" then
|
||||||
|
|
||||||
|
--ab.interval = 2
|
||||||
|
--ab.chance = 1
|
||||||
|
ab.nodenames = {"default:reeds", "default:bamboo"}
|
||||||
|
ab.neighbors = {"group:soil"}
|
||||||
|
ab.action = grow_reeds
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- If Baked Clay mod not active, make Red, Orange and Grey nodes
|
||||||
|
if not minetest.get_modpath("bakedclay") then
|
||||||
|
|
||||||
|
minetest.register_node(":bakedclay:red", {
|
||||||
|
description = S("Red Baked Clay"),
|
||||||
|
tiles = {"baked_clay_red.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
is_ground_content = ethereal.cavedirt,
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":bakedclay:orange", {
|
||||||
|
description = S("Orange Baked Clay"),
|
||||||
|
tiles = {"baked_clay_orange.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
is_ground_content = ethereal.cavedirt,
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node(":bakedclay:grey", {
|
||||||
|
description = S("Grey Baked Clay"),
|
||||||
|
tiles = {"baked_clay_grey.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
is_ground_content = ethereal.cavedirt,
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,290 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Bamboo Flooring
|
||||||
|
minetest.register_node("ethereal:bamboo_floor", {
|
||||||
|
description = S("Bamboo Floor"),
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = { "bamboo_floor.png" },
|
||||||
|
wield_image = "bamboo_floor.png",
|
||||||
|
inventory_image = "bamboo_floor.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
walkable = true,
|
||||||
|
node_box = {
|
||||||
|
type = "wallmounted",
|
||||||
|
wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
selection_box = {type = "wallmounted"},
|
||||||
|
groups = {snappy = 3, choppy = 3 , flammable = 2},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Craft Bamboo into Bamboo Flooring
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:bamboo_floor 2",
|
||||||
|
recipe = {
|
||||||
|
{"default:bamboo", "default:bamboo"},
|
||||||
|
{"default:bamboo", "default:bamboo"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:bamboo_block",
|
||||||
|
recipe = {
|
||||||
|
{"ethereal:bamboo_floor"},
|
||||||
|
{"ethereal:bamboo_floor"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Bamboo Block
|
||||||
|
minetest.register_node("ethereal:bamboo_block", {
|
||||||
|
description = S("Bamboo Block"),
|
||||||
|
tiles = { "bamboo_floor.png" },
|
||||||
|
paramtype = "light",
|
||||||
|
groups = {snappy = 3, choppy = 3 , flammable = 2, wood = 1},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:bamboo_block",
|
||||||
|
recipe = {
|
||||||
|
{"default:bamboo", "default:bamboo", "default:bamboo"},
|
||||||
|
{"default:bamboo", "default:bamboo", "default:bamboo"},
|
||||||
|
{"default:bamboo", "default:bamboo", "default:bamboo"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Craft Bamboo into Paper
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:paper 6",
|
||||||
|
recipe = {
|
||||||
|
{"default:bamboo", "default:bamboo"},
|
||||||
|
{"default:bamboo", "default:bamboo"},
|
||||||
|
{"default:bamboo", "default:bamboo"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if ethereal.xcraft == true then
|
||||||
|
|
||||||
|
-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b')
|
||||||
|
local cheat = {
|
||||||
|
{"default:cobble", "default:gravel", 5},
|
||||||
|
{"default:gravel", "default:dirt", 5},
|
||||||
|
{"default:dirt", "default:sand", 5},
|
||||||
|
{"default:ice", "default:snow", 20},
|
||||||
|
{"ethereal:dry_dirt", "default:desert_sand", 5},
|
||||||
|
}
|
||||||
|
|
||||||
|
for n = 1, #cheat do
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = cheat[n][2] .. " " .. cheat[n][3],
|
||||||
|
recipe = {
|
||||||
|
{cheat[n][1], "", cheat[n][1]},
|
||||||
|
{"", cheat[n][1], ""},
|
||||||
|
{cheat[n][1], "", cheat[n][1]},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
end -- END if
|
||||||
|
|
||||||
|
-- Paper (2x3 string = 4 paper)
|
||||||
|
--minetest.register_craft({
|
||||||
|
-- output = "default:paper 4",
|
||||||
|
-- recipe = {
|
||||||
|
-- {"farming:string", "farming:string"},
|
||||||
|
-- {"farming:string", "farming:string"},
|
||||||
|
-- {"farming:string", "farming:string"},
|
||||||
|
-- }
|
||||||
|
--})
|
||||||
|
|
||||||
|
-- Palm Wax
|
||||||
|
minetest.register_craftitem("ethereal:palm_wax", {
|
||||||
|
description = S("Palm Wax"),
|
||||||
|
inventory_image = "palm_wax.png",
|
||||||
|
wield_image = "palm_wax.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
cooktime = 10,
|
||||||
|
output = "ethereal:palm_wax",
|
||||||
|
recipe = "default:palm_leaves"
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Candle from Wax and String/Cotton
|
||||||
|
minetest.register_node("ethereal:candle", {
|
||||||
|
description = S("Candle"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
inventory_image = "candle_static.png",
|
||||||
|
wield_image = "candle_static.png",
|
||||||
|
tiles = {
|
||||||
|
{
|
||||||
|
name = "candle.png",
|
||||||
|
animation={
|
||||||
|
type="vertical_frames",
|
||||||
|
aspect_w = 32,
|
||||||
|
aspect_h = 32,
|
||||||
|
length = 1.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 11,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
groups = {dig_immediate = 3, attached_node = 1},
|
||||||
|
sounds = default.node_sound_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.15, -0.5, -0.15, 0.15, 0, 0.15 }
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--minetest.register_craft({
|
||||||
|
-- output = "ethereal:candle 2",
|
||||||
|
-- recipe = {
|
||||||
|
-- {"farming:cotton"},
|
||||||
|
-- {"ethereal:palm_wax"},
|
||||||
|
-- {"ethereal:palm_wax"},
|
||||||
|
-- }
|
||||||
|
--})
|
||||||
|
|
||||||
|
-- Wooden Bowl
|
||||||
|
minetest.register_craftitem("ethereal:bowl", {
|
||||||
|
description = S("Bowl"),
|
||||||
|
inventory_image = "bowl.png",
|
||||||
|
groups = {food_bowl = 1, flammable = 2},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- use farming redo's recipe if found
|
||||||
|
if not minetest.registered_items["farming:bowl"] then
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:bowl 4",
|
||||||
|
recipe = {
|
||||||
|
{"group:soft_wood", "", "group:soft_wood"},
|
||||||
|
{"", "group:soft_wood", ""},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- stone Ladder
|
||||||
|
minetest.register_node("ethereal:stone_ladder", {
|
||||||
|
description = S("Stone Ladder"),
|
||||||
|
drawtype = "signlike",
|
||||||
|
tiles = {"stone_ladder.png"},
|
||||||
|
inventory_image = "stone_ladder.png",
|
||||||
|
wield_image = "stone_ladder.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
walkable = false,
|
||||||
|
climbable = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "wallmounted",
|
||||||
|
},
|
||||||
|
groups = {cracky = 3, oddly_breakable_by_hand = 1},
|
||||||
|
legacy_wallmounted = true,
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:stone_ladder 4",
|
||||||
|
recipe = {
|
||||||
|
{"group:stone", "", "group:stone"},
|
||||||
|
{"group:stone", "group:stone", "group:stone"},
|
||||||
|
{"group:stone", "", "group:stone"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Paper Wall
|
||||||
|
minetest.register_node("ethereal:paper_wall", {
|
||||||
|
drawtype = "nodebox",
|
||||||
|
description = S("Paper Wall"),
|
||||||
|
tiles = {"paper_wall.png"},
|
||||||
|
inventory_image_image = "paper_wall.png",
|
||||||
|
wield_image = "paper_wall.png",
|
||||||
|
paramtype = "light",
|
||||||
|
groups = {snappy = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
walkable = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 }
|
||||||
|
},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:paper_wall",
|
||||||
|
recipe = {
|
||||||
|
{"group:stick", "default:paper", "group:stick"},
|
||||||
|
{"group:stick", "default:paper", "group:stick"},
|
||||||
|
{"group:stick", "default:paper", "group:stick"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Glostone (A little bit of light decoration)
|
||||||
|
minetest.register_node("ethereal:glostone", {
|
||||||
|
description = S("Glo Stone"),
|
||||||
|
tiles = {"glostone.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
light_source = 13,
|
||||||
|
drop = "ethereal:glostone",
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "ethereal:glostone",
|
||||||
|
recipe = {"default:torch", "default:stone", "dye:yellow"}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Charcoal Lump
|
||||||
|
minetest.register_craftitem("ethereal:charcoal_lump", {
|
||||||
|
description = S("Lump of Charcoal"),
|
||||||
|
inventory_image = "charcoal_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:charcoal_lump 2",
|
||||||
|
recipe = {
|
||||||
|
{"default:scorched_tree"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:charcoal_lump 2",
|
||||||
|
type = "cooking",
|
||||||
|
recipe = "group:tree",
|
||||||
|
cooktime = 4
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "ethereal:charcoal_lump",
|
||||||
|
burntime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Make Torch from Charcoal Lump
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:torch 4",
|
||||||
|
recipe = {
|
||||||
|
{"ethereal:charcoal_lump"},
|
||||||
|
{"default:stick"},
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,167 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Raw Fish (Thanks to Altairas for her Fish image on DeviantArt)
|
||||||
|
minetest.register_craftitem("ethereal:fish_raw", {
|
||||||
|
description = S("Raw Fish"),
|
||||||
|
inventory_image = "fish_raw.png",
|
||||||
|
wield_image = "fish_raw.png",
|
||||||
|
groups = {food_fish_raw = 1, flammable = 3},
|
||||||
|
on_use = minetest.item_eat(2),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Cooked Fish
|
||||||
|
minetest.register_craftitem("ethereal:fish_cooked", {
|
||||||
|
description = S("Cooked Fish"),
|
||||||
|
inventory_image = "fish_cooked.png",
|
||||||
|
wield_image = "fish_cooked.png",
|
||||||
|
groups = {food_fish = 1, flammable = 3},
|
||||||
|
on_use = minetest.item_eat(5),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "ethereal:fish_cooked",
|
||||||
|
recipe = "ethereal:fish_raw",
|
||||||
|
cooktime = 2,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Sashimi (Thanks to Natalia Grosner for letting me use the sashimi image)
|
||||||
|
minetest.register_craftitem("ethereal:sashimi", {
|
||||||
|
description = S("Sashimi"),
|
||||||
|
inventory_image = "sashimi.png",
|
||||||
|
wield_image = "sashimi.png",
|
||||||
|
on_use = minetest.item_eat(4),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:sashimi 2",
|
||||||
|
recipe = {
|
||||||
|
{"group:food_seaweed", "group:food_fish_raw", "group:food_seaweed"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Worm
|
||||||
|
minetest.register_craftitem("ethereal:worm", {
|
||||||
|
description = S("Worm"),
|
||||||
|
inventory_image = "worm.png",
|
||||||
|
wield_image = "worm.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Used when right-clicking with fishing rod to check for worm and bait rod
|
||||||
|
local rod_use = function(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
|
local inv = placer:get_inventory()
|
||||||
|
|
||||||
|
if inv:contains_item("main", "ethereal:worm") then
|
||||||
|
|
||||||
|
inv:remove_item("main", "ethereal:worm")
|
||||||
|
|
||||||
|
return ItemStack("ethereal:fishing_rod_baited")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Fishing Rod
|
||||||
|
minetest.register_craftitem("ethereal:fishing_rod", {
|
||||||
|
description = S("Fishing Rod (Right-Click with rod to bait with worm from inventory)"),
|
||||||
|
inventory_image = "fishing_rod.png",
|
||||||
|
wield_image = "fishing_rod.png",
|
||||||
|
stack_max = 1,
|
||||||
|
|
||||||
|
on_place = rod_use,
|
||||||
|
on_secondary_use = rod_use
|
||||||
|
})
|
||||||
|
|
||||||
|
--minetest.register_craft({
|
||||||
|
-- output = "ethereal:fishing_rod",
|
||||||
|
-- recipe = {
|
||||||
|
-- {"","","group:stick"},
|
||||||
|
-- {"", "group:stick", "farming:string"},
|
||||||
|
-- {"group:stick", "", "farming:string"},
|
||||||
|
-- }
|
||||||
|
--})
|
||||||
|
|
||||||
|
-- Sift through 2 Dirt Blocks to find Worm
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:worm",
|
||||||
|
recipe = {
|
||||||
|
{"default:dirt","default:dirt"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- default ethereal fish
|
||||||
|
ethereal.fish = {
|
||||||
|
{"ethereal:fish_raw"},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- xanadu server additional fish
|
||||||
|
if minetest.get_modpath("xanadu") then
|
||||||
|
ethereal.fish[2] = {"mobs:clownfish_raw"}
|
||||||
|
ethereal.fish[3] = {"mobs:bluefish_raw"}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Fishing Rod (Baited)
|
||||||
|
minetest.register_craftitem("ethereal:fishing_rod_baited", {
|
||||||
|
description = S("Baited Fishing Rod"),
|
||||||
|
inventory_image = "fishing_rod_baited.png",
|
||||||
|
wield_image = "fishing_rod_wield.png",
|
||||||
|
stack_max = 1,
|
||||||
|
liquids_pointable = true,
|
||||||
|
|
||||||
|
on_use = function (itemstack, user, pointed_thing)
|
||||||
|
|
||||||
|
if pointed_thing.type ~= "node" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos = pointed_thing.under
|
||||||
|
local node = minetest.get_node(pos).name
|
||||||
|
|
||||||
|
if (node == "default:water_source"
|
||||||
|
or node == "default:river_water_source")
|
||||||
|
and math.random(1, 100) < 5 then
|
||||||
|
|
||||||
|
local type = ethereal.fish[math.random(1, #ethereal.fish)][1]
|
||||||
|
local inv = user:get_inventory()
|
||||||
|
|
||||||
|
if inv:room_for_item("main", {name = type}) then
|
||||||
|
|
||||||
|
inv:add_item("main", {name = type})
|
||||||
|
|
||||||
|
minetest.sound_play("default_water_footstep", {pos = pos})
|
||||||
|
|
||||||
|
pos.y = pos.y + 0.5
|
||||||
|
|
||||||
|
minetest.add_particlespawner({
|
||||||
|
amount = 5,
|
||||||
|
time = .3,
|
||||||
|
minpos = pos,
|
||||||
|
maxpos = pos,
|
||||||
|
minvel = {x = 2, y = .5, z = 2},
|
||||||
|
maxvel = {x = 2, y = .5, z = 2},
|
||||||
|
minacc = {x = 1, y = .1, z = 1},
|
||||||
|
maxacc = {x = 1, y = .1, z = 1},
|
||||||
|
minexptime = .3,
|
||||||
|
maxexptime = .5,
|
||||||
|
minsize = .5,
|
||||||
|
maxsize = 1,
|
||||||
|
collisiondetection = false,
|
||||||
|
vertical = false,
|
||||||
|
texture = "bubble.png",
|
||||||
|
playername = "singleplayer"
|
||||||
|
})
|
||||||
|
|
||||||
|
return ItemStack("ethereal:fishing_rod")
|
||||||
|
else
|
||||||
|
minetest.chat_send_player(user:get_player_name(),
|
||||||
|
S("Inventory full, Fish Got Away!"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "ethereal:fishing_rod_baited",
|
||||||
|
recipe = {"ethereal:fishing_rod", "ethereal:worm"},
|
||||||
|
})
|
|
@ -0,0 +1,240 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Banana (Heals one heart when eaten)
|
||||||
|
minetest.register_node("ethereal:banana", {
|
||||||
|
description = S("Banana"),
|
||||||
|
drawtype = "torchlike",
|
||||||
|
tiles = {"banana_single.png"},
|
||||||
|
inventory_image = "banana_single.png",
|
||||||
|
wield_image = "banana_single.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
|
||||||
|
leafdecay = 1, leafdecay_drop = 1
|
||||||
|
},
|
||||||
|
drop = "ethereal:banana",
|
||||||
|
on_use = minetest.item_eat(2),
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
after_place_node = function(pos, placer)
|
||||||
|
if placer:is_player() then
|
||||||
|
minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Ration Pack
|
||||||
|
minetest.register_craftitem("ethereal:ration_pack", {
|
||||||
|
description = S("Ration Pack"),
|
||||||
|
inventory_image = "ration_pack.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "ethereal:polystarch_bread",
|
||||||
|
recipe = {
|
||||||
|
"ethereal:ration_pack",
|
||||||
|
"bucket:bucket_water",
|
||||||
|
},
|
||||||
|
replacements = {
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_empty"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Polystarch Bread (Heals 2 hearts when eaten)
|
||||||
|
minetest.register_craftitem("ethereal:polystarch_bread", {
|
||||||
|
description = S("Polystarch Bread"),
|
||||||
|
inventory_image = "polystarch_bread.png",
|
||||||
|
wield_image = "polystarch_bread.png",
|
||||||
|
groups = {food_bread = 1, flammable = 3},
|
||||||
|
on_use = minetest.item_eat(4),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Orange (Heals 2 hearts when eaten)
|
||||||
|
minetest.register_node("ethereal:orange", {
|
||||||
|
description = S("Orange"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"farming_orange.png"},
|
||||||
|
inventory_image = "farming_orange.png",
|
||||||
|
wield_image = "farming_orange.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
|
||||||
|
leafdecay = 3, leafdecay_drop = 1
|
||||||
|
},
|
||||||
|
drop = "ethereal:orange",
|
||||||
|
on_use = minetest.item_eat(4),
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
after_place_node = function(pos, placer)
|
||||||
|
if placer:is_player() then
|
||||||
|
minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Pine Nuts (Heals 1/2 heart when eaten)
|
||||||
|
minetest.register_craftitem("ethereal:pine_nuts", {
|
||||||
|
description = S("Pine Nuts"),
|
||||||
|
inventory_image = "pine_nuts.png",
|
||||||
|
wield_image = "pine_nuts.png",
|
||||||
|
groups = {food_pine_nuts = 1, flammable = 2},
|
||||||
|
on_use = minetest.item_eat(1),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Banana Loaf (Heals 3 hearts when eaten)
|
||||||
|
minetest.register_craftitem("ethereal:banana_bread", {
|
||||||
|
description = S("Banana Loaf"),
|
||||||
|
inventory_image = "banana_bread.png",
|
||||||
|
wield_image = "banana_bread.png",
|
||||||
|
groups = {food_bread = 1, flammable = 3},
|
||||||
|
on_use = minetest.item_eat(6),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
|
||||||
|
minetest.register_node("ethereal:coconut", {
|
||||||
|
description = S("Coconut"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
walkable = false,
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
tiles = {"moretrees_coconut.png"},
|
||||||
|
inventory_image = "moretrees_coconut.png",
|
||||||
|
wield_image = "moretrees_coconut.png",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
food_coconut = 1, snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
|
||||||
|
choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1
|
||||||
|
},
|
||||||
|
drop = "ethereal:coconut_slice 4",
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Coconut Slice (Heals half heart when eaten)
|
||||||
|
minetest.register_craftitem("ethereal:coconut_slice", {
|
||||||
|
description = S("Coconut Slice"),
|
||||||
|
inventory_image = "moretrees_coconut_slice.png",
|
||||||
|
wield_image = "moretrees_coconut_slice.png",
|
||||||
|
groups = {food_coconut_slice = 1, flammable = 1},
|
||||||
|
on_use = minetest.item_eat(1),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Golden Apple (Found on Healing Tree, heals all 10 hearts)
|
||||||
|
minetest.register_node("ethereal:golden_apple", {
|
||||||
|
description = S("Golden Apple"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"default_apple_gold.png"},
|
||||||
|
inventory_image = "default_apple_gold.png",
|
||||||
|
wield_image = "default_apple_gold.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
fleshy = 3, dig_immediate = 3,
|
||||||
|
leafdecay = 3,leafdecay_drop = 1
|
||||||
|
},
|
||||||
|
drop = "ethereal:golden_apple",
|
||||||
|
-- on_use = minetest.item_eat(20),
|
||||||
|
on_use = function(itemstack, user, pointed_thing)
|
||||||
|
if user then
|
||||||
|
user:set_hp(20)
|
||||||
|
return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
after_place_node = function(pos, placer, itemstack)
|
||||||
|
if placer:is_player() then
|
||||||
|
minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
|
||||||
|
minetest.register_craftitem("ethereal:hearty_stew", {
|
||||||
|
description = S("Hearty Stew"),
|
||||||
|
inventory_image = "hearty_stew.png",
|
||||||
|
wield_image = "hearty_stew.png",
|
||||||
|
on_use = minetest.item_eat(10, "ethereal:bowl"),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:hearty_stew",
|
||||||
|
recipe = {
|
||||||
|
{"group:food_onion","flowers:mushroom_brown", "group:food_tuber"},
|
||||||
|
{"","flowers:mushroom_brown", ""},
|
||||||
|
{"","group:food_bowl", ""},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Extra recipe for hearty stew
|
||||||
|
if farming and farming.mod and farming.mod == "redo" then
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:hearty_stew",
|
||||||
|
recipe = {
|
||||||
|
{"group:food_onion","flowers:mushroom_brown", "group:food_beans"},
|
||||||
|
{"","flowers:mushroom_brown", ""},
|
||||||
|
{"","group:food_bowl", ""},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Bucket of Cactus Pulp
|
||||||
|
minetest.register_craftitem("ethereal:bucket_cactus", {
|
||||||
|
description = S("Bucket of Cactus Pulp"),
|
||||||
|
inventory_image = "bucket_cactus.png",
|
||||||
|
wield_image = "bucket_cactus.png",
|
||||||
|
stack_max = 1,
|
||||||
|
on_use = minetest.item_eat(2, "bucket:bucket_empty"),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:bucket_cactus",
|
||||||
|
recipe = {
|
||||||
|
{"bucket:bucket_empty","default:cactus"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- firethorn jelly
|
||||||
|
minetest.register_craftitem("ethereal:firethorn_jelly", {
|
||||||
|
description = S("Firethorn Jelly"),
|
||||||
|
inventory_image = "ethereal_firethorn_jelly.png",
|
||||||
|
wield_image = "ethereal_firethorn_jelly.png",
|
||||||
|
on_use = minetest.item_eat(2, "vessels:glass_bottle"),
|
||||||
|
groups = {vessel = 1},
|
||||||
|
})
|
||||||
|
|
||||||
|
if minetest.registered_items["farming:bowl"] then
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "ethereal:firethorn_jelly",
|
||||||
|
recipe = {
|
||||||
|
"farming:mortar_pestle","vessels:glass_bottle",
|
||||||
|
"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn",
|
||||||
|
"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water",
|
||||||
|
},
|
||||||
|
replacements = {
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_empty 3"},
|
||||||
|
{"farming:mortar_pestle", "farming:mortar_pestle"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
|
@ -0,0 +1,111 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- register Ethereal wood type gates
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_scorched", {
|
||||||
|
description = S("Scorched Wood Fence Gate"),
|
||||||
|
texture = "scorched_tree.png",
|
||||||
|
material = "ethereal:scorched_tree",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_frostwood", {
|
||||||
|
description = S("Frost Wood Fence Gate"),
|
||||||
|
texture = "frost_wood.png",
|
||||||
|
material = "ethereal:frost_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_redwood", {
|
||||||
|
description = S("Redwood Fence Gate"),
|
||||||
|
texture = "redwood_wood.png",
|
||||||
|
material = "ethereal:redwood_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_willow", {
|
||||||
|
description = S("Willow Wood Fence Gate"),
|
||||||
|
texture = "willow_wood.png",
|
||||||
|
material = "ethereal:willow_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_yellowwood", {
|
||||||
|
description = S("Healing Wood Fence Gate"),
|
||||||
|
texture = "yellow_wood.png",
|
||||||
|
material = "ethereal:yellow_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_palm", {
|
||||||
|
description = S("Palm Wood Fence Gate"),
|
||||||
|
texture = "moretrees_palm_wood.png",
|
||||||
|
material = "ethereal:palm_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_banana", {
|
||||||
|
description = S("Banana Wood Fence Gate"),
|
||||||
|
texture = "banana_wood.png",
|
||||||
|
material = "ethereal:banana_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_mushroom", {
|
||||||
|
description = S("Mushroom Trunk Fence Gate"),
|
||||||
|
texture = "mushroom_trunk.png",
|
||||||
|
material = "ethereal:mushroom_trunk",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_birch", {
|
||||||
|
description = S("Birch Wood Fence Gate"),
|
||||||
|
texture = "moretrees_birch_wood.png",
|
||||||
|
material = "ethereal:birch_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
doors.register_fencegate("ethereal:fencegate_sakura", {
|
||||||
|
description = S("Sakura Wood Fence Gate"),
|
||||||
|
texture = "ethereal_sakura_wood.png",
|
||||||
|
material = "ethereal:sakura_wood",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- add compatibility for ethereal's to default wooden gates
|
||||||
|
minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open")
|
||||||
|
minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open")
|
||||||
|
minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open")
|
||||||
|
minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed")
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open")
|
||||||
|
minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed")
|
||||||
|
|
||||||
|
-- sakura door
|
||||||
|
doors.register_door("ethereal:door_sakura", {
|
||||||
|
tiles = {
|
||||||
|
{name = "ethereal_sakura_door.png", backface_culling = true}
|
||||||
|
},
|
||||||
|
description = S("Sakura Wood Door"),
|
||||||
|
inventory_image = "ethereal_sakura_door_inv.png",
|
||||||
|
groups = {
|
||||||
|
snappy = 1, choppy = 2, oddly_breakable_by_hand = 2,
|
||||||
|
flammable = 2
|
||||||
|
},
|
||||||
|
sound_open = "doors_glass_door_open",
|
||||||
|
sound_close = "doors_glass_door_close",
|
||||||
|
recipe = {
|
||||||
|
{"group:stick", "default:paper"},
|
||||||
|
{"default:paper", "group:stick"},
|
||||||
|
{"ethereal:sakura_wood", "ethereal:sakura_wood"}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_alias("ethereal:sakura_door", "ethereal:door_sakura")
|
||||||
|
minetest.register_alias("ethereal:sakura_door_a", "ethereal:door_sakura_a")
|
||||||
|
minetest.register_alias("ethereal:sakura_door_b", "ethereal:door_sakura_b")
|
|
@ -0,0 +1,116 @@
|
||||||
|
--[[
|
||||||
|
|
||||||
|
Minetest Ethereal Mod
|
||||||
|
|
||||||
|
Created by ChinChow
|
||||||
|
|
||||||
|
Updated by TenPlus1
|
||||||
|
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- DO NOT change settings below, use the settings.conf file instead
|
||||||
|
ethereal = {
|
||||||
|
|
||||||
|
version = "1.27",
|
||||||
|
leaftype = 0, -- 0 for 2D plantlike, 1 for 3D allfaces
|
||||||
|
leafwalk = false, -- true for walkable leaves, false to fall through
|
||||||
|
cavedirt = true, -- caves chop through dirt when true
|
||||||
|
torchdrop = true, -- torches drop when touching water
|
||||||
|
papyruswalk = true, -- papyrus can be walked on
|
||||||
|
lilywalk = true, -- waterlilies can be walked on
|
||||||
|
xcraft = true, -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
|
||||||
|
glacier = 1, -- Ice glaciers with snow
|
||||||
|
bamboo = 1, -- Bamboo with sprouts
|
||||||
|
mesa = 1, -- Mesa red and orange clay with giant redwood
|
||||||
|
alpine = 1, -- Snowy grass
|
||||||
|
snowy = 1, -- Cold grass with pine trees and snow spots
|
||||||
|
grassy = 1, -- Green grass with flowers and trees
|
||||||
|
caves = 1, -- Desert stone ares with huge caverns underneath
|
||||||
|
grayness = 1, -- Grey grass with willow trees
|
||||||
|
grassytwo = 1, -- Sparse trees with old trees and flowers
|
||||||
|
prairie = 1, -- Flowery grass with many plants and flowers
|
||||||
|
jumble = 1, -- Green grass with trees and jungle grass
|
||||||
|
junglee = 1, -- Jungle grass with tall jungle trees
|
||||||
|
desert = 1, -- Desert sand with cactus
|
||||||
|
grove = 1, -- Banana groves and ferns
|
||||||
|
mushroom = 1, -- Purple grass with giant mushrooms
|
||||||
|
sandstone = 1, -- Sandstone with smaller cactus
|
||||||
|
quicksand = 1, -- Quicksand banks
|
||||||
|
plains = 1, -- Dry dirt with scorched trees
|
||||||
|
savanna = 1, -- Dry yellow grass with acacia tree's
|
||||||
|
volcanic = 1, -- Red grass with lava craters
|
||||||
|
sandclay = 1, -- Sand areas with clay underneath
|
||||||
|
swamp = 1, -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
|
||||||
|
sealife = 1, -- Enable coral and seaweed
|
||||||
|
reefs = 1, -- Enable new 0.4.15 coral reefs in default
|
||||||
|
sakura = 1, -- Enable sakura biome with trees
|
||||||
|
tundra = 1, -- Enable tuntra biome with permafrost
|
||||||
|
}
|
||||||
|
|
||||||
|
local path = minetest.get_modpath("ethereal")
|
||||||
|
|
||||||
|
-- Load new settings if found
|
||||||
|
local input = io.open(path.."/settings.conf", "r")
|
||||||
|
if input then
|
||||||
|
dofile(path .. "/settings.conf")
|
||||||
|
input:close()
|
||||||
|
input = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Intllib
|
||||||
|
local S
|
||||||
|
if minetest.global_exists("intllib") then
|
||||||
|
if intllib.make_gettext_pair then
|
||||||
|
-- New method using gettext.
|
||||||
|
S = intllib.make_gettext_pair()
|
||||||
|
else
|
||||||
|
-- Old method using text files.
|
||||||
|
S = intllib.Getter()
|
||||||
|
end
|
||||||
|
else
|
||||||
|
S = function(s) return s end
|
||||||
|
end
|
||||||
|
ethereal.intllib = S
|
||||||
|
|
||||||
|
-- Falling node function
|
||||||
|
ethereal.check_falling = minetest.check_for_falling or nodeupdate
|
||||||
|
|
||||||
|
-- creative check
|
||||||
|
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
||||||
|
function ethereal.check_creative(name)
|
||||||
|
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
||||||
|
end
|
||||||
|
|
||||||
|
dofile(path .. "/plantlife.lua")
|
||||||
|
dofile(path .. "/mushroom.lua")
|
||||||
|
dofile(path .. "/onion.lua")
|
||||||
|
dofile(path .. "/water.lua")
|
||||||
|
dofile(path .. "/dirt.lua")
|
||||||
|
dofile(path .. "/food.lua")
|
||||||
|
dofile(path .. "/wood.lua")
|
||||||
|
dofile(path .. "/leaves.lua")
|
||||||
|
dofile(path .. "/sapling.lua")
|
||||||
|
dofile(path .. "/blumfruit.lua")
|
||||||
|
dofile(path .. "/fishing.lua")
|
||||||
|
dofile(path .. "/extra.lua")
|
||||||
|
dofile(path .. "/sealife.lua")
|
||||||
|
dofile(path .. "/gates.lua")
|
||||||
|
dofile(path .. "/mapgen.lua")
|
||||||
|
dofile(path .. "/compatibility.lua")
|
||||||
|
dofile(path .. "/stairs.lua")
|
||||||
|
dofile(path .. "/lucky_block.lua")
|
||||||
|
|
||||||
|
-- Set bonemeal aliases
|
||||||
|
if minetest.get_modpath("bonemeal") then
|
||||||
|
minetest.register_alias("ethereal:bone", "bonemeal:bone")
|
||||||
|
minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal")
|
||||||
|
else -- or return to where it came from
|
||||||
|
minetest.register_alias("ethereal:bone", "default:dirt")
|
||||||
|
minetest.register_alias("ethereal:bonemeal", "default:dirt")
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("xanadu") then
|
||||||
|
dofile(path .. "/plantpack.lua")
|
||||||
|
end
|
||||||
|
|
||||||
|
print (S("[MOD] Ethereal loaded"))
|
|
@ -0,0 +1,52 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- leaf decay
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:jogan_trunk"},
|
||||||
|
leaves = {"default:jogan_fruit", "default:jogan_leaves"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:pine_trunk"},
|
||||||
|
leaves = {"default:pine_needles"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:brylark_trunk"},
|
||||||
|
leaves = {"default:brylark_leaves"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:uneti_trunk"},
|
||||||
|
leaves = {"default:uneti_leaves"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:wroshyr_trunk"},
|
||||||
|
leaves = {"default:wroshyr_leaves"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:palm_trunk"},
|
||||||
|
leaves = {"default:palm_leaves", "ethereal:coconut"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:bamboo"},
|
||||||
|
leaves = {"default:bamboo_leaves"},
|
||||||
|
radius = 2
|
||||||
|
})
|
||||||
|
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"default:bush_stem"},
|
||||||
|
leaves = {"default:bush_leaves"},
|
||||||
|
radius = 1
|
||||||
|
})
|
|
@ -0,0 +1,21 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 TenPlus1
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
|
@ -0,0 +1,89 @@
|
||||||
|
|
||||||
|
-- add lucky blocks
|
||||||
|
|
||||||
|
if minetest.get_modpath("lucky_block") then
|
||||||
|
|
||||||
|
local epath = minetest.get_modpath("ethereal") .. "/schematics/"
|
||||||
|
|
||||||
|
lucky_block:add_schematics({
|
||||||
|
{"pinetree", ethereal.pinetree, {x = 3, y = 0, z = 3}},
|
||||||
|
{"palmtree", ethereal.palmtree, {x = 4, y = 0, z = 4}},
|
||||||
|
{"bananatree", ethereal.bananatree, {x = 3, y = 0, z = 3}},
|
||||||
|
{"orangetree", ethereal.orangetree, {x = 1, y = 0, z = 1}},
|
||||||
|
{"birchtree", ethereal.birchtree, {x = 2, y = 0, z = 2}},
|
||||||
|
})
|
||||||
|
|
||||||
|
lucky_block:add_blocks({
|
||||||
|
{"dro", {"ethereal:firethorn"}, 3},
|
||||||
|
{"dro", {"ethereal:firethorn_jelly"}, 3},
|
||||||
|
{"nod", "ethereal:crystal_spike", 1},
|
||||||
|
{"sch", "pinetree", 0, false},
|
||||||
|
{"dro", {"ethereal:orange"}, 10},
|
||||||
|
{"sch", "appletree", 0, false},
|
||||||
|
{"dro", {"ethereal:strawberry"}, 10},
|
||||||
|
{"sch", "bananatree", 0, false},
|
||||||
|
{"sch", "orangetree", 0, false},
|
||||||
|
{"dro", {"ethereal:banana"}, 10},
|
||||||
|
{"sch", "acaciatree", 0, false},
|
||||||
|
{"dro", {"ethereal:golden_apple"}, 3},
|
||||||
|
{"sch", "palmtree", 0, false},
|
||||||
|
{"dro", {"ethereal:tree_sapling"}, 5},
|
||||||
|
{"dro", {"ethereal:orange_tree_sapling"}, 5},
|
||||||
|
{"dro", {"ethereal:banana_tree_sapling"}, 5},
|
||||||
|
{"dro", {"ethereal:willow_sapling"} ,5},
|
||||||
|
{"dro", {"ethereal:mushroom_sapling"} ,5},
|
||||||
|
{"dro", {"ethereal:palm_sapling"} ,5},
|
||||||
|
{"dro", {"ethereal:birch_sapling"} ,5},
|
||||||
|
{"dro", {"ethereal:redwood_sapling"} ,1},
|
||||||
|
{"dro", {"ethereal:prairie_dirt"}, 10},
|
||||||
|
{"dro", {"ethereal:grove_dirt"}, 10},
|
||||||
|
{"fal", {"default:lava_source", "default:lava_source", "default:lava_source",
|
||||||
|
"default:lava_source", "default:lava_source"}, 1, true, 4},
|
||||||
|
{"dro", {"ethereal:cold_dirt"}, 10},
|
||||||
|
{"dro", {"ethereal:mushroom_dirt"}, 10},
|
||||||
|
{"dro", {"ethereal:fiery_dirt"}, 10},
|
||||||
|
{"dro", {"ethereal:axe_crystal"}},
|
||||||
|
{"nod", "ethereal:fire_flower", 1},
|
||||||
|
{"dro", {"ethereal:sword_crystal"}},
|
||||||
|
{"dro", {"ethereal:pick_crystal"}},
|
||||||
|
{"sch", "birchtree", 0, false},
|
||||||
|
{"dro", {"ethereal:fish_raw"}},
|
||||||
|
{"dro", {"ethereal:shovel_crystal"}},
|
||||||
|
{"dro", {"ethereal:fishing_rod_baited"}},
|
||||||
|
{"exp"},
|
||||||
|
{"dro", {"ethereal:fire_dust"}, 2},
|
||||||
|
{"exp", 4},
|
||||||
|
{"dro", {"ethereal:crystal_gilly_staff"}},
|
||||||
|
{"dro", {"ethereal:light_staff"}},
|
||||||
|
{"nod", "default:chest", 0, {
|
||||||
|
{name = "ethereal:birch_sapling", max = 10},
|
||||||
|
{name = "ethereal:palm_sapling", max = 10},
|
||||||
|
{name = "ethereal:orange_tree_sapling", max = 10},
|
||||||
|
{name = "ethereal:redwood_sapling", max = 10},
|
||||||
|
{name = "ethereal:bamboo_sprout", max = 10},
|
||||||
|
{name = "ethereal:banana_tree_sapling", max = 10},
|
||||||
|
{name = "ethereal:mushroom_sapling", max = 10},
|
||||||
|
{name = "ethereal:frost_tree_sapling", max = 10},
|
||||||
|
{name = "ethereal:sakura_sapling", max = 10},
|
||||||
|
{name = "ethereal:willow_sapling", max = 10},
|
||||||
|
}},
|
||||||
|
})
|
||||||
|
|
||||||
|
if minetest.get_modpath("3d_armor") then
|
||||||
|
lucky_block:add_blocks({
|
||||||
|
{"dro", {"3d_armor:helmet_crystal"}},
|
||||||
|
{"dro", {"3d_armor:chestplate_crystal"}},
|
||||||
|
{"dro", {"3d_armor:leggings_crystal"}},
|
||||||
|
{"dro", {"3d_armor:boots_crystal"}},
|
||||||
|
{"lig"},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("shields") then
|
||||||
|
lucky_block:add_blocks({
|
||||||
|
{"dro", {"shields:shield_crystal"}},
|
||||||
|
{"exp"},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
end -- END IF
|
|
@ -0,0 +1,694 @@
|
||||||
|
|
||||||
|
-- clear default mapgen biomes, decorations and ores
|
||||||
|
minetest.clear_registered_biomes()
|
||||||
|
minetest.clear_registered_decorations()
|
||||||
|
--minetest.clear_registered_ores()
|
||||||
|
|
||||||
|
local path = minetest.get_modpath("ethereal")
|
||||||
|
|
||||||
|
dofile(path .. "/ores.lua")
|
||||||
|
|
||||||
|
path = path .. "/schematics/"
|
||||||
|
|
||||||
|
local dpath = minetest.get_modpath("default") .. "/schematics/"
|
||||||
|
|
||||||
|
-- tree schematics
|
||||||
|
dofile(path .. "bamboo_tree.lua")
|
||||||
|
dofile(path .. "bush.lua")
|
||||||
|
dofile(path .. "waterlily.lua")
|
||||||
|
dofile(path .. "volcanom.lua")
|
||||||
|
dofile(path .. "volcanol.lua")
|
||||||
|
dofile(path .. "palm_tree.lua")
|
||||||
|
dofile(path .. "pine_tree.lua")
|
||||||
|
dofile(path .. "mushroomone.lua")
|
||||||
|
dofile(path .. "brylark_tree.lua")
|
||||||
|
dofile(path .. "jogan_tree.lua")
|
||||||
|
dofile(path .. "uneti_tree.lua")
|
||||||
|
dofile(path .. "wroshyr_tree.lua")
|
||||||
|
|
||||||
|
--= Biomes
|
||||||
|
|
||||||
|
local add_biome = function(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
|
||||||
|
|
||||||
|
if p ~= 1 then return end
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = a,
|
||||||
|
node_dust = b,
|
||||||
|
node_top = c,
|
||||||
|
depth_top = d,
|
||||||
|
node_filler = e,
|
||||||
|
depth_filler = f,
|
||||||
|
node_stone = g,
|
||||||
|
node_water_top = h,
|
||||||
|
depth_water_top = i,
|
||||||
|
node_water = j,
|
||||||
|
node_river_water = k,
|
||||||
|
y_min = l,
|
||||||
|
y_max = m,
|
||||||
|
heat_point = n,
|
||||||
|
humidity_point = o,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
add_biome("underground", nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
||||||
|
-31000, -192, 50, 50, 1)
|
||||||
|
|
||||||
|
add_biome("mountain", nil, "default:snow", 1, "default:snow_block", 2,
|
||||||
|
nil, nil, nil, nil, nil, 140, 31000, 50, 50, 1)
|
||||||
|
|
||||||
|
add_biome("desert", nil, "default:desert_sand", 1, "default:desert_sand", 3,
|
||||||
|
"default:desert_stone", nil, nil, nil, nil, 3, 23, 35, 20, ethereal.desert)
|
||||||
|
|
||||||
|
add_biome("desert_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
"default:desert_stone", nil, nil, nil, nil, -192, 3, 35, 20, ethereal.desert)
|
||||||
|
|
||||||
|
if ethereal.glacier == 1 then
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "glacier",
|
||||||
|
node_dust = "default:snow_block",
|
||||||
|
node_top = "default:snow_block",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:snow_block",
|
||||||
|
depth_filler = 3,
|
||||||
|
node_stone = "default:ice",
|
||||||
|
node_water_top = "default:ice",
|
||||||
|
depth_water_top = 10,
|
||||||
|
--node_water = "",
|
||||||
|
node_river_water = "default:ice",
|
||||||
|
node_riverbed = "default:gravel",
|
||||||
|
depth_riverbed = 2,
|
||||||
|
y_min = -8,
|
||||||
|
y_max = 31000,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 50,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "glacier_ocean",
|
||||||
|
node_dust = "default:snow_block",
|
||||||
|
node_top = "default:sand",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:sand",
|
||||||
|
depth_filler = 3,
|
||||||
|
--node_stone = "",
|
||||||
|
--node_water_top = "",
|
||||||
|
--depth_water_top = ,
|
||||||
|
--node_water = "",
|
||||||
|
--node_river_water = "",
|
||||||
|
y_min = -112,
|
||||||
|
y_max = -9,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 50,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
add_biome("clearing", nil, "default:grass_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 71, 45, 65, 1) -- ADDED
|
||||||
|
|
||||||
|
add_biome("bamboo", nil, "default:bamboo_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 25, 70, 45, 75, ethereal.bamboo)
|
||||||
|
|
||||||
|
--add_biome("bamboo_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
--nil, nil, nil, nil, nil, -192, 2, 45, 75, ethereal.bamboo)
|
||||||
|
|
||||||
|
add_biome("mesa", nil, "default:savanna_dirt", 1, "bakedclay:orange", 15,
|
||||||
|
nil, nil, nil, nil, nil, 1, 71, 25, 28, ethereal.mesa)
|
||||||
|
|
||||||
|
add_biome("mesa_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 25, 28, ethereal.mesa)
|
||||||
|
|
||||||
|
add_biome("alpine", nil, "default:snow_dirt", 1, "default:dirt", 2,
|
||||||
|
nil, nil, nil, nil, nil, 40, 140, 10, 40, ethereal.alpine)
|
||||||
|
|
||||||
|
add_biome("snowy", nil, "default:cold_dirt", 1, "default:dirt", 2,
|
||||||
|
nil, nil, nil, nil, nil, 4, 40, 10, 40, ethereal.snowy)
|
||||||
|
|
||||||
|
add_biome("grassy", nil, "default:grass_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 91, 13, 40, ethereal.grassy)
|
||||||
|
|
||||||
|
add_biome("grassy_ocean", nil, "defaut:sand", 2, "default:gravel", 1,
|
||||||
|
nil, nil, nil, nil, nil, -31000, 3, 13, 40, ethereal.grassy)
|
||||||
|
|
||||||
|
add_biome("caves", nil, "default:desert_stone", 3, "air", 8,
|
||||||
|
nil, nil, nil, nil, nil, 4, 41, 15, 25, ethereal.caves)
|
||||||
|
|
||||||
|
add_biome("prairie", nil, "default:prairie_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 26, 20, 40, ethereal.prairie)
|
||||||
|
|
||||||
|
add_biome("prairie_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 20, 40, ethereal.prairie)
|
||||||
|
|
||||||
|
add_biome("jumble", nil, "default:grass_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 1, 71, 25, 50, ethereal.jumble)
|
||||||
|
|
||||||
|
add_biome("jumble_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 25, 50, ethereal.jumble)
|
||||||
|
|
||||||
|
add_biome("junglee", nil, "default:jungle_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 1, 71, 30, 60, ethereal.junglee)
|
||||||
|
|
||||||
|
add_biome("junglee_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 30, 60, ethereal.junglee)
|
||||||
|
|
||||||
|
add_biome("grove", nil, "default:grass_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 23, 45, 35, ethereal.grove)
|
||||||
|
|
||||||
|
add_biome("grove_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 2, 45, 35, ethereal.grove)
|
||||||
|
|
||||||
|
add_biome("mushroom", nil, "default:fungus_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 50, 45, 55, ethereal.mushroom)
|
||||||
|
|
||||||
|
add_biome("mushroom_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 2, 45, 55, ethereal.mushroom)
|
||||||
|
|
||||||
|
add_biome("sandstone", nil, "default:sandstone", 1, "default:sandstone", 1,
|
||||||
|
"default:sandstone", nil, nil, nil, nil, 3, 23, 50, 20, ethereal.sandstone)
|
||||||
|
|
||||||
|
add_biome("sandstone_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 2, 50, 20, ethereal.sandstone)
|
||||||
|
|
||||||
|
add_biome("quicksand", nil, "default:quicksand", 3, "default:gravel", 1,
|
||||||
|
nil, nil, nil, nil, nil, 1, 1, 50, 38, ethereal.quicksand)
|
||||||
|
|
||||||
|
add_biome("plains", nil, "default:dry_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 3, 25, 65, 25, ethereal.plains)
|
||||||
|
|
||||||
|
add_biome("plains_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 2, 55, 25, ethereal.plains)
|
||||||
|
|
||||||
|
add_biome("savanna", nil, "default:savanna_dirt", 1, "default:dirt",
|
||||||
|
3, nil, nil, nil, nil, nil, 3, 50, 55, 25, ethereal.savanna)
|
||||||
|
|
||||||
|
add_biome("savanna_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 55, 25, ethereal.savanna)
|
||||||
|
|
||||||
|
add_biome("volcanic", nil, "default:charred_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 5, 20, 75, 10, ethereal.volcanic)
|
||||||
|
|
||||||
|
add_biome("volcanic_ocean", nil, "default:sand", 1, "default:sand", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 4, 75, 10, ethereal.volcanic)
|
||||||
|
|
||||||
|
add_biome("sandclay", nil, "default:sand", 3, "default:clay", 2,
|
||||||
|
nil, nil, nil, nil, nil, 1, 11, 65, 2, ethereal.sandclay)
|
||||||
|
|
||||||
|
add_biome("swamp", nil, "default:grass_dirt", 1, "default:dirt", 3,
|
||||||
|
nil, nil, nil, nil, nil, 1, 7, 80, 90, ethereal.swamp)
|
||||||
|
|
||||||
|
add_biome("swamp_ocean", nil, "default:sand", 2, "default:clay", 2,
|
||||||
|
nil, nil, nil, nil, nil, -192, 1, 80, 90, ethereal.swamp)
|
||||||
|
|
||||||
|
--= schematic decorations
|
||||||
|
|
||||||
|
local add_schem = function(a, b, c, d, e, f, g, h)
|
||||||
|
|
||||||
|
if g ~= 1 then return end
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "schematic",
|
||||||
|
place_on = a,
|
||||||
|
sidelen = 80,
|
||||||
|
fill_ratio = b,
|
||||||
|
biomes = c,
|
||||||
|
y_min = d,
|
||||||
|
y_max = e,
|
||||||
|
schematic = f,
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
replacements = h,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- wroshyr tree
|
||||||
|
add_schem({"default:jungle_dirt"}, 0.0025, {"junglee"}, 1, 100, ethereal.wroshyr_tree, ethereal.junglee)
|
||||||
|
|
||||||
|
-- brylark tree
|
||||||
|
add_schem({"default:jungle_dirt"}, 0.01, {"junglee"}, 1, 100, ethereal.brylark_tree, ethereal.junglee)
|
||||||
|
|
||||||
|
-- uneti tree
|
||||||
|
add_schem({"default:snowdirt"}, 0.001, {"alpine"}, 120, 140, ethereal.uneti_tree, ethereal.alpine)
|
||||||
|
|
||||||
|
if ethereal.mushroom then
|
||||||
|
|
||||||
|
-- giant mushshroom
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "schematic",
|
||||||
|
place_on = {"default:fungus_dirt"},
|
||||||
|
sidelen = 80,
|
||||||
|
fill_ratio = 0.02,
|
||||||
|
biomes = {"mushroom"},
|
||||||
|
y_min = 1,
|
||||||
|
y_max = 100,
|
||||||
|
schematic = ethereal.mushroomone,
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
spawn_by = "default:fungus_dirt",
|
||||||
|
num_spawn_by = 6,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if ethereal.fiery then
|
||||||
|
|
||||||
|
-- small lava crater
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "schematic",
|
||||||
|
place_on = {"default:charred_dirt"},
|
||||||
|
sidelen = 80,
|
||||||
|
fill_ratio = 0.01,
|
||||||
|
biomes = {"volcanic"},
|
||||||
|
y_min = 1,
|
||||||
|
y_max = 100,
|
||||||
|
schematic = ethereal.volcanom,
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
spawn_by = "default:charred_dirt",
|
||||||
|
num_spawn_by = 8,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- large lava crater
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "schematic",
|
||||||
|
place_on = {"default:charred_dirt"},
|
||||||
|
sidelen = 80,
|
||||||
|
fill_ratio = 0.003,
|
||||||
|
biomes = {"volcanic"},
|
||||||
|
y_min = 1,
|
||||||
|
y_max = 100,
|
||||||
|
schematic = ethereal.volcanol,
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
spawn_by = "default:charred_dirt",
|
||||||
|
num_spawn_by = 8,
|
||||||
|
rotation = "random",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- pine tree (default for lower elevation and ethereal for higher)
|
||||||
|
add_schem({"default:cold_dirt"}, 0.025, {"snowy"}, 10, 40, ethereal.pine_tree, ethereal.snowy)
|
||||||
|
add_schem({"default:snow_dirt"}, 0.025, {"alpine"}, 40, 140, ethereal.pine_tree, ethereal.alpine)
|
||||||
|
|
||||||
|
-- jogan tree
|
||||||
|
add_schem({"default:grass_dirt"}, 0.02, {"jumble"}, 1, 100, ethereal.jogan_tree, ethereal.grassy)
|
||||||
|
add_schem({"default:grass_dirt"}, 0.03, {"grassy"}, 1, 100, ethereal.jogan_tree, ethereal.grassy)
|
||||||
|
|
||||||
|
-- palm tree
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"desert_ocean"}, 1, 1, ethereal.palm_tree, ethereal.desert)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"plains_ocean"}, 1, 1, ethereal.palm_tree, ethereal.plains)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"sandclay"}, 1, 1, ethereal.palm_tree, ethereal.sandclay)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"sandstone_ocean"}, 1, 1, ethereal.palm_tree, ethereal.sandstone)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"mesa_ocean"}, 1, 1, ethereal.palm_tree, ethereal.mesa)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"grove_ocean"}, 1, 1, ethereal.palm_tree, ethereal.grove)
|
||||||
|
add_schem({"default:sand"}, 0.0025, {"grassy_ocean"}, 1, 1, ethereal.palm_tree, ethereal.grassy)
|
||||||
|
|
||||||
|
-- bamboo tree
|
||||||
|
add_schem({"default:bamboo_dirt"}, 0.025, {"bamboo"}, 1, 100, ethereal.bamboo_tree, ethereal.bamboo)
|
||||||
|
|
||||||
|
-- bush
|
||||||
|
add_schem({"default:bamboo_dirt"}, 0.08, {"bamboo"}, 1, 100, ethereal.bush, ethereal.bamboo)
|
||||||
|
|
||||||
|
-- vine tree
|
||||||
|
add_schem({"default:grass_dirt"}, 0.02, {"swamp"}, 1, 100, ethereal.vine_tree, ethereal.swamp)
|
||||||
|
|
||||||
|
-- water pools in swamp areas if 5.0 detected
|
||||||
|
if minetest.registered_nodes["default:permafrost"] then
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:grass_dirt"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.01,
|
||||||
|
biomes = {"swamp"},
|
||||||
|
y_max = 2,
|
||||||
|
y_min = 1,
|
||||||
|
flags = "force_placement",
|
||||||
|
decoration = "default:water_source",
|
||||||
|
spawn_by = "default:grass_dirt",
|
||||||
|
num_spawn_by = 8,
|
||||||
|
})
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:grass_dirt"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.1,
|
||||||
|
biomes = {"swamp"},
|
||||||
|
y_max = 2,
|
||||||
|
y_min = 1,
|
||||||
|
flags = "force_placement",
|
||||||
|
decoration = "default:water_source",
|
||||||
|
spawn_by = {"default:grass_dirt", "default:water_source"},
|
||||||
|
num_spawn_by = 8,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:savanna_dirt"},
|
||||||
|
sidelen = 4,
|
||||||
|
noise_params = {
|
||||||
|
offset = -1.5,
|
||||||
|
scale = -1.5,
|
||||||
|
spread = {x = 200, y = 200, z = 200},
|
||||||
|
seed = 329,
|
||||||
|
octaves = 4,
|
||||||
|
persist = 1.0
|
||||||
|
},
|
||||||
|
biomes = {"savanna"},
|
||||||
|
y_max = 31000,
|
||||||
|
y_min = 1,
|
||||||
|
decoration = "default:dry_dirt",
|
||||||
|
place_offset_y = -1,
|
||||||
|
flags = "force_placement",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- bush
|
||||||
|
--minetest.register_decoration({
|
||||||
|
-- deco_type = "schematic",
|
||||||
|
-- place_on = {"default:grass_dirt", "default:snow_dirt"},
|
||||||
|
-- sidelen = 16,
|
||||||
|
-- noise_params = {
|
||||||
|
-- offset = -0.004,
|
||||||
|
-- scale = 0.01,
|
||||||
|
-- spread = {x = 100, y = 100, z = 100},
|
||||||
|
-- seed = 137,
|
||||||
|
-- octaves = 3,
|
||||||
|
-- persist = 0.7,
|
||||||
|
-- },
|
||||||
|
-- biomes = {"grassy", "grassytwo", "jumble"},
|
||||||
|
-- y_min = 1,
|
||||||
|
-- y_max = 31000,
|
||||||
|
-- schematic = dpath .. "bush.mts",
|
||||||
|
-- flags = "place_center_x, place_center_z",
|
||||||
|
--})
|
||||||
|
|
||||||
|
--= simple decorations
|
||||||
|
|
||||||
|
local add_node = function(a, b, c, d, e, f, g, h, i, j)
|
||||||
|
|
||||||
|
if j ~= 1 then return end
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = a,
|
||||||
|
sidelen = 80,
|
||||||
|
fill_ratio = b,
|
||||||
|
biomes = c,
|
||||||
|
y_min = d,
|
||||||
|
y_max = e,
|
||||||
|
decoration = f,
|
||||||
|
height_max = g,
|
||||||
|
spawn_by = h,
|
||||||
|
num_spawn_by = i,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- scorched tree
|
||||||
|
add_node({"ethereal:dry_dirt"}, 0.006, {"plains"}, 1, 100, {"default:scorched_tree"}, 6, nil, nil, ethereal.plains)
|
||||||
|
|
||||||
|
-- dry shrub
|
||||||
|
add_node({"default:dry_dirt"}, 0.015, {"plains"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.plains)
|
||||||
|
add_node({"default:sand"}, 0.015, {"grassy_ocean"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.grassy)
|
||||||
|
add_node({"default:desert_sand"}, 0.015, {"desert"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.desert)
|
||||||
|
add_node({"default:sandstone"}, 0.015, {"sandstone"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.sandstone)
|
||||||
|
add_node({"bakedclay:red", "bakedclay:orange"}, 0.015, {"mesa"}, 1, 100, {"default:dry_shrub"}, nil, nil, nil, ethereal.mesa)
|
||||||
|
|
||||||
|
-- dry grass
|
||||||
|
add_node({"default:savanna_dirt"}, 0.25, {"savanna"}, 1, 100,
|
||||||
|
{"default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4",
|
||||||
|
"default:dry_grass_5"}, nil, nil, nil, ethereal.savanna)
|
||||||
|
add_node({"default:savanna_dirt"}, 0.10, {"mesa"}, 1, 100, {"default:dry_grass_2",
|
||||||
|
"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5"}, nil, nil, nil, ethereal.mesa)
|
||||||
|
add_node({"default:desert_stone"}, 0.005, {"caves"}, 5, 40, {"default:dry_grass_2",
|
||||||
|
"default:dry_grass_3", "default:dry_shrub"}, nil, nil, nil, ethereal.caves)
|
||||||
|
|
||||||
|
-- flowers
|
||||||
|
add_node({"default:grass_dirt"}, 0.025, {"grassy"}, 1, 100, {"flowers:lily_white",
|
||||||
|
"flowers:delia_pavorum", "flowers:starflower", "flowers:plom_bloom", "flowers:hai_ka_flower",
|
||||||
|
"flowers:purple_passion"}, nil, nil, nil, ethereal.grassy)
|
||||||
|
add_node({"default:grass_dirt"}, 0.025, {"grassytwo"}, 1, 100, {"flowers:lily_white",
|
||||||
|
"flowers:delia_pavorum", "flowers:starflower", "flowers:plom_bloom", "flowers:hai_ka_flower",
|
||||||
|
"flowers:purple_passion"}, nil, nil, nil, ethereal.grassytwo)
|
||||||
|
|
||||||
|
-- prairie flowers & strawberry
|
||||||
|
add_node({"default:prairie_dirt"}, 0.035, {"prairie"}, 1, 100, {"flowers:lily_white",
|
||||||
|
"flowers:delia_pavorum", "flowers:starflower", "flowers:plom_bloom", "flowers:hai_ka_flower",
|
||||||
|
"flowers:purple_passion", "flowers:jade_rose", "flowers:zinthorn"}, nil, nil, nil, ethereal.prairie)
|
||||||
|
|
||||||
|
-- snowy grass
|
||||||
|
--add_node({"default:cold_dirt"}, 0.05, {"snowy"}, 1, 100, {"default:snowy_grass"}, nil, nil, nil, ethereal.snowy)
|
||||||
|
|
||||||
|
-- cactus
|
||||||
|
add_node({"default:sandstone"}, 0.0025, {"sandstone"}, 1, 100, {"default:cactus"}, 3, nil, nil, ethereal.sandstone)
|
||||||
|
add_node({"default:desert_sand"}, 0.005, {"desert"}, 1, 100, {"default:cactus"}, 4, nil, nil, ethereal.desert)
|
||||||
|
|
||||||
|
-- wild red mushroom
|
||||||
|
add_node({"default:fungus_dirt"}, 0.01, {"mushroom"}, 1, 100, {"flowers:mushroom_red"}, nil, nil, nil, ethereal.mushroom)
|
||||||
|
|
||||||
|
local list = {
|
||||||
|
{"junglee", {"default:jungle_dirt", "default:dirt_with_rainforest_litter"}, ethereal.junglee},
|
||||||
|
{"grassy", {"default:grass_dirt"}, ethereal.grassy},
|
||||||
|
{"grassytwo", {"default:grass_dirt"}, ethereal.grassytwo},
|
||||||
|
{"prairie", {"default:prairie_dirt"}, ethereal.prairie},
|
||||||
|
{"mushroom", {"default:fungus_dirt"}, ethereal.mushroom},
|
||||||
|
{"swamp", {"default:grass_dirt"}, ethereal.swamp},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- wild red and brown mushrooms
|
||||||
|
for _, row in pairs(list) do
|
||||||
|
|
||||||
|
if row[3] == 1 then
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = row[2],
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0,
|
||||||
|
scale = 0.009,
|
||||||
|
spread = {x = 200, y = 200, z = 200},
|
||||||
|
seed = 2,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.66
|
||||||
|
},
|
||||||
|
biomes = {row[1]},
|
||||||
|
y_min = 1,
|
||||||
|
y_max = 120,
|
||||||
|
decoration = {"flowers:mushroom_brown", "flowers:mushroom_red"},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
-- jungle grass
|
||||||
|
add_node({"default:jungle_dirt"}, 0.10, {"junglee"}, 1, 100, {"default:jungle_grass"}, nil, nil, nil, ethereal.junglee)
|
||||||
|
add_node({"default:grass_dirt"}, 0.15, {"jumble"}, 1, 100, {"default:jungle_grass"}, nil, nil, nil, ethereal.jumble)
|
||||||
|
add_node({"default:grass_dirt"}, 0.25, {"swamp"}, 1, 100, {"default:jungle_grass"}, nil, nil, nil, ethereal.swamp)
|
||||||
|
|
||||||
|
-- grass
|
||||||
|
add_node({"default:grass_dirt"}, 0.35, {"grassy"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grassy)
|
||||||
|
add_node({"default:grass_dirt"}, 0.35, {"grassytwo"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grassytwo)
|
||||||
|
add_node({"default:grass_dirt"}, 0.35, {"jumble"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.jumble)
|
||||||
|
add_node({"default:jungle_dirt"}, 0.35, {"junglee"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.junglee)
|
||||||
|
add_node({"default:prairie_dirt"}, 0.35, {"prairie"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.prairie)
|
||||||
|
add_node({"default:grass_dirt"}, 0.35, {"grove"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.grove)
|
||||||
|
add_node({"default:bamboo_dirt"}, 0.35, {"bamboo"}, 1, 100, {"default:grass_2", "default:grass_3",
|
||||||
|
"default:grass_4", "default:grass_5"}, nil, nil, nil, ethereal.bamboo)
|
||||||
|
add_node({"default:grass_dirt"}, 0.35, {"clearing", "swamp"}, 1, 100, {"default:grass_3",
|
||||||
|
"default:grass_4"}, nil, nil, nil, 1)
|
||||||
|
|
||||||
|
-- grass on sand
|
||||||
|
add_node({"default:sand"}, 0.25, {"sandclay"}, 3, 4, {"default:saago_grass_1",
|
||||||
|
"default:saago_grass_2", "default:saago_grass_3"}, nil, nil, nil, ethereal.sandclay)
|
||||||
|
|
||||||
|
-- ferns
|
||||||
|
add_node({"default:grass_dirt"}, 0.2, {"grove"}, 1, 100, {"default:fern"}, nil, nil, nil, ethereal.grove)
|
||||||
|
add_node({"default:grass_dirt"}, 0.1, {"swamp"}, 1, 100, {"default:fern"}, nil, nil, nil, ethereal.swamp)
|
||||||
|
|
||||||
|
-- snow
|
||||||
|
add_node({"default:cold_dirt"}, 0.8, {"snowy"}, 4, 40, {"default:snow"}, nil, nil, nil, ethereal.snowy)
|
||||||
|
add_node({"default:snow_dirt"}, 0.8, {"alpine"}, 40, 140, {"default:snow"}, nil, nil, nil, ethereal.alpine)
|
||||||
|
|
||||||
|
-- reeds
|
||||||
|
add_node({"default:grass_dirt"}, 0.1, {"grassy"}, 1, 1, {"default:reeds"}, 4, "default:water_source", 1, ethereal.grassy)
|
||||||
|
add_node({"default:jungle_dirt"}, 0.1, {"junglee"}, 1, 1, {"default:reeds"}, 4, "default:water_source", 1, ethereal.junglee)
|
||||||
|
add_node({"default:grass_dirt"}, 0.1, {"swamp"}, 1, 1, {"default:reeds"}, 4, "default:water_source", 1, ethereal.swamp)
|
||||||
|
|
||||||
|
--= Farming Redo plants
|
||||||
|
|
||||||
|
if farming and farming.mod and farming.mod == "redo" then
|
||||||
|
|
||||||
|
print ("[MOD] Ethereal - Farming Redo detected and in use")
|
||||||
|
|
||||||
|
-- place waterlily in beach areas
|
||||||
|
local list = {
|
||||||
|
{"desert_ocean", ethereal.desert},
|
||||||
|
{"plains_ocean", ethereal.plains},
|
||||||
|
{"sandclay", ethereal.sandclay},
|
||||||
|
{"sandstone_ocean", ethereal.sandstone},
|
||||||
|
{"mesa_ocean", ethereal.mesa},
|
||||||
|
{"grove_ocean", ethereal.grove},
|
||||||
|
{"grassy_ocean", ethereal.grassy},
|
||||||
|
{"swamp_ocean", ethereal.swamp},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, row in pairs(list) do
|
||||||
|
|
||||||
|
if row[2] == 1 then
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "schematic",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = -0.12,
|
||||||
|
scale = 0.3,
|
||||||
|
spread = {x = 200, y = 200, z = 200},
|
||||||
|
seed = 33,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.7
|
||||||
|
},
|
||||||
|
biomes = {row[1]},
|
||||||
|
y_min = 0,
|
||||||
|
y_max = 0,
|
||||||
|
schematic = ethereal.waterlily,
|
||||||
|
rotation = "random",
|
||||||
|
})
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
if ethereal.tundra and minetest.registered_nodes["default:permafrost"] then
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "tundra_highland",
|
||||||
|
node_dust = "default:snow",
|
||||||
|
node_riverbed = "default:gravel",
|
||||||
|
depth_riverbed = 2,
|
||||||
|
y_max = 180,
|
||||||
|
y_min = 47,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 40,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "tundra",
|
||||||
|
node_top = "default:permafrost_with_stones",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:permafrost",
|
||||||
|
depth_filler = 1,
|
||||||
|
node_riverbed = "default:gravel",
|
||||||
|
depth_riverbed = 2,
|
||||||
|
vertical_blend = 4,
|
||||||
|
y_max = 46,
|
||||||
|
y_min = 2,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 40,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "tundra_beach",
|
||||||
|
node_top = "default:gravel",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:gravel",
|
||||||
|
depth_filler = 2,
|
||||||
|
node_riverbed = "default:gravel",
|
||||||
|
depth_riverbed = 2,
|
||||||
|
vertical_blend = 1,
|
||||||
|
y_max = 1,
|
||||||
|
y_min = -3,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 40,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "tundra_ocean",
|
||||||
|
node_top = "default:sand",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:sand",
|
||||||
|
depth_filler = 3,
|
||||||
|
node_riverbed = "default:gravel",
|
||||||
|
depth_riverbed = 2,
|
||||||
|
vertical_blend = 1,
|
||||||
|
y_max = -4,
|
||||||
|
y_min = -112,
|
||||||
|
heat_point = 0,
|
||||||
|
humidity_point = 40,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Tundra moss
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:permafrost_with_stones"},
|
||||||
|
sidelen = 4,
|
||||||
|
noise_params = {
|
||||||
|
offset = -0.8,
|
||||||
|
scale = 2.0,
|
||||||
|
spread = {x = 100, y = 100, z = 100},
|
||||||
|
seed = 53995,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 1.0
|
||||||
|
},
|
||||||
|
biomes = {"tundra"},
|
||||||
|
y_max = 50,
|
||||||
|
y_min = 2,
|
||||||
|
decoration = "default:permafrost_with_moss",
|
||||||
|
place_offset_y = -1,
|
||||||
|
flags = "force_placement",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Tundra patchy snow
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"default:permafrost_with_moss",
|
||||||
|
"default:permafrost_with_stones",
|
||||||
|
"default:stone",
|
||||||
|
"default:gravel"
|
||||||
|
},
|
||||||
|
sidelen = 4,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0,
|
||||||
|
scale = 1.0,
|
||||||
|
spread = {x = 100, y = 100, z = 100},
|
||||||
|
seed = 172555,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 1.0
|
||||||
|
},
|
||||||
|
biomes = {"tundra", "tundra_beach"},
|
||||||
|
y_max = 50,
|
||||||
|
y_min = 1,
|
||||||
|
decoration = "default:snow",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Kelp
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
name = "default:kelp",
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = -0.04,
|
||||||
|
scale = 0.1,
|
||||||
|
spread = {x = 200, y = 200, z = 200},
|
||||||
|
seed = 87112,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.7
|
||||||
|
},
|
||||||
|
biomes = {
|
||||||
|
"frost_ocean", "grassy_ocean", "sandstone_ocean", "swamp_ocean"},
|
||||||
|
y_max = -5,
|
||||||
|
y_min = -10,
|
||||||
|
flags = "force_placement",
|
||||||
|
decoration = "default:sand_with_kelp",
|
||||||
|
param2 = 48,
|
||||||
|
param2_max = 96,
|
||||||
|
})
|
||||||
|
end
|
|
@ -0,0 +1 @@
|
||||||
|
name = ethereal
|
|
@ -0,0 +1,27 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- mushroom soup (Heals 1 heart)
|
||||||
|
minetest.register_craftitem("ethereal:mushroom_soup", {
|
||||||
|
description = S("Mushroom Soup"),
|
||||||
|
inventory_image = "mushroom_soup.png",
|
||||||
|
on_use = minetest.item_eat(5, "ethereal:bowl"),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:mushroom_soup",
|
||||||
|
recipe = {
|
||||||
|
{"flowers:mushroom_brown"},
|
||||||
|
{"flowers:mushroom_brown"},
|
||||||
|
{"group:food_bowl"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- 4x red mushrooms make mushroom block
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:mushroom",
|
||||||
|
recipe = {
|
||||||
|
{"flowers:mushroom_red", "flowers:mushroom_red"},
|
||||||
|
{"flowers:mushroom_red", "flowers:mushroom_red"},
|
||||||
|
}
|
||||||
|
})
|
|
@ -0,0 +1,104 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- wild onion
|
||||||
|
minetest.register_craftitem("ethereal:wild_onion_plant", {
|
||||||
|
description = S("Wild Onion"),
|
||||||
|
inventory_image = "wild_onion.png",
|
||||||
|
wield_image = "wild_onion.png",
|
||||||
|
groups = {food_onion = 1, flammable = 2},
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1")
|
||||||
|
end,
|
||||||
|
on_use = minetest.item_eat(2),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Define Onion growth stages
|
||||||
|
local crop_def = {
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"ethereal_wild_onion_1.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
drop = "",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
|
||||||
|
growing = 1, not_in_creative_inventory = 1
|
||||||
|
},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
}
|
||||||
|
|
||||||
|
--stage 1
|
||||||
|
minetest.register_node("ethereal:onion_1", table.copy(crop_def))
|
||||||
|
|
||||||
|
--stage 2
|
||||||
|
crop_def.tiles = {"ethereal_wild_onion_2.png"}
|
||||||
|
minetest.register_node("ethereal:onion_2", table.copy(crop_def))
|
||||||
|
|
||||||
|
--stage 3
|
||||||
|
crop_def.tiles = {"ethereal_wild_onion_3.png"}
|
||||||
|
minetest.register_node("ethereal:onion_3", table.copy(crop_def))
|
||||||
|
|
||||||
|
--stage 4
|
||||||
|
crop_def.tiles = {"ethereal_wild_onion_4.png"}
|
||||||
|
crop_def.drop = {
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:wild_onion_plant"}, rarity = 1},
|
||||||
|
{items = {"ethereal:wild_onion_plant 2"}, rarity = 3},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minetest.register_node("ethereal:onion_4", table.copy(crop_def))
|
||||||
|
|
||||||
|
--stage 5
|
||||||
|
crop_def.tiles = {"ethereal_wild_onion_5.png"}
|
||||||
|
crop_def.groups.growing = 0
|
||||||
|
crop_def.drop = {
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
|
||||||
|
{items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
minetest.register_node("ethereal:onion_5", table.copy(crop_def))
|
||||||
|
|
||||||
|
-- growing routine if farming redo isn't present
|
||||||
|
if not farming or not farming.mod or farming.mod ~= "redo" then
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
label = "Ethereal grow onion",
|
||||||
|
nodenames = {"ethereal:onion_1", "ethereal:onion_2", "ethereal:onion_3", "ethereal:onion_4"},
|
||||||
|
neighbors = {"farming:soil_wet"},
|
||||||
|
interval = 9,
|
||||||
|
chance = 20,
|
||||||
|
catch_up = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
|
||||||
|
-- are we on wet soil?
|
||||||
|
pos.y = pos.y - 1
|
||||||
|
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
-- do we have enough light?
|
||||||
|
local light = minetest.get_node_light(pos)
|
||||||
|
|
||||||
|
if not light
|
||||||
|
or light < 13 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- grow to next stage
|
||||||
|
local num = node.name:split("_")[2]
|
||||||
|
|
||||||
|
node.name = "ethereal:onion_" .. tonumber(num + 1)
|
||||||
|
|
||||||
|
minetest.swap_node(pos, node)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
end -- END IF
|
|
@ -0,0 +1,76 @@
|
||||||
|
|
||||||
|
-- Baked Clay
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "blob",
|
||||||
|
ore = "bakedclay:red",
|
||||||
|
wherein = {"bakedclay:orange"},
|
||||||
|
clust_scarcity = 4 * 4 * 4,
|
||||||
|
clust_num_ores = 8,
|
||||||
|
clust_size = 6,
|
||||||
|
y_min = -10,
|
||||||
|
y_max = 71,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.35,
|
||||||
|
scale = 0.2,
|
||||||
|
spread = {x = 5, y = 5, z = 5},
|
||||||
|
seed = -316,
|
||||||
|
octaves = 1,
|
||||||
|
persist = 0.5
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "blob",
|
||||||
|
ore = "bakedclay:grey",
|
||||||
|
wherein = {"bakedclay:orange"},
|
||||||
|
clust_scarcity = 4 * 4 * 4,
|
||||||
|
clust_num_ores = 8,
|
||||||
|
clust_size = 6,
|
||||||
|
y_min = -10,
|
||||||
|
y_max = 71,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.35,
|
||||||
|
scale = 0.2,
|
||||||
|
spread = {x = 5, y = 5, z = 5},
|
||||||
|
seed = -613,
|
||||||
|
octaves = 1,
|
||||||
|
persist = 0.5
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local add_ore = function(a, b, c, d, e, f, g)
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "scatter",
|
||||||
|
ore = a,
|
||||||
|
wherein = b,
|
||||||
|
clust_scarcity = c,
|
||||||
|
clust_num_ores = d,
|
||||||
|
clust_size = e,
|
||||||
|
y_min = f,
|
||||||
|
y_max = g,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Coal
|
||||||
|
add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16)
|
||||||
|
|
||||||
|
-- Zersium
|
||||||
|
add_ore("default:stone_with_zersium", "default:desert_stone", 9*9*9, 5, 3, -63, -16)
|
||||||
|
add_ore("default:stone_with_zersium", "default:desert_stone", 24*24*24, 27, 6, -31000, -64)
|
||||||
|
|
||||||
|
-- Gold
|
||||||
|
add_ore("default:stone_with_gold", "default:desert_stone", 15*15*15, 3, 2, -255, -64)
|
||||||
|
add_ore("default:stone_with_gold", "default:desert_stone", 13*13*13, 5, 3, -31000, -256)
|
||||||
|
|
||||||
|
-- Kyber
|
||||||
|
add_ore("default:stone_with_kyber", "default:desert_stone", 20*20*20, 3, 2, -255, -64)
|
||||||
|
add_ore("default:stone_with_kyber", "default:desert_stone", 17*17*17, 5, 3, -31000, -256)
|
||||||
|
|
||||||
|
-- Beskar
|
||||||
|
add_ore("default:stone_with_beskar", "default:desert_stone", 17*17*17, 4, 3, -255, -128)
|
||||||
|
add_ore("default:stone_with_beskar", "default:desert_stone", 15*15*15, 4, 3, -31000, -256)
|
||||||
|
|
||||||
|
-- Copper
|
||||||
|
add_ore("default:stone_with_copper", "default:desert_stone", 9*9*9, 5, 3, -31000, -64)
|
|
@ -0,0 +1,143 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- vines
|
||||||
|
minetest.register_node("ethereal:vine", {
|
||||||
|
description = S("Vine"),
|
||||||
|
drawtype = "signlike",
|
||||||
|
tiles = {"vine.png"},
|
||||||
|
inventory_image = "vine.png",
|
||||||
|
wield_image = "vine.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
walkable = false,
|
||||||
|
climbable = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "wallmounted",
|
||||||
|
},
|
||||||
|
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
legacy_wallmounted = true,
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:vine 2",
|
||||||
|
recipe = {
|
||||||
|
{"group:leaves", "", "group:leaves"},
|
||||||
|
{"", "group:leaves", ""},
|
||||||
|
{"group:leaves", "", "group:leaves"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- light strings (glowing vine)
|
||||||
|
minetest.register_node("ethereal:lightstring", {
|
||||||
|
description = S("Light String Vine"),
|
||||||
|
drawtype = "signlike",
|
||||||
|
tiles = {"lightstring.png"},
|
||||||
|
inventory_image = "lightstring.png",
|
||||||
|
wield_image = "lightstring.png",
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "wallmounted",
|
||||||
|
light_source = 10,
|
||||||
|
walkable = false,
|
||||||
|
climbable = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "wallmounted",
|
||||||
|
},
|
||||||
|
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
legacy_wallmounted = true,
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:lightstring 8",
|
||||||
|
recipe = {
|
||||||
|
{"ethereal:vine", "ethereal:vine", "ethereal:vine"},
|
||||||
|
{"ethereal:vine", "default:torch", "ethereal:vine"},
|
||||||
|
{"ethereal:vine", "ethereal:vine", "ethereal:vine"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Fern (boston)
|
||||||
|
minetest.register_node("ethereal:fern", {
|
||||||
|
description = S("Fern"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
visual_scale = 1.4,
|
||||||
|
tiles = {"fern.png"},
|
||||||
|
inventory_image = "fern.png",
|
||||||
|
wield_image = "fern.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
waving = 1,
|
||||||
|
walkable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
drop = {
|
||||||
|
max_items = 1,
|
||||||
|
items = {
|
||||||
|
{items = {"ethereal:fern"}}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 2},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0.67, 5 / 16},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Illuminated Cave Shrooms (Red, Green and Blue)
|
||||||
|
minetest.register_node("ethereal:illumishroom", {
|
||||||
|
description = S("Red Illumishroom"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = { "illumishroom.png" },
|
||||||
|
inventory_image = "illumishroom.png",
|
||||||
|
wield_image = "illumishroom.png",
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 5,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("ethereal:illumishroom2", {
|
||||||
|
description = S("Green Illumishroom"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = { "illumishroom2.png" },
|
||||||
|
inventory_image = "illumishroom2.png",
|
||||||
|
wield_image = "illumishroom2.png",
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 5,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("ethereal:illumishroom3", {
|
||||||
|
description = S("Cyan Illumishroom"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = { "illumishroom3.png" },
|
||||||
|
inventory_image = "illumishroom3.png",
|
||||||
|
wield_image = "illumishroom3.png",
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 5,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
|
||||||
|
},
|
||||||
|
})
|
|
@ -0,0 +1,193 @@
|
||||||
|
|
||||||
|
--= Register Biome Decoration Using Plants Mega Pack Lite
|
||||||
|
|
||||||
|
--= Desert Biome
|
||||||
|
|
||||||
|
-- Cactus
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:desert_sand", "default:sandstone"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"desert", "sandstone"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:cactus_echinocereus", "xanadu:cactus_matucana",
|
||||||
|
"xanadu:cactus_baseball", "xanadu:cactus_golden"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Desert Plants
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:desert_sand", "default:sandstone", "default:sand"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.004,
|
||||||
|
biomes = {"desert", "sandstone"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:desert_kangaroo", "xanadu:desert_brittle",
|
||||||
|
"xanadu:desert_ocotillo", "xanadu:desert_whitesage"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Prairie Biome
|
||||||
|
|
||||||
|
-- Grass
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"ethereal:prairie_dirt", "default:dirt_with_grass"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"prairie", "grassy", "grassytwo"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:grass_prairie", "xanadu:grass_cord",
|
||||||
|
"xanadu:grass_wheatgrass", "xanadu:desert_whitesage"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Flowers
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"ethereal:prairie_grass", "default:dirt_with_grass",
|
||||||
|
"ethereal:grove_dirt", "ethereal:bamboo_dirt"
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"prairie", "grassy", "grassytwo", "bamboo"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:flower_jacobsladder", "xanadu:flower_thistle",
|
||||||
|
"xanadu:flower_wildcarrot"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"ethereal:prairie_grass", "default:dirt_with_grass",
|
||||||
|
"ethereal:grove_dirt"
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"prairie", "grassy", "grassytwo", "grove"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:flower_delphinium", "xanadu:flower_celosia",
|
||||||
|
"xanadu:flower_daisy", "xanadu:flower_bluerose"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Shrubs
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"ethereal:prairie_grass", "default:dirt_with_grass",
|
||||||
|
"ethereal:grove_dirt", "ethereal:jungle_grass",
|
||||||
|
"ethereal:gray_dirt", "default:dirt_with_rainforest_litter"
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {
|
||||||
|
"prairie", "grassy", "grassytwo", "grove", "junglee",
|
||||||
|
"grayness", "jumble"
|
||||||
|
},
|
||||||
|
decoration = {"xanadu:shrub_kerria", "xanadu:shrub_spicebush"},
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Jungle Biome
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"ethereal:jungle_dirt", "default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.007,
|
||||||
|
biomes = {"junglee", "jumble"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:rainforest_guzmania", "xanadu:rainforest_devil",
|
||||||
|
"xanadu:rainforest_lazarus", "xanadu:rainforest_lollipop",
|
||||||
|
"xanadu:mushroom_woolly"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Cold Biomes
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"default:dirt_with_snow", "ethereal:cold_dirt",
|
||||||
|
"ethereal:gray_dirt"
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"snowy", "alpine", "grayness"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:mountain_edelweiss", "xanadu:mountain_armeria",
|
||||||
|
"xanadu:mountain_bellflower", "xanadu:mountain_willowherb",
|
||||||
|
"xanadu:mountain_bistort"
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Mushroom Biome
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"ethereal:mushroom_dirt"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.005,
|
||||||
|
biomes = {"mushroom"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:mushroom_powderpuff", "xanadu:mushroom_chanterelle",
|
||||||
|
"xanadu:mushroom_parasol"
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Lakeside
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand", "default:dirt_with_grass"},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.015,
|
||||||
|
biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble", "swamp"},
|
||||||
|
decoration = {
|
||||||
|
"xanadu:wetlands_cattails", "xanadu:wetlands_pickerel",
|
||||||
|
"xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle"
|
||||||
|
},
|
||||||
|
spawn_by = "default:water_source",
|
||||||
|
num_spawn_by = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Harsh Biomes
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"ethereal:mushroom_dirt", "default:dirt_with_grass",
|
||||||
|
"ethereal:gray_dirt", "ethereal:cold_dirt",
|
||||||
|
"ethereal:dirt_with_snow", "ethereal:jungle_dirt",
|
||||||
|
"ethereal:prairie_dirt", "ethereal:grove_dirt",
|
||||||
|
"ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand",
|
||||||
|
"default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt",
|
||||||
|
"default:dirt_with_rainforest_litter"
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.004,
|
||||||
|
biomes = {
|
||||||
|
"mushroom", "prairie", "grayness", "plains", "desert",
|
||||||
|
"junglee", "grassy", "grassytwo", "jumble", "snowy", "alpine",
|
||||||
|
"fiery", "mesa", "bamboo"
|
||||||
|
},
|
||||||
|
decoration = {"xanadu:spooky_thornbush", "xanadu:spooky_baneberry"},
|
||||||
|
})
|
||||||
|
|
||||||
|
--= Poppy's growing in Clearing Biome in memory of RealBadAngel
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {
|
||||||
|
"default:dirt_with_grass",
|
||||||
|
},
|
||||||
|
sidelen = 16,
|
||||||
|
fill_ratio = 0.004,
|
||||||
|
biomes = {"clearing"},
|
||||||
|
decoration = {"xanadu:poppy"},
|
||||||
|
})
|
|
@ -0,0 +1,184 @@
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Bamboo Sprout
|
||||||
|
minetest.register_node("ethereal:bamboo_sprout", {
|
||||||
|
description = S("Bamboo Sprout"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"bamboo_sprout.png"},
|
||||||
|
inventory_image = "bamboo_sprout.png",
|
||||||
|
wield_image = "bamboo_sprout.png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
walkable = false,
|
||||||
|
groups = {
|
||||||
|
food_bamboo_sprout = 1, snappy = 3, attached_node = 1, flammable = 2,
|
||||||
|
dig_immediate = 3, ethereal_sapling = 1, sapling = 1,
|
||||||
|
},
|
||||||
|
sounds = default.node_sound_defaults(),
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0, 4 / 16}
|
||||||
|
},
|
||||||
|
on_use = minetest.item_eat(2),
|
||||||
|
grown_height = 11,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register Saplings
|
||||||
|
local register_sapling = function(name, desc, texture, height)
|
||||||
|
|
||||||
|
minetest.register_node(name .. "_sapling", {
|
||||||
|
description = S(desc .. " Tree Sapling"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {texture .. ".png"},
|
||||||
|
inventory_image = texture .. ".png",
|
||||||
|
wield_image = texture .. ".png",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
walkable = false,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||||
|
},
|
||||||
|
groups = {
|
||||||
|
snappy = 2, dig_immediate = 3, flammable = 2,
|
||||||
|
ethereal_sapling = 1, attached_node = 1, sapling = 1
|
||||||
|
},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
grown_height = height,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
register_sapling("ethereal:uneti_tree", "Uneti", "ethereal_uneti_tree_sapling", 7)
|
||||||
|
register_sapling("ethereal:brylark_tree", "Brylark", "ethereal_brylark_tree_sapling", 19)
|
||||||
|
register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom_sapling", 11)
|
||||||
|
register_sapling("ethereal:palm", "Palm", "moretrees_palm_sapling", 9)
|
||||||
|
register_sapling("ethereal:wroshyr", "Wroshyr", "wroshyr_sapling", 31)
|
||||||
|
register_sapling("ethereal:jogan_tree", "Jogan", "jogan_tree_sapling", 6)
|
||||||
|
|
||||||
|
local add_tree = function (pos, ofx, ofy, ofz, schem, replace)
|
||||||
|
-- check for schematic
|
||||||
|
if not schem then
|
||||||
|
print (S("Schematic not found"))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
-- remove sapling and place schematic
|
||||||
|
minetest.swap_node(pos, {name = "air"})
|
||||||
|
minetest.place_schematic(
|
||||||
|
{x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
|
||||||
|
schem, 0, replace, false)
|
||||||
|
end
|
||||||
|
|
||||||
|
local path = minetest.get_modpath("ethereal") .. "/schematics/"
|
||||||
|
|
||||||
|
-- grow tree functions
|
||||||
|
function ethereal.grow_uneti_tree(pos)
|
||||||
|
add_tree(pos, 4, 0, 4, ethereal.uneti_tree)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_brylark_tree(pos)
|
||||||
|
add_tree(pos, 4, 0, 4, ethereal.brylark_tree)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_mushroom_tree(pos)
|
||||||
|
add_tree(pos, 4, 0, 4, ethereal.mushroomone)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_palm_tree(pos)
|
||||||
|
add_tree(pos, 4, 0, 4, ethereal.palmtree)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_wroshyr_tree(pos)
|
||||||
|
add_tree(pos, 7, 0, 7, ethereal.wroshyr_tree)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_jogan_tree(pos)
|
||||||
|
add_tree(pos, 1, 0, 1, ethereal.jogan_tree)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ethereal.grow_bamboo_tree(pos)
|
||||||
|
add_tree(pos, 1, 0, 1, ethereal.bambootree)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check if sapling has enough height room to grow
|
||||||
|
local enough_height = function(pos, height)
|
||||||
|
|
||||||
|
local nod = minetest.line_of_sight(
|
||||||
|
{x = pos.x, y = pos.y + 1, z = pos.z},
|
||||||
|
{x = pos.x, y = pos.y + height, z = pos.z})
|
||||||
|
|
||||||
|
if not nod then
|
||||||
|
return false -- obstructed
|
||||||
|
else
|
||||||
|
return true -- can grow
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local grow_sapling = function(pos, node)
|
||||||
|
|
||||||
|
local under = minetest.get_node({
|
||||||
|
x = pos.x,
|
||||||
|
y = pos.y - 1,
|
||||||
|
z = pos.z
|
||||||
|
}).name
|
||||||
|
|
||||||
|
if not minetest.registered_nodes[node.name] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local height = minetest.registered_nodes[node.name].grown_height
|
||||||
|
|
||||||
|
-- do we have enough height to grow sapling into tree?
|
||||||
|
if not height or not enough_height(pos, height) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if Ethereal Sapling is growing on correct substrate
|
||||||
|
if node.name == "ethereal:uneti_tree_sapling"
|
||||||
|
and minetest.get_item_group(under, "soil") > 0 then
|
||||||
|
ethereal.grow_yellow_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:wroshyr_tree_sapling"
|
||||||
|
and minetest.get_item_group(under, "soil") > 0 then
|
||||||
|
ethereal.grow_big_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:brylark_tree_sapling"
|
||||||
|
and minetest.get_item_group(under, "soil") > 0 then
|
||||||
|
ethereal.grow_banana_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:jogan_tree_sapling"
|
||||||
|
and minetest.get_item_group(under, "soil") > 0 then
|
||||||
|
ethereal.grow_frost_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:mushroom_sapling"
|
||||||
|
and under == "ethereal:fungus_dirt" then
|
||||||
|
ethereal.grow_mushroom_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:palm_sapling"
|
||||||
|
and under == "default:sand" then
|
||||||
|
ethereal.grow_palm_tree(pos)
|
||||||
|
|
||||||
|
elseif node.name == "ethereal:bamboo_sprout"
|
||||||
|
and under == "ethereal:bamboo_dirt" then
|
||||||
|
ethereal.grow_bamboo_tree(pos)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Grow saplings
|
||||||
|
minetest.register_abm({
|
||||||
|
label = "Ethereal grow sapling",
|
||||||
|
nodenames = {"group:ethereal_sapling"},
|
||||||
|
interval = 10,
|
||||||
|
chance = 50,
|
||||||
|
catch_up = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
|
||||||
|
local light_level = minetest.get_node_light(pos) or 0
|
||||||
|
|
||||||
|
if light_level < 13 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
grow_sapling(pos, node)
|
||||||
|
end,
|
||||||
|
})
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", param1 = 000}
|
||||||
|
local B = {name = "default:bamboo", param1 = 255}
|
||||||
|
local L = {name = "default:bamboo_leaves", param1 = 255}
|
||||||
|
local l = {name = "default:bamboo_leaves", param1 = 100}
|
||||||
|
|
||||||
|
ethereal.bamboo_tree = {
|
||||||
|
|
||||||
|
size = {x = 3, y = 18, z = 3},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 1, prob = 127},
|
||||||
|
{ypos = 2, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
l,L,l,
|
||||||
|
_,L,_,
|
||||||
|
_,_,_,
|
||||||
|
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
_,B,_,
|
||||||
|
l,L,l,
|
||||||
|
_,L,_,
|
||||||
|
_,l,_,
|
||||||
|
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
l,L,l,
|
||||||
|
_,L,_,
|
||||||
|
_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,184 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local l = {name = "default:brylark_leaves", prob = 255}
|
||||||
|
local t = {name = "default:brylark_trunk", prob = 255}
|
||||||
|
|
||||||
|
ethereal.brylark_tree = {
|
||||||
|
|
||||||
|
size = {x = 8, y = 19, z = 8},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127}, -- trunk
|
||||||
|
{ypos = 1, prob = 127},
|
||||||
|
{ypos = 2, prob = 127},
|
||||||
|
{ypos = 3, prob = 127},
|
||||||
|
{ypos = 4, prob = 127},
|
||||||
|
{ypos = 5, prob = 127},
|
||||||
|
{ypos = 13, prob = 127}, -- leaves
|
||||||
|
{ypos = 15, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,l,l,l,l,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,l,l,l,l,l,l,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,l,l,l,l,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
l,l,l,t,t,l,l,l,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,l,l,t,t,l,l,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,_,t,t,_,_,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
l,l,l,t,t,l,l,l,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,l,l,t,t,l,l,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,_,l,t,t,l,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,l,l,l,l,l,l,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,l,l,l,l,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,l,l,l,l,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,l,l,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", param1 = 0}
|
||||||
|
local B = {name = "default:bush_leaves", param1 = 255}
|
||||||
|
local b = {name = "default:bush_leaves", param1 = 100}
|
||||||
|
|
||||||
|
ethereal.bush = {
|
||||||
|
|
||||||
|
size = {x = 5, y = 3, z = 5},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 2, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
b,B,B,B,b,
|
||||||
|
_,_,_,_,_,
|
||||||
|
_,_,_,_,_,
|
||||||
|
|
||||||
|
B,B,B,B,B,
|
||||||
|
_,b,B,b,_,
|
||||||
|
_,_,_,_,_,
|
||||||
|
|
||||||
|
B,B,B,B,B,
|
||||||
|
_,B,B,B,_,
|
||||||
|
_,_,b,_,_,
|
||||||
|
|
||||||
|
B,B,B,B,B,
|
||||||
|
_,b,B,b,_,
|
||||||
|
_,_,_,_,_,
|
||||||
|
|
||||||
|
b,B,B,B,b,
|
||||||
|
_,_,_,_,_,
|
||||||
|
_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", param1 = 0}
|
||||||
|
local L = {name = "default:jogan_leaves", param1 = 255}
|
||||||
|
local l = {name = "default:jogan_leaves", param1 = 200}
|
||||||
|
local T = {name = "default:jogan_trunk", param1 = 255}
|
||||||
|
local j = {name = "default:jogan_fruit", param1 = 200}
|
||||||
|
|
||||||
|
ethereal.jogan_tree = {
|
||||||
|
|
||||||
|
size = {x = 3, y = 6, z = 3},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 3, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
l,l,j,
|
||||||
|
L,L,L,
|
||||||
|
l,j,l,
|
||||||
|
|
||||||
|
_,T,_,
|
||||||
|
_,T,_,
|
||||||
|
_,T,_,
|
||||||
|
l,T,l,
|
||||||
|
L,T,L,
|
||||||
|
l,L,l,
|
||||||
|
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
_,_,_,
|
||||||
|
j,l,l,
|
||||||
|
L,L,L,
|
||||||
|
l,l,l,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local M = {name = "default:mushroom_cap", prob = 255}
|
||||||
|
local T = {name = "default:mushroom_trunk", prob = 255}
|
||||||
|
local P = {name = "default:mushroom_pore", prob = 255}
|
||||||
|
|
||||||
|
ethereal.mushroomone = {
|
||||||
|
|
||||||
|
size = {x = 8, y = 11, z = 8},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 1, prob = 127},
|
||||||
|
{ypos = 7, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,M,_,_,M,_,_,
|
||||||
|
_,_,M,_,_,M,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,M,_,_,_,_,M,_,
|
||||||
|
_,M,_,_,_,_,M,_,
|
||||||
|
_,_,M,P,P,M,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
M,_,_,T,T,_,_,M,
|
||||||
|
M,_,_,T,T,_,_,M,
|
||||||
|
_,M,P,P,P,P,M,_,
|
||||||
|
_,_,M,M,M,M,_,_,
|
||||||
|
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,_,_,_,
|
||||||
|
M,_,_,T,T,_,_,M,
|
||||||
|
M,_,_,T,T,_,_,M,
|
||||||
|
_,M,P,P,P,P,M,_,
|
||||||
|
_,_,M,M,M,M,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,M,_,_,_,_,M,_,
|
||||||
|
_,M,_,_,_,_,M,_,
|
||||||
|
_,_,M,P,P,M,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,M,_,_,M,_,_,
|
||||||
|
_,_,M,_,_,M,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,M,M,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,110 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", param = 0}
|
||||||
|
local L = {name = "default:palm_leaves", param = 255}
|
||||||
|
local l = {name = "default:palm_leaves", param = 191}
|
||||||
|
local T = {name = "default:palm_trunk", param = 255}
|
||||||
|
local t = {name = "default:palm_trunk", param = 191}
|
||||||
|
local C = {name = "ethereal:coconut", param = 127}
|
||||||
|
|
||||||
|
ethereal.palm_tree = {
|
||||||
|
|
||||||
|
size = {x = 9, y = 9, z = 9},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 3, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,l,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,C,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,t,_,_,_,
|
||||||
|
_,_,_,_,_,T,_,_,_,
|
||||||
|
_,_,l,_,_,T,_,_,l,
|
||||||
|
_,_,L,L,C,T,C,L,L,
|
||||||
|
_,_,_,L,L,L,L,L,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,C,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,l,_,_,_,
|
||||||
|
_,_,_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local L = {name = "default:pine_needles", prob = 255}
|
||||||
|
local T = {name = "default:pine_trunk", prob = 255}
|
||||||
|
|
||||||
|
ethereal.pine_tree = {
|
||||||
|
|
||||||
|
size = {x = 7, y = 8, z = 7},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 4, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,L,L,L,L,L,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,T,_,_,_,
|
||||||
|
_,_,_,T,_,_,_,
|
||||||
|
_,_,L,T,L,_,_,
|
||||||
|
L,L,L,T,L,L,L,
|
||||||
|
_,_,L,T,L,_,_,
|
||||||
|
_,L,L,T,L,L,_,
|
||||||
|
_,_,L,T,L,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,L,L,L,L,L,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local L = {name = "default:uneti_leaves", prob = 255}
|
||||||
|
local T = {name = "default:uneti_trunk", prob = 255}
|
||||||
|
local t = {name = "default:uneti_trunk", prob = 127}
|
||||||
|
|
||||||
|
ethereal.uneti_tree = {
|
||||||
|
|
||||||
|
size = {x = 9, y = 8, z = 9},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 1, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,t,t,_,t,t,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,t,t,t,t,t,t,t,_,
|
||||||
|
_,_,_,t,_,t,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,L,L,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,t,t,t,T,t,t,t,_,
|
||||||
|
_,_,t,t,T,t,t,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,L,L,L,T,L,L,L,_,
|
||||||
|
_,_,L,L,L,L,L,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,t,T,T,T,t,_,_,
|
||||||
|
_,_,_,T,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,T,_,_,_,
|
||||||
|
_,_,_,T,T,T,_,_,_,
|
||||||
|
L,L,L,L,T,L,L,L,L,
|
||||||
|
_,L,L,L,T,L,L,L,_,
|
||||||
|
_,_,L,L,L,L,L,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,t,t,t,T,t,t,t,_,
|
||||||
|
_,_,t,t,T,t,t,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,_,_,_,_,
|
||||||
|
_,L,L,L,T,L,L,L,_,
|
||||||
|
_,_,L,L,L,L,L,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,t,t,t,t,t,t,t,_,
|
||||||
|
_,_,_,t,_,t,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,L,L,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,t,t,_,t,t,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local T = {name = "default:jogan_trunk", prob = 255}
|
||||||
|
local L = {name = "default:jogan_leaves", prob = 255}
|
||||||
|
local u = {name = "default:vine", prob = 255, param2 = 2}
|
||||||
|
local U = {name = "ethereal:vine", prob = 255, param2 = 3}
|
||||||
|
local W = {name = "ethereal:vine", prob = 255, param2 = 4}
|
||||||
|
local w = {name = "ethereal:vine", prob = 255, param2 = 5}
|
||||||
|
|
||||||
|
ethereal.vine_tree = {
|
||||||
|
|
||||||
|
size = {x = 7, y = 7, z = 7},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,W,_,_,_,_,_,
|
||||||
|
_,W,_,W,_,_,_,
|
||||||
|
_,W,_,W,_,_,_,
|
||||||
|
_,W,_,_,_,W,_,
|
||||||
|
_,W,_,_,_,W,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,W,_,_,
|
||||||
|
_,_,_,_,W,_,_,
|
||||||
|
_,L,L,L,W,L,_,
|
||||||
|
_,L,L,_,L,L,_,
|
||||||
|
_,L,L,L,L,L,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,U,
|
||||||
|
_,_,_,_,_,_,U,
|
||||||
|
_,_,_,_,_,_,U,
|
||||||
|
_,L,T,_,T,L,U,
|
||||||
|
u,L,L,L,L,_,_,
|
||||||
|
_,_,L,L,L,L,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
|
||||||
|
_,_,_,T,_,_,_,
|
||||||
|
_,_,_,T,_,_,_,
|
||||||
|
u,_,_,T,_,_,_,
|
||||||
|
u,L,_,L,_,L,_,
|
||||||
|
u,L,L,L,L,L,_,
|
||||||
|
_,L,L,L,L,L,_,
|
||||||
|
_,_,L,L,L,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,U,
|
||||||
|
_,_,_,_,_,_,U,
|
||||||
|
_,L,T,_,T,L,U,
|
||||||
|
_,L,L,L,L,L,U,
|
||||||
|
_,L,L,L,L,L,_,
|
||||||
|
_,_,_,L,L,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
u,_,_,_,_,_,_,
|
||||||
|
u,_,_,_,w,_,_,
|
||||||
|
u,L,L,L,w,L,_,
|
||||||
|
_,L,L,L,L,_,_,
|
||||||
|
_,_,L,L,L,L,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,w,_,_,_,_,
|
||||||
|
_,_,w,_,_,_,_,
|
||||||
|
_,_,w,w,_,_,_,
|
||||||
|
_,_,_,w,w,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local d = {name = "default:charred_dirt", prob = 245}
|
||||||
|
local s = {name = "default:stone", prob = 255}
|
||||||
|
local l = {name = "default:lava_source", prob = 255}
|
||||||
|
local f = {name = "default:lava_flowing", prob = 255}
|
||||||
|
local o = {name = "default:obsidian", prob = 215}
|
||||||
|
|
||||||
|
ethereal.volcanol = {
|
||||||
|
|
||||||
|
size = {x = 17, y = 4, z = 15},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 1, prob = 127},
|
||||||
|
{ypos = 2, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,d,d,d,d,_,_,d,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,d,s,s,s,s,d,d,s,d,d,_,_,_,_,
|
||||||
|
_,_,_,_,s,s,s,s,_,_,s,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,d,s,o,o,o,o,s,s,o,s,s,d,_,_,_,
|
||||||
|
_,_,_,s,f,f,s,f,s,s,f,s,s,_,_,_,_,
|
||||||
|
_,_,_,_,s,s,_,s,_,_,s,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,d,s,o,s,s,s,s,o,o,s,o,o,s,d,_,_,
|
||||||
|
_,_,s,l,l,l,l,f,s,f,f,l,l,s,_,_,_,
|
||||||
|
_,_,_,s,f,f,s,s,o,s,o,s,s,_,_,_,_,
|
||||||
|
_,_,_,_,o,o,o,_,_,_,o,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,d,s,o,s,o,o,o,s,s,o,s,s,o,s,d,_,
|
||||||
|
_,_,s,f,l,l,l,l,l,l,l,l,l,l,s,_,_,
|
||||||
|
_,_,_,s,f,f,f,f,f,f,l,f,l,s,_,_,_,
|
||||||
|
_,_,_,_,o,_,_,o,o,o,_,o,o,_,_,_,_,
|
||||||
|
|
||||||
|
_,d,s,o,s,o,s,s,o,o,s,o,s,o,s,d,_,
|
||||||
|
_,_,s,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
|
||||||
|
_,_,_,_,o,f,f,f,f,f,f,f,l,s,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,o,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,d,s,o,s,o,s,s,s,s,o,s,o,s,d,_,
|
||||||
|
_,_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
|
||||||
|
_,_,_,s,f,f,f,f,f,f,f,f,l,s,_,_,_,
|
||||||
|
_,_,_,_,o,_,_,_,_,_,_,_,s,_,_,_,_,
|
||||||
|
|
||||||
|
_,d,s,o,s,o,o,o,o,o,o,s,o,s,d,_,_,
|
||||||
|
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
|
||||||
|
_,_,_,s,f,f,f,f,f,f,f,l,s,_,_,_,_,
|
||||||
|
_,_,_,_,o,_,_,_,_,_,_,_,o,_,_,_,_,
|
||||||
|
|
||||||
|
_,d,s,o,s,s,s,s,s,s,o,s,o,s,d,_,_,
|
||||||
|
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
|
||||||
|
_,_,_,s,f,f,f,f,l,l,f,l,s,_,_,_,_,
|
||||||
|
_,_,_,_,o,o,_,_,_,o,_,o,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,d,s,o,o,o,o,o,o,s,o,s,d,_,_,_,
|
||||||
|
_,_,_,s,s,l,f,f,f,f,l,l,s,_,_,_,_,
|
||||||
|
_,_,_,_,s,s,s,s,s,s,f,s,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,s,o,o,o,_,s,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,d,s,s,s,s,s,s,o,s,d,_,_,_,_,
|
||||||
|
_,_,_,_,s,s,s,s,s,s,l,s,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,s,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,d,d,d,d,d,d,s,s,d,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,s,s,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,d,d,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local l = {name = "default:lava_source", prob = 225}
|
||||||
|
local s = {name = "default:stone", prob = 255}
|
||||||
|
local d = {name = "default:charred_dirt", prob = 255}
|
||||||
|
|
||||||
|
ethereal.volcanom = {
|
||||||
|
|
||||||
|
size = {x = 6, y = 2, z = 6},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,s,_,_,_,
|
||||||
|
_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,s,l,s,_,_,
|
||||||
|
_,_,s,d,_,_,
|
||||||
|
|
||||||
|
_,s,l,l,s,_,
|
||||||
|
_,s,_,_,s,_,
|
||||||
|
|
||||||
|
s,l,l,l,s,_,
|
||||||
|
_,s,_,_,d,_,
|
||||||
|
|
||||||
|
_,d,l,l,d,d,
|
||||||
|
_,_,s,d,_,_,
|
||||||
|
|
||||||
|
_,_,d,d,d,_,
|
||||||
|
_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
-- waterlily
|
||||||
|
|
||||||
|
ethereal.waterlily = {
|
||||||
|
size = {x = 1, y = 3, z = 1},
|
||||||
|
data = {
|
||||||
|
|
||||||
|
{name = "default:sand", param1 = 255},
|
||||||
|
{name = "default:water_source", param1 = 255},
|
||||||
|
{name = "flowers:waterlily", param1 = 255},
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
if ethereal.lilywalk == true then
|
||||||
|
|
||||||
|
minetest.override_item("flowers:waterlily", {
|
||||||
|
walkable = true,
|
||||||
|
})
|
||||||
|
end
|
|
@ -0,0 +1,533 @@
|
||||||
|
|
||||||
|
local _ = {name = "air", prob = 0}
|
||||||
|
local T = {name = "default:wroshyr_trunk", prob = 255}
|
||||||
|
local L = {name = "default:wroshyr_leaves", prob = 255}
|
||||||
|
|
||||||
|
ethereal.wroshyr_tree = {
|
||||||
|
|
||||||
|
size = {x = 15, y = 33, z = 15},
|
||||||
|
|
||||||
|
yslice_prob = {
|
||||||
|
{ypos = 0, prob = 127},
|
||||||
|
{ypos = 5, prob = 127},
|
||||||
|
{ypos = 6, prob = 127},
|
||||||
|
{ypos = 7, prob = 127},
|
||||||
|
{ypos = 14, prob = 127},
|
||||||
|
{ypos = 15, prob = 127},
|
||||||
|
{ypos = 16, prob = 127},
|
||||||
|
},
|
||||||
|
|
||||||
|
data = {
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,_,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,T,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,T,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,T,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,T,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,T,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,T,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,T,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,_,L,L,L,L,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,T,T,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,L,L,L,L,L,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,L,L,L,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,T,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,T,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,L,L,L,L,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,L,L,L,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,T,T,T,T,T,T,_,_,_,_,_,_,
|
||||||
|
L,L,L,L,L,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,L,T,T,T,L,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,L,L,L,L,
|
||||||
|
_,_,L,L,L,L,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,T,T,T,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,T,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,T,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,T,T,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,L,T,T,L,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,L,L,L,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,T,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
L,T,T,T,L,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,_,_,_,L,L,L,L,
|
||||||
|
_,_,_,_,T,T,T,T,_,_,_,L,L,L,_,
|
||||||
|
_,L,L,L,L,L,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,_,_,T,L,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,T,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,L,L,L,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
|
||||||
|
L,L,L,L,L,_,_,_,L,_,_,_,_,_,_,
|
||||||
|
L,L,L,L,_,_,T,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
|
||||||
|
_,_,_,_,T,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,L,L,T,T,L,L,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,_,_,L,L,T,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,T,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
|
||||||
|
L,L,L,L,_,_,_,_,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,L,L,L,L,L,L,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,L,L,_,_,L,L,T,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,L,L,L,L,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,L,L,L,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,L,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,L,L,L,L,L,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,L,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 43 KiB |
|
@ -0,0 +1,295 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Seaweed
|
||||||
|
minetest.register_node("ethereal:seaweed", {
|
||||||
|
description = S("Seaweed"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"seaweed.png"},
|
||||||
|
inventory_image = "seaweed.png",
|
||||||
|
wield_image = "seaweed.png",
|
||||||
|
paramtype = "light",
|
||||||
|
walkable = false,
|
||||||
|
climbable = true,
|
||||||
|
drowning = 1,
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||||
|
},
|
||||||
|
post_effect_color = {a = 64, r = 100, g = 100, b = 200},
|
||||||
|
groups = {food_seaweed = 1, snappy = 3, flammable = 3},
|
||||||
|
on_use = minetest.item_eat(1),
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
after_dig_node = function(pos, node, metadata, digger)
|
||||||
|
default.dig_up(pos, node, digger)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
type = "shapeless",
|
||||||
|
output = "dye:dark_green 3",
|
||||||
|
recipe = {"ethereal:seaweed",},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- agar powder
|
||||||
|
minetest.register_craftitem("ethereal:agar_powder", {
|
||||||
|
description = S("Agar Powder"),
|
||||||
|
inventory_image = "ethereal_agar_powder.png",
|
||||||
|
groups = {food_gelatin = 1, flammable = 2},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "ethereal:agar_powder 3",
|
||||||
|
recipe = {
|
||||||
|
{"group:food_seaweed", "group:food_seaweed", "group:food_seaweed"},
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
|
||||||
|
},
|
||||||
|
replacements = {
|
||||||
|
{"bucket:bucket_water", "bucket:bucket_empty 4"},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Blue Coral
|
||||||
|
minetest.register_node("ethereal:coral2", {
|
||||||
|
description = S("Blue Coral"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"coral2.png"},
|
||||||
|
inventory_image = "coral2.png",
|
||||||
|
wield_image = "coral2.png",
|
||||||
|
paramtype = "light",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
|
||||||
|
},
|
||||||
|
light_source = 3,
|
||||||
|
groups = {snappy = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
type = "shapeless",
|
||||||
|
output = "dye:cyan 3",
|
||||||
|
recipe = {"ethereal:coral2",},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Orange Coral
|
||||||
|
minetest.register_node("ethereal:coral3", {
|
||||||
|
description = S("Orange Coral"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"coral3.png"},
|
||||||
|
inventory_image = "coral3.png",
|
||||||
|
wield_image = "coral3.png",
|
||||||
|
paramtype = "light",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
|
||||||
|
},
|
||||||
|
light_source = 3,
|
||||||
|
groups = {snappy = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
type = "shapeless",
|
||||||
|
output = "dye:orange 3",
|
||||||
|
recipe = {"ethereal:coral3",},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Pink Coral
|
||||||
|
minetest.register_node("ethereal:coral4", {
|
||||||
|
description = S("Pink Coral"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"coral4.png"},
|
||||||
|
inventory_image = "coral4.png",
|
||||||
|
wield_image = "coral4.png",
|
||||||
|
paramtype = "light",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 8 / 16, 6 / 16},
|
||||||
|
},
|
||||||
|
light_source = 3,
|
||||||
|
groups = {snappy = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
type = "shapeless",
|
||||||
|
output = "dye:pink 3",
|
||||||
|
recipe = {"ethereal:coral4",},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Green Coral
|
||||||
|
minetest.register_node("ethereal:coral5", {
|
||||||
|
description = S("Green Coral"),
|
||||||
|
drawtype = "plantlike",
|
||||||
|
tiles = {"coral5.png"},
|
||||||
|
inventory_image = "coral5.png",
|
||||||
|
wield_image = "coral5.png",
|
||||||
|
paramtype = "light",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 3 / 16, 6 / 16},
|
||||||
|
},
|
||||||
|
light_source = 3,
|
||||||
|
groups = {snappy = 3},
|
||||||
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft( {
|
||||||
|
type = "shapeless",
|
||||||
|
output = "dye:green 3",
|
||||||
|
recipe = {"ethereal:coral5",},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Undersea Sand
|
||||||
|
minetest.register_node("ethereal:sandy", {
|
||||||
|
description = S("Sandy"),
|
||||||
|
tiles = {"default_sand.png"},
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {
|
||||||
|
crumbly = 3, falling_node = 1, sand = 1, not_in_creative_inventory = 1
|
||||||
|
},
|
||||||
|
drop = "default:sand",
|
||||||
|
sounds = default.node_sound_sand_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- randomly generate coral or seaweed and have seaweed grow up to 14 high
|
||||||
|
if ethereal.sealife == 1 then
|
||||||
|
minetest.register_abm({
|
||||||
|
label = "Grow coral/seaweed",
|
||||||
|
nodenames = {"ethereal:sandy"},
|
||||||
|
neighbors = {"group:water"},
|
||||||
|
interval = 15,
|
||||||
|
chance = 10,
|
||||||
|
catch_up = false,
|
||||||
|
action = function(pos, node)
|
||||||
|
|
||||||
|
local sel = math.random(1, 6)
|
||||||
|
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
local nod = minetest.get_node(pos).name
|
||||||
|
|
||||||
|
if nod == "default:water_source"
|
||||||
|
and sel == 6 then
|
||||||
|
|
||||||
|
minetest.swap_node(pos, {name = "ethereal:sponge_wet"})
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if nod == "default:water_source"
|
||||||
|
and sel > 1 then
|
||||||
|
|
||||||
|
minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if nod == "ethereal:seaweed"
|
||||||
|
or sel == 1 then
|
||||||
|
|
||||||
|
local height = 0
|
||||||
|
local high = 14
|
||||||
|
|
||||||
|
while height < high
|
||||||
|
and minetest.get_node(pos).name == "ethereal:seaweed" do
|
||||||
|
height = height + 1
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if pos.y < 1
|
||||||
|
and height < high
|
||||||
|
and minetest.get_node(pos).name == "default:water_source" then
|
||||||
|
|
||||||
|
minetest.swap_node(pos, {name = "ethereal:seaweed"})
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- sponges
|
||||||
|
|
||||||
|
minetest.register_node("ethereal:sponge_air", {
|
||||||
|
drawtype = "airlike",
|
||||||
|
paramtype = "light",
|
||||||
|
walkable = false,
|
||||||
|
buildable_to = true,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
pointable = false,
|
||||||
|
drop = "",
|
||||||
|
groups = {not_in_creative_inventory = 1},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_node("ethereal:sponge", {
|
||||||
|
description = S("Sponge"),
|
||||||
|
tiles = {"ethereal_sponge.png"},
|
||||||
|
groups = {crumbly = 3},
|
||||||
|
sounds = default.node_sound_sand_defaults(),
|
||||||
|
|
||||||
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||||
|
|
||||||
|
-- get player name
|
||||||
|
local name = placer:get_player_name()
|
||||||
|
|
||||||
|
-- is area protected
|
||||||
|
if minetest.is_protected(pos, name) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- get water nodes within range
|
||||||
|
local num = minetest.find_nodes_in_area(
|
||||||
|
{x = pos.x - 3, y = pos.y - 3, z = pos.z - 3},
|
||||||
|
{x = pos.x + 3, y = pos.y + 3, z = pos.z + 3},
|
||||||
|
{"group:water"})
|
||||||
|
|
||||||
|
-- no water
|
||||||
|
if #num == 0 then return end
|
||||||
|
|
||||||
|
-- replace water nodes with sponge air
|
||||||
|
for _, w in pairs(num) do
|
||||||
|
|
||||||
|
if not minetest.is_protected(pos, name) then
|
||||||
|
minetest.swap_node(w, {name = "ethereal:sponge_air"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- replace dry sponge with wet sponge
|
||||||
|
minetest.swap_node(pos, {name="ethereal:sponge_wet"})
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_node("ethereal:sponge_wet", {
|
||||||
|
description = S("Wet sponge"),
|
||||||
|
tiles = {"ethereal_sponge_wet.png"},
|
||||||
|
groups = {crumbly = 3},
|
||||||
|
sounds = default.node_sound_sand_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- cook wet sponge into dry sponge
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
recipe = "ethereal:sponge_wet",
|
||||||
|
output = "ethereal:sponge",
|
||||||
|
cooktime = 3,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- use leaf decay to remove sponge air nodes
|
||||||
|
default.register_leafdecay({
|
||||||
|
trunks = {"ethereal:sponge_wet"},
|
||||||
|
leaves = {"ethereal:sponge_air"},
|
||||||
|
radius = 3
|
||||||
|
})
|
||||||
|
|
||||||
|
-- dry sponges can be used as fuel
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "ethereal:sponge",
|
||||||
|
burntime = 5,
|
||||||
|
})
|
|
@ -0,0 +1,41 @@
|
||||||
|
|
||||||
|
--[[
|
||||||
|
Ethereal Settings can be changed here and kept even after the mod
|
||||||
|
has been updated
|
||||||
|
--]]
|
||||||
|
|
||||||
|
ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces
|
||||||
|
ethereal.leafwalk = false -- true for walkable leaves, false to fall through
|
||||||
|
ethereal.cavedirt = true -- caves chop through dirt when true
|
||||||
|
ethereal.torchdrop = true -- torches drop when touching water
|
||||||
|
ethereal.papyruswalk = true -- papyrus can be walked on
|
||||||
|
ethereal.lilywalk = true -- waterlilies can be walked on
|
||||||
|
ethereal.xcraft = true -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
|
||||||
|
|
||||||
|
-- Set following to 1 to enable biome or false to disable
|
||||||
|
ethereal.glacier = 1 -- Ice glaciers with snow
|
||||||
|
ethereal.bamboo = 1 -- Bamboo with sprouts
|
||||||
|
ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
|
||||||
|
ethereal.alpine = 1 -- Snowy grass
|
||||||
|
ethereal.snowy = 1 -- Cold grass with pine trees and snow spots
|
||||||
|
ethereal.frost = 1 -- Blue dirt with blue/pink frost trees
|
||||||
|
ethereal.grassy = 1 -- Green grass with flowers and trees
|
||||||
|
ethereal.caves = 1 -- Desert stone ares with huge caverns underneath
|
||||||
|
ethereal.grayness = 1 -- Grey grass with willow trees
|
||||||
|
ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers
|
||||||
|
ethereal.prairie = 1 -- Flowery grass with many plants and flowers
|
||||||
|
ethereal.jumble = 1 -- Green grass with trees and jungle grass
|
||||||
|
ethereal.junglee = 1 -- Jungle grass with tall jungle trees
|
||||||
|
ethereal.desert = 1 -- Desert sand with cactus
|
||||||
|
ethereal.grove = 1 -- Banana groves and ferns
|
||||||
|
ethereal.mushroom = 1 -- Purple grass with giant mushrooms
|
||||||
|
ethereal.sandstone = 1 -- Sandstone with smaller cactus
|
||||||
|
ethereal.quicksand = 1 -- Quicksand banks
|
||||||
|
ethereal.plains = 1 -- Dry dirt with scorched trees
|
||||||
|
ethereal.savanna = 1 -- Dry yellow grass with acacia tree's
|
||||||
|
ethereal.volcanic = 1 -- Red grass with lava craters
|
||||||
|
ethereal.sandclay = 1 -- Sand areas with clay underneath
|
||||||
|
ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
|
||||||
|
ethereal.sealife = 1 -- Enable coral and seaweed
|
||||||
|
ethereal.reefs = 1 -- Enable new coral reefs in default
|
||||||
|
ethereal.sakura = 1 -- Enable sakura biomes with trees
|
|
@ -0,0 +1,338 @@
|
||||||
|
|
||||||
|
local S = ethereal.intllib
|
||||||
|
|
||||||
|
-- Stairs Redo
|
||||||
|
if stairs and stairs.mod and stairs.mod == "redo" then
|
||||||
|
|
||||||
|
stairs.register_all("crystal_block", "ethereal:crystal_block",
|
||||||
|
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"crystal_block.png"},
|
||||||
|
S("Crystal Block Stair"),
|
||||||
|
S("Crystal Block Slab"),
|
||||||
|
default.node_sound_glass_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("icebrick", "ethereal:icebrick",
|
||||||
|
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"brick_ice.png"},
|
||||||
|
S("Ice Brick Stair"),
|
||||||
|
S("Ice Brick Slab"),
|
||||||
|
default.node_sound_glass_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("snowbrick", "ethereal:snowbrick",
|
||||||
|
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"brick_snow.png"},
|
||||||
|
S("Snow Brick Stair"),
|
||||||
|
S("Snow Brick Slab"),
|
||||||
|
default.node_sound_dirt_defaults({
|
||||||
|
footstep = {name = "default_snow_footstep", gain = 0.25},
|
||||||
|
dug = {name = "default_snow_footstep", gain = 0.75},
|
||||||
|
}))
|
||||||
|
|
||||||
|
stairs.register_all("dry_dirt", "ethereal:dry_dirt",
|
||||||
|
{crumbly = 3},
|
||||||
|
{"ethereal_dry_dirt.png"},
|
||||||
|
S("Dried Dirt Stair"),
|
||||||
|
S("Dried Dirt Slab"),
|
||||||
|
default.node_sound_dirt_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
{"mushroom_trunk.png"},
|
||||||
|
S("Mushroom Trunk Stair"),
|
||||||
|
S("Mushroom Trunk Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("mushroom", "ethereal:mushroom",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
{"mushroom_block.png"},
|
||||||
|
S("Mushroom Top Stair"),
|
||||||
|
S("Mushroom Top Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("frost_wood", "ethereal:frost_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
{"frost_wood.png"},
|
||||||
|
S("Frost Wood Stair"),
|
||||||
|
S("Frost Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("yellow_wood", "ethereal:yellow_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
{"yellow_wood.png"},
|
||||||
|
S("Healing Wood Stair"),
|
||||||
|
S("Healing Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("palm_wood", "ethereal:palm_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"moretrees_palm_wood.png"},
|
||||||
|
S("Palm Wood Stair"),
|
||||||
|
S("Palm Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("birch_wood", "ethereal:birch_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"moretrees_birch_wood.png"},
|
||||||
|
S("Birch Wood Stair"),
|
||||||
|
S("Birch Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("banana_wood", "ethereal:banana_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"banana_wood.png"},
|
||||||
|
S("Banana Wood Stair"),
|
||||||
|
S("Banana Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("willow_wood", "ethereal:willow_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"willow_wood.png"},
|
||||||
|
S("Willow Wood Stair"),
|
||||||
|
S("Willow Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("redwood_wood", "ethereal:redwood_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"redwood_wood.png"},
|
||||||
|
S("Redwood stair"),
|
||||||
|
S("Redwood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("bamboo_wood", "ethereal:bamboo_block",
|
||||||
|
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"bamboo_floor.png"},
|
||||||
|
S("Bamboo stair"),
|
||||||
|
S("Bamboo Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_all("sakura_wood", "ethereal:sakura_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"ethereal_sakura_wood.png"},
|
||||||
|
S("Sakura Wood stair"),
|
||||||
|
S("Sakura Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
-- Stairs Plus (in More Blocks)
|
||||||
|
elseif minetest.global_exists("stairsplus") then
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", {
|
||||||
|
description = S("Crystal block"),
|
||||||
|
tiles = {"crystal_block.png"},
|
||||||
|
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
sounds = default.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "icebrick", "ethereal:icebrick", {
|
||||||
|
description = S("Ice Brick"),
|
||||||
|
tiles = {"brick_ice.png"},
|
||||||
|
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
sounds = default.node_sound_glass_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "snowbrick", "ethereal:snowbrick", {
|
||||||
|
description = S("Snow Brick"),
|
||||||
|
tiles = {"brick_snow.png"},
|
||||||
|
groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
sounds = default.node_sound_dirt_defaults({
|
||||||
|
footstep = {name = "default_snow_footstep", gain = 0.25},
|
||||||
|
dug = {name = "default_snow_footstep", gain = 0.75},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "dry_dirt", "ethereal:dry_dirt", {
|
||||||
|
description = S("Dried Dirt"),
|
||||||
|
tiles = {"ethereal_dry_dirt.png"},
|
||||||
|
groups = {crumbly = 3},
|
||||||
|
sounds = default.node_sound_dirt_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "mushroom_trunk", "ethereal:mushroom_trunk", {
|
||||||
|
description = S("Mushroom Trunk"),
|
||||||
|
tiles = {"mushroom_trunk.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "mushroom", "ethereal:mushroom", {
|
||||||
|
description = S("Mushroom Top"),
|
||||||
|
tiles = {"mushroom_block.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "frost_wood", "ethereal:frost_wood", {
|
||||||
|
description = S("Frost Wood"),
|
||||||
|
tiles = {"frost_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "yellow_wood", "ethereal:yellow_wood", {
|
||||||
|
description = S("Healing Wood"),
|
||||||
|
tiles = {"yellow_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "palm_wood", "ethereal:palm_wood", {
|
||||||
|
description = S("Palm Wood"),
|
||||||
|
tiles = {"moretrees_palm_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "birch_wood", "ethereal:birch_wood", {
|
||||||
|
description = S("Birch Wood"),
|
||||||
|
tiles = {"moretrees_birch_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "banana_wood", "ethereal:banana_wood", {
|
||||||
|
description = S("Banana Wood"),
|
||||||
|
tiles = {"banana_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "willow_wood", "ethereal:willow_wood", {
|
||||||
|
description = S("Willow Wood"),
|
||||||
|
tiles = {"willow_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "redwood_wood", "ethereal:redwood_wood", {
|
||||||
|
description = S("Redwood"),
|
||||||
|
tiles = {"redwood_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "bamboo_wood", "ethereal:bamboo_block", {
|
||||||
|
description = S("Bamboo"),
|
||||||
|
tiles = {"bamboo_floor.png"},
|
||||||
|
groups = {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
stairsplus:register_all("ethereal", "sakura_wood", "ethereal:sakura_wood", {
|
||||||
|
description = S("Sakura"),
|
||||||
|
tiles = {"ethereal_sakura_wood.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Default Stairs
|
||||||
|
else
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
|
||||||
|
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"crystal_block.png"},
|
||||||
|
S("Crystal Block Stair"),
|
||||||
|
S("Crystal Block Slab"),
|
||||||
|
default.node_sound_glass_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("icebrick", "ethereal:icebrick",
|
||||||
|
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"brick_ice.png"},
|
||||||
|
S("Ice Brick Stair"),
|
||||||
|
S("Ice Brick Slab"),
|
||||||
|
default.node_sound_glass_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
|
||||||
|
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
|
||||||
|
{"brick_snow.png"},
|
||||||
|
S("Snow Brick Stair"),
|
||||||
|
S("Snow Brick Slab"),
|
||||||
|
default.node_sound_dirt_defaults({
|
||||||
|
footstep = {name = "default_snow_footstep", gain = 0.15},
|
||||||
|
dug = {name = "default_snow_footstep", gain = 0.2},
|
||||||
|
dig = {name = "default_snow_footstep", gain = 0.2}
|
||||||
|
}))
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt",
|
||||||
|
{crumbly = 3},
|
||||||
|
{"ethereal_dry_dirt.png"},
|
||||||
|
S("Dried Dirt Stair"),
|
||||||
|
S("Dried Dirt Slab"),
|
||||||
|
default.node_sound_dirt_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
{"mushroom_trunk.png"},
|
||||||
|
S("Mushroom Trunk Stair"),
|
||||||
|
S("Mushroom Trunk Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("mushroom", "ethereal:mushroom",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||||
|
{"mushroom_block.png"},
|
||||||
|
S("Mushroom Top Stair"),
|
||||||
|
S("Mushroom Top Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
{"frost_wood.png"},
|
||||||
|
S("Frost Wood Stair"),
|
||||||
|
S("Frost Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
|
||||||
|
{"yellow_wood.png"},
|
||||||
|
S("Healing Wood Stair"),
|
||||||
|
S("Healing Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"moretrees_palm_wood.png"},
|
||||||
|
S("Palm Wood Stair"),
|
||||||
|
S("Palm Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"moretrees_birch_wood.png"},
|
||||||
|
"Birch Wood Stair",
|
||||||
|
"Birch Wood Slab",
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"banana_wood.png"},
|
||||||
|
S("Banana Wood Stair"),
|
||||||
|
S("Banana Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"willow_wood.png"},
|
||||||
|
S("Willow Wood Stair"),
|
||||||
|
S("Willow Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"redwood_wood.png"},
|
||||||
|
S("Redwood stair"),
|
||||||
|
S("Redwood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("bamboo_wood", "ethereal:bamboo_block",
|
||||||
|
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"bamboo_floor.png"},
|
||||||
|
S("Bamboo stair"),
|
||||||
|
S("Bamboo Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
stairs.register_stair_and_slab("sakura_wood", "ethereal:sakura_wood",
|
||||||
|
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
|
||||||
|
{"ethereal_sakura_wood.png"},
|
||||||
|
S("Sakura Wood Stair"),
|
||||||
|
S("Sakura Wood Slab"),
|
||||||
|
default.node_sound_wood_defaults())
|
||||||
|
|
||||||
|
end
|
After Width: | Height: | Size: 211 B |
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 207 B |
After Width: | Height: | Size: 564 B |
After Width: | Height: | Size: 219 B |
After Width: | Height: | Size: 367 B |
After Width: | Height: | Size: 357 B |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 272 B |
After Width: | Height: | Size: 277 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 276 B |
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 187 B |
After Width: | Height: | Size: 186 B |
After Width: | Height: | Size: 257 B |
After Width: | Height: | Size: 209 B |
After Width: | Height: | Size: 216 B |
After Width: | Height: | Size: 348 B |
After Width: | Height: | Size: 272 B |