mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-13 04:15:22 +00:00
feat[protocol]: 支持godot的GdScript
This commit is contained in:
1 parent
d4f462ec1a
commit
13ad96e4a4
31 files changed
+2073
-10
No files matched your search
@@ -35,6 +35,7 @@ hs_err_pid*
|
||||
|
||||
# 忽略生成的协议文件
|
||||
**/jsProtocol/
|
||||
**/gdProtocol/
|
||||
**/CsProtocol/
|
||||
**/LuaProtocol/
|
||||
**/zapp-user/protocol/
|
||||
|
||||
@@ -36,6 +36,7 @@ public class NetConfig {
|
||||
private boolean generateJsProtocol;
|
||||
private boolean generateCsProtocol;
|
||||
private boolean generateLuaProtocol;
|
||||
private boolean generateGdProtocol;
|
||||
|
||||
private RegistryConfig registry;
|
||||
private MonitorConfig monitor;
|
||||
@@ -136,6 +137,14 @@ public class NetConfig {
|
||||
this.consumer = consumer;
|
||||
}
|
||||
|
||||
public boolean isGenerateGdProtocol() {
|
||||
return generateGdProtocol;
|
||||
}
|
||||
|
||||
public void setGenerateGdProtocol(boolean generateGdProtocol) {
|
||||
this.generateGdProtocol = generateGdProtocol;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
@@ -145,8 +154,7 @@ public class NetConfig {
|
||||
return false;
|
||||
}
|
||||
NetConfig netConfig = (NetConfig) o;
|
||||
return generateJsProtocol == netConfig.generateJsProtocol &&
|
||||
Objects.equals(id, netConfig.id) &&
|
||||
return Objects.equals(id, netConfig.id) &&
|
||||
Objects.equals(protocolLocation, netConfig.protocolLocation) &&
|
||||
Objects.equals(registry, netConfig.registry) &&
|
||||
Objects.equals(monitor, netConfig.monitor) &&
|
||||
@@ -156,6 +164,6 @@ public class NetConfig {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(id, protocolLocation, generateJsProtocol, registry, monitor, provider, consumer);
|
||||
return Objects.hash(id, protocolLocation, registry, monitor, provider, consumer);
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,7 @@ public class PacketService implements IPacketService {
|
||||
|
||||
public static final String NET_COMMON_MODULE = "common";
|
||||
|
||||
private Predicate<IProtocolRegistration> netGenerateProtocolFilter = registration
|
||||
private final Predicate<IProtocolRegistration> netGenerateProtocolFilter = registration
|
||||
-> ProtocolManager.moduleByModuleId(registration.module()).getName().matches(NET_COMMON_MODULE)
|
||||
|| registration.protocolConstructor().getDeclaringClass().getSimpleName().endsWith(NET_REQUEST_SUFFIX)
|
||||
|| registration.protocolConstructor().getDeclaringClass().getSimpleName().endsWith(NET_RESPONSE_SUFFIX)
|
||||
@@ -87,6 +87,7 @@ public class PacketService implements IPacketService {
|
||||
var generateJsProtocol = NetContext.getConfigManager().getLocalConfig().isGenerateJsProtocol();
|
||||
var generateCsharpProtocol = NetContext.getConfigManager().getLocalConfig().isGenerateCsProtocol();
|
||||
var generateLuaProtocol = NetContext.getConfigManager().getLocalConfig().isGenerateLuaProtocol();
|
||||
var generateGdProtocol = NetContext.getConfigManager().getLocalConfig().isGenerateGdProtocol();
|
||||
var generateOperation = new GenerateOperation();
|
||||
generateOperation.setFoldProtocol(foldProtocol);
|
||||
generateOperation.setProtocolParam(protocolParam);
|
||||
@@ -99,6 +100,9 @@ public class PacketService implements IPacketService {
|
||||
if (generateLuaProtocol) {
|
||||
generateOperation.getGenerateLanguages().add(CodeLanguage.Lua);
|
||||
}
|
||||
if (generateGdProtocol) {
|
||||
generateOperation.getGenerateLanguages().add(CodeLanguage.GdScript);
|
||||
}
|
||||
|
||||
// 设置生成协议的过滤器
|
||||
GenerateProtocolFile.generateProtocolFilter = netGenerateProtocolFilter;
|
||||
|
||||
@@ -92,6 +92,7 @@ public class NetDefinitionParser implements BeanDefinitionParser {
|
||||
resolvePlaceholder("generate-js-protocol", "generateJsProtocol", builder, element, parserContext);
|
||||
resolvePlaceholder("generate-cs-protocol", "generateCsProtocol", builder, element, parserContext);
|
||||
resolvePlaceholder("generate-lua-protocol", "generateLuaProtocol", builder, element, parserContext);
|
||||
resolvePlaceholder("generate-gd-protocol", "generateGdProtocol", builder, element, parserContext);
|
||||
resolvePlaceholder("fold-protocol", "foldProtocol", builder, element, parserContext);
|
||||
resolvePlaceholder("protocol-param", "protocolParam", builder, element, parserContext);
|
||||
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
<xsd:attribute name="generate-js-protocol" type="xsd:string" default="false"/>
|
||||
<xsd:attribute name="generate-cs-protocol" type="xsd:string" default="false"/>
|
||||
<xsd:attribute name="generate-lua-protocol" type="xsd:string" default="false"/>
|
||||
<xsd:attribute name="generate-gd-protocol" type="xsd:string" default="false"/>
|
||||
<xsd:attribute name="fold-protocol" type="xsd:string" default="false"/>
|
||||
<xsd:attribute name="protocol-param" type="xsd:string" default="false"/>
|
||||
</xsd:complexType>
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.zfoo.protocol.registration.ProtocolAnalysis;
|
||||
import com.zfoo.protocol.registration.ProtocolRegistration;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
import com.zfoo.protocol.serializer.cs.GenerateCsUtils;
|
||||
import com.zfoo.protocol.serializer.gd.GenerateGdUtils;
|
||||
import com.zfoo.protocol.serializer.js.GenerateJsUtils;
|
||||
import com.zfoo.protocol.serializer.lua.GenerateLuaUtils;
|
||||
|
||||
@@ -116,6 +117,13 @@ public abstract class GenerateProtocolFile {
|
||||
allSortedGenerateProtocols.forEach(it -> GenerateLuaUtils.createLuaProtocolFile((ProtocolRegistration) it));
|
||||
}
|
||||
|
||||
// 生成GdScript协议
|
||||
if (generateLanguages.contains(CodeLanguage.GdScript)) {
|
||||
GenerateGdUtils.init();
|
||||
GenerateGdUtils.createProtocolManager(allSortedGenerateProtocols);
|
||||
allSortedGenerateProtocols.forEach(it -> GenerateGdUtils.createGdProtocolFile((ProtocolRegistration) it));
|
||||
}
|
||||
|
||||
// 预留参数,以后可能会用,比如给Lua修改一个后缀名称
|
||||
var protocolParam = generateOperation.getProtocolParam();
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolPath;
|
||||
import com.zfoo.protocol.registration.field.*;
|
||||
import com.zfoo.protocol.serializer.cs.GenerateCsUtils;
|
||||
import com.zfoo.protocol.serializer.gd.GenerateGdUtils;
|
||||
import com.zfoo.protocol.serializer.js.GenerateJsUtils;
|
||||
import com.zfoo.protocol.serializer.lua.GenerateLuaUtils;
|
||||
import com.zfoo.protocol.serializer.reflect.*;
|
||||
@@ -58,7 +59,7 @@ public class ProtocolAnalysis {
|
||||
private static Map<Class<?>, ISerializer> baseSerializerMap = new HashMap<>();
|
||||
|
||||
// 临时变量,启动完成就会销毁,协议Id对应的Class类
|
||||
private static Map<Short, Class<?>> protocolClassMap = new HashMap<>(MAX_PROTOCOL_NUM);
|
||||
private static final Map<Short, Class<?>> protocolClassMap = new HashMap<>(MAX_PROTOCOL_NUM);
|
||||
|
||||
// 临时变量,启动完成就会销毁,协议下包含的子协议,只包含一层子协议
|
||||
private static Map<Short, Set<Short>> subProtocolIdMap = new HashMap<>(MAX_PROTOCOL_NUM);
|
||||
@@ -224,6 +225,7 @@ public class ProtocolAnalysis {
|
||||
GenerateCsUtils.clear();
|
||||
GenerateJsUtils.clear();
|
||||
GenerateLuaUtils.clear();
|
||||
GenerateGdUtils.clear();
|
||||
|
||||
EnhanceUtils.clear();
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ public enum CodeLanguage {
|
||||
|
||||
Lua,
|
||||
|
||||
CSharp;
|
||||
CSharp,
|
||||
|
||||
GdScript
|
||||
|
||||
}
|
||||
@@ -52,6 +52,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -67,6 +70,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -82,6 +88,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -97,6 +106,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -112,6 +124,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -127,6 +142,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -142,6 +160,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -157,6 +178,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -172,6 +196,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -187,6 +214,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -202,6 +232,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -217,6 +250,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -232,6 +268,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -247,6 +286,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -262,6 +304,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteStringArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -277,6 +322,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeCharArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeCharArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteCharArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -292,6 +340,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeCharArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeCharArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteCharArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -309,6 +360,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {});", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {})", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WritePacketArray<{}>({}, {});", getArrayClassSimpleName(arrayField), objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
@@ -340,6 +394,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readBooleanArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readBooleanArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -352,6 +409,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readBooleanArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readBooleanArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -364,6 +424,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readByteArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readByteArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -376,6 +439,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readByteArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readByteArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -388,6 +454,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readShortArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readShortArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -400,6 +469,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readShortArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readShortArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -412,6 +484,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -424,6 +499,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -436,6 +514,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -448,6 +529,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -460,6 +544,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readFloatArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readFloatArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -472,6 +559,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readFloatArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readFloatArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -484,6 +574,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readDoubleArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readDoubleArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -496,6 +589,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readDoubleArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readDoubleArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -508,6 +604,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -520,6 +619,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readCharArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readCharArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -532,6 +634,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readCharArray();", array)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readCharArray()", array)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -544,6 +649,9 @@ public class CutDownArraySerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readPacketArray({});", array, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readPacketArray({})", array, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadPacketArray<{}>({});", array, getArrayClassSimpleName(arrayField), objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
|
||||
@@ -50,6 +50,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteBooleanList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -65,6 +68,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteByteList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -80,6 +86,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteShortList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -95,6 +104,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteIntList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -110,6 +122,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteLongList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -126,6 +141,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteFloatList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -142,6 +160,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteDoubleList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -158,6 +179,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WriteStringList({});", objectStr)).append(LS);
|
||||
break;
|
||||
@@ -176,6 +200,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {});", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {})", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("buffer.WritePacketList<{}>({}, {});", getListClassSimpleName(listField), objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
@@ -205,6 +232,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readBooleanArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readBooleanArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadBooleanList();", list)).append(LS);
|
||||
break;
|
||||
@@ -220,6 +250,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readByteArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readByteArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadByteList();", list)).append(LS);
|
||||
break;
|
||||
@@ -235,6 +268,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readShortArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readShortArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadShortList();", list)).append(LS);
|
||||
break;
|
||||
@@ -250,6 +286,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadIntList();", list)).append(LS);
|
||||
break;
|
||||
@@ -265,6 +304,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadLongList();", list)).append(LS);
|
||||
break;
|
||||
@@ -280,6 +322,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readFloatArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readFloatArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadFloatList();", list)).append(LS);
|
||||
break;
|
||||
@@ -295,6 +340,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readDoubleArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readDoubleArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadDoubleList();", list)).append(LS);
|
||||
break;
|
||||
@@ -310,6 +358,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringArray();", list)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringArray()", list)).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadStringList();", list)).append(LS);
|
||||
break;
|
||||
@@ -327,6 +378,9 @@ public class CutDownListSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readPacketArray({});", list, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readPacketArray({})", list, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case CSharp:
|
||||
builder.append(StringUtils.format("var {} = buffer.ReadPacketList<{}>({});", list, getListClassSimpleName(listField), objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
|
||||
@@ -59,6 +59,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntIntMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntIntMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -68,6 +71,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntLongMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntLongMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -77,6 +83,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntStringMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntStringMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -86,6 +95,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (keySerializer == LongSerializer.INSTANCE) {
|
||||
@@ -97,6 +109,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongIntMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongIntMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -106,6 +121,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongLongMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongLongMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -115,6 +133,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongStringMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongStringMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -124,6 +145,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (keySerializer == StringSerializer.INSTANCE) {
|
||||
@@ -135,6 +159,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringIntMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringIntMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -144,6 +171,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringLongMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringLongMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -153,6 +183,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringStringMap({});", objectStr)).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringStringMap({})", objectStr)).append(LS);
|
||||
return true;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -162,6 +195,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {});", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringPacketMap({}, {})", objectStr, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -189,6 +225,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntIntMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntIntMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -198,6 +237,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntLongMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntLongMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -207,6 +249,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntStringMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntStringMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -216,6 +261,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntPacketMap({});", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntPacketMap({})", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
} else if (keySerializer == LongSerializer.INSTANCE) {
|
||||
@@ -227,6 +275,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongIntMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongIntMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -236,6 +287,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongLongMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongLongMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -245,6 +299,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongStringMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongStringMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -254,6 +311,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongPacketMap({});", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongPacketMap({})", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
} else if (keySerializer == StringSerializer.INSTANCE) {
|
||||
@@ -265,6 +325,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringIntMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringIntMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == LongSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -274,6 +337,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringLongMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringLongMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == StringSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -283,6 +349,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringStringMap();", map)).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringStringMap()", map)).append(LS);
|
||||
return map;
|
||||
}
|
||||
} else if (valueSerializer == ObjectProtocolSerializer.INSTANCE) {
|
||||
switch (language) {
|
||||
@@ -292,6 +361,9 @@ public class CutDownMapSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringPacketMap({});", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringPacketMap({})", map, ((ObjectProtocolField) valueRegistration).getProtocolId())).append(LS);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeBooleanArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -62,6 +65,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeByteArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -74,6 +80,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeShortArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -86,6 +95,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeIntArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -98,6 +110,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeLongArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -110,6 +125,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeFloatArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -122,6 +140,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeDoubleArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -134,6 +155,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({});", objectStr)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writeStringArray({})", objectStr)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -149,6 +173,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {});", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("buffer.writePacketArray({}, {})", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -175,6 +202,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readBooleanArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readBooleanArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -187,6 +217,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readByteArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readByteArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -199,6 +232,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readShortArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readShortArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -211,6 +247,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readIntArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readIntArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -223,6 +262,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readLongArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readLongArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -235,6 +277,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readFloatArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readFloatArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -247,6 +292,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readDoubleArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readDoubleArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -259,6 +307,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readStringArray();", set)).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readStringArray()", set)).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
@@ -273,6 +324,9 @@ public class CutDownSetSerializer implements ICutDownSerializer {
|
||||
case JavaScript:
|
||||
builder.append(StringUtils.format("const {} = buffer.readPacketArray({});", set, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
case GdScript:
|
||||
builder.append(StringUtils.format("var {} = buffer.readPacketArray({})", set, objectProtocolField.getProtocolId())).append(LS);
|
||||
break;
|
||||
default:
|
||||
flag = false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.ArrayField;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
import com.zfoo.protocol.serializer.CutDownArraySerializer;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdArraySerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
if (CutDownArraySerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.GdScript)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayField arrayField = (ArrayField) fieldRegistration;
|
||||
|
||||
builder.append(StringUtils.format("if ({} == null):", objectStr)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append("buffer.writeInt(0)").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
|
||||
builder.append("else:").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS);
|
||||
|
||||
String element = "element" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS);
|
||||
GenerateGdUtils.gdSerializer(arrayField.getArrayElementRegistration().serializer())
|
||||
.writeObject(builder, element, deep + 2, field, arrayField.getArrayElementRegistration());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
var cutDown = CutDownArraySerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.GdScript);
|
||||
if (cutDown != null) {
|
||||
return cutDown;
|
||||
}
|
||||
|
||||
ArrayField arrayField = (ArrayField) fieldRegistration;
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
builder.append(StringUtils.format("var {} = []", result)).append(LS);
|
||||
|
||||
String i = "index" + GenerateProtocolFile.index.getAndIncrement();
|
||||
String size = "size" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("if ({} > 0):", size)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS);
|
||||
String readObject = GenerateGdUtils.gdSerializer(arrayField.getArrayElementRegistration().serializer())
|
||||
.readObject(builder, deep + 2, field, arrayField.getArrayElementRegistration());
|
||||
GenerateProtocolFile.addTab(builder, deep + 2);
|
||||
builder.append(StringUtils.format("{}.append({})", result, readObject)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdBooleanSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeBool({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readBool() ", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdByteSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeByte({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readByte()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdCharSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeChar({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readChar()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdDoubleSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeDouble({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readDouble()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdFloatSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeFloat({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readFloat()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdIntSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeInt({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readInt()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.registration.field.ListField;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
import com.zfoo.protocol.serializer.CutDownListSerializer;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdListSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
if (CutDownListSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.GdScript)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ListField listField = (ListField) fieldRegistration;
|
||||
|
||||
builder.append(StringUtils.format("if ({} == null):", objectStr)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append("buffer.writeInt(0)").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
|
||||
builder.append("else:").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS);
|
||||
|
||||
String element = "element" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS);
|
||||
GenerateGdUtils.gdSerializer(listField.getListElementRegistration().serializer())
|
||||
.writeObject(builder, element, deep + 2, field, listField.getListElementRegistration());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
var cutDown = CutDownListSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.GdScript);
|
||||
if (cutDown != null) {
|
||||
return cutDown;
|
||||
}
|
||||
|
||||
ListField listField = (ListField) fieldRegistration;
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
builder.append(StringUtils.format("var {} = []", result)).append(LS);
|
||||
|
||||
String i = "index" + GenerateProtocolFile.index.getAndIncrement();
|
||||
String size = "size" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("if ({} > 0):", size)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS);
|
||||
String readObject = GenerateGdUtils.gdSerializer(listField.getListElementRegistration().serializer())
|
||||
.readObject(builder, deep + 2, field, listField.getListElementRegistration());
|
||||
GenerateProtocolFile.addTab(builder, deep + 2);
|
||||
builder.append(StringUtils.format("{}.append({})", result, readObject)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdLongSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeLong({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readLong()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.registration.field.MapField;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
import com.zfoo.protocol.serializer.CutDownMapSerializer;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdMapSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
if (CutDownMapSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.GdScript)) {
|
||||
return;
|
||||
}
|
||||
|
||||
MapField mapField = (MapField) fieldRegistration;
|
||||
builder.append(StringUtils.format("if ({} == null):", objectStr)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append("buffer.writeInt(0)").append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append("else:").append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS);
|
||||
|
||||
String key = "key" + GenerateProtocolFile.index.getAndIncrement();
|
||||
String value = "value" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in {}:", key, objectStr)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 2);
|
||||
builder.append(StringUtils.format("var {} = {}[{}]", value, objectStr, key)).append(LS);
|
||||
GenerateGdUtils.gdSerializer(mapField.getMapKeyRegistration().serializer())
|
||||
.writeObject(builder, key, deep + 2, field, mapField.getMapKeyRegistration());
|
||||
GenerateGdUtils.gdSerializer(mapField.getMapValueRegistration().serializer())
|
||||
.writeObject(builder, value, deep + 2, field, mapField.getMapValueRegistration());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
var cutDown = CutDownMapSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.GdScript);
|
||||
if (cutDown != null) {
|
||||
return cutDown;
|
||||
}
|
||||
|
||||
MapField mapField = (MapField) fieldRegistration;
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
builder.append(StringUtils.format("var {} = {}", result)).append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
String size = "size" + GenerateProtocolFile.index.getAndIncrement();
|
||||
builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("if ({} > 0):", size)).append(LS);
|
||||
|
||||
String i = "index" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS);
|
||||
|
||||
String keyObject = GenerateGdUtils.gdSerializer(mapField.getMapKeyRegistration().serializer())
|
||||
.readObject(builder, deep + 2, field, mapField.getMapKeyRegistration());
|
||||
|
||||
|
||||
String valueObject = GenerateGdUtils.gdSerializer(mapField.getMapValueRegistration().serializer())
|
||||
.readObject(builder, deep + 2, field, mapField.getMapValueRegistration());
|
||||
GenerateProtocolFile.addTab(builder, deep + 2);
|
||||
|
||||
builder.append(StringUtils.format("{}[{}] = {}", result, keyObject, valueObject)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.registration.field.ObjectProtocolField;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdObjectProtocolSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writePacket({}, {})", objectStr, objectProtocolField.getProtocolId())).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration;
|
||||
var result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readPacket({})", result, objectProtocolField.getProtocolId())).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.registration.field.SetField;
|
||||
import com.zfoo.protocol.serializer.CodeLanguage;
|
||||
import com.zfoo.protocol.serializer.CutDownSetSerializer;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdSetSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
if (CutDownSetSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.GdScript)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SetField setField = (SetField) fieldRegistration;
|
||||
|
||||
builder.append(StringUtils.format("if ({} == null):", objectStr)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append("buffer.writeInt(0)").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
|
||||
builder.append("else:").append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("buffer.writeInt({}.size())", objectStr)).append(LS);
|
||||
|
||||
String element = "element" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in {}:", element, objectStr)).append(LS);
|
||||
GenerateGdUtils.gdSerializer(setField.getSetElementRegistration().serializer())
|
||||
.writeObject(builder, element, deep + 2, field, setField.getSetElementRegistration());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
var cutDown = CutDownSetSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.GdScript);
|
||||
if (cutDown != null) {
|
||||
return cutDown;
|
||||
}
|
||||
|
||||
SetField setField = (SetField) fieldRegistration;
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
builder.append(StringUtils.format("var {} = []", result)).append(LS);
|
||||
|
||||
String i = "index" + GenerateProtocolFile.index.getAndIncrement();
|
||||
String size = "size" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readInt()", size)).append(LS);
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("if ({} > 0):", size)).append(LS);
|
||||
GenerateProtocolFile.addTab(builder, deep + 1);
|
||||
builder.append(StringUtils.format("for {} in range({}):", i, size)).append(LS);
|
||||
String readObject = GenerateGdUtils.gdSerializer(setField.getSetElementRegistration().serializer())
|
||||
.readObject(builder, deep + 2, field, setField.getSetElementRegistration());
|
||||
GenerateProtocolFile.addTab(builder, deep + 2);
|
||||
builder.append(StringUtils.format("{}.append({})", result, readObject)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdShortSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeShort({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readShort()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public class GdStringSerializer implements IGdSerializer {
|
||||
|
||||
@Override
|
||||
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("buffer.writeString({})", objectStr)).append(LS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
|
||||
String result = "result" + GenerateProtocolFile.index.getAndIncrement();
|
||||
GenerateProtocolFile.addTab(builder, deep);
|
||||
builder.append(StringUtils.format("var {} = buffer.readString()", result)).append(LS);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.generate.GenerateProtocolDocument;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolPath;
|
||||
import com.zfoo.protocol.registration.IProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.ProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.serializer.reflect.*;
|
||||
import com.zfoo.protocol.util.ClassUtils;
|
||||
import com.zfoo.protocol.util.FileUtils;
|
||||
import com.zfoo.protocol.util.IOUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.*;
|
||||
|
||||
import static com.zfoo.protocol.util.FileUtils.LS;
|
||||
import static com.zfoo.protocol.util.StringUtils.TAB;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public abstract class GenerateGdUtils {
|
||||
|
||||
private static final String PROTOCOL_OUTPUT_ROOT_PATH = "gdProtocol/";
|
||||
|
||||
private static Map<ISerializer, IGdSerializer> gdSerializerMap;
|
||||
|
||||
public static IGdSerializer gdSerializer(ISerializer serializer) {
|
||||
return gdSerializerMap.get(serializer);
|
||||
}
|
||||
|
||||
public static void init() {
|
||||
FileUtils.deleteFile(new File(PROTOCOL_OUTPUT_ROOT_PATH));
|
||||
FileUtils.createDirectory(PROTOCOL_OUTPUT_ROOT_PATH);
|
||||
|
||||
gdSerializerMap = new HashMap<>();
|
||||
gdSerializerMap.put(BooleanSerializer.INSTANCE, new GdBooleanSerializer());
|
||||
gdSerializerMap.put(ByteSerializer.INSTANCE, new GdByteSerializer());
|
||||
gdSerializerMap.put(ShortSerializer.INSTANCE, new GdShortSerializer());
|
||||
gdSerializerMap.put(IntSerializer.INSTANCE, new GdIntSerializer());
|
||||
gdSerializerMap.put(LongSerializer.INSTANCE, new GdLongSerializer());
|
||||
gdSerializerMap.put(FloatSerializer.INSTANCE, new GdFloatSerializer());
|
||||
gdSerializerMap.put(DoubleSerializer.INSTANCE, new GdDoubleSerializer());
|
||||
gdSerializerMap.put(CharSerializer.INSTANCE, new GdCharSerializer());
|
||||
gdSerializerMap.put(StringSerializer.INSTANCE, new GdStringSerializer());
|
||||
gdSerializerMap.put(ArraySerializer.INSTANCE, new GdArraySerializer());
|
||||
gdSerializerMap.put(ListSerializer.INSTANCE, new GdListSerializer());
|
||||
gdSerializerMap.put(SetSerializer.INSTANCE, new GdSetSerializer());
|
||||
gdSerializerMap.put(MapSerializer.INSTANCE, new GdMapSerializer());
|
||||
gdSerializerMap.put(ObjectProtocolSerializer.INSTANCE, new GdObjectProtocolSerializer());
|
||||
}
|
||||
|
||||
public static void clear() {
|
||||
gdSerializerMap = null;
|
||||
}
|
||||
|
||||
public static void createProtocolManager(List<IProtocolRegistration> protocolList) throws IOException {
|
||||
var list = List.of("gd/buffer/ByteBuffer.gd");
|
||||
|
||||
for (var fileName : list) {
|
||||
var fileInputStream = ClassUtils.getFileFromClassPath(fileName);
|
||||
var createFile = new File(StringUtils.format("{}{}", PROTOCOL_OUTPUT_ROOT_PATH, StringUtils.substringAfterFirst(fileName, "gd/")));
|
||||
FileUtils.writeInputStreamToFile(createFile, fileInputStream);
|
||||
}
|
||||
|
||||
|
||||
// 生成ProtocolManager.gd文件
|
||||
var gdBuilder = new StringBuilder();
|
||||
|
||||
protocolList.stream()
|
||||
.filter(it -> Objects.nonNull(it))
|
||||
.forEach(it -> {
|
||||
var name = it.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
var path = GenerateProtocolPath.getProtocolPath(it.protocolId());
|
||||
gdBuilder.append(StringUtils.format("const {} = preload(\"res://gdProtocol/{}/{}.gd\")", name, path, name)).append(LS);
|
||||
});
|
||||
|
||||
|
||||
gdBuilder.append(LS);
|
||||
|
||||
var protocolManagerStr = StringUtils.bytesToString(IOUtils.toByteArray(ClassUtils.getFileFromClassPath("gd/ProtocolManager.gd")));
|
||||
gdBuilder.append(protocolManagerStr);
|
||||
|
||||
gdBuilder.append("static func initProtocol():").append(LS);
|
||||
protocolList.stream()
|
||||
.filter(it -> Objects.nonNull(it))
|
||||
.forEach(it -> gdBuilder.append(TAB).append(StringUtils.format("protocols[{}] = {}", it.protocolId(), it.protocolConstructor().getDeclaringClass().getSimpleName())).append(LS));
|
||||
|
||||
FileUtils.writeStringToFile(new File(StringUtils.format("{}{}", PROTOCOL_OUTPUT_ROOT_PATH, "ProtocolManager.gd")), gdBuilder.toString());
|
||||
}
|
||||
|
||||
public static void createGdProtocolFile(ProtocolRegistration registration) {
|
||||
// 初始化index
|
||||
GenerateProtocolFile.index.set(0);
|
||||
|
||||
var protocolId = registration.protocolId();
|
||||
var registrationConstructor = registration.getConstructor();
|
||||
|
||||
var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName();
|
||||
|
||||
var gdBuilder = new StringBuilder();
|
||||
|
||||
// 协议的属性生成
|
||||
gdBuilder.append(protocolClass(registration));
|
||||
|
||||
// protocolId
|
||||
gdBuilder.append(protocolIdField(registration));
|
||||
|
||||
// writeObject method
|
||||
gdBuilder.append(writeObject(registration));
|
||||
|
||||
// readObject method
|
||||
gdBuilder.append(readObject(registration));
|
||||
|
||||
var protocolOutputPath = StringUtils.format("{}{}/{}.gd"
|
||||
, PROTOCOL_OUTPUT_ROOT_PATH
|
||||
, GenerateProtocolPath.getProtocolPath(protocolId)
|
||||
, protocolClazzName);
|
||||
FileUtils.writeStringToFile(new File(protocolOutputPath), gdBuilder.toString());
|
||||
}
|
||||
|
||||
private static String protocolClass(ProtocolRegistration registration) {
|
||||
var protocolId = registration.getId();
|
||||
var fields = registration.getFields();
|
||||
var protocolClazzName = registration.getConstructor().getDeclaringClass().getSimpleName();
|
||||
|
||||
var protocolDocument = GenerateProtocolDocument.getProtocolDocument(protocolId);
|
||||
var docTitle = protocolDocument.getKey();
|
||||
var docFieldMap = protocolDocument.getValue();
|
||||
|
||||
var gdBuilder = new StringBuilder();
|
||||
|
||||
if (!StringUtils.isBlank(docTitle)) {
|
||||
gdBuilder.append(gdDocument(docTitle)).append(LS);
|
||||
}
|
||||
|
||||
for (var field : fields) {
|
||||
var propertyName = field.getName();
|
||||
|
||||
// 生成注释
|
||||
var doc = docFieldMap.get(propertyName);
|
||||
if (!StringUtils.isBlank(doc)) {
|
||||
Arrays.stream(doc.split(LS)).forEach(it -> gdBuilder.append(gdDocument(it)).append(LS));
|
||||
}
|
||||
|
||||
gdBuilder.append(StringUtils.format("var {}", propertyName))
|
||||
.append(" # ").append(field.getGenericType().getTypeName()) // 生成类型的注释
|
||||
.append(LS);
|
||||
}
|
||||
|
||||
gdBuilder.append(LS);
|
||||
return gdBuilder.toString();
|
||||
}
|
||||
|
||||
private static String protocolIdField(ProtocolRegistration registration) {
|
||||
var protocolId = registration.getId();
|
||||
var gdBuilder = new StringBuilder();
|
||||
gdBuilder.append(StringUtils.format("const PROTOCOL_ID = {}", protocolId)).append(LS).append(LS);
|
||||
return gdBuilder.toString();
|
||||
}
|
||||
|
||||
|
||||
private static String writeObject(ProtocolRegistration registration) {
|
||||
var fields = registration.getFields();
|
||||
var fieldRegistrations = registration.getFieldRegistrations();
|
||||
|
||||
var gdBuilder = new StringBuilder();
|
||||
gdBuilder.append(StringUtils.format("static func write(buffer, packet):")).append(LS);
|
||||
|
||||
gdBuilder.append(TAB).append("if (buffer.writePacketFlag(packet)):").append(LS);
|
||||
gdBuilder.append(TAB + TAB).append("return").append(LS);
|
||||
|
||||
for (int i = 0; i < fields.length; i++) {
|
||||
Field field = fields[i];
|
||||
IFieldRegistration fieldRegistration = fieldRegistrations[i];
|
||||
|
||||
gdSerializer(fieldRegistration.serializer()).writeObject(gdBuilder, "packet." + field.getName(), 1, field, fieldRegistration);
|
||||
}
|
||||
|
||||
gdBuilder.append(LS).append(LS);
|
||||
return gdBuilder.toString();
|
||||
}
|
||||
|
||||
|
||||
private static String readObject(ProtocolRegistration registration) {
|
||||
var fields = registration.getFields();
|
||||
var fieldRegistrations = registration.getFieldRegistrations();
|
||||
var protocolClazzName = registration.getConstructor().getDeclaringClass().getSimpleName();
|
||||
|
||||
var jsBuilder = new StringBuilder();
|
||||
jsBuilder.append(StringUtils.format("static func read(buffer):")).append(LS);
|
||||
jsBuilder.append(TAB).append("if (!buffer.readBool()):").append(LS);
|
||||
jsBuilder.append(TAB + TAB).append("return null").append(LS);
|
||||
|
||||
|
||||
jsBuilder.append(TAB).append(StringUtils.format("var packet = buffer.newInstance({})", registration.protocolId())).append(LS);
|
||||
|
||||
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
var fieldRegistration = fieldRegistrations[i];
|
||||
|
||||
var readObject = gdSerializer(fieldRegistration.serializer()).readObject(jsBuilder, 1, field, fieldRegistration);
|
||||
jsBuilder.append(TAB).append(StringUtils.format("packet.{} = {}", field.getName(), readObject)).append(LS);
|
||||
}
|
||||
|
||||
jsBuilder.append(TAB).append("return packet").append(LS);
|
||||
return jsBuilder.toString();
|
||||
}
|
||||
|
||||
private static String gdDocument(String doc) {
|
||||
return doc.replaceAll("//", "#");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The zfoo Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
|
||||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
|
||||
package com.zfoo.protocol.serializer.gd;
|
||||
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
/**
|
||||
* @author jaysunxiao
|
||||
* @version 3.0
|
||||
*/
|
||||
public interface IGdSerializer {
|
||||
|
||||
void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration);
|
||||
|
||||
String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration);
|
||||
|
||||
}
|
||||
@@ -13,12 +13,10 @@
|
||||
|
||||
package com.zfoo.protocol.serializer.js;
|
||||
|
||||
import com.zfoo.protocol.collection.CollectionUtils;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolDocument;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolFile;
|
||||
import com.zfoo.protocol.generate.GenerateProtocolPath;
|
||||
import com.zfoo.protocol.registration.IProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.ProtocolAnalysis;
|
||||
import com.zfoo.protocol.registration.ProtocolRegistration;
|
||||
import com.zfoo.protocol.registration.field.IFieldRegistration;
|
||||
import com.zfoo.protocol.serializer.reflect.*;
|
||||
@@ -182,8 +180,7 @@ public abstract class GenerateJsUtils {
|
||||
|
||||
jsBuilder.append(TAB)
|
||||
.append(StringUtils.format("this.{} = {};", propertyName, propertyName))
|
||||
// 生成类型的注释
|
||||
.append(" // ").append(field.getGenericType().getTypeName())
|
||||
.append(" // ").append(field.getGenericType().getTypeName())// 生成类型的注释
|
||||
.append(LS);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
const protocols = {}
|
||||
|
||||
static func getProtocol(protocolId: int):
|
||||
return protocols[protocolId]
|
||||
|
||||
static func newInstance(protocolId: int):
|
||||
var protocol = protocols[protocolId]
|
||||
return protocol.new()
|
||||
|
||||
static func write(buffer, packet):
|
||||
var protocolId: int = packet.PROTOCOL_ID
|
||||
buffer.writeShort(protocolId)
|
||||
var protocol = protocols[protocolId]
|
||||
protocol.write(buffer, packet)
|
||||
|
||||
static func read(buffer):
|
||||
var protocolId = buffer.readShort();
|
||||
var protocol = protocols[protocolId]
|
||||
var packet = protocol.read(buffer);
|
||||
return packet;
|
||||
|
||||
@@ -0,0 +1,661 @@
|
||||
const ProtocolManager = preload("res://gdProtocol/ProtocolManager.gd")
|
||||
|
||||
const EMPTY: String = ""
|
||||
|
||||
var buffer = StreamPeerBuffer.new()
|
||||
|
||||
var writeOffset: int = 0 setget setWriteOffset, getWriteOffset
|
||||
var readOffset: int = 0 setget setReadOffset, getReadOffset
|
||||
|
||||
func _init():
|
||||
buffer.big_endian = true
|
||||
|
||||
# -------------------------------------------------get/set-------------------------------------------------
|
||||
func setWriteOffset(writeIndex: int) -> void:
|
||||
if (writeIndex > buffer.get_size()):
|
||||
var template = "writeIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
|
||||
printerr(template.format([writeIndex, readOffset, writeOffset, buffer.size()], "{}"))
|
||||
return
|
||||
writeOffset = writeIndex
|
||||
|
||||
func getWriteOffset() -> int:
|
||||
return writeOffset
|
||||
|
||||
func setReadOffset(readIndex: int) -> void:
|
||||
if (readIndex > writeOffset):
|
||||
var template = "readIndex[{}] out of bounds exception: readerIndex: {}, writerIndex: {} (expected: 0 <= readerIndex <= writerIndex <= capacity: {})"
|
||||
printerr(template.format([readIndex, readOffset, writeOffset, buffer.size()], "{}"))
|
||||
return
|
||||
readOffset = readIndex
|
||||
|
||||
func getReadOffset() -> int:
|
||||
return readOffset
|
||||
|
||||
# -------------------------------------------------write/read-------------------------------------------------
|
||||
func writePoolByteArray(value: PoolByteArray):
|
||||
var length = value.size()
|
||||
buffer.put_partial_data(value)
|
||||
writeOffset += length
|
||||
|
||||
func writeBool(value: bool) -> void:
|
||||
var byte = 0
|
||||
if (value):
|
||||
byte = 1
|
||||
buffer.seek(writeOffset)
|
||||
buffer.put_8(byte)
|
||||
writeOffset += 1
|
||||
|
||||
func readBool() -> bool:
|
||||
buffer.seek(readOffset)
|
||||
var byte = buffer.get_8()
|
||||
readOffset += 1
|
||||
return byte == 1
|
||||
|
||||
func writeByte(value: int) -> void:
|
||||
buffer.seek(writeOffset)
|
||||
buffer.put_8(value)
|
||||
writeOffset += 1
|
||||
|
||||
func readByte() -> int:
|
||||
buffer.seek(readOffset)
|
||||
var value = buffer.get_8()
|
||||
readOffset += 1
|
||||
return value
|
||||
|
||||
func writeShort(value: int) -> void:
|
||||
buffer.seek(writeOffset)
|
||||
buffer.put_16(value)
|
||||
writeOffset += 2
|
||||
|
||||
func readShort() -> int:
|
||||
buffer.seek(readOffset)
|
||||
var value = buffer.get_16()
|
||||
readOffset += 2
|
||||
return value
|
||||
|
||||
func writeInt(value) -> void:
|
||||
writeLong(value)
|
||||
|
||||
func readInt() -> int:
|
||||
return readLong()
|
||||
|
||||
func writeLong(longValue: int) -> void:
|
||||
var value = (longValue << 1) ^ (longValue >> 63)
|
||||
|
||||
if (value >> 7 == 0):
|
||||
writeByte(value)
|
||||
return
|
||||
|
||||
if (value >> 14 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte(value >> 7)
|
||||
return
|
||||
|
||||
if (value >> 21 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte(value >> 14)
|
||||
return
|
||||
|
||||
if (value >> 28 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte(value >> 21)
|
||||
return
|
||||
|
||||
if (value >> 35 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte((value >> 21) | 0x80)
|
||||
writeByte(value >> 28)
|
||||
return
|
||||
|
||||
if (value >> 42 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte((value >> 21) | 0x80)
|
||||
writeByte((value >> 28) | 0x80)
|
||||
writeByte(value >> 35)
|
||||
return
|
||||
|
||||
if (value >> 49 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte((value >> 21) | 0x80)
|
||||
writeByte((value >> 28) | 0x80)
|
||||
writeByte((value >> 35) | 0x80)
|
||||
writeByte(value >> 42)
|
||||
return
|
||||
|
||||
if (value >> 56 == 0):
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte((value >> 21) | 0x80)
|
||||
writeByte((value >> 28) | 0x80)
|
||||
writeByte((value >> 35) | 0x80)
|
||||
writeByte((value >> 42) | 0x80)
|
||||
writeByte(value >> 49)
|
||||
return
|
||||
|
||||
writeByte(value | 0x80)
|
||||
writeByte((value >> 7) | 0x80)
|
||||
writeByte((value >> 14) | 0x80)
|
||||
writeByte((value >> 21) | 0x80)
|
||||
writeByte((value >> 28) | 0x80)
|
||||
writeByte((value >> 35) | 0x80)
|
||||
writeByte((value >> 42) | 0x80)
|
||||
writeByte((value >> 49) | 0x80)
|
||||
writeByte(value >> 56)
|
||||
|
||||
func readLong() -> int:
|
||||
var byte: int = readByte()
|
||||
var value: int = byte
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00000000_0000007F | byte << 7
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00000000_00003FFF | byte << 14
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00000000_001FFFFF | byte << 21
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00000000_0FFFFFFF | byte << 28
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00000007_FFFFFFFF | byte << 35
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x000003FF_FFFFFFFF | byte << 42
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x0001FFFF_FFFFFFFF | byte << 49
|
||||
if (byte < 0):
|
||||
byte = readByte()
|
||||
value = value & 0x00FFFFFF_FFFFFFFF | byte << 56
|
||||
|
||||
var mask = value >> 1
|
||||
if (mask < 0):
|
||||
mask = mask & 0x7FFFFFFF_FFFFFFFF
|
||||
return mask ^ -(value & 1)
|
||||
|
||||
|
||||
func writeFloat(value: float) -> void:
|
||||
buffer.seek(writeOffset)
|
||||
buffer.put_float(value)
|
||||
writeOffset += 4
|
||||
|
||||
func readFloat() -> float:
|
||||
buffer.seek(readOffset)
|
||||
var value = buffer.get_float()
|
||||
readOffset += 4
|
||||
return value
|
||||
|
||||
func writeDouble(value: float) -> void:
|
||||
buffer.seek(writeOffset)
|
||||
buffer.put_double(value)
|
||||
writeOffset += 8
|
||||
|
||||
func readDouble() -> float:
|
||||
buffer.seek(readOffset)
|
||||
var value = buffer.get_double()
|
||||
readOffset += 8
|
||||
return value
|
||||
|
||||
|
||||
func writeString(value: String) -> void:
|
||||
if (value == null || value.length() ==0):
|
||||
writeInt(0)
|
||||
return
|
||||
|
||||
buffer.seek(writeOffset)
|
||||
|
||||
var strBytes = value.to_utf8()
|
||||
var length = strBytes.size()
|
||||
writeInt(length)
|
||||
buffer.put_partial_data(strBytes)
|
||||
writeOffset += length
|
||||
|
||||
func readString() -> String:
|
||||
var length = readInt()
|
||||
if (length <= 0):
|
||||
return EMPTY
|
||||
|
||||
buffer.seek(readOffset)
|
||||
var value = buffer.get_utf8_string(length)
|
||||
var strBytes = value.to_utf8()
|
||||
readOffset += length
|
||||
return value
|
||||
|
||||
func writeChar(value) -> void:
|
||||
if (value == null || value.length() == 0):
|
||||
writeString(EMPTY)
|
||||
return
|
||||
writeString(value[0])
|
||||
|
||||
func readChar() -> String:
|
||||
return readString()
|
||||
|
||||
func writePacketFlag(packet) -> bool:
|
||||
var flag = (packet == null)
|
||||
writeBool(!flag)
|
||||
return flag
|
||||
|
||||
func writePacket(packet, protocolId):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
protocolRegistration.write(self, packet)
|
||||
|
||||
func readPacket(protocolId):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
return protocolRegistration.read(self)
|
||||
|
||||
func newInstance(protocolId: int):
|
||||
return ProtocolManager.newInstance(protocolId)
|
||||
|
||||
func writeBooleanArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeBool(element)
|
||||
|
||||
func readBooleanArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readBool())
|
||||
return array
|
||||
|
||||
func writeByteArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeByte(element)
|
||||
|
||||
func readByteArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readByte())
|
||||
return array
|
||||
|
||||
func writeShortArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeShort(element)
|
||||
|
||||
func readShortArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readShort())
|
||||
return array
|
||||
|
||||
func writeIntArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeInt(element)
|
||||
|
||||
func readIntArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readInt())
|
||||
return array
|
||||
|
||||
func writeLongArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeLong(element)
|
||||
|
||||
func readLongArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readLong())
|
||||
return array
|
||||
|
||||
func writeFloatArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeFloat(element)
|
||||
|
||||
func readFloatArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readFloat())
|
||||
return array
|
||||
|
||||
func writeDoubleArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeDouble(element)
|
||||
|
||||
func readDoubleArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readDouble())
|
||||
return array
|
||||
|
||||
func writeCharArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeChar(element)
|
||||
|
||||
func readCharArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readChar())
|
||||
return array
|
||||
|
||||
func writeStringArray(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
writeString(element)
|
||||
|
||||
func readStringArray():
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
array.append(readString())
|
||||
return array
|
||||
|
||||
|
||||
func writePacketArray(value, protocolId):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
writeInt(value.size());
|
||||
for element in value:
|
||||
protocolRegistration.write(self, element)
|
||||
|
||||
func readPacketArray(protocolId):
|
||||
var array = []
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
for index in range(size):
|
||||
array.append(protocolRegistration.read(self))
|
||||
return array
|
||||
|
||||
func writeIntIntMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeInt(key)
|
||||
writeInt(value[key])
|
||||
|
||||
func readIntIntMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readInt()
|
||||
var value = readInt()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeIntLongMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeInt(key)
|
||||
writeLong(value[key])
|
||||
|
||||
func readIntLongMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readInt()
|
||||
var value = readLong()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeIntStringMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeInt(key)
|
||||
writeString(value[key])
|
||||
|
||||
func readIntStringMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readInt()
|
||||
var value = readString()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
|
||||
func writeIntPacketMap(value, protocolId):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeInt(key)
|
||||
protocolRegistration.write(self, value[key])
|
||||
|
||||
func readIntPacketMap(protocolId):
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
for index in range(size):
|
||||
var key = readInt()
|
||||
var value = protocolRegistration.read(self)
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
|
||||
func writeLongIntMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeLong(key)
|
||||
writeInt(value[key])
|
||||
|
||||
func readLongIntMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readLong()
|
||||
var value = readInt()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeLongLongMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeLong(key)
|
||||
writeLong(value[key])
|
||||
|
||||
func readLongLongMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readLong()
|
||||
var value = readLong()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeLongStringMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeLong(key)
|
||||
writeString(value[key])
|
||||
|
||||
func readLongStringMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readLong()
|
||||
var value = readString()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
|
||||
func writeLongPacketMap(value, protocolId):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeLong(key)
|
||||
protocolRegistration.write(self, value[key])
|
||||
|
||||
func readLongPacketMap(protocolId):
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
for index in range(size):
|
||||
var key = readLong()
|
||||
var value = protocolRegistration.read(self)
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
|
||||
func writeStringIntMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeString(key)
|
||||
writeInt(value[key])
|
||||
|
||||
func readStringIntMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readString()
|
||||
var value = readInt()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeStringLongMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeString(key)
|
||||
writeLong(value[key])
|
||||
|
||||
func readStringLongMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readString()
|
||||
var value = readLong()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
func writeStringStringMap(value):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeString(key)
|
||||
writeString(value[key])
|
||||
|
||||
func readStringStringMap():
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
for index in range(size):
|
||||
var key = readString()
|
||||
var value = readString()
|
||||
map[key] = value
|
||||
return map
|
||||
|
||||
|
||||
func writeStringPacketMap(value, protocolId):
|
||||
if (value == null):
|
||||
writeInt(0)
|
||||
else:
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
writeInt(value.size())
|
||||
for key in value:
|
||||
writeString(key)
|
||||
protocolRegistration.write(self, value[key])
|
||||
|
||||
func readStringPacketMap(protocolId):
|
||||
var map = {}
|
||||
var size = readInt()
|
||||
if (size > 0):
|
||||
var protocolRegistration = ProtocolManager.getProtocol(protocolId)
|
||||
for index in range(size):
|
||||
var key = readString()
|
||||
var value = protocolRegistration.read(self)
|
||||
map[key] = value
|
||||
return map
|
||||
Reference in new issue
Block a user