Ejemplo n.º 1
0
        private void DrawTransparentBox(MatrixD matrix, BoundingBoxD bb, Color?lineColor = null, bool drawBorder = true)
        {
            count++;
            Color color = Color.FromNonPremultiplied(new Vector4(0.1f, 0.1f, 0.1f, 0.7f));

            MySimpleObjectDraw.DrawTransparentBox(ref matrix, ref bb, ref color, MySimpleObjectRasterizer.Solid, 1, 0.04f, MyStringId.GetOrCompute("HoneyComb"), null, false);

            if (!drawBorder)
            {
                return;
            }

            var   setting  = NaniteConstructionManager.BeaconTerminalSettings[BeaconBlock.EntityId];
            var   diff     = (float)bb.Max.Max() / NaniteConstructionManager.Settings.AreaBeaconMaxSize;
            float lineSize = (0.1f * diff) + 0.01f;

            Color checkLineColor = Color.FromNonPremultiplied(new Vector4(1f, 1f, 1f, 0.7f));

            if (lineColor.HasValue)
            {
                checkLineColor = lineColor.Value;
            }

            foreach (var item in bb.GetLines())
            {
                var to     = Vector3D.Transform(item.To, matrix);
                var from   = Vector3D.Transform(item.From, matrix);
                var dir    = Vector3D.Normalize(to - from);
                var length = (to - from).Length();
                MyTransparentGeometry.AddLineBillboard(MyStringId.GetOrCompute("Firefly"), checkLineColor, from, dir, (float)length, lineSize);
            }
        }