forked from cacklingfiend/lignumis
		
	Add mod support for science packs and custom labs
And fix Cerys incompatibility
This commit is contained in:
		
							parent
							
								
									2596434131
								
							
						
					
					
						commit
						ec8fe81d3e
					
				
					 4 changed files with 90 additions and 26 deletions
				
			
		|  | @ -1,10 +1,27 @@ | |||
| Lignumis = { | ||||
|     -- A technology having any of these science packs as ingredient will get wood and steam science packs added | ||||
|     science_pack_whitelist = { "utility-science-pack", "production-science-pack", "space-science-pack" }, | ||||
| 
 | ||||
|     -- A technology is skipped if it has any of these as ingredient | ||||
|     science_pack_blacklist = { | ||||
|         "wood-science-pack", "steam-science-pack", -- Lignumis | ||||
|         "nanite-science-pack", "quantum-science-pack", "ring-science-pack", -- Metal and Stars | ||||
|         "cerys-science-pack" -- Cerys | ||||
|     }, | ||||
| 
 | ||||
|     -- These technologies are skipped even if they are matches according to above lists | ||||
|     science_blacklist = { | ||||
|         "deep-miner", | ||||
|         "logistic-system", | ||||
|         "space-platform-thruster", | ||||
|         "kovarex-enrichment-process", | ||||
|         "astroponics" | ||||
|     }, | ||||
| 
 | ||||
|     -- Add wood and steam science packs to all labs' inputs except these | ||||
|     lab_blacklist = { | ||||
|         "wood-lab", -- Lignumis | ||||
|         "cerys-lab" -- Cerys | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -12,4 +29,4 @@ require("__cf-lib__/util") | |||
| 
 | ||||
| require("prototypes/content/data") | ||||
| require("prototypes/integrations/data") | ||||
| require("prototypes/compatibility/data") | ||||
| require("prototypes/compatibility/data") | ||||
|  | @ -1,14 +1,12 @@ | |||
| -- Add wood and steam science packs as ingredients to technologies that require Nauvis science packs. | ||||
| -- It skips technologies that are available before coming back to Lignumis. | ||||
| 
 | ||||
| for _, technology in pairs(data.raw.technology) do | ||||
|     if technology.unit and technology.unit.ingredients and not table.contains(Lignumis.science_blacklist, technology.name) then | ||||
|         local ingredients = technology.unit.ingredients | ||||
|         local noMatches = table.filter(ingredients, function(ingredient) | ||||
|             return table.contains({ "wood-science-pack", "steam-science-pack", "nanite-science-pack", "quantum-science-pack", "ring-science-pack" }, ingredient[1]) | ||||
|             return table.contains(Lignumis.science_pack_blacklist, ingredient[1]) | ||||
|         end) | ||||
|         local yesMatches = table.filter(ingredients, function(ingredient) | ||||
|             return table.contains({ "utility-science-pack", "production-science-pack", "space-science-pack" }, ingredient[1]) | ||||
|             return table.contains(Lignumis.science_pack_whitelist, ingredient[1]) | ||||
|         end) | ||||
|         if #noMatches == 0 and #yesMatches > 0 then | ||||
|             table.insert(technology.unit.ingredients, { "wood-science-pack", 1 }) | ||||
|  | @ -16,3 +14,14 @@ for _, technology in pairs(data.raw.technology) do | |||
|         end | ||||
|     end | ||||
| end | ||||
| 
 | ||||
| 
 | ||||
| -- Add wood and steam science packs to all labs' inputs | ||||
| for _, lab in pairs(data.raw.lab) do | ||||
|     if lab.inputs and not table.contains(Lignumis.lab_blacklist, lab.name) then | ||||
|         lab.inputs = table.assign({ | ||||
|             "wood-science-pack", | ||||
|             "steam-science-pack" | ||||
|         }, lab.inputs) | ||||
|     end | ||||
| end | ||||
|  | @ -44,18 +44,6 @@ data.raw.recipe["burner-inserter"].ingredients = { | |||
| 
 | ||||
| -- Lab | ||||
| 
 | ||||
| local lab = data.raw["lab"]["lab"] | ||||
| lab.inputs = table.assign({ | ||||
|     "wood-science-pack", | ||||
|     "steam-science-pack" | ||||
| }, lab.inputs) | ||||
| 
 | ||||
| local biolab = data.raw["lab"]["biolab"] | ||||
| biolab.inputs = table.assign({ | ||||
|     "wood-science-pack", | ||||
|     "steam-science-pack" | ||||
| }, biolab.inputs) | ||||
| 
 | ||||
| local lab_recipe = data.raw.recipe["lab"] | ||||
| for _, ingredient in pairs(lab_recipe.ingredients) do | ||||
|     if ingredient.name == "transport-belt" then | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Brodtmann
						Simon Brodtmann