Doodads now affect the passability of terrain.
This commit is contained in:
@@ -83,7 +83,7 @@ class TilesetBuilder extends Savable {
|
||||
var bPalette = IndexedSeq[AutoTile]()
|
||||
var cPalette = IndexedSeq[AutoTile]()
|
||||
|
||||
val resourceDir = new File(raw"C:\Users\James\Documents\Design\Project\Progena\Resources\tilesets")
|
||||
val resourceDir = new File(Config.homedir + raw"Progena\Resources\tilesets")
|
||||
val files = resourceDir.listFiles()
|
||||
val filenames = files.map(f => (f.getName(), f)).toMap
|
||||
|
||||
@@ -149,7 +149,7 @@ class TilesetBuilder extends Savable {
|
||||
if (a1Palette.size != currTileset.a1Size()) {
|
||||
currTileset.tileInfo.removeRange(0, currTileset.a1Size())
|
||||
currTileset.a1Size() = a1Palette.size
|
||||
val info = a1Palette.map(_ => allPassInfo)
|
||||
val info = a1Palette.map(_ => noPassInfo)
|
||||
currTileset.tileInfo.insert(0, info : _*)
|
||||
}
|
||||
updateTileView()
|
||||
@@ -159,7 +159,7 @@ class TilesetBuilder extends Savable {
|
||||
currTileset.a2.value = getSelected(a2Chooser)
|
||||
a2Palette = if (getSelected(a2Chooser) == null) IndexedSeq() else AutoTilePalette.a2(getSelected(a2Chooser), Config.tileSize).tiles
|
||||
if (a2Palette.size != currTileset.a2Size()) {
|
||||
val priorSize = currTileset.a2Size()
|
||||
val priorSize = currTileset.a1Size()
|
||||
currTileset.tileInfo.removeRange(priorSize, priorSize + currTileset.a2Size())
|
||||
currTileset.a2Size() = a1Palette.size
|
||||
val info = a2Palette.map(_ => allPassInfo)
|
||||
@@ -175,7 +175,7 @@ class TilesetBuilder extends Savable {
|
||||
val priorSize = currTileset.a1Size() + currTileset.a2Size()
|
||||
currTileset.tileInfo.removeRange(priorSize, priorSize + currTileset.a3Size())
|
||||
currTileset.a3Size() = a1Palette.size
|
||||
val info = a3Palette.map(_ => allPassInfo)
|
||||
val info = a3Palette.map(_ => noPassInfo)
|
||||
currTileset.tileInfo.insert(priorSize, info : _*)
|
||||
}
|
||||
updateTileView()
|
||||
@@ -188,7 +188,7 @@ class TilesetBuilder extends Savable {
|
||||
val priorSize = currTileset.a1Size() + currTileset.a2Size() + currTileset.a3Size()
|
||||
currTileset.tileInfo.removeRange(priorSize, priorSize + currTileset.a4Size())
|
||||
currTileset.a4Size() = a4Palette.size
|
||||
val info = a4Palette.map(_ => allPassInfo)
|
||||
val info = a4Palette.zipWithIndex.map{case (_, i) => if ((i / 8) % 2 == 0) allPassInfo else noPassInfo}
|
||||
currTileset.tileInfo.insert(priorSize, info : _*)
|
||||
}
|
||||
updateTileView()
|
||||
@@ -214,7 +214,7 @@ class TilesetBuilder extends Savable {
|
||||
val priorSize = currTileset.a1Size() + currTileset.a2Size() + currTileset.a3Size() + currTileset.a4Size() + currTileset.a5Size()
|
||||
currTileset.tileInfo.removeRange(priorSize, priorSize + currTileset.bSize())
|
||||
currTileset.bSize() = bPalette.size
|
||||
val info = bPalette.map(_ => allPassInfo)
|
||||
val info = bPalette.zipWithIndex.map{case (_, i) => if (i != 0) doodadInfo else allPassInfo}
|
||||
currTileset.tileInfo.insert(priorSize, info : _*)
|
||||
}
|
||||
updateTileView()
|
||||
@@ -227,7 +227,7 @@ class TilesetBuilder extends Savable {
|
||||
val priorSize = currTileset.a1Size() + currTileset.a2Size() + currTileset.a3Size() + currTileset.a4Size() + currTileset.a5Size() + currTileset.bSize()
|
||||
currTileset.tileInfo.removeRange(priorSize, priorSize + currTileset.cSize())
|
||||
currTileset.cSize() = cPalette.size
|
||||
val info = cPalette.map(_ => allPassInfo)
|
||||
val info = cPalette.map(_ => doodadInfo)
|
||||
currTileset.tileInfo.insert(priorSize, info : _*)
|
||||
}
|
||||
updateTileView()
|
||||
@@ -255,12 +255,14 @@ class TilesetBuilder extends Savable {
|
||||
}
|
||||
|
||||
def updateTile(): Unit = {
|
||||
currTileset.tileInfo(currTileIndex) = TileInfo(
|
||||
doesPassNorth.selected(),
|
||||
doesPassEast.selected(),
|
||||
doesPassSouth.selected(),
|
||||
doesPassWest.selected(),
|
||||
isCounter.selected())
|
||||
val northFlag = if (doesPassNorth.selected()) TileInfo.PassNorth else TileInfo.NoPass
|
||||
val eastFlag = if (doesPassEast.selected()) TileInfo.PassEast else TileInfo.NoPass
|
||||
val southFlag = if (doesPassSouth.selected()) TileInfo.PassSouth else TileInfo.NoPass
|
||||
val westFlag = if (doesPassWest.selected()) TileInfo.PassWest else TileInfo.NoPass
|
||||
val counterFlag = if (isCounter.selected()) TileInfo.IsCounter else TileInfo.NoPass
|
||||
val overwriteFlag = currTileset.tileInfo(currTileIndex).flags & TileInfo.Overwrite
|
||||
val flags = northFlag | eastFlag | southFlag | westFlag | counterFlag | overwriteFlag
|
||||
currTileset.tileInfo(currTileIndex) = TileInfo(flags)
|
||||
}
|
||||
|
||||
def saveTo(file: File): Unit = {
|
||||
@@ -289,7 +291,9 @@ class TilesetBuilder extends Savable {
|
||||
tilesetList.refresh()
|
||||
}
|
||||
|
||||
private def allPassInfo = TileInfo(true, true, true, true, false)
|
||||
private def allPassInfo = TileInfo(TileInfo.PassAll)
|
||||
private def noPassInfo = TileInfo(TileInfo.NoPass)
|
||||
private def doodadInfo = TileInfo(TileInfo.NoPass | TileInfo.Overwrite)
|
||||
}
|
||||
|
||||
object TilesetBuilder {
|
||||
|
||||
Reference in New Issue
Block a user