-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrenderer.js
More file actions
135 lines (131 loc) · 5.25 KB
/
renderer.js
File metadata and controls
135 lines (131 loc) · 5.25 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
'use strict';
// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// All of the Node.js APIs are available in this process.
const ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.on('resize-window', function(event, message) {
$('.board').css('height', message[1]);
})
$("#output").click(function() {
var eventsList = _vm.$children[0].events;
/*
if (!eventsList) {
return;
}
*/
console.log(eventsList);
var events = {};
for (var i = 0; i < eventsList.length; i++) {
//拷贝vm实例中的数据到一个新的对象。
//因为实际要对vm中的数据进行处理,所以不能直接引用vm实例的数据。
//需要剔除一些不用的数据,以及数据结构的转换
let eventData = eventsList[i].event;
let eventId = eventData.eventId;
events[eventId] = JSON.parse(JSON.stringify(eventData));
events[eventId].eventTypeMap = undefined;
events[eventId].conditionTypeMap = undefined;
if (events[eventId].repeatCount !== 'Infinity') {
let count = parseInt(events[eventId].repeatCount);
//防止出现非法值
if (isNaN(count)) {
events[eventId].repeatCount = 0;
}
events[eventId].repeatCount = count;
}
var pages = events[eventId].pages;
for (var j = 0; j < pages.length; j++) {
if (pages[j].switcher == '') {
pages[j].switcher = []
} else {
pages[j].switcher = pages[j].switcher.split(',');
}
var subEvents = pages[j].subEvents;
for (var k = 0; k < subEvents.length; k++) {
subEvents[k]['_id'] = undefined;
//subEvents[k]['currentView'] = undefined;
if (subEvents[k].eventType === 1) {
//对话
let actors = subEvents[k].detail.actors;
actors.forEach(function(actor, index, actors) {
actor._id = undefined;
actor.dialogues.forEach(function(dialogue, index, dialogues) {
dialogues[index] = dialogue.text;
})
})
} else if (subEvents[k].eventType === 2) {
//商店
if (subEvents[k].detail.itemIdList == '') {
subEvents[k].detail.itemIdList = [];
} else {
subEvents[k].detail.itemIdList = subEvents[k].detail.itemIdList.split(',');
}
} else if (subEvents[k].eventType === 14) {
//隐藏UI
if (subEvents[k].detail.nodeList == '') {
subEvents[k].detail.nodeList = [];
} else {
subEvents[k].detail.nodeList = subEvents[k].detail.nodeList.split(',');
}
}
}
}
}
ipcRenderer.send('output-event-file', JSON.stringify(events, null, ' '));
})
$('#import').click(function() {
var events = ipcRenderer.sendSync('import-event-file');
if (!events) {
return;
}
events = JSON.parse(events);
for (var eventId in events) {
if (!events[eventId].loop) {
events[eventId].loop = false;
}
if (!events[eventId].repeatCount) {
events[eventId].repeatCount = '0';
} else {
events[eventId].repeatCount = events[eventId].repeatCount.toString();
}
var pages = events[eventId].pages;
for (var i = 0; i < pages.length; i++) {
if (pages[i].switcher) {
pages[i].switcher = pages[i].switcher.join(',');
} else {
pages[i].switcher = '';
}
var subEvents = pages[i].subEvents
for (var j = 0; j < subEvents.length; j++) {
var subEvent = subEvents[j];
subEvent['_id'] = j + 1;
if (subEvent.eventType === 1) {
//subEvent['currentView'] = 'Dialogue';
let actors = subEvent.detail.actors;
actors.forEach(function(actor, index, actors) {
actor._id = index + 1;
actor.dialogues.forEach(function(dialogue, index, dialogues) {
dialogues[index] = {
text: dialogue,
_id: index + 1
};
})
})
} else if (subEvent.eventType === 2) {
subEvent.detail.itemIdList = subEvent.detail.itemIdList.join(',');
} else if (subEvents[j].eventType === 14) {
//隐藏UI
subEvents[j].detail.nodeList = subEvents[j].detail.nodeList.join(',');
}
}
}
}
console.log(events);
for (var eventId in events) {
var event = events[eventId];
_vm.$children[0].count++;
_vm.$children[0].events.push({
event: Object.assign({}, event),
index: _vm.$children[0].count
})
}
})