Repository navigation
Expand file tree
/
Copy pathinternal.py
More file actions
82 lines (53 loc) · 1.74 KB
/
Copy pathinternal.py
File metadata and controls
82 lines (53 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# coding=utf-8
from threading import current_thread
# TYPE_CHECKING
if 0>1:
from .mod_server import ToolDeltaModServer as Server
from .mod_client import ToolDeltaModClient as Client
# TYPE_CHECKING END
class Runtime:
server = None # type: Server | None
client = None # type: Client | None
modName = None # type: str | None
server_thread_ident = None # type: int | None
client_thread_ident = None # type: int | None
def GetServer():
# type: () -> Server
if Runtime.server is None:
raise RuntimeError("Server is not initialized")
return Runtime.server
def SetServer(server):
# type: (Server) -> None
Runtime.server = server
Runtime.server_thread_ident = current_thread().ident
def GetClient(): # type: () -> Client
if Runtime.client is None:
raise RuntimeError("Client is not initialized")
return Runtime.client
def SetClient(client):
# type: (Client) -> None
Runtime.client = client
Runtime.client_thread_ident = current_thread().ident
def GetModName():
if Runtime.modName is None:
raise RuntimeError("modName is not initialized")
return Runtime.modName
def SetModName(mod_name):
# type: (str) -> None
Runtime.modName = mod_name
def GetModServerEngineName():
return GetModName() + ".TDServer"
def GetModClientEngineName():
return GetModName() + ".TDClient"
def inClientEnv():
return current_thread().ident == Runtime.client_thread_ident
def inServerEnv():
return current_thread().ident == Runtime.server_thread_ident
def InServerEnv():
if inServerEnv():
return True
elif not inClientEnv():
raise Exception("Not in client or server env")
else:
return False
InClientEnv = inClientEnv