diff --git a/assets/mods/basegame/fonts/watch_new.tga b/assets/mods/basegame/fonts/watch_new.tga index ed03abe4e..38a647dbe 100644 --- a/assets/mods/basegame/fonts/watch_new.tga +++ b/assets/mods/basegame/fonts/watch_new.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e39f5debc3c0ec7a71c71d17b357c0bd80ce4f17791f4bf5464d5f10ac25791 +oid sha256:5f8b3c06376ecff60119bf22437662c8d586f3db869c4c33fe54621cc5cbd226 size 20780 diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index 66e7ce97b..ec9727f18 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -23,6 +23,7 @@ import net.torvald.terrarum.modulebasegame.Ingame import net.torvald.terrarum.modulebasegame.IngameRenderer import net.torvald.terrarum.modulebasegame.gameactors.HumanoidNPC import net.torvald.terrarum.modulebasegame.gameworld.GameWorldExtension +import net.torvald.terrarum.modulebasegame.gameworld.WorldTime import net.torvald.terrarum.modulebasegame.ui.UIRemoCon import net.torvald.terrarum.modulebasegame.ui.UITitleRemoConYaml import net.torvald.terrarum.modulebasegame.weather.WeatherMixer @@ -129,7 +130,8 @@ class TitleScreen(val batch: SpriteBatch) : Screen { demoWorld = ReadLayerData(FileInputStream(ModMgr.getFile("basegame", "demoworld"))) - + // set time to summer + demoWorld.time.addTime(WorldTime.DAY_LENGTH * 32) // construct camera nodes val nodeCount = 100 diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 1592127ab..923b51279 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -70,6 +70,8 @@ class BuildingMaker(batch: SpriteBatch) : IngameInstance(batch) { } } + // set time to summer + gameWorld.time.addTime(WorldTime.DAY_LENGTH * 32) world = gameWorld } diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt index 59f5577f1..568c30ba2 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawerNew.kt @@ -42,10 +42,12 @@ internal object BlocksDrawer { * If not, the engine will choose wrong tile for a number you provided. */ - val tilesTerrain: TextureRegionPack + /** Index zero: spring */ + val weatherTerrains: Array + lateinit var tilesTerrain: TextureRegionPack; private set + lateinit var tilesTerrainBlend: TextureRegionPack; private set val tilesWire: TextureRegionPack val tileItemWall: TextureRegionPack - val tilesTerrainBlend: TextureRegionPack val tilesFluid: TextureRegionPack //val tileItemWall = Image(TILE_SIZE * 16, TILE_SIZE * GameWorld.TILES_SUPPORTED / 16) // 4 MB @@ -97,8 +99,8 @@ internal object BlocksDrawer { // -- Torvald, 2018-12-19 // hard-coded as tga.gz - val gzFileList = listOf("blocks/terrain.tga.gz", "blocks/wire.tga.gz", "blocks/terrain_autumn.tga.gz", "blocks/fluids.tga.gz") - val gzTmpFName = listOf("tmp_terrain.tga", "tmp_wire.tga", "tmp_terrain_autumn.tga", "tmp_fluids.tga") + val gzFileList = listOf("blocks/wire.tga.gz", "blocks/fluids.tga.gz", "blocks/terrain_spring.tga.gz", "blocks/terrain.tga.gz", "blocks/terrain_autumn.tga.gz", "blocks/terrain_winter.tga.gz") + val gzTmpFName = listOf("tmp_wire.tga", "tmp_fluids.tga", "tmp_vor.tga", "tmp_sumar.tga", "tmp_haust.tga", "tmp_vetter.tga") // unzip GZIP temporarily gzFileList.forEachIndexed { index, filename -> val terrainTexFile = ModMgr.getGdxFile("basegame", filename) @@ -111,27 +113,29 @@ internal object BlocksDrawer { fos.close() } - val _terrainPixMap = Pixmap(Gdx.files.internal(gzTmpFName[0])) - val _wirePixMap = Pixmap(Gdx.files.internal(gzTmpFName[1])) - val _terrainBlendPixMap = Pixmap(Gdx.files.internal(gzTmpFName[2])) - val _fluidPixMap = Pixmap(Gdx.files.internal(gzTmpFName[3])) + val _wirePixMap = Pixmap(Gdx.files.internal(gzTmpFName[0])) + val _fluidPixMap = Pixmap(Gdx.files.internal(gzTmpFName[1])) + + val _terrainPixMap = Array(4) { Pixmap(Gdx.files.internal(gzTmpFName[it + 2])) } // delete temp files gzTmpFName.forEach { File(it).delete() } - tilesTerrain = TextureRegionPack(Texture(_terrainPixMap), TILE_SIZE, TILE_SIZE) - tilesTerrain.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) + + weatherTerrains = Array(4) { + val t = TextureRegionPack(Texture(_terrainPixMap[it]), TILE_SIZE, TILE_SIZE) + t.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) + t + } + tilesWire = TextureRegionPack(Texture(_wirePixMap), TILE_SIZE, TILE_SIZE) tilesWire.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) - tilesTerrainBlend = TextureRegionPack(Texture(_terrainBlendPixMap), TILE_SIZE, TILE_SIZE) - tilesTerrainBlend.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) tilesFluid = TextureRegionPack(Texture(_fluidPixMap), TILE_SIZE, TILE_SIZE) tilesFluid.texture.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest) // also dispose unused temp files //terrainPixMap.dispose() // commented: tileItemWall needs it _wirePixMap.dispose() - _terrainBlendPixMap.dispose() _fluidPixMap.dispose() @@ -140,10 +144,13 @@ internal object BlocksDrawer { // create item_wall images // will just use the terrain texture :p - tileItemWall = tilesTerrain + tileItemWall = weatherTerrains[1] - _terrainPixMap.dispose() // finally + _terrainPixMap.forEach { it.dispose() } // finally + + + tilesTerrain = weatherTerrains[1] printdbg(this, "init() exit") @@ -340,6 +347,12 @@ internal object BlocksDrawer { /////////////////////////////////////////// internal fun renderData() { + try { + tilesTerrain = weatherTerrains[(world as GameWorldExtension).time.months - 1] + tilesTerrainBlend = weatherTerrains[(world as GameWorldExtension).time.months fmod 4] + } + catch (e: ClassCastException) { } + drawTiles(WALL) drawTiles(TERRAIN) // regular tiles drawTiles(WIRE) @@ -735,7 +748,7 @@ internal object BlocksDrawer { /*shader hard-code*/shader.setUniformi("tilesInAtlas", tileAtlas.horizontalCount, tileAtlas.verticalCount) //depends on the tile atlas /*shader hard-code*/shader.setUniformi("atlasTexSize", tileAtlas.texture.width, tileAtlas.texture.height) //depends on the tile atlas // set the blend value as world's time progresses, in linear fashion - shader.setUniformf("tilesBlend", if (world is GameWorldExtension && mode != FLUID) + shader.setUniformf("tilesBlend", if (world is GameWorldExtension && (mode == TERRAIN || mode == WALL)) (world as GameWorldExtension).time.days.minus(1f) / WorldTime.MONTH_LENGTH else 0f diff --git a/work_files/UI/overscan_safe_watches.psd b/work_files/UI/overscan_safe_watches.psd index e01f8623a..7cbc4a773 100644 --- a/work_files/UI/overscan_safe_watches.psd +++ b/work_files/UI/overscan_safe_watches.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:56ee20e8c89dd05a13010ebfe10853b98b8226537e85cd9f98d8ccfc53bdc5a6 -size 3284760 +oid sha256:4cc346e46c79188d444caad8c7e1fd817c092069cf8521a6edec5f965009f413 +size 3283908 diff --git a/work_files/graphics/gui/watches/basic_info1.psd b/work_files/graphics/gui/watches/basic_info1.psd new file mode 100644 index 000000000..8599353fa --- /dev/null +++ b/work_files/graphics/gui/watches/basic_info1.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70f763eb7a31ceb7096ddb5e9310956bfa34ff85d9f0449cae3d90a835f7f25b +size 31201 diff --git a/work_files/graphics/gui/watches/basic_info2.psd b/work_files/graphics/gui/watches/basic_info2.psd new file mode 100644 index 000000000..bf3711e38 --- /dev/null +++ b/work_files/graphics/gui/watches/basic_info2.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4783d1d15218f48048065acc79bb848e2b5e7f41742433144e8641a6f219c955 +size 25504