Skip to content

Commit 85530fd

Browse files
authored
Merge pull request #193 from pyanodon/2.1-prep
update for 2.1
2 parents 9ce8341 + 5db6a10 commit 85530fd

200 files changed

Lines changed: 3416 additions & 4069 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cached-configs/pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua

Lines changed: 721 additions & 725 deletions
Large diffs are not rendered by default.

changelog.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,46 @@
11
---------------------------------------------------------------------------------------------------
2+
Version: 3.2.0
3+
Date: ???
4+
Breaking Changes:
5+
- Updated tidal powerplants to be solar panels modulated by surface properties, similar to wind turbines, adding variance to the output.
6+
- Fixed incorrect temperature requirements from rounding in low-temperature uranium hexafluoride recipes
7+
- Moved oleochemical input on on rubber-from-oleochemicals to south fluidbox for consistency with other rubber recipes. Reolves https://github.com/pyanodon/pybugreports/issues/1500
8+
- [space-age] Fixed that uranium separation was not properly updated when decay was enabled. The recipe should be outputting ash, not using it...
9+
- Nerfed uranium separation (without decay) to output u-238 67.5% of the time instead of 95% of the time (see below for relevant buffs)
10+
Changes:
11+
- Updated to Factorio 2.1
12+
- Removed unnecessary prototype values to clear up the log
13+
- Updated vector_to_place_result so items shouldn't drop on the floor. Resolves https://github.com/pyanodon/pybugreports/issues/1486
14+
- Fixed that many buildings did not have certain pipe covers rendered
15+
- Fixed that molten salt thermosolar would consume more energy the hotter the molten salt, without producing any more output. Resolves https://github.com/pyanodon/pybugreports/issues/1438
16+
- Updated wind turbines to be solar panels modulated by surface properties instead of individual EEIs, significantly increasing performance. Resolves https://github.com/pyanodon/pybugreports/issues/499
17+
- Converted solar panel mk02/mk03 to stateless visualizations from LuaRendering, increasing performance.
18+
- Converted VAWTs to stateless visualizations from LuaRendering, increasing performance.
19+
- Buffed VAWT Mk01 power output from 4MW to 4.8MW, on average
20+
- Buffed VAWT Mk02 power output from 20MW to 24MW, on average
21+
- Buffed VAWT Mk03 power output from 50MW to 150MW, on average
22+
- Buffed VAWT Mk04 power output from 85MW to 270MW, on average
23+
- Buffed HAWT Mk01 power output from 5MW to 6MW, on average
24+
- Buffed HAWT Mk02 power output from 25MW to 30MW, on average
25+
- Buffed HAWT Mk03 power output from 50MW to 150MW, on average
26+
- Buffed HAWT Mk04 power output from 80MW to 240MW, on average
27+
- Buffed Multiblade Mk01 power output from 550kW to 1.2MW, on average
28+
- Buffed Multiblade Mk03 power output from 34MW to 90MW, on average
29+
- Fixed that tidal powerplant collisions were larger than their visual area. Resolves https://github.com/pyanodon/pybugreports/issues/1428
30+
- Fixed that tidal powerplant animations did not work.
31+
- Buffed Tidal Mk01 power output from a constant 6MW to 8MW on average
32+
- Buffed Tidal Mk02 power output from a constant 40MW to 60MW on average
33+
- Buffed Tidal Mk03 power output from a constant 90MW to 160MW on average
34+
- Buffed Tidal Mk04 power output from a constant 400MW to 500MW on average
35+
- Fixed that the antisolar animation did not work
36+
- Nuclear isotope processing recipes will inherit their decay state from ingredients where possible. Resolves https://github.com/pyanodon/pybugreports/issues/1327
37+
- Buffed uranium separation to output 10 u-237 instead of 1
38+
- Uranium separation now uses shared probability, so you will always get 10 items out for 10 items consumed
39+
- Reduced most fluidbox sizes from 1000 to 100
40+
- Returned the passthrough pipe connections to the High Pressure Steam Turbine Mk04
41+
- Added the following entities to be hidden when visibility of tall entities is toggled: accumulator mk03, antimony drill, biomass powerplant, oil powerplant, electric boiler, megadar, nuclear reactor mk01 and mk02, simik boiler
42+
- Allowed the superior floating locomotive, cargo wagon, and fluid wagon to be used with the upgrade planner to upgrade trains
43+
---------------------------------------------------------------------------------------------------
244
Version: 3.1.38
345
Date: 2026-06-08
446
Changes:

