Restructure repository

This commit is contained in:
Simon Brodtmann 2025-10-21 14:44:33 +02:00
parent 86d9d6ea7a
commit 8d7bc775dd
124 changed files with 3 additions and 38 deletions

20
bzzirconium2/LICENSE.md Normal file
View file

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2021 Brevven
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -0,0 +1,150 @@
local futil = require("util")
local util = require("data-util");
local item_sounds = require("__base__.prototypes.item_sounds")
local sounds = require("__base__.prototypes.entity.sounds")
local hit_effects = require("__base__.prototypes.entity.hit-effects")
if mods["space-age"] then
util.add_new_crafting_category("basic-metallurgy")
if util.me.basic_foundry() and not data.raw.item["basic-foundry"] then
local graphics_set = require("__space-age__.prototypes.entity.foundry-pictures").graphics_set
graphics_set.animation.layers[1].tint = {.6, .8, .8}
data:extend({
{
type = "assembling-machine",
name = "basic-foundry",
icons = {{
icon = "__space-age__/graphics/icons/foundry.png",
tint = {.6, .8, .8},
}},
flags = {"placeable-neutral","player-creation"},
minable = {mining_time = 0.2, result = "basic-foundry"},
fast_replaceable_group = "foundry",
max_health = 350,
corpse = "foundry-remnants",
dying_explosion = "foundry-explosion",
-- circuit_wire_max_distance = assembling_machine_circuit_wire_max_distance,
-- circuit_connector = circuit_connector_definitions["foundry"],
collision_box = {{-2.2, -2.2}, {2.2, 2.2}},
selection_box = {{-2.5, -2.5}, {2.5, 2.5}},
heating_energy = "300kW",
damaged_trigger_effect = hit_effects.entity(),
drawing_box_vertical_extension = 1.3,
-- effect_receiver = { base_effect = { productivity = 0.5 }},
-- module_slots = 4,
icon_draw_specification = {scale = 2, shift = {0, -0.3}},
icons_positioning =
{
{inventory_index = defines.inventory.assembling_machine_modules, shift = {0, 1.25}}
},
allowed_effects = {"consumption", "speed", "productivity", "pollution", "quality"},
crafting_categories = {"basic-metallurgy"},
crafting_speed = 4,
energy_source =
{
type = "burner",
fuel_inventory_size = 3,
usage_priority = "secondary-input",
smoke = {
{
name = "smoke",
frequency = 80,
position = {1.5, -2.3},
starting_vertical_speed = 0.1,
starting_frame_deviation = 60,
}
}
},
energy_usage = "5000kW",
perceived_performance = { minimum = 0.25, performance_to_activity_rate = 2.0, maximum = 20 },
graphics_set = graphics_set,
open_sound = sounds.metal_large_open,
close_sound = sounds.metal_large_close,
working_sound =
{
sound =
{
filename = "__space-age__/sound/entity/foundry/foundry.ogg", volume = 0.5
},
--idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.3 },
fade_in_ticks = 4,
fade_out_ticks = 20,
sound_accents =
{
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-pipe-out.ogg", volume = 0.9 }, frame = 2, audible_distance_modifier = 0.4 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-slide-close.ogg", volume = 0.65 }, frame = 18, audible_distance_modifier = 0.3 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-clamp.ogg", volume = 0.45 }, frame = 39, audible_distance_modifier = 0.3 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-slide-stop.ogg", volume = 0.7 }, frame = 43, audible_distance_modifier = 0.4 },
{ sound = { variations = sound_variations("__space-age__/sound/entity/foundry/foundry-fire-whoosh", 3, 0.8 )}, frame = 64, audible_distance_modifier = 0.3 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-metal-clunk.ogg", volume = 0.65 }, frame = 64, audible_distance_modifier = 0.4 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-slide-open.ogg", volume = 0.65 }, frame = 74, audible_distance_modifier = 0.3 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-pipe-in.ogg", volume = 0.75 }, frame = 106, audible_distance_modifier = 0.4 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-smoke-puff.ogg", volume = 0.8 }, frame = 106, audible_distance_modifier = 0.3 },
{ sound = { variations = sound_variations("__space-age__/sound/entity/foundry/foundry-pour", 2, 0.7 )}, frame = 110 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-rocks.ogg", volume = 0.65 }, frame = 120, audible_distance_modifier = 0.3 },
{ sound = { filename = "__space-age__/sound/entity/foundry/foundry-blade.ogg", volume = 0.7 }, frame = 126 },
},
audible_distance_modifier = 0.6,
max_sounds_per_type = 2
},
fluid_boxes_off_when_no_fluid_recipe = true,
water_reflection =
{
pictures = futil.sprite_load("__space-age__/graphics/entity/foundry/foundry-reflection",
{
scale = 5,
shift = {0,2}
}),
rotate = false
}
},
{
type = "item",
name = "basic-foundry",
icons = {{
icon = "__space-age__/graphics/icons/foundry.png",
tint = {.6, .8, .8},
}},
subgroup = "smelting-machine",
order = "d[foundry-basic]",
inventory_move_sound = item_sounds.steam_inventory_move,
pick_sound = item_sounds.steam_inventory_pickup,
drop_sound = item_sounds.steam_inventory_move,
place_result = "basic-foundry",
stack_size = 20,
weight = 500 * kg
},
{
type = "recipe",
name = "basic-foundry",
category = "crafting",
enabled = false,
ingredients =
{
{type = "item", name = "zirconia", amount = 50},
{type = "item", name = "steel-plate", amount = 50},
{type = "item", name = "electronic-circuit", amount = 30},
{type = "item", name = "concrete", amount = 20},
},
energy_required = 10,
results = {{type="item", name="basic-foundry", amount=1}}
},
{
type = "recipe",
name = "steel-basic", -- another steel option
localised_name = {"item-name.steel-plate"},
category = "basic-metallurgy",
order = "a[smelting]-c[steel-plate]-z",
enabled = false,
energy_required = 3.2,
ingredients = {util.item("iron-plate", 3), util.item("coal", 1)},
results = {util.item("steel-plate", 1)},
},
})
util.add_unlock("advanced-material-processing-2", "basic-foundry")
util.add_unlock("advanced-material-processing-2", "steel-basic")
end
util.add_prerequisite("nuclear-power", "advanced-material-processing-2")
util.add_crafting_category("assembling-machine", "foundry", "basic-metallurgy")
end

467
bzzirconium2/changelog.txt Normal file
View file

@ -0,0 +1,467 @@
---------------------------------------------------------------------------------------------------
Version: 2.1.12
Date: 2025-05-04
Changes:
- Support for Krastorio2 spaced out
---------------------------------------------------------------------------------------------------
Version: 2.1.11
Date: 2025-05-04
Fixes:
- Fix issue introduced in 2.1.10 that disabled Zircaloy
---------------------------------------------------------------------------------------------------
Version: 2.1.10
Date: 2025-05-03
Changes:
- Fix load issue with bob's
- K2 updated compatibility, thanks to autechr3 and pla
---------------------------------------------------------------------------------------------------
Version: 2.1.9
Date: 2025-04-20
Changes:
- When Cerys mod is enabled, concrete recycles into (and requires) more zircon
- Any Planet Start on Vulcanus, tweak tech tree a bit.
---------------------------------------------------------------------------------------------------
Version: 2.1.8
Date: 2025-04-08
Changes:
- Space Age: Asteroid crushing recipe now affected by productivity research
---------------------------------------------------------------------------------------------------
Version: 2.1.7
Date: 2025-03-22
Changes:
- Set inventory sounds for some items
- Minor compatibility tweaks
Fixes:
- Loads with Crafting Efficiency mod
- Improved compatibility with muluna
- Other incidental fixes
---------------------------------------------------------------------------------------------------
Version: 2.1.6
Date: 2025-02-20
Fixes:
- Space Age: Disable some recipes until appropriate tech is discovered
- Plutonium Energy MOX fuel cell uses zirconium
---------------------------------------------------------------------------------------------------
Version: 2.1.5
Date: 2025-02-13
Changes:
- Show asteroid crushing recipe in signal GUI
---------------------------------------------------------------------------------------------------
Version: 2.1.4
Date: 2025-02-08
Fixes:
- Fix start of game soft lock with Lignumis mod
---------------------------------------------------------------------------------------------------
Version: 2.1.3
Date: 2025-02-01
Fixes:
- Fix /bz-regenerate command
Changes:
- With Wooden Industry, cermet can be made in kiln
- Other minor compatibility changes
---------------------------------------------------------------------------------------------------
Version: 2.1.2
Date: 2025-01-31
Changes:
- Add shiftite recipe for Janus mod
---------------------------------------------------------------------------------------------------
Version: 2.1.1
Date: 2025-01-25
Fixes:
- Improve compatibility with mods that change armor recipes in certain ways
Changes:
- When byproducts are turned off, don't add extra furnace output
---------------------------------------------------------------------------------------------------
Version: 2.1.0
Date: 2025-01-19
Changes:
- Space Age: Changes to Vulcanus production chains:
Most recipes made from lava now have a byproduct of both stone and zircon. So, recyclers
are no longer required for full automation, but will help with balancing once available.
LDS casting now requires zirconia.
- Space Age & Wooden Industry: With kilns available, basic foundry is disabled by default, but
there's an option to keep it available.
---------------------------------------------------------------------------------------------------
Version: 2.0.3
Date: 2025-01-15
Fixes:
- Space Age: fix recycling
---------------------------------------------------------------------------------------------------
Version: 2.0.2
Date: 2025-01-14
Fixes:
- Working with Asteroid Mining
---------------------------------------------------------------------------------------------------
Version: 2.0.1
Date: 2025-01-14
Fixes:
- Basic foundry supports hot metals
- Prevent a mod load error, improve general mod compatibility
---------------------------------------------------------------------------------------------------
Version: 2.0.0
Date: 2025-01-13
Changes:
- Compatible with 2.0 and Space Age
- New zircon item graphics, improved zircon entity graphics
- Zirconium smelting takes one more step than in 1.1, but has more forgiving ratios.
- Some recipe and tech tree reworks. Cermet no longer used in LDS.
- With Space Age, add an inefficient basic foundry for creating simple alloys on Nauvis. It cannnot craft advanced foundry recipes.
- Alternative production chains on Vulcanus and Gleba. Uses recyclers on Fulgora....
---------------------------------------------------------------------------------------------------
Version: 0.7.3
Date: 2024-02-07
Fixes:
- SE: Attempt a fix for mod load error when used without Tungsten.
---------------------------------------------------------------------------------------------------
Version: 0.7.2
Date: 2023-12-23
Fixes:
- Fix locale string, en
- K2SE matter stabilizer fix
Localization:
- ja updates by Sakuro
---------------------------------------------------------------------------------------------------
Version: 0.7.1
Date: 2023-03-13
Fixes:
- Fix issue with K2 without modded stack sizes
---------------------------------------------------------------------------------------------------
Version: 0.7.0
Date: 2023-03-12
Features:
- BETA: New explosive rounds magazine item, optional. (Damage values may change)
- New setting to disable the need for zircon in the early game.
Changes:
- Trees should spawn less often on ore
---------------------------------------------------------------------------------------------------
Version: 0.6.15
Date: 2023-02-12
Changes:
- Crafting efficiency improvements, thanks to nihilistzsche
---------------------------------------------------------------------------------------------------
Version: 0.6.14
Date: 2023-01-17
Changes:
- Deadlock stacking/crating: zircon moved to tier 1
Features:
- (Beta) Add support for crafting efficiency mod
---------------------------------------------------------------------------------------------------
Version: 0.6.13
Date: 2022-12-24
Fixes:
- Modules for GDIW, etc
Localization:
- de updates thanks to NathanU
- zh updates thanks to sunnytan53
Changes:
- SE ingot in delivery cannon
---------------------------------------------------------------------------------------------------
Version: 0.6.12
Date: 2022-10-11
Fixes:
- Fix asteroid mining
---------------------------------------------------------------------------------------------------
Version: 0.6.11
Date: 2022-08-24
Changes:
- SE: Support for Shivero's nuclear
Localization:
- ja updates by Sakuro
---------------------------------------------------------------------------------------------------
Version: 0.6.10
Date: 2022-08-17
Fixes:
- SE: Disable matter recipes at start
---------------------------------------------------------------------------------------------------
Version: 0.6.9
Date: 2022-08-09
Features:
- Support for SE matter fusion and SE+K2 matter liberation
---------------------------------------------------------------------------------------------------
Version: 0.6.8
Date: 2022-08-02
Changes:
- Asteroid Mining compatibility
Fixes:
- Fix changelog
---------------------------------------------------------------------------------------------------
Version: 0.6.7
Date: 2022-07-11
Changes:
- Atomic Overhaul compatibility
- Double Furnace recipe
Localization:
- ru locale updates thanks to Pergamum663
---------------------------------------------------------------------------------------------------
Version: 0.6.6
Date: 2022-07-08
Fixes:
- Tin: Zircaloy 4 unlocks on zirconia processing in all loadouts.
- Tin: Zircaloy 4 should correctly be made in foundry if enabled.
Localization:
- ja locale updates thanks to Sakuro
Changes:
- Added chat command ZirconiumRecipes to unlock all zirconium recipes.
Use if a recipe does not unlock properly.
---------------------------------------------------------------------------------------------------
Version: 0.6.5
Date: 2022-07-05
Changes:
- With Tin enabled, use Zircaloy-4 in nuclear recipes
- Reduce amount of zirconium needed for explosives
- Some other minor recipe tweaks
---------------------------------------------------------------------------------------------------
Version: 0.6.4
Date: 2022-07-03
Fixes:
- SE: Fix ingot locale string
- SE: Prod modules for molten
Changes:
- SE: Remove byproduct from molten altogether, regardless of setting.
- SE: Ingot time reduced a bit
---------------------------------------------------------------------------------------------------
Version: 0.6.3
Date: 2022-07-02
Fixes:
- More SE subgroup cleanup
- Locale string fix for new setting
---------------------------------------------------------------------------------------------------
Version: 0.6.2
Date: 2022-07-02
Fixes:
- SE K2 subgroup cleanup
Features:
- Setting to turn off byproduct when used with Titanium mod
---------------------------------------------------------------------------------------------------
Version: 0.6.1
Date: 2022-07-02
Changes:
- SE Update smelting unlock
---------------------------------------------------------------------------------------------------
Version: 0.6.0
Date: 2022-07-01
Changes:
- Support for Space Exploration 0.6
---------------------------------------------------------------------------------------------------
Version: 0.5.7
Date: 2022-06-05
Changes:
- K2 & Dectorio: Ploppable rock recipes now require zircon
- Reduced zircon richness around starting area a little bit more, yet again
---------------------------------------------------------------------------------------------------
Version: 0.5.6
Date: 2022-02-22
Localization:
- ko locale, thanks to x2605
- ja locale updates thanks to Sakuro
---------------------------------------------------------------------------------------------------
Version: 0.5.5
Date: 2022-02-02
Changes:
- Zircon/stone sorting is now behind a setting, default off. It is no longer necessary for
original balance purposes. If you use these recipes, update your mod startup settings before
saving your game.
- Huge rocks have a little more zircon, in general.
- Big rocks have a little less zircon, in general
- Reduced zircon richness around starting area a little bit more
Fixes:
- Rocks will have less zircon whenever alien biomes mod is used.
---------------------------------------------------------------------------------------------------
Version: 0.5.4
Date: 2022-01-31
Fixes:
- LDS recipe compatibility fixes
---------------------------------------------------------------------------------------------------
Version: 0.5.3
Date: 2022-01-30
Changes:
- K2: Dirty water filtration quantity
- Cermet requires 2 zirconia (result quantity also increased by 1)
- Minor compatibility tweaks
Fixes:
- Most rocks should now have Zircon in Space Exploration, too
---------------------------------------------------------------------------------------------------
Version: 0.5.2
Date: 2022-01-20
Changes:
- MadClown's vanilla nuclear, Science compatibility
---------------------------------------------------------------------------------------------------
Version: 0.5.1
Date: 2022-01-19
Fixes:
- Fix issue with richness scaling too fast
---------------------------------------------------------------------------------------------------
Version: 0.5.0
Date: 2022-01-15
Changes:
- New default setting for cermet:
Cermet is used in LDS (instead of pure Zirconia). Recipe is balanced
around this. In space exploration, Cermet is also used in Aeroframe Scaffolds.
This may eventually become the only option when cermet is enabled, if
supporting the setting gets too difficult. I will support the setting
for at least a few months.
- New Cermet Graphics
- Cermet tech is available earlier.
- Zircon used instead of iron ore in concrete (use Bypass recipes if you wish)
- Zirconium processing no longer a prerequisite to chemical science
---------------------------------------------------------------------------------------------------
Version: 0.4.4
Date: 2022-01-07
Changes:
- Update plate icon
---------------------------------------------------------------------------------------------------
Version: 0.4.3
Date: 2022-01-06
Localization:
- Polish (pl) l10n, thanks to S3BA
---------------------------------------------------------------------------------------------------
Version: 0.4.2
Date: 2022-01-05
Localization:
- Simplified Chinese (zh_CN) l10n, thanks to PlexPt
---------------------------------------------------------------------------------------------------
Version: 0.4.1
Date: 2022-01-05
Fixes:
- Big rocks now also give zircon
Changes:
- Zircon is less rich closer to starting position, same richness after 200 tiles.
---------------------------------------------------------------------------------------------------
Version: 0.4.0
Date: 2022-01-03
Changes:
- Tungsten sets basic rocket-engine-nozzle recipe, this mod updates it with zirconia
---------------------------------------------------------------------------------------------------
Version: 0.3.2
Date: 2021-12-31
Features:
- Rocks now give some zircon
Localization:
- JA l10n updates
---------------------------------------------------------------------------------------------------
Version: 0.3.1
Date: 2021-12-24
Changes:
- SE: Cermet available earlier
---------------------------------------------------------------------------------------------------
Version: 0.3.0
Date: 2021-11-06
Changes:
- K2: beta compatibility
---------------------------------------------------------------------------------------------------
Version: 0.2.0
Date: 2021-10-11
Fixes:
- K2: Enriched zircon icon size
- SE: Balance core mining
- SE: Landfill recipe
- Bulk rail loader for zircon
Changes:
- K2: Enrichment byproduct if titanium enabled, too.
---------------------------------------------------------------------------------------------------
Version: 0.1.2
Date: 2021-08-16
Fixes:
- Enable prod modules on all intermediates
- Power Armor MK3 compatibility
---------------------------------------------------------------------------------------------------
Version: 0.1.1
Date: 2021-07-26
Changes:
- SE: experimental alloys data recipe
- Add a tech description for cermet tech
- Minor refactor
---------------------------------------------------------------------------------------------------
Version: 0.1.0
Date: 2021-07-21
Features:
- Officially in "beta" now.
- True Nukes compatibility
- Hazmat Suit compatibility
---------------------------------------------------------------------------------------------------
Version: 0.0.14
Date: 2021-07-07
Localization:
- Russian locale thanks to Thar0l
Features:
- Some minor bobplates compatibility improvements
---------------------------------------------------------------------------------------------------
Version: 0.0.13
Date: 2021-07-04
Localization:
- German locale thanks to Yokmp
---------------------------------------------------------------------------------------------------
Version: 0.0.12
Date: 2021-07-01
Features:
- Strange Matter compatibility
---------------------------------------------------------------------------------------------------
Version: 0.0.11
Date: 2021-06-29
Features:
- Realistic Fusion Power compatibility
---------------------------------------------------------------------------------------------------
Version: 0.0.10
Date: 2021-06-29
Changes:
- Updated zirconium plate icon
- Ordering of plate
Features:
- More compatibility : RITEG
---------------------------------------------------------------------------------------------------
Version: 0.0.9
Date: 2021-06-26
Features:
- More compatibility including plutonium energy
---------------------------------------------------------------------------------------------------
Version: 0.0.8
Date: 2021-06-20
Features:
- Nixie tubes
Fixes:
- Fix en locale string when K2 is enabled.
---------------------------------------------------------------------------------------------------
Version: 0.0.7
Date: 2021-06-17
Features:
- More compatibility: zombie's, bob's machines, mining, etc
Localization:
- ja locale thanks to Sakuro
---------------------------------------------------------------------------------------------------
Version: 0.0.6
Date: 2021-06-16
Changes:
- Sorting recipes are fully probabilistic to fix crafting ui confusion
- Small tweak to electric furnace recipe
- K2 stone brick is now 50/50 stone/zircon
---------------------------------------------------------------------------------------------------
Version: 0.0.5
Date: 2021-06-16
Features:
- Recipe bypass setting
---------------------------------------------------------------------------------------------------
Version: 0.0.4
Date: 2021-06-15
Features:
- FE+ compatibility
---------------------------------------------------------------------------------------------------
Version: 0.0.3
Date: 2021-06-12
Features:
- Realistic Reactors, etc.
Fixes:
- Minor string fixes
---------------------------------------------------------------------------------------------------
Version: 0.0.2
Date: 2021-06-12
Features:
- Nuclear Fuel, Nuclear Furnace, Rampant Industry, Tier 4 modules
Changes:
- Update some stacked icons
---------------------------------------------------------------------------------------------------
Version: 0.0.1
Date: 2021-06-10
Features:
- Zirconium, Zirconia, Zircon, Cermet added to game.
- Compatible with space exploration, krastorio2, deadlock stacking/crating, etc.

