示例#1
0
        public bool AddBuild(NWBuild _build)
        {
            if (_build != null)
            {
                if (builds.ContainsKey(_build.Id))
                {
                    Console.LogWarningFormat(ConsoleFilter.BuildController, "Added build Is Containce, id = {0}", _build.Id);
                    RemoveBuild(_build);
                }
                Build   build    = null;
                Vector3 position = new Vector3(_build.trasform.position.X, _build.trasform.position.Y, _build.trasform.position.Z);
                string  name     = (_build.Type == BuildType.Base ? "base_" : "factory_") + _build.Id;
                if (Util.InstancePrefabAndGetMBScript <Build>(buildPrefabs[_build.Type], name, null, position, out build))
                {
                    build.SetInfo(_build);
                    builds.Add(_build.Id, build);
                    Console.LogFormat(ConsoleFilter.BuildController, "New build added and Instance, id = {0}", _build.Id);
                }
                else
                {
                    Console.LogErrorFormat(ConsoleFilter.BuildController, "Can't instance build {0}", _build.Id);
                    return(false);
                }

                if (!Util.ArrayIsNullOrEmpty(_build.TurretPlatforms))
                {
                    List <TurretPlatform> turretPlatforms = new List <TurretPlatform>(_build.TurretPlatforms.Length);
                    int id = 0;
                    foreach (NWTurretPlatform sTurretPlatform in _build.TurretPlatforms)
                    {
                        TurretPlatform turretPlatform = null;
                        Vector3        turretPos      = new Vector3(sTurretPlatform.Position.X, sTurretPlatform.Position.Y, sTurretPlatform.Position.Z);
                        string         turretName     = string.Format("TurretPlatform_{0}_{1}", id, name);
                        if (Util.InstancePrefabAndGetMBScript <TurretPlatform>(turretPlatformPrefab, turretName, null, turretPos, out turretPlatform))
                        {
                            turretPlatform.SetIdTurret(id, sTurretPlatform.TurretId, sTurretPlatform.PlatformState);
                            turretPlatforms.Add(turretPlatform);
                            //build.SetInfo(_build);
                            //builds.Add(_build.Id, build);
                            Console.LogFormat(ConsoleFilter.BuildController, "New turret platform added and Instance, id = {0}", _build.Id);
                        }
                        else
                        {
                            Console.LogErrorFormat(ConsoleFilter.BuildController, "Can't instance turret platform {0}", _build.Id);
                            //return false;
                        }
                        ++id;
                    }
                    build.SetTurretPlatforms(turretPlatforms.ToArray());
                }
                return(true);
            }
            else
            {
                Console.LogError(ConsoleFilter.BuildController, "Added build Is Null");
            }
            return(false);
        }
示例#2
0
 public bool RemoveBuild(NWBuild _build)
 {
     if (_build != null)
     {
         RemoveBuild(_build.Id);
     }
     else
     {
         Console.LogError(ConsoleFilter.BuildController, "Removed build Is Null");
     }
     return(false);
 }
示例#3
0
        public bool UpdateBuild(NWBuild _build)
        {
            IBuild build = null;

            if (TryGetBuild(_build.Id, out build) && build != null)
            {
                build.UpdateInfo(_build);
                //build.transform.position = Util.ConvertRTSStructToVector3(serverBuild.trasform);

                return(true);
            }
            return(false);
        }
示例#4
0
 public void UpdateInfo(NWBuild _buildDescription)
 {
     Health     = _buildDescription.Health;
     BuildTasks = _buildDescription.BuildTasks;
     if (HealthBar != null && HealthBar.gameObject.activeSelf)
     {
         HealthBar.SetValue = Health;
     }
     if (FactoryValue != null)
     {
         FactoryValue.gameObject.SetActive(_buildDescription.IsProduceResource);
         //FactoryValue.SetValue = _buildDescription.ProduceResourceValue;
     }
 }
示例#5
0
        public void SetInfo(NWBuild _buildDescription)
        {
            Id = _buildDescription.Id;
            UpdateInfo(_buildDescription);

            isSelect = false;
            UI3dCanvasObj canvas = FindObjectOfType(typeof(UI3dCanvasObj)) as UI3dCanvasObj;

            if (canvas == null)
            {
                Console.LogError(ConsoleFilter.Build, "Plate Canvas is null");
                return;
            }

            if (canvas.ValueBar3dPrefab != null)
            {
                HealthBar = null;
                if (Util.InstancePrefabAndGetMBScript(canvas.ValueBar3dPrefab, "HealthBar_Build_" + Id, canvas.gameObject.transform, Vector3.zero, out HealthBar))
                {
                    HealthBar.trackTransform = transform;
                    HealthBar.offset         = new Vector3(0.0f, 5.0f, 0.0f);
                    HealthBar.gameObject.SetActive(false);
                }
            }
            else
            {
                Console.LogError(ConsoleFilter.Build, "ValueBar3d Prefab is null");
            }

            if (canvas.FactoryValuePrefab != null)
            {
                FactoryValue = null;
                Util.InstancePrefabAndGetMBScript(canvas.FactoryValuePrefab, "FactoryValue_Build_" + Id, canvas.gameObject.transform, Vector3.zero, out FactoryValue);
                {
                    FactoryValue.trackTransform = transform;
                    FactoryValue.offset         = new Vector3(0.0f, 10.0f, 0.0f);
                    FactoryValue.gameObject.SetActive(false);
                }
            }
            else
            {
                Console.LogError(ConsoleFilter.Build, "FactoryValue Prefab is null");
            }
        }