|
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