factorio-types 1.2.49 → 1.2.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/global.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Factorio API reference https://lua-api.factorio.com/latest/index.html
3
3
  // Generated from JSON source https://lua-api.factorio.com/latest/runtime-api.json
4
4
  // Definition source https://github.com/sguest/factorio-types
5
- // Factorio version 2.0.66
5
+ // Factorio version 2.0.67
6
6
  // API version 6
7
7
 
8
8
  /**
@@ -64,4 +64,4 @@ declare function log(this: void, string: runtime.LocalisedString): void;
64
64
  *
65
65
  * Note that `table_size()` does not work correctly for {@link LuaCustomTable | runtime:LuaCustomTable}, their size has to be determined with {@link LuaCustomTable::length_operator | runtime:LuaCustomTable::length_operator} instead.
66
66
  */
67
- declare function table_size(this: void, table: runtime.table): uint;
67
+ declare function table_size(this: void, table: runtime.table): uint32;
@@ -2,7 +2,7 @@
2
2
  // Factorio API reference https://lua-api.factorio.com/latest/index.html
3
3
  // Generated from JSON source https://lua-api.factorio.com/latest/prototype-api.json
4
4
  // Definition source https://github.com/sguest/factorio-types
5
- // Factorio version 2.0.66
5
+ // Factorio version 2.0.67
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
@@ -981,7 +981,11 @@ interface AutoplaceControl extends Prototype {
981
981
  */
982
982
  category: 'resource' | 'terrain' | 'cliff' | 'enemy';
983
983
  /**
984
- * Whether this settings being lower than default disables fight related achievements
984
+ * Hides the autoplace control from the map generation screen.
985
+ */
986
+ hidden?: boolean;
987
+ /**
988
+ * Whether this settings being lower than default disables fight related achievements.
985
989
  */
986
990
  related_to_fight_achievements?: boolean;
987
991
  /**
@@ -1191,7 +1195,7 @@ interface BoilerPrototype extends EntityWithOwnerPrototype {
1191
1195
  /**
1192
1196
  * The output fluid box.
1193
1197
  *
1194
- * If `mode` is `"output-to-separate-pipe"` and this has a {@link filter | prototype:FluidBox::filter}, the heated input fluid is converted to the output fluid that is set in the filter. The conversion ratio is based on the heat capacity of the fluids: `output_fluid_amount = input_fluid_amount * (output_fluid_heat_capacity / input_fluid_heat_capacity)`
1198
+ * If `mode` is `"output-to-separate-pipe"` and this has a {@link filter | prototype:FluidBox::filter}, the heated input fluid is converted to the output fluid that is set in the filter. The conversion ratio is based on the {@link heat capacity | prototype:FluidPrototype::heat_capacity} of the fluids: `output_fluid_amount = input_fluid_amount * (output_fluid_heat_capacity / input_fluid_heat_capacity)`
1195
1199
  *
1196
1200
  * If `mode` is `"heat-fluid-inside"`, this fluidbox is unused.
1197
1201
  */
@@ -1423,6 +1427,7 @@ interface CargoPodPrototype extends EntityWithOwnerPrototype {
1423
1427
  * Has to be of type 'pod-catalogue'.
1424
1428
  */
1425
1429
  default_shadow_graphic?: ProcessionGraphic;
1430
+ impact_trigger?: Trigger;
1426
1431
  inventory_size: ItemStackIndex;
1427
1432
  procession_audio_catalogue?: ProcessionAudioCatalogue;
1428
1433
  procession_graphic_catalogue?: ProcessionGraphicCatalogue;
@@ -2582,11 +2587,11 @@ interface DecorativePrototype extends Prototype {
2582
2587
  /**
2583
2588
  * Can be defined only when decorative is not "decal" (see `render_layer`).
2584
2589
  */
2585
- stateless_visualisation?: StatelessVisualisations;
2590
+ stateless_visualisation?: StatelessVisualisation | StatelessVisualisation[];
2586
2591
  /**
2587
2592
  * Only loaded if `stateless_visualisation` is not defined. Can be defined only when decorative is not "decal" (see `render_layer`).
2588
2593
  */
2589
- stateless_visualisation_variations?: StatelessVisualisations[];
2594
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
2590
2595
  target_count?: uint16;
2591
2596
  /**
2592
2597
  * Mandatory if `render_layer` = "decals". This int16 is converted to a {@link TileRenderLayer | prototype:TileRenderLayer} internally. It is offset from `ground-natural`.
@@ -3275,7 +3280,7 @@ interface EntityPrototype extends Prototype {
3275
3280
  /**
3276
3281
  * Name of the entity that will be automatically selected as the upgrade of this entity when using the {@link upgrade planner | https://wiki.factorio.com/Upgrade_planner} without configuration.
3277
3282
  *
3278
- * This entity may not have "not-upgradable" flag set and must be minable. This entity mining result must not contain item product with "hidden" flag set. Mining results with no item products are allowed. This entity may not be a {@link RollingStockPrototype | prototype:RollingStockPrototype}.
3283
+ * This entity may not have "not-upgradable" flag set and must be minable. This entity mining result must not contain item product with {@link hidden | prototype:ItemPrototype::hidden} set to `true`. Mining results with no item products are allowed. This entity may not be a {@link RollingStockPrototype | prototype:RollingStockPrototype}.
3279
3284
  *
3280
3285
  * The upgrade target entity needs to have the same bounding box, collision mask, and fast replaceable group as this entity. The upgrade target entity must have least 1 item that builds it that isn't hidden.
3281
3286
  * @example ```
@@ -3332,7 +3337,7 @@ interface EntityPrototype extends Prototype {
3332
3337
  * The cursor size used when shooting at this entity.
3333
3338
  */
3334
3339
  shooting_cursor_size?: double;
3335
- stateless_visualisation?: StatelessVisualisations;
3340
+ stateless_visualisation?: StatelessVisualisation | StatelessVisualisation[];
3336
3341
  /**
3337
3342
  * Used to set the area of the entity that can have stickers on it, currently only used for units to specify the area where the green slow down stickers can appear.
3338
3343
  * @example ```
@@ -3840,6 +3845,10 @@ interface FluidPrototype extends Prototype {
3840
3845
  ```
3841
3846
  */
3842
3847
  heat_capacity?: Energy;
3848
+ /**
3849
+ * Hides the fluid from the signal selection screen.
3850
+ */
3851
+ hidden?: boolean;
3843
3852
  /**
3844
3853
  * Path to the icon file.
3845
3854
  *
@@ -4017,6 +4026,8 @@ interface FlyingRobotPrototype extends EntityWithOwnerPrototype {
4017
4026
  max_energy?: Energy;
4018
4027
  /**
4019
4028
  * The maximum flying speed of the robot, including bonuses, in tiles/tick. Useful to limit the impact of {@link worker robot speed research | prototype:WorkerRobotSpeedModifier}.
4029
+ *
4030
+ * Must be >= speed.
4020
4031
  */
4021
4032
  max_speed?: double;
4022
4033
  /**
@@ -4136,14 +4147,25 @@ interface FurnacePrototype extends CraftingMachinePrototype {
4136
4147
  */
4137
4148
  source_inventory_size: ItemStackIndex;
4138
4149
  }
4150
+ /**
4151
+ * Consumes a fluid to generate electricity and create another fluid.
4152
+ */
4139
4153
  interface FusionGeneratorPrototype extends EntityWithOwnerPrototype {
4140
4154
  /**
4141
- * `output_flow_limit` is mandatory and must be positive.
4155
+ * If set to `true`, the available power output is based on the {@link FluidPrototype::fuel_value | prototype:FluidPrototype::fuel_value}. Otherwise, the available power output will be based on the fluid temperature and {@link FluidPrototype::heat_capacity | prototype:FluidPrototype::heat_capacity}: `energy = fluid_amount * fluid_temperature * fluid_heat_capacity * effectivity`
4156
+ */
4157
+ burns_fluid?: boolean;
4158
+ /**
4159
+ * `1` means 100% effectivity. Must be greater than `0`. Multiplier of the energy output.
4160
+ */
4161
+ effectivity?: double;
4162
+ /**
4163
+ * `output_flow_limit` is mandatory and must be positive. `output_flow_limit` is the maximum power output of the generator.
4142
4164
  */
4143
4165
  energy_source: ElectricEnergySource;
4144
4166
  graphics_set?: FusionGeneratorGraphicsSet;
4145
4167
  /**
4146
- * {@link filter | prototype:FluidBox::filter} is mandatory.
4168
+ * {@link filter | prototype:FluidBox::filter} is mandatory. The temperature (or fuel value if `burns_fluid` is true) of this fluid is used to calculate the available power output.
4147
4169
  */
4148
4170
  input_fluid_box: FluidBox;
4149
4171
  /**
@@ -4267,7 +4289,7 @@ interface GeneratorEquipmentPrototype extends EquipmentPrototype {
4267
4289
  */
4268
4290
  interface GeneratorPrototype extends EntityWithOwnerPrototype {
4269
4291
  /**
4270
- * If set to true, the available power output is based on the {@link FluidPrototype::fuel_value | prototype:FluidPrototype::fuel_value}. Otherwise, the available power output will be based on the fluid temperature.
4292
+ * If set to `true`, the available power output is based on the {@link FluidPrototype::fuel_value | prototype:FluidPrototype::fuel_value}. Otherwise, the available power output will be based on the fluid temperature and {@link FluidPrototype::heat_capacity | prototype:FluidPrototype::heat_capacity}: `energy = fluid_amount * (fluid_temperature - fluid_default_temperature) * fluid_heat_capacity * effectivity`
4271
4293
  */
4272
4294
  burns_fluid?: boolean;
4273
4295
  /**
@@ -4743,6 +4765,10 @@ interface ItemPrototype extends Prototype {
4743
4765
  */
4744
4766
  fuel_value?: Energy;
4745
4767
  has_random_tint?: boolean;
4768
+ /**
4769
+ * Item will not appear in lists of all items such as those for logistics requests, filters, etc.
4770
+ */
4771
+ hidden?: boolean;
4746
4772
  /**
4747
4773
  * Path to the icon file.
4748
4774
  *
@@ -5050,7 +5076,7 @@ interface LabPrototype extends EntityWithOwnerPrototype {
5050
5076
  */
5051
5077
  on_animation?: Animation;
5052
5078
  /**
5053
- * If set, {@link QualityPrototype::beacon_module_slots_bonus | prototype:QualityPrototype::beacon_module_slots_bonus} will be added to module slots count.
5079
+ * If set, {@link QualityPrototype::lab_module_slots_bonus | prototype:QualityPrototype::lab_module_slots_bonus} will be added to module slots count.
5054
5080
  */
5055
5081
  quality_affects_module_slots?: boolean;
5056
5082
  researching_speed?: double;
@@ -5270,6 +5296,9 @@ interface LegacyStraightRailPrototype extends RailPrototype {
5270
5296
  */
5271
5297
  collision_box?: BoundingBox;
5272
5298
  }
5299
+ /**
5300
+ * Absorbs {@link lightning | prototype:LightningPrototype} and optionally converts it into electricity.
5301
+ */
5273
5302
  interface LightningAttractorPrototype extends EntityWithOwnerPrototype {
5274
5303
  chargable_graphics?: ChargableGraphics;
5275
5304
  /**
@@ -5283,15 +5312,35 @@ interface LightningAttractorPrototype extends EntityWithOwnerPrototype {
5283
5312
  lightning_strike_offset?: MapPosition;
5284
5313
  range_elongation?: double;
5285
5314
  }
5315
+ /**
5316
+ * Lightning randomly hits entities on planets with {@link lightning_properties | prototype:PlanetPrototype::lightning_properties}.
5317
+ *
5318
+ * If a {@link lightning attractor | prototype:LightningAttractorPrototype} is hit by lightning it will absorb the lightning hit for energy.
5319
+ *
5320
+ * If a something that is not an attractor is hit by lightning it will be damaged by the strike.
5321
+ */
5286
5322
  interface LightningPrototype extends EntityPrototype {
5287
5323
  attracted_volume_modifier?: float;
5324
+ /**
5325
+ * Effect that is triggered when lightning hits a {@link lightning attractor | prototype:LightningAttractorPrototype}. Triggered after the attractor is charged by the lightning hit.
5326
+ */
5327
+ attractor_hit_effect?: Trigger;
5328
+ /**
5329
+ * When lightning strikes something that is not a lightning attractor, this damage is applied to the target.
5330
+ */
5288
5331
  damage?: double;
5289
5332
  effect_duration: uint16;
5333
+ /**
5334
+ * When lightning hits a {@link lightning attractor | prototype:LightningAttractorPrototype}, this amount of energy is transferred to the lightning attractor.
5335
+ */
5290
5336
  energy?: Energy;
5291
5337
  graphics_set?: LightningGraphicsSet;
5292
5338
  sound?: Sound;
5293
5339
  source_offset?: Vector;
5294
5340
  source_variance?: Vector;
5341
+ /**
5342
+ * Effect that is triggered when lightning strikes something that is not a lightning attractor. Triggered before `damage` is applied.
5343
+ */
5295
5344
  strike_effect?: Trigger;
5296
5345
  /**
5297
5346
  * Must be less than or equal to `effect_duration`.
@@ -6307,7 +6356,7 @@ interface ProjectilePrototype extends EntityPrototype {
6307
6356
  }
6308
6357
  interface Prototype extends PrototypeBase {
6309
6358
  /**
6310
- * Allows to add extra description items to the tooltip and factoriopedia.
6359
+ * Allows to add extra description items to the tooltip and Factoriopedia.
6311
6360
  */
6312
6361
  custom_tooltip_fields?: CustomTooltipField[];
6313
6362
  /**
@@ -6998,6 +7047,10 @@ interface RecipePrototype extends Prototype {
6998
7047
  * The amount of time it takes to make this recipe. Must be `> 0.001`. Equals the number of seconds it takes to craft at crafting speed `1`.
6999
7048
  */
7000
7049
  energy_required?: double;
7050
+ /**
7051
+ * Hides the recipe from crafting menus and other recipe selection lists.
7052
+ */
7053
+ hidden?: boolean;
7001
7054
  hide_from_bonus_gui?: boolean;
7002
7055
  /**
7003
7056
  * Hides the recipe from the player's crafting screen. The recipe will still show up for selection in machines.
@@ -7521,6 +7574,10 @@ interface RoboportPrototype extends EntityWithOwnerPrototype {
7521
7574
  * The light emitted when charging a robot.
7522
7575
  */
7523
7576
  recharging_light?: LightDefinition;
7577
+ /**
7578
+ * Whether to render the {@link no charge | prototype:UtilitySprites::recharge_icon} icon if the roboport has less energy than `recharge_minimum` in its internal buffer and is recovering from a blackout.
7579
+ */
7580
+ render_recharge_icon?: boolean;
7524
7581
  request_to_open_door_timeout: uint32;
7525
7582
  /**
7526
7583
  * Unused.
@@ -7568,6 +7625,12 @@ interface RobotWithLogisticInterfacePrototype extends FlyingRobotPrototype {
7568
7625
  * The robot's cargo carrying capacity. Can be increased by {@link worker robot cargo size research | prototype:WorkerRobotStorageModifier}.
7569
7626
  */
7570
7627
  max_payload_size: ItemCountType;
7628
+ /**
7629
+ * The robot's maximum possible cargo carrying capacity, including bonuses. Useful to limit the impact of {@link worker robot cargo size research | prototype:WorkerRobotStorageModifier}.
7630
+ *
7631
+ * Must be >= max_payload_size.
7632
+ */
7633
+ max_payload_size_after_bonus?: ItemCountType;
7571
7634
  /**
7572
7635
  * Only the first frame of the animation is drawn. This means that the graphics for the idle state cannot be animated.
7573
7636
  */
@@ -8148,7 +8211,7 @@ interface SimpleEntityPrototype extends EntityWithHealthPrototype {
8148
8211
  /**
8149
8212
  * Loaded and drawn with all `pictures`, `picture` and `animations`. If graphics variation is larger than number of `lower_pictures` variations this layer is not drawn.
8150
8213
  */
8151
- stateless_visualisation_variations?: StatelessVisualisations[];
8214
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
8152
8215
  }
8153
8216
  /**
8154
8217
  * By default, this entity will be a priority target for units/turrets, who will choose to attack it even if it does not block their path. Setting {@link EntityWithOwnerPrototype::is_military_target | prototype:EntityWithOwnerPrototype::is_military_target} to `false` will turn this off, which then makes this type equivalent to {@link SimpleEntityWithOwnerPrototype | prototype:SimpleEntityWithOwnerPrototype}.
@@ -8193,7 +8256,7 @@ interface SimpleEntityWithOwnerPrototype extends EntityWithOwnerPrototype {
8193
8256
  * Used to determine render order for entities with the same `render_layer` in the same position. Entities with a higher `secondary_draw_order` are drawn on top.
8194
8257
  */
8195
8258
  secondary_draw_order?: int8;
8196
- stateless_visualisation_variations?: StatelessVisualisations[];
8259
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
8197
8260
  }
8198
8261
  /**
8199
8262
  * Abstract entity that has an animation.
@@ -8457,6 +8520,10 @@ interface SpaceLocationPrototype extends Prototype {
8457
8520
  * A value which modifies platform speed; is subtracted when traveling from this location and added when traveling to this location.
8458
8521
  */
8459
8522
  gravity_pull?: double;
8523
+ /**
8524
+ * Hides the space location from the planet selection lists and the space map.
8525
+ */
8526
+ hidden?: boolean;
8460
8527
  /**
8461
8528
  * Path to the icon file.
8462
8529
  *
@@ -8712,6 +8779,22 @@ interface SpidertronRemotePrototype extends SelectionToolPrototype {
8712
8779
  * A {@link splitter | https://wiki.factorio.com/Splitter}.
8713
8780
  */
8714
8781
  interface SplitterPrototype extends TransportBeltConnectablePrototype {
8782
+ circuit_connector?: [
8783
+ CircuitConnectorDefinition,
8784
+ CircuitConnectorDefinition,
8785
+ CircuitConnectorDefinition,
8786
+ CircuitConnectorDefinition
8787
+ ];
8788
+ /**
8789
+ * The maximum circuit wire distance for this entity.
8790
+ */
8791
+ circuit_wire_max_distance?: double;
8792
+ default_input_left_condition?: CircuitConditionConnector;
8793
+ default_input_right_condition?: CircuitConditionConnector;
8794
+ default_output_left_condition?: CircuitConditionConnector;
8795
+ default_output_right_condition?: CircuitConditionConnector;
8796
+ draw_circuit_wires?: boolean;
8797
+ draw_copper_wires?: boolean;
8715
8798
  frozen_patch?: Sprite4Way;
8716
8799
  /**
8717
8800
  * The name of the {@link TransportBeltPrototype | prototype:TransportBeltPrototype} which is used for the sound of the underlying belt.
@@ -9159,6 +9242,10 @@ interface TechnologyPrototype extends Prototype {
9159
9242
  * Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.
9160
9243
  */
9161
9244
  essential?: boolean;
9245
+ /**
9246
+ * Hides the technology from the tech screen.
9247
+ */
9248
+ hidden?: boolean;
9162
9249
  /**
9163
9250
  * Path to the icon file.
9164
9251
  *
@@ -9234,7 +9321,13 @@ interface TemporaryContainerPrototype extends ContainerPrototype {
9234
9321
  destroy_on_empty?: boolean;
9235
9322
  time_to_live?: uint32;
9236
9323
  }
9324
+ /**
9325
+ * Consumes two fluids as fuel to produce thrust for a space platform.
9326
+ */
9237
9327
  interface ThrusterPrototype extends EntityWithOwnerPrototype {
9328
+ /**
9329
+ * If a {@link filter | prototype:FluidBox::filter} is set for this fluidbox it determines what the thruster considers the first fuel.
9330
+ */
9238
9331
  fuel_fluid_box: FluidBox;
9239
9332
  graphics_set?: ThrusterGraphicsSet;
9240
9333
  /**
@@ -9242,6 +9335,9 @@ interface ThrusterPrototype extends EntityWithOwnerPrototype {
9242
9335
  */
9243
9336
  max_performance: ThrusterPerformancePoint;
9244
9337
  min_performance: ThrusterPerformancePoint;
9338
+ /**
9339
+ * If a {@link filter | prototype:FluidBox::filter} is set for this fluidbox it determines what the thruster considers the second fuel.
9340
+ */
9245
9341
  oxidizer_fluid_box: FluidBox;
9246
9342
  plumes?: PlumesSpecification;
9247
9343
  }
@@ -9634,7 +9730,7 @@ interface TreePrototype extends EntityWithHealthPrototype {
9634
9730
  * Mandatory if `variations` is not defined.
9635
9731
  */
9636
9732
  pictures?: SpriteVariations;
9637
- stateless_visualisation_variations?: StatelessVisualisations[];
9733
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
9638
9734
  variation_weights?: float[];
9639
9735
  /**
9640
9736
  * If defined, it can't be empty.
package/dist/types.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Factorio API reference https://lua-api.factorio.com/latest/index.html
3
3
  // Generated from JSON source https://lua-api.factorio.com/latest/prototype-api.json
4
4
  // Definition source https://github.com/sguest/factorio-types
5
- // Factorio version 2.0.66
5
+ // Factorio version 2.0.67
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
@@ -1432,6 +1432,10 @@ interface AsteroidCollectorGraphicsSet {
1432
1432
  status_lamp_picture_full?: RotatedSprite;
1433
1433
  status_lamp_picture_off?: RotatedSprite;
1434
1434
  status_lamp_picture_on?: RotatedSprite;
1435
+ /**
1436
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
1437
+ */
1438
+ water_reflection?: WaterReflectionDefinition;
1435
1439
  }
1436
1440
  interface AsteroidGraphicsSet {
1437
1441
  ambient_light?: Color;
@@ -1447,6 +1451,10 @@ interface AsteroidGraphicsSet {
1447
1451
  sss_amount?: float;
1448
1452
  sss_contrast?: float;
1449
1453
  variations?: AsteroidVariation | AsteroidVariation[];
1454
+ /**
1455
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
1456
+ */
1457
+ water_reflection?: WaterReflectionDefinition;
1450
1458
  }
1451
1459
  interface AsteroidSettings {
1452
1460
  max_ray_portals_expanded_per_tick: uint32;
@@ -1838,6 +1846,10 @@ interface BeaconGraphicsSet {
1838
1846
  random_animation_offset?: boolean;
1839
1847
  reset_animation_when_frozen?: boolean;
1840
1848
  top_layer?: RenderLayer;
1849
+ /**
1850
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
1851
+ */
1852
+ water_reflection?: WaterReflectionDefinition;
1841
1853
  }
1842
1854
  interface BeaconModuleVisualization {
1843
1855
  /**
@@ -1932,6 +1944,10 @@ interface BeamGraphicsSet {
1932
1944
  random_end_animation_rotation?: boolean;
1933
1945
  randomize_animation_per_segment?: boolean;
1934
1946
  transparent_start_end_animations?: boolean;
1947
+ /**
1948
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
1949
+ */
1950
+ water_reflection?: WaterReflectionDefinition;
1935
1951
  }
1936
1952
  interface BeamTriggerDelivery extends TriggerDeliveryItem {
1937
1953
  add_to_shooter?: boolean;
@@ -2223,6 +2239,10 @@ interface CargoBayConnectableGraphicsSet {
2223
2239
  animation_render_layer?: RenderLayer;
2224
2240
  connections?: CargoBayConnections;
2225
2241
  picture?: LayeredSprite;
2242
+ /**
2243
+ * Only loaded if this graphics set is used in a property called `graphics_set`, refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
2244
+ */
2245
+ water_reflection?: WaterReflectionDefinition;
2226
2246
  }
2227
2247
  /**
2228
2248
  * Walls should have an even number of variations because they are interleaved.
@@ -2516,6 +2536,10 @@ interface ChartUtilityConstants {
2516
2536
  green_wire_color: Color;
2517
2537
  rail_color: Color;
2518
2538
  rail_ramp_color: Color;
2539
+ /**
2540
+ * Must be larger than 0. This number is multiplied by the crafting machine's {@link radius | runtime:LuaEntityPrototype::radius} to get the final recipe icon scale for the chart.
2541
+ */
2542
+ recipe_icon_scale: float;
2519
2543
  red_signal_color: Color;
2520
2544
  red_wire_color: Color;
2521
2545
  resource_outline_selection_color: Color;
@@ -2544,6 +2568,11 @@ interface CheckBoxStyleSpecification extends StyleWithClickableGraphicalSetSpeci
2544
2568
  text_padding?: uint32;
2545
2569
  type: 'checkbox_style';
2546
2570
  }
2571
+ interface CircuitConditionConnector {
2572
+ comparator?: ComparatorString;
2573
+ first?: SignalIDConnector;
2574
+ second?: SignalIDConnector | int32;
2575
+ }
2547
2576
  /**
2548
2577
  * Definition of a circuit connector.
2549
2578
  */
@@ -3177,6 +3206,10 @@ interface CraftingMachineGraphicsSet extends WorkingVisualisations {
3177
3206
  circuit_connector_secondary_draw_order?: int8 | CircuitConnectorSecondaryDrawOrder;
3178
3207
  frozen_patch?: Sprite4Way;
3179
3208
  reset_animation_when_frozen?: boolean;
3209
+ /**
3210
+ * Only loaded if this graphics set is used in a property called `graphics_set`, refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
3211
+ */
3212
+ water_reflection?: WaterReflectionDefinition;
3180
3213
  }
3181
3214
  interface CranePart {
3182
3215
  allow_sprite_rotation?: boolean;
@@ -4200,6 +4233,10 @@ interface EnemySpawnerGraphicsSet {
4200
4233
  underwater_animations?: AnimationVariations;
4201
4234
  underwater_layer_offset?: int8;
4202
4235
  water_effect_map_animations?: AnimationVariations;
4236
+ /**
4237
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
4238
+ */
4239
+ water_reflection?: WaterReflectionDefinition;
4203
4240
  }
4204
4241
  /**
4205
4242
  * Specifies an amount of electric energy in joules, or electric energy per time in watts.
@@ -4644,7 +4681,7 @@ interface FluidBoxSecondaryDrawOrders {
4644
4681
  }
4645
4682
  interface FluidEnergySource extends BaseEnergySource {
4646
4683
  /**
4647
- * If set to `true`, the energy source will calculate power based on the fluid's `fuel_value`, else it will calculate based on fluid temperature.
4684
+ * If set to `true`, the available power output is based on the {@link FluidPrototype::fuel_value | prototype:FluidPrototype::fuel_value}. Otherwise, the available power output will be based on the fluid temperature and {@link FluidPrototype::heat_capacity | prototype:FluidPrototype::heat_capacity}: `energy = fluid_amount * (fluid_temperature - fluid_default_temperature) * fluid_heat_capacity * effectivity`
4648
4685
  */
4649
4686
  burns_fluid?: boolean;
4650
4687
  /**
@@ -4980,6 +5017,10 @@ interface FusionGeneratorGraphicsSet {
4980
5017
  north_graphics_set: FusionGeneratorDirectionGraphicsSet;
4981
5018
  render_layer?: RenderLayer;
4982
5019
  south_graphics_set: FusionGeneratorDirectionGraphicsSet;
5020
+ /**
5021
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
5022
+ */
5023
+ water_reflection?: WaterReflectionDefinition;
4983
5024
  west_graphics_set: FusionGeneratorDirectionGraphicsSet;
4984
5025
  }
4985
5026
  interface FusionReactorConnectionGraphics {
@@ -5000,6 +5041,10 @@ interface FusionReactorGraphicsSet {
5000
5041
  render_layer?: RenderLayer;
5001
5042
  structure?: Sprite4Way;
5002
5043
  use_fuel_glow_color?: boolean;
5044
+ /**
5045
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
5046
+ */
5047
+ water_reflection?: WaterReflectionDefinition;
5003
5048
  working_light_pictures?: Sprite4Way;
5004
5049
  }
5005
5050
  interface GameControllerVibrationData {
@@ -5309,7 +5354,7 @@ icons =
5309
5354
  */
5310
5355
  interface IconData {
5311
5356
  /**
5312
- * Outline is drawn using signed distance field generated on load. One icon image, will have only one SDF generated. But if the image is used in multiple icon with different scales, outline width won't match the desired width in all the scales but the largest one.
5357
+ * Outline is drawn using signed distance field generated on load. One icon image will have only one SDF generated. That means if the image is used in multiple icons with different scales, the outline width won't match the desired width in all the scales except the largest one.
5313
5358
  */
5314
5359
  draw_background?: boolean;
5315
5360
  /**
@@ -5358,7 +5403,7 @@ interface IconDrawSpecification {
5358
5403
  /**
5359
5404
  * Render layer of the icon.
5360
5405
  */
5361
- renderLayer?: 'entity-info-icon-below' | 'entity-info-icon-above' | 'air-entity-info-icon';
5406
+ render_layer?: 'entity-info-icon' | 'entity-info-icon-above' | 'air-entity-info-icon';
5362
5407
  scale?: float;
5363
5408
  /**
5364
5409
  * Scale of the icon when there are many items.
@@ -5883,6 +5928,10 @@ interface LightningGraphicsSet {
5883
5928
  * If not empty, enables the lightning shader.
5884
5929
  */
5885
5930
  shader_configuration?: LightningShaderConfiguration[];
5931
+ /**
5932
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
5933
+ */
5934
+ water_reflection?: WaterReflectionDefinition;
5886
5935
  }
5887
5936
  interface LightningPriorityRule extends LightningRuleBaseBase {
5888
5937
  priority_bonus: int32;
@@ -6514,6 +6563,10 @@ interface MiningDrillGraphicsSet extends WorkingVisualisations {
6514
6563
  drilling_vertical_movement_duration?: uint16;
6515
6564
  frozen_patch?: Sprite4Way;
6516
6565
  reset_animation_when_frozen?: boolean;
6566
+ /**
6567
+ * Only loaded if this graphics set is used in a property called `graphics_set`, refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
6568
+ */
6569
+ water_reflection?: WaterReflectionDefinition;
6517
6570
  }
6518
6571
  interface MiningDrillProductivityBonusModifier extends SimpleModifier {
6519
6572
  /**
@@ -6793,7 +6846,7 @@ interface NestedTriggerEffectItem extends TriggerEffectItem {
6793
6846
  *
6794
6847
  * - `+x`, `-x`, `~x`: Unary plus and minus and unary bitwise not
6795
6848
  *
6796
- * - `x*y`, `x/y`, `x%y`, `x%%y`: Multiplication and division, modulo and remainder.
6849
+ * - `x*y`, `x/y`, `x%y`, `x%%y`: Multiplication and division, modulo and remainder
6797
6850
  *
6798
6851
  * - `x+y`, `x-y`: Addition and subtraction
6799
6852
  *
@@ -6812,6 +6865,8 @@ interface NestedTriggerEffectItem extends TriggerEffectItem {
6812
6865
  * The boolean operators (less than, less than or equal, equal, not equal, greater than, greater than or equal) take two numbers and return 0 for false or 1 for true.
6813
6866
  *
6814
6867
  * The bitwise operators convert single-precision floating-point numbers to signed 32-bit integers before computing the result.
6868
+ *
6869
+ * Exponentiation and the unary operators are right-to-left associative. The rest of the operators are left-to-right associative.
6815
6870
  * @example ```
6816
6871
  "distance_from_nearest_point{x = x, y = y, points = starting_positions}"
6817
6872
  ```
@@ -6875,6 +6930,10 @@ interface OffshorePumpGraphicsSet {
6875
6930
  * Drawn by tile renderer when water animation is enabled.
6876
6931
  */
6877
6932
  underwater_pictures?: Sprite4Way;
6933
+ /**
6934
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
6935
+ */
6936
+ water_reflection?: WaterReflectionDefinition;
6878
6937
  }
6879
6938
  interface OrTipTrigger {
6880
6939
  /**
@@ -7712,12 +7771,12 @@ interface ProcessionGraphic {
7712
7771
  */
7713
7772
  type ProcessionGraphicCatalogue = ProcessionGraphicCatalogueItem[];
7714
7773
  /**
7715
- * Either picture or animation must be provided.
7774
+ * Either animation or sprite must be provided.
7716
7775
  */
7717
7776
  interface ProcessionGraphicCatalogueItem {
7718
7777
  animation?: Animation;
7719
7778
  index: uint32;
7720
- picture?: Sprite;
7779
+ sprite?: Sprite;
7721
7780
  }
7722
7781
  /**
7723
7782
  * Types of {@link ProcessionGraphic | prototype:ProcessionGraphic}.
@@ -7844,10 +7903,7 @@ type ProductPrototype = /**
7844
7903
  ItemProductPrototype | /**
7845
7904
  * Loaded when the `type` is `"fluid"`.
7846
7905
  */
7847
- FluidProductPrototype | /**
7848
- * Loaded when the `type` is `"research-progress"`.
7849
- */
7850
- ResearchProgressProductPrototype;
7906
+ FluidProductPrototype;
7851
7907
  interface ProductionHealthEffect {
7852
7908
  not_producing?: float;
7853
7909
  producing?: float;
@@ -8258,6 +8314,10 @@ interface RailSupportGraphicsSet {
8258
8314
  structure: RotatedSprite;
8259
8315
  underwater_layer_offset?: int8;
8260
8316
  underwater_structure?: RotatedSprite;
8317
+ /**
8318
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
8319
+ */
8320
+ water_reflection?: WaterReflectionDefinition;
8261
8321
  }
8262
8322
  interface RailSupportOnDeepOilOceanModifier extends BoolModifier {
8263
8323
  type: 'rail-support-on-deep-oil-ocean';
@@ -8349,14 +8409,6 @@ type ResearchIngredient = [
8349
8409
  ItemID,
8350
8410
  uint16
8351
8411
  ];
8352
- /**
8353
- * A research progress product definition.
8354
- */
8355
- interface ResearchProgressProductPrototype {
8356
- amount?: double;
8357
- research_item: ItemID;
8358
- type: 'research-progress';
8359
- }
8360
8412
  interface ResearchTechnologyTipTrigger {
8361
8413
  technology: TechnologyID;
8362
8414
  type: 'research';
@@ -9481,6 +9533,10 @@ interface SpiderLegGraphicsSet {
9481
9533
  upper_part?: SpiderLegPart;
9482
9534
  upper_part_shadow?: SpiderLegPart;
9483
9535
  upper_part_water_reflection?: SpiderLegPart;
9536
+ /**
9537
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
9538
+ */
9539
+ water_reflection?: WaterReflectionDefinition;
9484
9540
  }
9485
9541
  interface SpiderLegPart {
9486
9542
  bottom_end?: RotatedSprite;
@@ -9554,6 +9610,10 @@ interface SpiderTorsoGraphicsSet {
9554
9610
  render_layer?: RenderLayer;
9555
9611
  shadow_animation?: RotatedAnimation;
9556
9612
  shadow_base_animation?: RotatedAnimation;
9613
+ /**
9614
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
9615
+ */
9616
+ water_reflection?: WaterReflectionDefinition;
9557
9617
  }
9558
9618
  /**
9559
9619
  * Used to specify the graphics for {@link SpiderVehiclePrototype | prototype:SpiderVehiclePrototype}.
@@ -10118,7 +10178,7 @@ interface StatelessVisualisation {
10118
10178
  /**
10119
10179
  * One of `nested_visualisations`, `animation` and `light` needs to be defined.
10120
10180
  */
10121
- nested_visualisations?: StatelessVisualisations;
10181
+ nested_visualisations?: StatelessVisualisation | StatelessVisualisation[];
10122
10182
  offset_x?: RangedValue;
10123
10183
  offset_y?: RangedValue;
10124
10184
  offset_z?: RangedValue;
@@ -10145,7 +10205,6 @@ interface StatelessVisualisation {
10145
10205
  speed_z?: RangedValue;
10146
10206
  spread_progress_duration?: float;
10147
10207
  }
10148
- type StatelessVisualisations = StatelessVisualisation | StatelessVisualisation[];
10149
10208
  interface StatusColors {
10150
10209
  disabled?: Color;
10151
10210
  full_output?: Color;
@@ -10631,6 +10690,10 @@ interface ThrusterGraphicsSet extends WorkingVisualisations {
10631
10690
  flame_effect_width?: float;
10632
10691
  flame_half_height?: float;
10633
10692
  flame_position?: Vector;
10693
+ /**
10694
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
10695
+ */
10696
+ water_reflection?: WaterReflectionDefinition;
10634
10697
  }
10635
10698
  type ThrusterPerformancePoint = {
10636
10699
  effectivity: double;
@@ -11478,6 +11541,7 @@ interface TrainVisualizationConstants {
11478
11541
  final_margin: float;
11479
11542
  joint_distance: float;
11480
11543
  last_box_color: Color;
11544
+ last_reverse_box_color: Color;
11481
11545
  not_last_box_color: Color;
11482
11546
  reverse_box_color: Color;
11483
11547
  stock_number_scale: float;
@@ -11991,6 +12055,10 @@ interface TurretBaseVisualisation {
11991
12055
  }
11992
12056
  interface TurretGraphicsSet {
11993
12057
  base_visualisation?: TurretBaseVisualisation | TurretBaseVisualisation[];
12058
+ /**
12059
+ * Refer to {@link EntityPrototype::water_reflection | prototype:EntityPrototype::water_reflection}.
12060
+ */
12061
+ water_reflection?: WaterReflectionDefinition;
11994
12062
  }
11995
12063
  interface TurretSpecialEffect {
11996
12064
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "factorio-types",
3
- "version": "1.2.49",
3
+ "version": "1.2.50",
4
4
  "description": "Typescript declarations for the Factorio mod API",
5
5
  "main": "index.d.ts",
6
6
  "repository": "https://github.com/sguest/factorio-types.git",
@@ -23,7 +23,7 @@
23
23
  "src/**/*.d.ts",
24
24
  "dist/**/*.d.ts"
25
25
  ],
26
- "factorioVersion": "2.0.66",
26
+ "factorioVersion": "2.0.67",
27
27
  "dependencies": {
28
28
  "lua-types": "^2.13.1"
29
29
  },