Пример #1
0
 public static void DrawDsgVarModel(Rect rect, DsgVarComponent.DsgVarEditableEntry dsgVarEntry, int?arrayIndex)
 {
     DsgVarComponent.DsgVarEditableEntry.Value value = dsgVarEntry.valueModel;
     if (value != null)
     {
         DrawDsgVarValue(rect, dsgVarEntry, value, arrayIndex);
     }
 }
Пример #2
0
    private JSONObject GetDsgVarJSON(Perso perso, DsgVarComponent.DsgVarEditableEntry dsg)
    {
        JSONObject dsgObj = new JSONObject();

        dsgObj["name"]         = dsg.entry.NiceVariableName;
        dsgObj["type"]         = dsg.entry.type.ToString();
        dsgObj["valueCurrent"] = GetDsgVarValueJSON(dsg.valueCurrent);
        dsgObj["valueInitial"] = GetDsgVarValueJSON(dsg.valueInitial);
        dsgObj["valueModel"]   = GetDsgVarValueJSON(dsg.valueModel);
        return(dsgObj);
    }
Пример #3
0
    private WebJSON.DsgVar GetDsgVarJSON(DsgVarComponent.DsgVarEditableEntry dsg)
    {
        bool isArray = dsg.IsArray;

        WebJSON.DsgVar dsgObj = new WebJSON.DsgVar()
        {
            Name      = dsg.Name,
            Type      = dsg.Type,
            IsArray   = isArray,
            ArrayType = isArray ? (DsgVarInfoEntry.DsgVarType?)DsgVarInfoEntry.GetDsgVarTypeFromArrayType(dsg.Type) : null,
                            ArrayLength  = isArray ? (int?)dsg.ArrayLength : null,
                            ValueCurrent = GetDsgVarValueJSON(dsg.valueCurrent, isArray),
                            ValueInitial = GetDsgVarValueJSON(dsg.valueInitial, isArray),
                            ValueModel   = GetDsgVarValueJSON(dsg.valueModel, isArray)
        };
        return(dsgObj);
    }
