Skip to content

Commit

Permalink
Adding first (alpha) draft of revised 2E printing
Browse files Browse the repository at this point in the history
  • Loading branch information
smattox committed Jun 15, 2011
1 parent e6ab12a commit 04b3188
Show file tree
Hide file tree
Showing 15 changed files with 897 additions and 168 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.sf.anathema.character.generic.character.IGenericDescription;
import net.sf.anathema.character.generic.framework.ICharacterGenerics;
import net.sf.anathema.character.generic.framework.module.object.ICharacterModuleObjectMap;
import net.sf.anathema.character.generic.impl.rules.ExaltedEdition;
import net.sf.anathema.character.generic.rules.IExaltedEdition;
import net.sf.anathema.character.generic.template.ICharacterTemplate;
import net.sf.anathema.character.generic.traits.types.OtherTraitType;
Expand All @@ -21,6 +22,8 @@
import net.sf.anathema.character.reporting.sheet.page.IPdfPageEncoder;
import net.sf.anathema.character.reporting.sheet.page.IPdfPartEncoder;
import net.sf.anathema.character.reporting.sheet.page.PdfFirstPageEncoder;
import net.sf.anathema.character.reporting.sheet.page.PdfMagicPageEncoder;
import net.sf.anathema.character.reporting.sheet.page.PdfOldStyleFirstPageEncoder;
import net.sf.anathema.character.reporting.sheet.page.PdfSecondPageEncoder;
import net.sf.anathema.character.reporting.sheet.pageformat.PdfPageConfiguration;
import net.sf.anathema.framework.itemdata.model.IItemData;
Expand Down Expand Up @@ -63,11 +66,17 @@ public void performPrint(IItem item, Document document, PdfWriter writer) throws
IGenericCharacter character = GenericCharacterUtilities.createGenericCharacter(stattedCharacter.getStatistics());
IGenericDescription description = new GenericDescription(stattedCharacter.getDescription());
List<IPdfPageEncoder> encoderList = new ArrayList<IPdfPageEncoder>();
encoderList.add(new PdfFirstPageEncoder(partEncoder, encodingRegistry, resources, traitMax, configuration));
Collections.addAll(encoderList, partEncoder.getAdditionalPages(configuration));
if (partEncoder.hasSecondPage()) {
encoderList.add(new PdfSecondPageEncoder(resources, encodingRegistry, configuration));
if (character.getRules().getEdition() == ExaltedEdition.FirstEdition)
encoderList.add(new PdfOldStyleFirstPageEncoder(partEncoder, encodingRegistry, resources, traitMax, configuration));
if (character.getRules().getEdition() == ExaltedEdition.SecondEdition)
{
encoderList.add(new PdfFirstPageEncoder(partEncoder, encodingRegistry, resources, traitMax, configuration));
encoderList.add(new PdfSecondPageEncoder(partEncoder, encodingRegistry, resources, traitMax, configuration));
}
Collections.addAll(encoderList, partEncoder.getAdditionalPages(configuration));
if (partEncoder.hasMagicPage())
encoderList.add(new PdfMagicPageEncoder(resources, encodingRegistry, configuration,
character.getRules().getEdition() != ExaltedEdition.FirstEdition));
boolean isFirstPrinted = false;
for (IPdfPageEncoder encoder : encoderList) {
if (isFirstPrinted) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ public void addReportTemplates(ICharacterGenerics generics, IResources resources
IPdfPartEncoder secondEditionMortalPartEncoder = new SecondEditionMortalPartEncoder(
resources,
baseFont,
symbolFont,
registry);
symbolFont);
IPdfPartEncoder firstEditionMortalPartEncoder = new FirstEditionMortalPartEncoder(
resources,
baseFont,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,33 @@ public String getHeaderKey() {
}

public void encode(PdfContentByte directContent, IGenericCharacter character, Bounds bounds) throws DocumentException {
String personalPool = null, peripheralPool = null;
try
{
personalPool = character.getPersonalPool();
peripheralPool = character.getPeripheralPool();
}
catch (ContractFailedException e) { }
int numberOfLines = (personalPool == null ? 0 : 1) + (peripheralPool == null ? 0 : 1);
float poolHeight = bounds.height - largeTraitEncoder.getTraitHeight() - IVoidStateFormatConstants.TEXT_PADDING;
float poolLineHeight = poolHeight / 2;
int offset = (int) ((2 - numberOfLines) * (poolLineHeight / 2));
int value = character.getTraitCollection().getTrait(OtherTraitType.Essence).getCurrentValue();
Position essencePosition = new Position(bounds.x, bounds.y + bounds.height - largeTraitEncoder.getTraitHeight());
Position essencePosition = new Position(bounds.x, bounds.y + bounds.height - largeTraitEncoder.getTraitHeight() - offset);
largeTraitEncoder.encodeDotsCenteredAndUngrouped(directContent, essencePosition, bounds.width, value, essenceMax);
float poolHeight = bounds.height - largeTraitEncoder.getTraitHeight() - IVoidStateFormatConstants.TEXT_PADDING;
float poolLineHeight = poolHeight / 2;
Position personalPosition = new Position(bounds.x, essencePosition.y - poolLineHeight);
String personalLabel = resources.getString("Sheet.Essence.PersonalPool"); //$NON-NLS-1$
encodePool(directContent, personalLabel, character.getPersonalPool(), personalPosition, bounds.width);

try
if (personalPool != null)
{
Position peripheralPosition = new Position(bounds.x, essencePosition.y - 2 * poolLineHeight);
String peripheralLabel = resources.getString("Sheet.Essence.PeripheralPool"); //$NON-NLS-1$
encodePool(directContent, peripheralLabel, character.getPeripheralPool(), peripheralPosition, bounds.width);
Position personalPosition = new Position(bounds.x, essencePosition.y - poolLineHeight);
String personalLabel = resources.getString("Sheet.Essence.PersonalPool"); //$NON-NLS-1$
encodePool(directContent, personalLabel, personalPool, personalPosition, bounds.width);
}
catch (ContractFailedException e)

if (peripheralPool != null)
{

Position peripheralPosition = new Position(bounds.x, essencePosition.y - (numberOfLines == 1 ? 1 : 2) * poolLineHeight);
String peripheralLabel = resources.getString("Sheet.Essence.PeripheralPool"); //$NON-NLS-1$
encodePool(directContent, peripheralLabel, peripheralPool, peripheralPosition, bounds.width);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,18 @@ public AbstractFirstEditionExaltPdfPartEncoder(IResources resources, PdfEncoding
public IPdfContentBoxEncoder getEssenceEncoder() {
return new PdfEssenceEncoder(getBaseFont(), getResources(), essenceMax);
}

public IPdfContentBoxEncoder getOverdriveEncoder()
{
return null;
}

protected int getEssenceMax() {
return essenceMax;
}

public boolean hasSecondPage() {
return true;
public boolean hasMagicPage() {
return true;
}

protected final int getFontSize() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,9 @@ public IPdfPageEncoder[] getAdditionalPages(PdfPageConfiguration configuration)
public boolean isEncodeAttributeAsFavorable() {
return false;
}

public IPdfContentBoxEncoder getOverdriveEncoder()
{
return null;
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,15 @@
package net.sf.anathema.character.reporting.sheet.page;

import net.sf.anathema.character.reporting.sheet.PdfEncodingRegistry;
import net.sf.anathema.character.reporting.sheet.common.IPdfContentBoxEncoder;
import net.sf.anathema.character.reporting.sheet.common.PdfEssenceEncoder;
import net.sf.anathema.lib.resources.IResources;

public abstract class AbstractSecondEditionExaltPdfPartEncoder extends AbstractSecondEditionPartEncoder {

private final int essenceMax;

public AbstractSecondEditionExaltPdfPartEncoder(IResources resources, PdfEncodingRegistry registry, int essenceMax) {
super(resources, registry.getBaseFont(), registry.getSymbolBaseFont());
this.essenceMax = essenceMax;
}

public IPdfContentBoxEncoder getEssenceEncoder() {
return new PdfEssenceEncoder(getBaseFont(), getResources(), essenceMax);
}

public boolean hasSecondPage() {
return true;
super(resources, registry.getBaseFont(), registry.getSymbolBaseFont(), essenceMax);
}

protected int getEssenceMax()
{
return essenceMax;
}

protected int getFontSize() {
return FONT_SIZE;
public boolean hasMagicPage() {
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import net.sf.anathema.character.reporting.sheet.PdfEncodingRegistry;
import net.sf.anathema.character.reporting.sheet.common.IPdfContentBoxEncoder;
import net.sf.anathema.character.reporting.sheet.common.IPdfContentEncoder;
import net.sf.anathema.character.reporting.sheet.common.PdfEssenceEncoder;
import net.sf.anathema.character.reporting.sheet.common.combat.PdfCombatStatsEncoder;
import net.sf.anathema.character.reporting.sheet.pageformat.PdfPageConfiguration;
import net.sf.anathema.character.reporting.sheet.second.SecondEditionCombatRulesTableEncoder;
Expand All @@ -19,11 +20,13 @@ public abstract class AbstractSecondEditionPartEncoder implements IPdfPartEncode
private final IResources resources;
private final BaseFont baseFont;
private final BaseFont symbolBaseFont;
private final int essenceMax;

public AbstractSecondEditionPartEncoder(IResources resources, BaseFont baseFont, BaseFont symbolBaseFont) {
public AbstractSecondEditionPartEncoder(IResources resources, BaseFont baseFont, BaseFont symbolBaseFont, int essenceMax) {
this.resources = resources;
this.baseFont = baseFont;
this.symbolBaseFont = symbolBaseFont;
this.essenceMax = essenceMax;
}

public final IResources getResources() {
Expand All @@ -37,6 +40,28 @@ public final BaseFont getBaseFont() {
public final BaseFont getSymbolBaseFont() {
return symbolBaseFont;
}

protected int getEssenceMax()
{
return essenceMax;
}

public boolean hasSecondPage() {
return true;
}

protected int getFontSize() {
return FONT_SIZE;
}

public IPdfContentBoxEncoder getEssenceEncoder() {
return new PdfEssenceEncoder(getBaseFont(), getResources(), essenceMax);
}

public IPdfContentBoxEncoder getOverdriveEncoder()
{
return null;
}

public final IPdfContentBoxEncoder getCombatStatsEncoder() {
IPdfContentEncoder valueEncoder = new SecondEditionCombatValueEncoder(resources, baseFont);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ public IPdfContentBoxEncoder getEssenceEncoder() {
public boolean hasSecondPage() {
return false;
}

public boolean hasMagicPage() {
return false;
}

public IPdfContentBoxEncoder getGreatCurseEncoder() {
return registry.getLinguisticsEncoder(); //No Great Curse for Mortals
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@

public interface IPdfPartEncoder {
public static final int FONT_SIZE = IVoidStateFormatConstants.FONT_SIZE - 1;

public IPdfContentBoxEncoder getAnimaEncoder();

public IPdfContentBoxEncoder getEssenceEncoder();

public IPdfContentBoxEncoder getGreatCurseEncoder();

public IPdfContentBoxEncoder getOverdriveEncoder();

public IPdfContentBoxEncoder getCombatStatsEncoder();

Expand All @@ -21,8 +23,8 @@ public interface IPdfPartEncoder {
public IPdfContentBoxEncoder getIntimaciesEncoder(PdfEncodingRegistry registry);

public IPdfContentBoxEncoder getHealthAndMovementEncoder();

public boolean hasSecondPage();
public boolean hasMagicPage();

public float getWeaponryHeight();

Expand Down
Loading

0 comments on commit 04b3188

Please sign in to comment.