mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Vlayer Changes (#286)
* Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update roles.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua * Update vlayer.lua
This commit is contained in:
@@ -148,6 +148,7 @@ local function get_sustained_multiplier()
|
||||
local day_duration = 1 - surface.dawn + surface.dusk
|
||||
local sunset_duration = surface.evening - surface.dusk
|
||||
local sunrise_duration = surface.dawn - surface.morning
|
||||
|
||||
return mul * (day_duration + (0.5 * (sunset_duration + sunrise_duration)))
|
||||
end
|
||||
|
||||
@@ -300,6 +301,7 @@ local function handle_input_interfaces()
|
||||
else
|
||||
vlayer.insert_item(name, count)
|
||||
end
|
||||
|
||||
else
|
||||
vlayer.insert_item(name, count)
|
||||
end
|
||||
@@ -395,26 +397,35 @@ function vlayer.get_statistics()
|
||||
return {
|
||||
total_surface_area = vlayer_data.properties.total_surface_area,
|
||||
used_surface_area = vlayer_data.properties.used_surface_area,
|
||||
remaining_surface_area = math.max(vlayer_data.properties.total_surface_area - vlayer_data.properties.used_surface_area, 0),
|
||||
energy_production = vlayer_data.properties.production * mega * get_production_multiplier(),
|
||||
energy_sustained = vlayer_data.properties.production * mega * get_sustained_multiplier(),
|
||||
energy_capacity = vlayer_data.properties.capacity * mega,
|
||||
energy_storage = vlayer_data.storage.energy,
|
||||
day = math.floor(game.tick / vlayer_data.surface.ticks_per_day),
|
||||
time =math.floor(vlayer_data.surface.daytime * vlayer_data.surface.ticks_per_day)
|
||||
time = math.floor(vlayer_data.surface.daytime * vlayer_data.surface.ticks_per_day)
|
||||
}
|
||||
end
|
||||
|
||||
--- add or reduce vlayer power
|
||||
function vlayer.energy_changed(power)
|
||||
vlayer_data.storage.energy = vlayer_data.storage.energy + power
|
||||
end
|
||||
|
||||
--- Circuit signals used for the statistics
|
||||
local circuit_signals = {
|
||||
total_surface_area = 'signal-A',
|
||||
used_surface_area = 'signal-B',
|
||||
energy_production = 'signal-P',
|
||||
energy_sustained = 'signal-S',
|
||||
energy_capacity = 'signal-C',
|
||||
energy_storage = 'signal-E',
|
||||
day = 'signal-D',
|
||||
time = 'signal-T',
|
||||
}
|
||||
function vlayer.get_circuits()
|
||||
return {
|
||||
total_surface_area = 'signal-A',
|
||||
used_surface_area = 'signal-U',
|
||||
remaining_surface_area = 'signal-R',
|
||||
energy_production = 'signal-P',
|
||||
energy_sustained = 'signal-S',
|
||||
energy_capacity = 'signal-C',
|
||||
energy_storage = 'signal-E',
|
||||
day = 'signal-D',
|
||||
time = 'signal-T',
|
||||
}
|
||||
end
|
||||
|
||||
--- Create a new circuit interface
|
||||
-- @tparam LuaSurface surface The surface to place the interface onto
|
||||
@@ -447,9 +458,10 @@ local function handle_circuit_interfaces()
|
||||
local circuit_oc = interface.get_or_create_control_behavior()
|
||||
local max_signals = circuit_oc.signals_count
|
||||
local signal_index = 1
|
||||
local circuit = vlayer.get_circuits()
|
||||
|
||||
-- Set the virtual signals based on the vlayer stats
|
||||
for stat_name, signal_name in pairs(circuit_signals) do
|
||||
for stat_name, signal_name in pairs(circuit) do
|
||||
if stat_name:find('energy') then
|
||||
circuit_oc.set_signal(signal_index, {signal={type='virtual', name=signal_name}, count=math.floor(stats[stat_name] / mega)})
|
||||
|
||||
@@ -476,6 +488,7 @@ local function handle_circuit_interfaces()
|
||||
if not circuit_oc.get_signal(clear_index).signal then
|
||||
break -- There are no more signals to clear
|
||||
end
|
||||
|
||||
circuit_oc.set_signal(clear_index, nil)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user