コード例 #1
0
    public static UnitSource CreateEmptyUnit(string LocalPath, UnitSource ToReturn = null)
    {
        string[]   PathSplit = LocalPath.Split(("/").ToCharArray());
        GameObject NewUnit   = new GameObject(PathSplit[PathSplit.Length - 1].Replace(".bp", ""));

        if (ToReturn == null)
        {
            ToReturn = NewUnit.AddComponent <UnitSource>();

            // *** Parse Blueprint
            ToReturn.BP          = new UnitBluePrint();
            ToReturn.BP.Name     = PathSplit[PathSplit.Length - 1].Replace(".bp", "");
            ToReturn.BP.CodeName = ToReturn.BP.Name.Replace("_unit", "");
        }

        ToReturn.BP.TypeId = 0;

        ToReturn.BP.Size         = Vector3.one;
        ToReturn.BP.UniformScale = Vector3.one;
        ToReturn.BP.RenderScale  = Vector3.one;
        ToReturn.BP.Categories   = new string[0];
        ToReturn.BP.GenerateEmptyLod();


        ToReturn.RenderDistances = new float[] { ToReturn.BP.LODs[0].LODCutoff * 0.1f };
        ToReturn.ApplyLods();

        LoadedUnitObjects.Add(LocalPath, ToReturn);

        return(ToReturn);
    }
コード例 #2
0
        public bool AddOrUpdate(UnitSource unitSource)
        {
            bool isSaved = true;

            try
            {
                using (WTCCeresEntities db = new WTCCeresEntities())
                {
                    if (unitSource.UnitSourceId == 0)
                    {
                        db.UnitSource.Add(unitSource);
                    }
                    else
                    {
                        db.UnitSource.AddOrUpdate(unitSource);
                    }

                    db.SaveChanges();
                    us = unitSource;
                }
            }
            catch (Exception ex)
            {
                isSaved = false;
            }
            return(isSaved);
        }
コード例 #3
0
 public JsonNetResult Edit(UnitSourceViewModel vm)
 {
     if (ModelState.IsValid)
     {
         UnitSource us = this.sourceAttachmentTasks.GetUnitSource(vm.Id.Value);
         if (us != null)
         {
             if (vm.ReliabilityId.HasValue)
             {
                 us.Reliability = this.sourceTasks.GetReliability(vm.ReliabilityId.Value);
             }
             us.Commentary = vm.Commentary;
             us.Notes      = vm.Notes;
             us            = this.sourceAttachmentTasks.SaveUnitSource(us);
             return(JsonNet(string.Empty));
         }
         else
         {
             Response.StatusCode = (int)HttpStatusCode.NotFound;
             return(JsonNet("Unit source not found."));
         }
     }
     else
     {
         return(JsonNet(this.GetErrorsForJson()));
     }
 }
コード例 #4
0
        public IList <FeedingSourceDTO> GetFeedingSourceDTOs(bool canViewAndSearchAll, bool includeRestricted, string uploadedByUserId)
        {
            FeedingSourceDTO output               = null;
            FeedingSource    feedingSourceAlias   = null;
            AdminUser        uploadedByAlias      = null;
            AdminUser        approvedByAlias      = null;
            AdminUser        rejectedByAlias      = null;
            Source           sourceAlias          = null;
            PersonSource     personSourceAlias    = null;
            EventSource      eventSourceAlias     = null;
            UnitSource       unitSourceAlias      = null;
            OperationSource  operationSourceAlias = null;

            var q = Session.QueryOver <FeedingSource>(() => feedingSourceAlias)
                    .JoinAlias(() => feedingSourceAlias.UploadedBy, () => uploadedByAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => feedingSourceAlias.ApprovedBy, () => approvedByAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => feedingSourceAlias.RejectedBy, () => rejectedByAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => feedingSourceAlias.Source, () => sourceAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => sourceAlias.PersonSources, () => personSourceAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => sourceAlias.EventSources, () => eventSourceAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => sourceAlias.UnitSources, () => unitSourceAlias, JoinType.LeftOuterJoin)
                    .JoinAlias(() => sourceAlias.OperationSources, () => operationSourceAlias, JoinType.LeftOuterJoin)
                    .SelectList(list => list
                                .Select(Projections.Group(() => feedingSourceAlias.Id)).WithAlias(() => output.Id)
                                .Select(Projections.Group(() => feedingSourceAlias.Name)).WithAlias(() => output.Name)
                                .Select(Projections.Group(() => feedingSourceAlias.Restricted)).WithAlias(() => output.Restricted)
                                .Select(Projections.Group(() => feedingSourceAlias.FileModifiedDateTime)).WithAlias(() => output.FileModifiedDateTime)
                                .Select(Projections.Group(() => uploadedByAlias.UserName)).WithAlias(() => output.UploadedBy)
                                .Select(Projections.Group(() => feedingSourceAlias.UploadDate)).WithAlias(() => output.UploadDate)
                                .Select(Projections.Group(() => approvedByAlias.UserName)).WithAlias(() => output.ApprovedBy)
                                .Select(Projections.Group(() => feedingSourceAlias.ApprovedDate)).WithAlias(() => output.ApproveDate)
                                .Select(Projections.Group(() => rejectedByAlias.UserName)).WithAlias(() => output.RejectedBy)
                                .Select(Projections.Group(() => feedingSourceAlias.RejectedDate)).WithAlias(() => output.RejectedDate)
                                .Select(Projections.Group(() => feedingSourceAlias.RejectedReason)).WithAlias(() => output.RejectedReason)
                                .Select(Projections.Group(() => feedingSourceAlias.UploadNotes)).WithAlias(() => output.UploadNotes)
                                .Select(Projections.Group(() => feedingSourceAlias.Source.Id)).WithAlias(() => output.SourceID)
                                .Select(Projections.Group(() => feedingSourceAlias.IsReadOnly)).WithAlias(() => output.IsReadOnly)
                                .Select(Projections.Group(() => feedingSourceAlias.IsPublic)).WithAlias(() => output.IsPublic)
                                .Select(Projections.Count(() => personSourceAlias.Person.Id)).WithAlias(() => output.PersonSourceCount)
                                .Select(Projections.Count(() => eventSourceAlias.Event.Id)).WithAlias(() => output.EventSourceCount)
                                .Select(Projections.Count(() => unitSourceAlias.Unit.Id)).WithAlias(() => output.UnitSourceCount)
                                .Select(Projections.Count(() => operationSourceAlias.Operation.Id)).WithAlias(() => output.OperationSourceCount)
                                );

            if (canViewAndSearchAll)
            {
                if (!includeRestricted)
                {
                    q = q.Where(() => feedingSourceAlias.Restricted == false);
                }
            }
            else
            {
                // user can access sources they uploaded as well as sources marked public
                q = q.Where(() => uploadedByAlias.UserID == uploadedByUserId || feedingSourceAlias.IsPublic);
            }

            return(q.TransformUsing(Transformers.AliasToBean <FeedingSourceDTO>())
                   .List <FeedingSourceDTO>());
        }