Пример #4
0
    public static void DrawDsgVarValue(Rect rect, DsgVarComponent.DsgVarEditableEntry dsgVarEntry, DsgVarComponent.DsgVarEditableEntry.Value value, int?arrayIndex)
    {
        string stringVal;

        switch (value.type)
        {
        case DsgVarInfoEntry.DsgVarType.Boolean:
            value.AsBoolean = EditorGUI.Toggle(rect, value.AsBoolean);
            break;

        case DsgVarInfoEntry.DsgVarType.Int:
            value.AsInt = EditorGUI.IntField(rect, value.AsInt);
            break;

        case DsgVarInfoEntry.DsgVarType.UInt:
            stringVal = EditorGUI.TextField(rect, value.AsUInt.ToString());
            if (UInt32.TryParse(stringVal, out uint r_uint))
            {
                value.AsUInt = r_uint;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Caps:
            stringVal = EditorGUI.TextField(rect, value.AsCaps.ToString());
            if (UInt32.TryParse(stringVal, out uint r_caps))
            {
                value.AsCaps = r_caps;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Short:
            stringVal = EditorGUI.TextField(rect, value.AsShort.ToString());
            if (Int16.TryParse(stringVal, out short r_short))
            {
                value.AsShort = r_short;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.UShort:
            stringVal = EditorGUI.TextField(rect, value.AsUShort.ToString());
            if (UInt16.TryParse(stringVal, out ushort r_ushort))
            {
                value.AsUShort = r_ushort;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Byte:
            stringVal = EditorGUI.TextField(rect, value.AsByte.ToString());
            if (SByte.TryParse(stringVal, out sbyte r_sbyte))
            {
                value.AsByte = r_sbyte;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.UByte:
            stringVal = EditorGUI.TextField(rect, value.AsUByte.ToString());
            if (Byte.TryParse(stringVal, out byte r_byte))
            {
                value.AsUByte = r_byte;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Float:
            value.AsFloat = EditorGUI.FloatField(rect, value.AsFloat);
            break;

        case DsgVarInfoEntry.DsgVarType.Text:
            int?newTextID = DrawText(rect, value.AsText);
            if (newTextID.HasValue)
            {
                value.AsText = newTextID.Value;
            }
            //GUILayout.Label(MapLoader.Loader.localization.GetTextForHandleAndLanguageID((int)value.AsUInt, 0));
            break;

        case DsgVarInfoEntry.DsgVarType.Vector:
            value.AsVector = EditorGUI.Vector3Field(rect, "", value.AsVector);
            break;

        case DsgVarInfoEntry.DsgVarType.Perso:
            if (MapLoader.Loader is OpenSpace.Loader.R2ROMLoader)
            {
                ROMPersoBehaviour currentPersoBehaviour  = value.AsPersoROM != null ? value.AsPersoROM : null;
                ROMPersoBehaviour selectedPersoBehaviour = ((ROMPersoBehaviour)EditorGUI.ObjectField(rect, currentPersoBehaviour, typeof(ROMPersoBehaviour), true));

                if (selectedPersoBehaviour != null && selectedPersoBehaviour.gameObject != null)
                {
                    value.AsPersoROM = selectedPersoBehaviour;
                }
            }
            else
            {
                PersoBehaviour currentPersoBehaviour  = value.AsPerso != null ? value.AsPerso : null;
                PersoBehaviour selectedPersoBehaviour = ((PersoBehaviour)EditorGUI.ObjectField(rect, currentPersoBehaviour, typeof(PersoBehaviour), true));

                if (selectedPersoBehaviour != null && selectedPersoBehaviour.gameObject != null)
                {
                    value.AsPerso = selectedPersoBehaviour;
                }
            }
            break;

        case DsgVarInfoEntry.DsgVarType.SuperObject:
            SuperObjectComponent currentGao  = value.AsSuperObject != null ? value.AsSuperObject : null;
            SuperObjectComponent selectedGao = ((SuperObjectComponent)EditorGUI.ObjectField(rect, currentGao, typeof(SuperObjectComponent), true));

            if (selectedGao != null && selectedGao.gameObject != null)
            {
                value.AsSuperObject = selectedGao;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.WayPoint:
            WayPointBehaviour currentWaypointGao  = value.AsWayPoint != null ? value.AsWayPoint : null;
            WayPointBehaviour selectedWaypointGao = ((WayPointBehaviour)EditorGUI.ObjectField(rect, currentWaypointGao, typeof(WayPointBehaviour), true));

            if (selectedWaypointGao != null && selectedWaypointGao.gameObject != null)
            {
                value.AsWayPoint = selectedWaypointGao;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Graph:
            GraphBehaviour currentGraphGao  = value.AsGraph != null ? value.AsGraph : null;
            GraphBehaviour selectedGraphGao = ((GraphBehaviour)EditorGUI.ObjectField(rect, currentGraphGao, typeof(GraphBehaviour), true));

            if (selectedGraphGao != null && selectedGraphGao.gameObject != null)
            {
                value.AsGraph = selectedGraphGao;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.ActionArray:
        case DsgVarInfoEntry.DsgVarType.FloatArray:
        case DsgVarInfoEntry.DsgVarType.Array11:
        case DsgVarInfoEntry.DsgVarType.GraphArray:
        case DsgVarInfoEntry.DsgVarType.Array9:
        case DsgVarInfoEntry.DsgVarType.IntegerArray:
        case DsgVarInfoEntry.DsgVarType.PersoArray:
        case DsgVarInfoEntry.DsgVarType.SoundEventArray:
        case DsgVarInfoEntry.DsgVarType.SuperObjectArray:
        case DsgVarInfoEntry.DsgVarType.TextArray:
        case DsgVarInfoEntry.DsgVarType.TextRefArray:
        case DsgVarInfoEntry.DsgVarType.VectorArray:
        case DsgVarInfoEntry.DsgVarType.WayPointArray:
            if (value.AsArray != null)
            {
                if (arrayIndex.HasValue)
                {
                    if (value.AsArray[arrayIndex.Value] != null)
                    {
                        DrawDsgVarValue(rect, dsgVarEntry, value.AsArray[arrayIndex.Value], arrayIndex);
                    }
                }
                else
                {
                    EditorGUI.LabelField(rect, "Length: " + value.AsArray.Length);
                }
            }
            break;
        }
    }
Пример #5
0
    private JSONObject GetDsgVarJSON(Perso perso, DsgVarComponent.DsgVarEditableEntry dsg)
    {
        JSONObject dsgObj = new JSONObject();

        dsgObj["name"] = dsg.entry.NiceVariableName;
        dsgObj["type"] = dsg.entry.type.ToString();
        switch (dsg.entry.type)
        {
        case DsgVarInfoEntry.DsgVarType.Boolean: dsgObj["value"] = dsg.valueAsBool; break;

        case DsgVarInfoEntry.DsgVarType.Int: dsgObj["value"] = dsg.valueAsInt; break;

        case DsgVarInfoEntry.DsgVarType.UInt: dsgObj["value"] = dsg.valueAsUInt; break;

        case DsgVarInfoEntry.DsgVarType.Short: dsgObj["value"] = dsg.valueAsShort; break;

        case DsgVarInfoEntry.DsgVarType.UShort: dsgObj["value"] = dsg.valueAsUShort; break;

        case DsgVarInfoEntry.DsgVarType.Byte: dsgObj["value"] = dsg.valueAsByte; break;

        case DsgVarInfoEntry.DsgVarType.UByte: dsgObj["value"] = dsg.valueAsByte; break;

        case DsgVarInfoEntry.DsgVarType.Float: dsgObj["value"] = dsg.valueAsFloat; break;

        case DsgVarInfoEntry.DsgVarType.Text: dsgObj["value"] = dsg.valueAsString; break;

        case DsgVarInfoEntry.DsgVarType.Vector: dsgObj["value"] = dsg.valueAsVector; break;

        case DsgVarInfoEntry.DsgVarType.Perso:
            if (dsg.entry.value != null)
            {
                SuperObject so = SuperObject.FromOffset(dsg.entry.value as Pointer);
                if (so != null && so.type == SuperObject.Type.Perso && so.data != null)
                {
                    Perso p = so.data as Perso;
                    if (p != null)
                    {
                        JSONObject persoJSON = new JSONObject();
                        persoJSON["offset"]       = p.offset.ToString();
                        persoJSON["nameFamily"]   = p.nameFamily;
                        persoJSON["nameModel"]    = p.nameModel;
                        persoJSON["nameInstance"] = p.namePerso;
                        dsgObj["value"]           = persoJSON;
                    }
                }
            }
            break;

        case DsgVarInfoEntry.DsgVarType.SuperObject:
            SuperObject spo = SuperObject.FromOffset(dsg.entry.value as Pointer);
            if (spo != null)
            {
                JSONObject soJSON = new JSONObject();
                soJSON["offset"] = spo.offset.ToString();
                soJSON["type"]   = spo.type.ToString();
                soJSON["offset"] = spo.offset.ToString();
                if (spo.type == SuperObject.Type.Perso && spo.data != null)
                {
                    Perso p = spo.data as Perso;
                    if (p != null)
                    {
                        JSONObject persoJSON = new JSONObject();
                        persoJSON["offset"]       = p.offset.ToString();
                        persoJSON["nameFamily"]   = p.nameFamily;
                        persoJSON["nameModel"]    = p.nameModel;
                        persoJSON["nameInstance"] = p.namePerso;
                        soJSON["perso"]           = persoJSON;
                    }
                }
                dsgObj["value"] = soJSON;
            }
            break;
        }
        return(dsgObj);
    }
Пример #6
0
    public void DrawDsgVarEntry(DsgVarComponent.DsgVarEditableEntry dsgVarEntry)
    {
        GUILayout.Label(dsgVarEntry.entry.type + "_" + dsgVarEntry.number);
        string stringVal = "";

        switch (dsgVarEntry.entry.type)
        {
        case DsgVarInfoEntry.DsgVarType.Boolean: dsgVarEntry.valueAsBool = EditorGUILayout.Toggle(dsgVarEntry.valueAsBool); break;

        case DsgVarInfoEntry.DsgVarType.Int: stringVal = GUILayout.TextField(dsgVarEntry.valueAsInt.ToString()); Int32.TryParse(stringVal, out dsgVarEntry.valueAsInt); break;

        case DsgVarInfoEntry.DsgVarType.UInt: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt); break;

        case DsgVarInfoEntry.DsgVarType.Caps: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt); break;

        case DsgVarInfoEntry.DsgVarType.Short: stringVal = GUILayout.TextField(dsgVarEntry.valueAsShort.ToString()); Int16.TryParse(stringVal, out dsgVarEntry.valueAsShort); break;

        case DsgVarInfoEntry.DsgVarType.UShort: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUShort.ToString()); UInt16.TryParse(stringVal, out dsgVarEntry.valueAsUShort); break;

        case DsgVarInfoEntry.DsgVarType.Byte: stringVal = GUILayout.TextField(dsgVarEntry.valueAsSByte.ToString()); SByte.TryParse(stringVal, out dsgVarEntry.valueAsSByte); break;

        case DsgVarInfoEntry.DsgVarType.UByte: stringVal = GUILayout.TextField(dsgVarEntry.valueAsByte.ToString()); Byte.TryParse(stringVal, out dsgVarEntry.valueAsByte); break;

        case DsgVarInfoEntry.DsgVarType.Float: stringVal = GUILayout.TextField(dsgVarEntry.valueAsFloat.ToString()); Single.TryParse(stringVal, out dsgVarEntry.valueAsFloat); break;

        case DsgVarInfoEntry.DsgVarType.Text:
            stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt);
            GUILayout.Label(MapLoader.Loader.localization.GetTextForHandleAndLanguageID((int)dsgVarEntry.valueAsUInt, 0)); break;

        case DsgVarInfoEntry.DsgVarType.Vector:
            float val_x = dsgVarEntry.valueAsVector.x;
            float val_y = dsgVarEntry.valueAsVector.y;
            float val_z = dsgVarEntry.valueAsVector.z;
            stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector.x.ToString()); Single.TryParse(stringVal, out val_x);
            stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector.y.ToString()); Single.TryParse(stringVal, out val_y);
            stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector.z.ToString()); Single.TryParse(stringVal, out val_z);
            dsgVarEntry.valueAsVector = new Vector3(val_x, val_y, val_z);
            break;

        case DsgVarInfoEntry.DsgVarType.Perso:
            PersoBehaviour currentPersoBehaviour = dsgVarEntry.valueAsPersoGao != null?dsgVarEntry.valueAsPersoGao.GetComponent <PersoBehaviour>() : null;

            PersoBehaviour selectedPersoBehaviour = ((PersoBehaviour)EditorGUILayout.ObjectField(currentPersoBehaviour, typeof(PersoBehaviour), true));

            if (selectedPersoBehaviour != null && selectedPersoBehaviour.gameObject != null)
            {
                dsgVarEntry.valueAsPersoGao = selectedPersoBehaviour.gameObject;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.SuperObject:
            GameObject currentGao  = dsgVarEntry.valueAsSuperObjectGao != null ? dsgVarEntry.valueAsSuperObjectGao : null;
            GameObject selectedGao = ((GameObject)EditorGUILayout.ObjectField(currentGao, typeof(GameObject), true));

            if (selectedGao != null)
            {
                dsgVarEntry.valueAsSuperObjectGao = selectedGao;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.Waypoint:
            GameObject currentWaypointGao  = dsgVarEntry.valueAsWaypointGao != null ? dsgVarEntry.valueAsWaypointGao : null;
            GameObject selectedWaypointGao = ((GameObject)EditorGUILayout.ObjectField(currentWaypointGao, typeof(GameObject), true));

            if (selectedWaypointGao != null)
            {
                dsgVarEntry.valueAsWaypointGao = selectedWaypointGao;
            }
            break;

        case DsgVarInfoEntry.DsgVarType.TextArray:
            if (dsgVarEntry.entry.value.GetType().IsArray)
            {
                object[] array = (object[])dsgVarEntry.entry.value;

                GUILayout.BeginVertical();
                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != null)
                    {
                        GUILayout.TextField(array[i].ToString());
                        GUILayout.Label(MapLoader.Loader.localization.GetTextForHandleAndLanguageID((int)(uint)array[i], 0));
                    }
                }
                GUILayout.EndVertical();
            }
            break;

        case DsgVarInfoEntry.DsgVarType.ActionArray:
        case DsgVarInfoEntry.DsgVarType.FloatArray:
        case DsgVarInfoEntry.DsgVarType.IntegerArray:
        case DsgVarInfoEntry.DsgVarType.PersoArray:
        case DsgVarInfoEntry.DsgVarType.SoundEventArray:
        case DsgVarInfoEntry.DsgVarType.SuperObjectArray:
        case DsgVarInfoEntry.DsgVarType.TextRefArray:
        case DsgVarInfoEntry.DsgVarType.VectorArray:
        case DsgVarInfoEntry.DsgVarType.WayPointArray:

            if (dsgVarEntry.entry.value.GetType().IsArray)
            {
                object[] array = (object[])dsgVarEntry.entry.value;

                GUILayout.BeginVertical();
                for (int i = 0; i < array.Length; i++)
                {
                    if (array[i] != null)
                    {
                        GUILayout.TextField(array[i].ToString());
                    }
                }
                GUILayout.EndVertical();
            }


            break;
        }

        if (dsgVarEntry.entry.initialValue != null)
        {
            GUILayout.Space(20);

            switch (dsgVarEntry.entry.type)
            {
            case DsgVarInfoEntry.DsgVarType.Boolean: dsgVarEntry.valueAsBool_initial = EditorGUILayout.Toggle(dsgVarEntry.valueAsBool_initial); break;

            case DsgVarInfoEntry.DsgVarType.Int: stringVal = GUILayout.TextField(dsgVarEntry.valueAsInt_initial.ToString()); Int32.TryParse(stringVal, out dsgVarEntry.valueAsInt_initial); break;

            case DsgVarInfoEntry.DsgVarType.UInt: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt_initial.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt_initial); break;

            case DsgVarInfoEntry.DsgVarType.Caps: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt_initial.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt_initial); break;

            case DsgVarInfoEntry.DsgVarType.Short: stringVal = GUILayout.TextField(dsgVarEntry.valueAsShort_initial.ToString()); Int16.TryParse(stringVal, out dsgVarEntry.valueAsShort_initial); break;

            case DsgVarInfoEntry.DsgVarType.UShort: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUShort_initial.ToString()); UInt16.TryParse(stringVal, out dsgVarEntry.valueAsUShort_initial); break;

            case DsgVarInfoEntry.DsgVarType.Byte: stringVal = GUILayout.TextField(dsgVarEntry.valueAsSByte_initial.ToString()); SByte.TryParse(stringVal, out dsgVarEntry.valueAsSByte_initial); break;

            case DsgVarInfoEntry.DsgVarType.UByte: stringVal = GUILayout.TextField(dsgVarEntry.valueAsByte_initial.ToString()); Byte.TryParse(stringVal, out dsgVarEntry.valueAsByte_initial); break;

            case DsgVarInfoEntry.DsgVarType.Float: stringVal = GUILayout.TextField(dsgVarEntry.valueAsFloat_initial.ToString()); Single.TryParse(stringVal, out dsgVarEntry.valueAsFloat_initial); break;

            case DsgVarInfoEntry.DsgVarType.Text: stringVal = GUILayout.TextField(dsgVarEntry.valueAsUInt_initial.ToString()); UInt32.TryParse(stringVal, out dsgVarEntry.valueAsUInt); break;

            case DsgVarInfoEntry.DsgVarType.Vector:
                float val_x = dsgVarEntry.valueAsVector_initial.x;
                float val_y = dsgVarEntry.valueAsVector_initial.y;
                float val_z = dsgVarEntry.valueAsVector_initial.z;
                stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector_initial.x.ToString()); Single.TryParse(stringVal, out val_x);
                stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector_initial.y.ToString()); Single.TryParse(stringVal, out val_y);
                stringVal = GUILayout.TextField(dsgVarEntry.valueAsVector_initial.z.ToString()); Single.TryParse(stringVal, out val_z);
                dsgVarEntry.valueAsVector_initial = new Vector3(val_x, val_y, val_z);
                break;

            case DsgVarInfoEntry.DsgVarType.Perso:
                PersoBehaviour currentPersoBehaviour = dsgVarEntry.valueAsPersoGao_initial != null?dsgVarEntry.valueAsPersoGao_initial.GetComponent <PersoBehaviour>() : null;

                PersoBehaviour selectedPersoBehaviour = ((PersoBehaviour)EditorGUILayout.ObjectField(currentPersoBehaviour, typeof(PersoBehaviour), true));

                if (selectedPersoBehaviour != null && selectedPersoBehaviour.gameObject != null)
                {
                    dsgVarEntry.valueAsPersoGao_initial = selectedPersoBehaviour.gameObject;
                }
                break;

            case DsgVarInfoEntry.DsgVarType.Waypoint:
                GameObject currentWaypointGao  = dsgVarEntry.valueAsWaypointGao_initial != null ? dsgVarEntry.valueAsWaypointGao_initial : null;
                GameObject selectedWaypointGao = ((GameObject)EditorGUILayout.ObjectField(currentWaypointGao, typeof(GameObject), true));

                if (selectedWaypointGao != null)
                {
                    dsgVarEntry.valueAsWaypointGao_initial = selectedWaypointGao;
                }
                break;

            case DsgVarInfoEntry.DsgVarType.SuperObject:
                GameObject currentGao  = dsgVarEntry.valueAsSuperObjectGao_initial != null ? dsgVarEntry.valueAsSuperObjectGao_initial : null;
                GameObject selectedGao = ((GameObject)EditorGUILayout.ObjectField(currentGao, typeof(GameObject), true));

                if (selectedGao != null)
                {
                    dsgVarEntry.valueAsSuperObjectGao_initial = selectedGao;
                }
                break;
            }
        }
        else
        {
            GUILayout.FlexibleSpace();
        }
    }
