Beispiel #1
0
 public void SetDeforestation(bool toCut)
 {
     _deforested = toCut;
     foreach (KeyValuePair <Props, string> p in _props)
     {
         if (p.Key.GetType() == typeof(PoolTree))
         {
             PoolTree pt = (PoolTree)p.Key;
             pt.SetDeforestation(toCut);
         }
     }
 }
        void CheckForestAMB()
        {
            StudioEventEmitter emitter = GetEmitter(AMB_FOREST_STRING);

            int forestNumber        = 0;
            int deforestationNumber = 0;

            Player p = PlayerManager.Instance.player;

            if (p)
            {
                foreach (KeyValuePair <Props, string> item in p.AssociateCell.Props)
                {
                    if (item.Key.GetType() == typeof(PoolTree))
                    {
                        PoolTree lForest = item.Key as PoolTree;
                        if (lForest.cutModel)
                        {
                            if (lForest.opositeAsset.activeSelf)
                            {
                                forestNumber++;
                            }
                            else
                            {
                                deforestationNumber++;
                            }
                        }
                        else
                        {
                            if (lForest.opositeAsset.activeSelf)
                            {
                                deforestationNumber++;
                            }
                            else
                            {
                                forestNumber++;
                            }
                        }
                    }
                }

                foreach (Cell c in p.AssociateCell.Neighbors)
                {
                    foreach (KeyValuePair <Props, string> item in c.Props)
                    {
                        if (item.Key.GetType() == typeof(PoolTree))
                        {
                            PoolTree lForest = item.Key as PoolTree;
                            if (lForest.cutModel)
                            {
                                if (lForest.opositeAsset.activeSelf)
                                {
                                    forestNumber++;
                                }
                                else
                                {
                                    deforestationNumber++;
                                }
                            }
                            else
                            {
                                if (lForest.opositeAsset.activeSelf)
                                {
                                    deforestationNumber++;
                                }
                                else
                                {
                                    forestNumber++;
                                }
                            }
                        }
                    }
                }
            }

            emitter.SetParameter(PARAM_FOREST_STRING, forestNumber > deforestationNumber ? POSITIVE_FOREST_VALUE : NEGATIVE_FOREST_VALUE);
            if (forestNumber + deforestationNumber > 1)
            {
                _inForest = true;
                PlayOnMoss(null);
            }
            else
            {
                _inForest = false;
                emitter.Stop();
            }
        }