mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-22 03:38:48 +02:00
New module
Whenever a character reaches its maximum inventory size the movement speed gets decreased.
This commit is contained in:
parent
9111e1fe79
commit
8257266d23
36
maps/modules/burden.lua
Normal file
36
maps/modules/burden.lua
Normal file
@ -0,0 +1,36 @@
|
||||
local event = require 'utils.event'
|
||||
local function compute_fullness(player)
|
||||
local inv = player.get_inventory(defines.inventory.player_main)
|
||||
local max_stacks = #inv
|
||||
local num_stacks = 0
|
||||
|
||||
local contents = inv.get_contents()
|
||||
for item, count in pairs(contents) do
|
||||
local stack_size = 1
|
||||
if game.item_prototypes[item].stackable then
|
||||
stack_size = game.item_prototypes[item].stack_size
|
||||
end
|
||||
|
||||
num_stacks = num_stacks + count / stack_size
|
||||
end
|
||||
|
||||
return num_stacks / max_stacks
|
||||
end
|
||||
|
||||
local function check_burden(event)
|
||||
local player = game.players[event.player_index]
|
||||
local fullness = compute_fullness(player)
|
||||
player.character_running_speed_modifier = 0.5 - fullness
|
||||
end
|
||||
|
||||
|
||||
local function on_init(event)
|
||||
script.on_event(defines.events.on_player_main_inventory_changed, check_burden)
|
||||
end
|
||||
|
||||
local function on_load(event)
|
||||
script.on_event(defines.events.on_player_main_inventory_changed, check_burden)
|
||||
end
|
||||
|
||||
event.on_init(on_init)
|
||||
event.on_load(on_load)
|
Loading…
x
Reference in New Issue
Block a user