refactor main drawing method into several, change some names for clarity
This commit is contained in:
parent
dbe0a9861c
commit
8256cc2f46
@ -118,18 +118,7 @@ class DominionTabs:
|
|||||||
text = re.sub('\<VP\>', replace,text)
|
text = re.sub('\<VP\>', replace,text)
|
||||||
return text
|
return text
|
||||||
|
|
||||||
def drawTab(self,card,x,y,useExtra=False):
|
def drawOutline(self, x, y, rightSide, isBack=False):
|
||||||
#rightSide = False
|
|
||||||
if self.numTabsHorizontal == 2:
|
|
||||||
rightSide = x%2 == 1
|
|
||||||
else:
|
|
||||||
rightSide = useExtra
|
|
||||||
self.canvas.resetTransforms()
|
|
||||||
self.canvas.translate(self.horizontalMargin,self.verticalMargin)
|
|
||||||
if useExtra:
|
|
||||||
self.canvas.translate(self.options.back_offset,0)
|
|
||||||
self.canvas.translate(x*self.tabWidth,y*self.tabTotalHeight)
|
|
||||||
|
|
||||||
#draw outline or cropmarks
|
#draw outline or cropmarks
|
||||||
self.canvas.saveState()
|
self.canvas.saveState()
|
||||||
self.canvas.setLineWidth(0.1)
|
self.canvas.setLineWidth(0.1)
|
||||||
@ -138,7 +127,7 @@ class DominionTabs:
|
|||||||
if rightSide and not self.options.sameside:
|
if rightSide and not self.options.sameside:
|
||||||
self.canvas.translate(self.tabWidth,0)
|
self.canvas.translate(self.tabWidth,0)
|
||||||
self.canvas.scale(-1,1)
|
self.canvas.scale(-1,1)
|
||||||
if not self.options.cropmarks and not useExtra:
|
if not self.options.cropmarks and not isBack:
|
||||||
#don't draw outline on back, in case lines don't line up with front
|
#don't draw outline on back, in case lines don't line up with front
|
||||||
self.canvas.lines(self.tabOutline)
|
self.canvas.lines(self.tabOutline)
|
||||||
elif self.options.cropmarks:
|
elif self.options.cropmarks:
|
||||||
@ -171,6 +160,7 @@ class DominionTabs:
|
|||||||
|
|
||||||
self.canvas.restoreState()
|
self.canvas.restoreState()
|
||||||
|
|
||||||
|
def drawTab(self, card, rightSide):
|
||||||
#draw tab flap
|
#draw tab flap
|
||||||
self.canvas.saveState()
|
self.canvas.saveState()
|
||||||
if not rightSide or self.options.sameside:
|
if not rightSide or self.options.sameside:
|
||||||
@ -188,24 +178,6 @@ class DominionTabs:
|
|||||||
potHeight = 3 + card.getType().getTabTextHeightOffset()
|
potHeight = 3 + card.getType().getTabTextHeightOffset()
|
||||||
potSize = 11
|
potSize = 11
|
||||||
|
|
||||||
# if card.types[0] == 'Treasure' and (len(card.types) == 1 or card.types[1] != 'Reaction'
|
|
||||||
# and card.types[1] != 'Victory')\
|
|
||||||
# or card.types == ('Curse',):
|
|
||||||
# textHeight = self.tabLabelHeight/2-4
|
|
||||||
# costHeight = textHeight
|
|
||||||
# potSize = 12
|
|
||||||
# potHeight = 5
|
|
||||||
# else:
|
|
||||||
# textHeight = self.tabLabelHeight/2-7
|
|
||||||
# costHeight = textHeight-1
|
|
||||||
# if card.types == ('Victory','Reaction') or\
|
|
||||||
# card.types == ('Treasure','Reaction') or\
|
|
||||||
# card.types == ('Action','Ruins') or\
|
|
||||||
# len(card.types) > 1 and card.types[1].lower() == 'shelter':
|
|
||||||
# costHeight = textHeight+1
|
|
||||||
# potSize = 11
|
|
||||||
# potHeight = 2
|
|
||||||
|
|
||||||
self.canvas.drawImage(os.path.join(self.filedir,'images','coin_small.png'),4,costHeight-5,16,16,preserveAspectRatio=True,mask='auto')
|
self.canvas.drawImage(os.path.join(self.filedir,'images','coin_small.png'),4,costHeight-5,16,16,preserveAspectRatio=True,mask='auto')
|
||||||
textInset = 22
|
textInset = 22
|
||||||
textWidth = 85
|
textWidth = 85
|
||||||
@ -273,6 +245,7 @@ class DominionTabs:
|
|||||||
w = 0
|
w = 0
|
||||||
self.canvas.restoreState()
|
self.canvas.restoreState()
|
||||||
|
|
||||||
|
def drawText(self, card, useExtra=False):
|
||||||
#draw text
|
#draw text
|
||||||
if useExtra and card.extra:
|
if useExtra and card.extra:
|
||||||
descriptions = (card.extra,)
|
descriptions = (card.extra,)
|
||||||
@ -302,6 +275,24 @@ class DominionTabs:
|
|||||||
p.drawOn(self.canvas,cm/2.0,textHeight-height-h-0.5*cm)
|
p.drawOn(self.canvas,cm/2.0,textHeight-height-h-0.5*cm)
|
||||||
height += h + 0.2*cm
|
height += h + 0.2*cm
|
||||||
|
|
||||||
|
def drawDivider(self,card,x,y,useExtra=False):
|
||||||
|
#figure out whether the tab should go on the right side or not
|
||||||
|
if self.numTabsHorizontal == 2:
|
||||||
|
rightSide = x%2 == 1
|
||||||
|
else:
|
||||||
|
rightSide = useExtra
|
||||||
|
#apply the transforms to get us to the corner of the current card
|
||||||
|
self.canvas.resetTransforms()
|
||||||
|
self.canvas.translate(self.horizontalMargin,self.verticalMargin)
|
||||||
|
if useExtra:
|
||||||
|
self.canvas.translate(self.options.back_offset,0)
|
||||||
|
self.canvas.translate(x*self.tabWidth,y*self.tabTotalHeight)
|
||||||
|
|
||||||
|
#actual drawing
|
||||||
|
self.drawOutline(x, y, rightSide, useExtra)
|
||||||
|
self.drawTab(card, rightSide)
|
||||||
|
self.drawText(card, useExtra)
|
||||||
|
|
||||||
def read_card_extras(self,fname,cards):
|
def read_card_extras(self,fname,cards):
|
||||||
f = open(fname)
|
f = open(fname)
|
||||||
cardName = re.compile("^:::(?P<name>[ \w\-/']*)")
|
cardName = re.compile("^:::(?P<name>[ \w\-/']*)")
|
||||||
@ -379,7 +370,7 @@ class DominionTabs:
|
|||||||
#print '----'
|
#print '----'
|
||||||
return cards
|
return cards
|
||||||
|
|
||||||
def drawCards(self,cards):
|
def drawDividers(self,cards):
|
||||||
cards = split(cards,self.numTabsVertical*self.numTabsHorizontal)
|
cards = split(cards,self.numTabsVertical*self.numTabsHorizontal)
|
||||||
for pageCards in cards:
|
for pageCards in cards:
|
||||||
#print 'pageCards:',pageCards
|
#print 'pageCards:',pageCards
|
||||||
@ -400,7 +391,7 @@ class DominionTabs:
|
|||||||
x = i % self.numTabsHorizontal
|
x = i % self.numTabsHorizontal
|
||||||
y = i / self.numTabsHorizontal
|
y = i / self.numTabsHorizontal
|
||||||
self.canvas.saveState()
|
self.canvas.saveState()
|
||||||
self.drawTab(card,x,self.numTabsVertical-1-y)
|
self.drawDivider(card,x,self.numTabsVertical-1-y)
|
||||||
self.canvas.restoreState()
|
self.canvas.restoreState()
|
||||||
self.canvas.showPage()
|
self.canvas.showPage()
|
||||||
for i,card in enumerate(pageCards):
|
for i,card in enumerate(pageCards):
|
||||||
@ -408,7 +399,7 @@ class DominionTabs:
|
|||||||
x = (self.numTabsHorizontal-1-i) % self.numTabsHorizontal
|
x = (self.numTabsHorizontal-1-i) % self.numTabsHorizontal
|
||||||
y = i / self.numTabsHorizontal
|
y = i / self.numTabsHorizontal
|
||||||
self.canvas.saveState()
|
self.canvas.saveState()
|
||||||
self.drawTab(card,x,self.numTabsVertical-1-y,useExtra=True)
|
self.drawDivider(card,x,self.numTabsVertical-1-y,useExtra=True)
|
||||||
self.canvas.restoreState()
|
self.canvas.restoreState()
|
||||||
self.canvas.showPage()
|
self.canvas.showPage()
|
||||||
|
|
||||||
@ -553,7 +544,7 @@ class DominionTabs:
|
|||||||
f = "dominion_tabs.pdf"
|
f = "dominion_tabs.pdf"
|
||||||
self.canvas = canvas.Canvas(f, pagesize=(self.paperwidth, self.paperheight))
|
self.canvas = canvas.Canvas(f, pagesize=(self.paperwidth, self.paperheight))
|
||||||
#pprint.pprint(self.canvas.getAvailableFonts())
|
#pprint.pprint(self.canvas.getAvailableFonts())
|
||||||
self.drawCards(cards)
|
self.drawDividers(cards)
|
||||||
self.canvas.save()
|
self.canvas.save()
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user