예제 #1
0
            public override void render(Display display, RenderTarget rt, AddSpriteDelegate addSprite)
            {
                base.render(display, rt, addSprite);

                RenderDataBattery renderData = RenderData as RenderDataBattery;

                float positionX = renderData.Position.X + rt.DisplayOffset.X - (renderData.InnerSize.X * 0.5f) + (renderData.Size.X * 0.5f);
                float positionY = renderData.Position.Y + rt.DisplayOffset.Y - (renderData.InnerSize.Y * 0.5f) + (renderData.Size.Y * 0.5f);
                float offsetX   = renderData.Size.X;
                float offsetY   = renderData.Size.Y;

                // draw batteries
                for (int r = 0; r < renderData.Rows; r++)
                {
                    for (int c = 0; c < renderData.Cols; c++)
                    {
                        int index = (renderData.Cols * r) + c;
                        if (index >= renderData.Batteries.Count)
                        {
                            break;
                        }

                        IMyBatteryBlock battery  = renderData.Batteries[index];
                        Vector2         position = new Vector2(positionX + (offsetX * c), positionY + (offsetY * r));
                        drawSingleBattery(position, renderData.Scale,
                                          battery.CurrentStoredPower / battery.MaxStoredPower,
                                          (battery.CurrentInput / battery.MaxInput) - (battery.CurrentOutput / battery.MaxOutput),
                                          DataCollectorBase <IMyBatteryBlock> .isOn(battery),
                                          battery.ChargeMode, addSprite);
                    }
                }
            }
예제 #2
0
 public DAOff(DataCollectorBase <T> dc)
 {
     dc_ = dc;
 }
예제 #3
0
 public DAFunctional(DataCollectorBase <T> dc)
 {
     dc_ = dc;
 }