Skip to content

Commit

Permalink
Fix decorative blocks to have consistent texture rotation on all sides
Browse files Browse the repository at this point in the history
  • Loading branch information
RusTit authored and mezz committed Mar 14, 2018
1 parent 1d933b0 commit b2f1814
Show file tree
Hide file tree
Showing 2 changed files with 215 additions and 245 deletions.
208 changes: 92 additions & 116 deletions design/src/main/java/binnie/design/EnumDesign.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,29 @@

public enum EnumDesign implements IDesign {
Blank("blank"),
Octagon("octagon"),
Diamond("diamond"),
Ringed("ringed"),
Squared("squared"),
Multiply("multiply"),
Octagon("octagon", EnumPattern.Octagon.layout()),
Diamond("diamond", EnumPattern.Diamond.layout()),
Ringed("ringed", EnumPattern.Ringed.layout()),
Squared("squared", EnumPattern.Squared.layout()),
Multiply("multiply", EnumPattern.Multiply.layout()),
Halved("halved"),
Striped("striped"),
ThinStriped("thin.striped"),
Chequered("full.chequered"),
Tiled("full.tiled"),
ChequeredB("chequered"),
TiledB("tiled"),
Chequered("full.chequered", EnumPattern.Chequered.layout()),
Tiled("full.tiled", EnumPattern.Tiled.layout()),
ChequeredB("chequered", EnumPattern.Chequered.layout()),
TiledB("tiled", EnumPattern.Tiled.layout()),
VeryThinCorner("very.thin.cornered"),
ThinCorner("thin.cornered"),
Corner("cornered"),
ThickCorner("thick.cornered"),
Edged("edged"),
ThinEdged("thin.edged"),
ThinBarred("thin.barred"),
Barred("barred"),
ThickBarred("thick.barred"),
Diagonal("diagonal"),
ThickDiagonal("thick.diagonal"),
Edged("edged", EnumPattern.Edged.layout()),
ThinEdged("thin.edged", EnumPattern.ThinEdged.layout()),
ThinBarred("thin.barred", EnumPattern.ThinBarred.layout()),
Barred("barred", EnumPattern.Barred.layout()),
ThickBarred("thick.barred", EnumPattern.ThickBarred.layout()),
Diagonal("diagonal", EnumPattern.Edged.layout()),
ThickDiagonal("thick.diagonal", EnumPattern.Halved.layout()),
ThinSaltire("thin.saltire"),
Saltire("saltire"),
ThickSaltire("thick.saltire"),
Expand All @@ -49,17 +49,17 @@ public enum EnumDesign implements IDesign {
ThickBarredCorner("thick.barred.corner"),
ThinStripedCorner("thin.striped.corner"),
StripedCorner("striped.corner"),
Emblem1("emblem.1"),
Emblem2("emblem.2"),
Emblem3("emblem.3"),
Emblem4("emblem.4"),
Emblem5("emblem.5"),
LetterA("letter.a"),
LetterB("letter.b"),
Emblem1("emblem.1", EnumPattern.Emblem1.layout()),
Emblem2("emblem.2", EnumPattern.Emblem2.layout()),
Emblem3("emblem.3", EnumPattern.Emblem3.layout()),
Emblem4("emblem.4", EnumPattern.Emblem4.layout()),
Emblem5("emblem.5", EnumPattern.Emblem5.layout()),
LetterA("letter.a", true),
LetterB("letter.b", true),
LetterC("letter.c"),
LetterD("letter.d"),
LetterE("letter.e"),
LetterF("letter.f"),
LetterF("letter.f", true),
LetterG("letter.g"),
LetterH("letter.h"),
LetterI("letter.i"),
Expand All @@ -72,8 +72,8 @@ public enum EnumDesign implements IDesign {
LetterP("letter.p"),
LetterQ("letter.q"),
LetterR("letter.r"),
LetterS("letter.s"),
LetterT("letter.t"),
LetterS("letter.s", true),
LetterT("letter.t", true),
LetterU("letter.u"),
LetterV("letter.v"),
LetterW("letter.w"),
Expand All @@ -87,31 +87,31 @@ public enum EnumDesign implements IDesign {
CurvedCorner("curved.corner"),
ThinCurvedTSection("thin.curved.t.section"),
CurvedTSection("curved.t.section"),
BarredEnd("barred.end"),
DiagonalCorner("diagonal.corner"),
BarredEnd("barred.end", true),
DiagonalCorner("diagonal.corner", true),
DiagonalTSection("diagonal.t.section"),
DiagonalCurvedCorner("diagonal.curved.corner"),
DiagonalCurvedCorner("diagonal.curved.corner", true),
DiagonalCurvedTSection("diagonal.curved.t.section"),
OrnateBarred("ornate.barred"),
SplitBarred("split.barred"),
OrnateBarred("ornate.barred", EnumPattern.OrnateBarred.layout()),
SplitBarred("split.barred", EnumPattern.SplitBarred.layout()),
SplitBarredCorner("split.barred.corner"),
SplitBarredTSection("split.barred.t.section"),
SplitCrossed("split.crossed"),
SplitBarredEnd("split.barred.end"),
OrnateThinBarred("ornate.thin.barred"),
Circle("circle"),
Plus("plus"),
Creeper("creeper"),
SplitBarredEnd("split.barred.end", true),
OrnateThinBarred("ornate.thin.barred", EnumPattern.OrnateThinBarred.layout()),
Circle("circle", EnumPattern.Circle.layout()),
Plus("plus", EnumPattern.Plus.layout()),
Creeper("creeper", true),
OrnateStripedCorner("ornate.striped.corner"),
Test("testing.block"),
DiagonalHalved("diagonal.halved"),
Diagonal1Edged("cornered.diagonal"),
Diagonal2Edged("opposite.cornered.diagonal"),
ThickDiagonal1Edged("thick.cornered.diagonal"),
ThinBarredEnd("thin.barred.end"),
ThickBarredEnd("thick.barred.end"),
OverlappedBarred("overlapped.barred"),
OverlappedSplitBarred("overlapped.split.barred");
ThinBarredEnd("thin.barred.end", true),
ThickBarredEnd("thick.barred.end", true),
OverlappedBarred("overlapped.barred", EnumPattern.Barred.layout()),
OverlappedSplitBarred("overlapped.split.barred", EnumPattern.SplitBarred.layout());

static {
Category.DESIGN.addDesign(EnumDesign.Blank);
Expand Down Expand Up @@ -188,31 +188,26 @@ public enum EnumDesign implements IDesign {
Category.DIAGONAL.addDesign(EnumDesign.Diagonal1Edged);
Category.DIAGONAL.addDesign(EnumDesign.Diagonal2Edged);
Category.DIAGONAL.addDesign(EnumDesign.ThickDiagonal1Edged);
EnumDesign.Octagon.setAllPatterns(EnumPattern.Octagon.layout());
EnumDesign.Diamond.setAllPatterns(EnumPattern.Diamond.layout());
EnumDesign.Ringed.setAllPatterns(EnumPattern.Ringed.layout());
EnumDesign.Squared.setAllPatterns(EnumPattern.Squared.layout());
EnumDesign.Multiply.setAllPatterns(EnumPattern.Multiply.layout());
EnumDesign.ThinStriped.setupStriped(EnumPattern.ThinStriped.layout());
EnumDesign.Striped.setupStriped(EnumPattern.Striped.layout());
EnumDesign.Halved.setupStriped(EnumPattern.Halved.layout());
EnumDesign.Chequered.setChequered(EnumPattern.Chequered.layout());
EnumDesign.Tiled.setChequered(EnumPattern.Tiled.layout());
EnumDesign.ChequeredB.setStripedChequered(EnumPattern.Chequered.layout(), EnumPattern.Halved.layout());
EnumDesign.TiledB.setStripedChequered(EnumPattern.Tiled.layout(), EnumPattern.Striped.layout());
EnumDesign.ChequeredB.setStripedChequered(EnumPattern.Halved.layout());
EnumDesign.TiledB.setStripedChequered(EnumPattern.Striped.layout());
EnumDesign.VeryThinCorner.setCornered(EnumPattern.VeryThinCorner.layout(), EnumPattern.ThinEdged.layout());
EnumDesign.ThinCorner.setCornered(EnumPattern.ThinCorner.layout(), EnumPattern.Edged.layout());
EnumDesign.Corner.setCornered(EnumPattern.Corner.layout(), EnumPattern.Halved.layout());
EnumDesign.ThickCorner.setCornered(EnumPattern.ThickCorner.layout(), EnumPattern.Edged.layout(true).flipHorizontal());
EnumDesign.ThinCurvedCorner.setCornered(EnumPattern.ThinCurvedCorner.layout(), EnumPattern.Edged.layout());
EnumDesign.CurvedCorner.setCornered(EnumPattern.CurvedCorner.layout(), EnumPattern.Halved.layout());
EnumDesign.Edged.setEdged(EnumPattern.Edged.layout());
EnumDesign.ThinEdged.setEdged(EnumPattern.ThinEdged.layout());
EnumDesign.ThinBarred.setBarred(EnumPattern.ThinBarred.layout());
EnumDesign.Barred.setBarred(EnumPattern.Barred.layout());
EnumDesign.ThickBarred.setBarred(EnumPattern.ThickBarred.layout());
EnumDesign.Diagonal.setDiagonal(EnumPattern.Diagonal.layout(), EnumPattern.Edged.layout());
EnumDesign.ThickDiagonal.setDiagonal(EnumPattern.ThickDiagonal.layout(), EnumPattern.Halved.layout());
EnumDesign.Edged.setEdged();
EnumDesign.ThinEdged.setEdged();
EnumDesign.ThinBarred.setBarred();
EnumDesign.Barred.setBarred();
EnumDesign.ThickBarred.setBarred();
EnumDesign.Diagonal.setDiagonal(EnumPattern.Diagonal.layout());
EnumDesign.ThickDiagonal.setDiagonal(EnumPattern.ThickDiagonal.layout());
EnumDesign.ThinSaltire.setSaltire(EnumPattern.ThinSaltire.layout(), EnumPattern.ThickBarred.layout());
EnumDesign.Saltire.setSaltire(EnumPattern.Saltire.layout(), EnumPattern.Barred.layout());
EnumDesign.ThickSaltire.setSaltire(EnumPattern.ThickSaltire.layout(), EnumPattern.ThinBarred.layout());
Expand All @@ -233,11 +228,6 @@ public enum EnumDesign implements IDesign {
EnumDesign.ThinStripedCorner.setStripedCorner(EnumPattern.ThinStripedCorner.layout(), EnumPattern.ThinStriped.layout());
EnumDesign.StripedCorner.setStripedCorner(EnumPattern.StripedCorner.layout(), EnumPattern.Striped.layout());
EnumDesign.OrnateStripedCorner.setStripedCorner(EnumPattern.OrnateStripedCorner.layout(), EnumPattern.ThinStriped.layout());
EnumDesign.Emblem1.setAllPatterns(EnumPattern.Emblem1.layout());
EnumDesign.Emblem2.setAllPatterns(EnumPattern.Emblem2.layout());
EnumDesign.Emblem3.setAllPatterns(EnumPattern.Emblem3.layout());
EnumDesign.Emblem4.setAllPatterns(EnumPattern.Emblem4.layout());
EnumDesign.Emblem5.setAllPatterns(EnumPattern.Emblem5.layout());
EnumDesign.LetterA.setLetterPattern(EnumPattern.LetterA.layout());
EnumDesign.LetterB.setLetterPattern(EnumPattern.LetterB.layout());
EnumDesign.LetterF.setLetterPattern(EnumPattern.LetterF.layout());
Expand All @@ -248,31 +238,26 @@ public enum EnumDesign implements IDesign {
EnumDesign.DiagonalTSection.setDiagonalTSection(EnumPattern.DiagonalTSection.layout(), EnumPattern.Barred.layout(), EnumPattern.Edged.layout());
EnumDesign.DiagonalCurvedCorner.setDiagonalCorner(EnumPattern.DiagonalCurvedCorner.layout(), EnumPattern.Barred.layout(), EnumPattern.Edged.layout());
EnumDesign.DiagonalCurvedTSection.setDiagonalTSection(EnumPattern.DiagonalCurvedTSection.layout(), EnumPattern.Barred.layout(), EnumPattern.Edged.layout());
EnumDesign.OrnateBarred.setBarred(EnumPattern.OrnateBarred.layout());
EnumDesign.OrnateThinBarred.setBarred(EnumPattern.OrnateThinBarred.layout());
EnumDesign.SplitBarred.setBarred(EnumPattern.SplitBarred.layout());
EnumDesign.OrnateBarred.setBarred();
EnumDesign.OrnateThinBarred.setBarred();
EnumDesign.SplitBarred.setBarred();
EnumDesign.SplitBarredCorner.setBarredCorner(EnumPattern.SplitBarredCorner.layout(), EnumPattern.SplitBarred.layout());
EnumDesign.SplitBarredTSection.setTSection(EnumPattern.SplitBarredTSection.layout(), EnumPattern.SplitBarred.layout());
EnumDesign.SplitCrossed.setCross(EnumPattern.SplitCrossed.layout(), EnumPattern.SplitBarred.layout());
EnumDesign.SplitBarredEnd.setBarredEndPattern(EnumPattern.SplitBarredEnd.layout(), EnumPattern.SplitBarred.layout());
EnumDesign.Circle.setAllPatterns(EnumPattern.Circle.layout());
EnumDesign.Plus.setAllPatterns(EnumPattern.Plus.layout());
EnumDesign.Creeper.setAllPatterns(EnumPattern.Blank.layout(true));
EnumDesign.Creeper.setTopPattern(EnumPattern.Creeper.layout());
EnumDesign.DiagonalHalved.setTopPattern(EnumPattern.DiagonalHalved.layout());
EnumDesign.Creeper.setTopAndBottomPattern(EnumPattern.Creeper.layout());
EnumDesign.DiagonalHalved.setTopAndBottomPattern(EnumPattern.DiagonalHalved.layout());
EnumDesign.DiagonalHalved.setEdgePatterns(EnumPattern.Blank.layout(), EnumPattern.Blank.layout(true), EnumPattern.Blank.layout(true), EnumPattern.Blank.layout());
EnumDesign.Diagonal1Edged.setTopPattern(EnumPattern.Diagonal1Edged.layout());
EnumDesign.Diagonal1Edged.setTopAndBottomPattern(EnumPattern.Diagonal1Edged.layout());
EnumDesign.Diagonal1Edged.setEdgePatterns(EnumPattern.Edged.layout().flipHorizontal(), EnumPattern.Blank.layout(true), EnumPattern.Blank.layout(true), EnumPattern.Edged.layout());
EnumDesign.Diagonal2Edged.setTopPattern(EnumPattern.Diagonal2Edged.layout());
EnumDesign.Diagonal2Edged.setTopAndBottomPattern(EnumPattern.Diagonal2Edged.layout());
EnumDesign.Diagonal2Edged.setEdgePatterns(EnumPattern.Edged.layout(), EnumPattern.Edged.layout().flipHorizontal(), EnumPattern.Edged.layout(), EnumPattern.Edged.layout().flipHorizontal());
EnumDesign.ThickDiagonal1Edged.setTopPattern(EnumPattern.ThickDiagonal1Edged.layout());
EnumDesign.ThickDiagonal1Edged.setTopAndBottomPattern(EnumPattern.ThickDiagonal1Edged.layout());
EnumDesign.ThickDiagonal1Edged.setEdgePatterns(EnumPattern.Halved.layout().flipHorizontal(), EnumPattern.Blank.layout(true), EnumPattern.Blank.layout(true), EnumPattern.Halved.layout());
EnumDesign.ThickBarredEnd.setBarredEndPattern(EnumPattern.ThickBarredEnd.layout(), EnumPattern.ThickBarred.layout());
EnumDesign.ThinBarredEnd.setBarredEndPattern(EnumPattern.ThinBarredEnd.layout(), EnumPattern.ThinBarred.layout());
EnumDesign.OverlappedSplitBarred.setAllPatterns(EnumPattern.SplitBarred.layout());
EnumDesign.OverlappedSplitBarred.setTopPattern(EnumPattern.OverlappedSplitBarred.layout());
EnumDesign.OverlappedBarred.setAllPatterns(EnumPattern.Barred.layout());
EnumDesign.OverlappedBarred.setTopPattern(EnumPattern.OverlappedBarred.layout());
EnumDesign.OverlappedSplitBarred.setTopAndBottomPattern(EnumPattern.OverlappedSplitBarred.layout());
EnumDesign.OverlappedBarred.setTopAndBottomPattern(EnumPattern.OverlappedBarred.layout());
}

private String name;
Expand All @@ -284,15 +269,22 @@ public enum EnumDesign implements IDesign {
private ILayout westPattern;

EnumDesign(final String name) {
this.topPattern = Layout.get(EnumPattern.Blank, false);
this.bottomPattern = Layout.get(EnumPattern.Blank, false);
this.northPattern = Layout.get(EnumPattern.Blank, false);
this.eastPattern = Layout.get(EnumPattern.Blank, false);
this.southPattern = Layout.get(EnumPattern.Blank, false);
this.westPattern = Layout.get(EnumPattern.Blank, false);
this(name, false);
}

EnumDesign(final String name, final boolean inverted) {
this(name, Layout.get(EnumPattern.Blank, inverted));
}

EnumDesign(final String name, final ILayout fillLayout) {
this.topPattern = fillLayout;
this.bottomPattern = fillLayout;
this.northPattern = fillLayout;
this.eastPattern = fillLayout;
this.southPattern = fillLayout;
this.westPattern = fillLayout;
this.name = name;
}


void setEdgePatterns(final ILayout north, final ILayout east, final ILayout south, final ILayout west) {
this.setNorthPattern(north);
Expand All @@ -306,67 +298,61 @@ void setEdgePatterns(final ILayout face) {
}

void setupStriped(final ILayout vert) {
this.setTopPattern(vert);
this.setTopAndBottomPattern(vert);
this.setEdgePatterns(vert.invert(), EnumPattern.Blank.layout(true), vert, EnumPattern.Blank.layout());
}

void setChequered(final ILayout cheq) {
this.setAllPatterns(cheq);
this.setNorthPattern(cheq.invert());
this.setSouthPattern(cheq.invert());
this.setBottomPattern(cheq.invert());
}

void setStripedChequered(final ILayout cheq, final ILayout stripe) {
this.setAllPatterns(cheq);
void setStripedChequered(final ILayout stripe) {
this.setNorthPattern(stripe.invert());
this.setSouthPattern(stripe.invert());
this.setEastPattern(stripe);
this.setWestPattern(stripe);
}

void setCornered(final ILayout corner, final ILayout edge) {
this.setTopPattern(corner);
this.setTopAndBottomPattern(corner);
this.setNorthPattern(EnumPattern.Blank.layout());
this.setEastPattern(edge.flipHorizontal());
this.setSouthPattern(edge);
this.setWestPattern(EnumPattern.Blank.layout());
}

void setEdged(final ILayout edge) {
this.setAllPatterns(edge);
void setEdged() {
this.setWestPattern(EnumPattern.Blank.layout());
this.setEastPattern(EnumPattern.Blank.layout(true));
this.northPattern = this.northPattern.flipHorizontal();
}

void setBarred(final ILayout bar) {
this.setAllPatterns(bar);
void setBarred() {
this.setEastPattern(EnumPattern.Blank.layout(true));
this.setWestPattern(EnumPattern.Blank.layout(true));
}

void setDiagonal(final ILayout diagonal, final ILayout edged) {
this.setAllPatterns(edged);
this.setTopPattern(diagonal);
void setDiagonal(final ILayout diagonal) {
this.setTopAndBottomPattern(diagonal);
this.northPattern = this.northPattern.flipHorizontal();
this.southPattern = this.southPattern.flipHorizontal();
}

void setSaltire(final ILayout saltire, final ILayout bar) {
this.setTopPattern(saltire);
this.setTopAndBottomPattern(saltire);
this.setEdgePatterns(bar.invert());
}

void setCross(final ILayout saltire, final ILayout bar) {
this.setTopPattern(saltire);
this.setTopAndBottomPattern(saltire);
this.setEdgePatterns(bar);
}

void setTSection(final ILayout tsection, final ILayout bar) {
this.setTopPattern(tsection);
this.setEdgePatterns(bar);
this.setWestPattern(EnumPattern.Blank.layout(true));
this.setTopAndBottomPattern(tsection);
this.setEdgePatterns(bar, bar, bar, EnumPattern.Blank.layout(true));
}

void setBarredCorner(final ILayout corner, final ILayout bar) {
Expand All @@ -379,43 +365,30 @@ void setStripedCorner(final ILayout corner, final ILayout striped) {
}

void setLetterPattern(final ILayout letter) {
this.setAllPatterns(EnumPattern.Blank.layout(true));
this.setTopPattern(letter);
this.setBottomPattern(EnumPattern.Blank.layout(true));
}

void setBarredEndPattern(final ILayout end, final ILayout bar) {
this.setAllPatterns(EnumPattern.Blank.layout(true));
this.setTopPattern(end);
this.setTopAndBottomPattern(end);
this.setWestPattern(bar);
}

void setDiagonalCorner(final ILayout diagonal, final ILayout bar, final ILayout edged) {
this.setAllPatterns(EnumPattern.Blank.layout(true));
this.setTopPattern(diagonal);
this.setTopAndBottomPattern(diagonal);
this.setWestPattern(bar.invert());
this.setNorthPattern(edged.flipHorizontal());
this.setSouthPattern(edged);
}

void setDiagonalTSection(final ILayout diagonal, final ILayout bar, final ILayout edged) {
this.setAllPatterns(EnumPattern.Blank.layout(true));
this.setTopPattern(diagonal);
this.setTopAndBottomPattern(diagonal);
this.setWestPattern(bar.invert());
this.setNorthPattern(bar.invert());
this.setEastPattern(edged.flipHorizontal());
this.setSouthPattern(edged);
}

private void setAllPatterns(final ILayout layout) {
this.setTopPattern(layout);
this.setBottomPattern(layout);
this.setNorthPattern(layout);
this.setEastPattern(layout);
this.setSouthPattern(layout);
this.setWestPattern(layout);
}

@Override
public String getName() {
return I18N.localise(new ResourceLocation(Constants.DESIGN_MOD_ID, "pattern." + this.name));
Expand All @@ -430,8 +403,11 @@ public ILayout getTopPattern() {
return this.topPattern;
}

public void setTopPattern(final ILayout layout) {
this.setBottomPattern(this.topPattern = layout);
public void setTopPattern(final ILayout layout) { this.topPattern = layout; }

public void setTopAndBottomPattern(final ILayout layout) {
this.topPattern = layout;
this.setBottomPattern(layout.flipVertical());
}

@Override
Expand Down
Loading

0 comments on commit b2f1814

Please sign in to comment.