@@ -52,6 +52,7 @@ public class CodeGenerateGdScript implements ICodeGenerate {
52
52
53
53
// custom configuration
54
54
public static String protocolOutputRootPath = "zfoogd" ;
55
+ public static boolean createByteBufferFile = true ;
55
56
private static String protocolOutputPath = StringUtils .EMPTY ;
56
57
57
58
private static Map <ISerializer , IGdSerializer > gdSerializerMap = new HashMap <>();
@@ -82,9 +83,7 @@ public void init(GenerateOperation generateOperation) {
82
83
83
84
@ Override
84
85
public void mergerProtocol (List <ProtocolRegistration > registrations ) throws IOException {
85
- var createFile = new File (StringUtils .format ("{}/{}" , protocolOutputPath , "ByteBuffer.gd" ));
86
- var fileInputStream = ClassUtils .getFileFromClassPath ("gdscript/ByteBuffer.gd" );
87
- FileUtils .writeInputStreamToFile (createFile , fileInputStream );
86
+ createByteBufferFile ();
88
87
89
88
// 生成ProtocolManager.gd文件
90
89
var protocolManagerTemplate = ClassUtils .getFileFromClassPathToString ("gdscript/ProtocolManagerTemplate.gd" );
@@ -125,7 +124,6 @@ public void foldProtocol(List<ProtocolRegistration> registrations) throws IOExce
125
124
var formatProtocolTemplate = CodeTemplatePlaceholder .formatTemplate (protocolTemplate , Map .of (
126
125
CodeTemplatePlaceholder .protocol_id , String .valueOf (protocol_id )
127
126
, CodeTemplatePlaceholder .protocol_name , protocol_name
128
- , CodeTemplatePlaceholder .protocol_imports , protocol_imports_fold (registration )
129
127
, CodeTemplatePlaceholder .protocol_class , protocol_class_default (registration )
130
128
, CodeTemplatePlaceholder .protocol_registration , protocol_registration (registration )
131
129
));
@@ -147,7 +145,6 @@ public void defaultProtocol(List<ProtocolRegistration> registrations) throws IOE
147
145
var formatProtocolTemplate = CodeTemplatePlaceholder .formatTemplate (protocolTemplate , Map .of (
148
146
CodeTemplatePlaceholder .protocol_id , String .valueOf (protocol_id )
149
147
, CodeTemplatePlaceholder .protocol_name , protocol_name
150
- , CodeTemplatePlaceholder .protocol_imports , protocol_imports_default (registration )
151
148
, CodeTemplatePlaceholder .protocol_class , protocol_class_default (registration )
152
149
, CodeTemplatePlaceholder .protocol_registration , protocol_registration (registration )
153
150
));
@@ -158,10 +155,16 @@ public void defaultProtocol(List<ProtocolRegistration> registrations) throws IOE
158
155
}
159
156
}
160
157
158
+ private void createByteBufferFile () throws IOException {
159
+ if (createByteBufferFile ) {
160
+ var createFile = new File (StringUtils .format ("{}/{}" , protocolOutputPath , "ByteBuffer.gd" ));
161
+ var fileInputStream = ClassUtils .getFileFromClassPath ("gdscript/ByteBuffer.gd" );
162
+ FileUtils .writeInputStreamToFile (createFile , fileInputStream );
163
+ }
164
+ }
165
+
161
166
private void createTemplateFile (List <ProtocolRegistration > registrations ) throws IOException {
162
- var createFile = new File (StringUtils .format ("{}/{}" , protocolOutputPath , "ByteBuffer.gd" ));
163
- var fileInputStream = ClassUtils .getFileFromClassPath ("gdscript/ByteBuffer.gd" );
164
- FileUtils .writeInputStreamToFile (createFile , fileInputStream );
167
+ createByteBufferFile ();
165
168
166
169
// 生成ProtocolManager.gd文件
167
170
var protocolManagerTemplate = ClassUtils .getFileFromClassPathToString ("gdscript/ProtocolManagerTemplate.gd" );
@@ -223,32 +226,6 @@ private String protocol_registration(ProtocolRegistration registration) {
223
226
return formatProtocolTemplate ;
224
227
}
225
228
226
- private String protocol_imports_fold (ProtocolRegistration registration ) {
227
- var protocolId = registration .getId ();
228
- var subProtocols = ProtocolAnalysis .getAllSubProtocolIds (protocolId );
229
- var importBuilder = new StringBuilder ();
230
- var protocolPath = GenerateProtocolPath .protocolPathPeriod (protocolId );
231
- var splits = protocolPath .split (StringUtils .PERIOD_REGEX );
232
- importBuilder .append (StringUtils .format ("const ByteBuffer = preload(\" {}ByteBuffer.gd\" )" , "../" .repeat (splits .length ))).append (LS );
233
- for (var subProtocolId : subProtocols ) {
234
- var protocolName = EnhanceObjectProtocolSerializer .getProtocolClassSimpleName (subProtocolId );
235
- var path = GenerateProtocolPath .relativePath (protocolId , subProtocolId );
236
- importBuilder .append (StringUtils .format ("const {} = preload(\" {}/{}.gd\" )" , protocolName , path , protocolName )).append (LS );
237
- }
238
- return importBuilder .toString ();
239
- }
240
-
241
- private String protocol_imports_default (ProtocolRegistration registration ) {
242
- var protocolId = registration .getId ();
243
- var subProtocols = ProtocolAnalysis .getAllSubProtocolIds (protocolId );
244
- var importBuilder = new StringBuilder ();
245
- importBuilder .append ("const ByteBuffer = preload(\" ./ByteBuffer.gd\" )" ).append (LS );
246
- for (var subProtocolId : subProtocols ) {
247
- var protocolName = EnhanceObjectProtocolSerializer .getProtocolClassSimpleName (subProtocolId );
248
- importBuilder .append (StringUtils .format ("const {} = preload(\" ./{}.gd\" )" , protocolName , protocolName )).append (LS );
249
- }
250
- return importBuilder .toString ();
251
- }
252
229
253
230
private String protocol_json (ProtocolRegistration registration ) {
254
231
var fields = registration .getFields ();
0 commit comments