153 lines
7.9 KiB
Lua

--INITIALIZE
angelsmods = angelsmods or {}
angelsmods.refining = angelsmods.refining or {}
angelsmods.refining.disable_ore_override = false
angelsmods.refining.productivity_exception = {}
angelsmods.refining.number_tint = { r = 0.3, g = 1.0, b = 1.0, a = 1 }
angelsmods.refining.ore_tints = {
--taken from the crystal pos 16,19
ore1 = { r = 69 / 255, g = 91 / 255, b = 125 / 255, a = 1 },
ore2 = { r = 166 / 255, g = 165 / 255, b = 46 / 255, a = 1 },
ore3 = { r = 98 / 255, g = 144 / 255, b = 180 / 255, a = 1 },
ore4 = { r = 171 / 255, g = 171 / 255, b = 171 / 255, a = 1 },
ore5 = { r = 120 / 255, g = 39 / 255, b = 37 / 255, a = 1 },
ore6 = { r = 117 / 255, g = 76 / 255, b = 37 / 255, a = 1 },
}
--LOAD FUNCTIONS
angelsmods.functions = angelsmods.functions or {}
angelsmods.functions.store = angelsmods.functions.store or {}
angelsmods.functions.store.update = angelsmods.functions.store.update or {}
angelsmods.functions.store.make = angelsmods.functions.store.make or {}
-- Helper functions
require("prototypes.angels-functions")
--Function set for overrides (items, recipes, techs)
angelsmods.functions.OV = require("prototypes.override-functions")
--Function set to build recipes and normalize them
angelsmods.functions.RB = require("prototypes.recipe-builder")
--Function set to build resources
require("prototypes.generation.resource-builder")
--Functions for tips and tricks
angelsmods.functions.TNT = require("prototypes.tips-and-tricks-functions")
--TRIGGER CHECKS
angelsmods.trigger = angelsmods.trigger or {}
angelsmods.trigger.enable_hq_graphics = mods["reskins-angels"] and true or settings.startup["angels-hq-graphics"].value
local aeab = settings.startup["angels-enable-auto-barreling"].value
angelsmods.trigger.enable_auto_barreling = (aeab == "Enabled+Hidden" or aeab == "Enabled+Shown") and true or false
angelsmods.trigger.enable_hide_barreling = (aeab == "Enabled+Hidden") and true or false
angelsmods.trigger.enable_hide_void = settings.startup["angels-enable-hide-void"].value
angelsmods.trigger.starting_resource_base = settings.startup["angels-starting-resource-base"].value -- Unused so far
angelsmods.trigger.pavement_stack_size = settings.startup["angels-pavement-stack-size"].value -- Stack size for items you can use to pave the world
angelsmods.trigger.washing_tech = angelsmods.trigger.washing_tech or false
angelsmods.trigger.slag = angelsmods.trigger.slag or false
angelsmods.trigger.geode_red = angelsmods.trigger.geode_red or false
angelsmods.trigger.geode_cyan = angelsmods.trigger.geode_cyan or false
angelsmods.trigger.salt_production = angelsmods.trigger.salt_production or false
angelsmods.trigger.salt_consumption = angelsmods.trigger.salt_consumption or false
angelsmods.trigger.water_red_waste = angelsmods.trigger.water_red_waste or false
angelsmods.trigger.water_green_waste = angelsmods.trigger.water_green_waste or false
angelsmods.trigger.water_greenyellow_waste = angelsmods.trigger.water_greenyellow_waste or false
angelsmods.trigger.water_saline = angelsmods.trigger.water_saline
or (mods["bobplates"] and mods["bobrevamp"] and settings.startup["bobmods-revamp-rtg"].value == true and settings.startup["bobmods-revamp-hardmode"].value == true)
or false
angelsmods.trigger.smelting_products = angelsmods.trigger.smelting_products or {}
--REFINERY SORTING TRIGGERS
angelsmods.trigger.ores = angelsmods.trigger.ores or {}
-- angels refining default mode is to be special-vanilla, aka iron and copper only
angelsmods.trigger.ores["iron"] = true
angelsmods.trigger.ores["copper"] = true
angelsmods.trigger.ores["uranium"] = true
-- other (angel)mods have time during the data stage to update the angelsmods.trigger.ore
if mods["bobplates"] then
local ore_exists = angelsmods.functions.ore_exists
--angelsmods.trigger.ores["uranium"] = true
angelsmods.trigger.ores["tin"] = ore_exists("tin-ore")
angelsmods.trigger.ores["lead"] = ore_exists("lead-ore")
angelsmods.trigger.ores["nickel"] = ore_exists("nickel-ore")
angelsmods.trigger.ores["silicon"] = ore_exists("quartz")
angelsmods.trigger.ores["aluminium"] = ore_exists("bauxite-ore")
angelsmods.trigger.ores["cobalt"] = ore_exists("cobalt-ore")
angelsmods.trigger.ores["zinc"] = ore_exists("zinc-ore")
angelsmods.trigger.ores["silver"] = ore_exists("silver-ore")
angelsmods.trigger.ores["titanium"] = ore_exists("rutile-ore")
angelsmods.trigger.ores["gold"] = ore_exists("gold-ore")
angelsmods.trigger.ores["tungsten"] = ore_exists("tungsten-ore")
angelsmods.trigger.ores["thorium"] = angelsmods.trigger.ores["thorium"] or ore_exists("thorium-ore")
--angelsmods.trigger.ores["gem-ore"] = ore_exists("gem-ore")
--angelsmods.trigger.ores["gem-ruby"] = ore_exists("ruby-ore")
--angelsmods.trigger.ores["gem-sapphire"] = ore_exists("sapphire-ore")
--angelsmods.trigger.ores["gem-emerald"] = ore_exists("emerald-ore")
--angelsmods.trigger.ores["gem-amethyst"] = ore_exists("amethyst-ore")
--angelsmods.trigger.ores["gem-topaz"] = ore_exists("topaz-ore")
--angelsmods.trigger.ores["gem-diamond"] = ore_exists("diamond-ore")
angelsmods.trigger.slag = true
bobmods.ores.cobalt.enabled = ore_exists("cobalt-ore")
end
angelsmods.trigger.ores["fluorite"] = angelsmods.trigger.ores["fluorite"] or false -- angels petrochem enables this
angelsmods.trigger.ores["manganese"] = angelsmods.trigger.ores["manganese"] or false -- angels smelting enables this
angelsmods.trigger.ores["chrome"] = angelsmods.trigger.ores["chrome"] or false -- angels smelting enables this
angelsmods.trigger.ores["platinum"] = angelsmods.trigger.ores["platinum"] or false -- angels industries enables this
angelsmods.trigger.ores["thorium"] = angelsmods.trigger.ores["thorium"] or false --angels industries enables this
-- SMELTING TRIGGERS
-- lithium
angelsmods.trigger.smelting_products["lithium"] = angelsmods.trigger.smelting_products["lithium"] or {}
angelsmods.trigger.smelting_products["lithium"].plate = mods["bobplates"] and true or false
-- MARATHON MODE
angelsmods.marathon = angelsmods.marathon or {}
angelsmods.marathon.buildingmulti = settings.startup["angels-marathon-buildingmulti"].value
angelsmods.marathon.buildingtime = settings.startup["angels-marathon-buildingtime"].value
angelsmods.marathon.rawmulti = settings.startup["angels-marathon-rawmulti"].value
angelsmods.marathon.intermediatemulti = settings.startup["angels-marathon-intermediatemulti"].value
--LOAD PROTOTYPES
require("prototypes.refining-category")
require("prototypes.generation.angels-ore")
require("prototypes.generation.bob-ore-update")
require("prototypes.generation.angels-crystal-rock")
require("prototypes.buildings.pipes-overlay")
require("prototypes.buildings.ore-crusher")
require("prototypes.buildings.ore-sorting-facility")
require("prototypes.buildings.ore-floatation-cell")
require("prototypes.buildings.ore-leaching-plant")
require("prototypes.buildings.ore-refinery")
require("prototypes.buildings.powderizer")
require("prototypes.buildings.electro-whinning-cell")
require("prototypes.buildings.crystallizer")
require("prototypes.buildings.filtration-unit")
require("prototypes.buildings.liquifier")
require("prototypes.buildings.thermal-extractor")
require("prototypes.buildings.hydro-plant")
require("prototypes.buildings.ground-water-pump")
require("prototypes.buildings.salination-plant")
require("prototypes.buildings.seafloor-pump")
require("prototypes.buildings.washing-plant")
require("prototypes.buildings.clarifier")
require("prototypes.buildings.barreling-pump")
require("prototypes.items.refining-ores")
require("prototypes.items.refining-items")
require("prototypes.items.water-treatment-items")
require("prototypes.recipes.refining-static")
require("prototypes.recipes.refining-dynamic")
require("prototypes.recipes.refining-entity")
require("prototypes.recipes.water-treatment-recipes")
require("prototypes.technology.refining-technology")
require("prototypes.technology.water-treatment-technology")
require("prototypes.generation.map-gen-presets")
-- EXECUTE FUNCTIONS
angelsmods.functions.make_resource()