From a68e8fc087895413ff97c98beb4e3649fc9949b9 Mon Sep 17 00:00:00 2001 From: austin Date: Mon, 14 Apr 2025 17:45:49 -0400 Subject: [PATCH] missing deps, parsing bugfix, tree nullcheck --- .../methods/UpdateEntityState.java | 30 ++++++++++++++----- .../main/core/btree/methods/ClientAttach.java | 1 + .../main/core/btree/methods/ServerAttach.java | 1 + .../electrosphere/main/util/Utilities.java | 2 +- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/electrosphere/main/client/syncmanager/methods/UpdateEntityState.java b/src/main/java/electrosphere/main/client/syncmanager/methods/UpdateEntityState.java index 58f10ac..ceccf83 100644 --- a/src/main/java/electrosphere/main/client/syncmanager/methods/UpdateEntityState.java +++ b/src/main/java/electrosphere/main/client/syncmanager/methods/UpdateEntityState.java @@ -59,8 +59,10 @@ public class UpdateEntityState implements VirtualMethod { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; updateCases = updateCases + " " + field.getTypeName() + " result = Utilities.deserialize(message.getstringValue(), " + field.getTypeName() + ".class);\n"; - updateCases = updateCases + " tree." + field.getPusherName() + "(tree." + field.getGetterName() + "(),result);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(result);\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getPusherName() + "(tree." + field.getGetterName() + "(),result);\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(result);\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; return updateCases; } @@ -78,31 +80,41 @@ public class UpdateEntityState implements VirtualMethod { case "int": { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(message.getintValue());\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(message.getintValue());\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; case "long": { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(message.getlongValue());\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(message.getlongValue());\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; case "float": { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(message.getfloatValue());\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(message.getfloatValue());\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; case "double": { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(message.getdoubleValue());\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(message.getdoubleValue());\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; case "String": { updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(message.getstringValue());\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(message.getstringValue());\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; default: { @@ -110,7 +122,9 @@ public class UpdateEntityState implements VirtualMethod { String typeClass = type.getTargetFile().getSource().getName(); updateCases = updateCases + " case FieldIdEnums." + fieldIdVariable + ":{\n"; updateCases = updateCases + " " + treeName + " tree = " + treeName + ".get" + treeName + "(entity);\n"; - updateCases = updateCases + " tree." + field.getSetterName() + "(" + typeClass + "." + type.getFromShortConversionMethodName() + "((short)message.getbTreeValue()));\n"; + updateCases = updateCases + " if(tree != null){\n"; + updateCases = updateCases + " tree." + field.getSetterName() + "(" + typeClass + "." + type.getFromShortConversionMethodName() + "((short)message.getbTreeValue()));\n"; + updateCases = updateCases + " }\n"; updateCases = updateCases + " } break;\n"; } break; } diff --git a/src/main/java/electrosphere/main/core/btree/methods/ClientAttach.java b/src/main/java/electrosphere/main/core/btree/methods/ClientAttach.java index f708d3f..d22a945 100644 --- a/src/main/java/electrosphere/main/core/btree/methods/ClientAttach.java +++ b/src/main/java/electrosphere/main/core/btree/methods/ClientAttach.java @@ -45,6 +45,7 @@ public class ClientAttach implements VirtualMethod { public List getImports(ProjectStructure projectStructure) { List rVal = Arrays.asList(new String[]{ "electrosphere.net.synchronization.enums.BehaviorTreeIdEnums", + "electrosphere.entity.Entity", }); return rVal; } diff --git a/src/main/java/electrosphere/main/core/btree/methods/ServerAttach.java b/src/main/java/electrosphere/main/core/btree/methods/ServerAttach.java index 9e6b61e..f1dd5c0 100644 --- a/src/main/java/electrosphere/main/core/btree/methods/ServerAttach.java +++ b/src/main/java/electrosphere/main/core/btree/methods/ServerAttach.java @@ -46,6 +46,7 @@ public class ServerAttach implements VirtualMethod { List rVal = Arrays.asList(new String[]{ "electrosphere.server.datacell.utils.ServerBehaviorTreeUtils", "electrosphere.net.synchronization.enums.BehaviorTreeIdEnums", + "electrosphere.entity.Entity", }); return rVal; } diff --git a/src/main/java/electrosphere/main/util/Utilities.java b/src/main/java/electrosphere/main/util/Utilities.java index 4b2307f..28add77 100644 --- a/src/main/java/electrosphere/main/util/Utilities.java +++ b/src/main/java/electrosphere/main/util/Utilities.java @@ -93,7 +93,7 @@ public class Utilities { int characterToInsertAt = characterPosition; //now move backwards to find the previous line with content on it characterPosition = characterPosition - 1; - while(true){ + while(true && characterPosition > 0){ if(source.charAt(characterPosition)=='\n' && source.charAt(characterPosition + 1)!='\n'){ break; }