示例#1
0
    public void ToggleItem(int j)
    {
        for (int i = 0; i < 3; i++)
        {
            ItemsToggle[i].GetComponent <Image>().sprite = proriti[0];
        }

        if (EventSystem.current.currentSelectedGameObject.GetComponent <Toggle>().isOn)
        {
            IsProritet = true;

            if (j == 0)
            {
                ProritetTreeType = Tree.TreeType.Sticks;
            }
            else if (j == 1)
            {
                ProritetTreeType = Tree.TreeType.Leaves;
            }
            else if (j == 2)
            {
                ProritetTreeType = Tree.TreeType.Fruit;
            }

            ItemsToggle[j].GetComponent <Image>().sprite = proriti[1];
        }
    }
示例#2
0
        public static void TreeCreate(vec3 pos, int seed, Tree.TreeType type)
        {
            // at least 2m distance
            vec2 pos2D = new vec2(pos.x, pos.z);

            foreach (var tree in entitySave.trees)
            {
                if (vec2.distance(pos2D, new vec2(tree.x, tree.z)) < 4f)
                {
                    return;
                }
            }

            Random random = new Random(seed);

            entitySave.trees.Add(new EntitySave.TreeSave {
                x = pos.x, y = pos.y, z = pos.z, seed = seed, type = type
            });
            AddTree(pos, random, type);
        }
示例#3
0
        private static void AddTree(vec3 pos, Random random, Tree.TreeType type)
        {
            World world = Instance.world;

            vec3 up     = new vec3((float)random.NextDouble() * .05f - .025f, 1, (float)random.NextDouble() * .05f - .025f).Normalized;
            vec3 randXZ = ((float)random.NextDouble() * 2.0f - 1.0f) * vec3.UnitX + ((float)random.NextDouble() * 2.0f - 1.0f) * vec3.UnitZ;
            vec3 left   = vec3.cross(up, randXZ.Normalized).Normalized;
            vec3 front  = vec3.cross(left, up);

            // Scale the trees randomly
            left.x  *= 0.8f + 0.4f * (float)random.NextDouble();
            up.y    *= 0.7f + 0.6f * (float)random.NextDouble();
            front.z *= 0.8f + 0.4f * (float)random.NextDouble();

            mat4 transform1 = mat4.Translate(pos);
            mat4 transform2 = new mat4(left, up, front, vec3.Zero);

            //world.AddEntity(TreeGenerator.Birch(8 + (float)random.NextDouble() * 10f, .3f + (float)random.NextDouble() * .1f, random), transform);

            Tree t = null;

            switch (type)
            {
            case Tree.TreeType.Birch:
                t = TreeGenerator.OldTree(random, transform1, transform2, world);
                break;

            case Tree.TreeType.Cactus:
                t = TreeGenerator.Cactus(random, transform1, transform2, world);
                break;
            }

            t.Position = pos;
            world.AddEntity(t, transform1);
            trees.Add(t);
        }