-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEO_file.py
58 lines (45 loc) · 1.62 KB
/
EO_file.py
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
# can't import anything bge related outside of createTransmitterEvents or createAvatarEvents
# since bpy can't handle it
def getTransmitterTriggerProperties():
return ["sendFileToServer"]
def createTransmitterEvents():
from EO_config import AvatarEvent, TransmitterEvent
import bpy
def b_onTrigger(transmitter):
fileName = transmitter["EO_fileName"]
filepath = bpy.path.abspath("//"+fileName)
filedata = None
with open(filepath, "rb") as file:
filedata = file.read()
return [fileName, filedata]
def b_onReceive(sender_name, avatar, data):
from bge import logic
createFile(*data)
logic.globalDict["File"] = data
N1 = TransmitterEvent("sendFileToServer", b_onTrigger, b_onReceive)
return [N1]
def getAvatarTriggerProperties():
return ["sendFileToClient"]
def createAvatarEvents():
from EO_config import AvatarEvent, TransmitterEvent
from bge import logic
import bpy
def b_onTrigger(avatar):
if "File" in logic.globalDict:
return logic.globalDict["File"]
else:
return []
def b_onReceive(sender_name, transmitter, data):
createFile(*data)
def b_onServerPeek(avatar, data):
pass
def b_onAnswer(avatar, data):
pass
A1 = AvatarEvent("sendFileToClient", b_onTrigger, b_onReceive, b_onAnswer, b_onServerPeek)
return [A1]
def createFile(name, filedata):
import bpy
fileName = "recv_"+name
filepath = bpy.path.abspath("//"+fileName)
with open(filepath, "wb") as file:
file.write(filedata)