CTD by setting combinator signals through script

This subforum contains all the issues which we already resolved.
User avatar
Reika
Filter Inserter
Filter Inserter
Posts: 587
Joined: Tue May 19, 2015 1:56 am
Contact:

CTD by setting combinator signals through script

Post by Reika »

Crash report:

https://pastebin.com/9mTqhF8w

With this line being the likely focus:
Error SignalID.cpp:195: Unknown enum value: 72
The lua code involved:

Code: Select all

local function sendControlSignals(entry)
	local control = entry.controller.get_control_behavior()
	for i = 1,6 do
		control.set_signal(i, {signal = {type = "virtual", name = "signal-fluid-in-" .. i}, count = hasInput(i) and 1 or 0})
		control.set_signal(i+6, {signal = {type = "virtual", name = "signal-fluid-out-" .. i}, count = hasOutput(i) and 1 or 0})
	end
end
Those signals do exist:

Code: Select all

local function createFluidSignals(i)
	local input = table.deepcopy(data.raw["virtual-signal"]["signal-" .. i])
	input.name = "signal-fluid-in-" .. i
	input.icons = {{icon = input.icon, icon_size = input.icon_size}, {icon = "__AutoTrainDepot__/graphics/icons/fluid-signal-overlay.png", icon_size = 32}, {icon = "__AutoTrainDepot__/graphics/icons/fluid-signal-input.png", icon_size = 32}}
	local output = table.deepcopy(input)
	output.name = string.gsub(output.name, "in", "out")
	output.icons[3].icon = string.gsub(output.icons[3].icon, "input", "output")
	data:extend({input, output})
end

for i = 1,6 do
	createFluidSignals(i)
end
Note: The crash is repeatable, but the enum number it identifies is NOT constant, even across a simple game reload.
Image
Rseding91
Factorio Staff
Factorio Staff
Posts: 16052
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: CTD by setting combinator signals through script

Post by Rseding91 »

This has to do with giving an invalid index to set_signal. I'll fix it for 0.17 so it gives an error.
If you want to get ahold of me I'm almost always on Discord.
Post Reply

Return to “Resolved Problems and Bugs”