Skip to content

Commit

Permalink
Made drawing with a blob tileset somewhat work
Browse files Browse the repository at this point in the history
It's not ideal, but it works. Also added a blob tileset for testing.
  • Loading branch information
bjorn committed Sep 9, 2020
1 parent 0139dda commit 8c168b7
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 10 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -373,3 +373,4 @@ Replica Island - (C) Chris Pruett and Genki Mine, Apache (except hotspots.png)
hexmini.png - Public Domain, http://opengameart.org/content/pixel-hex-tilesets-enhanced
buch-outdoor.png - (C) Michele "Buch" Bucelli, CC-BY 3.0, http://opengameart.org/users/buch
examples/sticker-knight - (C) Ponywolf, CC0, http://opengameart.org/content/sticker-knight-platformer
wangblob.png, CC0, https://opengameart.org/content/seamless-tileset-template-ii
20 changes: 10 additions & 10 deletions src/tiled/wangbrush.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,7 @@ void WangBrush::updateBrush()
for (int i = 0; i < 8; i += 2)
r += QRect(adjacentPositions[i], QSize(1, 1));

if (mBrushMode == PaintCorner)
if (mBrushMode == PaintCorner || mBrushMode == PaintEdgeAndCorner)
for (int i = 1; i < 8; i += 2)
r += QRect(adjacentPositions[i], QSize(1, 1));

Expand All @@ -568,15 +568,15 @@ void WangBrush::updateBrush()
if (!wangId)
continue;

if (mBrushMode == PaintEdge) {
// Mark the opposite side or corner of the adjacent tile
if (isCorner || (mBrushMode == PaintEdge || mBrushMode == PaintEdgeAndCorner)) {
wangId.setIndexColor(WangId::oppositeIndex(i), mCurrentColor);
} else {
if (isCorner) {
wangId.setIndexColor(WangId::oppositeIndex(i), mCurrentColor);
} else {
wangId.setIndexColor((i + 3) % WangId::NumIndexes, mCurrentColor);
wangId.setIndexColor((i + 5) % WangId::NumIndexes, mCurrentColor);
}
}

// Mark the touching corners of the adjacent tile
if (!isCorner && (mBrushMode == PaintCorner || mBrushMode == PaintEdgeAndCorner)) {
wangId.setIndexColor((i + 3) % WangId::NumIndexes, mCurrentColor);
wangId.setIndexColor((i + 5) % WangId::NumIndexes, mCurrentColor);
}

const Cell &cell = findMatchingWangTile(mWangSet, wangId).makeCell();
Expand All @@ -587,7 +587,7 @@ void WangBrush::updateBrush()
for (int j = 0; j < 8; j += 2)
r += QRect(adjacentPositions[j], QSize(1, 1));

if (mBrushMode == PaintCorner)
if (mBrushMode == PaintCorner || mBrushMode == PaintEdgeAndCorner)
for (int j = 1; j < 8; j += 2)
r += QRect(adjacentPositions[j], QSize(1, 1));

Expand Down
Binary file added tests/wangtiles/wangblob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 59 additions & 0 deletions tests/wangtiles/wangblob.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<tileset version="1.4" tiledversion="1.4.2" name="wangblob" tilewidth="32" tileheight="32" tilecount="49" columns="7">
<image source="wangblob.png" width="224" height="224"/>
<wangsets>
<wangset name="Blob" tile="8">
<wangcolor name="Yellow" color="#ef2929" tile="32" probability="1"/>
<wangcolor name="Blue" color="#00ff00" tile="6" probability="1"/>
<wangtile tileid="0" wangid="0x22222222"/>
<wangtile tileid="1" wangid="0x22222122"/>
<wangtile tileid="2" wangid="0x21211122"/>
<wangtile tileid="3" wangid="0x21111122"/>
<wangtile tileid="4" wangid="0x21112122"/>
<wangtile tileid="5" wangid="0x21212222"/>
<wangtile tileid="6" wangid="0x22222222"/>
<wangtile tileid="7" wangid="0x22212222"/>
<wangtile tileid="8" wangid="0x22212122"/>
<wangtile tileid="9" wangid="0x21212111"/>
<wangtile tileid="10" wangid="0x11211111"/>
<wangtile tileid="11" wangid="0x11112221"/>
<wangtile tileid="12" wangid="0x22212121"/>
<wangtile tileid="13" wangid="0x21222222"/>
<wangtile tileid="14" wangid="0x22211121"/>
<wangtile tileid="15" wangid="0x21112121"/>
<wangtile tileid="16" wangid="0x21212121"/>
<wangtile tileid="17" wangid="0x21222111"/>
<wangtile tileid="18" wangid="0x11211121"/>
<wangtile tileid="19" wangid="0x21111121"/>
<wangtile tileid="20" wangid="0x21112222"/>
<wangtile tileid="21" wangid="0x22211111"/>
<wangtile tileid="22" wangid="0x11111121"/>
<wangtile tileid="23" wangid="0x21112221"/>
<wangtile tileid="24" wangid="0x22211122"/>
<wangtile tileid="25" wangid="0x21111111"/>
<wangtile tileid="26" wangid="0x11112111"/>
<wangtile tileid="27" wangid="0x11212221"/>
<wangtile tileid="28" wangid="0x22212111"/>
<wangtile tileid="29" wangid="0x11222111"/>
<wangtile tileid="30" wangid="0x11212121"/>
<wangtile tileid="31" wangid="0x21211111"/>
<wangtile tileid="32" wangid="0x11111111"/>
<wangtile tileid="33" wangid="0x11112121"/>
<wangtile tileid="34" wangid="0x21212221"/>
<wangtile tileid="35" wangid="0x22222121"/>
<wangtile tileid="36" wangid="0x21212122"/>
<wangtile tileid="37" wangid="0x21211121"/>
<wangtile tileid="38" wangid="0x21112111"/>
<wangtile tileid="39" wangid="0x11212111"/>
<wangtile tileid="40" wangid="0x11222221"/>
<wangtile tileid="41" wangid="0x22212221"/>
<wangtile tileid="42" wangid="0x22222222"/>
<wangtile tileid="43" wangid="0x22222221"/>
<wangtile tileid="44" wangid="0x22222111"/>
<wangtile tileid="45" wangid="0x11222121"/>
<wangtile tileid="46" wangid="0x21222121"/>
<wangtile tileid="47" wangid="0x21222122"/>
<wangtile tileid="48" wangid="0x21222221"/>
</wangset>
</wangsets>
</tileset>

0 comments on commit 8c168b7

Please sign in to comment.