working test smelter

This commit is contained in:
minjaesong
2023-12-04 02:53:26 +09:00
parent 57ac4015b5
commit 1cc839fb68
8 changed files with 198 additions and 5 deletions

View File

@@ -2,7 +2,7 @@
"basegame:176": { /* torch */
"workbench": "",
"ingredients": [
[4, 1, "item@basegame:18", 1, "item@basegame:130"] /* 4 torches = 1 stick, 1 coal */
[5, 1, "item@basegame:18", 1, "item@basegame:130"] /* 5 torches = 1 stick, 1 coal */
]
},
"item@basegame:5": { /* tiki torch */
@@ -19,6 +19,12 @@
[1, 8, "$WOOD"]
]
},
"item@basegame:17": { /* basic smelter */
"workbench": "",
"ingredients": [
[1, 20, "$ROCK", 10, "item@basegame:25"] /* 1 smelter = 20 rocks, 10 clay balls */
]
},
"item@basegame:256": { /* oak door */
"workbench": "basiccrafting",

View File

@@ -0,0 +1,34 @@
{
"item@basegame:112": { /* copper */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:128"]]
},
"item@basegame:113": { /* iron */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:129"]]
},
"item@basegame:114": { /* coal coke */
"workbench": "basicsmelter",
"ingredients": [[1, 1, "item@basegame:130"]]
},
"item@basegame:115": { /* zinc */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:131"]]
},
"item@basegame:116": { /* tin */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:132"]]
},
"item@basegame:117": { /* gold */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:133"]]
},
"item@basegame:118": { /* silver */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:134"]]
},
"item@basegame:119": { /* lead */
"workbench": "basicsmelter",
"ingredients": [[1, 2, "item@basegame:135"]]
}
}

View File

@@ -16,7 +16,7 @@
"ingredients": [[1, 6, "$ROCK", 2, "item@basegame:18"]]
},
"item@basegame:24": { /* stone axe */
"workbench": "basiccrafting",
"ingredients": [[1, 6, "$ROCK", 2, "item@basegame:18"]]
}
"workbench": "basiccrafting",
"ingredients": [[1, 6, "$ROCK", 2, "item@basegame:18"]]
}
}

View File

@@ -15,7 +15,7 @@ id;classname
14;net.torvald.terrarum.modulebasegame.gameitems.PickaxeWood
15;net.torvald.terrarum.modulebasegame.gameitems.SledgehammerWood
16;net.torvald.terrarum.modulebasegame.gameitems.ItemWorkbench
17;net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke
17;net.torvald.terrarum.modulebasegame.gameitems.ItemSmelterBasic
18;net.torvald.terrarum.modulebasegame.gameitems.OreStick
19;net.torvald.terrarum.modulebasegame.gameitems.AxeCopper
20;net.torvald.terrarum.modulebasegame.gameitems.AxeIron
@@ -25,6 +25,16 @@ id;classname
24;net.torvald.terrarum.modulebasegame.gameitems.AxeStone
25;net.torvald.terrarum.modulebasegame.gameitems.ItemClayBall
# ingots
112;net.torvald.terrarum.modulebasegame.gameitems.IngotCopper
113;net.torvald.terrarum.modulebasegame.gameitems.IngotIron
114;net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke
115;net.torvald.terrarum.modulebasegame.gameitems.IngotZinc
116;net.torvald.terrarum.modulebasegame.gameitems.IngotTin
117;net.torvald.terrarum.modulebasegame.gameitems.IngotGold
118;net.torvald.terrarum.modulebasegame.gameitems.IngotSilver
119;net.torvald.terrarum.modulebasegame.gameitems.IngotLead
# ores
128;net.torvald.terrarum.modulebasegame.gameitems.OreCopper
129;net.torvald.terrarum.modulebasegame.gameitems.OreIron
@@ -35,6 +45,7 @@ id;classname
134;net.torvald.terrarum.modulebasegame.gameitems.OreSilver
135;net.torvald.terrarum.modulebasegame.gameitems.OreLead
# gemstones
#144; gems
1 id classname
15 14 net.torvald.terrarum.modulebasegame.gameitems.PickaxeWood
16 15 net.torvald.terrarum.modulebasegame.gameitems.SledgehammerWood
17 16 net.torvald.terrarum.modulebasegame.gameitems.ItemWorkbench
18 17 net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke net.torvald.terrarum.modulebasegame.gameitems.ItemSmelterBasic
19 18 net.torvald.terrarum.modulebasegame.gameitems.OreStick
20 19 net.torvald.terrarum.modulebasegame.gameitems.AxeCopper
21 20 net.torvald.terrarum.modulebasegame.gameitems.AxeIron
25 24 net.torvald.terrarum.modulebasegame.gameitems.AxeStone
26 25 net.torvald.terrarum.modulebasegame.gameitems.ItemClayBall
27 # ores # ingots
28 112 net.torvald.terrarum.modulebasegame.gameitems.IngotCopper
29 113 net.torvald.terrarum.modulebasegame.gameitems.IngotIron
30 114 net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke
31 115 net.torvald.terrarum.modulebasegame.gameitems.IngotZinc
32 116 net.torvald.terrarum.modulebasegame.gameitems.IngotTin
33 117 net.torvald.terrarum.modulebasegame.gameitems.IngotGold
34 118 net.torvald.terrarum.modulebasegame.gameitems.IngotSilver
35 119 net.torvald.terrarum.modulebasegame.gameitems.IngotLead
36 # ores
37 128 net.torvald.terrarum.modulebasegame.gameitems.OreCopper
38 128 129 net.torvald.terrarum.modulebasegame.gameitems.OreCopper net.torvald.terrarum.modulebasegame.gameitems.OreIron
39 129 130 net.torvald.terrarum.modulebasegame.gameitems.OreIron net.torvald.terrarum.modulebasegame.gameitems.OreCoal
40 130 131 net.torvald.terrarum.modulebasegame.gameitems.OreCoal net.torvald.terrarum.modulebasegame.gameitems.OreZinc
45 135 # gemstones
46 # gemstones #144 gems
47 #144 # tree seeds by tree species
48 160 net.torvald.terrarum.modulebasegame.gameitems.ItemSeedOak
49 # tree seeds by tree species 161 net.torvald.terrarum.modulebasegame.gameitems.ItemSeedEbony
50 160 162 net.torvald.terrarum.modulebasegame.gameitems.ItemSeedOak net.torvald.terrarum.modulebasegame.gameitems.ItemSeedBirch
51 161 163 net.torvald.terrarum.modulebasegame.gameitems.ItemSeedEbony net.torvald.terrarum.modulebasegame.gameitems.ItemSeedRosewood

