/// <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; }
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; }