Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
![]() |
53699b9a9c |
55 changed files with 514 additions and 1263 deletions
44
README.md
44
README.md
|
@ -2,15 +2,15 @@ This mod extends the early game of Space Age by putting you on the moon "Lignumi
|
|||
|
||||
The duration of the stay on Lignumis will be rather short. The impact of the later game will still be substantial (once implemented).
|
||||
|
||||
**Warning when adding to existing games:** With the default settings, this mod will break a few things in your existing bases and space ships. Check out the settings to disable what you don't like.
|
||||
**If you start a new game, check out the setting for adding Basic circuit boards.**
|
||||
|
||||
## Mod recommendations
|
||||
|
||||
The following mods can be a great addition for this mod:
|
||||
|
||||
#### [Any Planet Start](https://mods.factorio.com/mod/any-planet-start)
|
||||
#### [Burner Leech Fork](https://mods.factorio.com/mod/Burner-Leech-Fork)
|
||||
|
||||
Allows you to choose the planet that Lignumis orbits. You can continue on Vulcanus, Fulgora or Gleba after leaving Lignumis.
|
||||
There will be fewer inserters that need to be fueled manually.
|
||||
|
||||
#### [Diversitree](https://mods.factorio.com/mod/Diversitree)
|
||||
|
||||
|
@ -28,14 +28,9 @@ If you want more of it than Lignumis offers, add this mod. It adds ammo for shot
|
|||
|
||||
If you like go more into the charcoal direction. It has no overlap with Lignumis and starts to get relevant on Nauvis.
|
||||
|
||||
#### [Wooden Aquilo: Seabloom Algaculture](https://mods.factorio.com/mod/aquilo-seabloom-algaculture)
|
||||
#### [Wooden Fulgora: Coralmium Agriculture](https://mods.factorio.com/mod/fulgora-coralmium-agriculture), [Wooden Vulcanus: Sulfuric Bacteria](https://mods.factorio.com/mod/vulcanus-sulfuric-bacteria) and [Wooden Aquilo: Seabloom Algaculture](https://mods.factorio.com/mod/aquilo-seabloom-algaculture)
|
||||
|
||||
For wood on Aquilo.
|
||||
|
||||
#### [Crushing Industry](https://mods.factorio.com/mod/crushing-industry)
|
||||
|
||||
Recommended with high science cost settings. It adds crushers and crushed ores to increase productivity.
|
||||
Lignumis adds crushed gold ore and a technology to unlock the crusher with wood and steam science packs.
|
||||
For wood on the other planets.
|
||||
|
||||
#### [AAI Loaders](https://mods.factorio.com/mod/aai-loaders)
|
||||
|
||||
|
@ -67,7 +62,7 @@ The following planet mods are tested for (at least technical) compatibility:
|
|||
|
||||
## Problematic / incompatible mods
|
||||
|
||||
* The combination of AAI Industry and Any planet start is currently not supported.
|
||||
* Mods that let you start on a different planet: They are supported, but you are missing half of the content of this mod.
|
||||
* Alien Biomes: Lignumis won't have any trees. It's playable, but not as intended.
|
||||
* The rest of the Wooden Universe: I marked the ones incompatible that don't make sense to combine or that wouldn't add more that is not already included.
|
||||
|
||||
|
@ -109,29 +104,20 @@ Don't touch inputs for labs in this list.
|
|||
Lignumis adds wood and steam science packs to all labs' inputs in `data-updates.lua` so modded labs will support them.
|
||||
If your modded lab is special and it should not support these science packs, use this list or set the inputs in `data-final-fixes.lua`.
|
||||
|
||||
#### Chaning the second planet (a.k.a. transition to Nauvis)
|
||||
|
||||
If you want to create a mod that moves Lignumis to another planet, there is a hidden setting for the scripted transition to teleport the player not to Nauvis but to any planet you like.
|
||||
This doesn't change any technologies or the location of Lignumis on the map. Make sure you adjust the prototypes as well on your end.
|
||||
|
||||
In `settings-updates.lua` add the following to switch to Gleba as the second planet:
|
||||
|
||||
```lua
|
||||
data.raw["string-setting"]["lignumis-second-planet"].allowed_values = { "gleba" }
|
||||
data.raw["string-setting"]["lignumis-second-planet"].default_value = "gleba"
|
||||
```
|
||||
|
||||
## Todo
|
||||
|
||||
- Fix pipe graphics on desiccation furnace and quality assembler
|
||||
- Trees must not die when absorbing noise
|
||||
- https://lua-api.factorio.com/latest/types/TreeVariation.html
|
||||
- Improve transition to Nauvis a bit more
|
||||
- Add late-game recipe for oil from wood pulp
|
||||
- Find a better message when transitioning to Nauvis
|
||||
- Add information in Factoriopedia
|
||||
- Compatibility with [On Wayward Seas](https://mods.factorio.com/mod/wayward-seas)
|
||||
- Compatibility with [Exotic Space Industries](https://mods.factorio.com/mod/exotic-space-industries)
|
||||
- Compatibility with [Noble Metals](https://mods.factorio.com/mod/bzgold) once it's updated
|
||||
- "Hardcore Lignumis"
|
||||
- Check if creating a separate group for Lignumis recipes/items makes sense
|
||||
- Only create 1 cutscene per game in multiplayer
|
||||
- Think about moving Lumber mill to later and let it use electricity.
|
||||
|
||||
## Credits
|
||||
|
||||
|
@ -139,9 +125,8 @@ data.raw["string-setting"]["lignumis-second-planet"].default_value = "gleba"
|
|||
|
||||
- Simplified chinese (zh-CN): cyx2015s
|
||||
- Polish (pl): StarGazer
|
||||
- Russian (ru): Fr_Dae
|
||||
|
||||
### Assets / Code
|
||||
### Assets
|
||||
|
||||
[Hurricane](https://mods.factorio.com/user/Hurricane046)
|
||||
|
||||
|
@ -202,8 +187,3 @@ data.raw["string-setting"]["lignumis-second-planet"].default_value = "gleba"
|
|||
[Pixabay](https://pixabay.com)
|
||||
|
||||
- [AudioPapkin: Forest ambience](https://pixabay.com/sound-effects/forest-ambience-296528/)
|
||||
|
||||
[SafTheLamb](https://mods.factorio.com/user/SafTheLamb)
|
||||
|
||||
- [Early Agriculture](https://mods.factorio.com/mod/early-agriculture): Fix for trees not being plantable on Nauvis with Alien Biomes active.
|
||||
- [Wooden Logistics](https://mods.factorio.com/mod/wood-logistics): Code for AAI Loader.
|
|
@ -1,165 +1,4 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.44
|
||||
Date: 20.04.2025
|
||||
Bug Fixes:
|
||||
- Add Secretas optional dependency to fix loading order
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.43
|
||||
Date: 20.04.2025
|
||||
Changes:
|
||||
- Any planet start: Move code to updates stage
|
||||
Bug Fixes:
|
||||
- Correct description of the Quality Assembler
|
||||
- Any planet start (Vulcanus): Add some fixes to not get stuck
|
||||
- Crushing Industry: Move compatibility code to updates phase to prevent crash
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.42
|
||||
Date: 14.04.2025
|
||||
Bug Fixes:
|
||||
- Helmod: Fix bug with steam assembler (now really)
|
||||
- Crushing Industry: Fix wrong ingredient amount for gold from crushed gold (BREAKING)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.41
|
||||
Date: 13.04.2025
|
||||
Changes:
|
||||
- Add setting for even earlier personal robots
|
||||
Bug Fixes:
|
||||
- Prevent broken icons
|
||||
- Helmod: Fix bug with steam assembler
|
||||
- Any planet start: Fix prerequisites for "Tree seeding"
|
||||
- Any planet start: Fix circular dependency
|
||||
- Wood Gasification updated: Fix amount of wood per tree
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.40
|
||||
Date: 06.04.2025
|
||||
Changes:
|
||||
- Add setting for wood on Fulgora and make Wooden Fulgora optional again
|
||||
Bug Fixes:
|
||||
- Add fix for duplicate ready rocket silo
|
||||
- Remove inventory of provisional rocket silo
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.39
|
||||
Date: 28.03.2025
|
||||
Changes:
|
||||
- Add Space Age flag
|
||||
Breaking changes:
|
||||
- AAI loaders, Lane splitters: Apply recipe changes only when AAI Industry is active
|
||||
- AAI Loaders: Adhere belt progression setting
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.38
|
||||
Date: 28.03.2025
|
||||
Changes:
|
||||
- Any planet start: Change internal name of the space connection to Lignumis depending on the selected planet
|
||||
Bug Fixes:
|
||||
- Any planet start (Vulcanus) + Crushing Industry: Move iron crushing to fix soft-lock
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.37
|
||||
Date: 28.03.2025
|
||||
Changes:
|
||||
- Switch from "Burner leech fork" to "Inserter Fuel Leech"
|
||||
- "Wooden Vulcanus" and "Wooden Fulgora" are now mandatory ("Wooden Gleba" is currently being made)
|
||||
- Crushing Industry: Burner Crusher can be crafted in Lumber Mill (with more Lumber Mill recipes enabled)
|
||||
- Add compatibility for "Any planet start" - Now it is used to determine the planet after Lignumis and will move the moon accordingly
|
||||
- Add compatibility for "Gleba reborn"
|
||||
Bug Fixes:
|
||||
- Crushing Industry: Fix name of Burner Crusher copper recipe
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.36
|
||||
Date: 24.03.2025
|
||||
Changes:
|
||||
- Basic construction robots copper recipe uses basic circuit boards and wooden gear wheels
|
||||
- AAI Industry: Add "wood" fuel category to burner generator and fuel processor
|
||||
- Wood Industry: Woodchips have "wood" fuel category
|
||||
- Add compatibility for "Crushing Industry"
|
||||
Bug Fixes:
|
||||
- Lane Splitters: Correct item order
|
||||
- AAI Loaders: Correct item/recipe order
|
||||
- Fix recylce recipe being generated for rocket parts
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.35
|
||||
Date: 18.03.2025
|
||||
Changes:
|
||||
- Add russian translation (thanks Fr_Dae)
|
||||
- Regular lab recipe always uses wood belt
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.34
|
||||
Date: 17.03.2025
|
||||
Changes:
|
||||
- Balance basic construction robots (reduced energy buffer and usage)
|
||||
- Make the second planet after Lignumis configurable by other mods
|
||||
- Add new enemies (only for new games)
|
||||
- Burner leech fork is now a mandatory dependency
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.33
|
||||
Date: 16.03.2025
|
||||
Breaking Changes:
|
||||
- Replace iron gear wheel with wooden gear wheel in lumber mill copper recipe
|
||||
- AAI Industry: Lumber mill copper recipe uses burner assembler instead of electrical assembler 1
|
||||
- AAI Industry: Basic construction robot copper recipe uses basic circuit board instead of electronic circuit
|
||||
- AAI Loaders: Yellow loader uses basic circuit board instead of electronic circuit
|
||||
- Lane splitters: Yellow lane splitter uses basic circuit board instead of electronic circuit
|
||||
Changes:
|
||||
- Nerf basic portable generator from 200 kW to 100 kW
|
||||
- AAI Industry: Move copper cable recipe to copper processing
|
||||
- AAI Industry: Remove technology "Basic logistics"
|
||||
- AAI Loaders: Reduce basic circuit boards to match other tiers
|
||||
- Remove temporary fix for crash due to "Wood Walls and floors"
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.32
|
||||
Date: 14.03.2025
|
||||
Breaking Changes:
|
||||
- Some newly added recipes for the lumber mill have been moved to a setting that is off by default
|
||||
Changes:
|
||||
- Reduce noise
|
||||
- Restrict provisional rocket silo to Lignumis
|
||||
- Add setting for assembler recipe progression
|
||||
Bug Fixes:
|
||||
- Fix players after the first not attackable
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.31
|
||||
Date: 13.03.2025
|
||||
Breaking Changes:
|
||||
- Any planet start/Planet picker: Mark as incompatible
|
||||
Changes:
|
||||
- Add more recipes to lumber mill
|
||||
- AAI Loaders: Expensive mode recipe uses basic circuit boards (thanks Nydaleclya)
|
||||
- AAI Loaders: Yellow loader recipe uses wood loader
|
||||
Bug Fixes:
|
||||
- Add missing translation
|
||||
- Possibly fix problems with Wooden rocket silo in remote view
|
||||
- Add copper recipe for the lumber mill
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.30
|
||||
Date: 06.03.2025
|
||||
Bug Fixes:
|
||||
- Any planet start: Fix startup crash
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.29
|
||||
Date: 05.03.2025
|
||||
Breaking Changes:
|
||||
- Nerf quality assembler to +25% quality
|
||||
Changes:
|
||||
- Set default for setting "Basic circuit boards" to true
|
||||
- Alien Biomes: Add warning when the game starts that AB is not supported
|
||||
Bug Fixes:
|
||||
- Fix Burner agricultural tower not having a Nauvis recipe when "Basic circuit boards" is active
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.28
|
||||
Date: 04.03.2025
|
||||
Changes:
|
||||
- Steam assembler technology should not ignore tech cost multiplier
|
||||
Bug Fixes:
|
||||
- AAI Loaders: Add missing translation
|
||||
- Prevent possible errors on player initialization
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.27
|
||||
Date: 02.03.2025
|
||||
Changes:
|
||||
- Add compatibility for "Any planet start"
|
||||
- Add compatibility for "Lane splitters"
|
||||
Bug Fixes:
|
||||
- AAI Industry: Fix basic circuit board recipe unlock
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.0.26
|
||||
Date: 28.02.2025
|
||||
Bug Fixes:
|
||||
|
|
|
@ -8,3 +8,5 @@ handler.add_libraries({
|
|||
require("scripts/to-nauvis"),
|
||||
require("scripts/wooden-rocket-silo")
|
||||
})
|
||||
|
||||
|
||||
|
|
BIN
lignumis/graphics/icons/lignumis-medium-wriggler-corpse.png
Normal file
BIN
lignumis/graphics/icons/lignumis-medium-wriggler-corpse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
BIN
lignumis/graphics/icons/lignumis-medium-wriggler.png
Normal file
BIN
lignumis/graphics/icons/lignumis-medium-wriggler.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
BIN
lignumis/graphics/icons/lignumis-small-wriggler-corpse.png
Normal file
BIN
lignumis/graphics/icons/lignumis-small-wriggler-corpse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.9 KiB |
BIN
lignumis/graphics/icons/lignumis-small-wriggler.png
Normal file
BIN
lignumis/graphics/icons/lignumis-small-wriggler.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
|
@ -1,49 +1,36 @@
|
|||
{
|
||||
"name": "lignumis",
|
||||
"version": "1.0.44",
|
||||
"version": "1.0.26",
|
||||
"title": "Lignumis",
|
||||
"description": "Dive into the world of Lignumis, a moon of Nauvis offering only the most basic technologies.",
|
||||
"author": "cackling fiend",
|
||||
"homepage": "https://discord.gg/5bevXf5W",
|
||||
"factorio_version": "2.0",
|
||||
"space_travel_required": true,
|
||||
"dependencies": [
|
||||
"base",
|
||||
"space-age >= 2.0.33",
|
||||
"astroponics >= 1.2.0",
|
||||
"bioprocessing-tab",
|
||||
"cf-lib >= 0.0.12",
|
||||
"space-age >= 2.0.28",
|
||||
"lignumis-assets",
|
||||
"flib",
|
||||
"InserterFuelLeech",
|
||||
"lignumis-assets >= 1.0.3",
|
||||
"mf-buildings >= 1.0.7",
|
||||
"mf-core >= 1.0.3",
|
||||
"mf-logistics >= 1.0.1",
|
||||
"PlanetsLib >= 1.1.26",
|
||||
"pollution-as-surface-property",
|
||||
"astroponics >= 1.2.0",
|
||||
"cf-lib >= 0.0.8",
|
||||
"mf-core >= 1.0.3",
|
||||
"mf-buildings >= 1.0.7",
|
||||
"mf-logistics >= 1.0.1",
|
||||
"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",
|
||||
"pollution-as-surface-property",
|
||||
"bioprocessing-tab",
|
||||
"?hot-metals >= 1.1.0",
|
||||
"?lane-splitters",
|
||||
"(?)metal-and-stars",
|
||||
"(?)secretas",
|
||||
"(?)Wood_Gasification_updated",
|
||||
"?wood-industry",
|
||||
"?wood-military >= 2.3.3",
|
||||
"?metal-and-stars",
|
||||
"?aai-industry",
|
||||
"?planet-picker",
|
||||
"?Diversitree",
|
||||
"?aai-loaders",
|
||||
"?atan-nuclear-science",
|
||||
"!apm_power_ldinc",
|
||||
"!Burner-Leech-Fork",
|
||||
"!early-agriculture",
|
||||
"!planet-picker",
|
||||
"!wood-logistics",
|
||||
"!early-agriculture",
|
||||
"!wood-universe-modpack"
|
||||
]
|
||||
}
|
|
@ -45,15 +45,10 @@ basic-radar=Basic radar
|
|||
active-noise-cancelling-tower=Active noise cancelling tower
|
||||
quality-assembler=Quality assembler
|
||||
aai-wood-loader=Wood loader
|
||||
wood-lane-splitter=Wood lane splitter
|
||||
lignumis-spawner-small=Lignumis egg raft
|
||||
lignumis-small-wriggler-pentapod=Lignumis small wiggler pentapod
|
||||
lignumis-medium-wriggler-pentapod=Lignumis medium wiggler pentapod
|
||||
|
||||
[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.
|
||||
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
|
||||
quality-assembler=High-end assembler to craft only the finest quality machines. It gives one free quality tier to the crafted item by consuming [item=gold-quality-catalyst]. Surface conditions and ingredients are otherwise unchanged.
|
||||
|
||||
[equipment-name]
|
||||
basic-portable-generator-equipment-gold=Basic portable generator equipment (gold)
|
||||
|
@ -81,12 +76,11 @@ gold-quality-catalyst=Gold quality catalyst
|
|||
wood-armor=Wood armor
|
||||
wood-darts-magazine=Wood darts magazine
|
||||
basic-circuit-board=Basic circuit board
|
||||
crushed-gold-ore=Crushed gold ore
|
||||
|
||||
[item-description]
|
||||
wooden-wall=Use wooden walls to protect your base from the locals and to reduce noise levels.
|
||||
stone-wall=Better acoustic and physical protection than the wooden counterpart.
|
||||
gold-stromatolite-seed=Plant the seed to grow gold stromatolites. They house bacteria that enrich gold from the ground.\n__REMARK_COLOR_BEGIN__Expected yield:__REMARK_COLOR_END__ 1.5 [item=gold-ore]/m
|
||||
destination-nauvis=Insert this item into a rocket to travel to Nauvis. Notice that you won`t come back for a while.\n__REMARK_COLOR_BEGIN__BETA notice: Keep at most 40 item stack in your inventory before leaving as the current transition to Nauvis is a temporary implementation. Be sure to take material to jumpstart your iron, copper and wood production.__REMARK_COLOR_END__
|
||||
|
||||
[fluid-name]
|
||||
wood-pulp=Wood pulp
|
||||
|
@ -105,8 +99,6 @@ low-density-structure-gold=Low density structure
|
|||
rocket-fuel-from-wood-pulp-and-peat=Bio-rocket-fuel
|
||||
nutrients-from-wood-pulp=Nutrients from wood pulp
|
||||
active-noise-cancelling=Active noise cancelling
|
||||
casting-gold=Casting gold
|
||||
gold-ore-crushing=Gold ore crushing
|
||||
|
||||
[recipe-description]
|
||||
moist-stromatolite-remnant-desiccation-without-steam=Used for balancing the production of steam.
|
||||
|
@ -136,8 +128,6 @@ basic-repair-pack=Basic repair pack
|
|||
basic-radar=Basic radar
|
||||
active-noise-cancelling=Active noise cancelling
|
||||
quality-assembler=Quality assembler
|
||||
aai-wood-loader=Wood loader
|
||||
basic-ore-crushing=Basic ore crushing
|
||||
|
||||
[technology-description]
|
||||
wood-science-pack=Allows research of basic technologies based on wood products.
|
||||
|
@ -176,10 +166,6 @@ lignumis-ammo-progression=Enable progressive ammo recipes
|
|||
lignumis-technology-progression=Enable progressive technologies
|
||||
lignumis-basic-circuit-board=Enable basic circuit board
|
||||
lignumis-circuit-progression=Enable progressive circuit recipes
|
||||
lignumis-assembler-progression=Enable progressive assembler recipes
|
||||
lignumis-lumber-mill-more-recipes=Enable more recipes for the lumber mill
|
||||
lignumis-fulgora-wood=Add wood to Fulgora
|
||||
lignumis-early-robots=Even earlier personal robots
|
||||
|
||||
[mod-setting-description]
|
||||
lignumis-belt-progression=Yellow belts will require wood belts to craft.
|
||||
|
@ -188,13 +174,6 @@ lignumis-ammo-progression=Firearm magazines will require wooden darts magazines
|
|||
lignumis-technology-progression=Adds wood and steam science packs to most late game technologies. Disabling this removes the relevance of Lignumis' science packs in the late game.
|
||||
lignumis-basic-circuit-board=Recipes use basic circuit boards instead of gold cables and gold plates where appropriate. Both gold and copper recipes will be added.
|
||||
lignumis-circuit-progression=Electric circuits will require basic circuit boards to craft.
|
||||
lignumis-assembler-progression=Assembling machine 1 will require burner assembling machines to craft.
|
||||
lignumis-lumber-mill-more-recipes=The lumber mill can also craft basic turrets, burner assemblers and burner inserters. Improves balancing wood usage when all progressive recipes are enabled and helps with marathon games.
|
||||
lignumis-fulgora-wood=This adds wooden gear wheels to scrap recycling as the main source of wood. Disable this is you have a different source of wood or import everything from other planets.
|
||||
lignumis-early-robots=Personal robots are moved from steam to wood science and are a tiny bit faster.
|
||||
|
||||
[autoplace-control-names]
|
||||
lignumis_enemy_base=Lignumis enemy bases
|
||||
|
||||
[entity-status]
|
||||
no-quality-catalyst=No quality catalyst
|
||||
|
@ -207,8 +186,8 @@ quality-catalyst-energy-value=Quality value
|
|||
quality-catalyst=Quality catalyst
|
||||
|
||||
[lignumis]
|
||||
start-new-game=Lignumis is meant to be played in a fresh game as it extends the early game.
|
||||
provisional-rocket-silo-button=Escape to __1__
|
||||
start-new-game=Lignumis is meant to be played in a fresh game as it extends the early game before Nauvis.
|
||||
provisional-rocket-silo-button=Escape to Nauvis
|
||||
provisional-rocket-silo-button-tooltip-inventory=Your personal inventory must be empty!
|
||||
provisional-rocket-silo-button-tooltip-target=You don't know yet where to go!
|
||||
provisional-rocket-silo-description=Fill the rocket inventory and launch the rocket to escape to __1__.\nBe sure to take material to jumpstart your iron, copper and wood production.
|
||||
provisional-rocket-silo-button-tooltip-nauvis=You don't know yet where to go!
|
||||
provisional-rocket-silo-description=Fill the rocket inventory and launch the rocket to escape to Nauvis.\nBe sure to take material to jumpstart your iron, copper and wood production.
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
[mod-name]
|
||||
lignumis=○ Лигнумис
|
||||
|
||||
[mod-description]
|
||||
lignumis=Погрузитесь в мир Лигнумиса — луны Нависа, предлагающей лишь самые базовые технологии.
|
||||
|
||||
[space-location-name]
|
||||
lignumis=Лигнумис
|
||||
|
||||
[space-location-description]
|
||||
lignumis=Лигнумис — это луна, вращающаяся вокруг Нависа. Она во многом похожа на Навис, но кажется моложе и беднее ресурсами.
|
||||
|
||||
[airborne-pollutant-name]
|
||||
noise=Шум
|
||||
|
||||
[airborne-pollutant-name-with-amount]
|
||||
noise=__1__ шума
|
||||
|
||||
[entity-name]
|
||||
wood-lab=Деревянная лаборатория
|
||||
peat=Торф
|
||||
burner-agricultural-tower=Сельскохозяйственная башня на горелке
|
||||
burner-assembling-machine=Сборочная машина на горелке
|
||||
burner-long-handed-inserter=Длиннорукий манипулятор на горелке
|
||||
lumber-mill=Лесопильня
|
||||
gold-stromatolite=Золотой строматолит
|
||||
gold-stromatolite-plant=Золотой строматолит (растение)
|
||||
gold-stromatolite-lignumis=Золотой строматолит
|
||||
gold-patch=Золотое месторождение
|
||||
deep-miner=Глубинный бур
|
||||
gold-pipe=Золотая труба
|
||||
gold-pipe-to-ground=Золотая подземная труба
|
||||
gold-storage-tank=Золотой резервуар
|
||||
desiccation-furnace=Печь для высушивания
|
||||
steam-assembling-machine=Паровая сборочная машина
|
||||
provisional-rocket-silo=Временное ракетное хранилище
|
||||
provisional-rocket-silo-ready=Временное ракетное хранилище (готово)
|
||||
basic-gun-turret=Базовая пулеметная турель
|
||||
basic-construction-robot-gold=Базовый строительный робот (золото)
|
||||
basic-construction-robot-copper=Базовый строительный робот (медь)
|
||||
wood-transport-belt=Деревянный транспортёр
|
||||
wood-underground-belt=Деревянный подземный транспортёр
|
||||
wood-splitter=Деревянный разделитель
|
||||
basic-radar=Базовый радар
|
||||
active-noise-cancelling-tower=Башня активного шумоподавления
|
||||
quality-assembler=Качественная сборочная машина
|
||||
aai-wood-loader=Деревянный загрузчик
|
||||
wood-lane-splitter=Деревянный распределитель лент
|
||||
lignumis-spawner-small=Гнездовая колония Лигнумиса
|
||||
lignumis-small-wriggler-pentapod=Маленький пентанож Лигнумиса
|
||||
lignumis-medium-wriggler-pentapod=Средний пентанож Лигнумиса
|
||||
|
||||
[entity-description]
|
||||
lumber-mill=Продвинутая машина для обработки древесины.
|
||||
quality-assembler=Высококачественная сборочная машина, создающая только лучшие механизмы. Добавляет один уровень качества предмету, потребляя [item=gold-quality-catalyst]. Все остальные условия остаются неизменными.
|
||||
|
||||
[equipment-name]
|
||||
basic-portable-generator-equipment-gold=Базовый портативный генератор (золото)
|
||||
basic-portable-generator-equipment-copper=Базовый портативный генератор (медь)
|
||||
basic-personal-roboport-equipment-gold=Базовый персональный робопорт (золото)
|
||||
basic-personal-roboport-equipment-copper=Базовый персональный робопорт (медь)
|
||||
|
||||
[item-name]
|
||||
wooden-gear-wheel=Деревянное зубчатое колесо
|
||||
wood-science-pack=Деревянный научный пакет
|
||||
peat=Торф
|
||||
gold-stromatolite-seed=Семя золотого строматолита
|
||||
gold-ore=Золотая руда
|
||||
gold-bacteria=Золотые бактерии
|
||||
gold-plate=Золотая пластина
|
||||
gold-cable=Золотой кабель
|
||||
moist-stromatolite-remnant=Влажный остаток строматолита
|
||||
steam-science-pack=Паровой научный пакет
|
||||
destination-nauvis=Путешествие на Навис
|
||||
lumber=Пиломатериалы
|
||||
basic-repair-pack=Базовый ремонтный комплект
|
||||
cupriavidus-necator=Cupriavidus necator
|
||||
dead-cupriavidus-necator=Мёртвый Cupriavidus necator
|
||||
gold-quality-catalyst=Золотой катализатор качества
|
||||
wood-armor=Деревянная броня
|
||||
wood-darts-magazine=Обойма деревянных дротиков
|
||||
basic-circuit-board=Базовая схема
|
||||
|
||||
[item-description]
|
||||
wooden-wall=Деревянные стены защищают базу и снижают уровень шума.
|
||||
stone-wall=Обеспечивает лучшую акустическую и физическую защиту, чем деревянный аналог.
|
||||
destination-nauvis=Поместите этот предмет в ракету, чтобы отправиться на Навис. Обратите внимание, что вернуться обратно удастся не скоро.\n__REMARK_COLOR_BEGIN__BETA: Перед отлётом храните не более 40 единиц предметов в инвентаре, так как текущая система перехода на Навис временная. Не забудьте взять материалы для запуска производства железа, меди и древесины.__REMARK_COLOR_END__
|
||||
|
||||
[fluid-name]
|
||||
wood-pulp=Древесная масса
|
||||
molten-gold=Расплавленное золото
|
||||
|
||||
[recipe-name]
|
||||
moist-stromatolite-remnant-desiccation=Высушивание влажного строматолита
|
||||
gold-stromatolite-seed-to-peat=Обработка семян золотого строматолита
|
||||
wood-liquefaction=Сжижение древесины
|
||||
provisional-rocket-part=Часть временной ракеты
|
||||
cupriavidus-necator-starter=Cupriavidus necator (стартовая культура)
|
||||
plastic-from-cupriavidus-necator=Биопластик
|
||||
casting-gold=Литьё золота
|
||||
|
||||
[technology-name]
|
||||
wood-science-pack=Деревянный научный пакет
|
||||
burner-automation=Автоматизация на горелках
|
||||
planet-discovery-nauvis=Открытие планеты Навис
|
||||
planet-discovery-lignumis=Открытие луны Лигнумис
|
||||
basic-radar=Базовый радар
|
||||
active-noise-cancelling=Активное шумоподавление
|
||||
quality-assembler=Качественная сборочная машина
|
||||
automation-science-pack=Покиньте Лигнумис для изучения продвинутых технологий.
|
||||
|
||||
[modifier-description]
|
||||
basic-gun-turret-attack-bonus=Урон базовой турели: +__1__
|
||||
|
||||
[tile-name]
|
||||
wood-floor=Деревянный пол
|
||||
natural-gold-soil=Золотосодержащая почва
|
||||
|
||||
[fuel-category-name]
|
||||
wood=Древесное топливо
|
||||
quality-catalyst=Катализатор качества
|
||||
|
||||
[mod-setting-name]
|
||||
lignumis-belt-progression=Прогрессивные рецепты конвейеров
|
||||
lignumis-technology-progression=Прогрессивные технологии
|
||||
lignumis-lumber-mill-more-recipes=Дополнительные рецепты для лесопильни
|
||||
|
||||
[mod-setting-description]
|
||||
lignumis-technology-progression=Добавляет деревянные и паровые научные пакеты к большинству поздних технологий. Отключение этого параметра снижает их значимость в поздней игре.
|
||||
lignumis-lumber-mill-more-recipes=Лесопильня может создавать базовые турели, сборочные машины и манипуляторы на горелках.
|
||||
|
||||
[gui]
|
||||
quality-catalyst=Катализатор качества
|
||||
|
||||
[lignumis]
|
||||
start-new-game=Лигнумис рассчитан на игру с нуля, так как он удлиняет ранний этап перед Нависом.
|
||||
provisional-rocket-silo-button=Спастись на Навис
|
||||
provisional-rocket-silo-description=Заполните ракету ресурсами и запустите её, чтобы сбежать на Навис.\nНе забудьте взять материалы для запуска производства железа, меди и древесины.
|
|
@ -1,5 +0,0 @@
|
|||
for _, player in pairs(game.players) do
|
||||
if player.character then
|
||||
player.character.destructible = true
|
||||
end
|
||||
end
|
|
@ -1,5 +0,0 @@
|
|||
storage.target_planet = settings.startup["lignumis-second-planet"].value or "nauvis"
|
||||
|
||||
if script.active_mods["any-planet-start"] then
|
||||
storage.target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or storage.target_planet
|
||||
end
|
|
@ -1,17 +1,14 @@
|
|||
local Technology = require("__cf-lib__/data/Technology")
|
||||
local Recipe = require("__cf-lib__/data/Recipe")
|
||||
|
||||
if not mods["aai-industry"] then return end
|
||||
|
||||
data.raw.recipe["wood-science-pack"].allow_hand_crafting = true
|
||||
|
||||
-- Technologies / Recipe unlocks
|
||||
|
||||
local burner_mechanics = Technology:new("burner-mechanics")
|
||||
burner_mechanics:addPrerequisite("iron-processing")
|
||||
burner_mechanics:removeRecipe("burner-inserter")
|
||||
burner_mechanics:removeRecipe("burner-mining-drill")
|
||||
burner_mechanics:removeRecipe("burner-assembling-machine")
|
||||
burner_mechanics:addPrerequisite("iron-processing")
|
||||
|
||||
data.raw.recipe["burner-inserter"].enabled = true
|
||||
data.raw.recipe["burner-mining-drill"].enabled = true
|
||||
|
@ -19,15 +16,6 @@ data.raw.recipe["burner-mining-drill"].enabled = true
|
|||
local burner_automation = Technology:new("burner-automation")
|
||||
burner_automation:addRecipe("burner-assembling-machine")
|
||||
|
||||
Technology:new("basic-logistics"):removeRecipe("transport-belt")
|
||||
Technology:new("logistics"):addRecipe("transport-belt")
|
||||
|
||||
-- Electrics comes later with AAI Industry active
|
||||
Recipe:new("lumber-mill-copper"):replaceIngredient("assembling-machine-1", "burner-assembling-machine")
|
||||
Recipe:new("basic-construction-robot-copper"):replaceIngredient("electronic-circuit", "basic-circuit-board")
|
||||
|
||||
-- Entities
|
||||
|
||||
local wall = data.raw["wall"]["concrete-wall"]
|
||||
wall.emissions_per_second = wall.emissions_per_second or {}
|
||||
wall.emissions_per_second.noise = -30 / 60
|
||||
|
@ -36,18 +24,9 @@ data.raw["lab"]["wood-lab"].next_upgrade = "burner-lab"
|
|||
|
||||
table.insert(data.raw["agricultural-tower"]["burner-agricultural-tower"].energy_source.fuel_categories, "processed-chemical")
|
||||
|
||||
table.insert(data.raw["assembling-machine"]["fuel-processor"].energy_source.fuel_categories, "wood")
|
||||
|
||||
if settings.startup["lignumis-basic-circuit-board"].value then
|
||||
table.insert(data.raw["recipe"]["electric-mining-drill"].ingredients, { type = "item", name = "basic-circuit-board", amount = 2 })
|
||||
table.insert(data.raw["recipe"]["inserter"].ingredients, { type = "item", name = "basic-circuit-board", amount = 1 })
|
||||
table.insert(data.raw["recipe"]["burner-lab"].ingredients, { type = "item", name = "basic-circuit-board", amount = 10 })
|
||||
table.insert(data.raw["recipe"]["assembling-machine-1"].ingredients, { type = "item", name = "basic-circuit-board", amount = 5 })
|
||||
|
||||
-- AAI Industry messes with the basic circuit board recipe
|
||||
Technology:new("electronics"):removeRecipe("basic-circuit-board")
|
||||
data.raw.recipe["basic-circuit-board"].enabled = true
|
||||
|
||||
Technology:new("electricity"):removeRecipe("copper-cable")
|
||||
Technology:new("copper-processing"):addRecipe("copper-cable")
|
||||
end
|
|
@ -1,13 +0,0 @@
|
|||
local Recipe = require("__cf-lib__/data/Recipe")
|
||||
|
||||
if not mods["aai-loaders"] then return end
|
||||
|
||||
local recipe = Recipe:new("aai-loader")
|
||||
|
||||
if settings.startup["lignumis-belt-progression"].value then
|
||||
recipe:replaceIngredient("transport-belt", "aai-wood-loader", 1)
|
||||
end
|
||||
|
||||
if mods["aai-industry"] and settings.startup["lignumis-basic-circuit-board"].value then
|
||||
recipe:replaceIngredient("electronic-circuit", "basic-circuit-board")
|
||||
end
|
|
@ -8,7 +8,7 @@ local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].val
|
|||
local recipe = {
|
||||
ingredients = {
|
||||
{ type = "item", name = "lumber", amount = 5 },
|
||||
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or
|
||||
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 10 } or
|
||||
{ type = "item", name = "gold-cable", amount = 10 },
|
||||
{ type = "item", name = "wood-transport-belt", amount = 1 }
|
||||
},
|
||||
|
@ -33,20 +33,16 @@ AAILoaders.make_tier({
|
|||
recipe = recipe,
|
||||
unlubricated_recipe = mods["aai-loaders-sane"] and recipe or {
|
||||
ingredients = {
|
||||
{ type = "item", name = "lumber", amount = 50 },
|
||||
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 50 } or
|
||||
{ type = "item", name = "gold-cable", amount = 100 },
|
||||
{ type = "item", name = "lumber", amount = 50 },
|
||||
{ type = "item", name = "gold-cable", amount = 100 },
|
||||
{ type = "item", name = "wood-transport-belt", amount = 1 }
|
||||
},
|
||||
energy_required = 5
|
||||
},
|
||||
next_upgrade = "aai-loader",
|
||||
localise = false,
|
||||
order = "d[loader]-a00[aai-wood-loader]"
|
||||
localise = false
|
||||
})
|
||||
|
||||
data.raw.recipe["aai-wood-loader"].category = "wood-processing-or-assembling"
|
||||
|
||||
if not basic_circuit_board then
|
||||
local nauvis_recipe = Recipe:new("aai-wood-loader"):clone("wood-loader-electronic-circuit")
|
||||
nauvis_recipe:replaceIngredient("gold-cable", "electronic-circuit")
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
local Technology = require("__cf-lib__/data/Technology")
|
||||
|
||||
if not mods["any-planet-start"] then return end
|
||||
|
||||
local target_planet = settings.startup["aps-planet"].value
|
||||
|
||||
if target_planet == "none" or target_planet == "nauvis" then return end
|
||||
|
||||
Technology:new("tree-seeding"):setPrerequisites({ "wood-science-pack" })
|
||||
|
||||
|
||||
-- Switch planet discovery technology to the new planet
|
||||
Technology:new("planet-discovery-" .. target_planet)
|
||||
:assign({
|
||||
enabled = true,
|
||||
hidden = false,
|
||||
unit = {
|
||||
count = 100,
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 },
|
||||
{ "steam-science-pack", 1 }
|
||||
},
|
||||
time = 30
|
||||
}
|
||||
})
|
||||
:setPrerequisites({ "provisional-rocketry" })
|
||||
Technology:new("iron-processing"):replacePrerequisite("planet-discovery-nauvis", "planet-discovery-" .. target_planet)
|
||||
Technology:new("copper-processing"):replacePrerequisite("planet-discovery-nauvis", "planet-discovery-" .. target_planet)
|
||||
|
||||
|
||||
-- Vulcanus
|
||||
if target_planet == "vulcanus" then
|
||||
Technology:new("automation"):addPrerequisite("iron-processing")
|
||||
Technology:new("steel-processing"):addPrerequisite("iron-processing")
|
||||
Technology:new("tungsten-carbide"):addPrerequisite("planet-discovery-vulcanus")
|
||||
Technology:new("iron-processing").prototype.research_trigger.entity = "big-volcanic-rock"
|
||||
Technology:new("copper-processing").prototype.research_trigger.entity = "big-volcanic-rock"
|
||||
|
||||
data.raw.resource["tungsten-ore"].category = "basic-solid"
|
||||
|
||||
if mods["bztitanium"] and mods["crushing-industry"] then
|
||||
Technology:new("foundry"):addRecipe("crushed-titanium-ore")
|
||||
data.raw.recipe["crushed-titanium-ore"].category = "basic-crushing"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Fulgora
|
||||
if target_planet == "fulgora" then
|
||||
data.raw.recipe["medium-electric-pole"].enabled = false
|
||||
Technology:new("recycling")
|
||||
:addPrerequisite("planet-discovery-fulgora")
|
||||
:addRecipe("medium-electric-pole")
|
||||
Technology:new("iron-processing").prototype.research_trigger.entity = "scrap"
|
||||
Technology:new("copper-processing").prototype.research_trigger.entity = "scrap"
|
||||
|
||||
if mods["fulgora-coralmium-agriculture"] then
|
||||
Technology:new("coralmium-recycling")
|
||||
:addPrerequisite("recycling")
|
||||
:removeRecipe("agricultural-tower")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Gleba
|
||||
if target_planet == "gleba" then
|
||||
Technology:new("landfill")
|
||||
:setPrerequisites({ "burner-automation" })
|
||||
:assign({
|
||||
unit = {
|
||||
count = 50,
|
||||
ingredients = { { "wood-science-pack", 1 } },
|
||||
time = 15
|
||||
}
|
||||
})
|
||||
.prototype.research_trigger = nil
|
||||
Technology:new("iron-processing").prototype.research_trigger.entity = "iron-stromatolite"
|
||||
Technology:new("copper-processing").prototype.research_trigger.entity = "copper-stromatolite"
|
||||
end
|
|
@ -1,112 +0,0 @@
|
|||
local item_sounds = require("__base__.prototypes.item_sounds")
|
||||
local Technology = require("__cf-lib__/data/Technology")
|
||||
local Recipe = require("__cf-lib__/data/Recipe")
|
||||
|
||||
if not mods["crushing-industry"] then return end
|
||||
if not settings.startup["crushing-industry-ore"].value then return end
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "item",
|
||||
name = "crushed-gold-ore",
|
||||
icon = Lignumis.graphics .. "icons/crushed-gold-ore.png",
|
||||
pictures = {
|
||||
{ size = 64, filename = Lignumis.graphics .. "icons/crushed-gold-ore.png", scale = 0.5, mipmap_count = 4 },
|
||||
{ size = 64, filename = Lignumis.graphics .. "icons/crushed-gold-ore-1.png", scale = 0.5, mipmap_count = 4 },
|
||||
{ size = 64, filename = Lignumis.graphics .. "icons/crushed-gold-ore-2.png", scale = 0.5, mipmap_count = 4 },
|
||||
},
|
||||
subgroup = "raw-resource",
|
||||
color_hint = { text = "C" },
|
||||
order = "f[gold-ore]-c[crushed]",
|
||||
inventory_move_sound = item_sounds.resource_inventory_move,
|
||||
pick_sound = item_sounds.resource_inventory_pickup,
|
||||
drop_sound = item_sounds.resource_inventory_move,
|
||||
stack_size = 100,
|
||||
weight = 2 * kg
|
||||
},
|
||||
{
|
||||
type = "recipe",
|
||||
name = "crushed-gold-ore",
|
||||
localised_name = { "recipe-name.gold-ore-crushing" },
|
||||
icons = CrushingIndustry.make_crushing_icons("gold-ore"),
|
||||
category = "basic-crushing",
|
||||
enabled = false,
|
||||
allow_productivity = true,
|
||||
auto_recycle = false,
|
||||
energy_required = 1.2,
|
||||
ingredients = { { type = "item", name = "gold-ore", amount = 1 } },
|
||||
results = { { type = "item", name = "crushed-gold-ore", amount = 1, extra_count_fraction = 0.5 } },
|
||||
main_product = "crushed-gold-ore"
|
||||
},
|
||||
{
|
||||
type = "recipe",
|
||||
name = "crushed-gold-smelting",
|
||||
localised_name = { "recipe-name.crushed-smelting", { "item-name.gold-plate" } },
|
||||
icons = {
|
||||
{ icon = Lignumis.graphics .. "icons/crushed-gold-ore.png", shift = { -12, -12 }, scale = 0.4 },
|
||||
{ icon = Lignumis.graphics .. "icons/gold-plate.png", draw_background = true }
|
||||
},
|
||||
category = "smelting",
|
||||
order = "a[smelting]-b[gold-plate]-c[crushed]",
|
||||
enabled = false,
|
||||
allow_productivity = true,
|
||||
auto_recycle = false,
|
||||
hide_from_player_crafting = settings.startup["crushing-industry-hide-player-crafting"].value,
|
||||
energy_required = 3.2,
|
||||
ingredients = { { type = "item", name = "crushed-gold-ore", amount = 2 } },
|
||||
results = { { type = "item", name = "gold-plate", amount = 1 } },
|
||||
main_product = "gold-plate",
|
||||
},
|
||||
{
|
||||
type = "technology",
|
||||
name = "basic-ore-crushing",
|
||||
icon = Lignumis.graphics .. "technology/basic-ore-crushing.png",
|
||||
icon_size = 256,
|
||||
effects = {
|
||||
{ type = "unlock-recipe", recipe = "burner-crusher" },
|
||||
{ type = "unlock-recipe", recipe = "crushed-gold-ore" },
|
||||
{ type = "unlock-recipe", recipe = "crushed-gold-smelting" }
|
||||
},
|
||||
prerequisites = { "steam-science-pack" },
|
||||
unit = {
|
||||
count = 100,
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 },
|
||||
{ "steam-science-pack", 1 }
|
||||
},
|
||||
time = 15
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
if settings.startup["crushing-industry-byproducts"].value then
|
||||
table.insert(data.raw["recipe"]["crushed-gold-ore"].results, { type = "item", name = "gold-ore", amount = 1, probability = 0.05 })
|
||||
table.insert(data.raw["recipe"]["crushed-gold-ore"].results, { type = "item", name = "sand", amount = 1, probability = 0.02 })
|
||||
end
|
||||
|
||||
if mods["aai-industry"] then
|
||||
Technology:new("burner-mechanics"):removeRecipe("burner-crusher")
|
||||
else
|
||||
Technology:new("steam-power"):removeRecipe("burner-crusher")
|
||||
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"
|
||||
})
|
||||
|
||||
gold_recipe:clone("burner-crusher-copper")
|
||||
:replaceIngredient("gold-plate", "copper-plate")
|
||||
:assign({
|
||||
localised_name = { "entity-name.burner-crusher" },
|
||||
icons = {
|
||||
{ icon = data.raw.item["burner-crusher"].icon },
|
||||
{ icon = "__base__/graphics/icons/copper-plate.png", scale = 0.25, shift = { 8, 8 } }
|
||||
}
|
||||
})
|
||||
:unlockedByTechnology("copper-processing")
|
||||
:apply()
|
|
@ -2,7 +2,6 @@ require("hot-metals")
|
|||
require("wood-military")
|
||||
require("metal-and-stars")
|
||||
require("alien-biomes")
|
||||
require("planet-picker")
|
||||
require("aai-loaders")
|
||||
require("nuclear-science")
|
||||
require("lane-splitters")
|
||||
require("wood-industry")
|
|
@ -1,5 +1,3 @@
|
|||
require("aai-loaders-final")
|
||||
|
||||
if not data.raw.technology["legendary-quality"] then
|
||||
table.removeValue(data.raw.technology["quality-assembler"].prerequisites, "legendary-quality")
|
||||
end
|
|
@ -1,16 +0,0 @@
|
|||
local Technology = require("__cf-lib__/data/Technology")
|
||||
|
||||
if not mods["gleba-reborn"] then return end
|
||||
|
||||
Technology:new("tree-seeding")
|
||||
:setPrerequisites({ "wood-science-pack" })
|
||||
:assign({
|
||||
unit = {
|
||||
count = 10,
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 }
|
||||
},
|
||||
time = 10
|
||||
}
|
||||
})
|
||||
.prototype.research_trigger = nil
|
|
@ -1,38 +0,0 @@
|
|||
local Recipe = require("__cf-lib__/data/Recipe")
|
||||
local Technology = require("__cf-lib__/data/Technology")
|
||||
|
||||
if not mods["lane-splitters"] then return end
|
||||
|
||||
local lane_splitter = make_tier({
|
||||
name = "wood-lane-splitter",
|
||||
base_belt = "wood-transport-belt",
|
||||
base_splitter = "wood-splitter",
|
||||
health = 150,
|
||||
next_upgrade = "lane-splitter",
|
||||
})
|
||||
|
||||
lane_splitter.prototype.icon = Lignumis.graphics .. "icons/wood-lane-splitter.png"
|
||||
lane_splitter.prototype.dying_explosion = "transport-belt-explosion"
|
||||
lane_splitter.prototype.structure.east.filename = data.raw.splitter["wood-splitter"].structure.east.filename
|
||||
lane_splitter.prototype.structure.south.filename = data.raw.splitter["wood-splitter"].structure.south.filename
|
||||
lane_splitter.prototype.structure.west.filename = data.raw.splitter["wood-splitter"].structure.west.filename
|
||||
lane_splitter.prototype.structure.north.filename = data.raw.splitter["wood-splitter"].structure.north.filename
|
||||
lane_splitter.prototype.structure_patch.east.filename = data.raw.splitter["wood-splitter"].structure_patch.east.filename
|
||||
lane_splitter.prototype.structure_patch.south.filename = data.raw.splitter["wood-splitter"].structure_patch.south.filename
|
||||
lane_splitter.prototype.structure_patch.west.filename = data.raw.splitter["wood-splitter"].structure_patch.west.filename
|
||||
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"
|
||||
|
||||
data:extend({
|
||||
lane_splitter.prototype,
|
||||
lane_splitter.item,
|
||||
lane_splitter.recipe,
|
||||
})
|
||||
|
||||
Technology:new("wood-logistics"):addRecipe("wood-lane-splitter")
|
||||
|
||||
if mods["aai-industry"] and settings.startup["lignumis-basic-circuit-board"].value then
|
||||
Recipe:new("lane-splitter"):replaceIngredient("electronic-circuit", "basic-circuit-board")
|
||||
end
|
7
lignumis/prototypes/compatibility/planet-picker.lua
Normal file
7
lignumis/prototypes/compatibility/planet-picker.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
local Technology = require("__cf-lib__/data/Technology")
|
||||
|
||||
if not mods["planet-picker"] and not mods["any-planet-start"] then return end
|
||||
|
||||
local technology = Technology:new("planet-discovery-lignumis")
|
||||
technology:setPrerequisites({ "space-platform-thruster" })
|
||||
technology:addIngredients({ "logistic-science-pack", "chemical-science-pack", "space-science-pack" })
|
|
@ -1,4 +1 @@
|
|||
require("aai-industry")
|
||||
require("gleba-reborn")
|
||||
require("any-planet-start")
|
||||
require("crushing-industry")
|
|
@ -1,3 +0,0 @@
|
|||
if not mods["wood-industry"] then return end
|
||||
|
||||
data.raw.item["woodchips"].fuel_category = "wood"
|
|
@ -7,7 +7,7 @@ data:extend({
|
|||
{
|
||||
type = "item",
|
||||
name = "basic-circuit-board",
|
||||
icons = { { icon = Lignumis.graphics .. "icons/basic-circuit-board.png", icon_size = 64 } },
|
||||
icon = Lignumis.graphics .. "icons/basic-circuit-board.png",
|
||||
subgroup = "intermediate-product",
|
||||
order = "c[circuits]-0[basic-circuit-board]",
|
||||
inventory_move_sound = item_sounds.electric_small_inventory_move,
|
|
@ -2,7 +2,6 @@ local item_sounds = require("__base__.prototypes.item_sounds")
|
|||
local item_tints = require("__base__.prototypes.item-tints")
|
||||
|
||||
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
|
||||
local early_robots = settings.startup["lignumis-early-robots"].value
|
||||
|
||||
local function robot(color)
|
||||
local result = table.deepcopy(data.raw["construction-robot"]["construction-robot"])
|
||||
|
@ -10,10 +9,8 @@ local function robot(color)
|
|||
result.icon = Lignumis.graphics .. "icons/basic-construction-robot-" .. color .. ".png"
|
||||
result.minable.result = "basic-construction-robot-" .. color
|
||||
result.max_health = 50
|
||||
result.speed = early_robots and 0.05 or 0.04
|
||||
result.max_energy = "1MJ"
|
||||
result.energy_per_tick = "0.04kJ"
|
||||
result.energy_per_move = "0.3kJ"
|
||||
result.speed = 0.04
|
||||
result.max_energy = "2MJ"
|
||||
result.idle.filename = Lignumis.graphics .. "entity/basic-construction-robot/basic-construction-robot-" ..
|
||||
color .. ".png"
|
||||
result.in_motion.filename = Lignumis.graphics .. "entity/basic-construction-robot/basic-construction-robot-" ..
|
||||
|
@ -86,10 +83,9 @@ local function generator(color)
|
|||
energy_source = {
|
||||
type = "electric",
|
||||
usage_priority = "secondary-output",
|
||||
output_flow_limit = "100kW",
|
||||
buffer_capacity = "5MJ"
|
||||
output_flow_limit = "200kW"
|
||||
},
|
||||
power = "100kW",
|
||||
power = "200kW",
|
||||
categories = { "armor" }
|
||||
}
|
||||
end
|
||||
|
@ -181,16 +177,15 @@ local gold_robot_technology = {
|
|||
modifier = true
|
||||
}
|
||||
},
|
||||
prerequisites = { early_robots and "wood-science-pack" or "steam-science-pack" },
|
||||
prerequisites = { "steam-science-pack" },
|
||||
unit = {
|
||||
count = 200,
|
||||
ingredients = early_robots and { { "wood-science-pack", 1 } } or {
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 },
|
||||
{ "steam-science-pack", 1 }
|
||||
},
|
||||
time = 15
|
||||
},
|
||||
ignore_tech_cost_multiplier = early_robots
|
||||
}
|
||||
}
|
||||
|
||||
local copper_robot_technology = {
|
||||
|
@ -250,22 +245,22 @@ data:extend({
|
|||
robot("copper"),
|
||||
robot_item("copper", 1),
|
||||
robot_recipe("copper", {
|
||||
{ type = "item", name = "copper-plate", amount = 2 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 5 },
|
||||
{ type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 5 }
|
||||
{ type = "item", name = "copper-plate", amount = 2 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 5 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 5 }
|
||||
}),
|
||||
generator("copper"),
|
||||
generator_item("copper", 1),
|
||||
generator_recipe("copper", {
|
||||
{ type = "item", name = "copper-plate", amount = 10 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 10 }
|
||||
{ type = "item", name = "copper-plate", amount = 10 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 10 }
|
||||
}),
|
||||
roboport("copper"),
|
||||
roboport_item("copper", 1),
|
||||
roboport_recipe("copper", {
|
||||
{ type = "item", name = "copper-plate", amount = 5 },
|
||||
{ type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 10 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 10 }
|
||||
{ type = "item", name = "copper-plate", amount = 5 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 10 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 10 }
|
||||
}),
|
||||
|
||||
-- Technology
|
||||
|
|
|
@ -57,9 +57,6 @@ 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"
|
||||
end
|
||||
|
||||
local turret_technology = {
|
||||
type = "technology",
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
local item_sounds = require("__base__.prototypes.item_sounds")
|
||||
local Technology = require("__cf-lib__/data/Technology")
|
||||
|
||||
local basic_circuit_board = settings.startup["lignumis-basic-circuit-board"].value
|
||||
local gfx = Lignumis.graphics .. "entity/burner-agricultural-tower/"
|
||||
|
@ -9,7 +8,7 @@ agricultural_tower.name = "burner-agricultural-tower"
|
|||
agricultural_tower.minable.result = "burner-agricultural-tower"
|
||||
agricultural_tower.next_upgrade = "agricultural-tower"
|
||||
agricultural_tower.corpses = "burner-agricultural-tower-remnants"
|
||||
agricultural_tower.icons = { { icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png", icon_size = 64 } }
|
||||
agricultural_tower.icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png"
|
||||
agricultural_tower.graphics_set.animation.layers[1].filename = gfx .. "burner-agricultural-tower-base.png"
|
||||
agricultural_tower.graphics_set.working_visualisations[1].animation.filename = gfx ..
|
||||
"burner-agricultural-tower-base.png"
|
||||
|
@ -18,7 +17,7 @@ agricultural_tower.energy_source = {
|
|||
fuel_categories = { "chemical" },
|
||||
effectivity = 1,
|
||||
fuel_inventory_size = 1,
|
||||
emissions_per_minute = { noise = 75 }
|
||||
emissions_per_minute = { noise = 100 }
|
||||
}
|
||||
agricultural_tower.resistances = nil
|
||||
agricultural_tower.input_inventory_size = 1
|
||||
|
@ -83,7 +82,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "burner-agricultural-tower",
|
||||
category = "wood-processing-or-assembling",
|
||||
energy_required = 10,
|
||||
ingredients = {
|
||||
{ type = "item", name = "stone-brick", amount = 5 },
|
||||
|
@ -111,27 +109,30 @@ tech.ignore_tech_cost_multiplier = true
|
|||
|
||||
data.raw.technology["fish-breeding"].prerequisites = { "agricultural-science-pack" }
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "recipe",
|
||||
name = "burner-agricultural-tower-copper",
|
||||
category = "wood-processing-or-assembling",
|
||||
localised_name = { "entity-name.burner-agricultural-tower" },
|
||||
icons = {
|
||||
{ icon = Lignumis.graphics .. "icons/burner-agricultural-tower.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 } }
|
||||
},
|
||||
energy_required = 10,
|
||||
ingredients = {
|
||||
{ type = "item", name = "stone-brick", amount = 5 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 20 },
|
||||
{ type = "item", name = "lumber", amount = 20 },
|
||||
{ type = "item", name = "copper-plate", amount = 10 },
|
||||
{ type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 10 }
|
||||
},
|
||||
results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } },
|
||||
enabled = false
|
||||
}
|
||||
})
|
||||
if not basic_circuit_board then
|
||||
data:extend({
|
||||
{
|
||||
type = "recipe",
|
||||
name = "burner-agricultural-tower-electronic-circuit",
|
||||
localised_name = { "entity-name.burner-agricultural-tower" },
|
||||
icons = {
|
||||
{ icon = Lignumis.graphics .. "icons/burner-agricultural-tower.png" },
|
||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
||||
},
|
||||
energy_required = 10,
|
||||
ingredients = {
|
||||
{ type = "item", name = "stone-brick", amount = 5 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 20 },
|
||||
{ type = "item", name = "lumber", amount = 20 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 10 }
|
||||
},
|
||||
results = { { type = "item", name = "burner-agricultural-tower", amount = 1 } },
|
||||
enabled = false
|
||||
}
|
||||
})
|
||||
|
||||
Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("burner-agricultural-tower-copper")
|
||||
table.insert(data.raw.technology["electronics"].effects, {
|
||||
type = "unlock-recipe",
|
||||
recipe = "burner-agricultural-tower-electronic-circuit"
|
||||
})
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ local gfx = Lignumis.graphics .. "entity/burner-assembling-machine/"
|
|||
|
||||
local assembling_machine = table.deepcopy(data.raw["assembling-machine"]["assembling-machine-1"])
|
||||
assembling_machine.name = "burner-assembling-machine"
|
||||
assembling_machine.icons = { { icon = Lignumis.graphics .. "icons/burner-assembling-machine.png", icon_size = 64 } }
|
||||
assembling_machine.icon = Lignumis.graphics .. "icons/burner-assembling-machine.png"
|
||||
assembling_machine.minable.result = "burner-assembling-machine"
|
||||
assembling_machine.next_upgrade = "steam-assembling-machine"
|
||||
assembling_machine.corpse = "burner-assembling-machine-remnants"
|
||||
|
@ -50,8 +50,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 +68,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "burner-assembling-machine",
|
||||
category = crafting_category,
|
||||
enabled = false,
|
||||
ingredients = {
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 5 },
|
||||
|
@ -111,11 +108,10 @@ if not basic_circuit_board then
|
|||
{
|
||||
type = "recipe",
|
||||
name = "burner-assembling-machine-electronic-circuit",
|
||||
category = crafting_category,
|
||||
localised_name = { "entity-name.burner-assembling-machine" },
|
||||
icons = {
|
||||
{ icon = Lignumis.graphics .. "icons/burner-assembling-machine.png" },
|
||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
||||
},
|
||||
enabled = false,
|
||||
ingredients = {
|
||||
|
|
|
@ -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,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "burner-long-handed-inserter",
|
||||
category = crafting_category,
|
||||
enabled = false,
|
||||
ingredients = {
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 1 },
|
||||
|
|
|
@ -29,7 +29,7 @@ require("active-noise-cancelling-tower")
|
|||
require("quality-assembler")
|
||||
require("decoratives")
|
||||
require("wood-military")
|
||||
require("basic-circuit-board")
|
||||
require("basic-circuit-boards")
|
||||
require("enemies")
|
||||
|
||||
require("noise")
|
||||
|
|
|
@ -2,7 +2,8 @@ local particle_animations = require("__space-age__/prototypes/particle-animation
|
|||
local base_sounds = require("__base__.prototypes.entity.sounds")
|
||||
local space_age_sounds = require("__space-age__.prototypes.entity.sounds")
|
||||
local simulations = require("__space-age__.prototypes.factoriopedia-simulations")
|
||||
local biter_ai_settings = require("__base__.prototypes.entity.biter-ai-settings")
|
||||
local enemy_autoplace = require("__base__.prototypes.entity.enemy-autoplace-utils")
|
||||
local biter_ai_settings = require ("__base__.prototypes.entity.biter-ai-settings")
|
||||
|
||||
local blood_particles = {
|
||||
"blood-particle-small",
|
||||
|
@ -169,7 +170,7 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
local tint_mask = tints.mask
|
||||
local tint_body = tints.body
|
||||
|
||||
local function attack_parameters()
|
||||
local function attack_parameters(lifesteal)
|
||||
local cooldown = 26
|
||||
return {
|
||||
ammo_category = "melee",
|
||||
|
@ -179,10 +180,20 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
type = "direct",
|
||||
action_delivery = {
|
||||
type = "instant",
|
||||
source_effects = lifesteal and {
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = -health / 50 / 60 * cooldown * 1.1, type = "poison" } -- offsets negative regeneration when attacking
|
||||
}
|
||||
} or nil,
|
||||
target_effects = {
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = 5 * damage, type = "physical" }
|
||||
},
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = 5 * damage, type = "poison" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -207,7 +218,7 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
local wriggler = {
|
||||
type = "unit",
|
||||
name = prefix .. "wriggler-pentapod-premature",
|
||||
icon = Lignumis.graphics .. "icons/" .. prefix .. "wriggler.png",
|
||||
icon = "__lignumis__/graphics/icons/" .. prefix .. "wriggler.png",
|
||||
subgroup = "enemies",
|
||||
order = "gleba-a-wriggler-" .. tostring(scale),
|
||||
factoriopedia_simulation = factoriopedia_simulation_premature,
|
||||
|
@ -218,19 +229,25 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
flags = { "placeable-player", "placeable-enemy", "placeable-off-grid", "not-repairable", "breaths-air" },
|
||||
absorptions_to_join_attack = { noise = 1 },
|
||||
ai_settings = biter_ai_settings,
|
||||
attack_parameters = attack_parameters(),
|
||||
attack_parameters = attack_parameters(true),
|
||||
corpse = prefix .. "wriggler-pentapod-corpse",
|
||||
damaged_trigger_effect = gleba_hit_effects(),
|
||||
distance_per_frame = 0.125,
|
||||
distraction_cooldown = 300,
|
||||
dying_explosion = prefix .. "wriggler-die",
|
||||
dying_sound = sounds.dying_sound,
|
||||
healing_per_tick = -health / 1 / 60,
|
||||
healing_per_tick = -health / 50 / 60,
|
||||
impact_category = "organic",
|
||||
max_health = health,
|
||||
max_pursue_distance = 30,
|
||||
min_pursue_time = 300,
|
||||
movement_speed = 0.15 * (1 + (scale - 1) / 2),
|
||||
max_pursue_distance = 50,
|
||||
min_pursue_time = 600,
|
||||
movement_speed = 0.2 * (1 + (scale - 1) / 2),
|
||||
resistances = {
|
||||
{
|
||||
percent = 50,
|
||||
type = "laser"
|
||||
}
|
||||
},
|
||||
run_animation = {
|
||||
layers = {
|
||||
wriggler_spritesheet("run", 21, 0.48, scale, tint_body),
|
||||
|
@ -263,12 +280,12 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
wriggler_stable.factoriopedia_simulation = factoriopedia_simulation
|
||||
wriggler_stable.healing_per_tick = health / 500 / 60
|
||||
wriggler_stable.absorptions_to_join_attack = { noise = 1 }
|
||||
wriggler_stable.attack_parameters = attack_parameters()
|
||||
wriggler_stable.attack_parameters = attack_parameters(false)
|
||||
|
||||
local wriggler_corpse = {
|
||||
type = "corpse",
|
||||
name = prefix .. "wriggler-pentapod-corpse",
|
||||
icon = Lignumis.graphics .. "icons/" .. prefix .. "wriggler-corpse.png",
|
||||
icon = "__lignumis__/graphics/icons/" .. prefix .. "wriggler-corpse.png",
|
||||
subgroup = "corpses",
|
||||
order = "c[corpse]-d[gleba-enemies-corpses]-d[wriggler]" .. tostring(scale),
|
||||
hidden_in_factoriopedia = true,
|
||||
|
@ -386,6 +403,50 @@ function make_wriggler(prefix, scale, health, damage, tints, factoriopedia_simul
|
|||
tail_width = 3,
|
||||
rotate_offsets = false
|
||||
},
|
||||
--{
|
||||
-- type = "create-particle",
|
||||
-- repeat_count = 2,
|
||||
-- repeat_count_deviation = 0,
|
||||
-- probability = 1,
|
||||
-- affects_target = false,
|
||||
-- show_in_tooltip = false,
|
||||
-- particle_name = "pentapod-entrails-particle-small",
|
||||
-- offsets = {
|
||||
-- { 0, -0.4 }
|
||||
-- },
|
||||
-- offset_deviation = { { -0.5, -0.5 }, { 0.5, 0.5 } },
|
||||
-- initial_height = 0.1,
|
||||
-- initial_height_deviation = 0.1,
|
||||
-- initial_vertical_speed = 0.06,
|
||||
-- initial_vertical_speed_deviation = 0.05,
|
||||
-- speed_from_center = 0.07,
|
||||
-- speed_from_center_deviation = 0,
|
||||
-- frame_speed = 1,
|
||||
-- frame_speed_deviation = 0,
|
||||
-- rotate_offsets = false
|
||||
--},
|
||||
--{
|
||||
-- type = "create-particle",
|
||||
-- repeat_count = 10,
|
||||
-- repeat_count_deviation = 0,
|
||||
-- probability = 1,
|
||||
-- affects_target = false,
|
||||
-- show_in_tooltip = false,
|
||||
-- particle_name = prefix .. "wriggler-skin-particle",
|
||||
-- offsets = {
|
||||
-- { 0, -0.4 }
|
||||
-- },
|
||||
-- offset_deviation = { { -0.5, -0.5 }, { 0.5, 0.5 } },
|
||||
-- initial_height = 0.1,
|
||||
-- initial_height_deviation = 0.1,
|
||||
-- initial_vertical_speed = 0.05,
|
||||
-- initial_vertical_speed_deviation = 0.02,
|
||||
-- speed_from_center = 0.02,
|
||||
-- speed_from_center_deviation = 0.1,
|
||||
-- frame_speed = 1,
|
||||
-- frame_speed_deviation = 0,
|
||||
-- rotate_offsets = false
|
||||
--},
|
||||
{
|
||||
type = "play-sound",
|
||||
sound = base_sounds.medium_gore
|
||||
|
@ -425,7 +486,7 @@ end
|
|||
local gleba_small_mask_tint = { 103, 151, 11, 255 }
|
||||
local gleba_small_body_tint = { 125, 124, 111, 255 }
|
||||
|
||||
make_wriggler("lignumis-small-", 0.2, 10, 0.1,
|
||||
make_wriggler("lignumis-small-", 0.2, 20, 0.1,
|
||||
{
|
||||
mask = fade(lerp_color(gleba_small_mask_tint, { 255, 200, 0, 255 }, 0.2), 0.2),
|
||||
body = grey_overlay(lerp_color(gleba_small_body_tint, { 255, 0, 0, 255 }, 0.2), 0.2)
|
||||
|
@ -435,7 +496,7 @@ make_wriggler("lignumis-small-", 0.2, 10, 0.1,
|
|||
space_age_sounds.wriggler_pentapod.small
|
||||
)
|
||||
|
||||
make_wriggler("lignumis-medium-", 0.4, 20, 0.2,
|
||||
make_wriggler("lignumis-medium-", 0.4, 40, 0.2,
|
||||
{
|
||||
mask = fade(lerp_color(gleba_small_mask_tint, { 255, 200, 0, 255 }, 0.4), 0.2),
|
||||
body = grey_overlay(lerp_color(gleba_small_body_tint, { 255, 0, 0, 255 }, 0.4), 0.2)
|
||||
|
@ -445,79 +506,6 @@ make_wriggler("lignumis-medium-", 0.4, 20, 0.2,
|
|||
space_age_sounds.wriggler_pentapod.small
|
||||
)
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "noise-expression",
|
||||
name = "enemy_lignumis_intensity",
|
||||
-- biter placement stops increasing in "intensity" after 75 chunks (2400 tiles)
|
||||
expression = "clamp(distance, 0, 2400) / 325"
|
||||
},
|
||||
{
|
||||
type = "noise-expression",
|
||||
name = "enemy_lignumis_radius",
|
||||
expression = "sqrt(var('control:lignumis_enemy_base:size')) * (15 + 4 * enemy_lignumis_intensity)"
|
||||
},
|
||||
{
|
||||
type = "noise-expression",
|
||||
name = "enemy_lignumis_frequency",
|
||||
-- bases_per_km2 = 10 + 3 * enemy_lignumis_intensity
|
||||
expression = "(0.00001 + 0.000003 * enemy_lignumis_intensity) * var('control:lignumis_enemy_base:frequency')"
|
||||
},
|
||||
{
|
||||
type = "noise-expression",
|
||||
name = "enemy_lignumis_probability",
|
||||
expression = "spot_noise{x = x,\z
|
||||
y = y,\z
|
||||
density_expression = spot_quantity_expression * max(0, enemy_lignumis_frequency),\z
|
||||
spot_quantity_expression = spot_quantity_expression,\z
|
||||
spot_radius_expression = spot_radius_expression,\z
|
||||
spot_favorability_expression = 1,\z
|
||||
seed0 = map_seed,\z
|
||||
seed1 = 123,\z
|
||||
region_size = 512,\z
|
||||
candidate_point_count = 100,\z
|
||||
hard_region_target_quantity = 0,\z
|
||||
basement_value = -1000,\z
|
||||
maximum_spot_basement_radius = 128} + \z
|
||||
(blob(1/8, 1) + blob(1/24, 1) + blob(1/64, 2) - 0.5) * spot_radius_expression / 150 * \z
|
||||
(0.1 + 0.9 * clamp(distance / 3000, 0, 1)) - 0.3 + min(0, 20 / starting_area_radius * distance - 20)",
|
||||
local_expressions =
|
||||
{
|
||||
spot_radius_expression = "max(0, enemy_lignumis_radius)",
|
||||
spot_quantity_expression = "pi/90 * spot_radius_expression ^ 3"
|
||||
},
|
||||
local_functions =
|
||||
{
|
||||
blob =
|
||||
{
|
||||
parameters = { "input_scale", "output_scale" },
|
||||
expression =
|
||||
"basis_noise{x = x, y = y, seed0 = map_seed, seed1 = 123, input_scale = input_scale, output_scale = output_scale}"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "noise-function",
|
||||
name = "enemy_autoplace_lignumis",
|
||||
parameters = { "distance_factor", "seed" },
|
||||
expression = "random_penalty{x = x + seed,\z
|
||||
y = y,\z
|
||||
source = min(enemy_lignumis_probability * max(0, 1 + 0.002 * distance_factor * (-312 * distance_factor - starting_area_radius + distance)),\z
|
||||
0.25 + distance_factor * 0.05),\z
|
||||
amplitude = 0.1}"
|
||||
}
|
||||
})
|
||||
|
||||
local function lignumis_spawner_autoplace(probability_expression, order)
|
||||
return {
|
||||
control = "lignumis_enemy_base",
|
||||
order = order,
|
||||
force = "enemy",
|
||||
probability_expression = probability_expression,
|
||||
richness_expression = 1
|
||||
}
|
||||
end
|
||||
|
||||
local spawner = table.deepcopy(data.raw["unit-spawner"]["gleba-spawner-small"])
|
||||
table.assign(spawner, {
|
||||
name = "lignumis-spawner-small",
|
||||
|
@ -527,16 +515,17 @@ table.assign(spawner, {
|
|||
},
|
||||
max_count_of_owned_units = 7,
|
||||
max_friends_around_to_spawn = 5,
|
||||
spawning_cooldown = { 360, 150 },
|
||||
spawning_radius = 10,
|
||||
spawning_spacing = 3,
|
||||
max_spawn_shift = 0,
|
||||
max_richness_for_spawn_shift = 100,
|
||||
resistances = {},
|
||||
healing_per_tick = 1 / 60,
|
||||
spawning_cooldown = { 60, 20 },
|
||||
spawning_radius = 4,
|
||||
call_for_help_radius = 20,
|
||||
autoplace = lignumis_spawner_autoplace("enemy_autoplace_lignumis(0, 548)", "b[enemy]-0[spawner]"),
|
||||
absorptions_per_second = { noise = { absolute = 40, proportional = 0.01 } },
|
||||
call_for_help_radius = 50,
|
||||
--spawning_cooldown = { 60, 20 },
|
||||
--spawning_radius = 4,
|
||||
--call_for_help_radius = 20,
|
||||
autoplace = enemy_autoplace.enemy_spawner_autoplace("enemy_autoplace_base(0, 6)"),
|
||||
absorptions_per_second = { noise = { absolute = 20, proportional = 0.01 } },
|
||||
})
|
||||
spawner.collision_mask = nil
|
||||
spawner.loot = nil
|
||||
|
|
|
@ -35,4 +35,3 @@ update_fuel_categories(data.raw["reactor"])
|
|||
update_fuel_categories(data.raw["car"])
|
||||
update_fuel_categories(data.raw["locomotive"])
|
||||
update_fuel_categories(data.raw["generator-equipment"])
|
||||
update_fuel_categories(data.raw["burner-generator"])
|
|
@ -12,8 +12,7 @@ data:extend({
|
|||
inventory_move_sound = item_sounds.metal_small_inventory_move,
|
||||
pick_sound = item_sounds.metal_small_inventory_pickup,
|
||||
drop_sound = item_sounds.metal_small_inventory_move,
|
||||
stack_size = 100,
|
||||
enabled = true
|
||||
stack_size = 100
|
||||
},
|
||||
{
|
||||
type = "recipe",
|
||||
|
|
|
@ -7,7 +7,7 @@ data:extend({
|
|||
{
|
||||
type = "autoplace-control",
|
||||
name = "lignumis_gold",
|
||||
localised_name = { "", "[entity=gold-patch] ", { "entity-name.gold-patch" } },
|
||||
localised_name = {"", "[entity=gold-patch] ", {"entity-name.gold-patch"}},
|
||||
richness = true,
|
||||
order = "0-b",
|
||||
category = "resource"
|
||||
|
@ -15,17 +15,9 @@ data:extend({
|
|||
{
|
||||
type = "autoplace-control",
|
||||
name = "lignumis_peat",
|
||||
localised_name = { "", "[entity=peat] ", { "entity-name.peat" } },
|
||||
localised_name = {"", "[entity=peat] ", {"entity-name.peat"}},
|
||||
richness = true,
|
||||
order = "0-c",
|
||||
category = "resource"
|
||||
},
|
||||
{
|
||||
type = "autoplace-control",
|
||||
name = "lignumis_enemy_base",
|
||||
richness = false,
|
||||
order = "0-a",
|
||||
category = "enemy",
|
||||
can_be_disabled = true
|
||||
}
|
||||
})
|
|
@ -17,7 +17,7 @@ return {
|
|||
["stone"] = { richness = 1/6, frequency = 4, size = 4 },
|
||||
["water"] = {},
|
||||
["trees"] = { richness = 3, frequency = 4, size = 3 },
|
||||
["lignumis_enemy_base"] = { frequency = 0.75, size = 0.75 },
|
||||
["enemy-base"] = {},
|
||||
["rocks"] = {},
|
||||
["starting_area_moisture"] = { size = 1, richness = 6 },
|
||||
["nauvis_cliff"] = { frequency = 2, size = 2 }
|
||||
|
|
|
@ -3,11 +3,6 @@ local effects = require("__core__/lualib/surface-render-parameter-effects")
|
|||
local procession_graphic_catalogue_types = require("__base__/prototypes/planet/procession-graphic-catalogue-types")
|
||||
local asteroid_util = require("__space-age__/prototypes/planet/asteroid-spawn-definitions")
|
||||
|
||||
local target_planet = settings.startup["lignumis-second-planet"].value or "nauvis"
|
||||
if mods["any-planet-start"] then
|
||||
target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or target_planet
|
||||
end
|
||||
|
||||
local lignumis_chunks = 0.025
|
||||
local lignumis_ratio = {1, 1, 1 , 0}
|
||||
local nauvis_lignumis = {
|
||||
|
@ -28,7 +23,7 @@ PlanetsLib:extend({
|
|||
orbit = {
|
||||
parent = {
|
||||
type = "planet",
|
||||
name = target_planet
|
||||
name = "nauvis"
|
||||
},
|
||||
distance = 2,
|
||||
orientation = 0.16,
|
||||
|
@ -119,9 +114,9 @@ PlanetsLib:extend({
|
|||
data:extend({
|
||||
{
|
||||
type = "space-connection",
|
||||
name = target_planet .. "-lignumis",
|
||||
name = "nauvis-lignumis",
|
||||
subgroup = "planet-connections",
|
||||
from = target_planet,
|
||||
from = "nauvis",
|
||||
to = "lignumis",
|
||||
order = "0",
|
||||
length = 2000,
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
local Technology = require("__cf-lib__/data/Technology")
|
||||
local LumberMillFactory = require(MF.buildings .. "LumberMill")
|
||||
local LumberMill = LumberMillFactory()
|
||||
|
||||
|
@ -30,10 +29,10 @@ local lumber_mill_item = LumberMill.ItemBuilder:new()
|
|||
|
||||
LumberMill.RecipeBuilder:new()
|
||||
:ingredients(table.trim({
|
||||
{ type = "item", name = "stone-brick", amount = 40 },
|
||||
{ type = "item", name = "lumber", amount = 100 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 100 },
|
||||
{ type = "item", name = "gold-plate", amount = basic_circuit_board and 30 or 60 },
|
||||
{ type = "item", name = "stone-brick", amount = 40 },
|
||||
{ type = "item", name = "lumber", amount = 100 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 100 },
|
||||
{ type = "item", name = "gold-plate", amount = basic_circuit_board and 30 or 60 },
|
||||
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 30 } or nil,
|
||||
{ type = "item", name = "burner-assembling-machine", amount = 5 }
|
||||
}))
|
||||
|
@ -48,23 +47,27 @@ LumberMill.TechnologyBuilder:new()
|
|||
: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 30 or 60 },
|
||||
{ type = "item", name = basic_circuit_board and "basic-circuit-board" or "electronic-circuit", amount = 30 },
|
||||
{ type = "item", name = "assembling-machine-1", amount = 2 }
|
||||
})
|
||||
:apply({
|
||||
name = "lumber-mill-copper",
|
||||
localised_name = { "entity-name.lumber-mill" },
|
||||
category = "wood-processing-or-assembling",
|
||||
icons = {
|
||||
{ icon = lumber_mill_item.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 } }
|
||||
}
|
||||
})
|
||||
if not basic_circuit_board then
|
||||
LumberMill.RecipeBuilder:new()
|
||||
:ingredients({
|
||||
{ type = "item", name = "stone-brick", amount = 40 },
|
||||
{ type = "item", name = "lumber", amount = 50 },
|
||||
{ type = "item", name = "iron-gear-wheel", amount = 50 },
|
||||
{ type = "item", name = "electronic-circuit", amount = 20 },
|
||||
{ type = "item", name = "assembling-machine-1", amount = 2 }
|
||||
})
|
||||
:apply({
|
||||
name = "lumber-mill-electronic-circuit",
|
||||
localised_name = { "entity-name.lumber-mill" },
|
||||
category = "wood-processing-or-assembling",
|
||||
icons = {
|
||||
{ icon = lumber_mill_item.icon },
|
||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
||||
}
|
||||
})
|
||||
|
||||
Technology:new(basic_circuit_board and "copper-processing" or "electronics"):addRecipe("lumber-mill-copper")
|
||||
table.insert(data.raw.technology["electronics"].effects, {
|
||||
type = "unlock-recipe",
|
||||
recipe = "lumber-mill-electronic-circuit"
|
||||
})
|
||||
end
|
||||
|
|
|
@ -65,9 +65,9 @@ end
|
|||
|
||||
-- Walls absorb noise
|
||||
|
||||
emit_constant("wall", "wooden-wall", -15)
|
||||
emit_constant("wall", "stone-wall", -25)
|
||||
emit_constant("gate", "gate", -20)
|
||||
emit_constant("wall", "wooden-wall", -10)
|
||||
emit_constant("wall", "stone-wall", -20)
|
||||
emit_constant("gate", "gate", -10)
|
||||
|
||||
|
||||
-- Buildings emit noise
|
||||
|
@ -78,8 +78,8 @@ emit("mining-drill", "burner-mining-drill", 50)
|
|||
emit("mining-drill", "electric-mining-drill", 100)
|
||||
emit("mining-drill", "big-mining-drill", 200)
|
||||
--emit("mining-drill", "deep-miner", 2000)
|
||||
--emit("agricultural-tower", "burner-agricultural-tower", 75)
|
||||
emit("agricultural-tower", "agricultural-tower", 75)
|
||||
--emit("agricultural-tower", "burner-agricultural-tower", 100)
|
||||
emit("agricultural-tower", "agricultural-tower", 100)
|
||||
--emit("assembling-machine", "burner-assembling-machine", 50)
|
||||
--emit("assembling-machine", "steam-assembling-machine", 50)
|
||||
emit("assembling-machine", "assembling-machine-1", 10)
|
||||
|
@ -100,18 +100,18 @@ emit("lab", "biolab", 20)
|
|||
emit("locomotive", "locomotive", 200)
|
||||
emit_constant("locomotive", "locomotive", 10)
|
||||
|
||||
--emit_constant("transport-belt", "wood-transport-belt", 2.4)
|
||||
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", 15)
|
||||
emit_constant("underground-belt", "underground-belt", 20)
|
||||
emit_constant("underground-belt", "fast-underground-belt", 30)
|
||||
emit_constant("underground-belt", "express-underground-belt", 40)
|
||||
emit_constant("underground-belt", "turbo-underground-belt", 50)
|
||||
--emit_constant("splitter", "wood-splitter", 30)
|
||||
emit_constant("splitter", "splitter", 40)
|
||||
emit_constant("splitter", "fast-splitter", 50)
|
||||
emit_constant("splitter", "express-splitter", 60)
|
||||
emit_constant("splitter", "turbo-splitter", 80)
|
||||
--emit_constant("transport-belt", "wood-transport-belt", 3)
|
||||
emit_constant("transport-belt", "transport-belt", 4)
|
||||
emit_constant("transport-belt", "fast-transport-belt", 8)
|
||||
emit_constant("transport-belt", "express-transport-belt", 12)
|
||||
emit_constant("transport-belt", "turbo-transport-belt", 16)
|
||||
--emit_constant("underground-belt", "wood-underground-belt", 30)
|
||||
emit_constant("underground-belt", "underground-belt", 40)
|
||||
emit_constant("underground-belt", "fast-underground-belt", 50)
|
||||
emit_constant("underground-belt", "express-underground-belt", 60)
|
||||
emit_constant("underground-belt", "turbo-underground-belt", 80)
|
||||
--emit_constant("splitter", "wood-splitter", 60)
|
||||
emit_constant("splitter", "splitter", 70)
|
||||
emit_constant("splitter", "fast-splitter", 80)
|
||||
emit_constant("splitter", "express-splitter", 90)
|
||||
emit_constant("splitter", "turbo-splitter", 100)
|
|
@ -77,7 +77,7 @@ QualityAssembler.EntityBuilder:new()
|
|||
crafting_speed = 4,
|
||||
module_slots = 6,
|
||||
allowed_effects = { "pollution", "quality" },
|
||||
effect_receiver = { base_effect = { quality = 2.5 } }
|
||||
effect_receiver = { base_effect = { quality = 10 } }
|
||||
})
|
||||
|
||||
QualityAssembler.ItemBuilder:new():apply()
|
||||
|
|
|
@ -6,7 +6,7 @@ local gfx = Lignumis.graphics .. "entity/steam-assembling-machine/"
|
|||
|
||||
local assembling_machine = table.deepcopy(data.raw["assembling-machine"]["assembling-machine-2"])
|
||||
assembling_machine.name = "steam-assembling-machine"
|
||||
assembling_machine.icons = { { icon = Lignumis.graphics .. "icons/steam-assembling-machine.png", icon_size = 64 } }
|
||||
assembling_machine.icon = Lignumis.graphics .. "icons/steam-assembling-machine.png"
|
||||
assembling_machine.minable.result = "steam-assembling-machine"
|
||||
assembling_machine.next_upgrade = "assembling-machine-1"
|
||||
assembling_machine.module_slots = nil
|
||||
|
@ -30,11 +30,11 @@ assembling_machine.crafting_speed = 0.5
|
|||
assembling_machine.energy_usage = "25kW"
|
||||
assembling_machine.energy_source = {
|
||||
type = "fluid",
|
||||
maximum_temperature = 165,
|
||||
fuel_categories = { "steam" },
|
||||
effectivity = 1,
|
||||
emissions_per_minute = { noise = 50 },
|
||||
scale_fluid_usage = true,
|
||||
fluid_box = {
|
||||
filter = "steam",
|
||||
production_type = "input",
|
||||
pipe_picture = machinepipes(),
|
||||
pipe_covers = pipecovers(),
|
||||
|
@ -106,6 +106,6 @@ data:extend({
|
|||
ingredients = { { "wood-science-pack", 1 } },
|
||||
time = 15
|
||||
},
|
||||
ignore_tech_cost_multiplier = false
|
||||
ignore_tech_cost_multiplier = true
|
||||
}
|
||||
})
|
||||
|
|
|
@ -83,81 +83,83 @@ data:extend({
|
|||
}
|
||||
})
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "technology",
|
||||
name = "planet-discovery-nauvis",
|
||||
icons = util.technology_icon_constant_planet(Lignumis.graphics .. "technology/nauvis.png"),
|
||||
icon_size = 256,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-space-location",
|
||||
space_location = "nauvis",
|
||||
use_icon_overlay_constant = true
|
||||
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||
data:extend({
|
||||
{
|
||||
type = "technology",
|
||||
name = "planet-discovery-nauvis",
|
||||
icons = util.technology_icon_constant_planet(Lignumis.graphics .. "technology/nauvis.png"),
|
||||
icon_size = 256,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-space-location",
|
||||
space_location = "nauvis",
|
||||
use_icon_overlay_constant = true
|
||||
},
|
||||
{
|
||||
type = "unlock-space-platforms",
|
||||
modifier = true,
|
||||
hidden = true
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "unlock-space-platforms",
|
||||
modifier = true,
|
||||
hidden = true
|
||||
prerequisites = { "provisional-rocketry" },
|
||||
unit = {
|
||||
count = 100,
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 },
|
||||
{ "steam-science-pack", 1 }
|
||||
},
|
||||
time = 30
|
||||
}
|
||||
},
|
||||
prerequisites = { "provisional-rocketry" },
|
||||
unit = {
|
||||
count = 100,
|
||||
ingredients = {
|
||||
{ "wood-science-pack", 1 },
|
||||
{ "steam-science-pack", 1 }
|
||||
{
|
||||
type = "technology",
|
||||
name = "iron-processing",
|
||||
icon = "__base__/graphics/icons/iron-plate.png",
|
||||
icon_size = 64,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-plate"
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-chest"
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-gear-wheel"
|
||||
}
|
||||
},
|
||||
time = 30
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "technology",
|
||||
name = "iron-processing",
|
||||
icon = "__base__/graphics/icons/iron-plate.png",
|
||||
icon_size = 64,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-plate"
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-chest"
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "iron-gear-wheel"
|
||||
prerequisites = { "planet-discovery-nauvis" },
|
||||
research_trigger = {
|
||||
type = "mine-entity",
|
||||
entity = "iron-ore"
|
||||
}
|
||||
},
|
||||
prerequisites = { "planet-discovery-nauvis" },
|
||||
research_trigger = {
|
||||
type = "mine-entity",
|
||||
entity = "iron-ore"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "technology",
|
||||
name = "copper-processing",
|
||||
icon = "__base__/graphics/icons/copper-plate.png",
|
||||
icon_size = 64,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "copper-plate"
|
||||
{
|
||||
type = "technology",
|
||||
name = "copper-processing",
|
||||
icon = "__base__/graphics/icons/copper-plate.png",
|
||||
icon_size = 64,
|
||||
essential = true,
|
||||
effects = {
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "copper-plate"
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "copper-cable"
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "unlock-recipe",
|
||||
recipe = "copper-cable"
|
||||
prerequisites = { "planet-discovery-nauvis" },
|
||||
research_trigger = {
|
||||
type = "mine-entity",
|
||||
entity = "copper-ore"
|
||||
}
|
||||
},
|
||||
prerequisites = { "planet-discovery-nauvis" },
|
||||
research_trigger = {
|
||||
type = "mine-entity",
|
||||
entity = "copper-ore"
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
end
|
||||
|
|
|
@ -144,7 +144,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "wood-lab",
|
||||
category = "wood-processing-or-assembling",
|
||||
energy_required = 2,
|
||||
ingredients = {
|
||||
{ type = "item", name = "lumber", amount = 10 },
|
||||
|
|
|
@ -10,13 +10,13 @@ Belt.EntityBuilder:new()
|
|||
:animationSpeedMultiplier(1.01)
|
||||
:apply({
|
||||
transportBelt = {
|
||||
emissions_per_second = { noise = 0.04 }
|
||||
emissions_per_second = { noise = 0.05 }
|
||||
},
|
||||
undergroundBelt = {
|
||||
emissions_per_second = { noise = 0.25 }
|
||||
emissions_per_second = { noise = 0.5 }
|
||||
},
|
||||
splitter = {
|
||||
emissions_per_second = { noise = 0.5 }
|
||||
emissions_per_second = { noise = 1 }
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -41,17 +41,7 @@ Belt.RecipeBuilder:new()
|
|||
basic_circuit_board and { type = "item", name = "basic-circuit-board", amount = 5 } or
|
||||
{ type = "item", name = "gold-cable", amount = 10 }
|
||||
})
|
||||
:apply({
|
||||
transportBelt = {
|
||||
category = "wood-processing-or-assembling"
|
||||
},
|
||||
undergroundBelt = {
|
||||
category = "wood-processing-or-assembling"
|
||||
},
|
||||
splitter = {
|
||||
category = "wood-processing-or-assembling"
|
||||
}
|
||||
})
|
||||
:apply()
|
||||
|
||||
Belt.TechnologyBuilder:new()
|
||||
:prerequisites({ "wood-science-pack" })
|
||||
|
@ -75,8 +65,7 @@ if not basic_circuit_board then
|
|||
icons = {
|
||||
{ icon = splitter_item.icon },
|
||||
{ icon = "__base__/graphics/icons/electronic-circuit.png", scale = 0.25, shift = { 8, 8 } }
|
||||
},
|
||||
category = "wood-processing-or-assembling"
|
||||
}
|
||||
}
|
||||
})
|
||||
.splitter
|
||||
|
|
|
@ -81,7 +81,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "wood-darts-magazine",
|
||||
category = "wood-processing-or-assembling",
|
||||
energy_required = 1,
|
||||
ingredients = { { type = "item", name = "wood", amount = 2 } },
|
||||
results = { { type = "item", name = "wood-darts-magazine", amount = 1 } }
|
||||
|
|
|
@ -17,7 +17,6 @@ data:extend({
|
|||
{
|
||||
type = "recipe",
|
||||
name = "wooden-gear-wheel",
|
||||
category = "wood-processing-or-assembling",
|
||||
ingredients = { { type = "item", name = "lumber", amount = 1 } },
|
||||
results = { { type = "item", name = "wooden-gear-wheel", amount = 2 } },
|
||||
allow_productivity = true
|
||||
|
|
|
@ -51,7 +51,7 @@ silo.fluid_boxes_off_when_no_fluid_recipe = true
|
|||
silo.launch_to_space_platforms = false
|
||||
silo.rocket_parts_required = 50
|
||||
silo.rocket_parts_storage_cap = 50
|
||||
silo.to_be_inserted_to_rocket_inventory_size = 0
|
||||
silo.to_be_inserted_to_rocket_inventory_size = 1
|
||||
silo.clamps_on_trigger = {
|
||||
type = "script",
|
||||
effect_id = "provisional-rocket-ready"
|
||||
|
@ -101,8 +101,7 @@ local rocket_part_recipe = {
|
|||
{ type = "fluid", name = "wood-pulp", amount = 5 }
|
||||
},
|
||||
results = { { type = "item", name = "rocket-part", amount = 1 } },
|
||||
allow_productivity = true,
|
||||
auto_recycle = false,
|
||||
allow_productivity = true
|
||||
}
|
||||
|
||||
local silo_ready = {
|
||||
|
@ -122,7 +121,7 @@ local silo_ready = {
|
|||
min = 1
|
||||
}
|
||||
},
|
||||
flags = { "not-on-map", "not-blueprintable", "not-flammable", "not-repairable", "not-upgradable", "no-automated-item-insertion", "no-automated-item-removal", "not-in-kill-statistics" },
|
||||
flags = { "not-on-map", "not-blueprintable", "not-deconstructable", "not-flammable", "not-repairable", "not-upgradable", "no-automated-item-insertion", "no-automated-item-removal", "not-in-kill-statistics" },
|
||||
allow_copy_paste = false,
|
||||
additional_pastable_entities = { "provisional-rocket-silo" },
|
||||
collision_mask = { layers = {} },
|
||||
|
@ -145,7 +144,3 @@ data:extend({
|
|||
silo_ready,
|
||||
silo_ready_item
|
||||
})
|
||||
|
||||
PlanetsLib.restrict_to_planet(silo, "lignumis")
|
||||
PlanetsLib.restrict_to_planet(silo_recipe, "lignumis")
|
||||
PlanetsLib.restrict_to_planet(rocket_part_recipe, "lignumis")
|
|
@ -1,4 +1,6 @@
|
|||
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"
|
||||
|
||||
-- https://mods.factorio.com/mod/Wood-Walls/discussion/679915cbb8bf3c84c65db404
|
||||
data.raw.corpse["woodenwall-remnants"].icon = "__Wood-Walls__/graphics/wooden-wall/wooden-wall.png"
|
|
@ -20,7 +20,6 @@ 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.ingredients = {
|
||||
{ type = "item", name = "stone-furnace", amount = 1 },
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = basic_circuit_board and 2 or 3 },
|
||||
|
@ -41,14 +40,10 @@ burner_inserter.energy_source.initial_fuel_percent = 0.15
|
|||
|
||||
data.raw.item["burner-inserter"].icon = Lignumis.graphics .. "icons/burner-inserter.png"
|
||||
|
||||
local burner_inserter_recipe = data.raw.recipe["burner-inserter"]
|
||||
burner_inserter_recipe.ingredients = {
|
||||
data.raw.recipe["burner-inserter"].ingredients = {
|
||||
{ type = "item", name = "wooden-gear-wheel", amount = 1 },
|
||||
{ type = "item", name = "lumber", amount = 1 }
|
||||
}
|
||||
if settings.startup["lignumis-lumber-mill-more-recipes"].value then
|
||||
burner_inserter_recipe.category = "wood-processing-or-assembling"
|
||||
end
|
||||
|
||||
|
||||
-- Stone furnace
|
||||
|
@ -64,7 +59,14 @@ stone_furnace_remnants.animation[1].filename = Lignumis.graphics .. "entity/ston
|
|||
|
||||
-- Lab
|
||||
|
||||
Recipe:new("lab"):replaceIngredient("transport-belt", "wood-transport-belt")
|
||||
if settings.startup["lignumis-belt-progression"].value then
|
||||
local lab_recipe = data.raw.recipe["lab"]
|
||||
for _, ingredient in pairs(lab_recipe.ingredients) do
|
||||
if ingredient.name == "transport-belt" then
|
||||
ingredient.name = "wood-transport-belt"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Gun turret
|
||||
|
@ -102,7 +104,6 @@ for _, tree in pairs(data.raw.tree) do
|
|||
local woodResult = { type = "item", name = "wood", amount = nil, amount_min = 2, amount_max = 10 }
|
||||
if minable.results and #woodResults > 0 then
|
||||
table.assign(woodResults[1], woodResult)
|
||||
woodResults[1].amount = nil
|
||||
else
|
||||
minable.results = { woodResult }
|
||||
end
|
||||
|
@ -128,12 +129,14 @@ table.insert(data.raw["assembling-machine"]["assembling-machine-3"].crafting_cat
|
|||
|
||||
-- Disable vanilla early game recipes
|
||||
|
||||
data.raw.recipe["iron-plate"].enabled = false
|
||||
data.raw.recipe["iron-gear-wheel"].enabled = false
|
||||
data.raw.recipe["iron-chest"].enabled = false
|
||||
data.raw.recipe["copper-plate"].enabled = false
|
||||
data.raw.recipe["copper-cable"].enabled = false
|
||||
data.raw.recipe["transport-belt"].enabled = false
|
||||
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||
data.raw.recipe["iron-plate"].enabled = false
|
||||
data.raw.recipe["iron-gear-wheel"].enabled = false
|
||||
data.raw.recipe["iron-chest"].enabled = false
|
||||
data.raw.recipe["copper-plate"].enabled = false
|
||||
data.raw.recipe["copper-cable"].enabled = false
|
||||
data.raw.recipe["transport-belt"].enabled = false
|
||||
end
|
||||
|
||||
|
||||
-- Progressive recipes
|
||||
|
@ -145,151 +148,152 @@ if settings.startup["lignumis-belt-progression"].value then
|
|||
end
|
||||
|
||||
if settings.startup["lignumis-inserter-progression"].value then
|
||||
Recipe:new("inserter"):addIngredient("burner-inserter", 1)
|
||||
end
|
||||
|
||||
if settings.startup["lignumis-assembler-progression"].value then
|
||||
Recipe:new("assembling-machine-1"):addIngredient("burner-assembling-machine", 1)
|
||||
table.insert(
|
||||
data.raw.recipe["inserter"].ingredients,
|
||||
{ type = "item", name = "burner-inserter", amount = 1 }
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
-- Adjust vanilla technologies
|
||||
|
||||
local automation_science_pack_technology = data.raw.technology["automation-science-pack"]
|
||||
automation_science_pack_technology.enabled = false
|
||||
automation_science_pack_technology.visible_when_disabled = true
|
||||
automation_science_pack_technology.research_trigger = nil
|
||||
automation_science_pack_technology.unit = {
|
||||
count = 1,
|
||||
ingredients = {},
|
||||
time = 1
|
||||
}
|
||||
if not mods["planet-picker"] and not mods["any-planet-start"] then
|
||||
local automation_science_pack_technology = data.raw.technology["automation-science-pack"]
|
||||
automation_science_pack_technology.enabled = false
|
||||
automation_science_pack_technology.visible_when_disabled = true
|
||||
automation_science_pack_technology.research_trigger = nil
|
||||
automation_science_pack_technology.unit = {
|
||||
count = 1,
|
||||
ingredients = {},
|
||||
time = 1
|
||||
}
|
||||
|
||||
if not mods["aai-industry"] then
|
||||
local electronics_technology = data.raw.technology["electronics"]
|
||||
electronics_technology.prerequisites = { "copper-processing" }
|
||||
if not mods["aai-industry"] then
|
||||
local electronics_technology = data.raw.technology["electronics"]
|
||||
electronics_technology.prerequisites = { "copper-processing" }
|
||||
|
||||
local steam_power_technology = data.raw.technology["steam-power"]
|
||||
steam_power_technology.prerequisites = { "iron-processing" }
|
||||
end
|
||||
local steam_power_technology = data.raw.technology["steam-power"]
|
||||
steam_power_technology.prerequisites = { "iron-processing" }
|
||||
end
|
||||
|
||||
local automation_technology = data.raw.technology["automation"]
|
||||
automation_technology.ignore_tech_cost_multiplier = false
|
||||
local automation_technology = data.raw.technology["automation"]
|
||||
automation_technology.ignore_tech_cost_multiplier = false
|
||||
|
||||
local logistics_technology = data.raw.technology["logistics"]
|
||||
table.insert(logistics_technology.effects, {
|
||||
type = "unlock-recipe",
|
||||
recipe = "transport-belt"
|
||||
})
|
||||
local logistics_technology = data.raw.technology["logistics"]
|
||||
table.insert(logistics_technology.effects, {
|
||||
type = "unlock-recipe",
|
||||
recipe = "transport-belt"
|
||||
})
|
||||
|
||||
local landfill_technology = data.raw.technology["landfill"]
|
||||
landfill_technology.prerequisites = { "burner-automation" }
|
||||
landfill_technology.unit = {
|
||||
count = 50,
|
||||
ingredients = { { "wood-science-pack", 1 } },
|
||||
time = 15
|
||||
}
|
||||
local landfill_technology = data.raw.technology["landfill"]
|
||||
landfill_technology.prerequisites = { "burner-automation" }
|
||||
landfill_technology.unit = {
|
||||
count = 50,
|
||||
ingredients = { { "wood-science-pack", 1 } },
|
||||
time = 15
|
||||
}
|
||||
|
||||
local robots_speed_technology_1 = data.raw.technology["worker-robots-speed-1"]
|
||||
robots_speed_technology_1.prerequisites = { "provisional-rocketry", "basic-construction-robotics-gold" }
|
||||
robots_speed_technology_1.unit = {
|
||||
count = 100,
|
||||
ingredients = { { "wood-science-pack", 1 }, { "steam-science-pack", 1 } },
|
||||
time = 15
|
||||
}
|
||||
local robots_speed_technology_1 = data.raw.technology["worker-robots-speed-1"]
|
||||
robots_speed_technology_1.prerequisites = { "provisional-rocketry", "basic-construction-robotics-gold" }
|
||||
robots_speed_technology_1.unit = {
|
||||
count = 100,
|
||||
ingredients = { { "wood-science-pack", 1 }, { "steam-science-pack", 1 } },
|
||||
time = 15
|
||||
}
|
||||
|
||||
local robots_speed_technology_2 = data.raw.technology["worker-robots-speed-2"]
|
||||
robots_speed_technology_2.prerequisites = {
|
||||
"worker-robots-speed-1",
|
||||
"logistic-science-pack"
|
||||
}
|
||||
robots_speed_technology_2.unit = {
|
||||
count = 100,
|
||||
ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 } },
|
||||
time = 30
|
||||
}
|
||||
local robots_speed_technology_2 = data.raw.technology["worker-robots-speed-2"]
|
||||
robots_speed_technology_2.prerequisites = {
|
||||
"worker-robots-speed-1",
|
||||
"logistic-science-pack"
|
||||
}
|
||||
robots_speed_technology_2.unit = {
|
||||
count = 100,
|
||||
ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 } },
|
||||
time = 30
|
||||
}
|
||||
|
||||
local robots_speed_technology_3 = data.raw.technology["worker-robots-speed-3"]
|
||||
robots_speed_technology_3.prerequisites = { "robotics", "chemical-science-pack" }
|
||||
robots_speed_technology_3.unit = {
|
||||
count = 150,
|
||||
ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 }, { "chemical-science-pack", 1 } },
|
||||
time = 30
|
||||
}
|
||||
local robots_speed_technology_3 = data.raw.technology["worker-robots-speed-3"]
|
||||
robots_speed_technology_3.prerequisites = { "robotics", "chemical-science-pack" }
|
||||
robots_speed_technology_3.unit = {
|
||||
count = 150,
|
||||
ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 }, { "chemical-science-pack", 1 } },
|
||||
time = 30
|
||||
}
|
||||
|
||||
local robots_speed_technology_4 = data.raw.technology["worker-robots-speed-4"]
|
||||
robots_speed_technology_4.prerequisites = { "worker-robots-speed-3", "utility-science-pack" }
|
||||
robots_speed_technology_4.unit.ingredients = {
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
}
|
||||
local robots_speed_technology_4 = data.raw.technology["worker-robots-speed-4"]
|
||||
robots_speed_technology_4.prerequisites = { "worker-robots-speed-3", "utility-science-pack" }
|
||||
robots_speed_technology_4.unit.ingredients = {
|
||||
{ "automation-science-pack", 1 },
|
||||
{ "logistic-science-pack", 1 },
|
||||
{ "chemical-science-pack", 1 },
|
||||
{ "utility-science-pack", 1 }
|
||||
}
|
||||
|
||||
local physical_damage_technology_1 = data.raw.technology["physical-projectile-damage-1"]
|
||||
physical_damage_technology_1.prerequisites = { "basic-gun-turret" }
|
||||
physical_damage_technology_1.unit.ingredients = { { "wood-science-pack", 1 } }
|
||||
table.insert(physical_damage_technology_1.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.2
|
||||
})
|
||||
local physical_damage_technology_1 = data.raw.technology["physical-projectile-damage-1"]
|
||||
physical_damage_technology_1.prerequisites = { "basic-gun-turret" }
|
||||
physical_damage_technology_1.unit.ingredients = { { "wood-science-pack", 1 } }
|
||||
table.insert(physical_damage_technology_1.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.2
|
||||
})
|
||||
|
||||
local weapon_speed_technology_1 = data.raw.technology["weapon-shooting-speed-1"]
|
||||
weapon_speed_technology_1.prerequisites = table.deepcopy(physical_damage_technology_1.prerequisites)
|
||||
weapon_speed_technology_1.unit.ingredients = table.deepcopy(physical_damage_technology_1.unit.ingredients)
|
||||
local weapon_speed_technology_1 = data.raw.technology["weapon-shooting-speed-1"]
|
||||
weapon_speed_technology_1.prerequisites = table.deepcopy(physical_damage_technology_1.prerequisites)
|
||||
weapon_speed_technology_1.unit.ingredients = table.deepcopy(physical_damage_technology_1.unit.ingredients)
|
||||
|
||||
local physical_damage_technology_2 = data.raw.technology["physical-projectile-damage-2"]
|
||||
physical_damage_technology_2.prerequisites = { "physical-projectile-damage-1", "steam-science-pack" }
|
||||
physical_damage_technology_2.unit.ingredients = { { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }
|
||||
table.insert(physical_damage_technology_2.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.2
|
||||
})
|
||||
local physical_damage_technology_2 = data.raw.technology["physical-projectile-damage-2"]
|
||||
physical_damage_technology_2.prerequisites = { "physical-projectile-damage-1", "steam-science-pack" }
|
||||
physical_damage_technology_2.unit.ingredients = { { "wood-science-pack", 1 }, { "steam-science-pack", 1 } }
|
||||
table.insert(physical_damage_technology_2.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.2
|
||||
})
|
||||
|
||||
local weapon_speed_technology_2 = data.raw.technology["weapon-shooting-speed-2"]
|
||||
weapon_speed_technology_2.prerequisites = { "weapon-shooting-speed-1", "steam-science-pack" }
|
||||
weapon_speed_technology_2.unit.ingredients = table.deepcopy(physical_damage_technology_2.unit.ingredients)
|
||||
local weapon_speed_technology_2 = data.raw.technology["weapon-shooting-speed-2"]
|
||||
weapon_speed_technology_2.prerequisites = { "weapon-shooting-speed-1", "steam-science-pack" }
|
||||
weapon_speed_technology_2.unit.ingredients = table.deepcopy(physical_damage_technology_2.unit.ingredients)
|
||||
|
||||
local physical_damage_technology_3 = data.raw.technology["physical-projectile-damage-3"]
|
||||
physical_damage_technology_3.prerequisites = { "military-2", "logistic-science-pack" }
|
||||
physical_damage_technology_3.unit.ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 } }
|
||||
physical_damage_technology_3.upgrade = false
|
||||
table.insert(physical_damage_technology_3.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.3
|
||||
})
|
||||
local physical_damage_technology_3 = data.raw.technology["physical-projectile-damage-3"]
|
||||
physical_damage_technology_3.prerequisites = { "military-2", "logistic-science-pack" }
|
||||
physical_damage_technology_3.unit.ingredients = { { "automation-science-pack", 1 }, { "logistic-science-pack", 1 } }
|
||||
physical_damage_technology_3.upgrade = false
|
||||
table.insert(physical_damage_technology_3.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.3
|
||||
})
|
||||
|
||||
local weapon_speed_technology_3 = data.raw.technology["weapon-shooting-speed-3"]
|
||||
weapon_speed_technology_3.prerequisites = { "military-2", "logistic-science-pack" }
|
||||
weapon_speed_technology_3.unit.ingredients = table.deepcopy(physical_damage_technology_3.unit.ingredients)
|
||||
weapon_speed_technology_3.upgrade = false
|
||||
local weapon_speed_technology_3 = data.raw.technology["weapon-shooting-speed-3"]
|
||||
weapon_speed_technology_3.prerequisites = { "military-2", "logistic-science-pack" }
|
||||
weapon_speed_technology_3.unit.ingredients = table.deepcopy(physical_damage_technology_3.unit.ingredients)
|
||||
weapon_speed_technology_3.upgrade = false
|
||||
|
||||
local physical_damage_technology_4 = data.raw.technology["physical-projectile-damage-4"]
|
||||
physical_damage_technology_4.prerequisites = { "physical-projectile-damage-3", "military-science-pack" }
|
||||
table.insert(physical_damage_technology_4.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.3
|
||||
})
|
||||
local physical_damage_technology_4 = data.raw.technology["physical-projectile-damage-4"]
|
||||
physical_damage_technology_4.prerequisites = { "physical-projectile-damage-3", "military-science-pack" }
|
||||
table.insert(physical_damage_technology_4.effects, {
|
||||
type = "turret-attack",
|
||||
turret_id = "basic-gun-turret",
|
||||
modifier = 0.3
|
||||
})
|
||||
|
||||
local weapon_speed_technology_4 = data.raw.technology["weapon-shooting-speed-4"]
|
||||
weapon_speed_technology_4.prerequisites = { "weapon-shooting-speed-3", "military-science-pack" }
|
||||
local weapon_speed_technology_4 = data.raw.technology["weapon-shooting-speed-4"]
|
||||
weapon_speed_technology_4.prerequisites = { "weapon-shooting-speed-3", "military-science-pack" }
|
||||
|
||||
local production_science_pack_technology = Technology:new("production-science-pack")
|
||||
production_science_pack_technology:replacePrerequisite("advanced-material-processing-2", "space-platform-thruster")
|
||||
production_science_pack_technology:addIngredients({ "space-science-pack" })
|
||||
if settings.startup["lignumis-technology-progression"].value then
|
||||
production_science_pack_technology:addIngredients({ "wood-science-pack", "steam-science-pack" })
|
||||
end
|
||||
local production_science_pack_technology = Technology:new("production-science-pack")
|
||||
production_science_pack_technology:replacePrerequisite("advanced-material-processing-2", "space-platform-thruster")
|
||||
production_science_pack_technology:addIngredients({ "space-science-pack" })
|
||||
if settings.startup["lignumis-technology-progression"].value then
|
||||
production_science_pack_technology:addIngredients({ "wood-science-pack", "steam-science-pack" })
|
||||
end
|
||||
|
||||
local utility_science_pack_technology = Technology:new("utility-science-pack")
|
||||
utility_science_pack_technology:setPrerequisites({ "space-platform-thruster" })
|
||||
utility_science_pack_technology:addIngredients({ "space-science-pack" })
|
||||
if settings.startup["lignumis-technology-progression"].value then
|
||||
utility_science_pack_technology:addIngredients({ "wood-science-pack", "steam-science-pack" })
|
||||
local utility_science_pack_technology = Technology:new("utility-science-pack")
|
||||
utility_science_pack_technology:setPrerequisites({ "space-platform-thruster" })
|
||||
utility_science_pack_technology:addIngredients({ "space-science-pack" })
|
||||
if settings.startup["lignumis-technology-progression"].value then
|
||||
utility_science_pack_technology:addIngredients({ "wood-science-pack", "steam-science-pack" })
|
||||
end
|
||||
end
|
||||
|
||||
if not mods["planet-muluna"] then -- Muluna does the same
|
||||
|
@ -313,17 +317,3 @@ data.raw["equipment-grid"]["medium-equipment-grid"].height = 8
|
|||
local nauvis = data.raw.planet["nauvis"]
|
||||
nauvis.flags = nauvis.flags or {}
|
||||
table.insert(nauvis.flags, "always-show")
|
||||
|
||||
|
||||
-- Fulgora changes
|
||||
|
||||
if settings.startup["lignumis-fulgora-wood"].value then
|
||||
local recycling = data.raw.recipe["scrap-recycling"]
|
||||
table.insert(recycling.results, { type = "item", name = "wooden-gear-wheel", amount = 1, probability = 0.2 })
|
||||
local recycling_result_count = table.count(recycling.results)
|
||||
|
||||
local recycler = data.raw.furnace["recycler"]
|
||||
if recycler.result_inventory_size < recycling_result_count then
|
||||
recycler.result_inventory_size = recycling_result_count
|
||||
end
|
||||
end
|
|
@ -6,12 +6,6 @@ local InitExisting = {}
|
|||
InitExisting.on_init = function()
|
||||
if game.tick == 0 then return end
|
||||
|
||||
storage.target_planet = settings.startup["lignumis-second-planet"].value or "nauvis"
|
||||
|
||||
if script.active_mods["any-planet-start"] then
|
||||
storage.target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or storage.target_planet
|
||||
end
|
||||
|
||||
storage.init = {}
|
||||
for _, player in pairs(game.players) do
|
||||
storage.init[player.index] = true
|
||||
|
@ -21,11 +15,11 @@ InitExisting.on_init = function()
|
|||
end
|
||||
|
||||
for _, force in pairs(game.forces) do
|
||||
force.technologies["iron-processing"].researched = true
|
||||
force.technologies["copper-processing"].researched = true
|
||||
if force.is_space_location_unlocked("nauvis") then
|
||||
force.technologies["planet-discovery-nauvis"].researched = true
|
||||
end
|
||||
force.technologies["iron-processing"].researched = true
|
||||
force.technologies["copper-processing"].researched = true
|
||||
end
|
||||
|
||||
game.print { "", { "lignumis.start-new-game" } }
|
||||
|
|
|
@ -33,7 +33,7 @@ end
|
|||
local function init_space_locations()
|
||||
local force = game.forces.player
|
||||
force.technologies["planet-discovery-lignumis"].researched = true
|
||||
if game.planets["nauvis"] and force.technologies["planet-discovery-nauvis"] and not force.technologies["planet-discovery-nauvis"].researched then
|
||||
if not force.technologies["planet-discovery-nauvis"].researched then
|
||||
force.lock_space_location("nauvis")
|
||||
end
|
||||
end
|
||||
|
@ -62,13 +62,7 @@ end
|
|||
|
||||
InitNew.on_init = function()
|
||||
if game.tick > 0 then return end
|
||||
|
||||
storage.target_planet = settings.startup["lignumis-second-planet"].value or "nauvis"
|
||||
|
||||
if script.active_mods["any-planet-start"] then
|
||||
storage.target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or storage.target_planet
|
||||
remote.call("APS", "override_planet", "lignumis")
|
||||
end
|
||||
if script.active_mods["planet-picker"] or script.active_mods["any-planet-start"] then return end
|
||||
|
||||
init_intro()
|
||||
init_space_locations()
|
||||
|
|
|
@ -7,15 +7,27 @@ local Init = {
|
|||
events = {}
|
||||
}
|
||||
|
||||
|
||||
-- Migrate storage init as it was just a boolean before not supporting multiple players
|
||||
local function migrate_0_9_6(event)
|
||||
if storage.init and type(storage.init) == "boolean" then
|
||||
storage.init = {
|
||||
[event.player_index] = true
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Initialize the player
|
||||
-- Teleport to Lignumis and give some starting items
|
||||
local function init_player(event)
|
||||
local player = game.get_player(event.player_index)
|
||||
|
||||
if not player.character then return end
|
||||
|
||||
local surface = storage.surface or game.planets["lignumis"].surface
|
||||
|
||||
if not player.character or not surface then return end
|
||||
|
||||
player.teleport(surface.find_non_colliding_position("character", { 0, 0 }, 0, 1), "lignumis")
|
||||
player.character.destructible = false
|
||||
local main_inventory = player.character.get_main_inventory()
|
||||
|
||||
-- Add some starting items to player inventory
|
||||
|
@ -25,6 +37,7 @@ end
|
|||
|
||||
-- Initialize the freeplay scenario
|
||||
local function init_freeplay(event)
|
||||
if script.active_mods["planet-picker"] or script.active_mods["any-planet-start"] then return end
|
||||
if storage.crashed_ship_lignumis then return end
|
||||
|
||||
local player = game.get_player(event.player_index)
|
||||
|
@ -61,20 +74,14 @@ end
|
|||
|
||||
|
||||
Init.events[defines.events.on_player_created] = function(event)
|
||||
migrate_0_9_6(event)
|
||||
storage.init = storage.init or {}
|
||||
|
||||
if storage.init[event.player_index] then return end
|
||||
|
||||
storage.init[event.player_index] = true
|
||||
|
||||
if script.active_mods["alien-biomes"] then
|
||||
game.print("While Alien Biomes is playable with Lignumis, it is not recommended as it prevents trees from being generated on Lignumis.")
|
||||
end
|
||||
|
||||
if not script.active_mods["any-planet-start"] then
|
||||
init_player(event)
|
||||
init_freeplay(event)
|
||||
end
|
||||
init_player(event)
|
||||
init_freeplay(event)
|
||||
end
|
||||
|
||||
|
||||
|
@ -84,7 +91,7 @@ Init.events[defines.events.on_player_changed_surface] = function(event)
|
|||
|
||||
if player.controller_type ~= defines.controllers.character then return end
|
||||
|
||||
if player and player.surface.name == storage.target_planet then
|
||||
if player and player.surface.name == "nauvis" then
|
||||
storage.nauvis_visited = true
|
||||
end
|
||||
|
||||
|
@ -138,15 +145,10 @@ Init.events[defines.events.on_cutscene_cancelled] = function(event)
|
|||
if player.gui.screen.skip_cutscene_label then
|
||||
player.gui.screen.skip_cutscene_label.destroy()
|
||||
end
|
||||
if player.character then
|
||||
player.character.destructible = true
|
||||
end
|
||||
player.zoom = 1.5
|
||||
end
|
||||
|
||||
Init.on_configuration_changed = function()
|
||||
storage.target_planet = settings.startup["lignumis-second-planet"].value or "nauvis"
|
||||
|
||||
if script.active_mods["any-planet-start"] then
|
||||
storage.target_planet = settings.startup["aps-planet"].value ~= "none" and settings.startup["aps-planet"].value or storage.target_planet
|
||||
end
|
||||
end
|
||||
|
||||
return Init
|
||||
|
|
|
@ -6,6 +6,7 @@ local ToNauvis = {
|
|||
events = {}
|
||||
}
|
||||
|
||||
|
||||
-- Chart the starting area for the player
|
||||
local function chart_starting_area(surface, player)
|
||||
local r = 200
|
||||
|
@ -18,7 +19,7 @@ end
|
|||
-- Initialize Nauvis
|
||||
local function init_nauvis()
|
||||
if storage.nauvis_visited then return end
|
||||
local nauvis = game.planets[storage.target_planet].create_surface()
|
||||
local nauvis = game.planets["nauvis"].create_surface()
|
||||
nauvis.request_to_generate_chunks({ 0, 0 }, 3)
|
||||
nauvis.force_generate_chunk_requests()
|
||||
nauvis.daytime = 0.7
|
||||
|
@ -27,11 +28,12 @@ end
|
|||
|
||||
-- Teleport player to Nauvis and show welcome message
|
||||
local function teleport_player(player)
|
||||
local nauvis = game.planets[storage.target_planet].surface
|
||||
local nauvis = game.planets["nauvis"].surface
|
||||
if player.surface.name == "lignumis" then
|
||||
local position = nauvis.find_non_colliding_position("character", { 0, 0 }, 100, 1) or { 0, 0 }
|
||||
player.teleport(position, storage.target_planet)
|
||||
player.teleport(position, "nauvis")
|
||||
chart_starting_area(nauvis, player)
|
||||
player.print("Oh no, not again. But... Welcome to Nauvis!")
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -42,7 +44,7 @@ local function init_freeplay()
|
|||
if not remote.interfaces.freeplay then return end
|
||||
|
||||
storage.crashed_ship_nauvis = true
|
||||
local nauvis = game.planets[storage.target_planet].surface
|
||||
local nauvis = game.planets["nauvis"].surface
|
||||
local ship_items = {
|
||||
["burner-mining-drill"] = 2,
|
||||
["stone-furnace"] = 2,
|
||||
|
|
|
@ -12,17 +12,16 @@ local function build_gui(player, rocket_silo)
|
|||
position = defines.relative_gui_position.right
|
||||
}
|
||||
|
||||
local target_planet_name = { "space-location-name." .. storage.target_planet }
|
||||
local launch_button = { type = "button", name = "provisional-rocket-silo-launch-button", caption = { "lignumis.provisional-rocket-silo-button", target_planet_name } }
|
||||
local launch_button = { type = "button", name = "provisional-rocket-silo-launch-button", caption = { "lignumis.provisional-rocket-silo-button" } }
|
||||
|
||||
local inventory = player.get_main_inventory()
|
||||
local is_inventory_empty = inventory.is_empty()
|
||||
local is_nauvis_researched = player.force.technologies["planet-discovery-" .. storage.target_planet].researched
|
||||
local is_nauvis_researched = player.force.technologies["planet-discovery-nauvis"].researched
|
||||
launch_button.enabled = is_inventory_empty and is_nauvis_researched
|
||||
if not is_inventory_empty then
|
||||
launch_button.tooltip = { "lignumis.provisional-rocket-silo-button-tooltip-inventory" }
|
||||
elseif not is_nauvis_researched then
|
||||
launch_button.tooltip = { "lignumis.provisional-rocket-silo-button-tooltip-target" }
|
||||
launch_button.tooltip = { "lignumis.provisional-rocket-silo-button-tooltip-nauvis" }
|
||||
end
|
||||
|
||||
|
||||
|
@ -36,7 +35,7 @@ local function build_gui(player, rocket_silo)
|
|||
direction = "vertical",
|
||||
anchor = anchor,
|
||||
children = {
|
||||
{ type = "label", style = "frame_title", caption = { "lignumis.provisional-rocket-silo-button", target_planet_name }, ignored_by_interaction = true },
|
||||
{ type = "label", style = "frame_title", caption = { "lignumis.provisional-rocket-silo-button" }, ignored_by_interaction = true },
|
||||
{
|
||||
type = "frame",
|
||||
direction = "vertical",
|
||||
|
@ -47,7 +46,7 @@ local function build_gui(player, rocket_silo)
|
|||
direction = "vertical",
|
||||
style = "inset_frame_container_vertical_flow",
|
||||
children = {
|
||||
{ type = "label", caption = { "lignumis.provisional-rocket-silo-description", target_planet_name } },
|
||||
{ type = "label", caption = { "lignumis.provisional-rocket-silo-description" } },
|
||||
launch_button
|
||||
}
|
||||
}
|
||||
|
@ -65,13 +64,12 @@ local function on_gui_opened(event)
|
|||
if not entity or not entity.valid then return end
|
||||
if entity.name ~= "provisional-rocket-silo-ready" then return end
|
||||
local player = game.get_player(event.player_index)
|
||||
if player.controller_type ~= defines.controllers.character then return end
|
||||
|
||||
if player.gui.relative["provisional-rocket-silo-relative-frame"] then
|
||||
player.gui.relative["provisional-rocket-silo-relative-frame"].destroy()
|
||||
end
|
||||
|
||||
if player.controller_type ~= defines.controllers.character then return end
|
||||
|
||||
build_gui(player, entity)
|
||||
end
|
||||
|
||||
|
@ -106,9 +104,7 @@ local function on_silo_mined(event)
|
|||
local player = game.get_player(event.player_index)
|
||||
for i, entry in pairs(storage.rocket_silos) do
|
||||
if entry.fake_silo == fake_silo then
|
||||
if entry.real_silo.valid then
|
||||
player.mine_entity(entry.real_silo, true)
|
||||
end
|
||||
player.mine_entity(entry.real_silo, true)
|
||||
table.remove(storage.rocket_silos, i)
|
||||
break
|
||||
end
|
||||
|
|
|
@ -31,7 +31,7 @@ data:extend({
|
|||
type = "bool-setting",
|
||||
name = "lignumis-basic-circuit-board",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
default_value = false,
|
||||
order = "e"
|
||||
},
|
||||
{
|
||||
|
@ -40,53 +40,24 @@ data:extend({
|
|||
setting_type = "startup",
|
||||
default_value = false,
|
||||
order = "f"
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "lignumis-assembler-progression",
|
||||
setting_type = "startup",
|
||||
default_value = false,
|
||||
order = "g"
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "lignumis-lumber-mill-more-recipes",
|
||||
setting_type = "startup",
|
||||
default_value = false,
|
||||
order = "h"
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "lignumis-fulgora-wood",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "i"
|
||||
},
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "lignumis-early-robots",
|
||||
setting_type = "startup",
|
||||
default_value = false,
|
||||
order = "j"
|
||||
},
|
||||
{
|
||||
type = "string-setting",
|
||||
name = "lignumis-second-planet",
|
||||
setting_type = "startup",
|
||||
allowed_values = { "nauvis" },
|
||||
default_value = "nauvis",
|
||||
hidden = true
|
||||
}
|
||||
})
|
||||
|
||||
if mods["aai-industry"] then
|
||||
data.raw["bool-setting"]["lignumis-inserter-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-inserter-progression"].hidden = true
|
||||
data.raw["bool-setting"]["lignumis-assembler-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-assembler-progression"].hidden = true
|
||||
end
|
||||
|
||||
if mods["wood-military"] then
|
||||
data.raw["bool-setting"]["lignumis-ammo-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-ammo-progression"].hidden = true
|
||||
end
|
||||
|
||||
if mods["planet-picker"] or mods["any-planet-start"] then
|
||||
data.raw["bool-setting"]["lignumis-belt-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-belt-progression"].hidden = true
|
||||
data.raw["bool-setting"]["lignumis-inserter-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-inserter-progression"].hidden = true
|
||||
data.raw["bool-setting"]["lignumis-ammo-progression"].forced_value = false
|
||||
data.raw["bool-setting"]["lignumis-ammo-progression"].hidden = true
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue