diff --git a/README.md b/README.md index 0db4bfb..c8d614e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/ufvFUJtVwk)[![Forgejo](https://img.shields.io/badge/source%20code-%23f4f4f5?style=for-the-badge&logo=forgejo&logoColor=%23c2410c)](https://git.cacklingfiend.info/cacklingfiend/lignumis)[![Downloads](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmods.factorio.com%2Fapi%2Fmods%2Flignumis&query=%24.downloads_count&suffix=%20Downloads&style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI%2BCjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTIxNnB0IiBoZWlnaHQ9IjEyODBwdCIgdmlld0JveD0iMCAwIDEyMTYgMTI4MCIKIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDEyODApIHNjYWxlKDAuMSwtMC4xKSIKZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTM0NzAgOTYwMCBsMCAtMzIwMCAtMTczMSAwIGMtOTUyIDAgLTE3MjkgLTQgLTE3MjcgLTggNCAtMTIgNjA2MgotNjM5MCA2MDY4IC02MzkwIDYgMCA2MDY0IDYzNzggNjA2OCA2MzkwIDIgNCAtNzc1IDggLTE3MjcgOCBsLTE3MzEgMCAwIDMyMDAKMCAzMjAwIC0yNjEwIDAgLTI2MTAgMCAwIC0zMjAweiIvPgo8L2c%2BCjwvc3ZnPgo%3D&label=&labelColor=%23e39827&color=%23e39827)](https://mods.factorio.com/mod/lignumis/metrics?range=last_two_months&type=mod_downloads) +[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/ufvFUJtVwk)[![Forgejo](https://img.shields.io/badge/source%20code-%23f4f4f5?style=for-the-badge&logo=forgejo&logoColor=%23c2410c)](https://git.cacklingfiend.info/cacklingfiend/lignumis)[![Downloads](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fmods.factorio.com%2Fapi%2Fmods%2Flignumis&query=%24.downloads_count&suffix=%20Downloads&style=for-the-badge&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI%2BCjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMTIxNnB0IiBoZWlnaHQ9IjEyODBwdCIgdmlld0JveD0iMCAwIDEyMTYgMTI4MCIKIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDEyODApIHNjYWxlKDAuMSwtMC4xKSIKZmlsbD0iI2ZmZmZmZiIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTM0NzAgOTYwMCBsMCAtMzIwMCAtMTczMSAwIGMtOTUyIDAgLTE3MjkgLTQgLTE3MjcgLTggNCAtMTIgNjA2MgotNjM5MCA2MDY4IC02MzkwIDYgMCA2MDY0IDYzNzggNjA2OCA2MzkwIDIgNCAtNzc1IDggLTE3MjcgOCBsLTE3MzEgMCAwIDMyMDAKMCAzMjAwIC0yNjEwIDAgLTI2MTAgMCAwIC0zMjAweiIvPgo8L2c%2BCjwvc3ZnPgo%3D&label=&labelColor=%23e39827&color=%23e39827)](https://mods.factorio.com/mod/lignumis/metrics?range=last_two_months&type=mod_downloads)[![Ko-fi](https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge&logo=ko-fi&logoColor=white)](https://ko-fi.com/cacklingfiend) _________________ ![Lignumis poster](https://git.cacklingfiend.info/cacklingfiend/lignumis-assets/raw/branch/main/sources/readme/poster.jpg) diff --git a/lignumis/changelog.txt b/lignumis/changelog.txt index c8d6233..0d49baa 100644 --- a/lignumis/changelog.txt +++ b/lignumis/changelog.txt @@ -1,4 +1,50 @@ --------------------------------------------------------------------------------------------------- +Version: 1.0.78 +Date: 16.12.2025 + Changes: + - Wooden logistics: Change compatibility to stick closer to how wooden logistics does things (breaking) + - Add setting to make the lumber mill electric + - Integrate lumber mill code into this mod +--------------------------------------------------------------------------------------------------- +Version: 1.0.77 +Date: 14.12.2025 + Changes: + - Integrate deep miner code into this mod + Bug Fixes: + - Correct description of quality assembler + - Wood logistics: Correct lumber mill technology +--------------------------------------------------------------------------------------------------- +Version: 1.0.76 +Date: 12.12.2025 + Changes: + - Add compatibility for "Canal Excavator" (thanks jurgy) + - Add compatibility for "Wood Logistics" + - Diversitree: Improve compatibility + - Use additional_categories for wood processing +--------------------------------------------------------------------------------------------------- +Version: 1.0.75 +Date: 09.12.2025 + Changes: + - Add is_satellite to PlanetsLib:extend + - Remove default item weights as the code has been moved to PlanetsLib + Bug Fixes: + - Recycling in Factoriopedia: Add order to bioprocessing subgroup for compatibility (thanks jvella94) + - Crushing Industry: Use additional_categories for quality assembling so the rocket silo recipe will use concrete mix again +--------------------------------------------------------------------------------------------------- +Version: 1.0.74 +Date: 18.11.2025 + Bug Fixes: + - Set default weight for battery + - Don't hide worker robot speed 3 before before level 2 is researched +--------------------------------------------------------------------------------------------------- +Version: 1.0.73 +Date: 16.11.2025 + Bug Fixes: + - Add provisional-rocket-part to provisional-rocketry effects (thanks Noreja) + Changes: + - Add setting to restrict sciences to Lignumis + - Update descriptions and improve settings labels +--------------------------------------------------------------------------------------------------- Version: 1.0.72 Date: 01.11.2025 Bug Fixes: @@ -69,7 +115,7 @@ Version: 1.0.62 Date: 02.09.2025 Changes: - Add spanish locales (thanks DFOXpro) - - Add compatibility for Alien Biomes (thanks Chromebomb) + - Add compatibility for "Alien Biomes" (thanks Chromebomb) - The lumber mill can be built on Vulcanus again --------------------------------------------------------------------------------------------------- Version: 1.0.61 diff --git a/lignumis/info.json b/lignumis/info.json index fd17e6f..c35c5f6 100644 --- a/lignumis/info.json +++ b/lignumis/info.json @@ -1,6 +1,6 @@ { "name": "lignumis", - "version": "1.0.72", + "version": "1.0.78", "title": "Lignumis", "description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.\n\nThis planet mod effects other planets and space ships. Make sure to read the description on the mod portal and check the mod settings.", "author": "cackling fiend", @@ -12,39 +12,40 @@ "space-age >= 2.0.53", "astroponics >= 1.2.0", "bioprocessing-tab", - "cf-lib >= 0.0.13", + "cf-lib >= 1.1.0", "flib", "gleba-water-cane", "lignumis-assets >= 1.0.3", "mf-buildings >= 1.0.7", "mf-core >= 1.0.3", "mf-logistics >= 1.0.1", - "PlanetsLib >= 1.1.26", + "PlanetsLib >= 1.14.7", "pollution-as-surface-property", "Wood-Walls >= 1.2.0", "vulcanus-sulfuric-bacteria", - "?aai-industry", - "?aai-loaders", - "?aai-loaders-sane", - "?any-planet-start", - "?atan-nuclear-science", - "?crushing-industry", - "?Diversitree", - "?fulgora-coralmium-agriculture", - "?gleba-reborn", - "?hot-metals >= 1.1.0", - "?Krastorio2-spaced-out", - "?lane-splitters", - "?metal-and-stars", - "(?)secretas", - "(?)Wood_Gasification_updated", - "?wood-industry", - "?wood-military >= 2.3.3", - "!apm_power_ldinc", - "!early-agriculture", - "!planet-picker", - "!wood-logistics", - "!wood-universe-modpack", - "!rso-mod" + "? aai-industry", + "? aai-loaders", + "? aai-loaders-sane", + "? any-planet-start", + "? crushing-industry", + "? fulgora-coralmium-agriculture", + "? hot-metals >= 1.1.0", + "? lane-splitters", + "? wood-industry", + "? wood-military >= 2.3.3", + "? canal-excavator >= 1.9.0", + "? wood-logistics", + "(?) atan-nuclear-science", + "(?) Diversitree", + "(?) gleba-reborn", + "(?) Krastorio2-spaced-out", + "(?) metal-and-stars", + "(?) secretas", + "(?) Wood_Gasification_updated", + "! apm_power_ldinc", + "! early-agriculture", + "! planet-picker", + "! wood-universe-modpack", + "! rso-mod" ] } \ No newline at end of file diff --git a/lignumis/locale/de/strings.cfg b/lignumis/locale/de/strings.cfg index 3c723c8..f87857e 100644 --- a/lignumis/locale/de/strings.cfg +++ b/lignumis/locale/de/strings.cfg @@ -8,7 +8,7 @@ lignumis=Tauche ein in die Welt von Lignumis, einem Mond von Nauvis, der nur die lignumis=Lignumis [space-location-description] -lignumis=Lignumis ist ein Mond, der Nauvis umkreist. Er ist Nauvis recht ähnlich, scheint aber jünger zu sein und über weniger Ressourcen zu verfügen. +lignumis=Lignumis ist ein Mond, der __1__ umkreist. Er ist Nauvis recht ähnlich, scheint aber jünger zu sein und über weniger Ressourcen zu verfügen. [airborne-pollutant-name] noise=Lärm @@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Mittelgroßer Lignumis Fünfbein-Zapler [entity-description] lumber-mill=Fortschrittliche Maschine zur Holzbearbeitung. -quality-assembler=High-End-Montagemaschine, die nur die besten Maschinen herstellt. Verleiht 25% zusätzliche Qualität durch den Verbrauch von [item=gold-quality-catalyst]. Die Oberflächenbedingungen und Zutaten bleiben ansonsten unverändert. +quality-assembler=High-End-Montagemaschine, die nur die besten Maschinen herstellt. Verleiht 35% zusätzliche Qualität durch den Verbrauch von [item=gold-quality-catalyst]. Die Oberflächenbedingungen und Zutaten bleiben ansonsten unverändert. gold-stromatolite-plant=Sammle Gold-Stromatolithen für Bakterien, die Gold aus dem Boden anreichern.\n__REMARK_COLOR_BEGIN__Erwarteter Ertrag:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m [equipment-name] diff --git a/lignumis/locale/en/strings.cfg b/lignumis/locale/en/strings.cfg index 262ef96..fc44237 100644 --- a/lignumis/locale/en/strings.cfg +++ b/lignumis/locale/en/strings.cfg @@ -8,7 +8,7 @@ lignumis=Dive into the world of Lignumis, a moon of Nauvis offering only the mos lignumis=Lignumis [space-location-description] -lignumis=Lignumis is a moon orbiting Nauvis. It is quite similar to Nauvis but seems to be younger and with fewer resources. +lignumis=Lignumis is a moon orbiting __1__. It is quite similar to Nauvis but seems to be younger and with fewer resources. [airborne-pollutant-name] noise=Noise @@ -53,7 +53,7 @@ burner-lamp=Burner lamp [entity-description] lumber-mill=Advanced machine to process wood. -quality-assembler=High-end assembler to craft only the finest quality machines. It gives 25% additional quality by consuming [item=gold-quality-catalyst]. Surface conditions and ingredients are otherwise unchanged. +quality-assembler=High-end assembler to craft only the finest quality machines. It gives 35% additional quality by consuming [item=gold-quality-catalyst]. Surface conditions and ingredients are otherwise unchanged. gold-stromatolite-plant=Harvest gold stromatolites for bacteria that enrich gold from the ground.\n__REMARK_COLOR_BEGIN__Expected yield:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m [equipment-name] @@ -126,6 +126,7 @@ planet-discovery-lignumis=Moon discovery Lignumis iron-processing=Iron processing copper-processing=Copper processing lumber-mill=Lumber mill +advanced-carpentry=Lumber mill deep-miner=Deep miner gold-fluid-handling=Gold fluid handling steam-automation=Steam automation @@ -153,6 +154,7 @@ burner-automation=Technology for basic automation using burner machines. planet-discovery-nauvis=A temperate planet offering all the common resources. planet-discovery-lignumis=A moon orbiting Nauvis that has not much to offer besides some vegetation and a metal that might be useful. lumber-mill=Advanced machine to process wood. +advanced-carpentry=Advanced machine to process wood. deep-miner=Gives access to huge gold deposits that were previously unreachable. steam-automation=Allows research of more sophisticated technologies based on wood products and gold. wood-liquefaction=Converting wood into a liquid offers new possibilities. @@ -193,6 +195,7 @@ lignumis-vanilla-lab=[color=orange][font=heading-2]Overhaul[/font][/color] Keep lignumis-double-rocket=[color=green][font=heading-2]Easy[/font][/color] Double provisional rocket cargo capacity lignumis-sciences-spoil=[color=red][font=heading-2]Hard[/font][/color] Lignumis science packs spoil lignumis-infinite-astroponics-productivity-research=[color=green][font=heading-2]Easy[/font][/color] Infinite productivity research for Astroponics +lignumis-electric-lumber-mill=[color=green][font=heading-2]Easy[/font][/color] Electric lumber mill [mod-setting-description] lignumis-belt-progression=Yellow belts will require wood belts to craft. @@ -209,6 +212,7 @@ lignumis-vanilla-lab=Moves the transport belt recipe to Iron processing so the l lignumis-double-rocket=The provisional rocket can carry 80 instead of 40 slots. lignumis-sciences-spoil=Both wood science packs and steam science packs spoil for additional difficulty. lignumis-infinite-astroponics-productivity-research=Productivity research for Astroponics is infinite instead of being capped to level 5 (which results in 50% productivity). +lignumis-electric-lumber-mill=The lumber mill will consume electricity instead of burner fuel and will be unlocked after researching electricity. [autoplace-control-names] lignumis_enemy_base=Lignumis enemy bases diff --git a/lignumis/locale/es-ES/strings.cfg b/lignumis/locale/es-ES/strings.cfg index 5131da5..cfc01ba 100644 --- a/lignumis/locale/es-ES/strings.cfg +++ b/lignumis/locale/es-ES/strings.cfg @@ -8,7 +8,7 @@ lignumis=Sumérgete en el mundo de Lignumis, una luna de Nauvis que ofrece solo lignumis=Lignumis [space-location-description] -lignumis=Lignumis es una luna orbitando Nauvis. Es bastante similar a Nauvis, pero parece ser más joven y con menos recursos. +lignumis=Lignumis es una luna orbitando __1__. Es bastante similar a Nauvis, pero parece ser más joven y con menos recursos. [airborne-pollutant-name] noise=Ruido @@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Pentápodo reptante mediano de Lignumis [entity-description] lumber-mill=Máquina avanzada para procesar madera. -quality-assembler=Ensamblador de alta gama para fabricar solo máquinas de la mejor calidad. Da un 25% de calidad adicional al consumir [item=gold-quality-catalyst]. Por lo demás, las condiciones de la superficie y los ingredientes no cambian. +quality-assembler=Ensamblador de alta gama para fabricar solo máquinas de la mejor calidad. Da un 35% de calidad adicional al consumir [item=gold-quality-catalyst]. Por lo demás, las condiciones de la superficie y los ingredientes no cambian. gold-stromatolite-plant=Recolecte estromatolitos de oro en busca de bacterias que enriquezcan el oro del suelo.\n__REMARK_COLOR_BEGIN__Rendimiento esperado:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m [equipment-name] diff --git a/lignumis/locale/pl/strings.cfg b/lignumis/locale/pl/strings.cfg index 4dfb484..21410af 100644 --- a/lignumis/locale/pl/strings.cfg +++ b/lignumis/locale/pl/strings.cfg @@ -8,7 +8,7 @@ lignumis=Dive into the world of Lignumis, a moon of Nauvis offering only the mos lignumis=Lignumis [space-location-description] -lignumis=Lignumis to księżyc orbitujący wokół Nauvis. Jest dość podobny do Nauvis, ale wydaje się być młodszy i ma mniej zasobów. +lignumis=Lignumis to księżyc orbitujący wokół __1__. Jest dość podobny do Nauvis, ale wydaje się być młodszy i ma mniej zasobów. [airborne-pollutant-name] noise=Hałas diff --git a/lignumis/locale/ru/strings.cfg b/lignumis/locale/ru/strings.cfg index 1d8c517..8b6a72b 100644 --- a/lignumis/locale/ru/strings.cfg +++ b/lignumis/locale/ru/strings.cfg @@ -8,7 +8,7 @@ lignumis=Погрузитесь в мир Лигнумиса — луны Нау lignumis=Лигнумис [space-location-description] -lignumis=Лигнумис — это луна, вращающаяся вокруг Наувиса. Она во многом похожа на Наувис, но кажется моложе и беднее ресурсами. +lignumis=Лигнумис — это луна, вращающаяся вокруг __1__. Она во многом похожа на Наувис, но кажется моложе и беднее ресурсами. [airborne-pollutant-name] noise=Шум @@ -52,7 +52,7 @@ lignumis-medium-wriggler-pentapod=Средний пятиног-ползун Л [entity-description] lumber-mill=Продвинутая машина для обработки древесины. -quality-assembler=Высококачественный сборочный автомат, создающий только лучшие механизмы. Добавляет 25% дополнительного качества предмету, потребляя [item=gold-quality-catalyst]. Условия поверхности и ингредиенты остаются неизменными. +quality-assembler=Высококачественный сборочный автомат, создающий только лучшие механизмы. Добавляет 35% дополнительного качества предмету, потребляя [item=gold-quality-catalyst]. Условия поверхности и ингредиенты остаются неизменными. gold-stromatolite-plant=Собирайте золотой строматолит для получения бактерий, обогащающих золото из почвы.\n__REMARK_COLOR_BEGIN__Ожидаемая добыча:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m [equipment-name] diff --git a/lignumis/prototypes/compatibility/aai-loaders.lua b/lignumis/prototypes/compatibility/aai-loaders.lua index 2137280..da3c063 100644 --- a/lignumis/prototypes/compatibility/aai-loaders.lua +++ b/lignumis/prototypes/compatibility/aai-loaders.lua @@ -46,7 +46,7 @@ AAILoaders.make_tier({ order = "d[loader]-a00[aai-wood-loader]" }) -data.raw.recipe["aai-wood-loader"].category = "wood-processing-or-assembling" +data.raw.recipe["aai-wood-loader"].additional_categories = { "wood-processing" } if not basic_circuit_board then local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit") diff --git a/lignumis/prototypes/compatibility/canal-excavator.lua b/lignumis/prototypes/compatibility/canal-excavator.lua new file mode 100644 index 0000000..5a34a27 --- /dev/null +++ b/lignumis/prototypes/compatibility/canal-excavator.lua @@ -0,0 +1,14 @@ +if not mods["canal-excavator"] then return end + +data:extend({{ + type = "mod-data", + name = "canex-lignumis-config", + data_type = "canex-surface-config", + data = { + surfaceName = "lignumis", + localisation = {"space-location-name.lignumis"}, + mineResult = "stone", + oreStartingAmount = 10, + tint = {r = 102, g = 78, b = 6} + }, +}}) \ No newline at end of file diff --git a/lignumis/prototypes/compatibility/crushing-industry.lua b/lignumis/prototypes/compatibility/crushing-industry.lua index 9a88705..5b035c3 100644 --- a/lignumis/prototypes/compatibility/crushing-industry.lua +++ b/lignumis/prototypes/compatibility/crushing-industry.lua @@ -90,10 +90,9 @@ end local gold_recipe = Recipe:new("burner-crusher") :replaceIngredient("iron-gear-wheel", "wooden-gear-wheel") :replaceIngredient("iron-plate", "gold-plate") - :assign({ - category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or - "crafting" - }) +if settings.startup["lignumis-lumber-mill-more-recipes"].value then + gold_recipe.prototype.additional_categories = { "wood-processing" } +end gold_recipe:clone("burner-crusher-copper") :replaceIngredient("gold-plate", "copper-plate") diff --git a/lignumis/prototypes/compatibility/data.lua b/lignumis/prototypes/compatibility/data.lua index 6d649e2..0ed7173 100644 --- a/lignumis/prototypes/compatibility/data.lua +++ b/lignumis/prototypes/compatibility/data.lua @@ -6,4 +6,6 @@ require("aai-loaders") require("nuclear-science") require("lane-splitters") require("wood-industry") -require("crushing-industry") \ No newline at end of file +require("crushing-industry") +require("canal-excavator") +require("diversitree") \ No newline at end of file diff --git a/lignumis/prototypes/compatibility/diversitree.lua b/lignumis/prototypes/compatibility/diversitree.lua new file mode 100644 index 0000000..af5e8f1 --- /dev/null +++ b/lignumis/prototypes/compatibility/diversitree.lua @@ -0,0 +1,12 @@ +if not mods["Diversitree"] then + return +end + +data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900 + +local tree_plant = data.raw.plant["s6xdvt-fake-tree"] +tree_plant.growth_ticks = 5 * minute +tree_plant.minable.results = { { type = "item", name = "wood", amount = 5 } } +tree_plant.minable.count = nil +tree_plant.surface_conditions[1].min = 900 +table.insert(tree_plant.autoplace.tile_restriction, "natural-gold-soil") \ No newline at end of file diff --git a/lignumis/prototypes/compatibility/lane-splitters.lua b/lignumis/prototypes/compatibility/lane-splitters.lua index 5493840..075cc68 100644 --- a/lignumis/prototypes/compatibility/lane-splitters.lua +++ b/lignumis/prototypes/compatibility/lane-splitters.lua @@ -23,7 +23,7 @@ lane_splitter.prototype.structure_patch.west.filename = data.raw.splitter["wood- lane_splitter.prototype.structure_patch.north.filename = data.raw.splitter["wood-splitter"].structure_patch.north.filename lane_splitter.item.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png" lane_splitter.item.order = "d[lane-splitter]-0[wood-lane-splitter]" -lane_splitter.recipe.category = "wood-processing-or-assembling" +lane_splitter.recipe.additional_categories = { "wood-processing" } data:extend({ lane_splitter.prototype, diff --git a/lignumis/prototypes/compatibility/updates.lua b/lignumis/prototypes/compatibility/updates.lua index 56e0bbe..2042d0d 100644 --- a/lignumis/prototypes/compatibility/updates.lua +++ b/lignumis/prototypes/compatibility/updates.lua @@ -1,4 +1,5 @@ require("aai-industry") require("gleba-reborn") require("crushing-industry-updates") -require("k2so") \ No newline at end of file +require("k2so") +require("wood-logistics") \ No newline at end of file diff --git a/lignumis/prototypes/compatibility/wood-logistics.lua b/lignumis/prototypes/compatibility/wood-logistics.lua new file mode 100644 index 0000000..98ea43f --- /dev/null +++ b/lignumis/prototypes/compatibility/wood-logistics.lua @@ -0,0 +1,157 @@ +local Item = require("__cf-lib__/data/Item") +local Recipe = require("__cf-lib__/data/Recipe") +local Technology = require("__cf-lib__/data/Technology") + +if not mods["wood-logistics"] then + return +end + +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value +local electric_lumber_mill = settings.startup["lignumis-electric-lumber-mill"].value + + +-- Lumber +if settings.startup["wood-logistics-lumber"].value then + Recipe:new("lumber"):addCategory("wood-processing") +end + + +-- Lumber mill +if settings.startup["wood-logistics-lumber-mill"].value then + local lumberMill = data.raw["assembling-machine"]["lumber-mill"] + lumberMill.surface_conditions = { + { + property = has_oxygen and "oxygen" or "pressure", + min = 3 + }, + { + property = "gravity", + min = 1 + } + } + table.insert(lumberMill.crafting_categories, "wood-processing") + + if electric_lumber_mill then + lumberMill.energy_source.emissions_per_minute.noise = 100 + else + lumberMill.energy_source = { + type = "burner", + fuel_categories = { "chemical" }, + effectivity = 1, + fuel_inventory_size = 3, + emissions_per_minute = { pollution = 10, noise = 100 }, + } + end + + data.raw.item["lumber-mill"].default_import_location = "lignumis" + + table.assign(data.raw.recipe["lumber-mill"], { + additional_categories = { "wood-processing" }, + ingredients = table.trim({ + { type = "item", name = "stone-brick", amount = 40 }, + { type = "item", name = "lumber", amount = 50 }, + { type = "item", name = "wooden-gear-wheel", amount = 50 }, + { type = "item", name = "gold-plate", amount = basic_circuit_board and 20 or 40 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 20 } or nil, + { type = "item", name = "burner-assembling-machine", amount = 2 } + }) + }) + + Recipe:new("lumber-mill") + :clone("lumber-mill-copper") + :assign({ + localised_name = { "entity-name.lumber-mill" }, + icons = { + { icon = data.raw.item["lumber-mill"].icon }, + { icon = basic_circuit_board and "__base__/graphics/icons/copper-plate.png" or "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + } + }) + :replaceIngredient("gold-plate", "copper-plate") + :unlockedByTechnology( + electric_lumber_mill and "advanced-carpentry" + or basic_circuit_board and "copper-processing" + or "electronics" + ) + :apply() + + if electric_lumber_mill then + table.assign(data.raw.technology["advanced-carpentry"], { + prerequisites = { "automation-science-pack" }, + unit = { + count = 250, + time = 15, + ingredients = { + { "automation-science-pack", 1 } + } + } + }) + else + table.assign(data.raw.technology["advanced-carpentry"], { + prerequisites = { "steam-science-pack" }, + unit = { + count = 250, + time = 15, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 } + } + } + }) + end +end + + +-- Wooden belts +if settings.startup["wood-logistics-belts"].value then + Recipe:new("wood-transport-belt") + :replaceIngredient("copper-cable", "wooden-gear-wheel", 1) + :assign({ + additional_categories = { "wood-processing" } + }) + + Recipe:new("wood-underground-belt") + :assign({ + additional_categories = { "wood-processing" } + }) + + Recipe:new("wood-splitter") + :replaceIngredient("copper-cable", basic_circuit_board and "basic-circuit-board" or "gold-cable", basic_circuit_board and 5 or nil) + :assign({ + additional_categories = { "wood-processing" } + }) + + if not basic_circuit_board then + Recipe:new("wood-splitter") + :clone("wood-splitter-electronic-circuit") + :replaceIngredient(basic_circuit_board and "gold-cable" or "basic-circuit-board", "electronic-circuit", 2) + :assign({ + localised_name = { "entity-name.wood-splitter" }, + icons = { + { icon = data.raw.item["wood-splitter"].icon }, + { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } + } + }) + :unlockedByTechnology("electronics") + :apply() + end + + Item:new("wood-transport-belt") + :itemsPerRocket(200) + :defaultImportLocation("lignumis") + Item:new("wood-underground-belt") + :itemsPerRocket(100) + :defaultImportLocation("lignumis") + Item:new("wood-splitter") + :itemsPerRocket(100) + :defaultImportLocation("lignumis") + + Technology:new("wood-logistics"):assign({ + prerequisites = { "wood-science-pack" }, + unit = { + count = 10, + ingredients = { { "wood-science-pack", 1 } }, + time = 10 + } + }) + Technology:new("logistics"):setPrerequisites({ "automation-science-pack" }) +end \ No newline at end of file diff --git a/lignumis/prototypes/content/basic-circuit-board.lua b/lignumis/prototypes/content/basic-circuit-board.lua index 04dbf0a..8858fdf 100644 --- a/lignumis/prototypes/content/basic-circuit-board.lua +++ b/lignumis/prototypes/content/basic-circuit-board.lua @@ -19,7 +19,8 @@ data:extend({ { type = "recipe", name = "basic-circuit-board", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, icons = { { icon = Lignumis.graphics .. "icons/basic-circuit-board.png" }, { icon = Lignumis.graphics .. "icons/gold-cable.png", scale = 0.25, shift = { 8, 8 } } @@ -36,7 +37,8 @@ data:extend({ type = "recipe", name = "basic-circuit-board-copper", localised_name = { "item-name.basic-circuit-board" }, - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, icons = { { icon = Lignumis.graphics .. "icons/basic-circuit-board.png" }, { icon = "__base__/graphics/icons/copper-cable.png", scale = 0.25, shift = { 8, 8 } } diff --git a/lignumis/prototypes/content/basic-gun-turret.lua b/lignumis/prototypes/content/basic-gun-turret.lua index 335010b..3935386 100644 --- a/lignumis/prototypes/content/basic-gun-turret.lua +++ b/lignumis/prototypes/content/basic-gun-turret.lua @@ -58,7 +58,7 @@ local turret_recipe = { results = { { type = "item", name = "basic-gun-turret", amount = 1 } } } if settings.startup["lignumis-lumber-mill-more-recipes"].value then - turret_recipe.category = "wood-processing-or-assembling" + turret_recipe.additional_categories = { "wood-processing" } end local turret_technology = { diff --git a/lignumis/prototypes/content/burner-agricultural-tower.lua b/lignumis/prototypes/content/burner-agricultural-tower.lua index e76a2da..dc5a31e 100644 --- a/lignumis/prototypes/content/burner-agricultural-tower.lua +++ b/lignumis/prototypes/content/burner-agricultural-tower.lua @@ -84,7 +84,8 @@ data:extend({ { type = "recipe", name = "burner-agricultural-tower", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, energy_required = 10, ingredients = { { type = "item", name = "stone-brick", amount = 5 }, @@ -116,7 +117,8 @@ data:extend({ { type = "recipe", name = "burner-agricultural-tower-copper", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, localised_name = { "entity-name.burner-agricultural-tower" }, icons = { { icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" }, diff --git a/lignumis/prototypes/content/burner-assembling-machine.lua b/lignumis/prototypes/content/burner-assembling-machine.lua index 58cd14b..0c46bad 100644 --- a/lignumis/prototypes/content/burner-assembling-machine.lua +++ b/lignumis/prototypes/content/burner-assembling-machine.lua @@ -17,7 +17,6 @@ assembling_machine.crafting_categories = { "crafting", "electronics", "pressing", - "wood-processing-or-assembling", "organic-or-assembling", "electronics-or-assembling", "metallurgy-or-assembling" @@ -50,8 +49,6 @@ remnants.animation[2].filename = gfx .. "burner-assembling-machine-remnants.png" remnants.animation[3].filename = gfx .. "burner-assembling-machine-remnants.png" remnants.order = "0[burner-assembling-machine]" -local crafting_category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or "crafting" - data:extend({ assembling_machine, remnants, @@ -70,7 +67,8 @@ data:extend({ { type = "recipe", name = "burner-assembling-machine", - category = crafting_category, + category = "crafting", + additional_categories = settings.startup["lignumis-lumber-mill-more-recipes"].value and { "wood-processing" } or nil, enabled = false, ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 5 }, diff --git a/lignumis/prototypes/content/burner-long-handed-inserter.lua b/lignumis/prototypes/content/burner-long-handed-inserter.lua index de8a785..b6dffcf 100644 --- a/lignumis/prototypes/content/burner-long-handed-inserter.lua +++ b/lignumis/prototypes/content/burner-long-handed-inserter.lua @@ -44,8 +44,6 @@ remnants.animation[3].filename = gfx .. "burner-long-handed-inserter-remnants.pn remnants.animation[4].filename = gfx .. "burner-long-handed-inserter-remnants.png" remnants.order = "a-c-0" -local crafting_category = settings.startup["lignumis-lumber-mill-more-recipes"].value and "wood-processing-or-assembling" or "crafting" - data:extend({ long_handed_inserter, remnants, @@ -65,7 +63,8 @@ data:extend({ { type = "recipe", name = "burner-long-handed-inserter", - category = crafting_category, + category = "crafting", + additional_categories = settings.startup["lignumis-lumber-mill-more-recipes"].value and { "wood-processing" } or nil, enabled = false, ingredients = { { type = "item", name = "wooden-gear-wheel", amount = 1 }, diff --git a/lignumis/prototypes/content/deep-miner.lua b/lignumis/prototypes/content/deep-miner.lua index 8f8db39..8585062 100644 --- a/lignumis/prototypes/content/deep-miner.lua +++ b/lignumis/prototypes/content/deep-miner.lua @@ -1,44 +1,196 @@ -local DeepMinerFactory = require(MF.buildings .. "CoreExtractor") -local DeepMiner = DeepMinerFactory("deep-miner") +local hit_effects = require("__base__.prototypes.entity.hit-effects") +local item_sounds = require("__base__.prototypes.item_sounds") +local sounds = require("__base__.prototypes.entity.sounds") +local Entity = require("__cf-lib__/data/Entity") -local entity = DeepMiner.EntityBuilder:new():build({ - resource_searching_radius = 0.49, - energy_usage = "25MW", - mining_speed = 7.5, - energy_source = { - emissions_per_minute = { noise = 2000 } +local name = "deep-miner" +local gfx = Lignumis.graphics .. "entity/" .. name .. "/" + +local function animationLayer() + return { + priority = "high", + width = 704, + height = 704, + frame_count = 120, + lines_per_file = 8, + animation_speed = 0.3, + scale = 0.5, + stripes = { + { + filename = gfx .. "deep-miner-animation-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "deep-miner-animation-2.png", + width_in_frames = 8, + height_in_frames = 7 + } + } + } +end + +data:extend({ + { + type = "mining-drill", + name = name, + icon = Lignumis.graphics .. "icons/deep-miner.png", + flags = { "placeable-neutral", "player-creation" }, + minable = { mining_time = 0.2, result = name }, + fast_replaceable_group = name, + max_health = 500, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = Entity.collisionBox(11, 11), + selection_box = Entity.selectionBox(11, 11), + damaged_trigger_effect = hit_effects.entity(), + drawing_box_vertical_extension = 1.3, + module_slots = 4, + icon_draw_specification = { scale = 2, shift = { 0, -0.3 } }, + icons_positioning = { + { inventory_index = defines.inventory.assembling_machine_modules, shift = { 0, 1.25 } } + }, + allowed_effects = { "consumption", "speed", "pollution", "quality", "productivity" }, + mining_speed = 7.5, + resource_categories = { "deep-mining" }, + drops_full_belt_stacks = true, + resource_searching_radius = 0.49, + vector_to_place_result = { 0, -5.85 }, + resource_drain_rate_percent = 75, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { noise = 2000 } + }, + energy_usage = "25MW", + perceived_performance = { minimum = 0.25, performance_to_activity_rate = 0.25, maximum = 2 }, + graphics_set = { + animation = { + layers = { + { + filename = gfx .. "deep-miner-shadow.png", + priority = "high", + width = 1400, + height = 1400, + frame_count = 1, + line_length = 1, + repeat_count = 120, + animation_speed = 0.3, + draw_as_shadow = true, + scale = 0.5 + }, + animationLayer() + } + }, + working_visualisations = { + { + fadeout = true, + animation = { + layers = { + animationLayer(), + { + priority = "high", + draw_as_glow = true, + blend_mode = "additive", + width = 704, + height = 704, + frame_count = 120, + lines_per_file = 8, + animation_speed = 0.3, + scale = 0.5, + stripes = { + { + filename = gfx .. "deep-miner-emission-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "deep-miner-emission-2.png", + width_in_frames = 8, + height_in_frames = 7 + } + } + } + } + } + } + } + }, + open_sound = sounds.drill_open, + close_sound = sounds.drill_close, + working_sound = { + main_sounds = { + { + sound = { filename = "__space-age__/sound/entity/big-mining-drill/big-mining-drill-loop.ogg", volume = 0.4, audible_distance_modifier = 1 }, + fade_in_ticks = 4, + fade_out_ticks = 30 + }, + { + sound = { filename = Lignumis.sound .. "entity/deep-miner/deep-miner-gears.ogg", volume = 0.3, audible_distance_modifier = 0.6 }, + fade_in_ticks = 15, + fade_out_ticks = 60 + } + }, + sound_accents = { + { sound = { + filename = Lignumis.sound .. "entity/deep-miner/deep-miner-drop.ogg", + volume = 2, + audible_distance_modifier = 10, + advanced_volume_control = { + attenuation = "logarithmic", + fades = { fade_in = { curve_type = "linear", from = { control = 0.25, volume_percentage = 70.0 }, to = { 1, 100.0 } } } + } + }, frame = 16 } + }, + max_sounds_per_prototype = 4 + } }, - resource_drain_rate_percent = 75 -}) -entity.resource_categories = { "deep-mining" } -data:extend({ entity }) - -DeepMiner.ItemBuilder:new() - :itemsPerRocket(1) - :apply({ + { + type = "item", + name = name, + icon = Lignumis.graphics .. "icons/deep-miner.png", subgroup = "extraction-machine", - order = "a[items]-d[deep-miner]" - }) - -DeepMiner.RecipeBuilder:new() - :ingredients({ - { type = "item", name = "processing-unit", amount = 100 }, - { type = "item", name = "electric-engine-unit", amount = 100 }, - { type = "item", name = "steel-plate", amount = 200 }, - { type = "item", name = "concrete", amount = 50 } - }) - :apply({ - category = "metallurgy-or-assembling" - }) - -DeepMiner.TechnologyBuilder:new() - :prerequisites({ "space-science-pack" }) - :count(500) - :ingredients({ - { "automation-science-pack", 1 }, - { "logistic-science-pack", 1 }, - { "chemical-science-pack", 1 }, - { "space-science-pack", 1 } - }) - :time(60) - :apply() + order = "a[items]-d[deep-miner]", + inventory_move_sound = item_sounds.mechanical_large_inventory_move, + pick_sound = item_sounds.mechanical_large_inventory_pickup, + drop_sound = item_sounds.mechanical_large_inventory_move, + place_result = name, + stack_size = 20, + default_import_location = "nauvis", + weight = 1000 * kg + }, + { + type = "recipe", + name = name, + category = "metallurgy-or-assembling", + enabled = false, + ingredients = { + { type = "item", name = "processing-unit", amount = 100 }, + { type = "item", name = "electric-engine-unit", amount = 100 }, + { type = "item", name = "steel-plate", amount = 200 }, + { type = "item", name = "concrete", amount = 50 } + }, + energy_required = 60, + results = { { type = "item", name = name, amount = 1 } } + }, + { + type = "technology", + name = name, + icon = Lignumis.graphics .. "technology/deep-miner.png", + icon_size = 256, + effects = { + { type = "unlock-recipe", recipe = name } + }, + prerequisites = { "space-science-pack" }, + unit = { + count = 500, + ingredients = { + { "automation-science-pack", 1 }, + { "logistic-science-pack", 1 }, + { "chemical-science-pack", 1 }, + { "space-science-pack", 1 } + }, + time = 60 + } + } +}) \ No newline at end of file diff --git a/lignumis/prototypes/content/item-subgroups.lua b/lignumis/prototypes/content/item-subgroups.lua index 48c03fe..3a14724 100644 --- a/lignumis/prototypes/content/item-subgroups.lua +++ b/lignumis/prototypes/content/item-subgroups.lua @@ -2,6 +2,7 @@ data:extend({ { type = "item-subgroup", name = "lignumis-bioprocessing", - group = "bioprocessing" + group = "bioprocessing", + order = "lignumis-bioprocessing" } }) \ No newline at end of file diff --git a/lignumis/prototypes/content/lignumis/planet.lua b/lignumis/prototypes/content/lignumis/planet.lua index c4fd03c..96a32a2 100644 --- a/lignumis/prototypes/content/lignumis/planet.lua +++ b/lignumis/prototypes/content/lignumis/planet.lua @@ -25,6 +25,7 @@ PlanetsLib:extend({ { type = "planet", name = "lignumis", + localised_description = { "space-location-description.lignumis", { "space-location-name." .. target_planet } }, orbit = { parent = { type = "planet", @@ -39,6 +40,7 @@ PlanetsLib:extend({ }, }, magnitude = 0.35, + is_satellite = true, subgroup = "satellites", icon = Lignumis.graphics .. "icons/lignumis.png", starmap_icon = Lignumis.graphics .. "icons/starmap-planet-lignumis.png", diff --git a/lignumis/prototypes/content/lumber-mill.lua b/lignumis/prototypes/content/lumber-mill.lua index 0bb904c..bc0c5db 100644 --- a/lignumis/prototypes/content/lumber-mill.lua +++ b/lignumis/prototypes/content/lumber-mill.lua @@ -1,82 +1,260 @@ -local Technology = require("__cf-lib__/data/Technology") -local LumberMillFactory = require(MF.buildings .. "LumberMill") -local LumberMill = LumberMillFactory() +local Recipe = require("__cf-lib__/data/Recipe") +local hit_effects = require("__base__.prototypes.entity.hit-effects") +local item_sounds = require("__base__.prototypes.item_sounds") +local Entity = require("__cf-lib__/data/Entity") -local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value +local name = "lumber-mill" +local gfx = Lignumis.graphics .. "entity/" .. name .. "/" data:extend({ { type = "recipe-category", - name = "wood-processing-or-assembling" + name = "wood-processing" } }) -table.insert(data.raw["character"]["character"].crafting_categories, "wood-processing-or-assembling") - +local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value local has_oxygen = data.raw["surface-property"]["oxygen"] ~= nil +local electric_lumber_mill = settings.startup["lignumis-electric-lumber-mill"].value -LumberMill.EntityBuilder:new() - :burnerEnergySource({ emissions_per_minute = { noise = 100 } }) - :baseProductivity(0.5) - :apply({ - crafting_categories = { "wood-processing-or-assembling" }, +if mods["wood-logistics"] then + return +end + +local energy_source = electric_lumber_mill and { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { noise = 100 } +} or { + type = "burner", + fuel_categories = { "chemical" }, + effectivity = 1, + fuel_inventory_size = 3, + emissions_per_minute = { pollution = 10, noise = 100 } +} + +data:extend({ + { + type = "assembling-machine", + name = name, + icon = Lignumis.graphics .. "icons/lumber-mill.png", + flags = { "placeable-neutral", "player-creation" }, + minable = { mining_time = 0.2, result = name }, + fast_replaceable_group = name, + max_health = 500, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = Entity.collisionBox(8, 8), + selection_box = Entity.selectionBox(8, 8), + damaged_trigger_effect = hit_effects.entity(), + drawing_box_vertical_extension = 1.3, + module_slots = 4, + icon_draw_specification = { scale = 2, shift = { 0, -0.3 } }, + icons_positioning = { + { inventory_index = defines.inventory.assembling_machine_modules, shift = { 0, 1.25 } } + }, + allowed_effects = { "consumption", "speed", "pollution", "quality" }, + crafting_categories = { "wood-processing" }, crafting_speed = 2, - energy_usage = "1000kW", + energy_source = energy_source, + energy_usage = "1MW", + effect_receiver = { base_effect = { productivity = 0.5 } }, surface_conditions = { { - property = has_oxygen and "oxygen" or "pressure", - min = 3 + property = has_oxygen and "oxygen" or "pressure", + min = 3 }, { - property = "gravity", - min = 1 + property = "gravity", + min = 1 } - } - }) - -local lumber_mill_item = LumberMill.ItemBuilder:new() - :apply({ + }, + perceived_performance = { minimum = 0.25, performance_to_activity_rate = 0.25, maximum = 4 }, + graphics_set = { + animation = { + layers = { + { + filename = gfx .. "lumber-mill-shadow.png", + priority = "high", + width = 800, + height = 700, + frame_count = 1, + line_length = 1, + repeat_count = 80, + animation_speed = 0.32, + shift = util.by_pixel(0, -8), + draw_as_shadow = true, + scale = 0.5 + }, + { + priority = "high", + width = 525, + height = 557, + frame_count = 80, + lines_per_file = 8, + animation_speed = 0.32, + shift = util.by_pixel(0, -8), + scale = 0.5, + stripes = { + { + filename = gfx .. "lumber-mill-animation-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "lumber-mill-animation-2.png", + width_in_frames = 8, + height_in_frames = 2 + } + } + }, + } + }, + working_visualisations = { + { + fadeout = true, + animation = { + layers = { + { + priority = "high", + width = 525, + height = 557, + frame_count = 80, + lines_per_file = 8, + animation_speed = 0.32, + shift = util.by_pixel(0, -8), + scale = 0.5, + stripes = { + { + filename = gfx .. "lumber-mill-animation-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "lumber-mill-animation-2.png", + width_in_frames = 8, + height_in_frames = 2 + } + } + }, + { + priority = "high", + draw_as_glow = true, + blend_mode = "additive", + width = 525, + height = 557, + frame_count = 80, + lines_per_file = 8, + animation_speed = 0.32, + shift = util.by_pixel(0, -8), + scale = 0.5, + stripes = { + { + filename = gfx .. "lumber-mill-emission-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "lumber-mill-emission-2.png", + width_in_frames = 8, + height_in_frames = 2 + } + } + } + } + } + } + } + }, + open_sound = { filename = "__base__/sound/open-close/train-stop-open.ogg", volume = 0.6 }, + close_sound = { filename = "__base__/sound/open-close/train-stop-close.ogg", volume = 0.5 }, + working_sound = { + fade_in_ticks = 4, + fade_out_ticks = 20, + audible_distance_modifier = 0.6, + max_sounds_per_type = 2, + sound = { filename = "__space-age__/sound/entity/foundry/foundry.ogg", volume = 0.6 }, + sound_accents = { + { sound = { filename = Lignumis.sound .. "entity/lumber-mill/lumber-mill-saw-1.ogg", volume = 0.8 }, frame = 26, audible_distance_modifier = 0.5 }, + { sound = { filename = Lignumis.sound .. "entity/lumber-mill/lumber-mill-fall.ogg", volume = 1.2 }, frame = 42, audible_distance_modifier = 0.5 }, + { sound = { filename = Lignumis.sound .. "entity/lumber-mill/lumber-mill-saw-2.ogg", volume = 0.8 }, frame = 53, audible_distance_modifier = 0.4 }, + { sound = { filename = Lignumis.sound .. "entity/lumber-mill/lumber-mill-split.ogg", volume = 0.4 }, frame = 62, audible_distance_modifier = 0.3 }, + { sound = { variations = sound_variations(Lignumis.sound .. "entity/lumber-mill/lumber-mill-plank", 3, 0.5) }, frame = 14, audible_distance_modifier = 0.3 }, + { sound = { variations = sound_variations(Lignumis.sound .. "entity/lumber-mill/lumber-mill-plank", 3, 0.5) }, frame = 34, audible_distance_modifier = 0.3 }, + { sound = { variations = sound_variations(Lignumis.sound .. "entity/lumber-mill/lumber-mill-plank", 3, 0.5) }, frame = 54, audible_distance_modifier = 0.3 }, + { sound = { variations = sound_variations(Lignumis.sound .. "entity/lumber-mill/lumber-mill-plank", 3, 0.5) }, frame = 74, audible_distance_modifier = 0.3 }, + } + } + }, + { + type = "item", + name = name, + icon = Lignumis.graphics .. "icons/lumber-mill.png", + subgroup = "production-machine", + order = "eb[lumber-mill]", + inventory_move_sound = item_sounds.mechanical_large_inventory_move, + pick_sound = item_sounds.mechanical_large_inventory_pickup, + drop_sound = item_sounds.mechanical_large_inventory_move, + place_result = name, + stack_size = 20, default_import_location = "lignumis", - order = "2[lumber-mill]" - }) + weight = 200 * kg + }, + { + type = "recipe", + name = name, + category = "crafting", + additional_categories = { "wood-processing" }, + enabled = false, + ingredients = table.trim({ + { type = "item", name = "stone-brick", amount = 40 }, + { type = "item", name = "lumber", amount = 50 }, + { type = "item", name = "wooden-gear-wheel", amount = 50 }, + { type = "item", name = "gold-plate", amount = basic_circuit_board and 20 or 40 }, + basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 20 } or nil, + { type = "item", name = "burner-assembling-machine", amount = 2 } + }), + energy_required = 60, + results = { { type = "item", name = name, amount = 1 } } + }, + { + type = "technology", + name = name, + icon = Lignumis.graphics .. "technology/lumber-mill.png", + icon_size = 256, + prerequisites = electric_lumber_mill and { "automation-science-pack" } or { "steam-science-pack" }, + unit = { + count = 250, + ingredients = electric_lumber_mill and {{ "automation-science-pack", 1 }} or {{ "wood-science-pack", 1 }, { "steam-science-pack", 1 }}, + time = 15 + } + } +}) -LumberMill.RecipeBuilder:new() - :ingredients(table.trim({ - { type = "item", name = "stone-brick", amount = 40 }, - { type = "item", name = "lumber", amount = 50 }, - { type = "item", name = "wooden-gear-wheel", amount = 50 }, - { type = "item", name = "gold-plate", amount = basic_circuit_board and 20 or 40 }, - basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 20 } or nil, - { type = "item", name = "burner-assembling-machine", amount = 2 } - })) - :apply({ - category = "wood-processing-or-assembling" - }) - -LumberMill.TechnologyBuilder:new() - :prerequisites({ "steam-science-pack" }) - :count(250) - :time(15) - :ingredients({ { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }) - :apply() - -LumberMill.RecipeBuilder:new() - :ingredients({ - { type = "item", name = "stone-brick", amount = 40 }, - { type = "item", name = "lumber", amount = 50 }, - { type = "item", name = "wooden-gear-wheel", amount = 50 }, - { type = "item", name = "copper-plate", amount = basic_circuit_board and 20 or 40 }, - { type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 20 }, - { type = "item", name = "assembling-machine-1", amount = 2 } - }) - :apply({ - name = "lumber-mill-copper", +Recipe:new("lumber-mill") + :unlockedByTechnology("lumber-mill") + :clone("lumber-mill-copper") + :assign({ + ingredients = { + { type = "item", name = "stone-brick", amount = 40 }, + { type = "item", name = "lumber", amount = 50 }, + { type = "item", name = "wooden-gear-wheel", amount = 50 }, + { type = "item", name = "copper-plate", amount = basic_circuit_board and 20 or 40 }, + { type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 20 }, + { type = "item", name = "assembling-machine-1", amount = 2 } + }, localised_name = { "entity-name.lumber-mill" }, - category = "wood-processing-or-assembling", icons = { - { icon = lumber_mill_item.icon }, + { icon = Lignumis.graphics .. "icons/lumber-mill.png" }, { icon = basic_circuit_board and "__base__/graphics/icons/copper-plate.png" or "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } } }) + :unlockedByTechnology( + electric_lumber_mill and "lumber-mill" + or basic_circuit_board and "copper-processing" + or "electronics" + ) + :apply() -Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("lumber-mill-copper") +Recipe:new("wooden-chest"):addCategory("wood-processing") +Recipe:new("small-electric-pole"):addCategory("wood-processing") \ No newline at end of file diff --git a/lignumis/prototypes/content/lumber.lua b/lignumis/prototypes/content/lumber.lua index 8cb9b14..bc6f985 100644 --- a/lignumis/prototypes/content/lumber.lua +++ b/lignumis/prototypes/content/lumber.lua @@ -1,12 +1,16 @@ local item_sounds = require("__base__.prototypes.item_sounds") +if mods["wood-logistics"] and settings.startup["wood-logistics-lumber"].value then + return +end + data:extend({ { type = "item", name = "lumber", icon = Lignumis.graphics .. "icons/lumber.png", pictures = { - { filename = Lignumis.graphics .. "icons/lumber.png", size = 64, scale = 0.5 }, + { filename = Lignumis.graphics .. "icons/lumber.png", size = 64, scale = 0.5 }, { filename = Lignumis.graphics .. "icons/lumber-1.png", size = 64, scale = 0.5 }, { filename = Lignumis.graphics .. "icons/lumber-2.png", size = 64, scale = 0.5 }, }, @@ -23,11 +27,12 @@ data:extend({ { type = "recipe", name = "lumber", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, allow_productivity = true, allow_as_intermediate = true, ingredients = { { type = "item", name = "wood", amount = 2 } }, results = { { type = "item", name = "lumber", amount = 1 } }, energy_required = 1 } -}) +}) \ No newline at end of file diff --git a/lignumis/prototypes/content/noise.lua b/lignumis/prototypes/content/noise.lua index 4474df5..0505138 100644 --- a/lignumis/prototypes/content/noise.lua +++ b/lignumis/prototypes/content/noise.lua @@ -100,17 +100,17 @@ emit("lab", "biolab", 20) emit("locomotive", "locomotive", 200) emit_constant("locomotive", "locomotive", 10) ---emit_constant("transport-belt", "wood-transport-belt", 2) +emit_constant("transport-belt", "wood-transport-belt", 2) emit_constant("transport-belt", "transport-belt", 3) emit_constant("transport-belt", "fast-transport-belt", 4) emit_constant("transport-belt", "express-transport-belt", 6) emit_constant("transport-belt", "turbo-transport-belt", 8) ---emit_constant("underground-belt", "wood-underground-belt", 7.5) +emit_constant("underground-belt", "wood-underground-belt", 7.5) emit_constant("underground-belt", "underground-belt", 10) emit_constant("underground-belt", "fast-underground-belt", 20) emit_constant("underground-belt", "express-underground-belt", 30) emit_constant("underground-belt", "turbo-underground-belt", 40) ---emit_constant("splitter", "wood-splitter", 20) +emit_constant("splitter", "wood-splitter", 20) emit_constant("splitter", "splitter", 30) emit_constant("splitter", "fast-splitter", 40) emit_constant("splitter", "express-splitter", 50) diff --git a/lignumis/prototypes/content/quality-assembler.lua b/lignumis/prototypes/content/quality-assembler.lua index 0b94e6b..6126c58 100644 --- a/lignumis/prototypes/content/quality-assembler.lua +++ b/lignumis/prototypes/content/quality-assembler.lua @@ -1,9 +1,54 @@ +local hit_effects = require("__base__.prototypes.entity.hit-effects") local item_sounds = require("__base__.prototypes.item_sounds") +local sounds = require("__base__.prototypes.entity.sounds") +local Entity = require("__cf-lib__/data/Entity") +local Technology = require("__cf-lib__/data/Technology") -local QualityAssemblerFactory = require(MF.buildings .. "GravityAssembler") -local QualityAssembler = QualityAssemblerFactory("quality-assembler") +local function assemblerpipepicturesfrozen() + return { + north = { + filename = "__space-age__/graphics/entity/frozen/assembling-machine/assembling-machine-pipe-N-frozen.png", + priority = "extra-high", + width = 71, + height = 38, + shift = util.by_pixel(2.25, 13.5), + scale = 0.5 + }, + east = { + filename = "__space-age__/graphics/entity/frozen/assembling-machine/assembling-machine-pipe-E-frozen.png", + priority = "extra-high", + width = 42, + height = 76, + shift = util.by_pixel(-24.5, 1), + scale = 0.5 + }, + south = { + filename = "__space-age__/graphics/entity/frozen/assembling-machine/assembling-machine-pipe-S-frozen.png", + priority = "extra-high", + width = 88, + height = 61, + shift = util.by_pixel(0, -31.25), + scale = 0.5 + }, + west = { + filename = "__space-age__/graphics/entity/frozen/assembling-machine/assembling-machine-pipe-W-frozen.png", + priority = "extra-high", + width = 39, + height = 73, + shift = util.by_pixel(25.75, 1.25), + scale = 0.5 + } + } +end + +local name = "quality-assembler" +local gfx = Lignumis.graphics .. "entity/" .. name .. "/" data:extend({ + { + type = "recipe-category", + name = "quality-assembling" + }, { type = "burner-usage", name = "quality-catalyst", @@ -60,62 +105,231 @@ data:extend({ allow_productivity = true, allow_quality = false, enabled = false - } -}) - -QualityAssembler.EntityBuilder:new() - :allowProductivity(false) - :burnerEnergySource({ - burner_usage = "quality-catalyst", - fuel_categories = { "quality-catalyst" }, - fuel_inventory_size = 1, - emissions_per_minute = { noise = 100, pollution = 6 } - }) - :pipes() - :apply({ - energy_usage = "1MW", - crafting_speed = 4, + }, + { + type = "assembling-machine", + name = name, + icon = Lignumis.graphics .. "icons/quality-assembler.png", + flags = { "placeable-neutral", "player-creation" }, + minable = { mining_time = 0.2, result = name }, + fast_replaceable_group = name, + max_health = 500, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = Entity.collisionBox(4, 4), + selection_box = Entity.selectionBox(4, 4), + damaged_trigger_effect = hit_effects.entity(), + drawing_box_vertical_extension = 1.3, module_slots = 6, + effect_receiver = { base_effect = { quality = 3.5 } }, + icon_draw_specification = { scale = 1.25, shift = { 0, -0.25 } }, + icons_positioning = { + { inventory_index = defines.inventory.assembling_machine_modules, shift = { 0, 1 }, max_icons_per_row = 4 } + }, allowed_effects = { "consumption", "pollution", "quality" }, - effect_receiver = { base_effect = { quality = 3.5 } } - }) - -QualityAssembler.ItemBuilder:new():apply() - -QualityAssembler.RecipeBuilder:new() - :ingredients({ - { type = "item", name = "gold-plate", amount = 60 }, - { type = "item", name = "tungsten-plate", amount = 40 }, - { type = "item", name = "superconductor", amount = 50 }, - { type = "item", name = "carbon-fiber", amount = 100 }, - { type = "item", name = "quantum-processor", amount = 10 } - }) - :apply({ - category = "electromagnetics-or-quality-assembling", - }) - -QualityAssembler.TechnologyBuilder:new() - :prerequisites({ "legendary-quality", "quantum-processor" }) - :count(5000) - :ingredients({ - { "wood-science-pack", 1 }, - { "steam-science-pack", 1 }, - { "automation-science-pack", 1 }, - { "logistic-science-pack", 1 }, - { "chemical-science-pack", 1 }, - { "space-science-pack", 1 }, - { "production-science-pack", 1 }, - { "utility-science-pack", 1 }, - { "metallurgic-science-pack", 1 }, - { "agricultural-science-pack", 1 }, - { "electromagnetic-science-pack", 1 }, - { "cryogenic-science-pack", 1 } - }) - :time(60) - :additionalRecipes({ "gold-quality-catalyst" }) - :apply() - -data:extend({ + crafting_categories = { "quality-assembling" }, + crafting_speed = 4, + energy_source = { + type = "burner", + burner_usage = "quality-catalyst", + fuel_categories = { "quality-catalyst" }, + effectivity = 1, + fuel_inventory_size = 1, + emissions_per_minute = { noise = 100, pollution = 6 }, + }, + energy_usage = "1MW", + perceived_performance = { minimum = 0.25, performance_to_activity_rate = 2.0, maximum = 20 }, + graphics_set = { + animation = { + layers = { + { + filename = gfx .. "quality-assembler-shadow.png", + priority = "high", + width = 500, + height = 350, + frame_count = 1, + line_length = 1, + repeat_count = 64, + animation_speed = 0.32, + draw_as_shadow = true, + scale = 0.5 + }, + { + priority = "high", + width = 270, + height = 310, + frame_count = 64, + lines_per_file = 8, + animation_speed = 0.32, + scale = 0.5, + stripes = { + { + filename = gfx .. "quality-assembler-animation-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "quality-assembler-animation-2.png", + width_in_frames = 8, + height_in_frames = 5 + } + } + }, + } + }, + working_visualisations = { + { + fadeout = true, + animation = { + layers = { + { + priority = "high", + width = 270, + height = 310, + frame_count = 64, + lines_per_file = 8, + animation_speed = 0.32, + scale = 0.5, + stripes = { + { + filename = gfx .. "quality-assembler-animation-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "quality-assembler-animation-2.png", + width_in_frames = 8, + height_in_frames = 5 + } + } + }, + { + priority = "high", + draw_as_glow = true, + blend_mode = "additive", + width = 270, + height = 310, + frame_count = 64, + lines_per_file = 8, + animation_speed = 0.32, + scale = 0.5, + stripes = { + { + filename = gfx .. "quality-assembler-emission-1.png", + width_in_frames = 8, + height_in_frames = 8 + }, + { + filename = gfx .. "quality-assembler-emission-2.png", + width_in_frames = 8, + height_in_frames = 5 + } + } + } + } + } + } + } + }, + open_sound = sounds.machine_open, + close_sound = sounds.machine_close, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler2pipepictures(), + pipe_picture_frozen = assemblerpipepicturesfrozen(), + pipe_covers = pipecoverspictures(), + volume = 200, + secondary_draw_orders = { north = -1 }, + pipe_connections = {{ flow_direction="input-output", direction = defines.direction.west, position = {-1.5, 0.5} }} + }, + { + production_type = "input", + pipe_picture = assembler2pipepictures(), + pipe_picture_frozen = assemblerpipepicturesfrozen(), + pipe_covers = pipecoverspictures(), + volume = 200, + secondary_draw_orders = { north = -1 }, + pipe_connections = {{ flow_direction="input-output", direction = defines.direction.east, position = {1.5, -0.5} }} + }, + { + production_type = "output", + pipe_picture = assembler2pipepictures(), + pipe_picture_frozen = assemblerpipepicturesfrozen(), + pipe_covers = pipecoverspictures(), + volume = 100, + secondary_draw_orders = { north = -1 }, + pipe_connections = {{ flow_direction="input-output", direction = defines.direction.south, position = {0.5, 1.5} }} + }, + { + production_type = "output", + pipe_picture = assembler2pipepictures(), + pipe_picture_frozen = assemblerpipepicturesfrozen(), + pipe_covers = pipecoverspictures(), + volume = 100, + secondary_draw_orders = { north = -1 }, + pipe_connections = {{ flow_direction="input-output", direction = defines.direction.north, position = {-0.5, -1.5} }} + } + }, + fluid_boxes_off_when_no_fluid_recipe = true, + forced_symmetry = "horizontal", + }, + { + type = "item", + name = name, + icon = Lignumis.graphics .. "icons/quality-assembler.png", + subgroup = "production-machine", + order = "a[" .. name .. "]", + inventory_move_sound = item_sounds.mechanical_large_inventory_move, + pick_sound = item_sounds.mechanical_large_inventory_pickup, + drop_sound = item_sounds.mechanical_large_inventory_move, + place_result = name, + stack_size = 20, + default_import_location = "nauvis", + weight = 200 * kg + }, + { + type = "recipe", + name = name, + category = "electromagnetics", + additional_categories = { "quality-assembling" }, + enabled = false, + ingredients = { + { type = "item", name = "gold-plate", amount = 60 }, + { type = "item", name = "tungsten-plate", amount = 40 }, + { type = "item", name = "superconductor", amount = 50 }, + { type = "item", name = "carbon-fiber", amount = 100 }, + { type = "item", name = "quantum-processor", amount = 10 } + }, + energy_required = 60, + results = { { type = "item", name = name, amount = 1 } }, + }, + { + type = "technology", + name = name, + icon = Lignumis.graphics .. "technology/quality-assembler.png", + icon_size = 256, + effects = {}, + prerequisites = { "legendary-quality", "quantum-processor" }, + unit = { + count = 5000, + ingredients = { + { "wood-science-pack", 1 }, + { "steam-science-pack", 1 }, + { "automation-science-pack", 1 }, + { "logistic-science-pack", 1 }, + { "chemical-science-pack", 1 }, + { "space-science-pack", 1 }, + { "production-science-pack", 1 }, + { "utility-science-pack", 1 }, + { "metallurgic-science-pack", 1 }, + { "agricultural-science-pack", 1 }, + { "electromagnetic-science-pack", 1 }, + { "cryogenic-science-pack", 1 } + }, + time = 60 + } + }, { type = "technology", name = "experienced-quality-assembling-1", @@ -150,68 +364,46 @@ data:extend({ } }) -local function convert_category(name) - local quality_name = name .. "-or-quality-assembling" - data:extend({ - { - type = "recipe-category", - name = quality_name - } - }) +Technology:new(name) + :addRecipe(name) + :addRecipe("gold-quality-catalyst") - for _, assembler in pairs(data.raw["assembling-machine"]) do - if assembler.crafting_categories and table.contains(assembler.crafting_categories, name) then - table.insert(assembler.crafting_categories, quality_name) - end - end - for _, character in pairs(data.raw["character"]) do - if character.crafting_categories and table.contains(character.crafting_categories, name) then - table.insert(character.crafting_categories, quality_name) - end - end - table.insert(data.raw["assembling-machine"]["quality-assembler"].crafting_categories, quality_name) +local function qa(recipeName) + local recipe = data.raw.recipe[recipeName] + recipe.additional_categories = recipe.additional_categories or {} + table.insert(recipe.additional_categories, "quality-assembling") end -convert_category("wood-processing-or-assembling") -convert_category("metallurgy-or-assembling") -convert_category("metallurgy") -convert_category("electronics") -convert_category("electronics-or-assembling") -convert_category("electromagnetics") -convert_category("organic-or-assembling") -convert_category("crafting") -convert_category("cryogenics-or-assembling") - -- Lignumis -data.raw.recipe["lumber-mill"].category = "wood-processing-or-assembling-or-quality-assembling" +qa("lumber-mill") -- Nauvis -data.raw.recipe["logistic-robot"].category = "crafting-or-quality-assembling" -data.raw.recipe["construction-robot"].category = "crafting-or-quality-assembling" -data.raw.recipe["roboport"].category = "crafting-or-quality-assembling" -data.raw.recipe["speed-module-3"].category = "electronics-or-quality-assembling" -data.raw.recipe["productivity-module-3"].category = "electronics-or-quality-assembling" -data.raw.recipe["efficiency-module-3"].category = "electronics-or-quality-assembling" -data.raw.recipe["rocket-silo"].category = "crafting-or-quality-assembling" -data.raw.recipe["cargo-bay"].category = "crafting-or-quality-assembling" -data.raw.recipe["asteroid-collector"].category = "crafting-or-quality-assembling" -data.raw.recipe["thruster"].category = "crafting-or-quality-assembling" +qa("logistic-robot") +qa("construction-robot") +qa("roboport") +qa("speed-module-3") +qa("productivity-module-3") +qa("efficiency-module-3") +qa("rocket-silo") +qa("cargo-bay") +qa("asteroid-collector") +qa("thruster") -- Vulcanus -data.raw.recipe["foundry"].category = "metallurgy-or-assembling-or-quality-assembling" -data.raw.recipe["big-mining-drill"].category = "metallurgy-or-quality-assembling" +qa("foundry") +qa("big-mining-drill") -- Fulgora -data.raw.recipe["electromagnetic-plant"].category = "electronics-or-assembling-or-quality-assembling" -data.raw.recipe["lightning-collector"].category = "electromagnetics-or-quality-assembling" -data.raw.recipe["mech-armor"].category = "crafting-or-quality-assembling" -data.raw.recipe["quality-module-3"].category = "electronics-or-quality-assembling" -data.raw.recipe["recycler"].category = "crafting-or-quality-assembling" +qa("electromagnetic-plant") +qa("lightning-collector") +qa("mech-armor") +qa("quality-module-3") +qa("recycler") -- Gleba -data.raw.recipe["biochamber"].category = "organic-or-assembling-or-quality-assembling" -data.raw.recipe["stack-inserter"].category = "crafting-or-quality-assembling" -data.raw.recipe["spidertron"].category = "crafting-or-quality-assembling" +qa("biochamber") +qa("stack-inserter") +qa("spidertron") -- Aquilo -data.raw.recipe["cryogenic-plant"].category = "cryogenics-or-assembling-or-quality-assembling" \ No newline at end of file +qa("cryogenic-plant") \ No newline at end of file diff --git a/lignumis/prototypes/content/steam-assembling-machine.lua b/lignumis/prototypes/content/steam-assembling-machine.lua index da5ef2d..687ed02 100644 --- a/lignumis/prototypes/content/steam-assembling-machine.lua +++ b/lignumis/prototypes/content/steam-assembling-machine.lua @@ -20,7 +20,6 @@ assembling_machine.crafting_categories = { "crafting", "electronics", "pressing", - "wood-processing-or-assembling", "organic-or-assembling", "electronics-or-assembling", "metallurgy-or-assembling", diff --git a/lignumis/prototypes/content/wood-lab.lua b/lignumis/prototypes/content/wood-lab.lua index 7db5aec..2010910 100644 --- a/lignumis/prototypes/content/wood-lab.lua +++ b/lignumis/prototypes/content/wood-lab.lua @@ -144,7 +144,8 @@ data:extend({ { type = "recipe", name = "wood-lab", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, energy_required = 2, ingredients = { { type = "item", name = "lumber", amount = 6 }, diff --git a/lignumis/prototypes/content/wood-logistics.lua b/lignumis/prototypes/content/wood-logistics.lua index 78cb353..31f3809 100644 --- a/lignumis/prototypes/content/wood-logistics.lua +++ b/lignumis/prototypes/content/wood-logistics.lua @@ -3,6 +3,10 @@ local Belt = BeltFactory("wood", "brown", "slow") local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value +if mods["wood-logistics"] and settings.startup["wood-logistics-belts"].value then + return +end + Belt.EntityBuilder:new() :itemsPerSecond(7.5) :nextTier("") @@ -58,13 +62,13 @@ Belt.RecipeBuilder:new() }) :apply({ transportBelt = { - category = "wood-processing-or-assembling" + additional_categories = { "wood-processing" } }, undergroundBelt = { - category = "wood-processing-or-assembling" + additional_categories = { "wood-processing" } }, splitter = { - category = "wood-processing-or-assembling" + additional_categories = { "wood-processing" } } }) @@ -91,7 +95,7 @@ if not basic_circuit_board then { icon = splitter_item.icon }, { icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } } }, - category = "wood-processing-or-assembling" + additional_categories = { "wood-processing" } } }) .splitter @@ -101,4 +105,4 @@ if not basic_circuit_board then type = "unlock-recipe", recipe = "wood-splitter-electronic-circuit" }) -end +end \ No newline at end of file diff --git a/lignumis/prototypes/content/wood-military.lua b/lignumis/prototypes/content/wood-military.lua index 1dd775f..6c3e312 100644 --- a/lignumis/prototypes/content/wood-military.lua +++ b/lignumis/prototypes/content/wood-military.lua @@ -82,7 +82,8 @@ data:extend({ { type = "recipe", name = "wood-darts-magazine", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, energy_required = 1, ingredients = { { type = "item", name = "wood", amount = 2 } }, results = { { type = "item", name = "wood-darts-magazine", amount = 1 } } diff --git a/lignumis/prototypes/content/wooden-gearwheel.lua b/lignumis/prototypes/content/wooden-gearwheel.lua index 229b175..0d57a98 100644 --- a/lignumis/prototypes/content/wooden-gearwheel.lua +++ b/lignumis/prototypes/content/wooden-gearwheel.lua @@ -17,7 +17,8 @@ data:extend({ { type = "recipe", name = "wooden-gear-wheel", - category = "wood-processing-or-assembling", + category = "crafting", + additional_categories = { "wood-processing" }, ingredients = { { type = "item", name = "lumber", amount = 1 } }, results = { { type = "item", name = "wooden-gear-wheel", amount = 2 } }, allow_productivity = true diff --git a/lignumis/prototypes/integrations/Wood-Walls.lua b/lignumis/prototypes/integrations/Wood-Walls.lua index d1f11d5..884dfdd 100644 --- a/lignumis/prototypes/integrations/Wood-Walls.lua +++ b/lignumis/prototypes/integrations/Wood-Walls.lua @@ -1,4 +1,4 @@ local recipe = data.raw.recipe["wooden-wall"] recipe.ingredients = { { type = "item", name = "lumber", amount = 4 } } recipe.results = { { type = "item", name = "wooden-wall", amount = 1 } } -recipe.category = "wood-processing-or-assembling" \ No newline at end of file +recipe.additional_categories = { "wood-processing" } \ No newline at end of file diff --git a/lignumis/prototypes/integrations/vanilla.lua b/lignumis/prototypes/integrations/vanilla.lua index 63ff70f..65f2028 100644 --- a/lignumis/prototypes/integrations/vanilla.lua +++ b/lignumis/prototypes/integrations/vanilla.lua @@ -21,7 +21,8 @@ local drill_item = data.raw["item"]["burner-mining-drill"] drill_item.icon = Lignumis.graphics .. "icons/burner-mining-drill.png" local drill_recipe = data.raw["recipe"]["burner-mining-drill"] -drill_recipe.category = "wood-processing-or-assembling" +drill_recipe.category = "crafting" +drill_recipe.additional_categories = { "wood-processing" } drill_recipe.ingredients = { { type = "item", name = "stone-furnace", amount = 1 }, { type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 2 or 3 }, @@ -48,7 +49,7 @@ burner_inserter_recipe.ingredients = { { type = "item", name = "lumber", amount = 1 } } if settings.startup["lignumis-lumber-mill-more-recipes"].value then - burner_inserter_recipe.category = "wood-processing-or-assembling" + burner_inserter_recipe.additional_categories = { "wood-processing" } end @@ -69,7 +70,9 @@ if settings.startup["lignumis-vanilla-lab"].value then Recipe:new("transport-belt"):unlockedByTechnology("iron-processing") else Recipe:new("lab"):replaceIngredient("transport-belt", "wood-transport-belt") - Recipe:new("transport-belt"):unlockedByTechnology("logistics") + if not mods["wood-logistics"] or not settings.startup["wood-logistics-belts"].value then + Recipe:new("transport-belt"):unlockedByTechnology("logistics") + end end @@ -110,7 +113,7 @@ for _, tree in pairs(data.raw.tree) do if not isRegularTree then goto continue end tree.minable.result = nil tree.minable.count = nil - local woodResult = { type = "item", name = "wood", amount = nil, amount_min = 2, amount_max = 10 } + local woodResult = { type = "item", name = "wood", amount = nil, amount_min = 2, amount_max = 8 } if minable.results and #woodResults > 0 then table.assign(woodResults[1], woodResult) woodResults[1].amount = nil @@ -127,14 +130,7 @@ tree_plant.minable.count = nil tree_plant.surface_conditions[1].min = 900 table.insert(tree_plant.autoplace.tile_restriction, "natural-gold-soil") -if mods["Diversitree"] then - data.raw.plant["s6xdvt-fake-tree"].surface_conditions[1].min = 900 -end - -table.insert(data.raw["assembling-machine"]["assembling-machine-1"].crafting_categories, "wood-processing-or-assembling") table.insert(data.raw["assembling-machine"]["assembling-machine-1"].crafting_categories, "organic-or-assembling") -table.insert(data.raw["assembling-machine"]["assembling-machine-2"].crafting_categories, "wood-processing-or-assembling") -table.insert(data.raw["assembling-machine"]["assembling-machine-3"].crafting_categories, "wood-processing-or-assembling") -- Disable vanilla early game recipes @@ -224,6 +220,7 @@ robots_speed_technology_3.unit = { ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 }, { "chemical-science-pack", 1 } }, time = 30 } +robots_speed_technology_3.upgrade = false local robots_speed_technology_4 = data.raw.technology["worker-robots-speed-4"] robots_speed_technology_4.prerequisites = { "worker-robots-speed-3", "utility-science-pack" } @@ -334,35 +331,4 @@ if settings.startup["lignumis-fulgora-wood"].value then if recycler.result_inventory_size < recycling_result_count then recycler.result_inventory_size = recycling_result_count end -end - - --- Fix item weights - -local function set_default_weight(item, items_per_rocket, type) - data.raw[type or "item"][item].weight = data.raw[type or "item"][item].weight or 1000 * kg / items_per_rocket -end -set_default_weight("electronic-circuit", 2000) -set_default_weight("advanced-circuit", 1000) -set_default_weight("processing-unit", 300) -set_default_weight("low-density-structure", 200) -set_default_weight("rocket-fuel", 100) -set_default_weight("inserter", 50) -set_default_weight("fast-inserter", 50) -set_default_weight("electric-mining-drill", 50) -set_default_weight("pumpjack", 20) -set_default_weight("repair-pack", 100, "repair-tool") -set_default_weight("big-electric-pole", 50) -set_default_weight("assembling-machine-1", 50) -set_default_weight("assembling-machine-2", 50) -set_default_weight("oil-refinery", 10) -set_default_weight("accumulator", 50) -set_default_weight("steam-engine", 10) -set_default_weight("substation", 50) -set_default_weight("radar", 50) -set_default_weight("storage-tank", 50) -set_default_weight("fast-transport-belt", 100) -set_default_weight("fast-underground-belt", 50) -set_default_weight("fast-splitter", 50) -set_default_weight("steel-plate", 400) -set_default_weight("steam-turbine", 10) \ No newline at end of file +end \ No newline at end of file diff --git a/lignumis/settings.lua b/lignumis/settings.lua index 9cc4a5e..f043c65 100644 --- a/lignumis/settings.lua +++ b/lignumis/settings.lua @@ -99,11 +99,18 @@ data:extend({ }, { type = "bool-setting", - name = "lignumis-sciences-spoil", + name = "lignumis-electric-lumber-mill", setting_type = "startup", default_value = false, order = "o" }, + { + type = "bool-setting", + name = "lignumis-sciences-spoil", + setting_type = "startup", + default_value = false, + order = "p" + }, { type = "string-setting", name = "lignumis-second-planet", diff --git a/lignumis/settings/updates.lua b/lignumis/settings/updates.lua index aedfdff..37ac7b9 100644 --- a/lignumis/settings/updates.lua +++ b/lignumis/settings/updates.lua @@ -1 +1,2 @@ +require("wood-logistics") require("wood-military") \ No newline at end of file diff --git a/lignumis/settings/wood-logistics.lua b/lignumis/settings/wood-logistics.lua new file mode 100644 index 0000000..2595d62 --- /dev/null +++ b/lignumis/settings/wood-logistics.lua @@ -0,0 +1,8 @@ +if not mods["wood-logistics"] then + return +end + +local Settings = require("__cf-lib__/settings/Settings") +local force = Settings.force + +force("wood-logistics-woodtronics", false) \ No newline at end of file diff --git a/lignumis/settings/wood-military.lua b/lignumis/settings/wood-military.lua index 75ee975..01765eb 100644 --- a/lignumis/settings/wood-military.lua +++ b/lignumis/settings/wood-military.lua @@ -2,10 +2,12 @@ if not mods["wood-military"] then return end -data.raw["bool-setting"]["wood-military-rockets"].default_value = false -data.raw["bool-setting"]["wood-military-artillery"].default_value = false -data.raw["bool-setting"]["wood-military-damage-buff"].default_value = false -data.raw["bool-setting"]["wood-military-armor"].hidden = true -data.raw["bool-setting"]["wood-military-armor"].forced_value = true -data.raw["bool-setting"]["wood-military-nerf-start"].hidden = true -data.raw["bool-setting"]["wood-military-nerf-start"].forced_value = true \ No newline at end of file +local Settings = require("__cf-lib__/settings/Settings") +local force = Settings.force +local default = Settings.default + +default("wood-military-rockets", false) +default("wood-military-artillery", false) +default("wood-military-damage-buff", false) +force("wood-military-armor", true) +force("wood-military-nerf-start", true) \ No newline at end of file