View file

@ -0,0 +1,17 @@
local util = require("data-util");
util.add_hot_metals({
{name="zirconium-plate", icons={
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128},
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128, tint={.9,.3,0, .5}},
}},
{name="zircaloy-4", icons={
{ icon = "__bzzirconium__/graphics/icons/zircaloy-4.png", icon_size = 128},
{ icon = "__bzzirconium__/graphics/icons/zircaloy-4.png", icon_size = 128, tint={.9,.3,0, .5}},
}},
})
if HotMetals then
table.insert(HotMetals.craftingCategories, "basic-metallurgy")
end

View file

@ -0,0 +1,298 @@
local me = require("me")
local util = {}
util.me = me
local regenerate_command = "bz-regenerate"
local list_command = "bz-list"
function decode(data)
if type(data) == "string" then return data end
local str = {}
for i = 2, #data do
str[i-1] = decode(data[i])
end
return table.concat(str, "")
end
function util.check_fluid_mining()
if me.fluid_mining then
for i, force in pairs(game.forces) do
if (
(force.technologies["uranium-processing"] and force.technologies["uranium-processing"].researched) or
(force.technologies["titanium-processing"] and force.technologies["titanium-processing"].researched) or
false
) then
force.technologies["fluid-mining"].researched = true
end
end
end
end
function get_list()
local p = prototypes.item[me.name.."-list"]
if p then
data = p.localised_description
return decode(data)
end
end
function util.force_enable_recipe(event, recipe_name)
if game.players[event.player_index].force.recipes[recipe_name] then
game.players[event.player_index].force.recipes[recipe_name].enabled=true
end
end
function list(event)
if event.command and string.lower(event.command) == "bz-list" then
local player = game.players[event.player_index]
if player and player.connected then
local list = get_list()
if list and #list>0 then
local filename = util.me.name..".txt"
helpers.write_file(filename, list, false, event.player_index)
player.print("Wrote recipes to script-output/"..filename)
else
player.print("Please change your mod startup setting for this mod's modified recipes list.")
end
end
end
end
function util.add_command_handler()
script.on_event(defines.events.on_console_command, route)
end
function route(event)
if event.command == regenerate_command then regenerate_ore(event) end
if event.command == list_command then list(event) end
end
function util.add_list_command_handler()
util.add_command_handler()
if not commands.commands[list_command] then
commands.add_command(list_command, "", function() end)
end
end
function util.warptorio2_expansion_helper()
if script.active_mods["warptorio2_expansion"] then
function check_container_for_items(container,items)
local has_all =true
for k=1,#items do
if container.get_item_count(items[k].name)<items[k].count then has_all=false break end
end
return has_all
end
function remove_items_from_container(container,items)
for k=1,#items do
container.remove_item(items[k])
end
end
script.on_nth_tick(60, function (event)
if global.done then return end
local fix_items={
{name='iron-plate',count=100},
{name='iron-gear-wheel',count=100},
{name='repair-pack',count=50},
}
local entities = {}
for i=1,100 do
if game.surfaces[i] then
local lentities= game.surfaces[i].find_entities_filtered{area = {{-100, -100}, {100, 100}}, name = "wpe_broken_lab"}
for j, entity in pairs(lentities) do
table.insert(entities, entity)
end
end
end
if #entities == 0 then
if global.checking then
-- The lab has already been fixed
global.done = true
else
-- Check that the lab doesn't reappear due to a warp
global.checking = true
end
return
end
if check_container_for_items(entities[1],fix_items) then
remove_items_from_container(entities[1],fix_items)
local lab = entities[1].surface.create_entity({name='wpe_repaired_lab', position=entities[1].position, force = game.forces.player})
lab.destructible=false
lab.minable=false
entities[1].destroy()
global.done = true
end
end)
end
end
local usage_regenerate = [[
Recommend saving the game before running this command.
Usage: /bz-regenerate all
or /bz-regenerate <planet> <resource> [<frequency> <size> <richness>]
planet must be an internal name like nauvis
resource must be an internal name like lead-ore or titanium-ore
frequency, size, and richness are optional, but all or none must be provided, and each should be a number between 0.166 and 6, where 1 is default setting.
Regenerates ore patches. If frequency/size/richness are provided, the planet will use those settings from now on, as well.
- Separate arguments with spaces, do not use < >, [ ], quotes or other symbols
- This action can take a while for larger maps!
- Ores can sometimes overlap on regeneration. This can sometimes hide ore patches. If none seem to be made for a resource, regenerate just that resource and tweak frequency/size.
]]
function util.add_regenerate_command_handler()
util.add_command_handler()
if not commands.commands[regenerate_command] then
commands.add_command( regenerate_command, usage_regenerate, function() end)
end
end
function regenerate_ore(event)
if event.command == regenerate_command then
local params = {}
for w in event.parameters:gmatch("%S+") do table.insert(params, w) end
if #params == 1 and params[1] == "all" then
for _, resource in pairs(me.resources) do
if prototypes.entity[resource[1]] then
game.print("Regenerating "..resource[1])
game.regenerate_entity(resource[1])
end
end
return
end
if not (#params == 2 or #params == 5) then
game.print(usage_regenerate)
return
end
local planet = params[1]
for _, resource in pairs(me.resources) do
if not game.surfaces[planet] then
game.print("Could not find surface for "..planet..". May not exist, or may not yet be explored.")
return
end
if resource[1] == params[2] and (resource[2] == planet or "tenebris" == planet) then
if #params == 5 then
local settings = {frequency=params[3], size=params[4], richness=params[5]}
local map_gen_settings = game.surfaces[planet].map_gen_settings
map_gen_settings.autoplace_controls[resource[1]] = settings
map_gen_settings.autoplace_settings.entity.settings[resource[1]] = settings
game.surfaces[planet].map_gen_settings = map_gen_settings
game.print("Set "..resource[1].." on "..planet.." to "..serpent.line(settings))
end
game.print("Regenerating "..resource[1])
game.surfaces[planet].regenerate_entity(resource[1])
end
end
end
end
function util.ore_fix()
ore_fix("nauvis")
ore_fix("vulcanus")
if game.surfaces.tenebris then
ore_fix("tenebris")
end
end
function ore_fix(surface_name)
for _, resource in pairs(me.resources) do
if resource[2] == surface_name then
if game.surfaces[resource[2]] then
local map_gen_settings = game.surfaces[surface_name].map_gen_settings
if map_gen_settings.autoplace_controls[resource[1]] == nil then
map_gen_settings.autoplace_controls[resource[1]] = {}
end
if map_gen_settings.autoplace_settings.entity.settings[resource[1]] == nil then
map_gen_settings.autoplace_settings.entity.settings[resource[1]] = {}
end
game.surfaces[surface_name].map_gen_settings = map_gen_settings
end
end
end
end
-- A workaround for generating ores until this bug is fixed:
-- https://forums.factorio.com/viewtopic.php?f=7&t=124996&p=655013#p655013
function util.ore_workaround(event)
for i, ore in pairs(util.me.ores_for_workaround) do
if (
event.surface and
event.surface.map_gen_settings and
event.surface.map_gen_settings.autoplace_controls and
event.surface.map_gen_settings.autoplace_controls["titanium-ore"]
) then
return
end
if event.surface.name ~= "nauvis" then return end
if math.random() < settings.global[util.me.name.."-ore-workaround-probability"].value then
util.generate_ore(event, ore.name, ore.amount, ore.tiles)
end
end
end
-- The majority of this function was written by Eradicator, see https://forums.factorio.com/viewtopic.php?t=72723
function util.generate_ore(event, name, amount, tiles)
local biases = {[0] = {[0] = 1}}
local t = 1
repeat
t = t + util.grow(biases,t,tiles)
until t >= tiles
local pos = {x=event.position.x*32, y=event.position.y*32}
local multiplier = math.max(math.abs(event.position.x), math.abs(event.position.y))
if multiplier < 10 then return end -- don't generate too close to start
local total_bias = 0
for x,_ in pairs(biases) do for y,bias in pairs(_) do
total_bias = total_bias + bias
end end
for x,_ in pairs(biases) do for y,bias in pairs(_) do
local entity = {
name = name,
amount = amount * (bias/total_bias) * multiplier,
force = 'neutral',
position = {pos.x+x,pos.y+y},
}
if event.surface.can_place_entity(entity) then
event.surface.create_entity(entity)
end
end end
end
-- The majority of this function was written by Eradicator, see https://forums.factorio.com/viewtopic.php?t=72723
function util.grow(grid,t,tiles)
local w_max = 256
local h_max = 256
local abs = math.abs
local old = {}
local new_count = 0
for x,_ in pairs(grid) do for y,__ in pairs(_) do
table.insert(old,{x,y})
end end
for _,pos in pairs(old) do
local x,y = pos[1],pos[2]
local bias = grid[x][y]
for dx=-1,1,1 do for dy=-1,1,1 do
local a,b = x+dx, y+dy
if (math.random() > 0.9) and (abs(a) < w_max) and (abs(b) < h_max) then
grid[a] = grid[a] or {}
if not grid[a][b] then
grid[a][b] = 1 - (t/tiles)
new_count = new_count + 1
if (new_count+t) == tiles then return new_count end
end
end
end end
end
return new_count
end
return util

25
bzzirconium2/control.lua Normal file
View file

@ -0,0 +1,25 @@
local util = require("control-util")
script.on_configuration_changed(util.ore_fix)
util.add_regenerate_command_handler()
script.on_event( defines.events.on_console_chat, function(event)
-- refresh recipes, in case of settings change
if event.message and event.message == "ZirconiumRecipes" and (not event.player_index or not game.players[event.player_index] or game.players[event.player_index].admin) then
if game.players[event.player_index].force.recipes["zirconia"] then
game.players[event.player_index].force.recipes["zirconia"].enabled=true
end
if game.players[event.player_index].force.recipes["zirconium-plate"] then
game.players[event.player_index].force.recipes["zirconium-plate"].enabled=true
end
if game.players[event.player_index].force.recipes["zircaloy-4"] then
game.players[event.player_index].force.recipes["zircaloy-4"].enabled=true
end
if game.players[event.player_index].force.recipes["cermet"] then
game.players[event.player_index].force.recipes["cermet"].enabled=true
end
if game.players[event.player_index].force.recipes["zirconium-tungstate"] then
game.players[event.player_index].force.recipes["zirconium-tungstate"].enabled=true
end
end
end)

View file

@ -0,0 +1,20 @@
require("zirconium-recipe-final-stacking")
require("zirconium-recipe-final-rrr")
local util = require("data-util");
if mods["space-exploration"] then
-- core mining balancing
util.add_to_product("se-core-fragment-omni", "zircon", -3)
end
if mods["bztitanium2"] then
if util.me.byproduct() then
-- If furnaces are treated as furnaces, we need 2 outputs
util.set_minimum_furnace_outputs("smelting", 2)
end
end
-- Make sure these don't exist, just in case
util.remove_raw("recipe", "stone-recycling")
util.remove_raw("recipe", "zircon-recycling")

View file

@ -0,0 +1,33 @@
require("tech-updates")
require("zirconium-recipe-updates")
require("zirconium-asteroid-updates")
require("zircon-matter")
require("map-gen-preset-updates")
require("omni")
require("strange-matter")
require("zircon-rocks")
local util = require("data-util");
if mods.Asteroid_Mining and not data.raw.item["asteroid-zircon"] then
util.addtype("zircon", {a = 0,r = 110, g = 40, b =70})
end
if mods["any-planet-start"] then
if util.me.get_setting("aps-planet") == "vulcanus" then
util.set_tech_trigger("zirconia-processing", {type="craft-item", item="stone-furnace"})
util.add_unlock("zirconia-processing", "zirconium-sponge")
util.remove_recipe_effect("zirconium-processing", "zirconium-sponge")
util.add_prerequisite("foundry", "zirconia-processing")
else
util.set_tech_recipe("zirconia-processing", {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
})
util.set_prerequisite("zirconia-processing", {"logistic-science-pack"})
end
end
util.redo_recycling()
util.add_shiftite_recipe("zirconia", {"gamma"}, 1)

2168
bzzirconium2/data-util.lua Normal file

File diff suppressed because it is too large Load diff

10
bzzirconium2/data.lua Normal file
View file

@ -0,0 +1,10 @@
require("zircon")
require("zircon-particle")
require("zirconium-recipe")
require("magazine")
require("zirconium-enriched") -- Enriched for Krastorio 2
require("zirconium-recipe-se") -- Space Exploration special recipes (depends on K2 if present)
require("compatibility.hot-metals")
require("zirconium-recipe-updates-lds")
require("vulcanus")
-- require("zirconium-compressed")

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

26
bzzirconium2/info.json Normal file
View file

@ -0,0 +1,26 @@
{
"name": "bzzirconium",
"version": "2.1.13",
"factorio_version": "2.0",
"title": "Zirconium",
"author": "Brevven",
"contact": "",
"homepage": "",
"dependencies": [
"base >= 1.1.0",
"? space-age",
"? space-exploration",
"? aai-industry",
"? Krastorio2",
"? Krastorio2-spaced-out",
"? deadlock-beltboxes-loaders",
"? DeadlockCrating",
"? omnimatter",
"? bzsilicon2",
"? bzlead2",
"? bztitanium2 >= 2.0.27",
"? bztungsten2 >= 2.0.0"
],
"description": "Adds zircon, zirconia, zirconium, and more to the base game.\n\nCompatible with Space Age and many other mods. A standalone piece of BZ Mods."
}

View file

@ -0,0 +1,57 @@
[entity-name]
zircon=__ITEM__zircon__
[autoplace-control-names]
zircon=[item=zircon] __ITEM__zircon__
[item-name]
zircon=Zirkon
zirconium-dust=__ITEM__zircon__staub
zirconia=__ITEM__zircon__ia
zirconium-plate=__ITEM__zircon__iumplatte
enriched-zircon=Angereichertes __ITEM__zircon__
compressed-zircon=Gepresstes __ITEM__zircon__
cermet=Cermet
zirconium-tungstate=Zirconiumwolframat
[item-description]
zircon=Kann zu __ITEM__zircon__ia geschmolzen werden.
zirconia=Eine großartige Keramik. Kann auch zu __ITEM__zircon__ium geschmolzen werden.
enriched-zircon=Kann effizient zu __ITEM__zircon__ia geschmolzen werden.
enriched-zirconia=Kann effizient zu __ITEM__zircon__iumplatten geschmolzen werden.
cermet=Fortgeschrittener Keramik-Metall Verbundstoff.
zirconium-tungstate=Ein Metarial mit interessanten thermischen Eigenschaften.
[technology-name]
zirconia-processing=__ITEM__zircon__verarbeitung
cermet=__ITEM__cermet__
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zircon__ia
zirconium-matter-processing=__ITEM__zircon__ium Umwandlung
[technology-description]
enriched-zircon=Reichert __ITEM__zircon__ an, veredelt mit Schwefelsäure [fluid=sulfuric-acid] und Wasser [fluid=water], erhöht den Ertrag. Produziert verunreinigtes Wasser [fluid=dirty-water] als Nebenprodukt.
[recipe-name]
sort-stone-zircon=Sortiere __ITEM__stone__ für __ITEM__zircon__
sort-zircon-stone=Sortiere __ITEM__zircon__ für __ITEM__stone__
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zircon__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zircon__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=Filtere verunreinigtes Wasser [item=zircon]
[recipe-description]
enriched-zircon=Reichert __ITEM__zircon__ an, veredelt mit Schwefelsäure [fluid=sulfuric-acid] und Wasser [fluid=water], erhöht den Ertrag. Produziert verunreinigtes Wasser [fluid=dirty-water] als Nebenprodukt.
enriched-zirconia=Reichert __ITEM__zircon__ noch weiter an, veredelt mit SchChlorwasserstoffwefelsäure [fluid=hydrogen-chloride] und Wasser [fluid=water], erhöht den Ertrag. Produziert verunreinigtes Wasser [fluid=dirty-water] als Nebenprodukt.
dirty-water-filtration-zircon=Filtert verunreinigtes Wasser und kann etwas __ITEM__zircon__ [item=zircon] und __ITEM__stone__ [item=stone] ausfiltern.
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=Umgehe Rezepte
bzzirconium-enable-intermediates=Nutze cermet
[mod-setting-description]
bzzirconium-recipe-bypass=Ignoriere diese Rezepte (Komma-separierte Liste).
bzzirconium-enable-intermediates=Nutze cermet, ein fortschrittliches Verbundprodukt aus Kermaik und Metall als Zwischenprodukt.

View file

@ -0,0 +1,89 @@
[entity-name]
zircon=Zircon
basic-foundry=Basic foundry
[autoplace-control-names]
zircon=[item=zircon] Zircon
[item-name]
zircon=Zircon
zirconium-dust=Zircon dust
zirconia=Zirconia
zirconium-plate=Zirconium plate
zirconium-ingot=Zirconium Ingot
zirconium-sponge=Zirconium sponge
enriched-zircon=Enriched zircon
compressed-zircon=Compressed zircon
cermet=Cermet
zirconium-tungstate=Zirconium tungstate
zircaloy-4=Zircaloy 4
explosive-rounds-magazine=Explosive rounds magazine
explosive-rounds-rifle-magazine=Explosive rounds rifle magazine
explosive-rounds-anti-material-rifle-magazine=Explosive rounds anti-materiel rifle magazine
basic-foundry=Basic foundry
[item-description]
zircon=Can be smelted into zirconia
zirconia=A great ceramic. Can be smelted into zirconium, too.
enriched-zircon=Can be efficiently smelted into zirconia.
enriched-zirconia=Can be efficiently smelted into zirconium plates.
cermet=Advanced ceramic/metal composites.
zirconium-tungstate=A material with interesting thermal properties.
basic-foundry=A burner foundry with limited use. Where could we find better materals to make a better one?
[fluid-name]
molten-zirconium=Molten zirconium
vacuum=Vacuum
[technology-name]
zirconia-processing=Zirconia processing
zirconium-processing=Zirconium processing
cermet=Cermet
enriched-zircon=Enriched zircon
enriched-zirconia=Enriched zirconia
zirconium-matter-processing=Zirconium conversion
[technology-description]
enriched-zircon=Enrich zircon, purifying with sulfuric-acid [fluid=sulfuric-acid] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct.
cermet=Produce advanced ceramic/metal composites.
[recipe-name]
sort-stone-zircon=Sort stone for zircon
sort-zircon-stone=Sort zircon for stone
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zirconia__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zirconia__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=Filter dirty water [item=zircon]
zircon-synthesis=Zircon synthesis
zirconium-gettering=Zirconium gettering
stone-from-lava=Stone from lava
enriched-zirconia-smelting=Zirconia from enriched zircon
[recipe-description]
zircon-synthesis=Use Gleban biological processes to synthesize zircon from purer materials.
enriched-zircon=Enrich zircon, purifying with sulfuric-acid [fluid=sulfuric-acid] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct.
enriched-zirconia=Further enrich zirconia, purifying with hydrogen chloride [fluid=hydrogen-chloride] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct.
dirty-water-filtration-zircon=Filter dirty water, giving zircon [item=zircon] and stone [item=stone] (probabilistically).
zirconia-from-egg=Pentapod carapace seems to be made primarily of zirconia, and starts developing in the egg.
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=Bypass recipes
bzzirconium-byproduct=Output byproducts
bzzirconium-enable-intermediates=Enable cermet
bzzirconium-enable-sorting=Enable stone sorting
bzzirconium-early=Early zircon
bzzirconium-ammo=Enable magazine
bzzirconium-basic-foundry=Enable basic foundry
[mod-setting-description]
bzzirconium-recipe-bypass=Skip modifying these recipes (comma-separated list).
bzzirconium-byproduct=If enabled and using Titanium mod, zirconia production will output titanium as a byproduct.
bzzirconium-enable-intermediates=Enable cermet, an advanced intermediate made from ceramics and metals.
bzzirconium-enable-sorting=Enable "sorting" recipes to convert between zircon and stone. This is no longer as useful for burner phase as it used to be, but left as an option for certain map layouts or existing factories.
bzzirconium-early=If [color=green]enabled[/color], zircon is required in small quantities early in the game.\nIf [color=orange]disabled[/color], zircon is not required until after logistic science.
bzzirconium-ammo=If enabled, adds a new explosive ammunition magazine.
bzzirconium-basic-foundry=Defaults to enabled unless another suitable crafting machine is present (such as a Kiln from Wooden Industry).

View file

@ -0,0 +1,76 @@
[entity-name]
zircon=ジルコン
[autoplace-control-names]
zircon=[item=zircon] ジルコン
[item-name]
zircon=ジルコン
zirconium-dust=Zircon dust
zirconia=ジルコニア
zirconium-plate=ジルコニウム板
zirconium-ingot=ジルコニウムインゴット
enriched-zircon=純化ジルコン
compressed-zircon=Compressed zircon
cermet=サーメット
zirconium-tungstate=タングステン酸ジルコニウム
zircaloy-4=ジルカロイ-4
explosive-rounds-magazine=炸裂弾倉
explosive-rounds-rifle-magazine=炸裂貫通弾倉
explosive-rounds-anti-material-rifle-magazine=炸裂対物弾倉
[item-description]
zircon=製錬してジルコニアを得ることができます
zirconia=優秀な焼結体。製錬してジルコニウム板を得ることもできます
enriched-zircon=製錬して効率的にジルコニアを得ることができます
enriched-zirconia=製錬して効率的にジルコニウム板を得ることができます
cermet=高度なセラミック・金属複合材
zirconium-tungstate=興味深い熱特性を持つ素材
[fluid-name]
molten-zirconium=溶融ジルコニウム
[technology-name]
zirconia-processing=ジルコニア処理
cermet=サーメット
enriched-zircon=ジルコン純化
enriched-zirconia=ジルコニア純化
zirconium-matter-processing=ジルコニウム変換
[technology-description]
enriched-zircon=ジルコンを硫酸[fluid=sulfuric-acid] と水[fluid=water] で処理し、収量を改善します。副産物として汚水[fluid=dirty-water] を生産します。
cermet=高度なセラミック金属複合材を生産します。
[recipe-name]
sort-stone-zircon=石からジルコンを選別
sort-zircon-stone=ジルコンから石を選別
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zirconia__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zirconia__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=汚水をろ過[item=zircon]
[recipe-description]
enriched-zircon=ジルコンを硫酸[fluid=sulfuric-acid] と水[fluid=water] で処理し、収量を改善します。副産物として汚水[fluid=dirty-water] を生産します。
enriched-zirconia=ジルコニアを塩化水素[fluid=hydrogen-chloride] と水[fluid=water] でさらに処理し、収量を改善します。副産物として汚水[fluid=dirty-water] を生産します。
dirty-water-filtration-zircon=汚水をろ過し、ジルコン[item=zircon] と石[item=stone] を確率的に生産します。
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=改変しないレシピ
bzzirconium-byproduct=副産物あり
bzzirconium-enable-intermediates=サーメットを有効にする
bzzirconium-enable-sorting=石の選別を有効にする
bzzirconium-early=序盤のジルコン
bzzirconium-ammo=弾倉を有効にする
[mod-setting-description]
bzzirconium-recipe-bypass=指定したレシピの改変を行わない。 (コンマ区切り)
bzzirconium-byproduct=有効かつ Titanium MOD を使用する場合、ジルコニア生産時に副産物としてチタンも生産されます。
bzzirconium-enable-intermediates=セラミックと金属から作られる先進的な中間生産物であるサーメットを有効にします。
bzzirconium-enable-sorting=ジルコンと石の「選別」レシピを有効にします。燃焼式の時代において以前ほど有用ではなくなりましたが、特定のマップレイアウトや既存の工場のためにオプションとして残してあります。
bzzirconium-early=[color=green]有効[/color]にした場合, ゲーム序盤で小量のジルコンが必要となります。\n[color=orange]無効[/color]にした場合、必要となるのは物流サイエンスパック以降になります。
bzzirconium-ammo=有効にした場合、新たに炸裂弾倉が追加されます。

View file

@ -0,0 +1,61 @@
[entity-name]
zircon=지르콘
[autoplace-control-names]
zircon=[item=zircon] 지르콘
[item-name]
zircon=지르콘
zirconium-dust=지르콘 분진
zirconia=지르코니아
zirconium-plate=지르코늄 판
enriched-zircon=농축 지르콘
compressed-zircon=압축 지르콘
cermet=서멧
zirconium-tungstate=지르코늄 텅스테이트
[item-description]
zircon=지르코니아로 제련할 수 있음
zirconia=훌륭한 도자기입니다. 지르코늄도 녹일 수 있습니다.
enriched-zircon=지르코니아로 효율적으로 제련할 수 있습니다.
enriched-zirconia=지르코늄 판으로 효율적으로 제련할 수 있습니다.
cermet=고급 세라믹/금속 복합 재료.
zirconium-tungstate=흥미로운 열 특성을 가진 재료.
[technology-name]
zirconia-processing=지르코니아 가공
cermet=서멧
enriched-zircon=농축 지르콘
enriched-zirconia=농축 지르코니아
zirconium-matter-processing=지르코늄 변환
[technology-description]
enriched-zircon=지르콘을 농축하고 황산염 [fluid=sulfuric-acid] 및 물 [fluid=water]로 정제하여 최종 수확량을 높입니다. 부산물로 더러운 물 [fluid=dirty-water]을 생산합니다.
cermet=고급 세라믹/금속 합성물을 만듭니다.
[recipe-name]
sort-stone-zircon=지르콘을 위한 돌 분류
sort-zircon-stone=돌을 위한 지르콘 분류
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zirconia__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zirconia__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=더러운 물 여과 [item=zircon]
[recipe-description]
enriched-zircon=지르콘을 농축하고 황산염 [fluid=sulfuric-acid] 및 물 [fluid=water]로 정제하여 최종 수확량을 높입니다. 부산물로 더러운 물 [fluid=dirty-water]을 생산합니다.
enriched-zirconia=지르코니아를 더욱 풍부하게 하여 염화수소 [fluid=hydrogen-chloride] 및 물 [fluid=water]로 정제하여 최종 수확량을 높입니다. 부산물로 더러운 물 [fluid=dirty-water]을 생산합니다.
dirty-water-filtration-zircon=더러운 물을 여과하여 지르콘 [item=zircon] 및 돌 [item=stone](확률적)을 생성합니다.
# 설정
[mod-setting-name]
bzzirconium-recipe-bypass=우회 제작법
bzzirconium-enable-intermediates=서멧 활성화
bzzirconium-enable-sorting=돌 분류 사용
[mod-setting-description]
bzzirconium-recipe-bypass=이러한 제작법 수정을 건너뜁니다(콤마로 구분된 목록).
bzzirconium-enable-intermediates=세라믹과 금속으로 만든 고급 중간체인 서멧을 활성화합니다.
bzzirconium-enable-sorting=지르콘과 돌 사이를 전환하기 위해 "비슷한" 제작법을 활성화합니다. 이 기능은 더 이상 화력 단계에 유용하지 않지만 특정 지도 레이아웃이나 기존 공장에 대한 옵션으로 남아 있습니다.

View file

@ -0,0 +1,60 @@
[entity-name]
zircon=Cyrkon
[autoplace-control-names]
zircon=[item=zircon] Cyrkon
[item-name]
zircon=Cyrkon
zirconium-dust=Pył cyrkonowy
zirconia=Cyrkonia
zirconium-plate=Płytka cyrkonowa
enriched-zircon=Wzbogacony cyrkon
compressed-zircon=Skompresowany cyrkon
cermet=Cermetal
zirconium-tungstate=Wolframian cyrkonu
[item-description]
zircon=Można go przetopić na cyrkonię
zirconia=Wspaniała ceramika. Może być również przetopiony na cyrkon.
enriched-zircon=Może być efektywnie przetopiony na cyrkonię.
enriched-zirconia=Może być wydajnie przetapiany w płyty cyrkonowe.
cermet=Zaawansowane kompozyty ceramiczno-metalowe.
zirconium-tungstate=Materiał o interesujących właściwościach termicznych.
[technology-name]
zirconia-processing=Obróbka cyrkonu
cermet=Cermetal
enriched-zircon=Wzbogacony cyrkon
enriched-zirconia=Wzbogacona cyrkonia
zirconium-matter-processing=Przetwarzanie materii cyrkonowej
[technology-description]
enriched-zircon=Wzbogacanie cyrkonu, oczyszczanie kwasem siarkowym [fluid=sulfuric-acid] i wodą [fluid=water], poprawa końcowej wydajności. Po flotacji pozostają ścieki [fluid=dirty-water]
cermet=Produkcja zaawansowanych kompozytów ceramiczno-metalowych.
[recipe-name]
sort-stone-zircon=Sortuj kamień do cyrkonu
sort-zircon-stone=Sortuj cyrkon do kamienia
enriched-zircon=Wzbogacony cyrkon
enriched-zirconia=Wzbogacona cyrkonia
zirconia=Cyrkonia
zirconium-plate=Płytka cyrkonowa
smelt-compressed-zircon=Przetopiony skompresowany cyrkon
zircon-dust=Pył cyrkonowy
dirty-water-filtration-zircon=Filtrowanie ścieków poflotacyjnych pozwala odzyskać rudę cyrkonu [item=zircon]
[recipe-description]
enriched-zircon=Wzbogacanie cyrkonu, oczyszczanie kwasem siarkowym [fluid=sulfuric-acid] i wodą [fluid=water], poprawa końcowej wydajności. Po flotacji pozostają ścieki [fluid=dirty-water]
enriched-zirconia=Wzbogacanie cyrkonii, oczyszczanie chlorowodorem [fluid=hydrogen-chloride] i wodą [fluid=water], poprawa końcowej wydajności. Po flotacji pozostają ścieki [fluid=dirty-water]
dirty-water-filtration-zircon=Filtrowanie ścieków poflotacyjnych pozwala odzyskać cyrkon [item=zircon] i kamień [item=stone] (proporcjonalnie).
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=Ominięcie receptur
bzzirconium-enable-intermediates=Włącz cermetal
[mod-setting-description]
bzzirconium-recipe-bypass=Pomiń modyfikację tych receptur (lista oddzielona przecinkami).
bzzirconium-enable-intermediates=Włącz cermetal, zaawansowane półprodukty wykonane z ceramiki i metali.

View file

@ -0,0 +1,68 @@
[entity-name]
zircon=Циркон
[autoplace-control-names]
zircon=[item=zircon] Циркон
[item-name]
zircon=Циркон
zirconium-dust=Циркониевая пыль
zirconia=Диоксид циркония
zirconium-plate=Циркониевая плита
zirconium-ingot=Циркониевый слиток
enriched-zircon=Обогащенный циркон
compressed-zircon=Прессованный циркон
cermet=Металлокерамика
zirconium-tungstate=Вольфрамат циркония
zircaloy-4=Циркалой-4
[item-description]
zircon=Используется для получения диоксида циркония.
zirconia=Отличная керамика. Можно использовать для получения циркониевой плиты и металлокерамики.
enriched-zircon=Может быть эффективно переплавлен в диоксид циркония.
enriched-zirconia=Может быть эффективно переплавлен в циркониевой плиту и металлокерамику.
cermet= Современные керамико-металлические материалы.
zirconium-tungstate=Материал с интересными тепловыми свойствами.
[fluid-name]
molten-zirconium=Расплавленный цирконий
[technology-name]
zirconia-processing=Перебработка диоксида циркония
cermet=Металлокерамика
enriched-zircon=Обогащенный циркон
enriched-zirconia=Обогащенный диоксид циркония
zirconium-matter-processing=Преобразование циркона в материю
[technology-description]
enriched-zircon=Обогащение циркона при помощи очистки серной кислотой [fluid=sulfuric-acid] и водой [fluid=water], повышая качество выходной продукции. Производит грязную воду [fluid=dirty-water] как побочный продукт.
cermet=Производство современных керамико-металлических материалов.
[recipe-name]
sort-stone-zircon=Сортировка циркона из камня
sort-zircon-stone=Сортировка камня из циркона
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zirconia__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zirconia__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=Фильтрация грязной воды [item=zircon]
[recipe-description]
enriched-zircon=Обогащение циркона при помощи очистки серной кислотой [fluid=sulfuric-acid] и водой [fluid=water], повышая качество выходной продукции. Производит грязную воду [fluid=dirty-water] как побочный продукт.
enriched-zirconia=Дальнейшее обогащение диоксида циркония при помощи очистки хлористым водородом [fluid=hydrogen-chloride] и водой [fluid=water], повышая качество выходной продукции. Производит грязную воду [fluid=dirty-water] как побочный продукт.
dirty-water-filtration-zircon=Отфильтровывает из грязной воды циркон [item=zircon] и камень [item=stone].
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=Обходные рецепты
bzzirconium-byproduct=Выходные побочные продукты
bzzirconium-enable-intermediates=Включить металлокерамику
bzzirconium-enable-sorting=Включить сортировку камня
[mod-setting-description]
bzzirconium-recipe-bypass=Пропустить изменение этих рецептов (список, разделенный запятыми).
bzzirconium-byproduct=Если включено и используется мод Titanium, производство диоксида циркония будет давать титан в качестве побочного продукта.
bzzirconium-enable-intermediates=Включает металлокерамику, продвинутый промежуточный продукт, изготовленный из керамики и металлов.
bzzirconium-enable-sorting=Включите рецепты "сортировки" для преобразования между цирконом и камнем. Это уже не так полезно для фазы сгорания, как раньше, но оставлено как опция для определенных макетов карт или существующих фабрик.

View file

@ -0,0 +1,70 @@
[entity-name]
zircon=锆矿
[autoplace-control-names]
zircon=[item=zircon]锆矿
[item-name]
zircon=锆矿
zirconium-dust=锆粉尘
zirconia=氧化锆
zirconium-plate=锆板
zirconium-ingot=锆锭
enriched-zircon=富化锆矿
compressed-zircon=压缩锆矿
cermet=金属陶瓷
zirconium-tungstate=钨酸锆
zircaloy-4=锆-4合金
[item-description]
zircon=可以冶炼成氧化锆。
zirconia=一种非常好的陶瓷,也可以进一步冶炼成锆板。
enriched-zircon=可以高效的冶炼成氧化锆。
enriched-zirconia=可以高效的冶炼成锆板。
cermet=高级的陶瓷/金属复合材料。
zirconium-tungstate=一种反热膨胀(热缩冷胀)的材料。
[fluid-name]
molten-zirconium=熔融锆浆
[technology-name]
zirconia-processing=氧化锆处理
cermet=金属陶瓷
enriched-zircon=富化锆矿
enriched-zirconia=富化氧化锆
zirconium-matter-processing=锆转换
[technology-description]
enriched-zircon=使用硫酸[fluid=sulfuric-acid]和水[fluid=water]提纯使锆矿富集,提高最终的产量。产出脏水[fluid=dirty-water]为副产品。
cermet=生产高级的陶瓷/金属复合材料。
[recipe-name]
sort-stone-zircon=从石矿分拣出锆矿
sort-zircon-stone=从锆矿分拣出石矿
enriched-zircon=__ITEM__enriched-zircon__
enriched-zirconia=__ITEM__enriched-zirconia__
zirconia=__ITEM__zirconia__
zirconium-plate=__ITEM__zirconium-plate__
smelt-compressed-zircon=__ITEM__zirconia__
zircon-dust=__ITEM__zircon-dust__
dirty-water-filtration-zircon=过滤脏水[item=zircon]
[recipe-description]
enriched-zircon=使用硫酸[fluid=sulfuric-acid]和水[fluid=water]提纯使锆矿富集,提高最终的产量。产出脏水[fluid=dirty-water]为副产品。
enriched-zirconia=使用氯化氢[fluid=hydrogen-chloride]和水[fluid=water]进一步提纯使富化氧化锆富集,提高最终的产量。产出脏水[fluid=dirty-water]为副产品。
dirty-water-filtration-zircon=过滤脏水,概率获得锆矿[item=tungsten-ore]和石矿[item=stone]。
# Settings
[mod-setting-name]
bzzirconium-recipe-bypass=跳过合成
bzzirconium-byproduct=产出副产品
bzzirconium-enable-intermediates=启用金属陶瓷
bzzirconium-enable-sorting=启用石矿/锆矿分拣
[mod-setting-description]
bzzirconium-recipe-bypass=跳过修改这些合成(用逗号分开)。
bzzirconium-byproduct=如果启用且和BZ-钛游玩时,氧化锆产线将会产出钛矿为副产品。
bzzirconium-enable-intermediates=启用金属陶瓷,一种由陶瓷和金属制作而成的中间产品。
bzzirconium-enable-sorting=启用分拣配方,用于转换锆矿和石矿。此变动不在像以前一样在热能阶段有用,但可以作为一个选项方便布局。
[mod-name]
bzzirconium=BZ-锆

343
bzzirconium2/magazine.lua Normal file
View file

@ -0,0 +1,343 @@
local futil = require("util");
local util = require("data-util");
if util.me.ammo() then
local mag = {
util.item("zirconium-plate", 1),
}
local ct = 1
if mods.bztungsten2 then
table.insert(mag, util.item("tungsten-carbide", 1))
ct = ct + 1
end
-- add any other count-incrementing ingredients before silica, oil, and magazine
if mods["bzsilicon2"] then
table.insert(mag, util.item("silica", ct))
end
table.insert(mag, {type="fluid", name="heavy-oil", amount=ct})
if not util.k2() or not util.get_setting("kr-more-realistic-weapon") then
table.insert(mag, util.item("piercing-rounds-magazine", ct))
data:extend({
{
type = "ammo",
name = "explosive-rounds-magazine",
icon = "__bzzirconium__/graphics/icons/magazine.png",
icon_size = 64, icon_mipmaps = 4,
ammo_category = "bullet",
ammo_type =
{
category = "bullet",
action =
{
type = "direct",
action_delivery =
{
type = "instant",
source_effects =
{
type = "create-explosion",
entity_name = "explosion-gunshot"
},
target_effects =
{
{
type = "create-entity",
entity_name = "explosion-hit",
offsets = {{0, 1}},
offset_deviation = {{-0.5, -0.5}, {0.5, 0.5}}
},
{
type = "damage",
damage = { amount = 5, type = "physical"}
},
{
type = "nested-result",
action =
{
type = "area",
radius = 1,
action_delivery =
{
type = "instant",
target_effects =
{
{
type = "damage",
damage = {amount = 5, type = "explosion"}
},
{
type = "create-entity",
entity_name = "explosion"
}
}
}
}
}
}
}
}
},
magazine_size = 10,
subgroup = "ammo",
order = "a[basic-clips]-c[explosive-rounds-magazine]",
stack_size = 200
},
{
type = "recipe",
name = "explosive-rounds-magazine",
category = "crafting-with-fluid",
enabled = false,
energy_required = 6 * ct,
ingredients = mag,
results = {util.item("explosive-rounds-magazine", ct)},
},
})
else
local k_target_type = "direction" -- "entity", "position" or "direction"
local rifle_range = 30
if util.get_setting("kr-more-realistic-weapon-auto-aim") then
k_target_type = "entity" -- "entity", "position" or "direction"
rifle_range = 25
end
rmag = futil.table.deepcopy(mag)
table.insert(rmag, util.item("armor-piercing-rifle-magazine", ct))
ammag = futil.table.deepcopy(mag)
table.insert(ammag, util.item("armor-piercing-anti-material-rifle-magazine", ct))
data:extend({
{
type = "ammo",
name = "explosive-rounds-rifle-magazine",
icon = "__bzzirconium__/graphics/icons/r-magazine.png",
inventory_move_sound = item_sounds.ammo_small_inventory_move,
pick_sound = item_sounds.ammo_small_inventory_pickup,
drop_sound = item_sounds.ammo_small_inventory_move,
icon_size = 64,
icon_mipmaps = 4,
ammo_type = {
category = "bullet",
cooldown_modifier = 0.8,
target_type = k_target_type,
action = {
{
type = "direct",
action_delivery = {
{
type = "projectile",
projectile = "rifle-ammo-ex",
starting_speed = 1.5,
direction_deviation = 0.15,
range_deviation = 0.15,
max_range = rifle_range,
source_effects = {
{
type = "create-explosion",
entity_name = "explosion-gunshot",
},
},
},
},
},
},
},
magazine_size = 30,
subgroup = "ammo",
order = "a[basic-clips]-a04[rifle-magazine][ex]",
stack_size = 200,
},
{
type = "projectile",
name = "rifle-ammo-ex",
flags = { "not-on-map" },
collision_box = bullets_collision_box,
acceleration = -0.018,
action = {
type = "direct",
action_delivery = {
type = "instant",
target_effects = {
{
type = "create-entity",
entity_name = "explosion-hit",
},
{
type = "damage",
damage = { amount = 9, type = "physical" },
},
{
type = "nested-result",
action =
{
type = "area",
radius = 1.5,
action_delivery =
{
type = "instant",
target_effects =
{
{
type = "damage",
damage = {amount = 7, type = "explosion"}
},
{
type = "create-entity",
entity_name = "explosion"
}
}
}
}
}
},
},
},
animation = {
filename = util.k2assets() .. "/entities/bullets/rifle-bullet-1.png",
frame_count = 1,
width = 3,
height = 50,
priority = "high",
},
shadow = {
filename = util.k2assets() .. "/entities/bullets/rifle-bullet-1.png",
frame_count = 1,
width = 3,
height = 50,
priority = "high",
draw_as_shadow = true,
},
--hit_at_collision_position = true,
force_condition = "not-same",
light = { intensity = 0.45, size = 5, color = { r = 1.0, g = 1.0, b = 0.5 } },
},
{
type = "recipe",
name = "explosive-rounds-rifle-magazine",
category = "crafting-with-fluid",
energy_required = 2.5*ct,
enabled = false,
ingredients = rmag,
results = {util.item("explosive-rounds-rifle-magazine", ct)},
},
------------------------
{
type = "ammo",
name = "explosive-rounds-anti-material-rifle-magazine",
icon = "__bzzirconium__/graphics/icons/am-magazine.png",
icon_size = 64,
icon_mipmaps = 4,
ammo_type = {
category = "anti-material-rifle-ammo",
target_type = k_target_type,
action = {
{
type = "direct",
action_delivery = {
{
type = "projectile",
projectile = "anti-material-rifle-ammo-ex",
starting_speed = 3,
direction_deviation = 0.02,
range_deviation = 0.02,
max_range = sniper_range,
source_effects = {
{
type = "create-explosion",
entity_name = "explosion-gunshot",
},
},
},
},
force = "not-same",
},
},
},
magazine_size = 7,
subgroup = "ammo",
order = "a[basic-clips]-a08[anti-material-rifle-magazine][ex]",
stack_size = 200,
},
{
type = "projectile",
name = "anti-material-rifle-ammo-ex",
flags = { "not-on-map" },
collision_box = bullets_collision_box,
acceleration = -0.025,
action = {
type = "direct",
action_delivery = {
type = "instant",
target_effects = {
{
type = "create-entity",
entity_name = "explosion-hit-p",
},
{
type = "damage",
damage = { amount = 70, type = "physical" },
},
{
type = "nested-result",
action = {
type = "area",
radius = 1.5,
action_delivery = {
type = "instant",
target_effects = {
{
type = "damage",
damage = { amount = 70, type = "explosion" },
},
},
},
force = "not-same",
},
},
},
},
force = "not-same",
},
animation = {
filename = util.k2assets() .. "/entities/bullets/anti-material-rifle-bullet-2.png",
frame_count = 1,
width = 3,
height = 50,
priority = "high",
},
shadow = {
filename = util.k2assets() .. "/entities/bullets/anti-material-rifle-bullet-2.png",
frame_count = 1,
width = 3,
height = 50,
priority = "high",
draw_as_shadow = true,
},
--hit_at_collision_position = true,
force_condition = "not-same",
light = { intensity = 0.45, size = 8, color = { r = 1.0, g = 0.8, b = 0.5 } },
},
{
type = "recipe",
name = "explosive-rounds-anti-material-rifle-magazine",
category = "crafting-with-fluid",
energy_required = 6*ct,
enabled = false,
ingredients = ammag,
results = {util.item("explosive-rounds-anti-material-rifle-magazine", ct)},
},
})
end
util.add_unlock("military-3", "explosive-rounds-magazine")
util.add_unlock("military-3", "explosive-rounds-rifle-magazine")
util.add_unlock("military-3", "explosive-rounds-anti-material-rifle-magazine")
end

View file

@ -0,0 +1,14 @@
local base_ore = "iron-ore"
if mods["angelssmelting"] then
base_ore = "angels-ore1"
end
if data.raw["map-gen-presets"] and data.raw["map-gen-presets"].default then
for name, preset in pairs(data.raw["map-gen-presets"].default) do
if type(preset) == "table" and
preset.basic_settings and
preset.basic_settings.autoplace_controls and
preset.basic_settings.autoplace_controls[base_ore] then
preset.basic_settings.autoplace_controls["zircon"] = preset.basic_settings.autoplace_controls[base_ore]
end
end
end

62
bzzirconium2/me.lua Normal file
View file

@ -0,0 +1,62 @@
local me = {}
me.name = "bzzirconium"
me.resources = {{"zircon", "nauvis"}}
me.recipes = {"zirconium-plate", "zirconia", "cermet",
"enriched-zirconia-smelting",
"enriched-zircon",
"zirconia-smelting-vulcanite",
"molten-zirconium",
"enriched-zirconia-smelting-vulcanite",}
function me.byproduct()
return me.get_setting("bzzirconium-byproduct") and not me.get_setting("bz-no-byproduct")
end
function me.early()
return me.get_setting("bzzirconium-early")
end
function me.ammo()
return true
-- return me.get_setting("bzzirconium-ammo")
end
function me.use_cermet()
if me.get_setting("bz-all-intermediates") then return true end
return me.get_setting("bzzirconium-enable-intermediates") == "yes"
end
function me.enable_sorting()
return me.get_setting("bzzirconium-enable-sorting")
end
function me.basic_foundry()
if me.get_setting("bzzirconium-basic-foundry") == nil then
return true
else
return me.get_setting("bzzirconium-basic-foundry")
end
end
function me.get_setting(name)
if settings.startup[name] == nil then
return nil
end
return settings.startup[name].value
end
me.bypass = {}
if me.get_setting(me.name.."-recipe-bypass") then
for recipe in string.gmatch(me.get_setting(me.name.."-recipe-bypass"), '[^",%s]+') do
me.bypass[recipe] = true
end
end
function me.add_modified(name)
if me.get_setting(me.name.."-list") then
table.insert(me.list, name)
end
end
return me

3
bzzirconium2/omni.lua Normal file
View file

@ -0,0 +1,3 @@
if omni and omni.matter then
omni.matter.add_resource("zircon", omni.matter.get_ore_tier("iron-ore") or 1)
end

View file

@ -0,0 +1,13 @@
-- WARNING WARNING WARNING
-- This file will be overwritten in mod zipfiles, edit bzlib/settings-util.lua
-- WARNING WARNING WARNING
local util = {}
function util.set_default_value(t, name, default)
if data.raw[t] and data.raw[t][name] then
data.raw[t][name].default_value = default
end
end
return util

59
bzzirconium2/settings.lua Normal file
View file

@ -0,0 +1,59 @@
data:extend({
{
type = "string-setting",
name = "bzzirconium-recipe-bypass",
setting_type = "startup",
default_value = "",
allow_blank = true,
order = "a-a-a",
},
{
type = "bool-setting",
name = "bzzirconium-byproduct",
setting_type = "startup",
default_value = true,
order = "a-b-a",
},
{
type = "string-setting",
name = "bzzirconium-enable-intermediates",
setting_type = "startup",
default_value = "no",
allowed_values = {"yes", "no"},
order = "b-a-a",
},
{
type = "bool-setting",
name = "bzzirconium-early",
setting_type = "startup",
default_value = true,
order = "c-a-a",
},
-- {
-- type = "bool-setting",
-- name = "bzzirconium-ammo",
-- setting_type = "startup",
-- default_value = true,
-- order = "d-a-a",
-- },
not mods.quality and
{
type = "bool-setting",
name = "bzzirconium-enable-sorting",
setting_type = "startup",
default_value = false,
order = "m-a-a",
} or nil,
})
if mods["wood-industry"] then
data:extend({
{
type = "bool-setting",
name = "bzzirconium-basic-foundry",
setting_type = "startup",
default_value = false,
order = "k-a-a",
},
})
end

View file

@ -0,0 +1,49 @@
local util = require("__bzzirconium__.data-util");
local ore = "zircon"
local ore_icon = "__bzzirconium__/graphics/icons/zircon.png"
if mods["StrangeMatter"] then
data:extend({
{
type = "recipe",
name = ore.."-synthesis",
icons = {
{ icon = ore_icon, icon_size = 64 },
{ icon = "__StrangeMatter__/graphics/icons/fluid/matter.png", icon_size = 32, scale=0.5, shift= {-8, -8}},
},
enabled = false,
energy_required = 1,
ingredients = {{type="fluid", name="strange-matter", amount = 2}},
result = ore,
category = "crafting-with-fluid",
subgroup = "synthesis",
},
{
type = "technology",
name = ore.."-synthesis",
icons = {
{ icon = "__StrangeMatter__/graphics/icons/fluid/matter.png", icon_size = 32, shift= {-6, 0}},
{ icon = ore_icon, icon_size = 64, scale=0.25, shift={8, 8}},
},
prerequisites = {"stone-synthesis"},
effects = {
{
type = "unlock-recipe",
recipe = ore.."-synthesis",
},
},
unit = {
count = 800,
time = 30,
ingredients = {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
}
}
}
})
end

View file

@ -0,0 +1,46 @@
local util = require("__bzzirconium__.data-util");
util.add_prerequisite("advanced-material-processing", "zirconia-processing")
util.add_prerequisite("low-density-structure", "zirconia-processing")
util.set_prerequisite("explosives", {"zirconium-processing"})
util.add_prerequisite("military-3", "zirconium-processing")
util.add_prerequisite("nuclear-power", "zirconium-processing")
-- Nixie tubes
util.add_prerequisite("cathodes", "zirconia-processing")
util.add_prerequisite("SNTD-nixie-tubes-1", "zirconia-processing")
if util.me.use_cermet() then
-- production science techs behind cermet
util.add_prerequisite("effect-transmission", "cermet")
if not util.fe_plus("Machines") then
util.add_prerequisite("automation-3", "cermet")
else
util.add_prerequisite("mechanical-engineer", "cermet")
util.add_prerequisite("advanced-oil-processing-3", "cermet")
end
util.add_prerequisite("productivity-module-3", "cermet")
util.add_prerequisite("speed-module-3", "cermet")
util.add_prerequisite("effectivity-module-3", "cermet")
-- utility science techs behind cermet
util.add_prerequisite("rocket-control-unit", "cermet")
-- Bob's
util.add_prerequisite("chemical-plant-3", "cermet")
util.add_prerequisite("oil-processing-3", "cermet")
util.add_prerequisite("bob-drills-4", "cermet")
util.add_prerequisite("bob-area-drills-4", "cermet")
if mods["space-exploration"] then
util.set_tech_recipe("cermet",
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
})
util.add_prerequisite("cermet", "advanced-materials-processing-2")
util.remove_prerequisite("cermet", "production-science-pack")
end
end

