|
1 | 1 | package com.annimon.ownlang.lib; |
2 | 2 |
|
| 3 | +import static com.annimon.ownlang.lib.ValueUtils.getFloatNumber; |
| 4 | + |
3 | 5 | /** |
4 | 6 | * Wrapper functions and interfaces. |
5 | 7 | */ |
@@ -41,6 +43,10 @@ public interface IntToVoidFunction { |
41 | 43 | void apply(int i); |
42 | 44 | } |
43 | 45 |
|
| 46 | + public interface Int4ToVoidFunction { |
| 47 | + void apply(int i1, int i2, int i3, int i4); |
| 48 | + } |
| 49 | + |
44 | 50 | public interface FloatToVoidFunction { |
45 | 51 | void apply(float f); |
46 | 52 | } |
@@ -124,21 +130,32 @@ public static FunctionValue intToVoid(IntToVoidFunction f) { |
124 | 130 | }); |
125 | 131 | } |
126 | 132 |
|
| 133 | + public static FunctionValue int4ToVoid(Int4ToVoidFunction f) { |
| 134 | + return new FunctionValue(args -> { |
| 135 | + Arguments.check(4, args.length); |
| 136 | + f.apply(args[0].asInt(), |
| 137 | + args[1].asInt(), |
| 138 | + args[2].asInt(), |
| 139 | + args[3].asInt()); |
| 140 | + return NumberValue.ZERO; |
| 141 | + }); |
| 142 | + } |
| 143 | + |
127 | 144 | public static FunctionValue floatToVoid(FloatToVoidFunction f) { |
128 | 145 | return new FunctionValue(args -> { |
129 | 146 | Arguments.check(1, args.length); |
130 | | - f.apply(getNumber(args[0]).floatValue()); |
| 147 | + f.apply(getFloatNumber(args[0])); |
131 | 148 | return NumberValue.ZERO; |
132 | 149 | }); |
133 | 150 | } |
134 | 151 |
|
135 | 152 | public static FunctionValue float4ToVoid(Float4ToVoidFunction f) { |
136 | 153 | return new FunctionValue(args -> { |
137 | 154 | Arguments.check(4, args.length); |
138 | | - f.apply(getNumber(args[0]).floatValue(), |
139 | | - getNumber(args[1]).floatValue(), |
140 | | - getNumber(args[2]).floatValue(), |
141 | | - getNumber(args[3]).floatValue()); |
| 155 | + f.apply(getFloatNumber(args[0]), |
| 156 | + getFloatNumber(args[1]), |
| 157 | + getFloatNumber(args[2]), |
| 158 | + getFloatNumber(args[3])); |
142 | 159 | return NumberValue.ZERO; |
143 | 160 | }); |
144 | 161 | } |
@@ -175,9 +192,4 @@ public static FunctionValue stringToVoid(StringToVoidFunction f) { |
175 | 192 | return NumberValue.ZERO; |
176 | 193 | }); |
177 | 194 | } |
178 | | - |
179 | | - public static Number getNumber(Value value) { |
180 | | - if (value.type() == Types.NUMBER) return ((NumberValue) value).raw(); |
181 | | - return value.asInt(); |
182 | | - } |
183 | 195 | } |
0 commit comments