diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableFieldTypes.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableFieldTypes.cs
index dbe5d8ec..d220c22b 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableFieldTypes.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableFieldTypes.cs
@@ -24,6 +24,9 @@ public enum ForgeAcceptableFieldTypes
QUATERNION = 15,
COLOR = 16,
//OBJECT_ARRAY = 17, //Unsupported
- //BYTE_ARRAY = 18
+ //BYTE_ARRAY = 18,
+ FLOAT2 = 19,
+ FLOAT3 = 20,
+ FLOAT4 = 21,
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableRPCTypes.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableRPCTypes.cs
index 16bc1f04..9aec7abf 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableRPCTypes.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeAcceptableRPCTypes.cs
@@ -24,6 +24,9 @@ public enum ForgeAcceptableRPCTypes
QUATERNION = 15,
COLOR = 16,
//OBJECT_ARRAY = 17,
- BYTE_ARRAY = 18
+ BYTE_ARRAY = 18,
+ FLOAT2 = 19,
+ FLOAT3 = 20,
+ FLOAT4 = 21,
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldRPCValue.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldRPCValue.cs
index 73bf2ac4..057f1bff 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldRPCValue.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldRPCValue.cs
@@ -85,6 +85,12 @@ public static ForgeClassFieldRPCValue GetClassField(FieldInfo field, Type t, boo
type = ForgeAcceptableRPCTypes.VECTOR3;
else if (fieldType == typeof(Vector4))
type = ForgeAcceptableRPCTypes.VECTOR4;
+ else if (fieldType == typeof(Float2))
+ type = ForgeAcceptableRPCTypes.FLOAT2;
+ else if (fieldType == typeof(Float3))
+ type = ForgeAcceptableRPCTypes.FLOAT3;
+ else if (fieldType == typeof(Float4))
+ type = ForgeAcceptableRPCTypes.FLOAT4;
else if (fieldType == typeof(string))
type = ForgeAcceptableRPCTypes.STRING;
//else if (fieldType == typeof(object[]))
@@ -133,6 +139,12 @@ public static Type GetTypeFromAcceptable(ForgeAcceptableRPCTypes type)
return typeof(Vector3);
case ForgeAcceptableRPCTypes.VECTOR4:
return typeof(Vector4);
+ case ForgeAcceptableRPCTypes.FLOAT2:
+ return typeof(Float2);
+ case ForgeAcceptableRPCTypes.FLOAT3:
+ return typeof(Float3);
+ case ForgeAcceptableRPCTypes.FLOAT4:
+ return typeof(Float4);
case ForgeAcceptableRPCTypes.STRING:
return typeof(string);
//case ForgeAcceptableRPCTypes.OBJECT_ARRAY:
@@ -180,6 +192,12 @@ public static ForgeAcceptableRPCTypes GetTypeFromAcceptable(string val)
return ForgeAcceptableRPCTypes.VECTOR3;
case "vector4":
return ForgeAcceptableRPCTypes.VECTOR4;
+ case "float2":
+ return ForgeAcceptableRPCTypes.FLOAT2;
+ case "float3":
+ return ForgeAcceptableRPCTypes.FLOAT3;
+ case "float4":
+ return ForgeAcceptableRPCTypes.FLOAT4;
case "string":
return ForgeAcceptableRPCTypes.STRING;
//case "object[]":
@@ -196,4 +214,4 @@ public override string ToString()
return string.Format("[ Name: {0}, Value: {1}, Type: {2}, IsNetObj: {3}]", FieldRPCName, FieldRPCValue, FieldType, IsNetworkedObject);
}
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldValue.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldValue.cs
index a79a7e36..b5230f0e 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldValue.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassFieldValue.cs
@@ -78,6 +78,12 @@ public static ForgeClassFieldValue GetClassField(FieldInfo field, Type t, bool i
type = ForgeAcceptableFieldTypes.VECTOR3;
else if (fieldType == typeof(Vector4))
type = ForgeAcceptableFieldTypes.VECTOR4;
+ else if (fieldType == typeof(Float2))
+ type = ForgeAcceptableFieldTypes.FLOAT2;
+ else if (fieldType == typeof(Float3))
+ type = ForgeAcceptableFieldTypes.FLOAT3;
+ else if (fieldType == typeof(Float4))
+ type = ForgeAcceptableFieldTypes.FLOAT4;
//else if (fieldType == typeof(string))
// type = ForgeAcceptableFieldTypes.STRING; //Unsupported
//else if (fieldType == typeof(object[]))
@@ -126,6 +132,12 @@ public static Type GetTypeFromAcceptable(ForgeAcceptableFieldTypes type)
return typeof(Vector3);
case ForgeAcceptableFieldTypes.VECTOR4:
return typeof(Vector4);
+ case ForgeAcceptableFieldTypes.FLOAT2:
+ return typeof(Float2);
+ case ForgeAcceptableFieldTypes.FLOAT3:
+ return typeof(Float3);
+ case ForgeAcceptableFieldTypes.FLOAT4:
+ return typeof(Float4);
//case ForgeAcceptableFieldTypes.STRING: //Unsupported
// return typeof(string);
//case ForgeAcceptableFieldTypes.OBJECT_ARRAY: //Unsupported
@@ -220,6 +232,12 @@ public static ForgeAcceptableFieldTypes GetTypeFromAcceptable(string val)
return ForgeAcceptableFieldTypes.VECTOR3;
case "vector4":
return ForgeAcceptableFieldTypes.VECTOR4;
+ case "float2":
+ return ForgeAcceptableFieldTypes.FLOAT2;
+ case "float3":
+ return ForgeAcceptableFieldTypes.FLOAT3;
+ case "float4":
+ return ForgeAcceptableFieldTypes.FLOAT4;
//case "string":
// return ForgeAcceptableFieldTypes.STRING; //Unsupported
//case "object[]":
@@ -237,4 +255,4 @@ public override string ToString()
return string.Format("[ Name: {0}, Value: {1}, Type: {2}, IsNetObj: {3}]", FieldName, FieldValue, FieldType, IsNetworkedObject);
}
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRPCValue.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRPCValue.cs
index 5da35c59..e7b02a82 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRPCValue.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRPCValue.cs
@@ -81,6 +81,12 @@ public static ForgeAcceptableRPCTypes GetATypeFromPInfo(ParameterInfo pInfo)
type = ForgeAcceptableRPCTypes.VECTOR3;
else if (fieldType == typeof(Vector4))
type = ForgeAcceptableRPCTypes.VECTOR4;
+ else if (fieldType == typeof(Float2))
+ type = ForgeAcceptableRPCTypes.FLOAT2;
+ else if (fieldType == typeof(Float3))
+ type = ForgeAcceptableRPCTypes.FLOAT3;
+ else if (fieldType == typeof(Float4))
+ type = ForgeAcceptableRPCTypes.FLOAT4;
else if (fieldType == typeof(string))
type = ForgeAcceptableRPCTypes.STRING;
//else if (fieldType == typeof(object[]))
@@ -93,4 +99,4 @@ public static ForgeAcceptableRPCTypes GetATypeFromPInfo(ParameterInfo pInfo)
return type;
}
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRewindValue.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRewindValue.cs
index ef893687..f009113d 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRewindValue.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeClassRewindValue.cs
@@ -67,6 +67,12 @@ public static ForgeAcceptableRPCTypes GetATypeFromPInfo(ParameterInfo pInfo)
type = ForgeAcceptableRPCTypes.VECTOR3;
else if (fieldType == typeof(Vector4))
type = ForgeAcceptableRPCTypes.VECTOR4;
+ else if (fieldType == typeof(Float2))
+ type = ForgeAcceptableRPCTypes.FLOAT2;
+ else if (fieldType == typeof(Float3))
+ type = ForgeAcceptableRPCTypes.FLOAT3;
+ else if (fieldType == typeof(Float4))
+ type = ForgeAcceptableRPCTypes.FLOAT4;
else if (fieldType == typeof(string))
type = ForgeAcceptableRPCTypes.STRING;
//else if (fieldType == typeof(object[]))
@@ -79,4 +85,4 @@ public static ForgeAcceptableRPCTypes GetATypeFromPInfo(ParameterInfo pInfo)
return type;
}
}
-}
\ No newline at end of file
+}
diff --git a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeNetworkingEditor.cs b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeNetworkingEditor.cs
index 90c5fe1f..b8ff6633 100644
--- a/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeNetworkingEditor.cs
+++ b/ForgeUnity/Assets/BeardedManStudios/Editor/ForgeNetworkingEditor.cs
@@ -200,6 +200,9 @@ public void Initialize()
_referenceVariables.Add(typeof(Vector4).Name, "Vector4");
_referenceVariables.Add(typeof(Quaternion).Name, "Quaternion");
_referenceVariables.Add(typeof(Color).Name, "Color");
+ _referenceVariables.Add(typeof(Float2).Name, "Float2");
+ _referenceVariables.Add(typeof(Float3).Name, "Float3");
+ _referenceVariables.Add(typeof(Float4).Name, "Float4");
_referenceVariables.Add(typeof(object).Name, "object");
_referenceVariables.Add(typeof(object[]).Name, "object[]");
_referenceVariables.Add(typeof(byte[]).Name, "byte[]");
@@ -710,7 +713,14 @@ public void MakeForgeFactory()
/// The generated string to save to a file
public string SourceCodeNetworkObject(ForgeClassObject cObj, ForgeEditorButton btn, int identity)
{
- TextAsset asset = Resources.Load(EDITOR_RESOURCES_DIR + "/NetworkObjectTemplate");
+ string networkObjectPath = string.Empty;
+
+ if (btn.BaseType == ForgeBaseClassType.NetworkBehavior)
+ networkObjectPath = EDITOR_RESOURCES_DIR + "/StandAloneNetworkObjectTemplate";
+ else
+ networkObjectPath = EDITOR_RESOURCES_DIR + "/NetworkObjectTemplate";
+
+ TextAsset asset = Resources.Load(networkObjectPath);
TemplateSystem template = new TemplateSystem(asset.text);
template.AddVariable("className", btn.StrippedSearchName + "NetworkObject");
@@ -892,6 +902,32 @@ public string SourceCodeFactory()
return template.Parse();
}
+ ///
+ /// Generates the code factory for all our custom network objects for standalone use
+ ///
+ /// The string for the save file
+ public string SourceCodeStandAloneFactory()
+ {
+ TextAsset asset = Resources.Load(EDITOR_RESOURCES_DIR + "/StandAloneNetworkObjectFactoryTemplate");
+ TemplateSystem template = new TemplateSystem(asset.text);
+
+ List