void SpawnItem(EnvironmentItem item)
    {
        Vector3    localPosition = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)) * TileMap.TIlE_SIZE * 0.5f * spawnableDistFromCenter;
        Quaternion rotation;

        if (item.rotateZOnly)
        {
            rotation = Quaternion.Euler(Vector3.up * Random.Range(0f, 360f));
        }
        else
        {
            rotation = Random.rotation;
        }
        Vector3 localScale = Vector3.one * Random.Range(item.minScale, item.maxScale);

        Transform newItem = Instantiate(item.prefab, transform);

        newItem.localPosition = localPosition;
        newItem.rotation      = rotation;
        newItem.localScale    = localScale;

        if (item.applyWind)
        {
            //Armature->Root->Wind
            Transform windBone = newItem.GetChild(0).GetChild(0).GetChild(0);
            Wind.Instance.RegisterBone(windBone);
        }
    }
 public EnvironmentConfig()
 {
     InternalEnvironment = new EnvironmentItem()
     {
         Environment = RunEnv.InternalEnv,
     };
     ExternalEnvironment = new EnvironmentItem()
     {
         Environment = RunEnv.ExternalEnv,
     };
 }
Example #3
0
    public void AssignBuilding(string buildingName)
    {
        if (buildings.ContainsKey(buildingName))
        {
            if (!uiController.isGridVisible)
            {
                uiController.ToggleGridVisibility();
            }

            selectedBuilding = buildings[buildingName];
        }
    }
Example #4
0
        void EditButtonClicked(object sender, EventArgs e)
        {
            if (listView.SelectedItems.Count != 1)
            {
                return;
            }

            EnvironmentItem item = (EnvironmentItem)listView.SelectedItems[0];

            using (EditHighlightingColorDialog dlg = new EditHighlightingColorDialog(item.Color)) {
                if (dlg.ShowDialog(this) == DialogResult.OK)
                {
                    item.Color = dlg.Color;
                    item.ColorUpdate();
                }
            }
        }
Example #5
0
    public void AddBuildingOnMap(Cube cube)
    {
        if (selectedBuilding)
        {
            if (cube.isPlaceable && uiController.isGridVisible)
            {
                InstantiateBuilding(cube);

                selectedBuilding = null;
                cube.isPlaceable = false;
                uiController.ToggleGridVisibility();
            }
            else
            {
                print("Can't place here, cube is not placeable or grid is not visible.");
            }
        }
    }
Example #6
0
        private void OnSelectCell(GridCellSelectSignal signal)
        {
            // Клик по ячейке разметочной сетки.
            if (_environmentItemType == EnvironmentItemType.None)
            {
                var item = _environmentModel.Items.SingleOrDefault(i => i.Position == signal.CellPosition);
                if (item != null)
                {
                    _environmentModel.Items.Remove(item);
                    Destroy(_environment.gameObject);
                    _environment = _container.InstantiateComponentOnNewGameObject <EnvironmentController>();
                }
            }
            else
            {
                var newItem = new EnvironmentItem
                {
                    Type     = _environmentItemType,
                    Position = signal.CellPosition
                };

                var oldItem = _environmentModel.Items.SingleOrDefault(i => i.Position == signal.CellPosition);
                if (oldItem != null)
                {
                    if (newItem.Equals(oldItem))
                    {
                        return;
                    }
                    _environmentModel.Items.Remove(oldItem);
                }

                _environmentModel.Items.Add(newItem);
                Destroy(_environment.gameObject);
                _environment = _container.InstantiateComponentOnNewGameObject <EnvironmentController>();
            }
        }