2019-09-24 23:04:55 +02:00
--this adds a button that stashes/sorts your inventory into nearby chests in some kind of intelligent way - mewmew
2019-10-24 23:00:14 +02:00
-- modified by gerkiz
2019-09-24 23:04:55 +02:00
2020-06-07 23:25:29 +02:00
local Global = require ' utils.global '
2020-10-22 00:32:34 +02:00
local Event = require ' utils.event '
2021-02-26 00:59:33 +02:00
local BottomFrame = require ' comfy_panel.bottom_frame '
2020-03-10 03:51:08 +02:00
local math_floor = math.floor
2019-09-24 23:04:55 +02:00
local print_color = { r = 120 , g = 255 , b = 0 }
2020-10-22 17:39:23 +02:00
local this = {
2020-06-07 23:25:29 +02:00
floating_text_y_offsets = { } ,
2020-10-22 00:32:34 +02:00
whitelist = { } ,
2020-10-22 17:39:23 +02:00
insert_into_furnace = false ,
insert_into_wagon = false ,
2020-12-29 14:46:32 +02:00
bottom_button = false ,
2020-10-22 17:39:23 +02:00
small_radius = 2
2020-06-07 23:25:29 +02:00
}
local Public = { }
Global.register (
2020-10-22 17:39:23 +02:00
this ,
2020-06-07 23:25:29 +02:00
function ( t )
2020-10-22 17:39:23 +02:00
this = t
2020-06-07 23:25:29 +02:00
end
)
2020-06-10 00:11:35 +02:00
local function create_floaty_text ( surface , position , name , count )
2020-10-22 17:39:23 +02:00
if this.floating_text_y_offsets [ position.x .. ' _ ' .. position.y ] then
2020-11-29 03:23:42 +02:00
this.floating_text_y_offsets [ position.x .. ' _ ' .. position.y ] = this.floating_text_y_offsets [ position.x .. ' _ ' .. position.y ] - 0.5
2020-06-07 23:25:29 +02:00
else
2020-10-22 17:39:23 +02:00
this.floating_text_y_offsets [ position.x .. ' _ ' .. position.y ] = 0
2020-06-07 23:25:29 +02:00
end
surface.create_entity (
{
name = ' flying-text ' ,
position = {
position.x ,
2020-10-22 17:39:23 +02:00
position.y + this.floating_text_y_offsets [ position.x .. ' _ ' .. position.y ]
2020-06-07 23:25:29 +02:00
} ,
2020-06-30 15:55:29 +02:00
text = { ' ' , ' - ' , count , ' ' , game.item_prototypes [ name ] . localised_name } ,
2020-06-07 23:25:29 +02:00
color = { r = 255 , g = 255 , b = 255 }
}
)
2019-09-24 23:04:55 +02:00
end
2020-12-05 19:09:37 +02:00
local function chest_is_valid ( chest , inventory )
2020-10-18 11:39:38 +02:00
if chest.type == ' cargo-wagon ' then
2020-10-22 00:32:34 +02:00
local t = { }
2020-10-18 11:39:38 +02:00
local chest_inventory = chest.get_inventory ( defines.inventory . cargo_wagon )
2020-12-05 19:09:37 +02:00
inventory = inventory.get_contents ( )
2020-10-22 00:32:34 +02:00
for index = 1 , 40 do
if chest_inventory.get_filter ( index ) ~= nil then
local n = chest_inventory.get_filter ( index )
2020-12-05 19:09:37 +02:00
if inventory [ n ] then
if ( t [ n ] and t [ n ] . valid ) then
2021-02-18 23:44:32 +02:00
t [ n ] . count = inventory [ n ]
2020-12-05 19:09:37 +02:00
else
t [ n ] = { count = inventory [ n ] , valid = true }
end
2020-10-22 17:39:23 +02:00
end
2020-10-18 11:39:38 +02:00
end
end
2020-10-22 00:32:34 +02:00
if not next ( t ) then
return false , { }
end
return true , t
2020-10-18 11:39:38 +02:00
end
2020-06-07 23:25:29 +02:00
for _ , e in pairs (
chest.surface . find_entities_filtered (
{
type = { ' inserter ' , ' loader ' } ,
area = { { chest.position . x - 1 , chest.position . y - 1 } , { chest.position . x + 1 , chest.position . y + 1 } }
}
)
) do
if e.name ~= ' long-handed-inserter ' then
if e.position . x == chest.position . x then
if e.direction == 0 or e.direction == 4 then
return false
end
end
if e.position . y == chest.position . y then
if e.direction == 2 or e.direction == 6 then
return false
end
end
end
end
2020-10-22 00:32:34 +02:00
local i1 = chest.surface . find_entity ( ' long-handed-inserter ' , { chest.position . x - 2 , chest.position . y } )
if i1 then
if i1.direction == 2 or i1.direction == 6 then
2020-06-07 23:25:29 +02:00
return false
end
end
2020-10-22 00:32:34 +02:00
local i2 = chest.surface . find_entity ( ' long-handed-inserter ' , { chest.position . x + 2 , chest.position . y } )
if i2 then
if i2.direction == 2 or i2.direction == 6 then
2020-06-07 23:25:29 +02:00
return false
end
end
2020-10-22 00:32:34 +02:00
local i3 = chest.surface . find_entity ( ' long-handed-inserter ' , { chest.position . x , chest.position . y - 2 } )
if i3 then
if i3.direction == 0 or i3.direction == 4 then
2020-06-07 23:25:29 +02:00
return false
end
end
2020-10-22 00:32:34 +02:00
local i4 = chest.surface . find_entity ( ' long-handed-inserter ' , { chest.position . x , chest.position . y + 2 } )
if i4 then
if i4.direction == 0 or i4.direction == 4 then
2020-06-07 23:25:29 +02:00
return false
end
end
return true
2019-09-24 23:04:55 +02:00
end
2020-03-10 03:51:08 +02:00
local function sort_entities_by_distance ( position , entities )
2020-06-07 23:25:29 +02:00
local t = { }
local distance
local index
local size_of_entities = # entities
if size_of_entities < 2 then
return
end
for _ , entity in pairs ( entities ) do
distance = ( entity.position . x - position.x ) ^ 2 + ( entity.position . y - position.y ) ^ 2
index = math_floor ( distance ) + 1
if not t [ index ] then
t [ index ] = { }
end
table.insert ( t [ index ] , entity )
end
local i = 0
for _ , range in pairs ( t ) do
for _ , entity in pairs ( range ) do
i = i + 1
entities [ i ] = entity
end
end
2020-03-10 03:51:08 +02:00
end
2020-10-22 17:39:23 +02:00
local function get_nearby_chests ( player , a , furnace , wagon )
2020-06-07 23:25:29 +02:00
local r = player.force . character_reach_distance_bonus + 10
local r_square = r * r
local chests = { }
local size_of_chests = 0
local area = { { player.position . x - r , player.position . y - r } , { player.position . x + r , player.position . y + r } }
2020-10-22 00:32:34 +02:00
area = a or area
2020-10-22 17:39:23 +02:00
local container_type = { ' container ' , ' logistic-container ' }
2020-06-07 23:25:29 +02:00
local containers = { }
local i = 0
2020-10-18 01:42:09 +02:00
2020-10-22 17:39:23 +02:00
if furnace then
container_type = { ' furnace ' }
end
if wagon then
container_type = { ' cargo-wagon ' }
2020-10-18 01:42:09 +02:00
end
2020-10-22 00:32:34 +02:00
for _ , e in pairs ( player.surface . find_entities_filtered ( { type = container_type , area = area , force = ' player ' } ) ) do
2020-06-07 23:25:29 +02:00
if ( ( player.position . x - e.position . x ) ^ 2 + ( player.position . y - e.position . y ) ^ 2 ) <= r_square then
i = i + 1
containers [ i ] = e
end
end
2021-02-15 23:36:20 +02:00
if # containers <= 0 then
if is_mod_loaded ( ' Krastorio2 ' ) then
for _ , e in pairs ( player.surface . find_entities_filtered ( { type = ' assembling-machine ' , area = area , force = ' player ' } ) ) do
if ( ( player.position . x - e.position . x ) ^ 2 + ( player.position . y - e.position . y ) ^ 2 ) <= r_square then
i = i + 1
containers [ i ] = e
end
end
end
end
2020-06-07 23:25:29 +02:00
sort_entities_by_distance ( player.position , containers )
for _ , entity in pairs ( containers ) do
size_of_chests = size_of_chests + 1
chests [ size_of_chests ] = entity
end
return chests
2019-09-24 23:04:55 +02:00
end
local function does_inventory_contain_item_type ( inventory , item_subgroup )
2020-10-22 00:32:34 +02:00
for name , _ in pairs ( inventory.get_contents ( ) ) do
local t = game.item_prototypes [ name ]
if t and t.subgroup . name == item_subgroup then
2020-06-07 23:25:29 +02:00
return true
end
end
return false
2019-09-24 23:04:55 +02:00
end
2020-10-22 17:39:23 +02:00
local function insert_item_into_chest ( player_inventory , chests , filtered_chests , name , count , furnace , wagon )
2020-06-10 00:11:35 +02:00
local container = {
[ ' container ' ] = true ,
[ ' logistic-container ' ] = true
}
2020-07-02 19:13:20 +02:00
local to_insert = math.floor ( count / # chests )
local variator = count % # chests
2020-10-22 17:39:23 +02:00
--Attempt to store into furnaces.
if furnace then
2020-06-07 23:25:29 +02:00
for _ , chest in pairs ( chests ) do
2021-02-15 23:36:20 +02:00
local chest_inventory
if chest.type == ' assembling-machine ' then
chest_inventory = chest.get_inventory ( defines.inventory . assembling_machine_input )
else
chest_inventory = chest.get_inventory ( defines.inventory . furnace_source )
end
local amount = to_insert
if variator > 0 then
amount = amount + 1
variator = variator - 1
end
if amount <= 0 then
return
end
if chest_inventory and ( chest.type == ' furnace ' or chest.type == ' assembling-machine ' ) then
if chest_inventory.can_insert ( { name = name , count = amount } ) then
local inserted_count = chest_inventory.insert ( { name = name , count = amount } )
2020-06-07 23:25:29 +02:00
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
end
end
end
2020-10-22 17:39:23 +02:00
for _ , chest in pairs ( chests ) do
2021-02-15 23:36:20 +02:00
if chest.type == ' furnace ' or chest.type == ' assembling-machine ' then
2020-10-22 17:39:23 +02:00
local amount = to_insert
if variator > 0 then
amount = amount + 1
variator = variator - 1
end
if amount <= 0 then
2020-10-18 01:42:09 +02:00
return
end
2020-10-22 17:39:23 +02:00
local chest_inventory = chest.get_inventory ( defines.inventory . chest )
if chest_inventory and chest_inventory.can_insert ( { name = name , count = amount } ) then
local inserted_count = chest_inventory.insert ( { name = name , count = amount } )
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
end
2020-10-18 01:42:09 +02:00
end
end
end
2020-10-22 17:39:23 +02:00
-- Attempt to load filtered cargo wagon
if wagon then
for _ , chest in pairs ( chests ) do
if chest.type == ' cargo-wagon ' then
local chest_inventory = chest.get_inventory ( defines.inventory . cargo_wagon )
if chest_inventory and chest_inventory.can_insert ( { name = name , count = count } ) then
local inserted_count = chest_inventory.insert ( { name = name , count = count } )
2020-10-22 13:33:53 +02:00
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
2020-10-22 17:39:23 +02:00
count = count - inserted_count
if count <= 0 then
return
end
2020-10-22 13:33:53 +02:00
end
2020-10-22 00:32:34 +02:00
end
end
end
2020-06-07 23:25:29 +02:00
--Attempt to store in chests that already have the same item.
for _ , chest in pairs ( chests ) do
2020-06-10 00:11:35 +02:00
if container [ chest.type ] then
local chest_inventory = chest.get_inventory ( defines.inventory . chest )
2021-02-15 23:36:20 +02:00
2020-10-22 17:39:23 +02:00
if chest_inventory and chest_inventory.can_insert ( { name = name , count = count } ) then
2020-06-07 23:25:29 +02:00
if chest_inventory.find_item_stack ( name ) then
local inserted_count = chest_inventory.insert ( { name = name , count = count } )
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
count = count - inserted_count
if count <= 0 then
return
end
end
end
end
end
--Attempt to store in empty chests.
for _ , chest in pairs ( filtered_chests ) do
2020-06-10 00:11:35 +02:00
if container [ chest.type ] then
local chest_inventory = chest.get_inventory ( defines.inventory . chest )
2020-10-22 17:39:23 +02:00
if chest_inventory and chest_inventory.can_insert ( { name = name , count = count } ) then
2020-06-07 23:25:29 +02:00
if chest_inventory.is_empty ( ) then
local inserted_count = chest_inventory.insert ( { name = name , count = count } )
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
count = count - inserted_count
if count <= 0 then
return
end
end
end
end
end
--Attempt to store in chests with same item subgroup.
local item_subgroup = game.item_prototypes [ name ] . subgroup.name
if item_subgroup then
for _ , chest in pairs ( filtered_chests ) do
2020-06-10 00:11:35 +02:00
if container [ chest.type ] then
local chest_inventory = chest.get_inventory ( defines.inventory . chest )
2020-10-22 17:39:23 +02:00
if chest_inventory and chest_inventory.can_insert ( { name = name , count = count } ) then
2020-06-07 23:25:29 +02:00
if does_inventory_contain_item_type ( chest_inventory , item_subgroup ) then
local inserted_count = chest_inventory.insert ( { name = name , count = count } )
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
count = count - inserted_count
if count <= 0 then
return
end
end
end
end
end
end
--Attempt to store in mixed chests.
for _ , chest in pairs ( filtered_chests ) do
2020-06-10 00:11:35 +02:00
if container [ chest.type ] then
local chest_inventory = chest.get_inventory ( defines.inventory . chest )
2020-06-07 23:25:29 +02:00
if chest_inventory.can_insert ( { name = name , count = count } ) then
local inserted_count = chest_inventory.insert ( { name = name , count = count } )
player_inventory.remove ( { name = name , count = inserted_count } )
create_floaty_text ( chest.surface , chest.position , name , inserted_count )
count = count - inserted_count
if count <= 0 then
return
end
end
end
end
2019-09-24 23:04:55 +02:00
end
2019-10-24 23:00:14 +02:00
local function auto_stash ( player , event )
2020-06-07 23:25:29 +02:00
local button = event.button
2020-10-22 17:39:23 +02:00
local ctrl = event.control
2020-10-22 00:35:36 +02:00
local shift = event.shift
2020-06-07 23:25:29 +02:00
if not player.character then
player.print ( ' It seems that you are not in the realm of the living. ' , print_color )
return
end
if not player.character . valid then
player.print ( ' It seems that you are not in the realm of the living. ' , print_color )
return
end
local inventory = player.get_inventory ( defines.inventory . character_main )
if inventory.is_empty ( ) then
player.print ( ' Inventory is empty. ' , print_color )
return
end
2020-12-05 19:09:37 +02:00
2020-10-22 00:32:34 +02:00
local chests
2020-10-22 17:39:23 +02:00
local r = this.small_radius
2020-10-22 00:32:34 +02:00
local area = { { player.position . x - r , player.position . y - r } , { player.position . x + r , player.position . y + r } }
2020-10-22 17:39:23 +02:00
if ctrl then
if button == defines.mouse_button_type . right and this.insert_into_furnace then
chests = get_nearby_chests ( player , nil , true , false )
end
elseif shift then
2020-12-04 02:09:59 +02:00
if button == defines.mouse_button_type . right and this.insert_into_wagon or button == defines.mouse_button_type . left and this.insert_into_wagon then
2020-10-22 17:39:23 +02:00
chests = get_nearby_chests ( player , area , false , true )
2020-10-22 00:32:34 +02:00
end
else
chests = get_nearby_chests ( player )
end
2020-10-25 18:02:37 +02:00
if not chests or not chests [ 1 ] then
2020-06-07 23:25:29 +02:00
player.print ( ' No valid nearby containers found. ' , print_color )
return
end
2020-12-05 19:09:37 +02:00
local filtered_chests = { }
local filtered_allowed
for _ , e in pairs ( chests ) do
local is_valid , t = chest_is_valid ( e , inventory )
filtered_allowed = t
if is_valid then
filtered_chests [ # filtered_chests + 1 ] = e
2020-06-07 23:25:29 +02:00
end
2020-12-05 19:09:37 +02:00
end
2020-06-07 23:25:29 +02:00
2020-12-05 19:09:37 +02:00
this.floating_text_y_offsets = { }
2020-06-07 23:25:29 +02:00
2020-12-05 19:09:37 +02:00
local hotbar_items = { }
for i = 1 , 100 , 1 do
local prototype = player.get_quick_bar_slot ( i )
if prototype then
hotbar_items [ prototype.name ] = true
2020-06-07 23:25:29 +02:00
end
2020-12-05 19:09:37 +02:00
end
2020-06-07 23:25:29 +02:00
2020-12-05 19:09:37 +02:00
for name , count in pairs ( inventory.get_contents ( ) ) do
2020-10-22 17:39:23 +02:00
local is_resource = this.whitelist [ name ]
2020-06-10 00:11:35 +02:00
2020-06-07 23:25:29 +02:00
if not inventory.find_item_stack ( name ) . grid and not hotbar_items [ name ] then
2020-10-22 17:39:23 +02:00
if ctrl and this.insert_into_furnace then
if button == defines.mouse_button_type . right then
2020-10-22 00:32:34 +02:00
if is_resource then
2020-10-22 17:39:23 +02:00
insert_item_into_chest ( inventory , chests , filtered_chests , name , count , true , false )
2020-10-22 00:32:34 +02:00
end
end
2020-10-22 17:39:23 +02:00
elseif shift and this.insert_into_wagon then
2020-10-22 00:32:34 +02:00
if button == defines.mouse_button_type . right then
2020-10-22 17:39:23 +02:00
if is_resource then
insert_item_into_chest ( inventory , chests , filtered_chests , name , count , false , true )
end
end
if button == defines.mouse_button_type . left then
if filtered_allowed and filtered_allowed [ name ] and filtered_allowed [ name ] . valid then
local c = filtered_allowed [ name ] . count
insert_item_into_chest ( inventory , chests , filtered_chests , name , c , false , true )
2020-10-22 00:32:34 +02:00
end
2020-06-07 23:25:29 +02:00
end
elseif button == defines.mouse_button_type . right then
2020-10-22 00:32:34 +02:00
if is_resource then
2020-06-07 23:25:29 +02:00
insert_item_into_chest ( inventory , chests , filtered_chests , name , count )
end
elseif button == defines.mouse_button_type . left then
insert_item_into_chest ( inventory , chests , filtered_chests , name , count )
end
end
end
2020-10-22 17:39:23 +02:00
local c = this.floating_text_y_offsets
2020-06-07 23:30:28 +02:00
for k , _ in pairs ( c ) do
2020-10-22 17:39:23 +02:00
this.floating_text_y_offsets [ k ] = nil
2020-06-07 23:30:28 +02:00
end
2019-09-24 23:04:55 +02:00
end
local function create_gui_button ( player )
2020-06-07 23:25:29 +02:00
if player.gui . top.auto_stash then
return
end
local tooltip
2020-10-22 17:39:23 +02:00
if this.insert_into_furnace and this.insert_into_wagon then
tooltip =
2021-02-01 21:01:07 +02:00
' Sort your inventory into nearby chests. \n LMB: Everything, excluding quickbar items. \n RMB: Only ores to nearby chests, excluding quickbar items. \n CTRL+RMB: Fill nearby furnaces. \n SHIFT+LMB: Everything onto filtered slots to wagon. \n SHIFT+RMB: Only ores to wagon '
2020-10-22 17:39:23 +02:00
elseif this.insert_into_furnace then
2021-02-01 21:01:07 +02:00
tooltip =
' Sort your inventory into nearby chests. \n LMB: Everything, excluding quickbar items. \n RMB: Only ores to nearby chests, excluding quickbar items. \n CTRL+RMB: Fill nearby furnaces. '
2020-10-22 17:39:23 +02:00
elseif this.insert_into_wagon then
2020-06-07 23:25:29 +02:00
tooltip =
2021-02-01 21:01:07 +02:00
' Sort your inventory into nearby chests. \n LMB: Everything, excluding quickbar items. \n RMB: Only ores to nearby chests, excluding quickbar items. \n SHIFT+LMB: Everything onto filtered slots to wagon. \n SHIFT+RMB: Only ores to wagon '
2020-06-07 23:25:29 +02:00
else
2021-02-01 21:01:07 +02:00
tooltip = ' Sort your inventory into nearby chests. \n LMB: Everything, excluding quickbar items. \n RMB: Only ores to nearby chests, excluding quickbar items. '
2020-06-07 23:25:29 +02:00
end
2020-12-29 14:46:32 +02:00
if this.bottom_button then
2021-02-26 00:59:33 +02:00
local data = BottomFrame.get ( ' bottom_quickbar_button ' )
2020-12-30 12:07:44 +02:00
-- save it for later use
data.tooltip = tooltip
data.sprite = ' item/wooden-chest '
if data [ player.index ] then
data = data [ player.index ]
if data.frame and data.frame . valid then
data.frame . sprite = ' item/wooden-chest '
data.frame . tooltip = tooltip
end
end
2020-12-29 14:46:32 +02:00
else
local b =
player.gui . top.add (
{
type = ' sprite-button ' ,
sprite = ' item/wooden-chest ' ,
name = ' auto_stash ' ,
tooltip = tooltip
}
)
b.style . font_color = { r = 0.11 , g = 0.8 , b = 0.44 }
b.style . font = ' heading-1 '
b.style . minimal_height = 40
b.style . maximal_width = 40
b.style . minimal_width = 38
b.style . maximal_height = 38
b.style . padding = 1
b.style . margin = 0
end
2019-09-24 23:04:55 +02:00
end
2020-10-22 00:32:34 +02:00
local function do_whitelist ( )
local resources = game.entity_prototypes
2020-10-22 17:39:23 +02:00
this.whitelist = { }
2020-10-22 00:32:34 +02:00
for k , _ in pairs ( resources ) do
if resources [ k ] and resources [ k ] . type == ' resource ' and resources [ k ] . mineable_properties then
if resources [ k ] . mineable_properties.products [ 1 ] then
local r = resources [ k ] . mineable_properties.products [ 1 ] . name
2020-10-22 17:39:23 +02:00
this.whitelist [ r ] = true
2020-10-22 00:32:34 +02:00
elseif resources [ k ] . mineable_properties.products [ 2 ] then
local r = resources [ k ] . mineable_properties.products [ 2 ] . name
2020-10-22 17:39:23 +02:00
this.whitelist [ r ] = true
2020-10-22 00:32:34 +02:00
end
end
end
end
2019-09-24 23:04:55 +02:00
local function on_player_joined_game ( event )
2020-06-07 23:25:29 +02:00
create_gui_button ( game.players [ event.player_index ] )
2019-09-24 23:04:55 +02:00
end
local function on_gui_click ( event )
2020-06-07 23:25:29 +02:00
if not event.element then
return
end
if not event.element . valid then
return
end
2020-12-30 12:07:44 +02:00
local player = game.players [ event.player_index ]
2020-12-29 14:46:32 +02:00
local name = ' auto_stash '
if this.bottom_button then
2021-02-26 00:59:33 +02:00
local data = BottomFrame.get ( ' bottom_quickbar_button ' )
2020-12-30 12:07:44 +02:00
if data [ player.index ] then
data = data [ player.index ]
name = data.name
end
2020-12-29 14:46:32 +02:00
end
if event.element . name == name then
2020-12-30 12:07:44 +02:00
auto_stash ( player , event )
2020-06-07 23:25:29 +02:00
end
end
2019-10-24 23:00:14 +02:00
2020-10-22 17:39:23 +02:00
function Public . insert_into_furnace ( value )
if value then
this.insert_into_furnace = value
else
this.insert_into_furnace = false
end
end
2020-10-18 01:42:09 +02:00
function Public . insert_into_wagon ( value )
if value then
2020-10-22 17:39:23 +02:00
this.insert_into_wagon = value
else
this.insert_into_wagon = false
2020-10-18 01:42:09 +02:00
end
end
2020-12-29 14:46:32 +02:00
function Public . bottom_button ( value )
if value then
this.bottom_button = value
else
this.bottom_button = false
end
end
2020-10-22 00:32:34 +02:00
Event.on_configuration_changed = function ( )
do_whitelist ( )
log ( ' [Autostash] on_configuration_changed was called, rebuilding resource whitelist. ' )
end
Event.on_init ( do_whitelist )
Event.add ( defines.events . on_player_joined_game , on_player_joined_game )
Event.add ( defines.events . on_gui_click , on_gui_click )
2020-06-07 23:25:29 +02:00
return Public