diff --git a/assets/mods/basegame/sprites/fixtures/smelter_tall.tga b/assets/mods/basegame/sprites/fixtures/smelter_tall.tga new file mode 100644 index 000000000..ad7507cfa --- /dev/null +++ b/assets/mods/basegame/sprites/fixtures/smelter_tall.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:156784da56bf9ca1cf1a66b1c699562b4e3f074f02a8bb37a1c4d751c149f188 +size 12306 diff --git a/assets/mods/basegame/sprites/fixtures/smelter_tall_illum.tga b/assets/mods/basegame/sprites/fixtures/smelter_tall_illum.tga new file mode 100644 index 000000000..76aa67b4e --- /dev/null +++ b/assets/mods/basegame/sprites/fixtures/smelter_tall_illum.tga @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c58f356cf7d0d28b0f875f34d673be5a30d088b95de1ce7a4a6438e22b14e3f +size 12306 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSmelterBasic.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSmelterBasic.kt index 732c96a54..acd3bdd9f 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSmelterBasic.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureSmelterBasic.kt @@ -1,13 +1,14 @@ package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.gdx.graphics.Cvec -import net.torvald.terrarum.BlockCodex -import net.torvald.terrarum.INGAME +import net.torvald.spriteanimation.SheetSpriteAnimation +import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.Hitbox import net.torvald.terrarum.gameactors.Lightbox +import net.torvald.terrarum.gameparticles.ParticleVanishingSprite import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase @@ -24,11 +25,17 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation { @Transient override val tags = listOf("basicsmelter") constructor() : super( - BlockBox(BlockBox.ALLOW_MOVE_DOWN, 2, 2), // temporary value, will be overwritten by spawn() + BlockBox(BlockBox.NO_COLLISION, 3, 4), // temporary value, will be overwritten by spawn() nameFun = { Lang["ITEM_SMELTER_BASIC"] } ) { - val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_basic.tga") -// val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_basic_glow.tga") // put this sprite to the hypothetical "SpriteIllum" + CommonResourcePool.addToLoadingList("particles-tiki_smoke.tga") { + TextureRegionPack(ModMgr.getGdxFile("basegame", "particles/bigger_smoke.tga"), 16, 16) + } + CommonResourcePool.loadAll() + + + val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall.tga") +// val itemImage2 = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall_illum.tga") // put this sprite to the hypothetical "SpriteIllum" density = BlockCodex[Block.STONE].density.toDouble() setHitboxDimension(itemImage.texture.width, itemImage.texture.height, 0, 0) @@ -47,11 +54,13 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation { } } - @Transient override var lightBoxList = arrayListOf(Lightbox(Hitbox(0.0, 0.0, TILE_SIZED * 2, TILE_SIZED * 2), Cvec(0.5f, 0.18f, 0f, 0f))) + @Transient override var lightBoxList = arrayListOf(Lightbox(Hitbox(0.0, 2*TILE_SIZED, TILE_SIZED * 2, TILE_SIZED * 2), Cvec(0.5f, 0.18f, 0f, 0f))) @Transient private val actorBlocks = arrayOf( - arrayOf(Block.ACTORBLOCK_ALLOW_MOVE_DOWN, null), - arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_ALLOW_MOVE_DOWN) + arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_NO_COLLISION, null), + arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_NO_COLLISION, null), + arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_NO_COLLISION, null), + arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_NO_COLLISION), ) override fun placeActorBlocks() { forEachBlockbox { x, y, ox, oy -> @@ -62,6 +71,9 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation { } } + private var nextDelay = 0.25f + private var spawnTimer = 0f + @Transient private var mainUIhookHackInstalled = false override fun update(delta: Float) { // adding UI to the fixture as players may right-click on the workbenches instead of pressing a keyboard key @@ -73,6 +85,23 @@ class FixtureSmelterBasic : FixtureBase, CraftingStation { } super.update(delta) + + + // emit smokes TODO: only when hot + if (spawnTimer >= nextDelay) { + (Terrarum.ingame as TerrarumIngame).addParticle( + ParticleVanishingSprite( + CommonResourcePool.getAsTextureRegionPack("particles-tiki_smoke.tga"), + 25f, true, hitbox.startX + TILE_SIZED, hitbox.startY + 16, false, (Math.random() * 256).toInt() + )) + + spawnTimer -= nextDelay + nextDelay = Math.random().toFloat() * 0.25f + 0.25f + + (sprite as? SheetSpriteAnimation)?.delays?.set(0, Math.random().toFloat() * 0.4f + 0.1f) + } + + spawnTimer += delta } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt index 60b4426fd..6c55bce17 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemSmelterBasic.kt @@ -13,7 +13,7 @@ class ItemSmelterBasic(originalID: ItemID) : FixtureItemBase(originalID, "net.to override val isDynamic = false override val materialId = "" override val itemImage: TextureRegion - get() = getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_basic.tga") + get() = getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_tall.tga") override var baseToolSize: Double? = baseMass override var originalName = "ITEM_SMELTER_BASIC" diff --git a/work_files/graphics/sprites/fixtures/smelter_tall.kra b/work_files/graphics/sprites/fixtures/smelter_tall.kra new file mode 100644 index 000000000..c5076e10d --- /dev/null +++ b/work_files/graphics/sprites/fixtures/smelter_tall.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8be7a0d9e18ce4f5f42ee2224a5ff6c55238465a92cb20892b8e54ac277b3b54 +size 192048