-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
NML version
https://github.com/PeterN/nml/tree/station-bridges#
Error message
nmlc ERROR: nmlc: An internal error has occurred:
nmlc-version: 0.4.5.post20250901+station.bridges.gb0a3bee1
Error: (NotImplementedError) "reduce must be implemented in expression-subclass <class 'nml.actions.action2layout.StationSpriteset'>".
Command: ['/usr/local/bin/nmlc', '-c', '--verbosity=4', '--no-optimisation-warning', '--grf=generated/Polish_Stations.grf', 'generated/Polish_Stations.nml']
Location: File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/expression/base_expression.py", line 70, in reduce
And with -s flag
File "/usr/local/bin/nmlc", line 33, in <module>
sys.exit(load_entry_point('nml==0.4.5.post20250901+station.bridges.gb0a3bee1', 'console_scripts', 'nmlc')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/main.py", line 637, in run
main(sys.argv[1:])
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/main.py", line 343, in main
ret = nml(
^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/main.py", line 447, in nml
tmp_actions = result.get_action_list()
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/ast/base_statement.py", line 164, in get_action_list
action_list.extend(stmt.get_action_list())
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/ast/item.py", line 112, in get_action_list
return base_statement.BaseStatementList.get_action_list(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/ast/base_statement.py", line 164, in get_action_list
action_list.extend(stmt.get_action_list())
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/ast/item.py", line 271, in get_action_list
return action3.parse_graphics_block(self, item_feature, item_id, item_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action3.py", line 289, in parse_graphics_block
action_list.extend(parse_graphics_block_single_id(graphics_block, feature, id, is_livery_override))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action3.py", line 355, in parse_graphics_block_single_id
actions, var10map, registers_ref = action2layout.parse_station_layouts(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action2layout.py", line 734, in parse_station_layouts
layout_registers.parse(varact2parser)
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action2layout.py", line 527, in parse
varact2parser.parse_expr(expr)
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action2var.py", line 692, in parse_expr
self.parse(expr)
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action2var.py", line 701, in parse
expr = self.preprocess_binop(expr)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/actions/action2var.py", line 411, in preprocess_binop
return expr.reduce()
^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/expression/binop.py", line 80, in reduce
expr1 = self.expr1.reduce(id_dicts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/nml-0.4.5.post20250901+station.bridges.gb0a3bee1-py3.11-linux-x86_64.egg/nml/expression/base_expression.py", line 70, in reduce
raise NotImplementedError("reduce must be implemented in expression-subclass {!r}".format(type(self)))
NotImplementedError: reduce must be implemented in expression-subclass <class 'nml.actions.action2layout.StationSpriteset'>
What caused it
spritelayout layout_FRONT_X {br}
ground {br}
- sprite: 1012;
+ sprite: CUSTOM(1) + 1;
{_br}
building {br}
sprite: DEFAULT(1);
zextent: {zextent};
recolour_mode: RECOLOUR_REMAP;
palette: CUSTOM(0);
{_br}
{_br}
spritelayout layout_FRONT_Y {
ground {
- sprite: 1011;
+ sprite: CUSTOM(1);
}
building {
sprite: DEFAULT(3);
zextent: {zextent};
recolour_mode: RECOLOUR_REMAP;
palette: CUSTOM(0);
}
}
+ switch (FEAT_STATIONS, SELF, GROUND_sprite_switch, terrain_type) {
+ TILETYPE_DESERT: 1037;
+ 1011;
+ }
item (FEAT_STATIONS, tile_1_1) {
graphics {
sprite_layouts: [layout_FRONT_X, layout_FRONT_Y];
// first spriteset always exist and has no cargo on it
default: spriteset_1_0;
- custom_spritesets: [palette_switch];
+ custom_spritesets: [palette_switch, GROUND_sprite_switch];
purchase: spriteset_1_0;
select_tile_type: 0; // can be 0 - 255 since nml 0.7.6
PASS: random_1_PASS;
}
}NML file and files needed to compile
Polish_Stations.nml.zip
images.zip
lang.zip
Source code
https://codeberg.org/Rito12/OpenTTDPolishStations/src/branch/NML_internal_error_bug_report
Metadata
Metadata
Assignees
Labels
No labels