Пример #7
0
    // Update is called once per frame
    void Update()
    {
        if (raymanGAO == null)
        {
            GameObject[] gameObjects = FindObjectsOfType(typeof(GameObject)) as GameObject[];

            foreach (GameObject gao in gameObjects)
            {
                if (gao.name.Contains("YLT_RaymanModel"))
                {
                    raymanGAO = gao;
                    break;
                }
            }
        }
        else
        {
            DsgVarComponent dsgVarComponent = raymanGAO.GetComponent <DsgVarComponent>();
            if (dsgVarComponent != null)
            {
                DsgVarComponent.DsgVarEditableEntry vector38Entry = null;
                DsgVarComponent.DsgVarEditableEntry vector40Entry = null;

                if (Settings.s.game == Settings.Game.R2)
                {
                    vector38Entry = dsgVarComponent.editableEntries[38];
                    vector40Entry = dsgVarComponent.editableEntries[40];
                }
                else if (Settings.s.game == Settings.Game.R3)
                {
                    return;

                    /*vector38Entry = dsgVarComponent.dsgVarEntries[38];
                    *  vector40Entry = dsgVarComponent.dsgVarEntries[40];*/
                }

                Vector3 vector38_xzy = (Vector3)vector38Entry.valueCurrent.AsVector;
                Vector3 vector40_xzy = (Vector3)vector40Entry.valueCurrent.AsVector;

                Vector3 vector38 = new Vector3(vector38_xzy.x, vector38_xzy.z, vector38_xzy.y);
                Vector3 vector40 = new Vector3(vector40_xzy.x, vector40_xzy.z, vector40_xzy.y);

                Vector3 raymanVec = raymanGAO.transform.position;
                Vector3 dir       = (vector40) - (raymanVec);
                Vector3 dirFlat   = new Vector3(dir.x, 0, dir.z);

                for (float i = -0.05f; i <= 0.05f; i += 0.02f)
                {
                    for (float j = -0.05f; j <= 0.05f; j += 0.02f)
                    {
                        Vector3 o = new Vector3(i, 0, j);

                        Debug.DrawRay(vector38 + o, new Vector3(0, -0.9f, 0), Color.red);
                        Debug.DrawRay(vector38 + o, new Vector3(-1f, 0, 0), Color.red);
                        Debug.DrawRay(vector38 + o, new Vector3(1f, 0, 0), Color.red);
                        Debug.DrawRay(vector38 + o, new Vector3(0f, 0, -1f), Color.red);
                        Debug.DrawRay(vector38 + o, new Vector3(0f, 0, 1f), Color.red);

                        Debug.DrawRay(vector40 + o, new Vector3(0, -0.9f, 0), Color.blue);
                        Debug.DrawRay(vector40 + o, new Vector3(-1f, 0, 0), Color.blue);
                        Debug.DrawRay(vector40 + o, new Vector3(1f, 0, 0), Color.blue);
                        Debug.DrawRay(vector40 + o, new Vector3(0f, 0, -1f), Color.blue);
                        Debug.DrawRay(vector40 + o, new Vector3(0f, 0, 1f), Color.blue);


                        Debug.DrawRay(raymanVec + o, dir, Color.blue);
                        Debug.DrawRay(raymanVec + o, dirFlat, Color.blue);
                    }
                }
            }
        }

        //Debug.draw
    }
