Page 1 of 1

Clear Toolbelt at game start and set filters?

Posted: Sun Sep 11, 2016 12:58 pm
by Arumba
I would like to have my default 10 filters set every time I start a game. I always use the exact same ones and I have a tendency to iterate my factories, so always having to reset my filters is... manual. I would like to automate this process.

Setting the filters up by default would be the best solution, but if not that then I will just give myself a single unit of each item type in the correct order so that they will line up on my belt at game start in the order I normally use. However, at game start you are given a burner miner and a stone furnace, and those start in slots 1 and 2. Is there a way to remove everything from the toolbelt before I give items to myself so that slots 1 and 2 can be empty and receive the correct item?

Re: Clear Toolbelt at game start and set filters?

Posted: Sun Sep 11, 2016 5:47 pm
by DaveMcW

Code: Select all

local inventory = player.get_inventory(defines.inventory.player_quickbar)
inventory.set_filter(1,"transport-belt")
inventory.set_filter(2,"inserter")
inventory.set_filter(3,"medium-electric-pole")

Re: Clear Toolbelt at game start and set filters?

Posted: Mon Sep 12, 2016 2:46 am
by Arumba
Okay, thanks! I think I have made some significant progress with my mod now! Here is the code in case anyone is looking for the solution in the future:

Code: Select all

-- first we establish starting inventory and filters upon player first joining a game
script.on_event(defines.events.on_player_created, function(event)
	game.players[event.player_index].color = {r = 0, g = 0, b = 1, a = .7};  -- change player color to blue	
	local player = game.players[event.player_index]
		local inventory = player.get_inventory(defines.inventory.player_quickbar)
		inventory.clear()
		inventory.set_filter(1,"transport-belt")
		inventory.set_filter(2,"inserter")
		inventory.set_filter(3,"underground-belt")
		inventory.set_filter(4,"hacked-splitter")
		inventory.set_filter(5,"small-electric-pole")
		inventory.set_filter(6,"assembling-machine-1")
		inventory.set_filter(7,"long-handed-inserter")
		inventory.set_filter(8,"blueprint")
		inventory.set_filter(9,"deconstruction-planner")
		inventory.set_filter(10,"steel-chest")
	-- materials
		player.insert{name="steel-axe", count=10}
		player.insert{name="iron-plate", count=592} -- 8 extra are added by freeplay scenario starting items
		player.insert{name="copper-plate", count=400}
		player.insert{name="electronic-circuit", count=200}
		player.insert{name="iron-gear-wheel", count=200}
		player.insert{name="underground-belt", count=50}
		player.insert{name="hacked-splitter", count=50}
		player.insert{name="small-electric-pole", count=148} -- 48 required for furnace setup, 100 extra == 148
	-- logistics
		player.insert{name="assembling-machine-1", count=20}
		player.insert{name="long-handed-inserter", count=50}		
		player.insert{name="blueprint", count=1}
		player.insert{name="deconstruction-planner", count=1}
		player.insert{name="steel-chest", count=50}
		player.insert{name="inserter", count=182} -- 2 inserters per stone furnace, 52 stone furnaces to start with in 2 layouts of 2x13 = 2*2*2*13 == 104 + 28 for boilers + 50 spare
		player.insert{name="transport-belt", count=800}
	-- smelting/mining
		player.insert{name="electric-mining-drill", count=36} -- 13 for iron, 13 for copper, 2 for stone, 8 for coal == 36
		player.insert{name="stone-furnace", count=52} -- two setups of 2x13 == 52
	-- power
		player.insert{name="boiler", count=28} -- two rows of 14 boilers == 28
		player.insert{name="coal", count=1400} -- 50 coal per boiler * 28 == 1400
		player.insert{name="steam-engine", count=20} -- two rows of 10 steam engines == 20
		player.insert{name="offshore-pump", count=2} -- two power chains
		player.insert{name="pipe-to-ground", count=50}
		player.insert{name="pipe", count=50}
	-- car
		player.insert{name="car", count=1}
		player.insert{name="coal", count=200} -- coal for car
	-- robot
		player.insert{name="power-armor", count=1}
		player.insert{name="construction-robot", count=50}
		player.insert{name="fusion-reactor-equipment", count=1}
		player.insert{name="personal-roboport-equipment", count=5}
		player.insert{name="battery-mk2-equipment", count=3}
	-- science
		player.insert{name="lab", count=10}
		player.insert{name="science-pack-1", count=10}	
end)
-- then we establish a new inventory if player should respawn
-- script.on_event(defines.events.on_player_respawn, function(event)
	-- local player = game.players[event.player_index]
		-- local inventory = player.get_inventory(defines.inventory.player_quickbar)
		-- inventory.set_filter(1,"transport-belt")
		-- inventory.set_filter(2,"inserter")
		-- inventory.set_filter(3,"underground-belt")
		-- inventory.set_filter(4,"hacked-splitter")
		-- inventory.set_filter(5,"small-electric-pole")
		-- inventory.set_filter(6,"assembling-machine-1")
		-- inventory.set_filter(7,"long-handed-inserter")
		-- inventory.set_filter(8,"blueprint")
		-- inventory.set_filter(9,"deconstruction-planner")
		-- inventory.set_filter(10,"steel-chest")
	-- materials
		-- player.insert{name="steel-axe", count=10}
	-- logistics
		-- player.insert{name="blueprint", count=1}
		-- player.insert{name="deconstruction-planner", count=1}
	-- car
		-- player.insert{name="car", count=1}
		-- player.insert{name="coal", count=200} -- coal for car
	-- robot
		-- player.insert{name="power-armor", count=1}
		-- player.insert{name="construction-robot", count=50}
		-- player.insert{name="fusion-reactor-equipment", count=1}
		-- player.insert{name="personal-roboport-equipment", count=5}
		-- player.insert{name="battery-mk2-equipment", count=3}
-- end)

Re: Clear Toolbelt at game start and set filters?

Posted: Mon Sep 12, 2016 3:09 am
by DaveMcW
Arumba wrote:

Code: Select all

local player = game.players[event.player_index]
That needs to be at the top of the function.