Exemplo n.º 1
0
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);

            var generatorBuilder = builder as MyObjectBuilder_ReactorDefinition;
            MyDebug.AssertDebug(generatorBuilder != null, "Initializing thrust definition using wrong object builder.");
            InventorySize = generatorBuilder.InventorySize;
            InventoryMaxVolume = InventorySize.X * InventorySize.Y * InventorySize.Z;

            FuelId = generatorBuilder.FuelId;
            FuelDefinition = MyDefinitionManager.Static.GetPhysicalItemDefinition(FuelId);
            MyDebug.AssertDebug(FuelDefinition != null);

            FuelItem = MyObjectBuilderSerializer.CreateNewObject(generatorBuilder.FuelId) as MyObjectBuilder_PhysicalObject;
            MyDebug.AssertDebug(FuelItem != null);

            //StringBuilder constraintTooltip = new StringBuilder();
            //constraintTooltip.Append(FuelDefinition.DisplayNameText);
            //InventoryConstraint = new MyInventoryConstraint(constraintTooltip).Add(FuelId);
            String constraintTooltip = FuelDefinition.DisplayNameText;
            InventoryConstraint = new MyInventoryConstraint(constraintTooltip).Add(FuelId);
        }
Exemplo n.º 2
0
        public override void Init(MyComponentDefinitionBase definition)
        {
            base.Init(definition);

            var inventoryComponentDefinition = definition as MyInventoryComponentDefinition;
            if (inventoryComponentDefinition != null)
            {
                m_maxVolume = (MyFixedPoint)inventoryComponentDefinition.Volume;
                m_maxMass = (MyFixedPoint)inventoryComponentDefinition.Mass;
                RemoveEntityOnEmpty = inventoryComponentDefinition.RemoveEntityOnEmpty;
                m_multiplierEnabled = inventoryComponentDefinition.MultiplierEnabled;
                m_maxItemCount = inventoryComponentDefinition.MaxItemCount;
                Constraint = inventoryComponentDefinition.InputConstraint;
            }
        }
        public void LoadPostProcess()
        {
            // Remove invalid blueprint classes
            for (int i = 0; i < BlueprintClasses.Count;)
            {
                if (!BlueprintClassCanBeUsed(BlueprintClasses[i]))
                    BlueprintClasses.RemoveAt(i);
                else
                    ++i;
            }

            // Set the constraint icons only if all the blueprint classes agree upon them
            string firstInputIcon = null;
            string firstOutputIcon = null;
            if (BlueprintClasses.Count != 0)
            {
                firstInputIcon = BlueprintClasses[0].InputConstraintIcon;
                firstOutputIcon = BlueprintClasses[0].OutputConstraintIcon;

                for (int i = 1; i < BlueprintClasses.Count; ++i)
                {
                    if (BlueprintClasses[i].InputConstraintIcon != firstInputIcon) firstInputIcon = null;
                    if (BlueprintClasses[i].OutputConstraintIcon != firstOutputIcon) firstOutputIcon = null;
                }
            }

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat(MySpaceTexts.ToolTipItemFilter_GenericProductionBlockInput, DisplayNameText);
            InputInventoryConstraint = new MyInventoryConstraint(sb.ToString(), firstInputIcon);

            sb = new StringBuilder();
            sb.AppendFormat(MySpaceTexts.ToolTipItemFilter_GenericProductionBlockOutput, DisplayNameText);
            OutputInventoryConstraint = new MyInventoryConstraint(sb.ToString(), firstOutputIcon);

            for (int i = 0; i < BlueprintClasses.Count; ++i)
            {
                foreach (var blueprint in BlueprintClasses[i])
                {
                    foreach (var input in blueprint.Prerequisites)
                        InputInventoryConstraint.Add(input.Id);
                    foreach (var output in blueprint.Results)
                        OutputInventoryConstraint.Add(output.Id);
                }
            }
        }