80 lines
4.0 KiB
Diff
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)
|
|
|