private void DrawSignatureY(CoordinateAxisY axisY, CoordinateSystemSignature signature) { int countPints = axisY.CountPoints / 2; float dx = signature.Font.Size, dy = signature.Font.Size; float lineWight = graphics.ClipBounds.Height / 2; var positivePart = new DrawSettings(lineWight - signature.Font.Size, countPints, axisY.MaxValue, new Direction(dx, -dy)); var negativePart = new DrawSettings(lineWight - signature.Font.Size, countPints, axisY.MinValue, new Direction(dx, dy)); DrawSignature(positivePart, axisY, signature); DrawSignature(negativePart, axisY, signature); }
//=========== DRAWING ============ #region Drawing /** <summary> Constructs the default object. </summary> */ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { try { graphicsData.paletteImages[drawSettings.Rotation * 2 + 0].DrawWithOffset(p, position, drawSettings.Darkness, false, Header.Flags.HasFlag(PathBannerFlags.Color1) ? drawSettings.Remap1 : RemapColors.None, RemapColors.None, RemapColors.None ); graphicsData.paletteImages[drawSettings.Rotation * 2 + 1].DrawWithOffset(p, position, drawSettings.Darkness, false, Header.Flags.HasFlag(PathBannerFlags.Color1) ? drawSettings.Remap1 : RemapColors.None, RemapColors.None, RemapColors.None ); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
public HomeController(IMemoryCache memoryCache, IAsk ask, ISettings settings, IParticipation participation, IDraws draws, IOptions <DrawSettings> drawSettings, IOptions <SetupSettings> setupSettings, IOptions <FeaturesSettings> featuresSettings) { _memoryCache = memoryCache; _ask = ask; _settings = settings; _participation = participation; _draws = draws; _drawSettings = drawSettings.Value; _setupSettings = setupSettings.Value; _featuresSettings = featuresSettings.Value; }
private void DrawSignatureX(CoordinateAxisX axisX, CoordinateSystemSignature signature) { int countPoints = axisX.CountPoints; float dx = signature.Font.Size, dy = signature.Font.Size; var settings = new DrawSettings(graphics.ClipBounds.Width - (24 + signature.Font.Size), countPoints, axisX.MaxValue, new Direction(dx, dy)) { StartPoint = 1, StartValue = 1, Offset = new Offset(24, 0) }; DrawSignature(settings, axisX, signature); DrawMarkX(settings, axisX, signature); }
/**<summary>Draws the path pole supports.</summary>*/ public void DrawPoleSupport(PaletteImage p, Point position, DrawSettings drawSettings) { position.Y += drawSettings.Elevation * 2; if (drawSettings.Slope != -1) { position.Y -= drawSettings.Elevation / 2; } int offset = 129; while (drawSettings.Elevation > 8) { graphicsData.paletteImages[offset + 15].DrawWithOffset(p, position, drawSettings.Darkness, false); drawSettings.Elevation -= 8; position.Y += 16; } if (Header.Flags.HasFlag(FootpathFlags.PoleBase)) { position.Y -= 6; graphicsData.paletteImages[offset + 9].DrawWithOffset(p, position, drawSettings.Darkness, false); int slopeOffset = 17; switch (drawSettings.Slope) { case 0: slopeOffset = 19; break; case 1: slopeOffset = 25; break; case 2: slopeOffset = 26; break; case 3: slopeOffset = 20; break; } graphicsData.paletteImages[offset + slopeOffset].DrawWithOffset(p, Point.Add(position, new Size(0, 6)), drawSettings.Darkness, false); } else { graphicsData.paletteImages[offset + 15].DrawWithOffset(p, position, drawSettings.Darkness, false); } }
//=========== DRAWING ============ #region Drawing /** <summary> Constructs the default object. </summary> */ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { try { bool flat = Header.Flags.HasFlag(WallFlags.Flat); bool twoSides = Header.Flags.HasFlag(WallFlags.TwoSides); bool door = Header.Flags.HasFlag(WallFlags.Door); bool glass = Header.Flags.HasFlag(WallFlags.Glass); bool animation = ((Header.Effects >> 4) & 0x1) == 0x1; int offset = (2 + (!flat ? 4 : 0)) * (twoSides ? 2 : 1) * (door ? 2 : 1); int slopeRotation = (drawSettings.Rotation % (twoSides ? 4 : 2)) * (door ? 2 : 1); if (drawSettings.Slope >= 0 && !flat) { if (drawSettings.Slope % 2 != drawSettings.Rotation % 2) { if (drawSettings.Slope >= 2) { slopeRotation = (7 - drawSettings.Slope) * (door ? 2 : 1); } else { slopeRotation = (3 - drawSettings.Slope) * (door ? 2 : 1); } } } DrawFrame(p, position, drawSettings, slopeRotation + drawSettings.Frame * offset, false); if (door) { DrawFrame(p, position, drawSettings, slopeRotation + 1 + drawSettings.Frame * offset, false); } if (glass) { DrawFrame(p, position, drawSettings, offset + slopeRotation + drawSettings.Frame * offset, true); } } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Draws the elevated path.</summary>*/ public void DrawElevatedPath(PaletteImage p, Point position, DrawSettings drawSettings, int rotation, uint pathConnections) { if (drawSettings.Elevation == 0) { return; } int offset = 109; int connection = 0; if (PathSpriteIndexes.ContainsKey(pathConnections & 0xF)) { connection = PathSpriteIndexes[pathConnections & 0xF]; } if (drawSettings.Slope == -1) { if (Header.Flags.HasFlag(FootpathFlags.PoleSupports)) { graphicsData.paletteImages[offset + connection].DrawWithOffset(p, position, drawSettings.Darkness, false); } else { offset = 158; graphicsData.paletteImages[offset + ((rotation + 1) % 2)].DrawWithOffset(p, position, drawSettings.Darkness, false); } } else { if (Header.Flags.HasFlag(FootpathFlags.PoleSupports)) { graphicsData.paletteImages[offset + 16 + (drawSettings.Slope + 3) % 4].DrawWithOffset(p, position, drawSettings.Darkness, false); } else { offset = 158; graphicsData.paletteImages[offset + 2 + (drawSettings.Slope + 3) % 4].DrawWithOffset(p, position, drawSettings.Darkness, false); } } }
/**<summary>Draws all 4 parts of the path in order.</summary>*/ public void DrawPathParts(PaletteImage p, Point position, DrawSettings drawSettings, bool[,] connections) { int[] indexes = { 7, 3, 0, 6, -1, 4, 2, 1, 5 }; int slope = drawSettings.Slope; for (int type = 0; type < 4; type++) { for (int i = 0; i < indexes.Length; i++) { if (indexes[i] == -1) { drawSettings.Slope = slope; switch (type) { case 0: DrawSupports(p, position, drawSettings, Math.Max(0, slope), drawSettings.PathConnections); break; case 1: DrawElevatedPath(p, position, drawSettings, Math.Max(0, slope), drawSettings.PathConnections); break; case 2: DrawPath(p, position, drawSettings, drawSettings.PathConnections); break; case 3: DrawRailing(p, position, drawSettings, drawSettings.PathConnections); break; } drawSettings.Slope = -1; } else if ((drawSettings.PathConnections & (1 << indexes[i])) != 0) { switch (type) { case 0: DrawSupports(p, GetConnectionPoint(position, indexes[i], slope), drawSettings, Math.Max(0, slope), ConvertConnections(connections, indexes[i])); break; case 1: DrawElevatedPath(p, GetConnectionPoint(position, indexes[i], slope), drawSettings, Math.Max(0, slope), ConvertConnections(connections, indexes[i])); break; case 2: DrawPath(p, GetConnectionPoint(position, indexes[i], slope), drawSettings, ConvertConnections(connections, indexes[i])); break; case 3: DrawRailing(p, GetConnectionPoint(position, indexes[i], slope), drawSettings, ConvertConnections(connections, indexes[i])); break; } } } } }
//=========== DRAWING ============ #region Drawing /** <summary> Constructs the default object. </summary> */ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { try { int xoffset = ((drawSettings.Rotation == 1 || drawSettings.Rotation == 2) ? -32 : 32); int yoffset = ((drawSettings.Rotation == 2 || drawSettings.Rotation == 3) ? -16 : 16); if (drawSettings.Rotation >= 2) { xoffset *= -1; yoffset *= -1; } int sideFrame = (drawSettings.Rotation < 2 ? 0 : 1); graphicsData.paletteImages[drawSettings.Rotation * 3 + 1 + sideFrame].DrawWithOffset(p, Point.Add(position, new Size(-xoffset, -yoffset)), drawSettings.Darkness, false); graphicsData.paletteImages[drawSettings.Rotation * 3 + 0].DrawWithOffset(p, position, drawSettings.Darkness, false); graphicsData.paletteImages[drawSettings.Rotation * 3 + 2 - sideFrame].DrawWithOffset(p, Point.Add(position, new Size(xoffset, yoffset)), drawSettings.Darkness, false); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/** <summ * #endregion * //=========== DRAWING ============ #region Drawing * * /** <summary> Constructs the default object. </summary> */ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { try { WaterSprites[2].DrawWithOffset(p, Point.Add(position, new Size(0, 0)), drawSettings.Darkness, false); WaterSprites[3].DrawWithOffset(p, Point.Add(position, new Size(2, 0)), drawSettings.Darkness, false); WaterSprites[4].DrawWithOffset(p, Point.Add(position, new Size(-2, 0)), drawSettings.Darkness, false); WaterSprites[3].DrawWithOffset(p, Point.Add(position, new Size(-30, 16)), drawSettings.Darkness, false); WaterSprites[4].DrawWithOffset(p, Point.Add(position, new Size(30, 16)), drawSettings.Darkness, false); WaterSprites[0].DrawWithOffset(p, Point.Add(position, new Size(0, -15)), drawSettings.Darkness, true); WaterSprites[1].DrawWithOffset(p, Point.Add(position, new Size(0, -15)), drawSettings.Darkness, false); /*g.DrawImage(PreviewImage, position.X - 32, position.Y - 16); * for (int i = 0; i < 5; i++) * Water.WaterPalette.Colors[230 + i] = graphicsData.Palettes[1].Colors[(i * 3 + frame) % 15]; * for (int i = 0; i < 5; i++) * Water.WaterPalette.Colors[235 + i] = graphicsData.Palettes[4].Colors[(i * 3 + frame) % 15]; * Water.WaterSparkle.Draw(g, position.X + 11 - 32, position.Y + 2 - 16, Water.WaterPalette, -1, -1, -1);*/ } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Gets the palette to draw the object with.</summary>*/ public override Palette GetPalette(DrawSettings drawSettings) { Palette palette = new Palette(255); for (int i = 0; i < 255; i++) { if (i >= 190 && i < 202) { palette.Colors[i] = graphicsData.palettes[0].Colors[i - 10]; } else { palette.Colors[i] = Palette.DefaultPalette.Colors[i]; } } for (int i = 0; i < 5; i++) { palette.Colors[230 + i] = graphicsData.palettes[1 + drawSettings.Darkness].Colors[(i * 3 + drawSettings.Frame) % 15]; palette.Colors[235 + i] = graphicsData.palettes[4 + drawSettings.Darkness].Colors[(i * 3 + drawSettings.Frame) % 15]; } return(palette); }
/**<summary>Draws the path supports.</summary>*/ public void DrawSupports(PaletteImage p, Point position, DrawSettings drawSettings, int rotation, uint pathConnections) { if (drawSettings.Elevation == 0) { return; } int connection = 0; if (PathSpriteIndexes.ContainsKey(pathConnections & 0xF)) { connection = PathSpriteIndexes[pathConnections & 0xF]; } if (Header.Flags.HasFlag(FootpathFlags.PoleSupports)) { if (CheckConnections(pathConnections, "#######0")) { DrawPoleSupport(p, Point.Add(position, new Size(12, -6)), drawSettings); } if (CheckConnections(pathConnections, "####0###")) { DrawPoleSupport(p, Point.Add(position, new Size(-12, -6)), drawSettings); } if (CheckConnections(pathConnections, "######0#")) { DrawPoleSupport(p, Point.Add(position, new Size(12, 6)), drawSettings); } if (CheckConnections(pathConnections, "#####0##")) { DrawPoleSupport(p, Point.Add(position, new Size(-12, 6)), drawSettings); } } else { DrawScaffoldSupport(p, Point.Add(position, new Size(-12, 6)), drawSettings, rotation); } }
//=========== DRAWING ============ #region Drawing /**<summary>Draws the path railing.</summary>*/ public void DrawRailing(PaletteImage p, Point position, DrawSettings drawSettings, uint pathConnections) { int offset = (drawSettings.Queue ? 51 : 0); int connection = 0; if (PathSpriteIndexes.ContainsKey(pathConnections) && !(drawSettings.Elevation > 0 && !Header.Flags.HasFlag(FootpathFlags.OverlayPath))) { connection = PathSpriteIndexes[pathConnections]; } else if (PathSpriteIndexes.ContainsKey(pathConnections & 0xF)) { pathConnections &= 0xF; connection = PathSpriteIndexes[pathConnections & 0xF]; } if (drawSettings.Slope == -1) { if (drawSettings.Queue) { offset = 87; } else if (drawSettings.Elevation > 0) { offset = 73; } // Even offset additions are SW to NE direction railings // Odd offset additions are NW to SE direction railings // Offset additions 0-1 are no-ending railings // Offset additions 2-3 are South-ending railings // Offset additions 4-5 are North-ending railings // Outside corners use ending railings at the corner if (drawSettings.Queue || drawSettings.Elevation > 0) { // Draw ending railings if (CheckConnections(pathConnections, "####0#10")) // NE N-ending { graphicsData.paletteImages[offset + 4].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####1#00")) // NE S-ending { graphicsData.paletteImages[offset + 2].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####01#0")) // NW N-ending { graphicsData.paletteImages[offset + 5].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####00#1")) // NW S-ending { graphicsData.paletteImages[offset + 3].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####100")) // SE N-ending { graphicsData.paletteImages[offset + 5].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####001")) // SE S-ending { graphicsData.paletteImages[offset + 3].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####001#")) // SW N-ending { graphicsData.paletteImages[offset + 4].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####100#")) // SW S-ending { graphicsData.paletteImages[offset + 2].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } // Draw no-ending railings if (CheckConnections(pathConnections, "####01#1")) // NW { graphicsData.paletteImages[offset + 1].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####101")) // SE { graphicsData.paletteImages[offset + 1].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####1#10")) // NE { graphicsData.paletteImages[offset + 0].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####101#")) // SW { graphicsData.paletteImages[offset + 0].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } // Draw inside corner railings if (CheckConnections(pathConnections, "###0##11")) // E { graphicsData.paletteImages[offset + 11].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "##0##11#")) // S { graphicsData.paletteImages[offset + 12].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#0##11##")) // W { graphicsData.paletteImages[offset + 13].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "0###1##1")) // N { graphicsData.paletteImages[offset + 10].DrawWithOffset(p, position, drawSettings.Darkness, false); } } } else { if (drawSettings.Queue) { offset = 87; } else { offset = 73; } switch (drawSettings.Slope) { case 0: graphicsData.paletteImages[offset + 6].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 6].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); break; case 1: graphicsData.paletteImages[offset + 8].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 8].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); break; case 2: graphicsData.paletteImages[offset + 7].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 7].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); break; case 3: graphicsData.paletteImages[offset + 9].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 9].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); break; } } }
/**<summary>Draws the object data in the dialog.</summary>*/ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { position = Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)); graphicsData.paletteImages[drawSettings.Rotation * 2 + 0].DrawWithOffset(p, position, drawSettings.Darkness, false, Header.Flags.HasFlag(PathBannerFlags.Color1) ? drawSettings.Remap1 : RemapColors.None, RemapColors.None, RemapColors.None ); graphicsData.paletteImages[drawSettings.Rotation * 2 + 1].DrawWithOffset(p, position, drawSettings.Darkness, false, Header.Flags.HasFlag(PathBannerFlags.Color1) ? drawSettings.Remap1 : RemapColors.None, RemapColors.None, RemapColors.None ); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Draws the object data in the dialog.</summary>*/ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { position = Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)); WaterSprites[2].DrawWithOffset(p, Point.Add(position, new Size(0, 0)), drawSettings.Darkness, false); WaterSprites[3].DrawWithOffset(p, Point.Add(position, new Size(2, 0)), drawSettings.Darkness, false); WaterSprites[4].DrawWithOffset(p, Point.Add(position, new Size(-2, 0)), drawSettings.Darkness, false); WaterSprites[3].DrawWithOffset(p, Point.Add(position, new Size(-30, 16)), drawSettings.Darkness, false); WaterSprites[4].DrawWithOffset(p, Point.Add(position, new Size(30, 16)), drawSettings.Darkness, false); WaterSprites[0].DrawWithOffset(p, Point.Add(position, new Size(0, -15)), drawSettings.Darkness, true); WaterSprites[1].DrawWithOffset(p, Point.Add(position, new Size(0, -15)), drawSettings.Darkness, false); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Draws the object data in the dialog.</summary>*/ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { position = Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)); graphicsData.paletteImages[71].Draw(p, Point.Add(position, new Size(-4 - 44, -16)), 0, false); graphicsData.paletteImages[72].Draw(p, Point.Add(position, new Size(4, -16)), 0, false); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
private void AddGun(string subType, DrawSettings settings) { drawSettings.Add(new MyDefinitionId(typeof(MyObjectBuilder_PhysicalGunObject), subType), settings); }
//=========== DRAWING ============ #region Drawing /**<summary>Constructs the default object.</summary>*/ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { try { if (Header.RideCategory == RideCategories.Stall) { graphicsData.paletteImages[3 + drawSettings.Rotation].DrawWithOffset(p, position, drawSettings.Darkness, false, drawSettings.Remap1, RemapColors.None, RemapColors.None ); if ((drawSettings.Rotation == 0 || drawSettings.Rotation == 3) && (Header.TrackType == TrackTypes.Restroom || Header.TrackType == TrackTypes.FirstAid)) { graphicsData.paletteImages[3 + 4 + drawSettings.Rotation / 3].DrawWithOffset(p, position, drawSettings.Darkness, false, drawSettings.Remap1, RemapColors.None, RemapColors.None ); } } else { int nextCarOffset = 0; for (int i = 0; i <= (int)drawSettings.CurrentCar; i++) { CarHeader car = Header.CarTypeList[i]; int C = 0; // Offset for this car int R = car.LastRotationFrame + 1; // number of rotation frames int F = 1; // Number of frames per rotation int P = car.RiderSprites; // number of rider sprites int A = 1; // number of animation frames if (car.IsAnimated) { A = 4; } if (car.Flags.HasFlag(CarFlags.Spinning)) { if (car.Flags.HasFlag(CarFlags.SpinningIndependantWheels)) { F *= (car.LastRotationFrame + 1); } } if (car.Flags.HasFlag(CarFlags.Swinging)) { int swingingFrames = 5; if (car.Flags.HasFlag(CarFlags.SwingingMoreFrames)) { swingingFrames += 2; } if (car.Flags.HasFlag(CarFlags.SwingingSlide)) { swingingFrames += 2; } if (car.Flags.HasFlag(CarFlags.SwingingTilting)) { swingingFrames -= 2; } F *= swingingFrames; } if (car.SpecialFrames != 0) { F *= car.SpecialFrames; } if (i == (int)drawSettings.CurrentCar) { graphicsData.paletteImages[3 + nextCarOffset + drawSettings.Rotation * F * A + drawSettings.Frame].DrawWithOffset(p, position, drawSettings.Darkness, false, drawSettings.Remap1, (car.Flags.HasFlag(CarFlags.Remap2) ? drawSettings.Remap2 : RemapColors.None), (!car.Flags.HasFlag(CarFlags.NoRemap3) ? drawSettings.Remap3 : RemapColors.None)); } else { if (car.SpriteFlags.HasFlag(CarSpriteFlags.Flat)) { C += (R * F); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.GentleSlopes)) { C += ((4 * F) * 2) + ((R * F) * 2); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.SteepSlopes)) { C += ((8 * F) * 2) + ((R * F) * 2); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.VerticalSlopes)) { C += ((4 * F) * 2) + ((R * F) * 2) + (((4 * F) * 2) * 5) + (4 * F); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.DiagonalSlopes)) { C += ((4 * F) * 2) + ((4 * F) * 2) + ((4 * F) * 2); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.FlatBanked)) { C += ((8 * F) * 2) + ((R * F) * 2); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.InlineTwists)) { C += ((4 * F) * 10); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.FlatToGentleSlopeBankedTransitions)) { C += ((R * F) * 4); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.DiagonalGentleSlopeBankedTransitions)) { C += ((4 * F) * 4); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.GentleSlopeBankedTransitions)) { C += ((4 * F) * 4); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.GentleSlopeBankedTurns)) { C += ((R * F) * 4); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.FlatToGentleSlopeWhileBankedTransitions)) { C += ((4 * F) * 4); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.Corkscrews)) { C += ((4 * F) * 20); } if (car.SpriteFlags.HasFlag(CarSpriteFlags.RestraintAnimation)) { C += ((4 * F) * 3); } C *= (P + 1 * A); nextCarOffset += C; } } } } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
//=========== DRAWING ============ #region Drawing /**<summary>Draws the object as it is in game.</summary>*/ public virtual bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { return(false); }
/**<summary>Gets the palette to draw the object with.</summary>*/ public override Palette GetPalette(DrawSettings drawSettings) { return(Palette.SceneryGroupPalette); }
/**<summary>Draws the object data in the dialog.</summary>*/ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { return(true); }
//=========== DRAWING ============ #region Drawing /**<summary>Constructs the default object.</summary>*/ public override bool Draw(PaletteImage p, Point position, DrawSettings drawSettings) { return(true); }
/** <summary> Draws the object data in the dialog. </summary> */ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { position = Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)); graphicsData.paletteImages[drawSettings.Frame].Draw(p, Point.Add(position, new Size(-16, -14)), 0, false, RemapColors.SeaGreen); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Draws the object as it is in the dialog.</summary>*/ public virtual bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { return(false); }
private void DrawFrame(PaletteImage p, Point position, DrawSettings drawSettings, int frame, bool glass) { Size offset = Size.Empty; if (drawSettings.Slope >= 2) { drawSettings.Rotation = (drawSettings.Rotation + 2) % 4; } if (drawSettings.Slope != -1 && !Header.Flags.HasFlag(WallFlags.Flat)) { if (drawSettings.Slope == drawSettings.Rotation) { if (drawSettings.Slope < 2) { offset.Height = -16; } } else if (drawSettings.Slope % 2 != drawSettings.Rotation % 2) { switch (drawSettings.Slope) { case 0: if (drawSettings.Rotation == 3) { offset.Width = -32; offset.Height = 16; } break; case 1: if (drawSettings.Rotation == 2) { offset.Width = 32; offset.Height = 16; } break; case 2: if (drawSettings.Rotation == 1) { offset.Width = -32; offset.Height = 16; } break; case 3: if (drawSettings.Rotation == 0) { offset.Width = 32; offset.Height = 16; } break; } } else { if (drawSettings.Slope < 2) { offset.Height = 16; } offset.Width = (drawSettings.Slope % 2 == 0 ? 32 : -32); } } else if (drawSettings.Rotation == 2) { offset.Width = 32; offset.Height = 16; } else if (drawSettings.Rotation == 3) { offset.Width = -32; offset.Height = 16; } graphicsData.paletteImages[frame].DrawWithOffset(p, Point.Add(position, offset), drawSettings.Darkness, glass, (Header.Flags.HasFlag(WallFlags.Remap1) || Header.Flags.HasFlag(WallFlags.Remap2) || Header.Flags.HasFlag(WallFlags.Remap3)) ? drawSettings.Remap1 : (glass ? drawSettings.Remap1 : RemapColors.None), (Header.Flags.HasFlag(WallFlags.Remap2) || Header.Flags.HasFlag(WallFlags.Remap3)) ? (glass ? drawSettings.Remap1 : drawSettings.Remap2) : (glass ? drawSettings.Remap1 : RemapColors.None), Header.Flags.HasFlag(WallFlags.Remap3) ? (glass ? drawSettings.Remap1 : drawSettings.Remap3) : (glass ? drawSettings.Remap1 : RemapColors.None) ); }
public DrawData(IMyEntity ent, DrawSettings settings) { Entity = ent; Settings = settings; }
//=========== DRAWING ============ #region Drawing /** <summary> Draws the path railing. </summary> */ public void DrawRailing(PaletteImage p, Point position, DrawSettings drawSettings, uint pathConnections) { int offset = (drawSettings.Queue ? 51 : 0); int connection = 0; if (Pathing.PathSpriteIndexes.ContainsKey(pathConnections) && !(drawSettings.Elevation > 0 && !Header.Flags.HasFlag(PathingFlags.OverlayPath))) { connection = Pathing.PathSpriteIndexes[pathConnections]; } else if (Pathing.PathSpriteIndexes.ContainsKey(pathConnections & 0xF)) { pathConnections &= 0xF; connection = Pathing.PathSpriteIndexes[pathConnections & 0xF]; } if (drawSettings.Slope == -1) { if (drawSettings.Queue) { offset = 87; } else if (drawSettings.Elevation > 0) { offset = 73; } if (drawSettings.Queue || drawSettings.Elevation > 0) { if (CheckConnections(pathConnections, "####00#1")) { graphicsData.paletteImages[offset + 3].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####001")) { graphicsData.paletteImages[offset + 3].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####0#10")) { graphicsData.paletteImages[offset + 4].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####001#")) { graphicsData.paletteImages[offset + 4].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####100")) { graphicsData.paletteImages[offset + 5].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####01#0")) { graphicsData.paletteImages[offset + 5].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####100#")) { graphicsData.paletteImages[offset + 2].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####1#00")) { graphicsData.paletteImages[offset + 2].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####01#1")) { graphicsData.paletteImages[offset + 1].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#####101")) { graphicsData.paletteImages[offset + 1].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####1#10")) { graphicsData.paletteImages[offset + 0].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "####101#")) { graphicsData.paletteImages[offset + 0].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "###0##11")) { graphicsData.paletteImages[offset + 11].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "##0##11#")) { graphicsData.paletteImages[offset + 12].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "#0##11##")) { graphicsData.paletteImages[offset + 13].DrawWithOffset(p, position, drawSettings.Darkness, false); } if (CheckConnections(pathConnections, "0###1##1")) { graphicsData.paletteImages[offset + 10].DrawWithOffset(p, position, drawSettings.Darkness, false); } } } else { if (drawSettings.Queue) { offset = 87; } else { offset = 73; } switch (drawSettings.Slope) { case 0: graphicsData.paletteImages[offset + 6].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 6].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); break; case 1: graphicsData.paletteImages[offset + 8].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 8].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); break; case 2: graphicsData.paletteImages[offset + 7].DrawWithOffset(p, Point.Add(position, new Size(-4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 7].DrawWithOffset(p, Point.Add(position, new Size(-32 + 4, 16 - 2)), drawSettings.Darkness, false); break; case 3: graphicsData.paletteImages[offset + 9].DrawWithOffset(p, Point.Add(position, new Size(4, 2)), drawSettings.Darkness, false); graphicsData.paletteImages[offset + 9].DrawWithOffset(p, Point.Add(position, new Size(32 - 4, 16 - 2)), drawSettings.Darkness, false); break; } } }
/** <summary> Draws the object data in the dialog. </summary> */ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { position = Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)); bool fullSquare = Header.Flags.HasFlag(SmallSceneryFlags.FullSquare); bool drawDialog2 = Header.Flags.HasFlag(SmallSceneryFlags.DrawDialogTwo); bool glass = Header.Flags.HasFlag(SmallSceneryFlags.Glass); DrawDialogFrame(p, position, drawSettings, drawSettings.Rotation, false); if (drawDialog2) { DrawDialogFrame(p, position, drawSettings, 4 + drawSettings.Rotation, false); } else if (glass) { DrawDialogFrame(p, position, drawSettings, 4 + drawSettings.Rotation, true); } } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/**<summary>Draws the object data in the dialog.</summary>*/ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { graphicsData.paletteImages[Header.PreviewIndex].Draw(p, position, drawSettings.Darkness, false); } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }
/** <summary> Draws the object data in the dialog. </summary> */ public override bool DrawDialog(PaletteImage p, Point position, Size dialogSize, DrawSettings drawSettings) { try { bool flat = Header.Flags.HasFlag(WallFlags.Flat); bool twoSides = Header.Flags.HasFlag(WallFlags.TwoSides); bool door = Header.Flags.HasFlag(WallFlags.Door); bool glass = Header.Flags.HasFlag(WallFlags.Glass); int offset = (2 + (!flat ? 4 : 0)) * (twoSides ? 2 : 1) * (door ? 2 : 1); DrawDialogFrame(p, Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)), drawSettings, 0, false); if (door) { DrawDialogFrame(p, Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)), drawSettings, 1, false); } if (glass) { DrawDialogFrame(p, Point.Add(position, new Size(dialogSize.Width / 2, dialogSize.Height / 2)), drawSettings, offset, true); } } catch (IndexOutOfRangeException) { return(false); } catch (ArgumentOutOfRangeException) { return(false); } return(true); }