Module: MtgCardMaker

Defined in:
lib/mtg_card_maker.rb,
lib/mtg_card_maker/cli.rb,
lib/mtg_card_maker/version.rb,
lib/mtg_card_maker/base_card.rb,
lib/mtg_card_maker/mana_cost.rb,
lib/mtg_card_maker/color_scheme.rb,
lib/mtg_card_maker/icon_service.rb,
lib/mtg_card_maker/layer_config.rb,
lib/mtg_card_maker/color_palette.rb,
lib/mtg_card_maker/layer_factory.rb,
lib/mtg_card_maker/layers/art_layer.rb,
lib/mtg_card_maker/layer_initializer.rb,
lib/mtg_card_maker/layers/name_layer.rb,
lib/mtg_card_maker/metallic_renderer.rb,
lib/mtg_card_maker/layers/frame_layer.rb,
lib/mtg_card_maker/layers/power_layer.rb,
lib/mtg_card_maker/core_ext/deep_merge.rb,
lib/mtg_card_maker/layers/border_layer.rb,
lib/mtg_card_maker/sprite_sheet_assets.rb,
lib/mtg_card_maker/sprite_sheet_builder.rb,
lib/mtg_card_maker/sprite_sheet_service.rb,
lib/mtg_card_maker/svg_gradient_service.rb,
lib/mtg_card_maker/layers/text_box_layer.rb,
lib/mtg_card_maker/layers/type_line_layer.rb,
lib/mtg_card_maker/text_rendering_service.rb

Overview

MTG Card Maker is a Ruby gem for creating Magic: The Gathering card templates. It uses the Victor SVG library to generate layered card designs with customizable colors, text, and artwork. The library provides a modular layer system where each component (frame, art, text areas) inherits from BaseLayer and implements its own rendering logic.

Examples:

Basic Usage

card = MtgCardMaker::BaseCard.new(
  name: "Lightning Bolt",
  mana_cost: "R",
  type: "Instant",
  description: "Lightning Bolt deals 3 damage to any target.",
  color_scheme: :red
)
card.generate("lightning_bolt.svg")

Custom Template

template = MtgCardMaker::Template.new
template.add_layer(MtgCardMaker::BorderLayer.new(dimensions: {...}, color: :red))
template.add_layer(MtgCardMaker::NameLayer.new(dimensions: {...}, text: "Lightning Bolt"))
template.save("custom_card.svg")

Author:

  • Joe Sharp

Since:

  • 0.1.0

Defined Under Namespace

Modules: DeepMerge, LayerInitializer, MetallicRenderer Classes: ArtLayer, BaseCard, BaseLayer, BorderLayer, CLI, ColorPalette, ColorScheme, Error, FrameLayer, IconService, LayerConfig, LayerFactory, ManaCost, NameLayer, PowerLayer, SpriteSheetAssets, SpriteSheetBuilder, SpriteSheetService, SvgGradientService, Template, TextBoxLayer, TextRenderingService, TypeLineLayer

Constant Summary collapse

CARD_WIDTH =

Standard MTG card width in pixels

Returns:

  • the width of a standard MTG card

Since:

  • 0.1.0

630
CARD_HEIGHT =

Standard MTG card height in pixels

Returns:

  • the height of a standard MTG card

Since:

  • 0.1.0

880
DEFAULT_COLOR_SCHEME =

Default color scheme using colorless colors

Returns:

  • the default colorless color scheme

Since:

  • 0.1.0

ColorScheme.new(:colorless)
DEFAULT_TEXT_COLOR =

Default text color from the default color scheme

Returns:

  • the default text color hex value

Since:

  • 0.1.0

DEFAULT_COLOR_SCHEME.text_color
WHITE =

White color constant for border compatibility

Returns:

  • the white color hex value

Since:

  • 0.1.0

'#EEE'
MAJOR =

Since:

  • 0.1.0

0
MINOR =

Since:

  • 0.1.0

1
PATCH =

Since:

  • 0.1.0

0
VERSION =

Since:

  • 0.1.0

[MAJOR, MINOR, PATCH].join('.')