Example #1
0
 private void OnTriggerExit(Collider other)
 {
     if (other.transform.parent && other.transform.parent.GetComponent <Riser>())
     {
         Riser riser = other.transform.parent.GetComponent <Riser>();
         if (RiserStack.Contains(riser))
         {
             removeRiser(riser);
         }
     }
 }
Example #2
0
    private bool validSequence(Riser riser1, Riser riser2, Riser riser3)
    {
        if (validPlacement(riser1) && validPlacement(riser2) && validPlacement(riser3))
        {
            if (riser1.RiserColor == riser2.RiserColor && riser2.RiserColor == riser3.RiserColor)
            {
                return(true);
            }
        }

        return(false);
    }
 public bool AddRiser(Riser riser)
 {
     if (risers.Contains(riser))
     {
         return(false);
     }
     else
     {
         risers.Add(riser);
     }
     return(true);
 }
 public bool RemoveRiser(Riser riser)
 {
     if (!risers.Contains(riser))
     {
         return(false);
     }
     else
     {
         risers.Remove(riser);
     }
     return(true);
 }
Example #5
0
    private bool validPlacement(Riser riser)
    {
        if (!riser)
        {
            return(false);
        }
        float test = Vector3.Dot(riser.transform.up, Vector3.up);

        if (test > 0.2f || test < -0.2f)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Example #6
0
 private void removeRiser(Riser riser)
 {
     for (int i = 0; i < 3; i += 1)
     {
         if (riser)
         {
             if (RiserStack[i] == riser)
             {
                 RiserStack[i] = null;
                 riser         = null;
             }
         }
         else
         {
             RiserStack[i - 1] = RiserStack[i];
         }
     }
 }
Example #7
0
 private void addRiser(Riser riser)
 {
     for (int i = 0; i < 3; i += 1)
     {
         if (RiserStack[i])
         {
             if (RiserStack[i].transform.position.y > riser.transform.position.y)
             {
                 Riser temp = RiserStack[i];
                 RiserStack[i] = riser;
                 riser         = temp;
             }
         }
         else
         {
             Debug.Log("Empty Slot");
             RiserStack[i] = riser;
             riser         = null;
             break;
         }
     }
 }
Example #8
0
 private double getRiserTotal()
 {
     return(Riser.Sum(item => item.Estimate.TotalPrice));
 }
Example #9
0
 private void changed(TECChangedEventArgs e)
 {
     if (e.Value is TECTypical typical)
     {
         if (e.Change == Change.Add)
         {
             SystemSummaryItem summaryItem = new SystemSummaryItem(typical, bid.Parameters);
             summaryItem.Estimate.PropertyChanged += (sender, args) =>
             {
                 if (args.PropertyName == "TotalPrice")
                 {
                     RaisePropertyChanged("SystemTotal");
                 }
             };
             Systems.Add(summaryItem);
         }
         else if (e.Change == Change.Remove)
         {
             SystemSummaryItem toRemove = null;
             foreach (var item in Systems)
             {
                 if (item.Typical == typical)
                 {
                     toRemove = item;
                     break;
                 }
             }
             if (toRemove != null)
             {
                 Systems.Remove(toRemove);
             }
         }
         RaisePropertyChanged("SystemTotal");
     }
     else if (e.Sender is TECBid)
     {
         if (e.Change == Change.Add)
         {
             if (e.Value is TECController || e.Value is TECPanel)
             {
                 ScopeSummaryItem summaryItem = new ScopeSummaryItem(e.Value as TECScope, bid.Parameters);
                 summaryItem.Estimate.PropertyChanged += (sender, args) =>
                 {
                     if (args.PropertyName == "TotalPrice")
                     {
                         RaisePropertyChanged("RiserTotal");
                     }
                 };
                 Riser.Add(summaryItem);
             }
             else if (e.Value is TECMisc misc)
             {
                 ScopeSummaryItem summaryItem = new ScopeSummaryItem(misc, bid.Parameters);
                 summaryItem.Estimate.PropertyChanged += (sender, args) =>
                 {
                     if (args.PropertyName == "TotalPrice")
                     {
                         RaisePropertyChanged("MiscTotal");
                     }
                 };
                 Misc.Add(summaryItem);
             }
         }
         else if (e.Change == Change.Remove)
         {
             if (e.Value is TECController || e.Value is TECPanel)
             {
                 removeFromCollection(Riser, e.Value as TECScope);
             }
             else if (e.Value is TECMisc misc)
             {
                 removeFromCollection(Misc, misc);
             }
         }
         if (e.PropertyName == "Duration")
         {
             populateAll(bid);
             setupExtraLaborEstimate(bid);
         }
         RaisePropertyChanged("RiserTotal");
         RaisePropertyChanged("MiscTotal");
     }
 }
Example #10
0
        public void RemoteClientUpdatedRiserNodeValue(string regname, string regvalue)
        {
            var  riserAddr = string.Format("N{0}{1}{2}{3}", Overpass, Way, Product, Riser.ToString("000"));
            int  value;
            long lval;

            switch (regname)
            {
            case "TotalRequests":
                if (long.TryParse(regvalue, out lval))
                {
                    TotalRequests = lval;
                }
                break;

            case "TotalErrors":
                if (long.TryParse(regvalue, out lval))
                {
                    TotalErrors = lval;
                }
                break;

            case "BarometerValue":
                if (int.TryParse(regvalue, out value))
                {
                    BarometerValue = value;
                }
                break;

            case "RiserMode":
                if (int.TryParse(regvalue, out value) && value >= 0 && value <= 9)
                {
                    RiserMode = (RiserState)value;
                }
                break;

            case "Ready":
                Ready = regvalue == "1";
                break;

            case "BigValve":
                BigValve = regvalue == "1";
                break;

            case "SmallValve":
                SmallValve = regvalue == "1";
                break;

            case "WorkMode":
                WorkMode = regvalue == "1";
                break;

            case "HasAlarmLevel":
                HasAlarmLevel = regvalue == "1";
                break;

            case "HasNoGround":
                HasNoGround = regvalue == "1";
                break;

            case "HasHandMode":
                HasHandMode = regvalue == "1";
                break;

            case "FreshedValue":
                FreshedValue = regvalue == "1";
                break;

            case "FilledKind":
                if (string.IsNullOrWhiteSpace(regvalue))
                {
                    FilledKind = null;
                }
                else if (regvalue == "1")
                {
                    FilledKind = true;
                }
                else
                {
                    FilledKind = false;
                }
                break;

            case "ShowedLevel":
                if (int.TryParse(regvalue, out value))
                {
                    ShowedLevel = value;
                }
                break;

            case "FilledLevel":
                if (int.TryParse(regvalue, out value))
                {
                    FilledLevel = value;
                }
                break;

            case "Number":
                Number = regvalue;
                //Data.Tasks.WriteInteger(riserAddr, "Overpass", Overpass);
                //Data.Tasks.WriteInteger(riserAddr, "Way", Way);
                //Data.Tasks.WriteString(riserAddr, "Product", Product);
                //Data.Tasks.WriteInteger(riserAddr, "Riser", Riser);
                //Data.Tasks.WriteString(riserAddr, "Number", Number);
                //Data.Tasks.UpdateFile();
                break;

            case "Ntype":
                Ntype = regvalue;
                //Data.Tasks.WriteInteger(riserAddr, "Overpass", Overpass);
                //Data.Tasks.WriteInteger(riserAddr, "Way", Way);
                //Data.Tasks.WriteString(riserAddr, "Product", Product);
                //Data.Tasks.WriteInteger(riserAddr, "Riser", Riser);
                //Data.Tasks.WriteString(riserAddr, "NType", Ntype);
                //Data.Tasks.UpdateFile();
                break;

            case "Setpoint":
                if (int.TryParse(regvalue, out value))
                {
                    Setpoint = value;
                    //Data.Tasks.WriteInteger(riserAddr, "Overpass", Overpass);
                    //Data.Tasks.WriteInteger(riserAddr, "Way", Way);
                    //Data.Tasks.WriteString(riserAddr, "Product", Product);
                    //Data.Tasks.WriteInteger(riserAddr, "Riser", Riser);
                    //Data.Tasks.WriteInteger(riserAddr, "Setpoint", Setpoint);
                    //Data.Tasks.UpdateFile();
                }
                break;

            case "FactHeight":
                if (int.TryParse(regvalue, out value))
                {
                    FactHeight = value;
                    //Data.Tasks.WriteInteger(riserAddr, "Overpass", Overpass);
                    //Data.Tasks.WriteInteger(riserAddr, "Way", Way);
                    //Data.Tasks.WriteString(riserAddr, "Product", Product);
                    //Data.Tasks.WriteInteger(riserAddr, "Riser", Riser);
                    //Data.Tasks.WriteInteger(riserAddr, "FactHeight", FactHeight);
                    //Data.Tasks.UpdateFile();
                }
                break;
            }
        }
 public bool HasRiser(Riser riser)
 {
     return(risers.Contains(riser));
 }