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);
    }
Exemple #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);
        }
Exemple #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()));
     }
 }
Exemple #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>());
        }
Exemple #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);
        }
Exemple #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);
        }
Exemple #7
0
        public virtual void AddUnitSource(UnitSource us)
        {
            if (this.UnitSources.Contains(us))
            {
                return;
            }

            this.UnitSources.Add(us);
        }
 private void DeleteUnitSource(UnitSource us)
 {
     if (us != null)
     {
         us.Source.RemoveUnitSource(us);
         us.Unit.RemoveUnitSource(us);
         this.unitSourceRepo.Delete(us);
     }
 }
    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);
        }
    }
Exemple #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());
        }
    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();
        }
    }
Exemple #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;
 }
Exemple #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."));
            }
        }
Exemple #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);
        }
Exemple #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()));
     }
 }
    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();
        }
    }
Exemple #17
0
 public virtual void RemoveUnitSource(UnitSource us)
 {
     this.UnitSources.Remove(us);
 }
        /// <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;
        }
Exemple #19
0
 public void OnPostRender()
 {
     UnitSource.DrawAllIcons(Camera.current);
 }
    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);
    }
Exemple #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 = "";
                }
            }
        }
Exemple #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);
        }
 public UnitSource SaveUnitSource(UnitSource us)
 {
     us.Unit.AddUnitSource(us);
     us.Source.AddUnitSource(us);
     return(this.unitSourceRepo.SaveOrUpdate(us));
 }
Exemple #24
0
 public bool AddOrUpdate(UnitSource unitSource)
 {
     return(repository.AddOrUpdate(unitSource));
 }