BIN
bzzirconium2/thumbnail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

46
bzzirconium2/vulcanus.lua Normal file
View file

@ -0,0 +1,46 @@
local util = require("data-util")
if mods["space-age"] then
if not data.raw.recipe["stone-from-lava"] then
data:extend({
{
type = "recipe",
name = "stone-from-lava",
icons = {
{icon = "__space-age__/graphics/icons/fluid/lava.png", icon_size=64, shift={0,-8}},
{icon = "__base__/graphics/icons/stone.png", icon_size=64, scale = 0.333, shift={0,8}},
},
category = "metallurgy",
subgroup = "vulcanus-processes",
order = "a[melting]-a[lava-a]",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "item", name = "calcite", amount = 1},
{type = "fluid", name = "lava", amount = 500},
{type = "fluid", name = "water", amount = 250},
},
energy_required = 16,
results =
{
{type = "item", name = "stone", amount = 25},
},
allow_productivity = true
},
})
util.add_unlock("foundry", "stone-from-lava")
end
-- Any stone byproduct from lava is part stone, part zircon
for _, recipe in pairs(data.raw.recipe) do
if recipe.category == "metallurgy" and recipe.name:find("from.lava") then
local amount = util.get_amount(recipe.name, "stone")
if amount then
util.replace_some_product(recipe.name, "stone", amount / 2, "zircon", amount / 2)
log(amount.." Did "..recipe.name)
end
end
end
end

