diff --git a/Makefile b/Makefile index 183a338..11be59f 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ copy: link mkdir -p ../$(v) cp -rf * ../$(v) rm -f ../$(v).zip - cd ..; zip -9 -r -y $(v).zip $(v) -x "*.xcf" -x "*.git*" -x "*.bak" + cd ..; zip -9 -r -y $(v).zip $(v) -x "*.xcf" -x "*.git*" -x "*.bak" -x "*.blend*" install: lint-changelog copy cp -f ../$(v).zip ../../mods/ diff --git a/data-util.lua b/data-util.lua index 36b8f84..e6e7451 100644 --- a/data-util.lua +++ b/data-util.lua @@ -1,4 +1,6 @@ --- WARNING - this file will be overwritten, edit bzlib/data-util.lua +-- WARNING WARNING WARNING +-- This file will be overwritten in mod zipfiles, edit bzlib/data-util.lua +-- WARNING WARNING WARNING local me = require("me") local util = {} @@ -32,7 +34,7 @@ end -- Add a prerequisite to a given technology function util.add_prerequisite(technology_name, prerequisite) - technology = data.raw.technology[technology_name] + local technology = data.raw.technology[technology_name] if technology and data.raw.technology[prerequisite] then if technology.prerequisites then table.insert(technology.prerequisites, prerequisite) @@ -44,7 +46,7 @@ end -- Remove a prerequisite from a given technology function util.remove_prerequisite(technology_name, prerequisite) - technology = data.raw.technology[technology_name] + local technology = data.raw.technology[technology_name] local index = -1 if technology and data.raw.technology[prerequisite] then for i, prereq in pairs(technology.prerequisites) do @@ -61,7 +63,7 @@ end -- Add an effect to a given technology function util.add_effect(technology_name, effect) - technology = data.raw.technology[technology_name] + local technology = data.raw.technology[technology_name] if technology then table.insert(technology.effects, effect) end @@ -69,7 +71,7 @@ end -- Set technology ingredients function util.set_tech_recipe(technology_name, ingredients) - technology = data.raw.technology[technology_name] + local technology = data.raw.technology[technology_name] if technology then technology.unit.ingredients = ingredients end @@ -351,4 +353,54 @@ function util.add_crafting_category(entity_type, entity, category) end end +function util.add_to_ingredient(recipe, ingredient, amount) + if data.raw.recipe[recipe] then + add_to_ingredient(data.raw.recipe[recipe], ingredient, amount) + add_to_ingredient(data.raw.recipe[recipe].normal, ingredient, amount) + add_to_ingredient(data.raw.recipe[recipe].expensive, ingredient, amount) + end +end + +function add_to_ingredient(recipe, it, amount) + if recipe ~= nil and recipe.ingredients ~= nil then + for i, ingredient in pairs(recipe.ingredients) do + if ingredient.name == it then + ingredient.amount = ingredient.amount + amount + return + end + if ingredient[1] == it then + ingredient[2] = ingredients[2] + amount + return + end + end + end +end + +function util.add_to_product(recipe, product, amount) + if data.raw.recipe[recipe] then + add_to_product(data.raw.recipe[recipe], product, amount) + add_to_product(data.raw.recipe[recipe].normal, product, amount) + add_to_product(data.raw.recipe[recipe].expensive, product, amount) + end +end + +function add_to_product(recipe, product, amount) + if recipe ~= nil and recipe.results ~= nil then + if recipe.result == product then + recipe.result_count = recipe.result_count + amount + return + end + for i, result in pairs(recipe.results) do + if result.name == product then + result.amount = result.amount + amount + return + end + if result[1] == product then + result[2] = result[2] + amount + return + end + end + end +end + return util