@@ -88,6 +88,7 @@ func process_script(path: String, enable_hook_check := false) -> String:
8888 continue
8989
9090 var type_string := get_return_type_string (method .return )
91+ var is_constructor : bool = method .name == "_init"
9192 var is_static := true if method .flags == METHOD_FLAG_STATIC + METHOD_FLAG_NORMAL else false
9293
9394 var func_def : RegExMatch = match_func_with_whitespace (method .name , source_code )
@@ -132,7 +133,7 @@ func process_script(path: String, enable_hook_check := false) -> String:
132133 method_arg_string_names_only ,
133134 method_arg_string_with_defaults_and_types ,
134135 type_string ,
135- method . return . usage ,
136+ is_constructor ,
136137 is_static ,
137138 is_async ,
138139 hook_id ,
@@ -346,37 +347,35 @@ static func build_mod_hook_string(
346347 method_arg_string_names_only : String ,
347348 method_arg_string_with_defaults_and_types : String ,
348349 method_type : String ,
349- return_prop_usage : int ,
350+ is_constructor : bool ,
350351 is_static : bool ,
351352 is_async : bool ,
352353 hook_id : int ,
353354 method_prefix := METHOD_PREFIX ,
354355 enable_hook_check := false ,
355356) -> String :
356357 var type_string := " -> %s " % method_type if not method_type .is_empty () else ""
358+ var return_string := "return " if not is_constructor else ""
357359 var static_string := "static " if is_static else ""
358360 var await_string := "await " if is_async else ""
359361 var async_string := "_async" if is_async else ""
360- var return_var := "var %s = " % "return_var" if not method_type .is_empty () or return_prop_usage == 131072 else ""
361- var method_return := "return " if not method_type .is_empty () or return_prop_usage == 131072 else ""
362362 var hook_check := "if ModLoaderStore.any_mod_hooked:\n\t\t " if enable_hook_check else ""
363363 var hook_check_else := get_hook_check_else_string (
364- method_return , await_string , method_prefix , method_name , method_arg_string_names_only
364+ return_string , await_string , method_prefix , method_name , method_arg_string_names_only
365365 ) if enable_hook_check else ""
366366
367367
368368 return """
369369{STATIC} func {METHOD_NAME} ({METHOD_PARAMS} ){RETURN_TYPE_STRING} :
370- {HOOK_CHECK}{METHOD_RETURN }{AWAIT} _ModLoaderHooks.call_hooks{ASYNC} ({METHOD_PREFIX} _{METHOD_NAME} , [{METHOD_ARGS} ], {HOOK_ID} ){HOOK_CHECK_ELSE}
370+ {HOOK_CHECK}{RETURN }{AWAIT} _ModLoaderHooks.call_hooks{ASYNC} ({METHOD_PREFIX} _{METHOD_NAME} , [{METHOD_ARGS} ], {HOOK_ID} ){HOOK_CHECK_ELSE}
371371""" .format ({
372372 "METHOD_PREFIX" : method_prefix ,
373373 "METHOD_NAME" : method_name ,
374374 "METHOD_PARAMS" : method_arg_string_with_defaults_and_types ,
375375 "RETURN_TYPE_STRING" : type_string ,
376376 "METHOD_ARGS" : method_arg_string_names_only ,
377- "METHOD_RETURN_VAR" : return_var ,
378- "METHOD_RETURN" : method_return ,
379377 "STATIC" : static_string ,
378+ "RETURN" : return_string ,
380379 "AWAIT" : await_string ,
381380 "ASYNC" : async_string ,
382381 "HOOK_ID" : hook_id ,
@@ -472,15 +471,15 @@ func collect_getters_and_setters(text: String) -> Dictionary:
472471
473472
474473static func get_hook_check_else_string (
475- method_return : String ,
474+ return_string : String ,
476475 await_string : String ,
477476 method_prefix : String ,
478477 method_name : String ,
479478 method_arg_string_names_only : String
480479) -> String :
481- return "\n\t else:\n\t\t {METHOD_RETURN }{AWAIT}{METHOD_PREFIX} _{METHOD_NAME} ({METHOD_ARGS} )" .format (
480+ return "\n\t else:\n\t\t {RETURN }{AWAIT}{METHOD_PREFIX} _{METHOD_NAME} ({METHOD_ARGS} )" .format (
482481 {
483- "METHOD_RETURN " : method_return ,
482+ "RETURN " : return_string ,
484483 "AWAIT" : await_string ,
485484 "METHOD_PREFIX" : method_prefix ,
486485 "METHOD_NAME" : method_name ,
0 commit comments