Skip to content

Commit 27ecf31

Browse files
committed
added version 2.0.43
1 parent d0e464c commit 27ecf31

File tree

18 files changed

+216
-101
lines changed

18 files changed

+216
-101
lines changed

base/info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "base",
3-
"version": "2.0.43",
3+
"version": "2.0.44",
44
"title": "Base Mod",
55
"author": "Wube Software",
66
"contact": "[email protected]",

base/prototypes/entity/sounds.lua

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,27 @@ sounds.spidertron_leg =
238238

239239
sounds.pipe =
240240
{
241-
sound = { filename = "__base__/sound/pipe.ogg", volume = 0.45 },
241+
sound = {filename = "__base__/sound/pipe.ogg", volume = 0.7, audible_distance_modifier = 0.5,},
242242
persistent = true,
243243
fade_in_ticks = 10,
244244
fade_out_ticks = 20,
245245
volume_smoothing_window_size = 20,
246+
match_volume_to_activity = true,
247+
activity_to_volume_modifiers =
248+
{
249+
multiplier = 1.0,
250+
minimum = 0.5,
251+
maximum = 1.0,
252+
offset = 0,
253+
},
254+
match_speed_to_activity = true,
255+
activity_to_speed_modifiers =
256+
{
257+
multiplier = 0.4,
258+
minimum = 1.0,
259+
maximum = 1.2,
260+
offset = -2.3,
261+
},
246262
}
247263
sounds.train_brakes =
248264
{

changelog.txt

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,79 @@
11
---------------------------------------------------------------------------------------------------
2-
Version: 2.0.43
2+
Version: 2.0.44
33
Date: ????
44
---------------------------------------------------------------------------------------------------
5+
Version: 2.0.43
6+
Date: 26. 03. 2025
7+
Minor Features:
8+
- Added support for volume and speed activity matching for persistent working sounds.
9+
- The swap-players command can now handle basic remote view and players in space platform hubs.
10+
Graphics:
11+
- Changed items to stop drawing health and spoilage bars when the player is zoomed too far out. (https://forums.factorio.com/125880)
12+
Balancing:
13+
- Trees no longer take damage from spores nor absorb spores as a result of taking pollution damage.
14+
- Gleba wetlands, lowlands, and water tiles now absorb 3 times as many spores as other tiles.
15+
Bugfixes:
16+
- Fixed a desync related to demolishers. (https://forums.factorio.com/127560)
17+
- Fixed total raw item icons clipping out of the recipe tooltip. (https://forums.factorio.com/120059)
18+
- Fixed unlimited building reach when train GUI was open from character view. (https://forums.factorio.com/121493)
19+
- Fixed vehicles with portable roboports not being able to insert/remove equipment from themselves. (https://forums.factorio.com/127228)
20+
- Fixed a potential stutter when stopping a variable music track. (https://forums.factorio.com/127454)
21+
- Fixed variable music track intermezzo not being played correctly for subsequent tracks.
22+
- Fixed the collision and selection boxes for many of the Gleba tree/fungi.
23+
- Fixed a performance issue with lightning on explored planets. (https://forums.factorio.com/127611)
24+
- Fixed tile auto-filling logic would sometimes ignore listed entities' (e.g. Asteroid collector's) buildability rules. (https://forums.factorio.com/127249)
25+
- Fixed that picking rocket parts signal by pipette picked the item version of the signal, which wasn't compatible with the recipe version of the signal.
26+
- Fixed that inserters could get stuck inserting items if the item spoiled into one of the crafting machines current recipe ingredients. (https://forums.factorio.com/127583)
27+
- Fixed ghost (non-superforced) rotated fast replace of some fast replaceable entities that have rotation constrains after placement. (https://forums.factorio.com/100956)
28+
- Fixed cutting both tile ghosts and non-(tile ghost) entities would remove the tile ghosts, despite not include them in resulting BP. (https://forums.factorio.com/127588)
29+
- Fixed that remote equipment removal couldn't be cancelled. (https://forums.factorio.com/123069)
30+
- Fixed that Ctrl+Click on empty equipment grid slot in remote view behaved unexpectedly. (https://forums.factorio.com/127251)
31+
- Fixed production score script error when encountering recipe products of type "research-progress". (https://forums.factorio.com/125973)
32+
- Fixed that trees on Gleba were taking damage from and absorbing spores. (https://forums.factorio.com/123472)
33+
- Fixed that some tile types on Gleba were not absorbing spores.
34+
- Fixed that the train control hint window was showing in remote view of other surfaces. (https://forums.factorio.com/118902)
35+
- Fixed that undoing a fast replace would not restore wires. (https://forums.factorio.com/117356)
36+
- Fixed a crash with rocket flying sound after a failed audio device switch.
37+
- Fixed that it was possible to rotate blueprint with thrusters. (https://forums.factorio.com/125242)
38+
- Fixed custom minimap widget would not restore zoom after save-load, would ignore zoom given during creation and would change zoom incorrectly when writing to zoom. (https://forums.factorio.com/127590)
39+
- Fixed that canceling cliff deconstruction could break cliff deconstruction. (https://forums.factorio.com/127640)
40+
- Fixed that manually placing a real entity on a ghost didn't set item requests properly. (https://forums.factorio.com/127575)
41+
- Fixed a crash when drawing combinator with activity_led_sprites missing. (https://forums.factorio.com/127661)
42+
- Fixed rocket target GUI was showing platforms unsorted. (https://forums.factorio.com/127668)
43+
- Fixed platforms list not updating after platform was renamed. (https://forums.factorio.com/127666)
44+
- Fixed crash related to boilers when configured to output fluid with lower temperature than default temperature of output fluid. (https://forums.factorio.com/124071)
45+
- Fixed recipe raw for some gleba recipes would use some unexpected recipes to obtain spoilage. (https://forums.factorio.com/123147)
46+
- Fixed decider's output constant was not covered by parametrisation. (https://forums.factorio.com/127695)
47+
- Fixed display panel not updating rendered text after parametrisation. (https://forums.factorio.com/127694)
48+
- Fixed consistency issue related to importing blueprint strings where assembler is given a recipe it cannot craft. (https://forums.factorio.com/127707)
49+
- Fixed a crash when script tries to set deconstruction planner's entity filter to contain only quality condition. (https://forums.factorio.com/127716)
50+
- Fixed a crash on saving when blueprint was made out of a train that contains a non temporary rail target. (https://forums.factorio.com/119656)
51+
- Fixed util.rotate_position was working incorrectly. (https://forums.factorio.com/127725)
52+
- Fixed changing deconstruction planner entity and tile filters by script would not replace all filters. (https://forums.factorio.com/127720)
53+
- Fixed unit groups getting stuck while following a path, causing the units in the group to give up on their goal. (https://forums.factorio.com/127187)
54+
- Changed asteroid spawning to be consistent regardless of what other game things are happening. (https://forums.factorio.com/127656)
55+
- Fixed locomotive stop trigger being triggered repeatedly when hitting a disabled gate. (https://forums.factorio.com/126778)
56+
- Fixed a crash when trying to open the logistics GUI while dead. (https://forums.factorio.com/127693)
57+
- Fixed that galaxy of fame wasn't available when player died after winning the game. (https://forums.factorio.com/122394)
58+
- Fixed that changing enemy expansion settings didn't update the enemy expansion map. (https://forums.factorio.com/113349)
59+
- Fixed that choose elem button filters did not handle migrations at all. (https://forums.factorio.com/127652)
60+
- Fixed that turrets could get stuck shooting at the wrong location when target-leading fast targets. (https://forums.factorio.com/127650)
61+
- Fixed that entity quality conditions when rendering blueprints would render behind the entity. (https://forums.factorio.com/127724)
62+
- Fixed importing upgrade planner string would not preserve fuel mappers. (https://forums.factorio.com/127742)
63+
- Fixed potential crash when drawing an entity in the GUI at scale 0. (https://forums.factorio.com/127734)
64+
- Fixed module slots configured in upgrade planner would not preserve positions when exported to a string. (https://forums.factorio.com/127742)
65+
- Fixed various issues related to upgrade planner and Lua API. (https://forums.factorio.com/127745)
66+
- Fixed programmable speaker alert quality wasn't shown in the alert slot. (https://forums.factorio.com/117363)
67+
- Fixed it was not possible to use more than 6 recipe ingredients in blueprint parametrisation formulas. (https://forums.factorio.com/127748)
68+
- Fixed it was not possible to configure infinity cargo wagon infinity filters in some cases. (https://forums.factorio.com/127743)
69+
- Fixed that setting fluids on a FluidBox via Lua would give fluids to ghost entities, which would cause a consistency check failure. (https://forums.factorio.com/127733)
70+
- Fixed space platform schedule was not updating logical operator when changed by other players. (https://forums.factorio.com/126828)
71+
- Fixed manually changing upgrade target of entity was not covered by undo. (https://forums.factorio.com/126895)
72+
- Fixed freeplay description was changing to space age freeplay even if space-age mod was not enabled. (https://forums.factorio.com/127215)
73+
- Fixed some icons were not collected for galaxy of fame uploads. (https://forums.factorio.com/125306)
74+
Modding:
75+
- Added AirbornePollutantPrototype::damages_trees.
76+
---------------------------------------------------------------------------------------------------
577
Version: 2.0.42
678
Date: 19. 03. 2025
779
Minor Features:

core/lualib/production-score.lua

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,19 @@ local function get_product_list()
4646
local ingredients = recipe_prototype.ingredients
4747
local products = recipe_prototype.products
4848
for k, product in pairs (products) do
49-
if not product_list[product.name] then
50-
product_list[product.name] = {}
51-
end
52-
local recipe_ingredients = {}
53-
local product_amount = util.product_amount(product)
54-
if product_amount > 0 then
55-
for j, ingredient in pairs (ingredients) do
56-
recipe_ingredients[ingredient.name] = ((ingredient.amount)/#products) / product_amount
49+
if product.type ~= "research-progress" then
50+
if not product_list[product.name] then
51+
product_list[product.name] = {}
52+
end
53+
local recipe_ingredients = {}
54+
local product_amount = util.product_amount(product)
55+
if product_amount > 0 then
56+
for j, ingredient in pairs (ingredients) do
57+
recipe_ingredients[ingredient.name] = ((ingredient.amount)/#products) / product_amount
58+
end
59+
recipe_ingredients.energy = (recipe_prototype.energy / #products) / product_amount
60+
table.insert(product_list[product.name], recipe_ingredients)
5761
end
58-
recipe_ingredients.energy = (recipe_prototype.energy / #products) / product_amount
59-
table.insert(product_list[product.name], recipe_ingredients)
6062
end
6163
end
6264
end
@@ -69,21 +71,25 @@ local function get_product_list()
6971
for k, entity in pairs (entities) do
7072
if entity.type == "rocket-silo" and entity.fixed_recipe then
7173
local recipe = recipes[entity.fixed_recipe]
72-
if not recipe then return end
73-
local required_parts = entity.rocket_parts_required
74-
local list = {}
75-
for k, product in pairs (recipe.products) do
76-
local product_amount = util.product_amount(product)
77-
if product_amount > 0 then
78-
product_amount = product_amount * required_parts
79-
list[product.name] = product_amount
74+
if recipe then
75+
local required_parts = entity.rocket_parts_required
76+
local list = {}
77+
for k, product in pairs (recipe.products) do
78+
if product.type ~= "research-progress" then
79+
local product_amount = util.product_amount(product)
80+
if product_amount > 0 then
81+
product_amount = product_amount * required_parts
82+
list[product.name] = product_amount
83+
end
84+
end
8085
end
86+
list["energy"] = recipe.energy
87+
table.insert(rocket_silos, list)
8188
end
82-
list["energy"] = recipe.energy
83-
table.insert(rocket_silos, list)
8489
end
8590
end
86-
-- todo use the lua entity protoype to get this if/when its added
91+
92+
-- todo use the lua entity prototype to get this if/when its added
8793
local launch_products = {{type = "item", name = "space-science-pack", amount = 1000, probability = 1}}
8894
if launch_products then
8995
for k, launch_product in pairs (launch_products) do
@@ -101,6 +107,7 @@ local function get_product_list()
101107
end
102108
end
103109
end
110+
104111
return product_list
105112
end
106113

@@ -198,24 +205,25 @@ local deduce_nil_prices = function(price_list, param)
198205
if not ingredient_value then break end
199206
local product_value = 0
200207
for k, product in pairs (recipe.products) do
201-
local amount = util.product_amount(product)
202-
local product_price = price_list[product.name]
203-
if product_price then
204-
product_value = product_value + product_price * amount
205-
else
206-
product_value = nil
207-
break
208+
if product.type ~= "research-progress" then
209+
local amount = util.product_amount(product)
210+
local product_price = price_list[product.name]
211+
if product_price then
212+
product_value = product_value + product_price * amount
213+
else
214+
product_value = nil
215+
break
216+
end
208217
end
209218
end
210-
if not product_value then
211-
break
212-
end
213-
local reverse_price = (product_value - param.energy_addition(recipe, product_value)) / ingredient_multiplier(recipe.ingredients, param) -- Not perfect, but close enough
214-
local this_cost = (reverse_price - ingredient_value) / ingredient_amount
215-
if recipe_cost then
216-
recipe_cost = math.min(recipe_cost, this_cost)
217-
else
218-
recipe_cost = this_cost
219+
if product_value then
220+
local reverse_price = (product_value - param.energy_addition(recipe, product_value)) / ingredient_multiplier(recipe.ingredients, param) -- Not perfect, but close enough
221+
local this_cost = (reverse_price - ingredient_value) / ingredient_amount
222+
if recipe_cost then
223+
recipe_cost = math.min(recipe_cost, this_cost)
224+
else
225+
recipe_cost = this_cost
226+
end
219227
end
220228
end
221229
if recipe_cost then

core/lualib/space-finish-script.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ local on_space_platform_changed_state = function(event)
2222
script_data.finished[force.name] = true
2323

2424
game.reset_game_state()
25+
game.enable_galaxy_of_fame_button = true
2526
game.set_game_state
2627
{
2728
game_finished = true,
@@ -53,6 +54,10 @@ space_finish_script.events =
5354

5455
space_finish_script.on_configuration_changed = function()
5556
storage.space_finish_script = storage.space_finish_script or script_data
57+
58+
if script_data.finished["player"] then
59+
game.enable_galaxy_of_fame_button = true
60+
end
5661
end
5762

5863
space_finish_script.on_init = function()

core/lualib/util.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,15 +142,18 @@ function util.moveposition(position, direction, distance)
142142
local direction_vector = util.direction_vectors[direction]
143143
if not direction_vector then error(direction .. " is not a valid or supported direction") end
144144

145-
return {position[1] + direction_vector[1] * distance, position[2] + direction_vector[2] * distance}
145+
local x = position[1] or position.x
146+
local y = position[2] or position.y
147+
return {x + direction_vector[1] * distance, y + direction_vector[2] * distance}
146148
end
147149

148150
-- orientation of 1 = 360 degrees
149151
function util.rotate_position(position, orientation)
150152
local x = position[1] or position.x
151153
local y = position[2] or position.y
152154
local radians = orientation * 2 * math.pi
153-
return {x = y * math.sin(radians) + x * math.cos(radians), y = y * math.cos(radians) + x * math.sin(radians)}
155+
return {x = x * math.cos(radians) - y * math.sin(radians),
156+
y = x * math.sin(radians) + y * math.cos(radians)}
154157
end
155158

156159
function util.oppositedirection(direction)

elevated-rails/info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "elevated-rails",
3-
"version": "2.0.43",
3+
"version": "2.0.44",
44
"title": "Elevated Rails",
55
"author": "Wube Software",
66
"contact": "[email protected]",

quality/info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "quality",
3-
"version": "2.0.43",
3+
"version": "2.0.44",
44
"title": "Quality",
55
"author": "Wube Software",
66
"contact": "[email protected]",

space-age/info.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "space-age",
3-
"version": "2.0.43",
3+
"version": "2.0.44",
44
"title": "Space Age",
55
"author": "Wube Software",
66
"contact": "[email protected]",

space-age/prototypes/decorative/decoratives-fulgora.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ data:extend(
279279
placement_density = 2,
280280
probability_expression = "min(0.1, fulgora_natural_mask * max(0, fulgora_scrap_medium - fulgora_rock - 0.75))",
281281
},
282-
pictures = util.spritesheets_to_pictures({{path = "__space-age__/graphics/decorative/urchin-cactus/urchin-cactus", frame_count = 3}})
282+
pictures = util.spritesheets_to_pictures({{path = "__space-age__/graphics/decorative/urchin-cactus/urchin-cactus", frame_count = 10}})
283283
},
284284
{
285285
type = "simple-entity",

0 commit comments

Comments
 (0)