|
5 | 5 | */ |
6 | 6 | package survivalblock.atmosphere.atmospheric_api.not_mixin.datafixer; |
7 | 7 |
|
8 | | -import com.mojang.datafixers.util.Function3; |
9 | | -import com.mojang.datafixers.util.Function4; |
| 8 | +import com.mojang.datafixers.util.*; |
10 | 9 | import com.mojang.serialization.Codec; |
11 | 10 | import com.mojang.serialization.MapCodec; |
12 | 11 | import com.mojang.serialization.codecs.RecordCodecBuilder; |
@@ -87,5 +86,93 @@ static <O, F1, F2, F3, F4> MapCodec<O> tuple( |
87 | 86 | ).apply(instance, to) |
88 | 87 | ); |
89 | 88 | } |
| 89 | + |
| 90 | + static <O, F1, F2, F3, F4, F5> MapCodec<O> tuple( |
| 91 | + MapCodec<F1> codec1, Function<O, F1> from1, |
| 92 | + MapCodec<F2> codec2, Function<O, F2> from2, |
| 93 | + MapCodec<F3> codec3, Function<O, F3> from3, |
| 94 | + MapCodec<F4> codec4, Function<O, F4> from4, |
| 95 | + MapCodec<F5> codec5, Function<O, F5> from5, |
| 96 | + Function5<F1, F2, F3, F4, F5, O> to |
| 97 | + ) { |
| 98 | + return RecordCodecBuilder.mapCodec( |
| 99 | + instance -> instance.group( |
| 100 | + codec1.forGetter(from1), |
| 101 | + codec2.forGetter(from2), |
| 102 | + codec3.forGetter(from3), |
| 103 | + codec4.forGetter(from4), |
| 104 | + codec5.forGetter(from5) |
| 105 | + ).apply(instance, to) |
| 106 | + ); |
| 107 | + } |
| 108 | + |
| 109 | + static <O, F1, F2, F3, F4, F5, F6> MapCodec<O> tuple( |
| 110 | + MapCodec<F1> codec1, Function<O, F1> from1, |
| 111 | + MapCodec<F2> codec2, Function<O, F2> from2, |
| 112 | + MapCodec<F3> codec3, Function<O, F3> from3, |
| 113 | + MapCodec<F4> codec4, Function<O, F4> from4, |
| 114 | + MapCodec<F5> codec5, Function<O, F5> from5, |
| 115 | + MapCodec<F6> codec6, Function<O, F6> from6, |
| 116 | + Function6<F1, F2, F3, F4, F5, F6, O> to |
| 117 | + ) { |
| 118 | + return RecordCodecBuilder.mapCodec( |
| 119 | + instance -> instance.group( |
| 120 | + codec1.forGetter(from1), |
| 121 | + codec2.forGetter(from2), |
| 122 | + codec3.forGetter(from3), |
| 123 | + codec4.forGetter(from4), |
| 124 | + codec5.forGetter(from5), |
| 125 | + codec6.forGetter(from6) |
| 126 | + ).apply(instance, to) |
| 127 | + ); |
| 128 | + } |
| 129 | + |
| 130 | + static <O, F1, F2, F3, F4, F5, F6, F7> MapCodec<O> tuple( |
| 131 | + MapCodec<F1> codec1, Function<O, F1> from1, |
| 132 | + MapCodec<F2> codec2, Function<O, F2> from2, |
| 133 | + MapCodec<F3> codec3, Function<O, F3> from3, |
| 134 | + MapCodec<F4> codec4, Function<O, F4> from4, |
| 135 | + MapCodec<F5> codec5, Function<O, F5> from5, |
| 136 | + MapCodec<F6> codec6, Function<O, F6> from6, |
| 137 | + MapCodec<F7> codec7, Function<O, F7> from7, |
| 138 | + Function7<F1, F2, F3, F4, F5, F6, F7, O> to |
| 139 | + ) { |
| 140 | + return RecordCodecBuilder.mapCodec( |
| 141 | + instance -> instance.group( |
| 142 | + codec1.forGetter(from1), |
| 143 | + codec2.forGetter(from2), |
| 144 | + codec3.forGetter(from3), |
| 145 | + codec4.forGetter(from4), |
| 146 | + codec5.forGetter(from5), |
| 147 | + codec6.forGetter(from6), |
| 148 | + codec7.forGetter(from7) |
| 149 | + ).apply(instance, to) |
| 150 | + ); |
| 151 | + } |
| 152 | + |
| 153 | + static <O, F1, F2, F3, F4, F5, F6, F7, F8> MapCodec<O> tuple( |
| 154 | + MapCodec<F1> codec1, Function<O, F1> from1, |
| 155 | + MapCodec<F2> codec2, Function<O, F2> from2, |
| 156 | + MapCodec<F3> codec3, Function<O, F3> from3, |
| 157 | + MapCodec<F4> codec4, Function<O, F4> from4, |
| 158 | + MapCodec<F5> codec5, Function<O, F5> from5, |
| 159 | + MapCodec<F6> codec6, Function<O, F6> from6, |
| 160 | + MapCodec<F7> codec7, Function<O, F7> from7, |
| 161 | + MapCodec<F8> codec8, Function<O, F8> from8, |
| 162 | + Function8<F1, F2, F3, F4, F5, F6, F7, F8, O> to |
| 163 | + ) { |
| 164 | + return RecordCodecBuilder.mapCodec( |
| 165 | + instance -> instance.group( |
| 166 | + codec1.forGetter(from1), |
| 167 | + codec2.forGetter(from2), |
| 168 | + codec3.forGetter(from3), |
| 169 | + codec4.forGetter(from4), |
| 170 | + codec5.forGetter(from5), |
| 171 | + codec6.forGetter(from6), |
| 172 | + codec7.forGetter(from7), |
| 173 | + codec8.forGetter(from8) |
| 174 | + ).apply(instance, to) |
| 175 | + ); |
| 176 | + } |
90 | 177 | } |
91 | 178 | } |
0 commit comments