Most of this is now in doom_base.py, which stores wad/map/name, exposes them as properties, and also takes care of most common tasks needed for building command lines and such.
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import dcc.doom_base
|
|
import sys
|
|
import wand.drawing
|
|
import wand.image
|
|
|
|
class Text(dcc.doom_base.WadMap):
|
|
def get_parser(self, prog_name):
|
|
parser = super().get_parser(prog_name)
|
|
parser.add_argument("--nomap", action="store_true")
|
|
parser.add_argument("--demotype", default="UV-Max")
|
|
return parser
|
|
|
|
def take_action(self, parsed_args):
|
|
text = sys.stdin.read().rstrip()
|
|
if not parsed_args.nomap:
|
|
text = "MAP{}: {}".format(parsed_args.map, text)
|
|
text = "{}\n{} Demo".format(text, parsed_args.demotype)
|
|
with wand.image.Image(height=dcc.config.THUMB_HEIGHT,width=dcc.config.THUMB_WIDTH) as img:
|
|
with wand.drawing.Drawing() as draw:
|
|
draw.font = dcc.config.FONT
|
|
draw.font_size=64
|
|
draw.fill_color=wand.color.Color(dcc.config.TEXT_FILL_COLOR)
|
|
draw.stroke_color=wand.color.Color(dcc.config.TEXT_STROKE_COLOR)
|
|
draw.stroke_width=10
|
|
draw.text_interline_spacing=-16
|
|
draw.text(5,int(draw.font_size),text)
|
|
draw(img)
|
|
draw.stroke_color=wand.color.Color("none")
|
|
draw.stroke_width=0
|
|
draw.text(5,int(draw.font_size),text)
|
|
draw(img)
|
|
img.trim()
|
|
img.reset_coords()
|
|
img.save(filename=self.text_thumb_path())
|