Compare commits
11 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac78a8884f | ||
|
|
7f51d8071d | ||
|
|
7a8e556469 | ||
|
|
bbd4a48441 | ||
|
|
7f5fd5705d | ||
|
|
2a9cc689f9 | ||
|
|
407068968c | ||
|
|
ff57a87914 | ||
|
|
215dd76d90 | ||
|
|
1adf84ef1a | ||
|
|
3c0ebc98e2 |
11 changed files with 68 additions and 58 deletions
|
|
@ -1,4 +1,26 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.2.9
|
||||
Date: 01.10.2025
|
||||
Changes:
|
||||
- Add support for Any Planet Start (Fulgora)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.2.8
|
||||
Date: 22.09.2025
|
||||
Changes:
|
||||
- Add support for Glass (https://mods.factorio.com/mod/Glass)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.2.7
|
||||
Date: 22.08.2025
|
||||
Bug Fixes:
|
||||
- Simplify weight calculation to prevent infinite recursion (https://mods.factorio.com/mod/hot-metals/discussion/68a3a137a86e2ca3d73388fe)
|
||||
- Always show hot variants in filter menus (https://mods.factorio.com/mod/hot-metals/discussion/685ac28c1436373189fc0bff)
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.2.6
|
||||
Date: 18.04.2025
|
||||
Changes:
|
||||
- Add polish translation (I forgot who did it :-( )
|
||||
- Move technology changes to final fixes stage
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 1.2.5
|
||||
Date: 04.02.2025
|
||||
Changes:
|
||||
|
|
|
|||
1
hot-metals/compatibility/Glass.lua
Normal file
1
hot-metals/compatibility/Glass.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
table.insert(HotMetals.items, "glass-plate")
|
||||
10
hot-metals/compatibility/any-planet-start.lua
Normal file
10
hot-metals/compatibility/any-planet-start.lua
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
local planet = settings.startup["aps-planet"].value
|
||||
|
||||
if planet == "fulgora" then
|
||||
table.merge(HotMetals.skipTechUnlocksFor, {
|
||||
"low-density-structure",
|
||||
"steel-plate",
|
||||
"plastic-bar",
|
||||
"concrete"
|
||||
})
|
||||
end
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
local modList = {
|
||||
"space-age",
|
||||
"aai-industry",
|
||||
"any-planet-start",
|
||||
"Glass",
|
||||
"planet-muluna"
|
||||
}
|
||||
|
||||
|
|
|
|||
1
hot-metals/data-final-fixes.lua
Normal file
1
hot-metals/data-final-fixes.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
require("prototypes/hot-metals-final")
|
||||
BIN
hot-metals/graphics/icons/hot-glass-plate.png
Normal file
BIN
hot-metals/graphics/icons/hot-glass-plate.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": "hot-metals",
|
||||
"version": "1.2.5",
|
||||
"version": "1.2.9",
|
||||
"title": "Hot metals",
|
||||
"description": "A furnace doesn't just output cold usable results. You need to wait for them to cool down.",
|
||||
"author": "cackling fiend",
|
||||
"homepage": "",
|
||||
"homepage": "https://discord.gg/ufvFUJtVwk",
|
||||
"factorio_version": "2.0",
|
||||
"dependencies": [
|
||||
"base",
|
||||
|
|
|
|||
12
hot-metals/locale/pl/strings.cfg
Normal file
12
hot-metals/locale/pl/strings.cfg
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
[item-name]
|
||||
hot=Hot
|
||||
|
||||
[mod-setting-name]
|
||||
hot-metals-time=Czas stygnięcia
|
||||
hot-metals-plastic=Dodaj gorący plastik
|
||||
hot-metals-bricks=dodaj gorące kamienne cegły i beton
|
||||
|
||||
[mod-setting-description]
|
||||
hot-metals-time=Czas w sekundach, jaki jest potrzebny, aby gorący przedmiot ostygł.
|
||||
hot-metals-plastic=Chociaż temperatura gorącego plastiku jest znacznie niższa w porównaniu do metali, możesz chcieć mieć jego gorącą wersję.
|
||||
hot-metals-bricks=Kamienne cegły i beton nie są domyślnie uwzględnione. Jeśli lubisz grać z gorącymi wariantami, możesz włączyć tę opcję.
|
||||
9
hot-metals/prototypes/hot-metals-final.lua
Normal file
9
hot-metals/prototypes/hot-metals-final.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
-- Change technology triggers
|
||||
for _, tech in pairs(data.raw.technology) do
|
||||
if tech.research_trigger then
|
||||
local item = data.raw.item[tech.research_trigger.item]
|
||||
if item and item.hot_item and not contains(HotMetals.skipTechUnlocksFor, item.name) then
|
||||
tech.research_trigger.item = item.hot_item
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,52 +1,5 @@
|
|||
local defaultSpoilTicks = settings.startup["hot-metals-time"].value * 60
|
||||
|
||||
---@param name data.ItemID
|
||||
---@return data.ItemPrototype?
|
||||
function getItem(name)
|
||||
if data.raw.item[name] then
|
||||
return data.raw.item[name] --[[@as data.ItemPrototype]]
|
||||
end
|
||||
for item_type in pairs(defines.prototypes.item) do
|
||||
local type_lookup = data.raw[item_type]
|
||||
if type_lookup and type_lookup[name] then
|
||||
return type_lookup[name] --[[@as data.ItemPrototype]]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---@param table item
|
||||
---@return number
|
||||
function getWeight(item)
|
||||
if type(item) == "string" then
|
||||
item = getItem(item)
|
||||
end
|
||||
if item.weight then return item.weight end
|
||||
local factor = item.ingredient_to_weight_coefficient or 0.5
|
||||
for _, recipe in pairs(data.raw.recipe) do
|
||||
if recipe.results == nil then
|
||||
goto continue
|
||||
end
|
||||
local function isResultMatch(result)
|
||||
return result.name == item.name
|
||||
end
|
||||
local results = table.filter(recipe.results, isResultMatch)
|
||||
if #results > 0 then
|
||||
for _, ingredient in pairs(recipe.ingredients) do
|
||||
if ingredient.type == "item" then
|
||||
local weight = data.raw.item[ingredient.name].weight or getWeight(data.raw.item[ingredient.name])
|
||||
local amount = ingredient.amount
|
||||
if ingredient.amount_min and ingredient.amount_max then
|
||||
amount = (ingredient.amount_min + ingredient.amount_max) / 2
|
||||
end
|
||||
return amount * weight * factor
|
||||
end
|
||||
end
|
||||
end
|
||||
::continue::
|
||||
end
|
||||
return 100
|
||||
end
|
||||
|
||||
function createHotVariant(config)
|
||||
local itemName = config
|
||||
local spoilTicks = defaultSpoilTicks
|
||||
|
|
@ -58,13 +11,13 @@ function createHotVariant(config)
|
|||
iconFolder = config.iconFolder or iconFolder
|
||||
end
|
||||
local item = data.raw.item[itemName]
|
||||
item.weight = getWeight(item)
|
||||
item.weight = item.weight or 10000
|
||||
|
||||
-- Create new item
|
||||
local hotItem = table.deepcopy(data.raw.item[itemName])
|
||||
hotItem.name = "hot-" .. itemName
|
||||
hotItem.localised_name = { "", { "item-name.hot" }, " ", { "item-name." .. itemName } }
|
||||
if (config.icons) then
|
||||
if config.icons then
|
||||
hotItem.icons = config.icons
|
||||
else
|
||||
hotItem.icon = iconFolder .. "hot-" .. itemName .. ".png"
|
||||
|
|
@ -74,8 +27,15 @@ function createHotVariant(config)
|
|||
hotItem.weight = item.weight
|
||||
hotItem.spoil_result = itemName
|
||||
hotItem.spoil_ticks = spoilTicks
|
||||
hotItem.flags = hotItem.flags or {}
|
||||
if not table.contains(hotItem.flags, "always-show") then
|
||||
table.insert(hotItem.flags, "always-show")
|
||||
end
|
||||
|
||||
data:extend({ hotItem })
|
||||
|
||||
item.hot_item = hotItem.name
|
||||
|
||||
-- Change recipes
|
||||
for _, recipe in pairs(data.raw.recipe) do
|
||||
if contains(HotMetals.craftingCategories, recipe.category) then
|
||||
|
|
@ -101,13 +61,6 @@ function createHotVariant(config)
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Change technology triggers
|
||||
for _, tech in pairs(data.raw.technology) do
|
||||
if tech.research_trigger and tech.research_trigger.item == itemName and not contains(HotMetals.skipTechUnlocksFor, itemName) then
|
||||
tech.research_trigger.item = hotItem.name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Checks if a table contains a certain value
|
||||
|
|
|
|||
BIN
sources/hot-glass-plate.afphoto
Normal file
BIN
sources/hot-glass-plate.afphoto
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue