public override void prepareRendering(Display display) { base.prepareRendering(display); RenderDataBattery renderData = RenderData as RenderDataBattery; DataCollectorBattery dcBattery = DataCollector as DataCollectorBattery; if (dcBattery == null) { renderData.Batteries = new List <IMyBatteryBlock>(); return; } renderData.Batteries = dcBattery.Batteries; //renderData.renderSize = SizeType == ValueType.Relative ? Size * display.RenderArea.Size : Size; //renderData.renderPosition = PositionType == ValueType.Relative ? Position * display.RenderArea.Size : Position; // calculate rows and cols size Vector2 batterySize = batterySize_ + margin_; // full automatic if (rows_ <= 0 && cols_ <= 0) { for (int curCols = renderData.Batteries.Count; curCols > 0; curCols--) { // padding == 2pixel int curRows = (int)Math.Ceiling((double)renderData.Batteries.Count / curCols); Vector2 curSize = new Vector2(renderData.InnerSize.X / curCols, renderData.InnerSize.Y / curRows); float curScale = Math.Min(curSize.X / batterySize.X, curSize.Y / batterySize.Y); if (curScale < renderData.Scale) { break; } renderData.Scale = curScale; renderData.Size = curSize; renderData.Rows = curRows; renderData.Cols = curCols; } } else { // calculate rows if (rows_ <= 0) { renderData.Rows = (int)Math.Ceiling((double)renderData.Batteries.Count / cols_); } // calculate cols else if (cols_ <= 0) { renderData.Cols = (int)Math.Ceiling((double)renderData.Batteries.Count / rows_); } renderData.Size = new Vector2(renderData.InnerSize.X / renderData.Cols, renderData.InnerSize.Y / renderData.Rows); renderData.Scale = Math.Min(renderData.Size.X / batterySize.X, renderData.Size.Y / batterySize.Y); } }
IDataCollector createDataCollector(string name, Configuration.Options options, string connector) { IDataCollector dataCollector = null; switch (name) { case "hydrogen": dataCollector = new DataCollectorGasTank("hydrogentank", "Hydrogen", options, connector); break; case "oxygen": dataCollector = new DataCollectorGasTank("oxygentank", "Oxygen", options, connector); break; case "inventory": dataCollector = new DataCollectorInventory(options, "", connector); break; case "cargo": dataCollector = new DataCollectorInventory(options, $"{Default.MyObjectBuilder}_CargoContainer", connector); break; case "battery": dataCollector = new DataCollectorBattery(options, connector); break; case "solar": dataCollector = new DataCollectorPowerProducer <IMySolarPanel>("solar", "", options, connector); break; case "windturbine": dataCollector = new DataCollectorPowerProducer <IMyPowerProducer>("windturbine", $"{Default.MyObjectBuilder}_WindTurbine", options, connector); break; case "reactor": dataCollector = new DataCollectorReactor(options, connector); break; case "generator": dataCollector = new DataCollectorGenerator(options, connector); break; case "powerproducer": dataCollector = new DataCollectorPowerProducer <IMyPowerProducer>("powerproducer", "", options, connector); break; case "airvent": dataCollector = new DataCollectorAirVent(options, connector); break; case "jumpdrive": dataCollector = new DataCollectorJumpDrive(options, connector); break; case "landinggear": dataCollector = new DataCollectorLandingGear(options, connector); break; case "connector": dataCollector = new DataCollectorConnector(options, connector); break; case "shipcontroller": dataCollector = new DataCollectorShipController(options, connector); break; case "production": dataCollector = new DataCollectorProduction <IMyProductionBlock>("production", "", Unit.None, options, connector); break; case "refinery": dataCollector = new DataCollectorProduction <IMyRefinery>("refinery", "", Unit.Gram, options, connector); break; case "assembler": dataCollector = new DataCollectorProduction <IMyAssembler>("assembler", "", Unit.None, options, connector); break; case "piston": dataCollector = new DataCollectorPiston(options, connector); break; case "thruster": dataCollector = new DataCollectorThruster(options, connector); break; case "onoff": dataCollector = new DataCollectorProperty("OnOff", "", options, connector); break; case "property": dataCollector = new DataCollectorProperty("property", "", options, connector); break; } if (dataCollector != null) { Created++; Manager.JobManager.queueJob((dataCollector as VISObject).getConstructionJob()); dataCollectors_.Add(dataCollector); return(dataCollector); } else { log(Console.LogType.Error, $"Invalid data collector name {name}"); } return(null); }
public Charging(DataCollectorBattery dc_) { collector_ = dc_; }
public InOut(DataCollectorBattery collector) { dc_ = collector; }
public Capacity(DataCollectorBattery collector) { dc_ = collector; }