MethodLerpBuilder function
Method
MethodLerpBuilder({})
Implementation
Method MethodLerpBuilder({
required String className,
required List<FieldInfo> fields,
required DartEmitter emitter,
}) {
final lerpStatements = fields.map((f) {
return '${f.name}: ${f.lerpExpression.accept(emitter)}';
}).join(', ');
return Method((builder) {
builder.annotations.add(refer('override'));
builder.name = 'lerp';
builder.returns = refer(className);
builder.requiredParameters.add(Parameter((builder) {
builder.name = 'other';
builder.type = refer('$className?');
}));
builder.requiredParameters.add(Parameter((builder) {
builder.name = 't';
builder.type = refer('double');
}));
builder.body = Code('''
if (other == null) return this;
return $className(
$lerpStatements,
);
''');
});
}