public ProxyManagerWindow()
        {
            Instance = this;

            InitializeComponent();
            InitLogging();

            Title = $"{Title} - {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(4)}";

            DataContext = new ManagerWindowViewModel();

            componentEngine = new ComponentEngine(ClientComponents);

            int i = 0;

            ClientComponents.ForEach(cur =>
            {
                cur.ComponentIndex         = i++;
                cur.ManagerWindowViewModel = Data;

                TextBox curComponentBlock = new TextBox
                {
                    Margin        = new Thickness(5),
                    IsReadOnly    = true,
                    Width         = 50,
                    Padding       = new Thickness(3),
                    TextAlignment = TextAlignment.Center,
                    Text          = cur.Title,
                };

                stackMain.Children.Add(curComponentBlock);

                cur.UpdateBackgroundColor();
            });
        }
Esempio n. 2
0
 private void TestEngineHasAllTonnages(string sName)
 {
     for (int i = 10; i <= 400; i += 5)
     {
         ComponentEngine componentEngine = new ComponentEngine(i, sName);
     }
 }
Esempio n. 3
0
        public void TestEngineTonnage()
        {
            List <string> lstEngineTypes = new List <string>(ComponentEngine.GetEngineTypes());

            foreach (string s in lstEngineTypes)
            {
                TestEngineHasAllTonnages(s);
            }
        }
Esempio n. 4
0
        public void TestEngineSizeAttributes()
        {
            List <string> lstEngineTypes = new List <string>(ComponentEngine.GetEngineTypes());

            foreach (string s in lstEngineTypes)
            {
                TestEngineTonnagesAreProgressive(s);
            }
        }
Esempio n. 5
0
        private void TestEngineTonnagesAreProgressive(string sName)
        {
            double dLastTonnage = 0;

            for (int i = 10; i <= 400; i += 5)
            {
                ComponentEngine componentEngine = new ComponentEngine(i, sName);
                Assert.True(componentEngine.Tonnage >= dLastTonnage);
                dLastTonnage = componentEngine.Tonnage;
            }
        }
Esempio n. 6
0
 public override void OnBlockGenerated(int value, int x, int y, int z, bool isLoaded)
 {
     value = BlastBlowerBlock.Index;
     if (ComponentEngine.IsPowered(Utils.Terrain, x, y, z) &&
         (Check(x + 1, y, z) ||
          Check(x - 1, y, z) ||
          Check(x, y + 1, z) ||
          Check(x, y - 1, z) ||
          Check(x, y, z + 1) ||
          Check(x, y, z - 1)))
     {
         value |= FurnaceNBlock.SetHeatLevel(Terrain.ExtractData(Utils.Terrain.GetCellValue(x, y, z)), 1) << 14;
     }
     Utils.SubsystemTerrain.ChangeCell(x, y, z, value);
 }
        /// <summary>
        /// Encoding of the 'Mech Structure Conversion table
        /// on SO359.
        /// </summary>
        /// <param name="sEngineType"></param>
        /// <param name="MechTonnage"></param>
        /// <returns></returns>
        static public int GetStructure(ComponentEngine engine, int MechTonnage)
        {
            Dictionary <string, int[]> dicTechnologyBase = null;

            if (engine.TechnologyBase == TECHNOLOGY_BASE.CLAN)
            {
                dicTechnologyBase = ClanStructureLookup;
            }
            else
            {
                dicTechnologyBase = ISStructureLookup;
            }

            foreach (string sEngineType in dicTechnologyBase.Keys)
            {
                if (Utilities.IsSynonymFor(sEngineType, engine.EngineType))
                {
                    return(dicTechnologyBase[sEngineType][(int)((MechTonnage - 10) / 5)]);
                }
            }

            return(0);
        }
Esempio n. 8
0
 public void Update(float dt)
 {
     if (HeatLevel > 0f)
     {
         m_fireTimeRemaining = MathUtils.Max(0f, m_fireTimeRemaining - dt);
         if (m_fireTimeRemaining == 0f)
         {
             HeatLevel = 0f;
         }
     }
     if (m_updateSmeltingRecipe)
     {
         m_updateSmeltingRecipe = false;
         m_smeltingRecipe2      = FindSmeltingRecipe();
         if (m_smeltingRecipe2 != m_smeltingRecipe)
         {
             m_smeltingRecipe = m_smeltingRecipe2;
             SmeltingProgress = 0f;
             //m_music = 0;
         }
     }
     if (m_smeltingRecipe2 != null)
     {
         Point3 coordinates = m_componentBlockEntity.Coordinates;
         m_smeltingRecipe = ComponentEngine.IsPowered(Utils.Terrain, coordinates.X, coordinates.Y, coordinates.Z) ? m_smeltingRecipe2 : null;
     }
     if (m_smeltingRecipe == null)
     {
         HeatLevel           = 0f;
         m_fireTimeRemaining = 0f;
         //m_music = -1;
     }
     else
     {
         m_fireTimeRemaining = 100f;
     }
     if (m_fireTimeRemaining <= 0f)
     {
         m_smeltingRecipe = null;
         SmeltingProgress = 0f;
         //m_music = -1;
     }
     if (m_smeltingRecipe != null)
     {
         SmeltingProgress = MathUtils.Min(SmeltingProgress + m_speed * dt, 1f);
         if (SmeltingProgress >= 1f)
         {
             for (int l = 0; l < m_furnaceSize; l++)
             {
                 if (m_slots[l].Count > 0)
                 {
                     m_slots[l].Count--;
                 }
             }
             m_slots[ResultSlotIndex].Value  = ItemBlock.IdTable[m_smeltingRecipe];
             m_slots[ResultSlotIndex].Count += m_count;
             m_smeltingRecipe       = null;
             SmeltingProgress       = 0f;
             m_updateSmeltingRecipe = true;
         }
     }
 }
Esempio n. 9
0
 public void OnNeighborBlockChanged(SubsystemTerrain subsystemTerrain, int neighborX, int neighborY, int neighborZ)
 {
     Powered = ComponentEngine.IsPowered(subsystemTerrain.Terrain, Point.X, Point.Y, Point.Z);
 }
Esempio n. 10
0
 public void OnBlockAdded(SubsystemTerrain subsystemTerrain, int value, int oldValue)
 {
     Powered = ComponentEngine.IsPowered(subsystemTerrain.Terrain, Point.X, Point.Y, Point.Z);
 }