control.lua

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require "scripts/microwave-receiver"
88
require "scripts/thermosolar/shared"
99
require "scripts/thermosolar/solar-updraft-tower"
1010
require "scripts/thermosolar/heliostat"
11-
require "scripts/solar"
1211
require "scripts/wind/wind"
1312
require "scripts/aerial"
1413
require "scripts/tidal"
@@ -32,7 +31,6 @@ py.on_event(py.events.on_init(), function()
3231
end)
3332

3433
py.on_event(py.events.on_built(), function(event)
35-
Solar.events.on_built(event)
3634
Heliostat.events.on_built(event)
3735
Wind.events.on_built(event)
3836
Aerial.events.on_built(event)
@@ -74,26 +72,25 @@ local REQUIRES_SUNLIGHT = {
7472
}
7573

7674
py.register_on_nth_tick(55, "thermosolar", "pyae", function(event)
77-
local active = Thermosolar.calc_daylight(game.surfaces["nauvis"]) > 0.5 -- TODO: fix for multisurface
75+
local disabled = Thermosolar.calc_daylight(game.surfaces["nauvis"]) < 0.5 -- TODO: fix for multisurface
7876
for _, panel in pairs(storage.lrf_panels) do
7977
if panel.valid then
80-
panel.active = active
81-
panel.custom_status = (not active) and REQUIRES_SUNLIGHT or nil
78+
panel.disabled_by_script = disabled
79+
panel.custom_status = disabled and REQUIRES_SUNLIGHT or nil
8280
end
8381
end
8482
for _, panel in pairs(storage.stirling) do
8583
if panel.valid then
86-
panel.active = active
87-
panel.custom_status = (not active) and REQUIRES_SUNLIGHT or nil
84+
panel.disabled_by_script = disabled
85+
panel.custom_status = disabled and REQUIRES_SUNLIGHT or nil
8886
end
8987
end
9088
end)
9189

92-
py.register_on_nth_tick(100, "solar", "pyae", Solar.events[100])
9390
py.register_on_nth_tick(61, "wind", "pyae", Wind.events[61])
91+
py.register_on_nth_tick(83, "tidal", "pyae", Tidal.events[83])
9492

9593
py.on_event(py.events.on_destroyed(), function(event)
96-
Solar.events.on_destroyed(event)
9794
Heliostat.events.on_destroyed(event)
9895
Wind.events.on_destroyed(event)
9996
Aerial.events.on_destroyed(event)

data-updates.lua

Lines changed: 41 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
require "prototypes.decay.decay-updates"
22

33
--MOVED RECIPES CATEGORIES
4-
RECIPE("honey-comb").category = "centrifuging"
5-
RECIPE("honey-comb-buffed").category = "centrifuging"
6-
RECIPE("nickel-tailings").category = "centrifuging"
7-
RECIPE("xylenol-2").category = "centrifuging"
8-
RECIPE("al-tailings-separation").category = "centrifuging"
9-
RECIPE("simik-blood-to-oleochemicals").category = "centrifuging"
10-
RECIPE("chromite-concentrate").category = "centrifuging"
11-
RECIPE("vanabins").category = "centrifuging"
12-
RECIPE("clean-rf-gel").category = "centrifuging"
13-
RECIPE("gold-precipitate").category = "centrifuging"
14-
RECIPE("serine").category = "centrifuging"
15-
RECIPE("albumin-1").category = "centrifuging"
16-
RECIPE("outlet-gas-02").category = "centrifuging"
17-
RECIPE("serine").category = "centrifuging"
18-
RECIPE("tar-to-nickel").category = "centrifuging"
19-
RECIPE("bitumen-to-nickel").category = "centrifuging"
20-
RECIPE("nickel-prepared-solution").category = "centrifuging"
21-
RECIPE("chromium-rejects").category = "centrifuging"
22-
RECIPE("nuclear-fuel-reprocessing-mk02").category = "centrifuging"
23-
RECIPE("nuclear-fuel-reprocessing-mk03").category = "centrifuging"
24-
RECIPE("nuclear-fuel-reprocessing-mk04").category = "centrifuging"
25-
RECIPE("nuclear-fuel-reprocessing-mk05").category = "centrifuging"
26-
RECIPE("plutonium-fuel-reprocessing").category = "centrifuging"
4+
RECIPE("honey-comb").categories = {"centrifuging"}
5+
RECIPE("honey-comb-buffed").categories = {"centrifuging"}
6+
RECIPE("nickel-tailings").categories = {"centrifuging"}
7+
RECIPE("xylenol-2").categories = {"centrifuging"}
8+
RECIPE("al-tailings-separation").categories = {"centrifuging"}
9+
RECIPE("simik-blood-to-oleochemicals").categories = {"centrifuging"}
10+
RECIPE("chromite-concentrate").categories = {"centrifuging"}
11+
RECIPE("vanabins").categories = {"centrifuging"}
12+
RECIPE("clean-rf-gel").categories = {"centrifuging"}
13+
RECIPE("gold-precipitate").categories = {"centrifuging"}
14+
RECIPE("serine").categories = {"centrifuging"}
15+
RECIPE("albumin-1").categories = {"centrifuging"}
16+
RECIPE("outlet-gas-02").categories = {"centrifuging"}
17+
RECIPE("serine").categories = {"centrifuging"}
18+
RECIPE("tar-to-nickel").categories = {"centrifuging"}
19+
RECIPE("bitumen-to-nickel").categories = {"centrifuging"}
20+
RECIPE("nickel-prepared-solution").categories = {"centrifuging"}
21+
RECIPE("chromium-rejects").categories = {"centrifuging"}
22+
RECIPE("nuclear-fuel-reprocessing-mk02").categories = {"centrifuging"}
23+
RECIPE("nuclear-fuel-reprocessing-mk03").categories = {"centrifuging"}
24+
RECIPE("nuclear-fuel-reprocessing-mk04").categories = {"centrifuging"}
25+
RECIPE("nuclear-fuel-reprocessing-mk05").categories = {"centrifuging"}
26+
RECIPE("plutonium-fuel-reprocessing").categories = {"centrifuging"}
2727

2828
--adjusting all centrifudge recipe speeds
2929
RECIPE("uranium-processing"):set_fields {energy_required = 40}
@@ -65,7 +65,7 @@ data.raw.technology["pyrrhic"]:add_prereq("biotech-machines-mk04")
6565
RECIPE {
6666
type = "recipe",
6767
name = "solvent-separation",
68-
category = "centrifuging",
68+
categories = {"centrifuging"},
6969
enabled = false,
7070
energy_required = 20,
7171
ingredients = {
@@ -125,8 +125,8 @@ RECIPE("py-logistic-robot-mk04"):add_ingredient {type = "item", name = "gearbox-
125125
RECIPE("py-construction-robot-mk01"):add_ingredient {type = "item", name = "battery-mk01", amount = 2}
126126
RECIPE("py-logistic-robot-mk01"):add_ingredient {type = "item", name = "battery-mk01", amount = 2}
127127

128-
RECIPE("subcritical-water-01").category = "heat-exchanger"
129-
RECIPE("subcritical-water-02").category = "heat-exchanger"
128+
RECIPE("subcritical-water-01").categories = {"heat-exchanger"}
129+
RECIPE("subcritical-water-02").categories = {"heat-exchanger"}
130130

131131
for _, recipe in pairs(data.raw.recipe) do
132132
recipe:replace_ingredient("battery", "battery-mk01")
@@ -150,49 +150,31 @@ end
150150

151151
--ENERGY COSTS--
152152

153-
--ENERGY PRODUCTION DESCRIPTION --
154-
for name, variance in pairs(require "scripts.wind.variation") do
155-
variance = {"entity-description.variance", tostring(variance * 100)}
156-
-- Handle the surrogate items that show in electric stats, too
157-
for _, suffix in pairs {"", "-blank"} do
158-
local entity = data.raw["electric-energy-interface"][name .. suffix]
159-
if entity then
160-
if entity.localised_description then
161-
entity.localised_description = {"", entity.localised_description, "\n", variance}
162-
else
163-
entity.localised_description = {"?", {"", {"entity-description." .. name}, "\n", variance}, variance}
164-
end
165-
end
166-
end
167-
end
168-
169-
local electric_energy_interfaces = {
153+
-- add wind data to entity tooltip fields
154+
for _, name in pairs{
170155
"hawt-turbine-mk01",
171156
"hawt-turbine-mk02",
172157
"hawt-turbine-mk03",
173158
"hawt-turbine-mk04",
159+
"hawt-turbine-mk01-blank",
160+
"hawt-turbine-mk02-blank",
161+
"hawt-turbine-mk03-blank",
162+
"hawt-turbine-mk04-blank",
174163
"vawt-turbine-mk01",
175164
"vawt-turbine-mk02",
176165
"vawt-turbine-mk03",
177166
"vawt-turbine-mk04",
178167
"multiblade-turbine-mk01",
179168
"multiblade-turbine-mk03",
180-
"solar-panel-mk02",
181-
"solar-panel-mk03",
182-
}
183-
184-
for _, name in pairs(electric_energy_interfaces) do
185-
local item = data.raw.item[name]
186-
local entity = data.raw["electric-energy-interface"][name]
187-
local output = {"entity-description.max-output", tostring(entity.energy_production)}
188-
if item.localised_description then
189-
item.localised_description = {"", item.localised_description, "\n", (output)}
190-
elseif entity.localised_description then
191-
item.localised_description = {"", entity.localised_description, "\n", output}
192-
else
193-
item.localised_description = {"?", {"", {"entity-description." .. name}, "\n", output}, output}
194-
end
195-
entity.energy_source.buffer_capacity = entity.energy_production
169+
"multiblade-turbine-mk01-blank",
170+
"multiblade-turbine-mk03-blank",
171+
} do
172+
local entity = data.raw["solar-panel"][name]
173+
entity.custom_tooltip_fields = entity.custom_tooltip_fields or {}
174+
entity.custom_tooltip_fields[#entity.custom_tooltip_fields+1] = {
175+
name = {"entity-description.output-per-kmph"},
176+
value = entity.production
177+
}
196178
end
197179

198180
local molten_salt_recipes = {

data.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,13 @@ require "prototypes.animations.hawt-turbine-mk01"
301301
require "prototypes.animations.hawt-turbine-mk02"
302302
require "prototypes.animations.hawt-turbine-mk03"
303303
require "prototypes.animations.hawt-turbine-mk04"
304+
require "prototypes.animations.tidal"
304305

305306
require "prototypes.decay.decay"
306307

308+
--(( OTHER ))
309+
require "prototypes.surface-properties"
310+
307311
data.raw.fluid["crude-oil"].subgroup = "test"
308312
data.raw.fluid["gasoline"].subgroup = "test"
309313
data.raw.fluid["fatty-acids"].fuel_value = "1MJ"

info.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
{
22
"name": "pyalternativeenergy",
3-
"version": "3.1.38",
4-
"factorio_version": "2.0",
3+
"version": "3.2.0",
4+
"factorio_version": "2.1",
55
"title": "Pyanodons Alternative Energy",
6-
"author": "Pyanodon, Nexela, Kingarthur, Notnotmelon, Mootykins, ShadowGlass, Archezekiel, Quintuple, Przemo",
6+
"author": "Pyanodon, Nexela, Kingarthur, Notnotmelon, Mootykins, ShadowGlass, Archezekiel, Quintuple, przemo1232, protocol_1903",
77
"contact": "https://discord.gg/SBHM3h5Utj",
88
"homepage": "https://github.com/pyanodon/pyalternativeenergy",
99
"description": "Contains POWER!",
1010
"dependencies": [
11-
"base >= 2.0.48",
12-
"pyalienlife >= 3.0.63",
13-
"pyhightech >= 3.0.15",
14-
"~ pyalternativeenergygraphics >= 3.0.4",
15-
"? enable-all-feature-flags",
11+
"base >= 2.1.0",
12+
"pyalienlife >= 3.1.0",
13+
"pyhightech >= 3.1.0",
14+
"~ pyalternativeenergygraphics >= 3.1.0",
15+
"+ enable-all-feature-flags",
1616
"(?) pyindustry",
1717
"! wret-beacon-rebalance-mod",
18-
"! BigBags",
1918
"! ResearchFog",
2019
"! omnimatter_energy"
2120
],

locale/de/entity.cfg

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,10 @@ nuclear-reactor-mox-mk01=Spaltet Atome seit der antiken Erde.
173173
nuclear-reactor-mox-mk02=Spaltet Atome seit der antiken Erde.
174174
nuclear-reactor-mox-mk03=Spaltet Atome seit der antiken Erde.
175175
nuclear-reactor-mox-mk04=Spaltet Atome seit der antiken Erde.
176-
tidal-mk01=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.\n[font=default-semibold][color=255,230,192]Leistung: [/color][/font]6.0 MW
177-
tidal-mk02=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.\n[font=default-semibold][color=255,230,192]Leistung: [/color][/font]40.0 MW
178-
tidal-mk03=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.\n[font=default-semibold][color=255,230,192]Leistung: [/color][/font]90.0 MW
179-
tidal-mk04=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.\n[font=default-semibold][color=255,230,192]Leistung: [/color][/font]400.0 MW
176+
tidal-mk01=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.
177+
tidal-mk02=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.
178+
tidal-mk03=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.
179+
tidal-mk04=Gewinnt Energie aus den Gezeiten. Muss am Ufer plaziert weden.
180180
numal-reef-mk01=Ein künstliches Riff für außerirdische Tintenfische. Muss im Wasser plaziert werden.
181181
numal-reef-mk02=Ein künstliches Riff für außerirdische Tintenfische. Muss im Wasser plaziert werden.
182182
numal-reef-mk03=Ein künstliches Riff für außerirdische Tintenfische. Muss im Wasser plaziert werden.

locale/de/extra.cfg

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,3 @@ lifetime-generation=[font=default-semibold][color=255,230,192]Insgesamte jemals
4444
airspace-traffic-flow=[font=default-semibold][color=255,230,192]Luftraumverkehrsfluss: [/color][/font]__1__%
4545
eta=[font=default-semibold][color=255,230,192]Δt zur Ankunft: [/color][/font]__1__:__2__
4646
stranded=Eine Luftturbine [item=__1__] ist gestrandet @ [gps=__2__,__3__]
47-
48-
[entity-status]
49-
requires-moonlight=Benötigt Mondlicht
50-
requires-sunlight=Benötigt Sonnenlicht

locale/en/entity.cfg

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,10 @@ nuclear-reactor-mox-mk01=Splitting atoms since old Earth.
171171
nuclear-reactor-mox-mk02=Splitting atoms since old Earth.
172172
nuclear-reactor-mox-mk03=Splitting atoms since old Earth.
173173
nuclear-reactor-mox-mk04=Splitting atoms since old Earth.
174-
tidal-mk01=Extracts energy from the tides. Must be placed on a shoreline.\n[font=default-semibold][color=255,230,192]Output: [/color][/font]6.0 MW
175-
tidal-mk02=Extracts energy from the tides. Must be placed on a shoreline.\n[font=default-semibold][color=255,230,192]Output: [/color][/font]40.0 MW
176-
tidal-mk03=Extracts energy from the tides. Must be placed on a shoreline.\n[font=default-semibold][color=255,230,192]Output: [/color][/font]90.0 MW
177-
tidal-mk04=Extracts energy from the tides. Must be placed on a shoreline.\n[font=default-semibold][color=255,230,192]Output: [/color][/font]400.0 MW
174+
tidal-mk01=Extracts energy from the tides. Must be placed on a shoreline.
175+
tidal-mk02=Extracts energy from the tides. Must be placed on a shoreline.
176+
tidal-mk03=Extracts energy from the tides. Must be placed on a shoreline.
177+
tidal-mk04=Extracts energy from the tides. Must be placed on a shoreline.
178178
numal-reef-mk01=An artificial reef for alien squids on shore. Must be placed underwater.
179179
numal-reef-mk02=An artificial reef for alien squids on shore. Must be placed underwater.
180180
numal-reef-mk03=An artificial reef for alien squids on shore. Must be placed underwater.

locale/en/extra.cfg

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ airspace-traffic-flow=[font=default-semibold][color=255,230,192]Airspace traffic
4343
eta=[font=default-semibold][color=255,230,192]Δt of arrival: [/color][/font]__1__:__2__
4444
stranded=An aerial turbine [item=__1__] was stranded @ [gps=__2__,__3__]
4545

46-
[entity-status]
47-
requires-moonlight=Requires moonlight
48-
requires-sunlight=Requires sunlight
46+
[surface-property-name]
47+
py-wind-speed-min=Minimum wind speed
48+
py-wind-speed-max=Maximum wind speed
49+
py-tide-height-min=Minimum tide height
50+
py-tide-height-max=Maximum tide height
51+
52+
[surface-property-unit]
53+
py-wind-speed-min=__1__ kmph
54+
py-wind-speed-max=__1__ kmph
55+
py-tide-height-min=__1__ m
56+
py-tide-height-max=__1__ m

0 commit comments

Comments
 (0)