Files
gymkhana/patches/esc_interpreter_factory.patch

80 lines
4.0 KiB
Diff

diff --git a/addons/escoria-core/game/core-scripts/esc/compiler/esc_interpreter_factory.gd b/addons/escoria-core/game/core-scripts/esc/compiler/esc_interpreter_factory.gd
index 8e62f95e..bdb82e28 100644
--- a/addons/escoria-core/game/core-scripts/esc/compiler/esc_interpreter_factory.gd
+++ b/addons/escoria-core/game/core-scripts/esc/compiler/esc_interpreter_factory.gd
@@ -3,11 +3,11 @@ extends RefCounted
class_name ESCInterpreterFactory
-static var _interpreter: ESCInterpreter = null
+var _interpreter: ESCInterpreter = null
## Produces an interpreter as a singleton.
-static func create_interpreter() -> ESCInterpreter:
+func create_interpreter() -> ESCInterpreter:
if not _interpreter:
_interpreter = load("res://addons/escoria-core/game/core-scripts/esc/compiler/esc_interpreter.gd").new(ESCCompiler.load_commands(), ESCCompiler.load_globals())
return _interpreter
@@ -17,7 +17,7 @@ static func create_interpreter() -> ESCInterpreter:
return _interpreter
-static func reset_interpreter() -> void:
+func reset_interpreter() -> void:
if is_instance_valid(_interpreter):
_interpreter.cleanup()
_interpreter = null
diff --git a/addons/escoria-core/game/core-scripts/esc/esc_action_manager.gd b/addons/escoria-core/game/core-scripts/esc/esc_action_manager.gd
index f541a172..27fe7a77 100644
--- a/addons/escoria-core/game/core-scripts/esc/esc_action_manager.gd
+++ b/addons/escoria-core/game/core-scripts/esc/esc_action_manager.gd
@@ -650,7 +650,7 @@ func _telekinetic_applies_to(event: ESCGrammarStmts.Event) -> bool:
var tk_flag_condition = event.get_flags_with_conditions().get("TK")
if tk_flag_condition:
- var interpreter: ESCInterpreter = ESCInterpreterFactory.create_interpreter()
+ var interpreter: ESCInterpreter = escoria.interpreter_factory.create_interpreter()
var result = interpreter.look_up_global(tk_flag_condition.get_name())
diff --git a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd
index e18bd512..aaaef9e6 100644
--- a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd
+++ b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd
@@ -101,7 +101,7 @@ func _compiler_shim(source: String, filename: String = "", associated_global_id:
# Some static analysis
if not had_error and _run_script_analysis():
- var resolver: ESCResolver = ESCResolver.new(ESCInterpreterFactory.create_interpreter())
+ var resolver: ESCResolver = ESCResolver.new(escoria.interpreter_factory.create_interpreter())
resolver.resolve(parsed_statements)
if not filename.is_empty():
diff --git a/addons/escoria-core/game/core-scripts/esc/esc_event_manager.gd b/addons/escoria-core/game/core-scripts/esc/esc_event_manager.gd
index 2928a238..d6309c48 100644
--- a/addons/escoria-core/game/core-scripts/esc/esc_event_manager.gd
+++ b/addons/escoria-core/game/core-scripts/esc/esc_event_manager.gd
@@ -174,7 +174,7 @@ func _process(delta: float) -> void:
#var rc = _running_events[channel_name].run()
#escoria.interpreter.reset()
#var resolver: ESCResolver = ESCResolver.new(escoria.interpreter)
- var interpreter: ESCInterpreter = ESCInterpreterFactory.create_interpreter()
+ var interpreter: ESCInterpreter = escoria.interpreter_factory.create_interpreter()
var resolver: ESCResolver = ESCResolver.new(interpreter)
var event = _running_events[channel_name]
diff --git a/addons/escoria-core/game/core-scripts/esc/types/esc_statement.gd b/addons/escoria-core/game/core-scripts/esc/types/esc_statement.gd
index 0e05d94b..7b5a0fff 100644
--- a/addons/escoria-core/game/core-scripts/esc/types/esc_statement.gd
+++ b/addons/escoria-core/game/core-scripts/esc/types/esc_statement.gd
@@ -69,7 +69,7 @@ func is_valid() -> bool:
## *Returns* The return code of the statement.
func run() -> int:
if parsed_statements.size() > 0:
- var interpreter = ESCInterpreterFactory.create_interpreter()
+ var interpreter = escoria.interpreter_factory.create_interpreter()
var resolver: ESCResolver = ESCResolver.new(interpreter)
resolver.resolve(parsed_statements)