View file

@ -0,0 +1,32 @@
if simpleCompress then
if simpleCompress.ores then
simpleCompress.currentSubgroup = "intermediate-product"
if data.raw.item["tungsten-ore"] then
SimpleCompress_AddTintedItem("tungsten-ore", "ore4-tungsten", "ore", {r=0.90, g=0.90, b=0.75})
SimpleCompress_UnlockOreTechAndRecipe("tungsten-ore")
end
end
if simpleCompress.plates then
simpleCompress.currentSubgroup = "intermediate-product"
if data.raw.item["tungsten-plate"] then
SimpleCompress_AddTintedItem("tungsten-plate", "plates4-tungsten", "plate3", {r=0.90, g=0.90, b=0.75})
SimpleCompress_UnlockPlateTechAndRecipe("tungsten-plate")
local tungstenRecipe = data.raw.recipe["decompress-tungsten-plate"]
tungstenRecipe.order = "d[tungsten-plate]"
end
end
if simpleCompress.smelting then
if data.raw.item["tungsten-plate"] and data.raw.item["tungsten-plate"] then
SimpleCompress_AddSmeltingRecipe("tungsten-ore", "tungsten-plate")
SimpleCompress_UnlockOreSmeltingTech("tungsten-ore")
local tungstenRecipe = data.raw.recipe["smelt-compressed-tungsten-ore"]
tungstenRecipe.results = {
{type="item", name = "tungsten-plate", amount=simpleCompress.CompressedSmeltAmount},
}
tungstenRecipe.icons = {{ icon = "__bztungsten2__/graphics/icons/tungsten-plate.png", icon_size = 128 }}
tungstenRecipe.subgroup = "raw-material"
tungstenRecipe.order = "d[tungsten-plate]"
end
end
end

