private string Hash()
    {
        Checksum checksum = new Checksum();

        WorldSerialization.MapData map = this.GetMap("terrain");
        if (map != null)
        {
            for (int i = 0; i < (int)map.data.Length; i++)
            {
                checksum.Add(map.data[i]);
            }
        }
        List <WorldSerialization.PrefabData> prefabDatas = this.world.prefabs;

        if (prefabDatas != null)
        {
            for (int j = 0; j < prefabDatas.Count; j++)
            {
                WorldSerialization.PrefabData item = prefabDatas[j];
                checksum.Add(item.id);
                checksum.Add(item.position.x, 3);
                checksum.Add(item.position.y, 3);
                checksum.Add(item.position.z, 3);
                checksum.Add(item.scale.x, 3);
                checksum.Add(item.scale.y, 3);
                checksum.Add(item.scale.z, 3);
            }
        }
        return(checksum.MD5());
    }
Esempio n. 2
0
 public static void DisplayPrefabPath(WorldSerialization.PrefabData prefab)
 {
     Elements.BeginToolbarHorizontal();
     Elements.ToolbarLabel(ToolTips.prefabPath);
     Elements.ToolbarLabel(new GUIContent(AssetManager.ToPath(prefab.id), AssetManager.ToPath(prefab.id)));
     Elements.EndToolbarHorizontal();
 }
Esempio n. 3
0
 public static void DisplayPrefabID(WorldSerialization.PrefabData prefab)
 {
     Elements.BeginToolbarHorizontal();
     Elements.ToolbarLabel(ToolTips.prefabID);
     Elements.ToolbarLabel(new GUIContent(prefab.id.ToString(), prefab.id.ToString()));
     Elements.EndToolbarHorizontal();
 }
 public void AddPrefab(string category, uint id, Vector3 position, Quaternion rotation, Vector3 scale)
 {
     WorldSerialization.PrefabData prefabDatum = new WorldSerialization.PrefabData()
     {
         category = category,
         id       = id,
         position = position,
         rotation = rotation,
         scale    = scale
     };
     this.world.prefabs.Add(prefabDatum);
 }
Esempio n. 5
0
        public void SetItemSelected(int id)
        {
            var itemClicked = treeModel.Find(id);

            if (itemClicked.rustID == 0)
            {
                return;
            }

            previewImage = AssetManager.GetPreview(AssetManager.ToPath(itemClicked.rustID));
            prefabData   = PrefabManager.Load(itemClicked.rustID).GetComponent <PrefabDataHolder>().prefabData;
            prefabName   = itemClicked.prefabName;
        }
Esempio n. 6
0
        void SetItemSelected(int id)
        {
            var itemClicked = treeModel.Find(id);

            if (itemClicked.rustID == 0)
            {
                return;
            }

            PrefabManager.Load(itemClicked.rustID).SetActive(true);
            previewImage = AssetPreview.GetAssetPreview(PrefabManager.Load(itemClicked.rustID));
            if (previewImage == null)
            {
                previewImage = new Texture2D(60, 60);
            }

            prefabData = PrefabManager.Load(itemClicked.rustID).GetComponent <PrefabDataHolder>().prefabData;
            prefabName = itemClicked.prefabName;
        }
 private void Spawn(WorldSerialization.PrefabData prefab)
 {
     this.Spawn(prefab.category, prefab.id, (Vector3)prefab.position, (Quaternion)prefab.rotation, (Vector3)prefab.scale);
 }
Esempio n. 8
0
 private static void Spawn(WorldSerialization.PrefabData prefab)
 {
     World.Spawn((string)prefab.category, (uint)prefab.id, WorldSerialization.VectorData.op_Implicit((WorldSerialization.VectorData)prefab.position), WorldSerialization.VectorData.op_Implicit((WorldSerialization.VectorData)prefab.rotation), WorldSerialization.VectorData.op_Implicit((WorldSerialization.VectorData)prefab.scale));
 }
Esempio n. 9
0
    private IEnumerator SpawnPrefab(WorldSerialization.PrefabData prefabData, int i)
    {
        if (true)
        {
            //Debug.Log(prefabData.id + "-" + prefabData.category);
            FileSystem.Operation g2 = FileSystem.LoadAsync(StringPool.Get((prefabData.id)));

            /*yield return new WaitUntil(() => {
             *  return g2.isDone;
             * });*/
            while (!g2.isDone)
            {
                yield return(null);

                loading = true;
            }

            GameObject g3 = g2.Load <GameObject>();

            GameObject g = Instantiate(g3, prefabData.position, prefabData.rotation);
            g.transform.localScale = prefabData.scale;
            g.SetActive(true);
            g.layer = 9;
            string name = g.name;
            g.name = prefabData.id.ToString();
            g.AddComponent <EditableObject>();
            BoxCollider box = g.AddComponent <BoxCollider>();
            Bounds      b   = new Bounds(Vector3.zero, Vector3.zero);

            /*Renderer r2 = g.GetComponent<Renderer>();
             * if (r2 != null)
             * {
             *  b.Encapsulate(r2.bounds);
             * }*/
            Transform[] ts = g.GetComponentsInChildren <Transform>();
            foreach (Transform t in ts)
            {
                Renderer       r  = t.GetComponent <Renderer>();
                BoxCollider    bc = t.GetComponent <BoxCollider>();
                ParticleSystem p  = t.GetComponent <ParticleSystem>();
                t.gameObject.layer = 9;
                if (r != null)
                {
                    //box.bounds.Encapsulate(r.bounds);
                    //Vector3.Lerp(b.center, r.center, 0.2f);
                    //r.enabled = false;
                }
                if (bc != null)
                {
                    //b.Encapsulate(bc.bounds);
                    //Vector3.Lerp(b.center, bc.center, 0.2f);
                    bc.enabled = false;
                }
                if (p != null)
                {
                    var em = p.emission;
                    em.enabled = false;
                }
                //box.center = b.center - g.transform.position;
                //box.size = b.size;
            }
            box.enabled = true;
            g.AddComponent <PrefabData>().idInList        = i;
            g.GetComponent <PrefabData>().prefabName      = name;
            g.AddComponent <LineRenderer>().material      = Rainbow.material;
            g.GetComponent <LineRenderer>().useWorldSpace = false;
            Vector3[] poss = new Vector3[] { new Vector3(0, 1, 0), new Vector3(0, -1, 0) };
            g.GetComponent <LineRenderer>().SetPositions(poss);
            spawnedPrefabs.Add(g);
            loading = false;
        }
    }
Esempio n. 10
0
 private static void Spawn(WorldSerialization.PrefabData prefab)
 {
     World.Spawn(prefab.category, prefab.id, prefab.position, prefab.rotation, prefab.scale);
 }