public void LoadParams(ScatterParams sp)
        {
            //Debug.Log("<color=green>LOADING</color> params for " + idName);

            string[] p = PlayerPrefs.GetString(idName + BASIC_PARAMS).Split('~');
            sp.scaleX  = float.Parse(p[0]);
            sp.scaleY  = float.Parse(p[1]);
            sp.offsetX = float.Parse(p[2]);
            sp.offsetY = float.Parse(p[3]);

            string[]   c  = PlayerPrefs.GetString(idName + CURVE_PARAMS).Split('¬');
            Keyframe[] ks = new Keyframe[c.Length];

            for (int i = 0; i < c.Length; i++)
            {
                string[] cp = c[i].Split('~');
                ks[i] = new Keyframe(float.Parse(cp[0]), float.Parse(cp[1]), float.Parse(cp[2]), float.Parse(cp[3]));
            }

            sp.curve      = new AnimationCurve();
            sp.curve.keys = ks;
            sp.noiseMap   = GenerateTexture(sp);

            this.sp = sp;
        }
Beispiel #2
0
        public void LoadItemsAndProperties()
        {
            itemsAreLoaded = true;

            TextAsset sectionJSON = Resources.Load("Json/Items/Cnidarians") as TextAsset;
            string    str         = string.Format("{{\"items\":{0}}}", sectionJSON.text);

            itemsJSON = JsonUtility.FromJson <ItemsJSON>(str);

            foreach (var item in itemsJSON.items)
            {
                Item it = new Item();
                it.isUsed          = true;
                it.name            = item.IdItem;
                it.genus           = item.Genus;
                it.specie          = item.Specie;
                it.stageSexVar     = item.StageSexVar;
                it.path            = GetPathFromTypeOfObject(item.TypeOf);
                it.commonSize      = CentimetersToMeters(item.CommonSize);
                it.maxSize         = CentimetersToMeters(item.MaxSize);
                it.canRotateInX    = StringToBool(item.CanRotateInX);
                it.canRotateInY    = StringToBool(item.CanRotateInY);
                it.canRotateInZ    = StringToBool(item.CanRotateInZ);
                it.isAlign         = StringToBool(item.IsAlign);
                it.heightOffset    = CentimetersToMeters(item.HeightOffset);
                it.useCustomParams = false;
                it.item            = Resources.Load <GameObject>(string.Format("{0}{1}", it.path, item.IdItem));
                ScatterParams sp = new ScatterParams();
                it.scatterParams        = sp;
                it.scatterParams.isOpen = false;
                items.Add(it);
            }
        }
        public void SaveParams(ScatterParams sp, Item item)
        {
            string itemParams = string.Format("{0}~{1}~{2}~{3}", sp.scaleX.ToString(), sp.scaleY.ToString(), sp.offsetX.ToString(), sp.offsetY.ToString());

            PlayerPrefs.SetString(item.name + BASIC_PARAMS, itemParams);

            string itemCurve = string.Empty;

            Keyframe[] key = sp.curve.keys;

            for (int i = 0; i < key.Length; i++)
            {
                itemCurve += string.Format("{0}~{1}~{2}~{3}¬", key[i].time, key[i].value, key[i].inTangent, key[i].outTangent);
            }

            itemCurve = itemCurve.Remove(itemCurve.Length - 1);
            PlayerPrefs.SetString(item.name + CURVE_PARAMS, itemCurve);

            item.scatterParams.noiseMap = GenerateTexture(sp);
            item.scatterParams          = sp;

            Debug.Log(itemParams);
            Debug.Log(itemCurve);
            Debug.Log("<color=yellow>SAVING</color> parameters for " + item.name);
        }
Beispiel #4
0
        public void Init(Item item, STParameters STParams)
        {
            this.item     = item;
            this.STParams = STParams;
            this.sp       = item.scatterParams;

            sp.isOpen = true;
        }
        private Color CalculateColor(ScatterParams sp, int x, int y)
        {
            float xCoord = (float)x / ScatterTool.SIZEMAP * sp.scaleX + sp.offsetX;
            float yCoord = (float)y / ScatterTool.SIZEMAP * sp.scaleY + sp.offsetY;

            float sample = Mathf.PerlinNoise(xCoord, yCoord);

            sample = sp.curve.Evaluate(sample);
            return(new Color(sample, sample, sample));
        }
        public ScatterParams ResetParams(ScatterParams sp)
        {
            sp.scaleX   = 10;
            sp.scaleY   = 10;
            sp.offsetX  = 0;
            sp.offsetY  = 0;
            sp.curve    = AnimationCurve.Linear(0, 1, 1, 0);
            sp.noiseMap = GenerateTexture(sp);

            return(sp);
        }
        public void CopyParams(ScatterParams sp, string name)
        {
            copyIsActive = true;

            copyParams.scaleX  = sp.scaleX;
            copyParams.scaleY  = sp.scaleY;
            copyParams.offsetX = sp.offsetX;
            copyParams.offsetY = sp.offsetY;
            copyParams.curve   = sp.curve;

            Debug.Log(string.Format("<color=blue>COPYING</color> properties from {0}", name));
        }
        public Texture2D GenerateTexture(ScatterParams sp)
        {
            Texture2D noiseMap = new Texture2D(ScatterTool.SIZEMAP, ScatterTool.SIZEMAP);

            for (int x = 0; x < ScatterTool.SIZEMAP; x++)
            {
                for (int y = 0; y < ScatterTool.SIZEMAP; y++)
                {
                    Color color = CalculateColor(sp, x, y);
                    noiseMap.SetPixel(x, y, color);
                }
            }

            noiseMap.Apply();
            return(noiseMap);
        }
        public ScatterParams PasteParams(ScatterParams sp)
        {
            if (!copyIsActive)
            {
                return(sp);
            }

            sp.scaleX   = copyParams.scaleX;
            sp.scaleY   = copyParams.scaleY;
            sp.offsetX  = copyParams.offsetX;
            sp.offsetY  = copyParams.offsetY;
            sp.curve    = copyParams.curve;
            sp.noiseMap = GenerateTexture(sp);

            return(sp);
        }
        public ScatterParams InitItemParameters(Item item)
        {
            this.idName = item.name;

            sp        = new ScatterParams();
            sp.isOpen = false;

            if (!PlayerPrefs.HasKey(idName + BASIC_PARAMS))
            {
                //Debug.Log(idName + " <color=red>NO EXIST!</color> Creating new parameters...");
                sp = ResetParams(sp);
                SaveParams(sp, item);
            }
            else
            {
                LoadParams(sp);
            }

            return(sp);
        }
Beispiel #11
0
 private void Paste()
 {
     sp = STParams.PasteParams(sp);
     editorHasChanged = true;
 }
Beispiel #12
0
 private void ResetP()
 {
     sp = STParams.ResetParams(sp);
     editorHasChanged = true;
 }