smelting sand to make glass

This commit is contained in:
minjaesong
2024-02-05 18:55:02 +09:00
parent 34bc9d45a0
commit 3d81d7870a
8 changed files with 49 additions and 34 deletions

View File

@@ -1,16 +1,8 @@
package net.torvald.terrarum.modulebasegame
import net.torvald.terrarum.*
import net.torvald.terrarum.App.IS_DEVELOPMENT_BUILD
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.blockproperties.BlockProp
import net.torvald.terrarum.blockproperties.OreProp
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.itemproperties.CraftingCodex
import net.torvald.terrarum.modulebasegame.gameitems.BlockBase
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* The entry point for the module "Basegame"
@@ -56,6 +48,12 @@ class EntryPoint : ModuleEntryPoint() {
}
}
// add smelting recipe for sands
BlockCodex.filter { it.hasTag("SAND") }.forEach { (itemID, _) ->
ItemCodex.get0(itemID)!!.tags.add("SMELTABLE")
ItemCodex.get0(itemID)!!.smeltingProduct = "basegame:148"
}
println("\n[Basegame.EntryPoint] Welcome back!")
}

View File

@@ -7,6 +7,7 @@ import net.torvald.gdx.graphics.Cvec
import net.torvald.random.HQRNG
import net.torvald.spriteanimation.SheetSpriteAnimation
import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
import net.torvald.terrarum.blockproperties.Block
import net.torvald.terrarum.gameactors.AVKey

View File

@@ -10,7 +10,7 @@ import net.torvald.terrarum.gameitems.ItemID
/**
* Created by minjaesong on 2023-10-11.
*/
open class OreItemBase(originalID: ItemID) : GameItem(originalID) {
open class OreItemBase(originalID: ItemID, private val registerToOreDict: Boolean = false) : GameItem(originalID) {
override var baseMass = 10.0
override var baseToolSize: Double? = null
override var inventoryCategory = Category.GENERIC
@@ -19,12 +19,15 @@ open class OreItemBase(originalID: ItemID) : GameItem(originalID) {
override var equipPosition = EquipPosition.HAND_GRIP
override fun effectOnPickup(actor: ActorWithBody) {
val playerCodex = (actor.actorValue.getAsString(AVKey.ORE_DICT) ?: "").split(',').filter { it.isNotBlank() }.toMutableList()
if (registerToOreDict) {
val playerCodex = (actor.actorValue.getAsString(AVKey.ORE_DICT) ?: "").split(',').filter { it.isNotBlank() }
.toMutableList()
if (playerCodex.binarySearch(originalID) < 0) {
playerCodex.add(originalID)
playerCodex.sort()
actor.actorValue[AVKey.ORE_DICT] = playerCodex.joinToString(",")
if (playerCodex.binarySearch(originalID) < 0) {
playerCodex.add(originalID)
playerCodex.sort()
actor.actorValue[AVKey.ORE_DICT] = playerCodex.joinToString(",")
}
}
}
}
@@ -86,9 +89,6 @@ class ItemLogsRosewood(originalID: ItemID) : OreItemBase(originalID) {
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:75", delta)
}
}
class OreStick(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_WOOD_STICK"
override val materialId = "WOOD"
@@ -97,19 +97,22 @@ class OreStick(originalID: ItemID) : OreItemBase(originalID) {
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,6)
}
class OreCopper(originalID: ItemID) : OreItemBase(originalID) {
class OreCopper(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_MALACHITE"
override var smeltingProduct: ItemID? = "item@basegame:112"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,6)
}
class OreIron(originalID: ItemID) : OreItemBase(originalID) {
class OreIron(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_HAEMATITE"
override var smeltingProduct: ItemID? = "item@basegame:113"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,6)
}
class OreCoal(originalID: ItemID) : OreItemBase(originalID) {
class OreCoal(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_COAL"
override var smeltingProduct: ItemID? = "item@basegame:114"
override var calories = 4800.0
@@ -117,39 +120,40 @@ class OreCoal(originalID: ItemID) : OreItemBase(originalID) {
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,6)
}
class OreZinc(originalID: ItemID) : OreItemBase(originalID) {
class OreZinc(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_SPHALERITE"
override var smeltingProduct: ItemID? = "item@basegame:115"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,6)
}
class OreTin(originalID: ItemID) : OreItemBase(originalID) {
class OreTin(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_CASSITERITE"
override var smeltingProduct: ItemID? = "item@basegame:116"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(5,6)
}
class OreGold(originalID: ItemID) : OreItemBase(originalID) {
class OreGold(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_NATURAL_GOLD"
override var smeltingProduct: ItemID? = "item@basegame:117"
override val materialId: String = "AURM"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6, 6)
}
class OreSilver(originalID: ItemID) : OreItemBase(originalID) {
class OreSilver(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_NATURAL_SILVER"
override var smeltingProduct: ItemID? = "item@basegame:118"
override val materialId: String = "ARGN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,6)
}
class OreLead(originalID: ItemID) : OreItemBase(originalID) {
class OreLead(originalID: ItemID) : OreItemBase(originalID, true) {
override var originalName = "ITEM_ORE_GALENA"
override var smeltingProduct: ItemID? = "item@basegame:119"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,6)
}
class ItemCoalCoke(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_COAL_COKE"
override var calories = 4800.0