View file

@ -0,0 +1,51 @@
-- Matter recipes for Krastorio2
local util = require("__bzzirconium__.data-util");
if util.k2() then
util.k2matter({
k2matter = {
material = {
name = "zircon",
type = "item",
amount = 10,
},
matter_count = 6,
energy_required = 1,
needs_stabilizer = false,
unlocked_by = "zirconium-matter-processing",
},
k2baseicon = "stone",
icon = { icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size = 128, scale = 0.5}
}, false)
util.k2matter({
k2matter = {
material = {
name = "zirconia",
type = "item",
amount = 20,
},
matter_count = 10,
energy_required = 2,
needs_stabilizer = true,
only_deconversion = true,
unlocked_by = "zirconium-matter-processing",
},
}, true)
util.k2matter({
k2matter = {
material = {
name = "zirconium-plate",
type = "item",
amount = 10,
},
matter_count = 17,
energy_required = 2,
needs_stabilizer = true,
only_deconversion = true,
unlocked_by = "zirconium-matter-processing",
},
})
end

View file

@ -0,0 +1,80 @@
data:extend(
{
{
type = "optimized-particle",
name = "zircon-particle",
flags = {"not-on-map"},
life_time = 180,
pictures =
{
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
},
shadows =
{
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-shadow-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-shadow-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-shadow-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzzirconium__/graphics/entity/zircon-particle/hr-zircon-particle-shadow-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
}
}
}
)

