diff --git a/assets/mods/basegame/crafting/testrecipe.json b/assets/mods/basegame/crafting/testrecipe.json index 472c51b6a..7ab898244 100644 --- a/assets/mods/basegame/crafting/testrecipe.json +++ b/assets/mods/basegame/crafting/testrecipe.json @@ -4,5 +4,12 @@ "ingredients": [ /* Multiple ingredients denotes alternative recipes */ [2, 1, "$WOOD", 1, "$ROCK"] /* This recipe only requires one Wooden Plank */ ] + }, + + "basegame:176": { /* alternative recipes can be added like this */ + "workbench": "SOME_WORKBENCH", + "ingredients": [ + [5, 1, "$ROCKWOOD"] + ] } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/ColorLimiterTest.kt b/src/net/torvald/terrarum/ColorLimiterTest.kt index 458bd4336..a6db94670 100644 --- a/src/net/torvald/terrarum/ColorLimiterTest.kt +++ b/src/net/torvald/terrarum/ColorLimiterTest.kt @@ -50,7 +50,7 @@ object ColorLimiterTest : ApplicationAdapter() { batch = SpriteBatch() shapeRenderer = ShapeRenderer() - font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap", flipY = false) + font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap") if (!shader4096.isCompiled) { diff --git a/src/net/torvald/terrarum/GlslTilingTest.kt b/src/net/torvald/terrarum/GlslTilingTest.kt index 863178ec5..89d8be398 100644 --- a/src/net/torvald/terrarum/GlslTilingTest.kt +++ b/src/net/torvald/terrarum/GlslTilingTest.kt @@ -50,7 +50,7 @@ object GlslTilingTest : ApplicationAdapter() { shader = ShaderProgram(Gdx.files.internal("assets/shaders/default.vert"), Gdx.files.internal("assets/shaders/tiling.frag")) - font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap", flipY = false) + font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap") if (!shader.isCompiled) { diff --git a/src/net/torvald/terrarum/ModMgr.kt b/src/net/torvald/terrarum/ModMgr.kt index 11d6d9014..ba9f54589 100644 --- a/src/net/torvald/terrarum/ModMgr.kt +++ b/src/net/torvald/terrarum/ModMgr.kt @@ -564,7 +564,7 @@ object ModMgr { @JvmStatic operator fun invoke(module: String) { getFile(module, recipePath).listFiles { it: File -> it.name.lowercase().endsWith(".json") }?.forEach { jsonFile -> - Terrarum.craftingCodex.addFromJson(JsonFetcher(jsonFile), module) + Terrarum.craftingCodex.addFromJson(JsonFetcher(jsonFile), module, jsonFile.name) } } } diff --git a/src/net/torvald/terrarum/ShitOnGlsl.kt b/src/net/torvald/terrarum/ShitOnGlsl.kt index a4e34f5a5..8ef639ee9 100644 --- a/src/net/torvald/terrarum/ShitOnGlsl.kt +++ b/src/net/torvald/terrarum/ShitOnGlsl.kt @@ -42,7 +42,7 @@ object ShitOnGlsl : ApplicationAdapter() { shader = ShaderProgram(Gdx.files.internal("assets/shaders/default.vert"), Gdx.files.internal("assets/shaders/crt.frag")) - font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap", flipY = false) + font = TerrarumSansBitmap("assets/graphics/fonts/terrarum-sans-bitmap") if (!shader.isCompiled) { diff --git a/src/net/torvald/terrarum/gamecontroller/IME.kt b/src/net/torvald/terrarum/gamecontroller/IME.kt index d2d4026c8..9f3af9595 100644 --- a/src/net/torvald/terrarum/gamecontroller/IME.kt +++ b/src/net/torvald/terrarum/gamecontroller/IME.kt @@ -106,7 +106,7 @@ object IME { } - val iconSheet = TextureRegionPack("assets/graphics/gui/ime_icons_by_language.tga", 20, 20, flipY = false) + val iconSheet = TextureRegionPack("assets/graphics/gui/ime_icons_by_language.tga", 20, 20) val iconPixmap = Pixmap(Gdx.files.internal("assets/graphics/gui/ime_icons_by_language.tga")) for (k in 0 until iconPixmap.height step 20) { val langCode = StringBuilder() diff --git a/src/net/torvald/terrarum/itemproperties/CraftingCodex.kt b/src/net/torvald/terrarum/itemproperties/CraftingCodex.kt index 8c1833a8f..bebb81a8e 100644 --- a/src/net/torvald/terrarum/itemproperties/CraftingCodex.kt +++ b/src/net/torvald/terrarum/itemproperties/CraftingCodex.kt @@ -10,9 +10,9 @@ import net.torvald.terrarum.utils.forEachSiblingsIndexed */ class CraftingCodex { - @Transient private val props = HashMap>() + @Transient internal val props = HashMap>() - fun addFromJson(json: JsonValue, moduleName: String) { + fun addFromJson(json: JsonValue, moduleName: String, fileName:String) { if (moduleName.filter { it.code in 33..127 } .length < 5) throw IllegalStateException("Invalid module name: ${moduleName}") @@ -38,8 +38,8 @@ class CraftingCodex { } // sanity check - if (moq < 1) - throw IllegalStateException("Recipe #${ingredientIndex+1} for item '$itemName' has moq of ${moq}") + if (moq !in 1..1000) + throw IllegalStateException("Recipe #${ingredientIndex+1} for item '$itemName' has invalid moq of ${moq}") else if (qtys.size != itemsStr.size) throw IllegalStateException("Mismatched item name and count for recipe #${ingredientIndex+1} for item '$itemName'") @@ -59,7 +59,7 @@ class CraftingCodex { qtys[i] )) } - recipes.add(CraftingRecipe(workbenchStr, ingredients.toTypedArray(), moq, moduleName)) + recipes.add(CraftingRecipe(workbenchStr, ingredients.toTypedArray(), moq, "$moduleName/$fileName")) } // register to the main props diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index 2f9d1f369..6977cd54b 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -29,13 +29,13 @@ class EntryPoint : ModuleEntryPoint() { // load common resources to the AssetsManager CommonResourcePool.addToLoadingList("$moduleName.items16") { - TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items.tga"), 16, 16, flipY = false) + TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items.tga"), 16, 16) } CommonResourcePool.addToLoadingList("$moduleName.items24") { - TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items24.tga"), 24, 24, flipY = false) + TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items24.tga"), 24, 24) } CommonResourcePool.addToLoadingList("$moduleName.items48") { - TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items48.tga"), 48, 48, flipY = false) + TextureRegionPack(ModMgr.getGdxFile(moduleName, "items/items48.tga"), 48, 48) } CommonResourcePool.loadAll() @@ -45,6 +45,16 @@ class EntryPoint : ModuleEntryPoint() { ModMgr.GameItemLoader.invoke(moduleName) ModMgr.GameBlockLoader.invoke(moduleName) ModMgr.GameLanguageLoader.invoke(moduleName) + ModMgr.GameCraftingRecipeLoader.invoke(moduleName) + + println("Crafting Recipes: ") + Terrarum.craftingCodex.props.forEach { item, recipes -> + println("$item ->") + recipes.forEach { + print(" ") + println(it) + } + } ///////////////////////////////// // load customised item loader // diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt index d25cbf66c..73521bc7b 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt @@ -236,7 +236,7 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange { fun getSpritesheet(module: String, path: String, tileW: Int, tileH: Int): TextureRegionPack { val id = "$module/${path.replace('\\','/')}" return (CommonResourcePool.getOrPut(id) { - TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH, flipY = false) + TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH) } as TextureRegionPack) } } diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt index 8e1be7596..98632ddfb 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt @@ -101,7 +101,7 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G fun getItemImageFromSheet(module: String, path: String, tileW: Int, tileH: Int): TextureRegion { val id = "$module/${path.replace('\\','/')}" return (CommonResourcePool.getOrPut(id) { - TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH, flipY = false) + TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH) } as TextureRegionPack).get(0,0) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt index dcf442946..7ed1f741b 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UILoadDemoSavefiles.kt @@ -86,7 +86,7 @@ class UILoadDemoSavefiles(val remoCon: UIRemoCon) : UICanvas() { t.flip(false, false); t } CommonResourcePool.addToLoadingList("savegame_status_icon") { - TextureRegionPack("assets/graphics/gui/savegame_status_icon.tga", 24, 24, flipY = false) + TextureRegionPack("assets/graphics/gui/savegame_status_icon.tga", 24, 24) } CommonResourcePool.loadAll() } diff --git a/src/net/torvald/terrarum/ui/Toolkit.kt b/src/net/torvald/terrarum/ui/Toolkit.kt index 3e12f6f08..b952432ba 100644 --- a/src/net/torvald/terrarum/ui/Toolkit.kt +++ b/src/net/torvald/terrarum/ui/Toolkit.kt @@ -41,7 +41,7 @@ object Toolkit : Disposable { private lateinit var blurWriteQuad2: Mesh private lateinit var blurWriteQuad4: Mesh - val baloonTile = TextureRegionPack("assets/graphics/gui/message_black_tileable.tga", 36, 36, flipY = false) + val baloonTile = TextureRegionPack("assets/graphics/gui/message_black_tileable.tga", 36, 36) val textureWhiteSquare = Texture(Gdx.files.internal("assets/graphics/ortho_line_tex_2px.tga")) val textureWhiteCircle = Texture(Gdx.files.internal("assets/graphics/circle_512.tga"))