Allow event-based extensions to declare unified variable parameters (#6588)

- Don't show in changelog
This commit is contained in:
D8H
2024-05-24 12:27:47 +02:00
committed by GitHub
parent 916e642465
commit 0fd25c381a
3 changed files with 73 additions and 1 deletions

View File

@@ -81,6 +81,24 @@ AdvancedExtension::AdvancedExtension() {
"}\n";
});
GetAllActions()["CopyArgumentToVariable2"]
.SetCustomCodeGenerator([](gd::Instruction &instruction,
gd::EventsCodeGenerator &codeGenerator,
gd::EventsCodeGenerationContext &context) {
// This is duplicated from EventsCodeGenerator::GenerateParameterCodes
gd::String parameter = instruction.GetParameter(0).GetPlainString();
gd::String variable =
gd::ExpressionCodeGenerator::GenerateExpressionCode(
codeGenerator, context, "variable", instruction.GetParameter(1),
"");
return "if (typeof eventsFunctionContext !== 'undefined') {\n"
"gdjs.Variable.copy(eventsFunctionContext.getArgument(" +
parameter + "), " + variable +
", false);\n"
"}\n";
});
GetAllActions()["CopyVariableToArgument"]
.SetCustomCodeGenerator([](gd::Instruction &instruction,
gd::EventsCodeGenerator &codeGenerator,
@@ -99,6 +117,24 @@ AdvancedExtension::AdvancedExtension() {
"}\n";
});
GetAllActions()["CopyVariableToArgument2"]
.SetCustomCodeGenerator([](gd::Instruction &instruction,
gd::EventsCodeGenerator &codeGenerator,
gd::EventsCodeGenerationContext &context) {
// This is duplicated from EventsCodeGenerator::GenerateParameterCodes
gd::String parameter = instruction.GetParameter(0).GetPlainString();
gd::String variable =
gd::ExpressionCodeGenerator::GenerateExpressionCode(
codeGenerator, context, "variable", instruction.GetParameter(1),
"");
return "if (typeof eventsFunctionContext !== 'undefined') {\n"
"gdjs.Variable.copy(" +
variable + ", eventsFunctionContext.getArgument(" + parameter +
"), false);\n"
"}\n";
});
GetAllConditions()["GetArgumentAsBoolean"]
.SetCustomCodeGenerator([](gd::Instruction& instruction,
gd::EventsCodeGenerator& codeGenerator,