View file

@ -0,0 +1,40 @@
local util = require("data-util");
-- Add zircon to rocks
local min = 1
local max = 5
if util.me.early() then
min = 7
max = 15
end
for _, e in pairs(data.raw["simple-entity"]) do
if (e.subgroup == "grass" or e.subgroup == "wrecks") and e.name:match("rock") then
local adjusted_max = e.name:match("huge") and max * 2 or max
local adjusted_min = e.name:match("huge") and min * 2 or min
util.add_minable_result("simple-entity", e.name, {type="item", name="zircon", amount_min=adjusted_min, amount_max=adjusted_max})
end
end
-- Add zirconia to stomper shells
min = 1
max = 10
for _, e in pairs(data.raw["simple-entity"]) do
if (e.subgroup == "grass") and e.name:match("shell") then
util.add_minable_result("simple-entity", e.name, {type="item", name="zirconia", amount_min=min, amount_max=max})
end
end
-- Add zircon to ploppable rock recipes
-- K2
util.add_ingredient("rock-big", "zircon", 15)
util.add_ingredient("rock-huge", "zircon", 30)
-- Dectorio
util.add_ingredient("dect-base-rock-big", "zircon", 15)
util.add_ingredient("dect-base-sand-rock-big", "zircon", 15)
util.add_ingredient("dect-base-rock-huge", "zircon", 30)
-- Do this last so we don't further modify it with the above
util.add_gleba_rock("zircon")

101
bzzirconium2/zircon.lua Normal file
View file

@ -0,0 +1,101 @@
local resource_autoplace = require('resource-autoplace');
local item_sounds = require('__base__.prototypes.item_sounds')
local util = require("data-util");
data.raw.planet.nauvis.map_gen_settings.autoplace_controls["zircon"] = {}
data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["zircon"] = {}
resource_autoplace.initialize_patch_set("zircon", true)
if mods.tenebris then
data.raw.planet.tenebris.map_gen_settings.autoplace_controls["zircon"] = {}
data.raw.planet.tenebris.map_gen_settings.autoplace_settings.entity.settings["zircon"] = {}
end
data:extend({
{
type = "autoplace-control",
category = "resource",
name = "zircon",
richness = true,
order = "a-z"
},
{
type = "resource",
name = "zircon",
icon = "__bzzirconium__/graphics/icons/zircon.png",
icon_size = 128,
flags = {"placeable-neutral"},
order="a-b-a",
map_color = {235, 141, 172},
tree_removal_probability = 0.7,
tree_removal_max_distance = 32 * 32,
minable =
{
hardness = 1,
mining_particle = "zircon-particle",
mining_time = 1.5,
result = "zircon"
},
collision_box = {{ -0.1, -0.1}, {0.1, 0.1}},
selection_box = {{ -0.5, -0.5}, {0.5, 0.5}},
autoplace = resource_autoplace.resource_autoplace_settings{
name = "zircon",
order = "a-z",
base_density = 4,
has_starting_area_placement = true,
regular_rq_factor_multiplier = 1.2,
starting_rq_factor_multiplier = 1.2,
},
stage_counts = {15000, 9500, 5500, 2900, 1300, 400, 150, 80},
stages =
{
sheet =
{
filename = "__bzzirconium__/graphics/entity/ores/hr-zircon.png",
priority = "extra-high",
size = 128,
frame_count = 8,
variation_count = 8,
scale = 0.5
}
},
},
{
type = "item",
name = "zircon",
icon_size = 128,
icon = "__bzzirconium__/graphics/icons/zircon.png",
pictures = {
{filename="__bzzirconium__/graphics/icons/zircon.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/zircon-1.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/zircon-2.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/zircon-3.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/zircon-4.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.resource_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.resource_inventory_move,
subgroup = "raw-resource",
order = "t-c-a",
weight = 1*kg,
stack_size = util.get_stack_size(50)
},
})
local richness = data.raw.resource["zircon"].autoplace.richness_expression
-- Modify zircon autoplace richness:
-- After 500 tiles it's standard
-- Up to 500 tiles, it scales up
data.raw.resource["zircon"].autoplace.richness_expression = richness..[[*
if(distance_from_nearest_point{x = x, y = y, points = starting_positions} < 500,
(distance_from_nearest_point{x = x, y = y, points = starting_positions} + 25)/525,
1)
]]
-- richness * noise.if_else_chain(
-- noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(500)),
-- (noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) + 25)/525,
-- 1)

View file

@ -0,0 +1,40 @@
local util = require("data-util");
if mods["space-age"] then
-- Due to explosives changes, we have to make some changes to asteroid processing.
--
data:extend({
{
type = "recipe",
name = "advanced-oxide-asteroid-crushing-zirc",
localised_name = {"", {"recipe-name.advanced-oxide-asteroid-crushing"},": ", {"item-name.zirconia"}},
icons =
{
{icon="__space-age__/graphics/icons/advanced-oxide-asteroid-crushing.png", icon_size=64},
{icon="__bzzirconium__/graphics/icons/zirconia.png", icon_size=128, scale=0.1875, shift={0,8}},
},
category = "crushing",
subgroup="space-crushing",
order = "f[advanced-oxide-asteroid-crushing]-z[zirconia]",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "item", name = "oxide-asteroid-chunk", amount = 1}
},
energy_required = 5,
results =
{
{type = "item", name = "ice", amount = 1},
{type = "item", name = "calcite", amount = 1},
{type = "item", name = "zirconia", amount = 3},
{type = "item", name = "oxide-asteroid-chunk", amount = 1, probability = 0.05}
},
hide_from_signal_gui = false,
allow_productivity = true,
allow_decomposition = false
},
})
util.add_unlock("advanced-asteroid-processing", "advanced-oxide-asteroid-crushing-zirc")
util.add_to_productivity_research("asteroid-productivity", "advanced-oxide-asteroid-crushing-zirc")
end

View file

@ -0,0 +1,124 @@
-- Enriched Titanium for Krastorio2
local util = require("__bzzirconium__.data-util");
if util.k2() then
data:extend({
{
type = "item",
name = "enriched-zircon",
icon_size = 128,
icon = "__bzzirconium__/graphics/icons/enriched-zircon.png",
pictures = {
{filename="__bzzirconium__/graphics/icons/enriched-zircon.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/enriched-zircon-2.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/enriched-zircon-3.png", size=128, scale=0.25},
{filename="__bzzirconium__/graphics/icons/enriched-zircon-4.png", size=128, scale=0.25},
},
subgroup = "raw-material",
order = "e05-a[enriched-ores]-a1[enriched-zircon]",
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "enriched-zircon",
icon = "__bzzirconium__/graphics/icons/enriched-zircon.png",
icon_size = 128,
category = "chemistry",
main_product = "enriched-zircon",
energy_required = 3,
enabled = false,
always_show_made_in = true,
always_show_products = true,
allow_productivity = true,
subgroup = "raw-material",
ingredients =
{
{type = "fluid", name = "sulfuric-acid", amount = 10},
{type = "fluid", name = "water", amount = 25, ignored_by_stats=25, ignored_by_productivity=25},
{type = "item", name = "zircon", amount = 9}
},
results =
{
{type = "item", name = "enriched-zircon", amount = 6},
{type = "fluid", name = "kr-dirty-water", amount = 25, ignored_by_stats=25, ignored_by_productivity=25},
(mods["bztitanium2"] and util.me.byproduct()) and {type = "item", name = "titanium-ore", amount = 1} or nil,
},
crafting_machine_tint =
{
primary = {r = 0.721, g = 0.525, b = 0.043, a = 0.000},
secondary = {r = 0.200, g = 0.680, b = 0.300, a = 0.357},
tertiary = {r = 0.690, g = 0.768, b = 0.870, a = 0.000},
quaternary = {r = 0.0, g = 0.980, b = 0.603, a = 0.900}
},
order = "e03[enriched-zircon]"
},
{
type = "recipe",
name = "enriched-zirconia-smelting",
icons =
{
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, icon_mipmaps = 3, },
{ icon = "__bzzirconium__/graphics/icons/enriched-zircon.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
},
category = "smelting",
energy_required = 24,
enabled = false,
always_show_made_in = true,
always_show_products = true,
allow_productivity = true,
ingredients =
{
{ type = "item", name = "enriched-zircon", amount = 5}
},
results = { { type = "item", name = "zirconia", amount = 10 } },
order = "z[zirconia]-z[enriched-zirconia]"
},
{
type = "recipe",
name = "dirty-water-filtration-zircon",
category = "kr-fluid-filtration",
icons =
{
{
icon = data.raw.fluid["kr-dirty-water"].icon,
icon_size = data.raw.fluid["kr-dirty-water"].icon_size
},
{
icon = data.raw.item["zircon"].icon,
icon_size = data.raw.item["zircon"].icon_size,
scale = 0.2 * 64 / (data.raw.item["zircon"].icon_size or 64),
shift = {0, 4}
}
},
-- icon_size = data.raw.fluid["dirty-water"].icon_size,
energy_required = 2,
enabled = false,
allow_as_intermediate = false,
always_show_made_in = true,
always_show_products = true,
ingredients =
{
{type = "fluid", name = "kr-dirty-water", amount = 100, ignored_by_stats=100, ignored_by_productivity=100},
},
results =
{
{type = "fluid", name = "water", amount = 90, ignored_by_stats=90, ignored_by_productivity=90},
{type = "item", name = "stone", probability = 0.20, amount = 1},
{type = "item", name = "zircon", probability = 0.20, amount = 1},
(mods["bztitanium2"] and util.me.byproduct()) and
{type = "item", name = "titanium-ore", probability = 0.20, amount = 1} or nil,
},
crafting_machine_tint =
{
primary = {r = 0.60, g = 0.20, b = 0, a = 0.6},
secondary = {r = 1.0, g = 0.843, b = 0.0, a = 0.9}
},
subgroup = "raw-material",
order = "w013[dirty-water-filtration-zircon]"
}
}
)
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "enriched-zircon" })
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "enriched-zirconia-smelting" })
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "dirty-water-filtration-zircon" })
end

View file

@ -0,0 +1,15 @@
local util = require("__bzzirconium__.data-util");
if mods["Rich-Rocks-Requiem"] then
if data.raw.recipe["rrr-stone-processing"] then
table.insert(data.raw.recipe["rrr-stone-processing"].results,
{name = "zircon", probability = 0.50, amount = 10}
)
end
if data.raw.recipe["rrr-raw-ores-processing"] then
table.insert(data.raw.recipe["rrr-raw-ores-processing"].results,
{name = "zircon", probability = 0.50, amount = 10}
)
end
end

View file

@ -0,0 +1,41 @@
-- Deadlock stacking recipes
local util = require("__bzzirconium__.data-util");
if deadlock and deadlock["add_stack"] then
deadlock.add_stack("zircon", "__bzzirconium__/graphics/icons/stacked/zircon-stacked.png", "deadlock-stacking-1", 64)
deadlock.add_stack("zirconia", "__bzzirconium__/graphics/icons/stacked/zirconia-stacked.png", "deadlock-stacking-2", 128)
deadlock.add_stack("zirconium-plate", "__bzzirconium__/graphics/icons/stacked/zirconium-plate-stacked.png" , "deadlock-stacking-2", 128)
if util.me.use_cermet() then
deadlock.add_stack("cermet", "__bzzirconium__/graphics/icons/stacked/cermet-stacked.png", "deadlock-stacking-2", 128)
end
if util.k2() then
deadlock.add_stack("enriched-zircon", "__bzzirconium__/graphics/icons/stacked/enriched-zircon-stacked.png" , "deadlock-stacking-2", 128)
end
if util.k2() or mods["space-exploration"] then
deadlock.add_stack("zirconium-tungstate", nil, "deadlock-stacking-2", 64)
end
if mods["space-exploration"] then
deadlock.add_stack("zirconium-ingot", nil, "deadlock-stacking-2", nil)
end
end
-- Deadlock crating recipes
if deadlock_crating then
deadlock_crating.add_crate("zircon", "deadlock-crating-1")
deadlock_crating.add_crate("zirconia", "deadlock-crating-2")
deadlock_crating.add_crate("zirconium-plate", "deadlock-crating-2")
if util.me.use_cermet() then
deadlock_crating.add_crate("cermet", "deadlock-crating-2")
end
if util.k2() then
deadlock_crating.add_crate("enriched-zircon", "deadlock-crating-2")
end
if util.k2() or mods["space-exploration"] then
deadlock_crating.add_crate("zirconium-tungstate", "deadlock-crating-2")
end
if mods["space-exploration"] then
deadlock_crating.add_crate("zirconium-ingot", "deadlock-crating-2")
end
end

View file