Пример #8
0
        public static string DsgVarEntryToCSharpAssignment(DsgVarInfoEntry dsgVarEntry)
        {
            DsgVarComponent.DsgVarEditableEntry editableEntry = new DsgVarComponent.DsgVarEditableEntry((int)dsgVarEntry.number, dsgVarEntry);

            string text     = "";
            string typeText = "";

            switch (dsgVarEntry.type)
            {
            case DsgVarInfoEntry.DsgVarType.None:
                break;

            case DsgVarInfoEntry.DsgVarType.Boolean:
                typeText = "DsgVarBool"; break;

            case DsgVarInfoEntry.DsgVarType.Byte:
                typeText = "DsgVarByte"; break;

            case DsgVarInfoEntry.DsgVarType.UByte:
                typeText = "DsgVarUByte"; break;

            case DsgVarInfoEntry.DsgVarType.Short:
                typeText = "DsgVarShort"; break;

            case DsgVarInfoEntry.DsgVarType.UShort:
                typeText = "DsgVarUShort"; break;

            case DsgVarInfoEntry.DsgVarType.Int:
                typeText = "DsgVarInt"; break;

            case DsgVarInfoEntry.DsgVarType.UInt:
                typeText = "DsgVarUInt"; break;

            case DsgVarInfoEntry.DsgVarType.Float:
                typeText = "DsgVarFloat"; break;

            case DsgVarInfoEntry.DsgVarType.Vector:
                typeText = "Vector3"; break;

            case DsgVarInfoEntry.DsgVarType.List:
                typeText = "DsgVarList"; break;

            case DsgVarInfoEntry.DsgVarType.Comport:
                typeText = "Comport"; break;

            case DsgVarInfoEntry.DsgVarType.Action:
                typeText = "Action"; break;

            case DsgVarInfoEntry.DsgVarType.Caps:
                typeText = "Caps"; break;

            case DsgVarInfoEntry.DsgVarType.Input:
                typeText = "Input"; break;

            case DsgVarInfoEntry.DsgVarType.SoundEvent:
                typeText = "SoundEvent"; break;

            case DsgVarInfoEntry.DsgVarType.Light:
                typeText = "Light"; break;

            case DsgVarInfoEntry.DsgVarType.GameMaterial:
                typeText = "GameMaterial"; break;

            case DsgVarInfoEntry.DsgVarType.VisualMaterial:
                typeText = "VisualMaterial"; break;

            case DsgVarInfoEntry.DsgVarType.Perso:
                typeText = "Perso"; break;

            case DsgVarInfoEntry.DsgVarType.Waypoint:
                typeText = "WayPoint"; break;

            case DsgVarInfoEntry.DsgVarType.Graph:
                typeText = "Graph"; break;

            case DsgVarInfoEntry.DsgVarType.Text:
                typeText = "DsgVarString"; break;

            case DsgVarInfoEntry.DsgVarType.SuperObject:
                typeText = "SuperObject"; break;

            case DsgVarInfoEntry.DsgVarType.SOLinks:
                typeText = "SOLinks"; break;

            case DsgVarInfoEntry.DsgVarType.PersoArray:
                typeText = "List<Perso>"; break;

            case DsgVarInfoEntry.DsgVarType.VectorArray:
                typeText = "List<Vector3>"; break;

            case DsgVarInfoEntry.DsgVarType.FloatArray:
                typeText = "List<DsgVarFloat>"; break;

            case DsgVarInfoEntry.DsgVarType.IntegerArray:
                typeText = "List<DsgVarInt>"; break;

            case DsgVarInfoEntry.DsgVarType.WayPointArray:
                typeText = "List<WayPoint>"; break;

            case DsgVarInfoEntry.DsgVarType.TextArray:     // These are text references
                typeText = "List<DsgVarTextRef>"; break;

            case DsgVarInfoEntry.DsgVarType.TextRefArray:     // Don't know what these are then?
                typeText = "List<DsgVarTextRef2>"; break;

            case DsgVarInfoEntry.DsgVarType.Array6:
                typeText = "List<Unknown_6>"; break;

            case DsgVarInfoEntry.DsgVarType.Array9:
                typeText = "List<Unknown_7>"; break;

            case DsgVarInfoEntry.DsgVarType.SoundEventArray:
                typeText = "List<DsgVarSoundEvent>"; break;

            case DsgVarInfoEntry.DsgVarType.Array11:
                typeText = "List<Unknown_11>"; break;

            case DsgVarInfoEntry.DsgVarType.Way:
                typeText = "Way"; break;

            case DsgVarInfoEntry.DsgVarType.ActionArray:
                typeText = "List<Action>"; break;

            case DsgVarInfoEntry.DsgVarType.SuperObjectArray:
                typeText = "List<SuperObject>"; break;
            }

            text += typeText + " " + "dsgVar_" + dsgVarEntry.number;

            if (dsgVarEntry.initialValue != null)
            {
                text += " = ";

                string stringVal = "";

                switch (dsgVarEntry.type)
                {
                case DsgVarInfoEntry.DsgVarType.Boolean: stringVal = editableEntry.valueAsBool_initial.ToString().ToLower(); break;

                case DsgVarInfoEntry.DsgVarType.Int: stringVal = (editableEntry.valueAsInt_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.UInt: stringVal = (editableEntry.valueAsUInt_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.Short: stringVal = (editableEntry.valueAsShort_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.UShort: stringVal = (editableEntry.valueAsUShort_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.Byte: stringVal = (editableEntry.valueAsSByte_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.UByte: stringVal = (editableEntry.valueAsByte_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.Float: stringVal = (editableEntry.valueAsFloat_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.Text: stringVal = (editableEntry.valueAsString_initial.ToString()); break;

                case DsgVarInfoEntry.DsgVarType.Vector:
                    float val_x = editableEntry.valueAsVector_initial.x;
                    float val_y = editableEntry.valueAsVector_initial.y;
                    float val_z = editableEntry.valueAsVector_initial.z;

                    stringVal = "new Vector3(" + val_x + ", " + val_y + ", " + val_z + ")";
                    break;

                case DsgVarInfoEntry.DsgVarType.Perso:
                    PersoBehaviour currentPersoBehaviour = editableEntry.valueAsPersoGao_initial != null?editableEntry.valueAsPersoGao_initial.GetComponent <PersoBehaviour>() : null;

                    if (currentPersoBehaviour != null)
                    {
                        stringVal += "Perso.GetByName(" + currentPersoBehaviour.perso.namePerso + ")";
                    }
                    else
                    {
                        stringVal += "null";
                    }

                    break;

                case DsgVarInfoEntry.DsgVarType.SuperObject:
                    GameObject currentGao = editableEntry.valueAsSuperObjectGao_initial != null ? editableEntry.valueAsSuperObjectGao_initial : null;

                    if (currentGao != null)
                    {
                        stringVal += "GameObject.GetByName(" + currentGao.name + ")";
                    }
                    else
                    {
                        stringVal += "null";
                    }
                    break;
                }

                text += stringVal;
            }

            text += ";";

            return(text);
        }