public void drawAfter(QuarterViewDrawer view, DrawContextEx dc)
        {
            if (!isPlacing)
            {
                return;
            }
            Location loc = lastMouse;

            if (loc == world.Location.UNPLACED)
            {
                return;
            }
            if (!SlopeRailRoad.canCreateSlope(loc, direction))
            {
                return;
            }

            Surface canvas = dc.surface;

            int Z = loc.z;

            for (int i = 0; i < 4; i++)
            {
                if (i == 2)
                {
                    loc.z++;
                }

                for (int j = World.world.getGroundLevel(loc); j < Z; j++)
                {
                    // TODO: ground level handling
                    BridgePierVoxel.defaultSprite.drawAlpha(
                        canvas, view.fromXYZToClient(loc.x, loc.y, j));
                }

                RailPattern.getSlope(direction, i).drawAlpha(
                    canvas, view.fromXYZToClient(loc));
                loc += direction;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="view"></param>
        /// <param name="dc"></param>
        public void DrawAfter(QuarterViewDrawer view, DrawContext dc)
        {
            Train tr = this.selectedTrain;

            if (tr == null || !tr.head.State.isInside)
            {
                return;
            }

            // draw an arrow that indicates the direction of the train
            CarState.Inside ci = tr.head.State.asInside();

            Point pt = view.fromXYZToClient(ci.location);

            pt.Y -= 12;

            ci.direction.drawArrow(dc.Surface, pt);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="view"></param>
        /// <param name="canvas"></param>
        /// <param name="location"></param>
        /// <param name="point"></param>
        public void DrawVoxel(QuarterViewDrawer view, DrawContext canvas, Location location, Point point)
        {
            IDictionary dic = (IDictionary)canvas.Tag;

            if (dic != null)
            {
                RailPattern rp = (RailPattern)dic[location];
                if (rp != null)
                {
                    for (int j = WorldDefinition.World.GetGroundLevel(location); j < location.z; j++)
                    {
                        // TODO: ground level handling
                        BridgePierVoxel.defaultSprite.DrawAlpha(
                            canvas.Surface,
                            view.fromXYZToClient(location.x, location.y, j));
                    }

                    rp.DrawAlpha(canvas.Surface, point);
                }
            }
        }
        public void drawVoxel(QuarterViewDrawer view, DrawContextEx canvas, Location loc, Point pt)
        {
            IDictionary dic = (IDictionary)canvas.tag;

            if (dic != null)
            {
                RailPattern rp = (RailPattern)dic[loc];
                if (rp != null)
                {
                    for (int j = World.world.getGroundLevel(loc); j < loc.z; j++)
                    {
                        // TODO: ground level handling
                        BridgePierVoxel.defaultSprite.drawAlpha(
                            canvas.surface,
                            view.fromXYZToClient(loc.x, loc.y, j));
                    }

                    rp.drawAlpha(canvas.surface, pt);
                }
            }
        }