コード例 #5
0
        void CreatePrefabAction(GameObject InstancedPrefab)
        {
            UnitSource us = GetGamedataFile.LoadUnit(SelectedUnit.CodeName);

            SelectedUnitSource.Parent = FirstSelected.Source;
            SelectedUnitSource.Owner  = FirstSelected.Owner;
            us.FillGameObjectValues(InstancedPrefab, SelectedUnitSource, FirstSelected.Source, Vector3.zero, Quaternion.identity);
        }
コード例 #6
0
        public bool Update(int UnitSourceId, string UnitNumber, int UnitStatusId, string UnitType, int CargoTypeId, string OriginLocation, string UnitLine, DateTime ETADate,
                           string ETALocation, DateTime LatTraced, string LastLocation, string Sequence, string Track, int DemurageDays, int InTransitDays, DateTime BillDate,
                           DateTime CallDate, DateTime ArrivalDate, DateTime AvailableDate, DateTime ReleaseDate, float TotalBilled, DateTime LastUpdated, bool ActiveUpdates,
                           bool isActive, int RailListId, string CargoDescription, int ShipperId)
        {
            bool isSaved = true;

            try
            {
                using (WTCCeresEntities db = new WTCCeresEntities())
                {
                    DateTime minDate = new DateTime(0001, 1, 1);
                    if (UnitSourceId == 0)
                    {
                        us = new UnitSource();
                    }
                    else
                    {
                        us = db.UnitSource.Find(UnitSourceId);
                    }

                    us.UnitNumber       = UnitNumber;
                    us.UnitStatusId     = UnitStatusId;
                    us.UnitType         = UnitType;
                    us.CargoTypeId      = CargoTypeId;
                    us.OriginLocation   = OriginLocation;
                    us.UnitLine         = UnitLine;
                    us.ETALocation      = ETALocation;
                    us.Sequence         = Sequence;
                    us.Track            = Track;
                    us.DemurageDays     = DemurageDays;
                    us.InTransitDays    = InTransitDays;
                    us.TotalBilled      = TotalBilled;
                    us.LastUpdate       = LastUpdated;
                    us.ActiveUpdates    = ActiveUpdates;
                    us.Active           = isActive;
                    us.RecordKey        = RailListId;
                    us.CargoDescription = CargoDescription;
                    us.ShipperId        = ShipperId;

                    us.ETADate       = (minDate.Date == ETADate.Date) ? (DateTime?)null : ETADate;
                    us.BillDate      = (minDate.Date == BillDate.Date) ? (DateTime?)null : BillDate;
                    us.CallDate      = (minDate.Date == CallDate.Date) ? (DateTime?)null : CallDate;
                    us.AvailableDate = (minDate.Date == AvailableDate.Date) ? (DateTime?)null : AvailableDate;
                    us.ArrivalDate   = (minDate.Date == ArrivalDate.Date) ? (DateTime?)null : ArrivalDate;
                    us.ReleaseDate   = (minDate.Date == ReleaseDate.Date) ? (DateTime?)null : ReleaseDate;

                    db.UnitSource.AddOrUpdate(us);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
                isSaved = false;
            }
            return(isSaved);
        }
コード例 #7
0
ファイル: Source.cs プロジェクト: ruacol/profiling2
        public virtual void AddUnitSource(UnitSource us)
        {
            if (this.UnitSources.Contains(us))
            {
                return;
            }

            this.UnitSources.Add(us);
        }
コード例 #8
0
 private void DeleteUnitSource(UnitSource us)
 {
     if (us != null)
     {
         us.Source.RemoveUnitSource(us);
         us.Unit.RemoveUnitSource(us);
         this.unitSourceRepo.Delete(us);
     }
 }
コード例 #9
0
    private void PerformAction()
    {
        GameObject unit = _unitSelector.SelectUnit(UnitSource.GetAvailableUnitPrefabs().Where(x => x.GetComponent <Unit>().Cost <= Credits));

        if (unit)
        {
            Vector3 position = _positionSelector.SelectPosition(new Vector3[] { Fortress.position }, GetUnitPlacementCheckSize(unit));
            TryPurchaseAndPlaceUnit(unit, position, transform.rotation);
        }
    }
コード例 #10
0
        public ActionResult Edit(int id)
        {
            UnitSource us = this.sourceAttachmentTasks.GetUnitSource(id);

            if (us != null)
            {
                UnitSourceViewModel vm = new UnitSourceViewModel(us);
                vm.PopulateDropDowns(this.sourceTasks.GetReliabilities());
                vm.PopulateSource(this.sourceTasks.GetSourceDTO(us.Source.Id));
                return(View(vm));
            }
            return(new HttpNotFoundResult());
        }
コード例 #11
0
    public IEnumerator UpdatingUnitsHeights()
    {
        var ListEnum = GetGamedataFile.LoadedUnitObjects.GetEnumerator();
        //int Counter = 0;

        float Realtime = Time.realtimeSinceStartup;

        while (ListEnum.MoveNext())
        {
            UnitSource us = ListEnum.Current.Value;

            us.Instances.CopyTo(Instances);
            int Count = us.Instances.Count;

            for (int i = 0; i < Count; i++)
            {
                Instances[i].UpdateAfterTerrainChange();

                /*if (Instances[i].UpdateAfterTerrainChange())
                 * {
                 *      //Counter += 10;
                 * }
                 * else
                 * {
                 *      //Counter++;
                 * }*/

                if (Time.realtimeSinceStartup - Realtime > MaxAllowedOverhead)
                {
                    yield return(null);

                    Realtime = Time.realtimeSinceStartup;
                }

                /*if (Counter > 1024)
                 * {
                 *      Counter = 0;
                 *      yield return null;
                 * }*/
            }
        }

        yield return(null);

        UpdateProcess = null;
        if (BufforUpdate)
        {
            BufforUpdate = false;
            UpdateUnitsHeights();
        }
    }
コード例 #12
0
 public UnitSourceViewModel(UnitSource us)
 {
     this.Id = us.Id;
     if (us.Unit != null)
     {
         this.UnitId   = us.Unit.Id;
         this.UnitName = us.Unit.UnitName;
     }
     if (us.Reliability != null)
     {
         this.ReliabilityId   = us.Reliability.Id;
         this.ReliabilityName = us.Reliability.ToString();
     }
     this.Commentary = us.Commentary;
     this.Notes      = us.Notes;
 }
コード例 #13
0
        public JsonNetResult Delete(int id)
        {
            UnitSource us = this.sourceAttachmentTasks.GetUnitSource(id);

            if (us != null)
            {
                this.sourceAttachmentTasks.DeleteUnitSource(us.Id);
                Response.StatusCode = (int)HttpStatusCode.OK;
                return(JsonNet("Source successfully detached from unit."));
            }
            else
            {
                Response.StatusCode = (int)HttpStatusCode.NotFound;
                return(JsonNet("Unit source not found."));
            }
        }
コード例 #14
0
        public bool Delete(int UnitSourceId)
        {
            bool isDeleted = true;

            try
            {
                using (WTCCeresEntities db = new WTCCeresEntities())
                {
                    us = db.UnitSource.Find(UnitSourceId);

                    db.UnitSource.Remove(us);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                isDeleted = false;
            }
            return(isDeleted);
        }
コード例 #15
0
 public JsonNetResult Add(UnitSourceViewModel vm)
 {
     if (ModelState.IsValid)
     {
         Source s = this.sourceTasks.GetSource(vm.SourceId.Value);
         Unit   u = this.orgTasks.GetUnit(vm.UnitId.Value);
         if (s != null && u != null)
         {
             if (s.GetUnitSource(u) == null)
             {
                 UnitSource us = new UnitSource()
                 {
                     Source     = s,
                     Unit       = u,
                     Commentary = vm.Commentary,
                     Notes      = vm.Notes
                 };
                 if (vm.ReliabilityId.HasValue)
                 {
                     us.Reliability = this.sourceTasks.GetReliability(vm.ReliabilityId.Value);
                 }
                 this.sourceAttachmentTasks.SaveUnitSource(us);
                 return(JsonNet(string.Empty));
             }
             else
             {
                 Response.StatusCode = (int)HttpStatusCode.BadRequest;
                 return(JsonNet("Source already attached to this unit."));
             }
         }
         else
         {
             Response.StatusCode = (int)HttpStatusCode.NotFound;
             return(JsonNet("Unit or source not found."));
         }
     }
     else
     {
         return(JsonNet(this.GetErrorsForJson()));
     }
 }
コード例 #16
0
    public IEnumerator UpdatingUnitsHeights()
    {
        var ListEnum = GetGamedataFile.LoadedUnitObjects.GetEnumerator();
        int Counter  = 0;

        while (ListEnum.MoveNext())
        {
            UnitSource us = ListEnum.Current.Value;

            us.Instances.CopyTo(Instances);
            int Count = us.Instances.Count;

            for (int i = 0; i < Count; i++)
            {
                if (Instances[i].UpdateAfterTerrainChange())
                {
                    Counter += 10;
                }
                else
                {
                    Counter++;
                }

                if (Counter > 1024)
                {
                    yield return(null);
                }
            }
        }

        yield return(null);

        UpdateProcess = null;
        if (BufforUpdate)
        {
            BufforUpdate = false;
            UpdateUnitsHeights();
        }
    }
コード例 #17
0
ファイル: Source.cs プロジェクト: ruacol/profiling2
 public virtual void RemoveUnitSource(UnitSource us)
 {
     this.UnitSources.Remove(us);
 }
コード例 #18
0
        /// <summary>
        /// Returns the instance of TemplateMergingControlSource
        /// </summary>
        /// <param name="mergeControlType"></param>
        /// <param name="sourceAppliactionType"></param>
        /// <returns></returns>
        public static TemplateMergingControlSource GetInstance(TemplateMergeControlType mergeControlType, ApplicationType sourceAppliactionType)
        {
            TemplateMergingControlSource RetVal=null;

            switch (mergeControlType)
            {
                case TemplateMergeControlType.Indicator:
                    RetVal = new IndicatorSource();
                    break;
                case TemplateMergeControlType.Unit:
                    RetVal = new UnitSource();
                    break;
                case TemplateMergeControlType.Subgroups:
                    RetVal = new SubgroupValsSource();
                    break;
                case TemplateMergeControlType.SubgroupDimensions:
                    RetVal = new SubgroupDimensionsSource();
                    break;
                case TemplateMergeControlType.SubgroupDimensionsValue:
                    RetVal = new SubgroupsDimensionValuesSource();
                    break;
                case TemplateMergeControlType.IndicatorClassification:

                    RetVal = new ICSource();
                    if (sourceAppliactionType == ApplicationType.MergeTemplateType)
                    {
                        RetVal._ISValidationReqOnMapClick = false;
                    }
                    else
                    {
                        RetVal._ISValidationReqOnMapClick = true;
                    }
                    break;

                case TemplateMergeControlType.Areas:

                    RetVal = new AreasSource();

                    if (sourceAppliactionType == ApplicationType.MergeTemplateType)
                    {
                        RetVal._IsAllowMapping = false;
                        RetVal._ISValidationReqOnMapClick = false;
                    }
                    else
                    {
                        RetVal._IsAllowMapping = true;
                        RetVal._ISValidationReqOnMapClick = true;
                    }
                    break;

                default:
                    break;
            }

            if (RetVal != null)
            {
                RetVal.SourceApplicationType = sourceAppliactionType;

            }

            return RetVal;
        }
コード例 #19
0
 public void OnPostRender()
 {
     UnitSource.DrawAllIcons(Camera.current);
 }
コード例 #20
0
    public static UnitSource LoadUnit(string scd, string LocalPath)
    {
        if (LoadedUnitObjects.ContainsKey(LocalPath))
        {
            return(LoadedUnitObjects[LocalPath]);
        }


        //UnitObject ToReturn = new UnitObject();
        byte[] Bytes = LoadBytes(scd, LocalPath);
        if (Bytes == null || Bytes.Length == 0)
        {
            Debug.LogWarning("Unit does not exits: " + LocalPath);
            return(CreateEmptyUnit(LocalPath));
        }
        string BluePrintString = System.Text.Encoding.UTF8.GetString(Bytes);

        if (BluePrintString.Length == 0)
        {
            Debug.LogWarning("Loaded blueprint is empty");
            return(CreateEmptyUnit(LocalPath));
        }

        BluePrintString = BluePrintString.Replace("UnitBlueprint {", "UnitBlueprint = {");

        string[]   PathSplit = LocalPath.Split('/');
        GameObject NewUnit   = new GameObject(PathSplit[PathSplit.Length - 1].Replace(".bp", ""));
        UnitSource ToReturn  = NewUnit.AddComponent <UnitSource>();

        // *** Parse Blueprint
        ToReturn.BP = new UnitBluePrint();
        // Create Lua
        Lua BP = new Lua();

        BP.LoadCLRPackage();

        ToReturn.BP.Name     = PathSplit[PathSplit.Length - 1].Replace(".bp", "");
        ToReturn.BP.CodeName = ToReturn.BP.Name.Replace("_unit", "");


        ToReturn.BP.TypeId = ToReturn.BP.CodeName.GetHashCode();

        //Debug.Log("Load Unit : " + ToReturn.BP.CodeName);

        //Fix LUA
        string[] SplitedBlueprint   = BluePrintString.Split("\n".ToCharArray());
        string   NewBlueprintString = "";

        for (int i = 0; i < SplitedBlueprint.Length; i++)
        {
            if (SplitedBlueprint[i].Length > 0 && !SplitedBlueprint[i].Contains("#"))
            {
                NewBlueprintString += SplitedBlueprint[i] + "\n";
            }
        }
        BluePrintString = NewBlueprintString;

        ToReturn.BP.Path = LocalPath;

        try
        {
            BP.DoString(MapLuaParser.Current.SaveLuaHeader.text + BluePrintString);
        }
        catch (NLua.Exceptions.LuaException e)
        {
            Debug.LogWarning(LuaParser.Read.FormatException(e) + "\n" + LocalPath);
            return(CreateEmptyUnit(LocalPath, ToReturn));
        }


        //TODO
        object   CurrentValue       = null;
        LuaTable UnitBlueprintTable = BP.GetTable("UnitBlueprint");

        LuaTable InterfaceTab = BP.GetTable("UnitBlueprint.Interface");

        if (InterfaceTab != null)
        {
            ToReturn.BP.HelpText = InterfaceTab.RawGet("HelpText").ToString();
        }

        LuaTable CategoriesTab = BP.GetTable("UnitBlueprint.Categories");

        if (CategoriesTab != null)
        {
            ToReturn.BP.Categories = LuaParser.Read.GetTableValues(CategoriesTab);
        }
        else
        {
            ToReturn.BP.Categories = new string[0];
        }

        LuaTable EconomyTab = BP.GetTable("UnitBlueprint.Economy");

        if (EconomyTab != null)
        {
            CurrentValue = EconomyTab.RawGet("BuildCostEnergy");
            if (CurrentValue != null)
            {
                ToReturn.BP.BuildCostEnergy = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = EconomyTab.RawGet("BuildCostMass");
            if (CurrentValue != null)
            {
                ToReturn.BP.BuildCostMass = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = EconomyTab.RawGet("BuildTime");
            if (CurrentValue != null)
            {
                ToReturn.BP.BuildTime = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }
        }

        CurrentValue = UnitBlueprintTable.RawGet("StrategicIconName");
        if (CurrentValue != null)
        {
            ToReturn.BP.StrategicIconName = CurrentValue.ToString();
        }

        CurrentValue = EconomyTab.RawGet("StrategicIconSortPriority");
        if (CurrentValue != null)
        {
            ToReturn.BP.StrategicIconSortPriority = LuaParser.Read.StringToInt(CurrentValue.ToString());
        }

        LuaTable PhisicsLayersTab = BP.GetTable("UnitBlueprint.Physics.BuildOnLayerCaps");

        if (PhisicsLayersTab != null)
        {
            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Air");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerAir = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Land");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerLand = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Orbit");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerOrbit = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Seabed");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerSeabed = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Sub");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerSub = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("LAYER_Water");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsLayerWater = LuaParser.Read.StringToBool(CurrentValue.ToString());
            }
        }

        float BiggestLodDistance = 100;

        //Display
        if (BP.GetTable("UnitBlueprint.Display") != null)
        {
            if (BP.GetTable("UnitBlueprint.Display").RawGet("UniformScale") != null)
            {
                ToReturn.BP.UniformScale = Vector3.one * LuaParser.Read.StringToFloat(BP.GetTable("UnitBlueprint.Display").RawGet("UniformScale").ToString());
            }

            ToReturn.BP.RenderScale = ToReturn.BP.UniformScale * 0.1f;

            // Mesh
            if (BP.GetTable("UnitBlueprint.Display.Mesh") != null)
            {
                //Lods
                LuaTable LodTable = BP.GetTable("UnitBlueprint.Display.Mesh.LODs");

                LuaTable[] LodTableValues = new LuaTable[LodTable.Keys.Count];
                ToReturn.BP.LODs = new BluePrintLoD[LodTableValues.Length];
                LodTable.Values.CopyTo(LodTableValues, 0);

                for (int i = 0; i < LodTableValues.Length; i++)
                {
                    ToReturn.BP.LODs[i] = new BluePrintLoD();

                    CurrentValue = LodTableValues[i].RawGet("AlbedoName");
                    if (CurrentValue != null)
                    {
                        ToReturn.BP.LODs[i].AlbedoName = CurrentValue.ToString();
                    }

                    CurrentValue = LodTableValues[i].RawGet("NormalsName");
                    if (CurrentValue != null)
                    {
                        ToReturn.BP.LODs[i].NormalsName = CurrentValue.ToString();
                    }

                    CurrentValue = LodTableValues[i].RawGet("SpecularName");
                    if (CurrentValue != null)
                    {
                        ToReturn.BP.LODs[i].SpecularName = CurrentValue.ToString();
                    }

                    CurrentValue = LodTableValues[i].RawGet("ShaderName");
                    if (CurrentValue != null)
                    {
                        ToReturn.BP.LODs[i].ShaderName = CurrentValue.ToString();
                    }

                    CurrentValue = LodTableValues[i].RawGet("LODCutoff");
                    if (CurrentValue != null)
                    {
                        ToReturn.BP.LODs[i].LODCutoff = LuaParser.Read.StringToFloat(CurrentValue.ToString());
                        BiggestLodDistance            = ToReturn.BP.LODs[i].LODCutoff;
                    }


                    ToReturn.BP.LODs[i].Scm = LocalPath.Replace("unit.bp", "lod" + i.ToString() + ".scm");
                }
            }

            //Termacs

            LuaTable TermacsTable = BP.GetTable("UnitBlueprint.Display.Tarmacs");
            if (TermacsTable != null)
            {
                LuaTable[] AllTermacs = LuaParser.Read.TableArrayFromTable(TermacsTable);
                ToReturn.BP.Termacs = new Termac[AllTermacs.Length];

                for (int t = 0; t < ToReturn.BP.Termacs.Length; t++)
                {
                    ToReturn.BP.Termacs[t] = new Termac(AllTermacs[t]);
                }

                LoadTermacs(ToReturn.BP);
            }
            else
            {
                ToReturn.BP.Termacs = new Termac[0];
            }
        }

        ToReturn.BP.Size = Vector3.one * 0.1f;

        CurrentValue = UnitBlueprintTable.RawGet("SizeX");
        if (CurrentValue != null)
        {
            ToReturn.BP.Size.x = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }

        CurrentValue = UnitBlueprintTable.RawGet("SizeY");
        if (CurrentValue != null)
        {
            ToReturn.BP.Size.y = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }

        CurrentValue = UnitBlueprintTable.RawGet("SizeZ");
        if (CurrentValue != null)
        {
            ToReturn.BP.Size.z = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }


        ToReturn.BP.SelectionSize = ToReturn.BP.Size;

        CurrentValue = UnitBlueprintTable.RawGet("SelectionSizeX");
        if (CurrentValue != null)
        {
            ToReturn.BP.SelectionSize.x = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }
        CurrentValue = UnitBlueprintTable.RawGet("SelectionSizeZ");
        if (CurrentValue != null)
        {
            ToReturn.BP.SelectionSize.z = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }
        CurrentValue = UnitBlueprintTable.RawGet("SelectionThickness");
        if (CurrentValue != null)
        {
            ToReturn.BP.SelectionSize.y = LuaParser.Read.StringToFloat(CurrentValue.ToString());
        }

        ToReturn.BP.SkirtSize   = ToReturn.BP.SelectionSize;
        ToReturn.BP.SkirtSize.y = 1;

        PhisicsLayersTab = BP.GetTable("UnitBlueprint.Physics");
        if (PhisicsLayersTab != null)
        {
            CurrentValue = PhisicsLayersTab.RawGet("Elevation");
            if (CurrentValue != null)
            {
                ToReturn.BP.PhysicsElevation = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("SkirtOffsetX");
            if (CurrentValue != null)
            {
                ToReturn.BP.SkirtOffsetX = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("SkirtOffsetZ");
            if (CurrentValue != null)
            {
                ToReturn.BP.SkirtOffsetZ = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("SkirtSizeX");
            if (CurrentValue != null)
            {
                ToReturn.BP.SkirtSize.x = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("SkirtSizeZ");
            if (CurrentValue != null)
            {
                ToReturn.BP.SkirtSize.z = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = PhisicsLayersTab.RawGet("TurnRate");
            if (CurrentValue != null)
            {
                ToReturn.BP.TurnRate = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }
        }

        ToReturn.BP.SkirtSize *= 0.1f;

        LuaTable FootprintTab = BP.GetTable("UnitBlueprint.Footprint");

        if (FootprintTab != null)
        {
            CurrentValue = FootprintTab.RawGet("SizeX");
            if (CurrentValue != null)
            {
                ToReturn.BP.Footprint.x = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }

            CurrentValue = FootprintTab.RawGet("SizeZ");
            if (CurrentValue != null)
            {
                ToReturn.BP.Footprint.y = LuaParser.Read.StringToFloat(CurrentValue.ToString());
            }
        }


        if (ToReturn.BP.LODs.Length == 0)
        {
            ToReturn.BP.GenerateEmptyLod();
        }
        else
        {
            for (int i = 0; i < ToReturn.BP.LODs.Length; i++)
            {
                if (i > 0)
                {
                    continue;
                }

                ToReturn.BP.LODs[i].Mesh = LoadModel(scd, ToReturn.BP.LODs[i].Scm);
                if (ToReturn.BP.LODs[i].Mesh == null)
                {
                    ToReturn.BP.LODs[i].Mesh = UnitsInfo.Current.NoUnitMesh;
                }

                //ToReturn.BP.LODs[i].Mat = new Material(Shader.Find("Standard (Specular setup)"));
                ToReturn.BP.LODs[i].Mat = new Material(UnitsInfo.Current.UnitMaterial);

                ToReturn.BP.LODs[i].Mat.name = ToReturn.BP.CodeName + "_LOD" + i + " mat";

                if (ToReturn.BP.LODs[i].AlbedoName.Length == 0)
                {
                    ToReturn.BP.LODs[i].AlbedoName = LocalPath.Replace("unit.bp", "albedo.dds");
                }
                else
                {
                    ToReturn.BP.LODs[i].AlbedoName = OffsetRelativePath(LocalPath, ToReturn.BP.LODs[i].AlbedoName, true);
                }

                ToReturn.BP.LODs[i].Albedo            = LoadTexture2DFromGamedata(scd, ToReturn.BP.LODs[i].AlbedoName, false, true, true);
                ToReturn.BP.LODs[i].Albedo.anisoLevel = 2;
                ToReturn.BP.LODs[i].Mat.SetTexture("_MainTex", ToReturn.BP.LODs[i].Albedo);


                if (ToReturn.BP.LODs[i].NormalsName.Length == 0)
                {
                    ToReturn.BP.LODs[i].NormalsName = LocalPath.Replace("unit.bp", "NormalsTS.dds");
                }
                else
                {
                    ToReturn.BP.LODs[i].NormalsName = OffsetRelativePath(LocalPath, ToReturn.BP.LODs[i].NormalsName, true);
                }

                if (!string.IsNullOrEmpty(ToReturn.BP.LODs[i].NormalsName))
                {
                    ToReturn.BP.LODs[i].Normal            = LoadTexture2DFromGamedata(scd, ToReturn.BP.LODs[i].NormalsName, true, true, true);
                    ToReturn.BP.LODs[i].Normal.anisoLevel = 2;
                    ToReturn.BP.LODs[i].Mat.SetTexture("_BumpMap", ToReturn.BP.LODs[i].Normal);
                }


                if (ToReturn.BP.LODs[i].SpecularName.Length == 0)
                {
                    ToReturn.BP.LODs[i].SpecularName = LocalPath.Replace("unit.bp", "SpecTeam.dds");
                }
                else
                {
                    ToReturn.BP.LODs[i].SpecularName = OffsetRelativePath(LocalPath, ToReturn.BP.LODs[i].SpecularName, true);
                }

                if (!string.IsNullOrEmpty(ToReturn.BP.LODs[i].SpecularName))
                {
                    ToReturn.BP.LODs[i].Specular            = LoadTexture2DFromGamedata(scd, ToReturn.BP.LODs[i].SpecularName, false, true, true);
                    ToReturn.BP.LODs[i].Specular.anisoLevel = 2;
                    ToReturn.BP.LODs[i].Mat.SetTexture("_SpecTeam", ToReturn.BP.LODs[i].Specular);
                }
            }
        }

        ToReturn.RenderDistances = new float[] { BiggestLodDistance * 0.1f };
        ToReturn.ApplyLods();

        //	Debug.Log("Unit blueprint loaded: " + ToReturn.BP.CodeName + "\n" + ToReturn.BP.HelpText);
        //Debug.Log(ToReturn.BP.HelpText);
        //Debug.Log("StrategicIconName: " + ToReturn.BP.StrategicIconName);
        //Debug.Log("BuildTime: " + ToReturn.BP.BuildTime);
        //Debug.Log("BuildCostEnergy: " + ToReturn.BP.BuildCostEnergy + "\nBuildCostMass: " + ToReturn.BP.BuildCostMass);
        LoadedUnitObjects.Add(LocalPath, ToReturn);

        return(ToReturn);
    }
コード例 #21
0
        private void tbCreateUnits_Click(object sender, EventArgs e)
        {
            if (MandatoryFieldsOk())
            {
                var    unitService = new UnitSourceService();
                int    insertedUSId;
                var    muService = new MiniUnitService();
                string unitBilled;
                if (cboCargoType.Text.Equals("BULK"))
                {
                    unitBilled = Conversions.ToString(cboWeightUnit.SelectedItem);
                }
                else
                {
                    unitBilled = "PC";
                }

                //  My.MyProject.Forms.FrmParentScreen.showLOadForm();
                foreach (var unit in UnitList)
                {
                    UnitSource ExistingUnit;
                    MiniUnit   mu;
                    if (unit.UnitId != 0)
                    {
                        ExistingUnit = AllUnits.Where(u => u.UnitSourceId == unit.UnitId).ToList()[0];

                        // ExistingUnit.UnitStatusId = cboStatus.SelectedValue
                        ExistingUnit.UnitType           = Conversions.ToString(cboType.SelectedItem);
                        ExistingUnit.CargoTypeId        = Conversions.ToInteger(cboCargoType.SelectedValue);
                        ExistingUnit.LastUpdate         = DateAndTime.Now;
                        ExistingUnit.TotalBilled        = (double?)unit.TotalBilled;
                        ExistingUnit.OriginalUnitNumber = unit.OriginalUnitNumber;
                        bool isSaved = unitService.AddOrUpdate(ExistingUnit);
                        insertedUSId = unit.UnitId;
                        var muList = new List <MiniUnit>();
                        muList = MiniUnitService.GetAllByUSId(unit.UnitId);
                        foreach (var currentMu in muList)
                        {
                            mu = currentMu;
                            if (muList.Count == 1)
                            {
                                mu.TotalBilled = unit.TotalBilled;
                            }

                            mu.BilledByUnitUnitType   = unitBilled;
                            mu.UnBilledByUnitUnitType = unitBilled;
                            mu.CustomerId             = Conversions.ToInteger(cboCustomer.SelectedValue);
                            mu.GradeId     = Conversions.ToInteger(cboGrade.SelectedValue);
                            mu.CommodityId = Conversions.ToInteger(cboCommodity.SelectedValue);
                            muService.InsertOrUpdate(mu);
                        }
                    }
                    else
                    {
                        var us = new UnitSource();
                        us.UnitNumber         = unit.UnitNumber;
                        us.OriginalUnitNumber = unit.OriginalUnitNumber;
                        us.UnitStatusId       = unit.UnitStatusId;
                        us.UnitType           = Conversions.ToString(cboType.SelectedItem);
                        us.CargoTypeId        = Conversions.ToInteger(cboCargoType.SelectedValue);
                        us.OriginLocation     = "";
                        us.UnitLine           = "";
                        us.ETALocation        = "";
                        us.Sequence           = "";
                        us.Track            = "";
                        us.LastLocation     = "";
                        us.DemurageDays     = 0;
                        us.InTransitDays    = 0;
                        us.TotalBilled      = (double?)unit.TotalBilled;
                        us.LastUpdate       = DateAndTime.Now;
                        us.ActiveUpdates    = true;
                        us.Active           = true;
                        us.RecordKey        = 0;
                        us.CargoDescription = "";
                        us.ShipperId        = 0;
                        us.ETADate          = default;
                        us.BillDate         = default;
                        us.CallDate         = default;
                        us.AvailableDate    = default;
                        us.ArrivalDate      = default;
                        us.ReleaseDate      = default;
                        unitService.AddOrUpdate(us);
                        insertedUSId               = unitService.GetLastUnitSourceId();
                        mu                         = new MiniUnit();
                        mu.MiniUnitOrder           = 1;
                        mu.UnitSourceId            = insertedUSId;
                        mu.TotalBilled             = unit.TotalBilled;
                        mu.UnBilled                = 0;
                        mu.BilledByUnit            = 0;
                        mu.BilledByUnitUnitType    = unitBilled;
                        mu.UnBilledByUnit          = 0;
                        mu.UnBilledByUnitUnitType  = unitBilled;
                        mu.MULocation              = "";
                        mu.Comments                = "";
                        mu.CustomerId              = Conversions.ToInteger(cboCustomer.SelectedValue);
                        mu.GradeId                 = Conversions.ToInteger(cboGrade.SelectedValue);
                        mu.CommodityId             = Conversions.ToInteger(cboCommodity.SelectedValue);
                        mu.BalanceToStorageAllowed = true;
                        mu.isMultiMU               = false;
                        muService.InsertOrUpdate(mu);
                    }
                }

                //     My.MyProject.Forms.FrmParentScreen.HideLoadForm();
                var result = My.MyProject.Forms.MessageBoxCeresYesNo.ShowDialog("Success!", "Units added with success. Do you want continue creating/updating units?", My.Resources.Resources.icon_available, this);
                if (!(result == DialogResult.Yes))
                {
                    Close();
                }
                else
                {
                    UnitList.Clear();
                    AllUnits     = UnitSourceService.GetByActiveStatus(Conversions.ToBoolean(1));
                    tbUnits.Text = "";
                }
            }
        }
コード例 #22
0
        public static bool UnitAlreadyExist(string unit, List <UnitSource> AllUnitsList, ref UnitSource unitFound)
        {
            var  list    = AllUnitsList.Where(u => (u.UnitNumber ?? "") == (unit ?? "")).ToList();
            bool isFound = list.Count > 0;

            if (isFound)
            {
                unitFound = list[0];
            }

            return(isFound);
        }
コード例 #23
0
 public UnitSource SaveUnitSource(UnitSource us)
 {
     us.Unit.AddUnitSource(us);
     us.Source.AddUnitSource(us);
     return(this.unitSourceRepo.SaveOrUpdate(us));
 }
コード例 #24
0
 public bool AddOrUpdate(UnitSource unitSource)
 {
     return(repository.AddOrUpdate(unitSource));
 }