package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.Gdx import net.torvald.terrarum.App import net.torvald.terrarum.ModMgr import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameitems.ItemID import java.io.File import java.util.UUID /** * The base class for anything that holds a file like disc/disks * * Created by minjaesong on 2024-01-13. */ open class ItemFileRef(originalID: ItemID) : GameItem(originalID) { var author = "" var collection = "" open var uuid: UUID = UUID(0, 0) /** * String of path within the module (if not refIsShared), or path under savedir/Shared/ */ open var refPath: String = "" /** * Module name (if not refIsShared), or empty string */ open var refModuleName: String = "" /** * If the file must be found under `savedir/Shared` */ open var refIsShared: Boolean = false @Transient open lateinit var ref: File /** * Application-defined. * * For Terrarum: * - "music_disc" for music discs used by Jukebox * * For dwarventech: * - "floppy_oem" (oem: for "commercial" software) * - "floppy_small" * - "floppy_mid" * - "floppy_large" * - "floppy_debug" * - "floppy_homebrew" * - "harddisk_small" * - "harddisk_mid" * - "harddisk_large" * - "harddisk_debug" * - "eeprom_bios" (bios chips only) * - "eeprom_64k" (extra rom for custom motherboards) * */ open var mediumIdentifier = "" override var baseMass = 1.0 override var baseToolSize: Double? = null override var inventoryCategory = Category.MISC override val canBeDynamic = false override val materialId = "" override var equipPosition = EquipPosition.HAND_GRIP fun getAsGdxFile() = if (refIsShared) Gdx.files.external(App.saveSharedDir + "/$refPath") else ModMgr.getGdxFile(refModuleName, refPath) fun getAsFile() = if (refIsShared) File(App.saveSharedDir + "/$refPath") else ModMgr.getFile(refModuleName, refPath) }