Binary file not shown.

View File

@@ -0,0 +1,78 @@
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.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.langpack.Lang
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* No GUI yet!
*
* Created by minjaesong on 2023-12-04.
*/
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()
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"
density = BlockCodex[Block.STONE].density.toDouble()
setHitboxDimension(itemImage.texture.width, itemImage.texture.height, 0, 0)
makeNewSprite(TextureRegionPack(itemImage.texture, itemImage.texture.width, itemImage.texture.height)).let {
it.setRowsAndFrames(1,1)
}
/*makeNewSpriteGlow(TextureRegionPack(itemImage2.texture, itemImage.texture.width, itemImage.texture.height)).let {
it.setRowsAndFrames(1,1)
}*/
actorValue[AVKey.BASEMASS] = 50.0
mainUIopenFun = { ui ->
(mainUI as? UIInventoryFull)?.openCrafting(mainUI!!.handler)
}
}
@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 private val actorBlocks = arrayOf(
arrayOf(Block.ACTORBLOCK_ALLOW_MOVE_DOWN, null),
arrayOf(Block.ACTORBLOCK_NO_COLLISION, Block.ACTORBLOCK_ALLOW_MOVE_DOWN)
)
override fun placeActorBlocks() {
forEachBlockbox { x, y, ox, oy ->
val tile = actorBlocks[oy][ox]
if (tile != null) {
world!!.setTileTerrain(x, y, tile, true)
}
}
}
@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
(INGAME as? TerrarumIngame)?.let { ingame ->
if (!mainUIhookHackInstalled && ingame.uiInventoryPlayerReady) {
mainUIhookHackInstalled = true
this.mainUI = ingame.uiInventoryPlayer // this field is initialised only after a full load so this hack is necessary
}
}
super.update(delta)
}
}

View File

@@ -0,0 +1,21 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.gameitems.ItemID
/**
* Created by minjaesong on 2023-12-04.
*/
class ItemSmelterBasic(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureSmelterBasic") {
override var baseMass = 50.0
override val isDynamic = false
override val materialId = ""
override val itemImage: TextureRegion
get() = getItemImageFromSingleImage("basegame", "sprites/fixtures/smelter_basic.tga")
override var baseToolSize: Double? = baseMass
override var originalName = "ITEM_SMELTER_BASIC"
}

View File

@@ -152,11 +152,51 @@ class OreLead(originalID: ItemID) : OreItemBase(originalID) {
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,6)
}
class IngotCopper(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_COPPER"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,5)
}
class IngotIron(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_IRON"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,5)
}
class ItemCoalCoke(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_COAL_COKE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(9,6)
}
class IngotZinc(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_ZINC"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,5)
}
class IngotTin(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_TIN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(5,5)
}
class IngotGold(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_GOLD"
override val materialId: String = "AURM"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6, 5)
}
class IngotSilver(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_SILVER"
override val materialId: String = "ARGN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,5)
}
class IngotLead(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_LEAD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,5)
}
class ItemClayBall(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "BLOCK_CLAY"
override val itemImage: TextureRegion