Esempio n. 1
0
        /// <summary>
        /// Retrieve the total amount of componets to build a blueprint
        /// (blueprint loaded inside projector)
        /// </summary>
        /// <param name="projector"></param>
        /// <param name="componentList"></param>
        public static int NeededComponents4Blueprint(Sandbox.ModAPI.Ingame.IMyProjector srcProjector, Dictionary <MyDefinitionId, VRage.MyFixedPoint> componentList)
        {
            var projector = srcProjector as IMyProjector;

            if (componentList == null || projector == null || !projector.IsProjecting)
            {
                return(-1);
            }

            //Add buildable blocks
            var projectedCubeGrid = projector.ProjectedGrid;

            if (projectedCubeGrid != null)
            {
                var projectedBlocks = new List <IMySlimBlock>();
                projectedCubeGrid.GetBlocks(projectedBlocks);
                foreach (IMySlimBlock block in projectedBlocks)
                {
                    var blockDefinition = block.BlockDefinition as MyCubeBlockDefinition;
                    foreach (var component in blockDefinition.Components)
                    {
                        if (componentList.ContainsKey(component.Definition.Id))
                        {
                            componentList[component.Definition.Id] += component.Count;
                        }
                        else
                        {
                            componentList[component.Definition.Id] = component.Count;
                        }
                    }
                }
            }
            return(componentList.Count());
        }
 public override void Init(MyObjectBuilder_EntityBase objectBuilder)
 {
     Entity.NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME;
     _self = (IMyProjector)Entity;
     BasePowerRequirement = MyDefinitionManager.Static.Definitions
                            .GetDefinition <MyProjectorDefinition>(_self.BlockDefinition)
                            .RequiredPowerInput;
 }
Esempio n. 3
0
 public override void Init(Sandbox.Common.ObjectBuilders.MyObjectBuilder_EntityBase objectBuilder)
 {
     projector           = (Entity as Sandbox.ModAPI.Ingame.IMyProjector);
     Entity.NeedsUpdate |= VRage.ModAPI.MyEntityUpdateEnum.EACH_100TH_FRAME;
 }