mirror of
https://asciireactor.com/factorio/adamo-physics.git
synced 2024-11-23 15:55:07 +00:00
init
This commit is contained in:
commit
ba7fc9dbe0
67
changelog.txt
Normal file
67
changelog.txt
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.9
|
||||||
|
Date: 2020-02-22
|
||||||
|
|
||||||
|
Graphics:
|
||||||
|
- Changed glow color of chemical-fueled
|
||||||
|
entities to be more physical.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.8
|
||||||
|
Date: 2020-02-03
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
- Moved mod to version 18.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.7
|
||||||
|
Date: 2019-10-02
|
||||||
|
|
||||||
|
Entities:
|
||||||
|
- Reset base_area to vanilla values
|
||||||
|
and doubled height on fluid boxes
|
||||||
|
to improve megareactor throughput.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.6
|
||||||
|
Date: 2019-09-28
|
||||||
|
|
||||||
|
Balancing:
|
||||||
|
- Drain reduced by factor of 24 on all
|
||||||
|
electric-turret entities, e.g. laser-
|
||||||
|
turret.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.5
|
||||||
|
Date: 2019-09-15
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
- Added support for fluid-powered furnaces.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.4
|
||||||
|
Date: 2019-08-31
|
||||||
|
|
||||||
|
Balancing:
|
||||||
|
- Increased solar panel power to 6kW and
|
||||||
|
decreased accumulator power to 30kW.
|
||||||
|
Panel:accumulator ratio now matches vanilla,
|
||||||
|
with vanilla energy capacity but 1/10 power.
|
||||||
|
Thanks for pointing that out, mmmPi.
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.3
|
||||||
|
Date: 2019-08-29
|
||||||
|
|
||||||
|
Balancing:
|
||||||
|
- Increased slightly the efficiency of burner-powered
|
||||||
|
assembling-machine prototypes, to match furnaces.
|
||||||
|
(Removed the "mechanical cost", metaphorically.)
|
||||||
|
|
||||||
|
---------------------------------------------------------------------------------------------------
|
||||||
|
Version: 0.0.2
|
||||||
|
Date: 2019-08-26
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
- Mod display name changed.
|
||||||
|
- Some refactoring and fortification of fluid fuel compatibility.
|
245
data-final-fixes.lua
Normal file
245
data-final-fixes.lua
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
require("factsheet")
|
||||||
|
|
||||||
|
-- Updates to rocket physics.
|
||||||
|
data.raw.ammo["rocket"].ammo_type.action.action_delivery.starting_speed = 0.95
|
||||||
|
data.raw.ammo["explosive-rocket"].ammo_type.action.action_delivery.starting_speed = .95
|
||||||
|
data.raw.projectile["rocket"].acceleration=0.8
|
||||||
|
data.raw.projectile["explosive-rocket"].acceleration=0.8
|
||||||
|
if data.raw.gun["rocket-launcher"] then
|
||||||
|
data.raw.gun["rocket-launcher"].attack_parameters.range=38
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Reduce electric-turret drain by factor of 24.
|
||||||
|
for _,turret in pairs(data.raw["electric-turret"]) do
|
||||||
|
if turret.energy_source
|
||||||
|
and turret.energy_source.type
|
||||||
|
and turret.energy_source.type == "electric" then
|
||||||
|
turret.energy_source.drain =
|
||||||
|
energy_div(
|
||||||
|
(turret.energy_source.drain or "24kW"),
|
||||||
|
24
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Pre rocket launcher
|
||||||
|
if data.raw["ammo-turret"]["pre-rocket-turret"] then
|
||||||
|
data.raw["ammo-turret"]["pre-rocket-turret"].attack_parameters.range=60
|
||||||
|
data.raw["ammo-turret"]["pre-rocket-turret"].attack_parameters.min_range=25
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Aircraft mod launcher.
|
||||||
|
if data.raw.gun["aircraft-rocket-launcher"] then
|
||||||
|
data.raw.gun["aircraft-rocket-launcher"].
|
||||||
|
attack_parameters.range=60
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Helicopter mod launcher
|
||||||
|
if data.raw.gun["heli-rocket-launcher-item"] then
|
||||||
|
data.raw.gun["heli-rocket-launcher-item"].attack_parameters.range=60
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Predictabowl's vehicle rocket launcher
|
||||||
|
if data.raw.gun["vehicle-rocket-launcher"] then
|
||||||
|
data.raw.gun["vehicle-rocket-launcher"].attack_parameters.range=50
|
||||||
|
end
|
||||||
|
|
||||||
|
if data.raw.gun["vehicle-rocket-launcher-2"] then
|
||||||
|
data.raw.gun["vehicle-rocket-launcher-2"].attack_parameters.range=60
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,heatpipe in pairs(data.raw["heat-pipe"]) do
|
||||||
|
heatpipe.heat_buffer.specific_heat =
|
||||||
|
energy_div(
|
||||||
|
heatpipe.heat_buffer.specific_heat,
|
||||||
|
nuke_fuel_quotient
|
||||||
|
)
|
||||||
|
heatpipe.heat_buffer.max_transfer =
|
||||||
|
energy_div(
|
||||||
|
heatpipe.heat_buffer.max_transfer,
|
||||||
|
gen_eff
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
local set_burner_colors = function(entity)
|
||||||
|
local entity = entity_or_bust(entity)
|
||||||
|
if not entity then return end
|
||||||
|
local burner = table_or_bust(get_energy_source(entity))
|
||||||
|
if not burner then return end
|
||||||
|
local color
|
||||||
|
if burner.type == "fluid" and burner.burns_fluid then
|
||||||
|
color = colors.gas_fire_glow
|
||||||
|
elseif uses_fuel_type("chemical",entity) then
|
||||||
|
color = colors.chemical_fire_glow
|
||||||
|
elseif burner.type == "heat" then
|
||||||
|
color = colors.chemical_fire_glow
|
||||||
|
else return end
|
||||||
|
local min_size = 0.05*get_collision_hypotenuse(entity)
|
||||||
|
local glow_num = 0.3*get_collision_hypotenuse(entity)
|
||||||
|
burner.light_flicker = {
|
||||||
|
color = color,
|
||||||
|
minimum_light_size = min_size,
|
||||||
|
light_intensity_to_size_coefficient = glow_num
|
||||||
|
}
|
||||||
|
local viz = table_or_bust(entity.working_visualisations)
|
||||||
|
if viz then
|
||||||
|
for _,subtab in pairs(viz) do
|
||||||
|
if type(subtab.light) == "table" then
|
||||||
|
subtab.light.color = color
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
log("Made physical burner colors for "
|
||||||
|
..entity.name
|
||||||
|
.." ("
|
||||||
|
..tostring(color.r)
|
||||||
|
.." "
|
||||||
|
..tostring(color.g)
|
||||||
|
.." "
|
||||||
|
..tostring(color.b)
|
||||||
|
..")"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,boiler in pairs(data.raw.boiler) do
|
||||||
|
boiler.target_temperature = chem_temp_max
|
||||||
|
boiler.fluid_box.height =
|
||||||
|
(boiler.fluid_box.height or 1)/gen_eff
|
||||||
|
boiler.output_fluid_box.height =
|
||||||
|
(boiler.output_fluid_box.height or 1)/gen_eff
|
||||||
|
boiler.energy_consumption = energy_div(
|
||||||
|
boiler.energy_consumption,gen_eff
|
||||||
|
)
|
||||||
|
if boiler.burner
|
||||||
|
and type(boiler.burner) == "table" then
|
||||||
|
boiler.burner.effectivity =
|
||||||
|
(boiler.burner.effectivity or 1)
|
||||||
|
*boiler_eff
|
||||||
|
end
|
||||||
|
if boiler.energy_source
|
||||||
|
and type(boiler.energy_source) == "table" then
|
||||||
|
boiler.energy_source.effectivity =
|
||||||
|
(boiler.energy_source.effectivity or 1)
|
||||||
|
*boiler_eff
|
||||||
|
if boiler.energy_source.type == "heat" then
|
||||||
|
boiler.target_temperature = nuke_temp_max
|
||||||
|
elseif boiler.energy_source.type == "electric" then
|
||||||
|
boiler.target_temperature = 100
|
||||||
|
else
|
||||||
|
set_burner_colors(boiler)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,generator in pairs(data.raw.generator) do
|
||||||
|
generator.effectivity =
|
||||||
|
(generator.effectivity or 1)
|
||||||
|
*gen_eff
|
||||||
|
if generator.fluid_box then
|
||||||
|
generator.fluid_box.height =
|
||||||
|
(generator.fluid_box.height or 1)/gen_eff
|
||||||
|
end
|
||||||
|
if generator.name:find "steam" then
|
||||||
|
if generator.name:find "turbine" then
|
||||||
|
generator.maximum_temperature = nuke_temp_max
|
||||||
|
else
|
||||||
|
generator.maximum_temperature = chem_temp_max
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,item in pairs(data.raw.item) do
|
||||||
|
if item.fuel_value then
|
||||||
|
if item.fuel_category == "chemical" then
|
||||||
|
item.fuel_value = energy_div(
|
||||||
|
item.fuel_value,chem_fuel_quotient
|
||||||
|
)
|
||||||
|
elseif item.fuel_category == "nuclear"
|
||||||
|
or item.fuel_category
|
||||||
|
== "adamo-nuclear-thermal-reaction" then
|
||||||
|
item.fuel_value = energy_div(
|
||||||
|
item.fuel_value,nuke_fuel_quotient
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,fluid in pairs(data.raw.fluid) do
|
||||||
|
if fluid.fuel_value then
|
||||||
|
fluid.fuel_value = energy_div(
|
||||||
|
fluid.fuel_value,chem_fuel_quotient
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,furnace in pairs(data.raw.furnace) do
|
||||||
|
set_burner_colors(furnace)
|
||||||
|
if furnace.energy_source
|
||||||
|
and (
|
||||||
|
furnace.energy_source.type == "burner"
|
||||||
|
or furnace.energy_source.type == "fluid"
|
||||||
|
) then
|
||||||
|
|
||||||
|
furnace.energy_source.effectivity =
|
||||||
|
(furnace.energy_source.effectivity or 1)
|
||||||
|
*furnace_eff
|
||||||
|
elseif furnace.burner then
|
||||||
|
furnace.burner.effectivity =
|
||||||
|
(furnace.burner.effectivity or 1)
|
||||||
|
*furnace_eff
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,machine in pairs(data.raw["assembling-machine"]) do
|
||||||
|
if machine.energy_source.type == "burner" then
|
||||||
|
set_burner_colors(machine)
|
||||||
|
machine.energy_source.effectivity =
|
||||||
|
(machine.energy_source.effectivity or 1)
|
||||||
|
*(furnace_eff)
|
||||||
|
elseif machine.burner then
|
||||||
|
set_burner_colors(machine)
|
||||||
|
machine.burner.effectivity =
|
||||||
|
(machine.burner.effectivity or 1)
|
||||||
|
*(furnace_eff)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- nuclear fuel items must have their fuel_values
|
||||||
|
-- adjusted elsewhere to compenstate for this increase
|
||||||
|
for _,reactor in pairs(data.raw.reactor) do
|
||||||
|
reactor.consumption =
|
||||||
|
energy_mult(reactor.consumption,reactor_consump_mult)
|
||||||
|
reactor.energy_source.effectivity = reactor_eff
|
||||||
|
reactor.heat_buffer.max_transfer = energy_div(
|
||||||
|
reactor.heat_buffer.max_transfer,gen_eff
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,panel in pairs(data.raw["solar-panel"]) do
|
||||||
|
panel.production =
|
||||||
|
energy_mult(
|
||||||
|
panel.production,
|
||||||
|
solar_panel_eff
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
for _,battery in pairs(data.raw["accumulator"]) do
|
||||||
|
local energy_source = get_energy_source(battery)
|
||||||
|
if energy_source then
|
||||||
|
energy_source.input_flow_limit =
|
||||||
|
energy_mult(
|
||||||
|
energy_source.input_flow_limit,
|
||||||
|
solar_panel_eff
|
||||||
|
)
|
||||||
|
energy_source.output_flow_limit =
|
||||||
|
energy_mult(
|
||||||
|
energy_source.output_flow_limit,
|
||||||
|
solar_panel_eff
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- This should only set colors on burner inserters.
|
||||||
|
for _,inserter in pairs(data.raw["inserter"]) do
|
||||||
|
set_burner_colors(inserter)
|
||||||
|
end
|
45
data-updates.lua
Normal file
45
data-updates.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
require("factsheet")
|
||||||
|
|
||||||
|
local heu_fuel_recipe = data.raw.recipe["uranium-fuel-cell"]
|
||||||
|
local heu_fuel_item = data.raw.item["uranium-fuel-cell"]
|
||||||
|
local heu_fuel_reproc = data.raw.recipe["nuclear-fuel-reprocessing"]
|
||||||
|
heu_fuel_recipe.ingredients = {
|
||||||
|
{"uranium-235",1},
|
||||||
|
{"uranium-238",5},
|
||||||
|
{"iron-plate",3}
|
||||||
|
}
|
||||||
|
heu_fuel_recipe.result = "uranium-fuel-cell"
|
||||||
|
heu_fuel_recipe.result_count = 3
|
||||||
|
heu_fuel_recipe.results = nil
|
||||||
|
heu_fuel_reproc.results = {{"uranium-238",5}}
|
||||||
|
heu_fuel_item.fuel_value = "100GJ"
|
||||||
|
|
||||||
|
|
||||||
|
-- Increasing height of plumbing entities
|
||||||
|
-- improves megareactor performance.
|
||||||
|
|
||||||
|
-- water pump
|
||||||
|
data.raw["offshore-pump"]["offshore-pump"]
|
||||||
|
.fluid_box.height =
|
||||||
|
(data.raw["offshore-pump"]["offshore-pump"]
|
||||||
|
.fluid_box.height or 1)/gen_eff
|
||||||
|
|
||||||
|
-- powered pump
|
||||||
|
data.raw.pump["pump"]
|
||||||
|
.fluid_box.height =
|
||||||
|
(data.raw.pump["pump"]
|
||||||
|
.fluid_box.height or 1)/gen_eff
|
||||||
|
data.raw.pump["pump"]
|
||||||
|
.pumping_speed =
|
||||||
|
data.raw.pump["pump"].pumping_speed/gen_eff
|
||||||
|
|
||||||
|
-- iron pipes
|
||||||
|
data.raw.pipe.pipe
|
||||||
|
.fluid_box.height =
|
||||||
|
(data.raw.pipe.pipe
|
||||||
|
.fluid_box.height or 1)/gen_eff
|
||||||
|
data.raw["pipe-to-ground"]["pipe-to-ground"]
|
||||||
|
.fluid_box.height =
|
||||||
|
(data.raw["pipe-to-ground"]["pipe-to-ground"]
|
||||||
|
.fluid_box.height or 1)/gen_eff
|
||||||
|
|
1
factsheet.lua
Symbolic link
1
factsheet.lua
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../factsheet.lua
|
11
info.json
Normal file
11
info.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "adamo-physics",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"title": "Physics",
|
||||||
|
"author": "adamo",
|
||||||
|
"dependencies": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
|
"description": "All power is not created equal.",
|
||||||
|
"factorio_version": "0.18"
|
||||||
|
}
|
BIN
thumbnail.png
Normal file
BIN
thumbnail.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
Loading…
Reference in New Issue
Block a user