@ -0,0 +1,112 @@
-- Additional recipes if Space Exploration mod is enabled
local util = require("__bzzirconium__.data-util");
if mods["space-exploration"] then
se_delivery_cannon_recipes["zircon"] = {name= "zircon"}
se_delivery_cannon_recipes["zircaloy-4"] = {name= "zircaloy-4"}
se_delivery_cannon_recipes["zirconia"] = {name= "zirconia"}
se_delivery_cannon_recipes["zirconium-plate"] = {name= "zirconium-plate"}
util.se_landfill({ore="zircon"})
util.se_matter({ore="zircon", energy_required=1.5, quant_out=10, stream_out=60})
data:extend({
{
type = "item-subgroup",
name = "zirconium",
group = "resources",
order = "a-h-z-z",
}
})
util.set_item_subgroup("zirconia", "zirconium")
util.set_item_subgroup("zirconium-plate", "zirconium")
data.raw.recipe["zirconia"].subgroup = "zirconium"
data:extend({
{
type = "item",
name = "zirconium-ingot",
icons = {{icon = "__bzzirconium__/graphics/icons/zirconium-ingot.png", icon_size = 128}},
order = "b-b",
stack_size = 50,
subgroup = "zirconium",
},
{
type = "fluid",
name = "molten-zirconium",
default_temperature = 1852,
max_temperature = 1852,
base_color = {r=121, g=80, b=80},
flow_color = {r=121, g=80, b=80},
icons = {{icon = "__bzzirconium__/graphics/icons/molten-zirconium.png", icon_size = 128}},
order = "a[molten]-a",
pressure_to_speed_ratio = 0.4,
flow_to_energy_ratio = 0.59,
auto_barrel = false,
subgroup = "fluid",
},
{
type = "recipe",
category = "smelting",
name = "molten-zirconium",
main_product = "molten-zirconium",
subgroup = "zirconium",
results = {
{type = "fluid", name = "molten-zirconium", amount = util.k2() and 750 or 900},
},
energy_required = 60,
ingredients = {
{ type = "item", name = "zirconia", amount = 24},
{type = "fluid", name = "se-pyroflux", amount = 10},
},
enabled = false,
always_show_made_in = true,
allow_as_intermediate = false,
order = "a-a"
},
{
type = "recipe",
name = "zirconium-ingot",
category = "casting",
results = {{type = "item", name = "zirconium-ingot", amount = 1}},
energy_required = 75,
ingredients = {
{type = "fluid", name = "molten-zirconium", amount = 750},
},
enabled = false,
always_show_made_in = true,
allow_as_intermediate = false,
},
{
type = "recipe",
category = "crafting",
name = "zirconium-ingot-to-plate",
icons = {
{icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128, icon_mipmaps = 3},
{icon = "__bzzirconium__/graphics/icons/zirconium-ingot.png", icon_size = 128, scale = 0.125, shift = {-8, -8}},
},
results = {
{type = "item", name = "zirconium-plate", amount = 10},
},
energy_required = 5,
ingredients = {
{type = "item", name = "zirconium-ingot", amount = 1}
},
enabled = false,
always_show_made_in = true,
allow_decomposition = false,
order = "a-c-b"
},
})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "molten-zirconium"})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "zirconium-ingot"})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "zirconium-ingot-to-plate"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "molten-zirconium"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "zirconium-ingot"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "zirconium-ingot-to-plate"})
if util.k2() then
util.set_item_subgroup("enriched-zircon", "zirconium")
se_delivery_cannon_recipes["enriched-zirconium"] = {name= "enriched-zirconium"}
end
se_delivery_cannon_recipes["zirconium-ingot"] = {name= "zirconium-ingot"}
end

View file

@ -0,0 +1,12 @@
local util = require("data-util");
if util.k2() then
util.replace_some_ingredient("low-density-structure", "copper-plate", 5, "zirconia", 5)
else
util.replace_some_ingredient("low-density-structure", "copper-plate", 10, "zirconia", 10)
util.replace_some_ingredient("casting-low-density-structure", "molten-copper", 125, "zirconia", 10)
end
if mods["space-exploration"] then
util.replace_some_ingredient("se-aeroframe-scaffold", "se-aeroframe-pole", 1, "zirconia", 2)
end

View file

@ -0,0 +1,284 @@
local util = require("data-util");
local nuclear_plate = mods["bzlead2"] and "lead-plate" or "iron-plate"
local nuclear_z = data.raw.item["zircaloy-4"] and "zircaloy-4" or "zirconium-plate"
if mods.bzfoundry2 and data.raw.item["foundry"] then
util.set_to_founding("zircaloy-4")
end
if mods["space-age"] then
util.add_ingredient("foundry", "zirconia", 20)
end
-- space age
util.replace_ingredient("metallurgic-science-pack", "tungsten-plate", "zirconium-tungstate")
util.add_ingredient("cryogenic-plant", "zirconium-tungstate", 20)
if mods["space-age"] and mods["bztin2"] and util.me.basic_foundry() then
util.copy_recipe("bronze-plate", "bronze-plate-basic")
util.set_category("bronze-plate-basic", "basic-metallurgy")
util.set_localised_name("bronze-plate-basic", {"item-name.bronze-plate"})
util.add_unlock("advanced-material-processing-2", "bronze-plate-basic")
util.multiply_ingredients("bronze-plate", 2)
end
-- Wooden Industry kilns
util.add_crafting_category("assembling-machine", "brick-kiln", "basic-metallurgy")
util.add_crafting_category("assembling-machine", "electric-kiln", "basic-metallurgy")
util.set_category("cermet", "kiln-smelting")
if util.me.early() then
util.replace_some_ingredient("stone-furnace", "stone", 1, "zircon", 1)
end
if not util.k2() then
util.replace_some_ingredient("steel-furnace", "stone-brick", 4, "zirconia", 6)
if mods["bzsilicon2"] then -- this uses enough stone, we can just replace
util.replace_ingredient("electric-furnace", "stone-brick", "zirconia")
else
util.replace_some_ingredient("electric-furnace", "stone-brick", 5, "zirconia", 5)
end
end
if mods["Cerys-Moon-of-Fulgora"] then
util.replace_ingredient("concrete", "iron-ore", "zircon", 10)
else
util.replace_ingredient("concrete", "iron-ore", "zircon")
end
if mods["aai-industry"] then
util.add_ingredient("concrete", "zircon", 1)
end
-- Zirconium in explosives
util.add_ingredient("explosives", "zirconium-plate", 1)
util.set_recipe_time("explosives", 6)
util.set_product_amount("explosives", "explosives", 3)
util.add_ingredient("nuclear-reactor", nuclear_z, 100)
local ufc_amt = util.k2() and 1 or 5
if not mods.Atomic_Overhaul then
util.replace_some_ingredient("uranium-fuel-cell", nuclear_plate, 5, nuclear_z, ufc_amt)
end
if not mods.bztungsten2 then
util.add_ingredient("nuclear-fuel", nuclear_z, 1)
end
util.add_ingredient("rocket-engine-nozzle", "zirconia", 1)
util.add_to_product("rocket-engine-nozzle", "rocket-engine-nozzle", 1)
util.add_time("rocket-engine-nozzle", 5)
util.add_ingredient("rocket-engine-nozzle-basic", "zirconia", 1)
util.add_to_product("rocket-engine-nozzle-basic", "rocket-engine-nozzle", 1)
util.add_time("rocket-engine-nozzle-basic", 5)
if util.me.use_cermet() then
util.add_ingredient("rocket-control-unit", "cermet", 1)
util.add_ingredient("speed-module-3", "cermet", 1)
util.add_ingredient("productivity-module-3", "cermet", 1)
util.add_ingredient("efficiency-module-3", "cermet", 1)
util.add_ingredient("quality-module-3", "cermet", 1)
util.add_ingredient("beacon", "cermet", 10)
util.add_ingredient("electromagnetic-plant", "cermet", 50)
util.add_ingredient("spidertron", "cermet", 8)
if not util.fe_plus("Machines") then
util.add_ingredient("assembling-machine-3", "cermet", 2)
else
util.add_ingredient("assembling-machine-4", "cermet", 2)
util.add_ingredient("assembling-machine-5", "cermet", 2)
util.add_ingredient("chemical-plant-mk3", "cermet", 2)
util.add_ingredient("oil-refinery-mk3", "cermet", 4)
end
end
-- More FE+
if util.fe_plus("Machines") then
util.add_ingredient("electric-furnace-mk2", "zirconia", 10)
util.add_ingredient("electric-furnace-mk3", "zirconia", 10)
util.add_ingredient("oil-refinery-mk2", "zirconia", 10)
util.add_ingredient("pumpjack-mk2", "zirconia", 10)
end
-- Krastorio2
if util.k2() then
util.replace_some_ingredient("matter-stabilizer", "imersium-plate", 1, "zirconium-plate", 5)
util.add_ingredient("kr-advanced-furnace", "zirconia", 60)
if util.me.use_cermet() then
util.add_ingredient("ai-core", "cermet", 2)
util.add_ingredient("kr-matter-assembler", "cermet", 4)
end
util.add_ingredient("kr-fusion-reactor", nuclear_z, 350)
util.add_ingredient("kr-antimatter-reactor", nuclear_z, 350)
if util.me.early() then
util.replace_some_ingredient("stone-brick", "stone", 5, "zircon", 5)
end
if mods["space-exploration"] then
util.replace_some_ingredient("se-stone-brick-vulcanite", "stone", 2, "zircon", 2)
end
if not mods.bztungsten2 then
util.add_ingredient("matter-research-data", "zirconia", 5)
end
end
-- Space Exploration
if mods["space-exploration"] then
util.replace_some_ingredient("se-heat-shielding", "stone-tablet", 10, "zirconia", 10)
util.replace_ingredient("se-heat-shielding-iridium", "stone-tablet", "zirconia")
util.add_ingredient("se-thruster-suit", "zirconium-plate", 10)
util.add_ingredient("se-space-thermodynamics-laboratory", "zirconium-plate", 20)
if util.me.use_cermet() then
util.add_ingredient("se-quantum-processor", "cermet", 1)
util.add_ingredient("se-space-mechanical-laboratory", "cermet", 40)
end
if not mods.bztungsten2 then
util.add_ingredient("se-hot-thermodynamics-data", "zirconium-plate", 1)
util.add_product("se-hot-thermodynamics-data", {type="item", name="zirconium-plate", amount=1, probability=0.50})
end
util.add_ingredient("se-experimental-alloys-data", "zirconium-plate", 1)
util.add_to_product("se-experimental-alloys-data", "se-experimental-alloys-data", 1)
util.add_to_product("se-experimental-alloys-data", "se-scrap", 1)
util.add_to_ingredient("se-experimental-alloys-data", "se-empty-data", 1)
util.add_ingredient("se-antimatter-reactor", nuclear_z, 350)
end
-- AAI
util.add_ingredient("industrial-furnace", "zirconium-plate", 4)
-- Aircraft
util.add_ingredient("gunship", "zirconia", 10)
util.add_ingredient("cargo-plane", "zirconia", 20)
util.add_ingredient("jet", "zirconia", 50)
util.add_ingredient("flying-fortress", "zirconia", 80)
util.add_ingredient("aircraft-afterburner", "zirconia", 5)
util.add_ingredient("mega-furnace", "zirconia", 5)
util.add_ingredient("nuclear-furnace-4", "zirconia", 400)
util.add_ingredient("nuclear-furnace-5", nuclear_z, 400)
-- ShiveroFixes's nuclear
util.replace_some_ingredient("shiveros_thorium_fuel_cell", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("shiveros_plutonium_fuel_cell", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("shiveros_uranium-233_fuel_cell", nuclear_plate, 50, nuclear_z, 50)
util.replace_some_ingredient("shiveros_uranium-234_fuel_cell", nuclear_plate, 25, nuclear_z, 25)
-- Atomic Overhaul
util.replace_ingredient("empty-fuel-cell-recipe", "iron-plate", nuclear_z)
util.replace_some_ingredient("breeder-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("mox-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("MOX-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("MOX-fuel", nuclear_plate, 5, nuclear_z, 5)
util.replace_some_ingredient("mox-fuel", nuclear_plate, 5, nuclear_z, 5)
util.add_ingredient("advanced-electric-furnace-rampant-industry", "zirconia", 50)
-- MadClown's Nuclear
util.replace_some_ingredient("mixed-oxide", nuclear_plate, 1, nuclear_z, 1)
util.add_ingredient("thermonuclear-bomb", nuclear_z, 100)
-- MadClown's Science
util.add_ingredient("particle-accelerator-mk1", "zirconium-plate", 1000)
util.add_ingredient("particle-accelerator-mk2", "zirconium-plate", 1000)
-- Realistic Reactors
util.add_ingredient("realistic-reactor", nuclear_z, 100)
util.add_ingredient("breeder-reactor", nuclear_z, 100)
-- Plutonium Energy
util.add_ingredient("MOX-reactor", nuclear_z, 400)
-- Schall
util.add_ingredient("Schall-radioactive-waste-incinerator", "zirconia", 25)
-- RITEG
util.add_ingredient("RITEG-1", nuclear_z, 10)
util.add_ingredient("RITEG-cyan", nuclear_z, 10)
util.add_ingredient("RITEG-breeder", nuclear_z, 10)
-- Nixie tubes
util.add_ingredient("nixie-tube", "zirconium-plate", 1)
util.add_ingredient("nixie-tube-alpha", "zirconium-plate", 1)
util.add_ingredient("nixie-tube-small", "zirconium-plate", 1)
util.add_ingredient("SNTD-old-nixie-tube", "zirconium-plate", 1)
util.add_ingredient("SNTD-nixie-tube", "zirconium-plate", 1)
util.add_ingredient("SNTD-nixie-tube-small", "zirconium-plate", 1)
-- RFP
util.add_ingredient("rfp-reactor", nuclear_z, 1000)
util.add_ingredient("rfp-reactor", "zirconia", 1000)
util.add_ingredient("rfp-aneutronic-reactor", nuclear_z, 5000)
util.add_ingredient("rfp-particle-accelerator", "zirconium-plate", 1000)
util.add_ingredient("rfp-particle-decelerator", "zirconium-plate", 1000)
util.replace_some_ingredient("rfp-matter-antimatter-fuel-cell-empty", "steel-plate", 10, nuclear_z, 10)
-- Transplutonic
util.add_ingredient("pu238-fuel", nuclear_z, 5)
util.add_ingredient("np237-fuel", nuclear_z, 5)
util.add_ingredient("plutonium-mix-fuel", nuclear_z, 5)
util.add_ingredient("neptunium-mix-fuel", nuclear_z, 5)
util.add_ingredient("uranium-mix-fuel", nuclear_z, 5)
util.add_ingredient("plutonium-inv-dead", nuclear_z, 5)
util.add_ingredient("neptunium-inv-dead", nuclear_z, 5)
util.add_ingredient("uranium-inv-dead", nuclear_z, 5)
util.add_ingredient("castorempty", nuclear_z, 50)
util.add_ingredient("breeder-reactor", nuclear_z, 250)
util.add_ingredient("particle-accelerator", nuclear_z, 250)
-- Cermet in other mods
if util.me.use_cermet() then
util.add_ingredient("advanced-assembler-rampant-industry", "cermet", 30)
util.add_ingredient("advanced-electric-furnace-rampant-industry", "cermet", 30)
util.add_ingredient("advanced-oil-refinery-rampant-industry", "cermet", 30)
if mods["modules-t4"] then
util.add_ingredient("speed-module-4", "cermet", 6)
util.add_ingredient("productivity-module-4", "cermet", 6)
util.add_ingredient("effectivity-module-4", "cermet", 6)
end
-- Various assemblers
if mods["zombiesextended-core"] then
util.add_ingredient("assembling-machine-mk1", "cermet", 1)
util.add_ingredient("assembling-machine-mk2", "cermet", 1)
util.add_ingredient("assembling-machine-mk3", "cermet", 1)
end
-- Bob's machines
util.add_ingredient("chemical-plant-3", "cermet", 2)
util.add_ingredient("chemical-plant-4", "cermet", 2)
util.add_ingredient("assembling-machine-4", "cermet", 3)
util.add_ingredient("assembling-machine-5", "cermet", 4)
util.add_ingredient("assembling-machine-6", "cermet", 5)
util.add_ingredient("oil-refinery-3", "cermet", 10)
util.add_ingredient("oil-refinery-4", "cermet", 10)
util.add_ingredient("bob-mining-drill-4", "cermet", 5)
util.add_ingredient("bob-area-mining-drill-4", "cermet", 5)
end
-- Bob's - bobplates
util.replace_some_ingredient("plutonium-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
-- True nukes
util.replace_some_ingredient("tritium-breeder-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
-- Hazmat suit
util.replace_some_ingredient("mil-grade-fuel-cell", nuclear_plate, 5, nuclear_z, 5)
-- Power Armor Mk3
util.add_ingredient("pamk3-battmk3", "zirconium-plate", 5)
util.add_ingredient("pamk3-pamk4", "zirconium-plate", 10)

View file

@ -0,0 +1,488 @@
-- Zirconium smelting, etc
local util = require("data-util");
local item_sounds = require('__base__.prototypes.item_sounds')
data:extend({
{
type = "item",
name = "zirconia",
icon = "__bzzirconium__/graphics/icons/zirconia.png",
icon_size = 128,
inventory_move_sound = item_sounds.brick_inventory_move,
pick_sound = item_sounds.brick_inventory_pickup,
drop_sound = item_sounds.brick_inventory_move,
subgroup = "raw-material",
order = "z[zirconia]",
weight = 1*kg,
stack_size = util.get_stack_size(200)
},
{
type = "recipe",
name = "zirconia",
subgroup = "raw-material",
category = "smelting",
allow_productivity = true,
order = "z[zirconia]",
icons = (util.k2() and
{
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128 },
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size = 128, scale=0.25, shift= {-8, -8}},
} or {
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, },
}
),
-- (util.k2() and
-- {
-- main_product = "zirconia",
-- enabled = false,
-- energy_required = 8,
-- ingredients = {util.item("zircon", 5)},
-- results = mods["bztitanium"] and util.me.byproduct() and {
-- { type = "item", name = "zirconia", amount_min=4, amount_max=5},
-- { type = "item", name = "titanium-ore", amount=1, probability=.5}
-- } or {util.item("zirconia", 5)}
-- } or
main_product = "zirconia",
enabled = false,
energy_required = 6.4,
ingredients = {util.item("zircon", 1)},
results = mods["bztitanium2"] and util.me.byproduct() and {
{type="item", name="zirconia", amount=2, probability=.95},
{type="item", name="titanium-ore", amount=1, probability=.1}
} or {util.item("zirconia", 2)}
-- expensive =
-- {
-- main_product = "zirconia",
-- enabled = false,
-- energy_required = 3.2,
-- ingredients = {util.item("zircon", 1)},
-- results = mods["bztitanium"] and util.me.byproduct() and {
-- util.item("zirconia", 1), { type = "item", name = "titanium-ore", amount=1, probability=.05}
-- } or {util.item("zirconia", 2)}
-- }
},
{
type = "item",
name = "zirconium-sponge",
icon = "__bzzirconium__/graphics/icons/zirconium-sponge.png",
icon_size = 128,
pictures = {
{filename = "__bzzirconium__/graphics/icons/zirconium-sponge.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/zirconium-sponge-1.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/zirconium-sponge-2.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.wire_inventory_move,
pick_sound = item_sounds.wire_inventory_pickup,
drop_sound = item_sounds.wire_inventory_move,
subgroup = "raw-material",
order = "z[zirconia]",
weight = 1*kg,
stack_size = util.get_stack_size(50)
},
{
type = "recipe",
name = "zirconium-sponge",
main_product = "zirconium-sponge",
subgroup = "raw-material",
category = "chemistry",
allow_productivity = true,
order = "z[zirconia]",
energy_required = 1.6,
enabled = false,
auto_recycle = false,
ingredients = {util.item("zirconia", 1), util.fluid("sulfuric-acid", 5)},
results = {util.item("zirconium-sponge", 1)},
},
{
type = "item",
name = "zirconium-plate",
icon = "__bzzirconium__/graphics/icons/zirconium-plate.png",
icon_size = 128,
subgroup = "raw-material",
order = "d[zirconium-plate]",
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,
weight = 1*kg,
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "zirconium-plate",
category = "smelting",
allow_productivity = true,
subgroup = "raw-material",
auto_recycle = false,
order = "d[zirconium-plate]",
icons = (util.k2() and
{
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128 },
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
} or {
{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128, },
}
),
-- (util.k2() and
-- {
-- enabled = false,
-- energy_required = 8,
-- ingredients = {util.item("zirconia", 15)},
-- results = {util.item("zirconium-plate", 5)},
-- } or
enabled = false,
energy_required = 3.2,
ingredients = {util.item("zirconium-sponge", 1)},
results = {util.item("zirconium-plate", 1)},
-- expensive =
-- {
-- enabled = false,
-- energy_required = 9.6,
-- ingredients = {util.item("zirconia", 6)},
-- result = "zirconium-plate",
-- }
},
{
type = "technology",
name = "zirconia-processing",
icon_size = 340,
icon = "__bzzirconium__/graphics/technology/zirconia-processing.png",
effects =
{
{
type = "unlock-recipe",
recipe = "zirconia"
},
},
research_trigger = {type="mine-entity", entity="zircon"},
order = "z"
},
{
type = "technology",
name = "zirconium-processing",
icon_size = 128,
icon = "__bzzirconium__/graphics/icons/zirconium-plate.png",
effects =
{
{
type = "unlock-recipe",
recipe = "zirconium-sponge",
},
{
type = "unlock-recipe",
recipe = "zirconium-plate",
},
},
unit =
{
count = 75,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
},
time = 30,
},
prerequisites = {"zirconia-processing", "sulfur-processing"},
order = "z"
},
})
-- cermet only if setting enabled
if util.me.use_cermet() then
local cermet_i = {util.item("zirconia", 2), util.item("copper-plate", 1)}
if mods["bztitanium2"] and data.raw.item["titanium-plate"] then
local tme = require("__bztitanium2__.me");
table.insert(cermet_i, util.item(tme.titanium_plate, 1))
end
if mods["bzsilicon2"] then
table.insert(cermet_i, util.item("silica", 1))
end
if mods.bzaluminum2 then
table.insert(cermet_i, util.item("alumina", 1))
end
data:extend({
{
type = "item",
name = "cermet",
icon = "__bzzirconium__/graphics/icons/cermet.png",
icon_size = 128,
pictures = {
{filename = "__bzzirconium__/graphics/icons/cermet.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/cermet-1.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/cermet-2.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/cermet-3.png", size=128, scale=0.25},
{filename = "__bzzirconium__/graphics/icons/cermet-4.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.wire_inventory_move,
pick_sound = item_sounds.wire_inventory_pickup,
drop_sound = item_sounds.wire_inventory_move,
subgroup = "intermediate-product",
order = "z[cermet]",
weight = 0.5*kg,
stack_size = util.get_stack_size(200)
},
{
type = "recipe",
name = "cermet",
category = "crafting",
subgroup = "intermediate-product",
allow_productivity = true,
auto_recycle = false,
order = "z[zirconia]",
icons = { { icon = "__bzzirconium__/graphics/icons/cermet.png", icon_size = 128, } },
enabled = false,
energy_required = #cermet_i + 1,
ingredients = cermet_i,
results = {util.item("cermet", #cermet_i + 1)},
},
{
type = "technology",
name = "cermet",
icon_size = 512,
icon = "__bzzirconium__/graphics/technology/cermet.png",
effects =
{
{
type = "unlock-recipe",
recipe = "cermet"
},
},
unit =
{
count = 100,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 30,
},
prerequisites = {"zirconia-processing"},
order = "c"
},
})
if mods["bztitanium2"] then
util.add_prerequisite("cermet", util.titanium_processing)
end
end
-- sorting
if util.me.enable_sorting() or mods.quality then
data:extend({
{
type = "recipe",
name = "sort-stone-zircon",
category = mods["quality"] and "recycling-or-hand-crafting" or "crafting",
subgroup = "raw-resource",
order = "bzz",
icons = {
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size=128, scale=0.25, shift={4,4}},
{ icon = "__base__/graphics/icons/stone.png", icon_size=64, scale=0.25, shift={-4,-4}},
},
enabled = not mods.quality,
energy_required = 1,
allow_decomposition = false,
ingredients = {util.item("stone", 2)},
results = {
{type="item", name="zircon", amount=1},
{type="item", name="stone", amount=1, probability=0.5},
}
},
{
type = "recipe",
name = "sort-zircon-stone",
category = mods["quality"] and "recycling-or-hand-crafting" or "crafting",
subgroup = "raw-resource",
order = "bzz",
icons = {
{ icon = "__base__/graphics/icons/stone.png", icon_size=64, scale=0.5, shift={4,4} },
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size=128, scale=0.125, shift={-4,-4}},
},
enabled = not mods.quality,
energy_required = 1,
allow_decomposition = false,
ingredients = {util.item("zircon", 2)},
results = {
{type="item", name="stone", amount=1},
{type="item", name="zircon", amount=1, probability=0.5},
}
}
})
util.add_unlock("recycling", "sort-zircon-stone")
util.add_unlock("recycling", "sort-stone-zircon")
if mods.lignumis then
util.set_enabled("sort-zircon-stone", true)
util.set_enabled("sort-stone-zircon", true)
end
end
if mods["space-age"] then
-- Gleba
local synth_i = "stone"
if mods["bzsilicon2"] then
synth_i = "silica"
elseif data.raw.item["sand"] then
synth_i = "sand"
elseif data.raw.item["kr-sand"] then
synth_i = "kr-sand"
end
data:extend({
{
type = "recipe",
name = "zircon-synthesis",
category = "organic",
subgroup = "raw-material",
order = "z[zircon]",
icons = {
{ icon = "__bzzirconium__/graphics/icons/zircon.png", icon_size=128},
{ icon = "__bzzirconium__/graphics/icons/zirconium-sponge.png", icon_size=128, scale=0.25, shift={-8,-8}},
},
enabled = false,
energy_required = 10,
allow_decomposition = false,
ingredients = {
util.item("zirconium-sponge", 1),
util.item(synth_i, 1),
},
results = {util.item("zircon", 1)},
},
{
type = "recipe",
name = "zirconia-from-egg",
localised_name = {"item-name.zirconia"},
category = "organic",
subgroup = "raw-material",
order = "z[zircon]",
icons = {
{ icon = "__bzzirconium__/graphics/icons/zirconia.png", icon_size=128},
{ icon = "__space-age__/graphics/icons/pentapod-egg.png", icon_size=64, scale=0.25, shift={-4,-4}},
},
enabled = false,
energy_required = 6,
allow_decomposition = false,
ingredients = {
util.item("pentapod-egg", 1),
},
results = {util.item("zirconia", 3)},
},
})
util.add_unlock("biochamber", "zircon-synthesis")
util.add_unlock("biochamber", "zirconia-from-egg")
-- Vulcanus
util.add_vacuum()
data:extend({
{
type = "recipe",
name = "zirconium-in-foundry",
localised_name = {"item-name.zirconium-plate"},
category = "metallurgy",
allow_productivity = true,
subgroup = "vulcanus-processes",
order = "d[zirconium-plate]",
icons ={{ icon = "__bzzirconium__/graphics/icons/zirconium-plate.png", icon_size = 128}},
enabled = false,
energy_required = 3.2,
ingredients = {util.item("zirconium-sponge", 1), util.fluid("vacuum")},
results = {util.item("zirconium-plate", 1)},
},
{
type = "recipe",
name = "zirconium-gettering",
main_product = "vacuum",
category = "chemistry",
subgroup = "vulcanus-processes",
order = "d[zirconium-gettering]",
icons = {
util.vacuum_icon,
{ icon = "__bzzirconium__/graphics/icons/zirconium-sponge.png", icon_size = 128, scale=0.125, shift = {-8, -8}},
},
enabled = false,
allow_productivity = true,
energy_required = 5,
ingredients = {util.item("zirconium-sponge")},
results = {
util.fluid("vacuum", 100),
util.item("stone", 1),
},
show_amount_in_title = false,
},
})
util.add_unlock("foundry", "zirconium-in-foundry")
util.add_unlock("foundry", "zirconium-gettering")
end
-- Zirconium Tungstate, only if needed
if mods["space-age"] or (mods.bztungsten2 and (util.k2() or mods["space-exploration"])) then
data:extend({
{
type = "item",
name = "zirconium-tungstate",
icons = {{icon = "__bzzirconium__/graphics/icons/zircon-powder.png",
icon_size = 64, tint = {a=1, r=.95, g=.75, b=0}}},
inventory_move_sound = item_sounds.sulfur_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.sulfur_inventory_move,
subgroup = "intermediate-product",
order = "z[zz]",
weight = 2*kg,
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "zirconium-tungstate",
category = "chemistry",
subgroup = "intermediate-product",
allow_productivity = true,
order = "z[zz]",
enabled = false,
energy_required = 2,
ingredients = {util.item("zirconium-plate", 1), util.item("tungsten-plate", 1),},
results = {util.item("zirconium-tungstate", 2)},
},
})
if mods["space-age"] then
util.add_effect("tungsten-steel", { type = "unlock-recipe", recipe = "zirconium-tungstate" })
else
util.add_effect("zirconia-processing", { type = "unlock-recipe", recipe = "zirconium-tungstate" })
end
end
-- Zircaloy-4 only if needed
if mods["bztin2"] and not mods.bobplates then
require("basic-foundry")
local zircaloyi = {
util.item("zirconium-sponge", 17),
util.item("tin-plate", 2),
util.item("iron-plate", 1),
}
data:extend({
{
type = "item",
name = "zircaloy-4",
icons = {{icon = "__bzzirconium__/graphics/icons/zircaloy-4.png", icon_size = 128}},
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,
subgroup = "intermediate-product",
order = "z[zz]",
weight = 5*kg,
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "zircaloy-4",
category = mods["space-age"] and "basic-metallurgy" or "advanced-crafting",
allow_productivity = true,
auto_recycle = false,
order = "z[zz]",
enabled = false,
energy_required = 60,
ingredients = zircaloyi,
results = {util.item("zircaloy-4", 20)},
},
})
util.add_effect("advanced-material-processing-2", { type = "unlock-recipe", recipe = "zircaloy-4" })
end