factorio-types 1.2.49 → 1.2.51

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.69
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.69
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
@@ -691,6 +691,8 @@ interface ArtilleryFlarePrototype extends EntityPrototype {
691
691
  render_layer_when_on_ground?: RenderLayer;
692
692
  /**
693
693
  * The entity with the higher number is selectable before the entity with the lower number.
694
+ *
695
+ * The value `0` will be treated the same as `nil`.
694
696
  */
695
697
  selection_priority?: uint8;
696
698
  /**
@@ -859,7 +861,7 @@ interface AssemblingMachinePrototype extends CraftingMachinePrototype {
859
861
  default_recipe_finished_signal?: SignalIDConnector;
860
862
  default_working_signal?: SignalIDConnector;
861
863
  /**
862
- * Defaults to true if fixed_recipe is not given.
864
+ * Defaults to true if `fixed_recipe` is not given.
863
865
  */
864
866
  disabled_when_recipe_not_researched?: boolean;
865
867
  draw_circuit_wires?: boolean;
@@ -981,7 +983,11 @@ interface AutoplaceControl extends Prototype {
981
983
  */
982
984
  category: 'resource' | 'terrain' | 'cliff' | 'enemy';
983
985
  /**
984
- * Whether this settings being lower than default disables fight related achievements
986
+ * Hides the autoplace control from the map generation screen.
987
+ */
988
+ hidden?: boolean;
989
+ /**
990
+ * Whether this settings being lower than default disables fight related achievements.
985
991
  */
986
992
  related_to_fight_achievements?: boolean;
987
993
  /**
@@ -1191,7 +1197,7 @@ interface BoilerPrototype extends EntityWithOwnerPrototype {
1191
1197
  /**
1192
1198
  * The output fluid box.
1193
1199
  *
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)`
1200
+ * 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
1201
  *
1196
1202
  * If `mode` is `"heat-fluid-inside"`, this fluidbox is unused.
1197
1203
  */
@@ -1397,6 +1403,9 @@ interface CargoLandingPadPrototype extends EntityWithOwnerPrototype {
1397
1403
  draw_copper_wires?: boolean;
1398
1404
  graphics_set?: CargoBayConnectableGraphicsSet;
1399
1405
  inventory_size: ItemStackIndex;
1406
+ /**
1407
+ * In chunks. The radius of how many chunks this cargo landing pad charts around itself.
1408
+ */
1400
1409
  radar_range?: uint32;
1401
1410
  radar_visualisation_color?: Color;
1402
1411
  /**
@@ -1423,6 +1432,7 @@ interface CargoPodPrototype extends EntityWithOwnerPrototype {
1423
1432
  * Has to be of type 'pod-catalogue'.
1424
1433
  */
1425
1434
  default_shadow_graphic?: ProcessionGraphic;
1435
+ impact_trigger?: Trigger;
1426
1436
  inventory_size: ItemStackIndex;
1427
1437
  procession_audio_catalogue?: ProcessionAudioCatalogue;
1428
1438
  procession_graphic_catalogue?: ProcessionGraphicCatalogue;
@@ -1925,6 +1935,7 @@ interface CorpsePrototype extends EntityPrototype {
1925
1935
  ground_patch_fade_out_start?: float;
1926
1936
  ground_patch_higher?: AnimationVariations;
1927
1937
  ground_patch_render_layer?: RenderLayer;
1938
+ protected_from_tile_building?: boolean;
1928
1939
  remove_on_entity_placement?: boolean;
1929
1940
  remove_on_tile_placement?: boolean;
1930
1941
  /**
@@ -2582,11 +2593,11 @@ interface DecorativePrototype extends Prototype {
2582
2593
  /**
2583
2594
  * Can be defined only when decorative is not "decal" (see `render_layer`).
2584
2595
  */
2585
- stateless_visualisation?: StatelessVisualisations;
2596
+ stateless_visualisation?: StatelessVisualisation | StatelessVisualisation[];
2586
2597
  /**
2587
2598
  * Only loaded if `stateless_visualisation` is not defined. Can be defined only when decorative is not "decal" (see `render_layer`).
2588
2599
  */
2589
- stateless_visualisation_variations?: StatelessVisualisations[];
2600
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
2590
2601
  target_count?: uint16;
2591
2602
  /**
2592
2603
  * Mandatory if `render_layer` = "decals". This int16 is converted to a {@link TileRenderLayer | prototype:TileRenderLayer} internally. It is offset from `ground-natural`.
@@ -3275,7 +3286,7 @@ interface EntityPrototype extends Prototype {
3275
3286
  /**
3276
3287
  * 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
3288
  *
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}.
3289
+ * 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
3290
  *
3280
3291
  * 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
3292
  * @example ```
@@ -3326,13 +3337,15 @@ interface EntityPrototype extends Prototype {
3326
3337
  selection_box?: BoundingBox;
3327
3338
  /**
3328
3339
  * The entity with the higher number is selectable before the entity with the lower number.
3340
+ *
3341
+ * The value `0` will be treated the same as `nil`.
3329
3342
  */
3330
3343
  selection_priority?: uint8;
3331
3344
  /**
3332
3345
  * The cursor size used when shooting at this entity.
3333
3346
  */
3334
3347
  shooting_cursor_size?: double;
3335
- stateless_visualisation?: StatelessVisualisations;
3348
+ stateless_visualisation?: StatelessVisualisation | StatelessVisualisation[];
3336
3349
  /**
3337
3350
  * 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
3351
  * @example ```
@@ -3840,6 +3853,10 @@ interface FluidPrototype extends Prototype {
3840
3853
  ```
3841
3854
  */
3842
3855
  heat_capacity?: Energy;
3856
+ /**
3857
+ * Hides the fluid from the signal selection screen.
3858
+ */
3859
+ hidden?: boolean;
3843
3860
  /**
3844
3861
  * Path to the icon file.
3845
3862
  *
@@ -3974,6 +3991,10 @@ interface FluidTurretPrototype extends TurretPrototype {
3974
3991
  */
3975
3992
  interface FluidWagonPrototype extends RollingStockPrototype {
3976
3993
  capacity: FluidAmount;
3994
+ /**
3995
+ * Pumps are only allowed to connect to this fluid wagon if the pump's {@link fluid box connection | prototype:PipeConnectionDefinition} and this fluid wagon share a connection category. Pump may have different connection categories on the input and output side, connection categories will be taken from the connection that is facing towards fluid wagon.
3996
+ */
3997
+ connection_category?: string | string[];
3977
3998
  quality_affects_capacity?: boolean;
3978
3999
  /**
3979
4000
  * Must be 1, 2 or 3.
@@ -4017,6 +4038,8 @@ interface FlyingRobotPrototype extends EntityWithOwnerPrototype {
4017
4038
  max_energy?: Energy;
4018
4039
  /**
4019
4040
  * 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}.
4041
+ *
4042
+ * Must be >= speed.
4020
4043
  */
4021
4044
  max_speed?: double;
4022
4045
  /**
@@ -4136,14 +4159,25 @@ interface FurnacePrototype extends CraftingMachinePrototype {
4136
4159
  */
4137
4160
  source_inventory_size: ItemStackIndex;
4138
4161
  }
4162
+ /**
4163
+ * Consumes a fluid to generate electricity and create another fluid.
4164
+ */
4139
4165
  interface FusionGeneratorPrototype extends EntityWithOwnerPrototype {
4140
4166
  /**
4141
- * `output_flow_limit` is mandatory and must be positive.
4167
+ * 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`
4168
+ */
4169
+ burns_fluid?: boolean;
4170
+ /**
4171
+ * `1` means 100% effectivity. Must be greater than `0`. Multiplier of the energy output.
4172
+ */
4173
+ effectivity?: double;
4174
+ /**
4175
+ * `output_flow_limit` is mandatory and must be positive. `output_flow_limit` is the maximum power output of the generator.
4142
4176
  */
4143
4177
  energy_source: ElectricEnergySource;
4144
4178
  graphics_set?: FusionGeneratorGraphicsSet;
4145
4179
  /**
4146
- * {@link filter | prototype:FluidBox::filter} is mandatory.
4180
+ * {@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
4181
  */
4148
4182
  input_fluid_box: FluidBox;
4149
4183
  /**
@@ -4267,7 +4301,7 @@ interface GeneratorEquipmentPrototype extends EquipmentPrototype {
4267
4301
  */
4268
4302
  interface GeneratorPrototype extends EntityWithOwnerPrototype {
4269
4303
  /**
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.
4304
+ * 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
4305
  */
4272
4306
  burns_fluid?: boolean;
4273
4307
  /**
@@ -4743,6 +4777,10 @@ interface ItemPrototype extends Prototype {
4743
4777
  */
4744
4778
  fuel_value?: Energy;
4745
4779
  has_random_tint?: boolean;
4780
+ /**
4781
+ * Item will not appear in lists of all items such as those for logistics requests, filters, etc.
4782
+ */
4783
+ hidden?: boolean;
4746
4784
  /**
4747
4785
  * Path to the icon file.
4748
4786
  *
@@ -5050,7 +5088,7 @@ interface LabPrototype extends EntityWithOwnerPrototype {
5050
5088
  */
5051
5089
  on_animation?: Animation;
5052
5090
  /**
5053
- * If set, {@link QualityPrototype::beacon_module_slots_bonus | prototype:QualityPrototype::beacon_module_slots_bonus} will be added to module slots count.
5091
+ * If set, {@link QualityPrototype::lab_module_slots_bonus | prototype:QualityPrototype::lab_module_slots_bonus} will be added to module slots count.
5054
5092
  */
5055
5093
  quality_affects_module_slots?: boolean;
5056
5094
  researching_speed?: double;
@@ -5270,6 +5308,9 @@ interface LegacyStraightRailPrototype extends RailPrototype {
5270
5308
  */
5271
5309
  collision_box?: BoundingBox;
5272
5310
  }
5311
+ /**
5312
+ * Absorbs {@link lightning | prototype:LightningPrototype} and optionally converts it into electricity.
5313
+ */
5273
5314
  interface LightningAttractorPrototype extends EntityWithOwnerPrototype {
5274
5315
  chargable_graphics?: ChargableGraphics;
5275
5316
  /**
@@ -5283,15 +5324,35 @@ interface LightningAttractorPrototype extends EntityWithOwnerPrototype {
5283
5324
  lightning_strike_offset?: MapPosition;
5284
5325
  range_elongation?: double;
5285
5326
  }
5327
+ /**
5328
+ * Lightning randomly hits entities on planets with {@link lightning_properties | prototype:PlanetPrototype::lightning_properties}.
5329
+ *
5330
+ * If a {@link lightning attractor | prototype:LightningAttractorPrototype} is hit by lightning it will absorb the lightning hit for energy.
5331
+ *
5332
+ * If a something that is not an attractor is hit by lightning it will be damaged by the strike.
5333
+ */
5286
5334
  interface LightningPrototype extends EntityPrototype {
5287
5335
  attracted_volume_modifier?: float;
5336
+ /**
5337
+ * Effect that is triggered when lightning hits a {@link lightning attractor | prototype:LightningAttractorPrototype}. Triggered after the attractor is charged by the lightning hit.
5338
+ */
5339
+ attractor_hit_effect?: Trigger;
5340
+ /**
5341
+ * When lightning strikes something that is not a lightning attractor, this damage is applied to the target.
5342
+ */
5288
5343
  damage?: double;
5289
5344
  effect_duration: uint16;
5345
+ /**
5346
+ * When lightning hits a {@link lightning attractor | prototype:LightningAttractorPrototype}, this amount of energy is transferred to the lightning attractor.
5347
+ */
5290
5348
  energy?: Energy;
5291
5349
  graphics_set?: LightningGraphicsSet;
5292
5350
  sound?: Sound;
5293
5351
  source_offset?: Vector;
5294
5352
  source_variance?: Vector;
5353
+ /**
5354
+ * Effect that is triggered when lightning strikes something that is not a lightning attractor. Triggered before `damage` is applied.
5355
+ */
5295
5356
  strike_effect?: Trigger;
5296
5357
  /**
5297
5358
  * Must be less than or equal to `effect_duration`.
@@ -5687,7 +5748,11 @@ interface MiningDrillPrototype extends EntityWithOwnerPrototype {
5687
5748
  */
5688
5749
  resource_drain_rate_percent?: uint8;
5689
5750
  /**
5690
- * The distance from the centre of the mining drill to search for resources in.
5751
+ * Offset of the `resource_searching_radius` from the entity center when the mining drill is facing north.
5752
+ */
5753
+ resource_searching_offset?: Vector;
5754
+ /**
5755
+ * The distance from the center of the mining drill to search for resources in.
5691
5756
  *
5692
5757
  * This is 2.49 for electric mining drills (a 5x5 area) and 0.99 for burner mining drills (a 2x2 area). The drill searches resource outside its natural boundary box, which is 0.01 (the middle of the entity); making it 2.5 and 1.0 gives it another block radius.
5693
5758
  */
@@ -6307,7 +6372,7 @@ interface ProjectilePrototype extends EntityPrototype {
6307
6372
  }
6308
6373
  interface Prototype extends PrototypeBase {
6309
6374
  /**
6310
- * Allows to add extra description items to the tooltip and factoriopedia.
6375
+ * Allows to add extra description items to the tooltip and Factoriopedia.
6311
6376
  */
6312
6377
  custom_tooltip_fields?: CustomTooltipField[];
6313
6378
  /**
@@ -6711,7 +6776,7 @@ interface RailRampPrototype extends RailPrototype {
6711
6776
  */
6712
6777
  collision_box?: BoundingBox;
6713
6778
  /**
6714
- * Defaults to the mask from {@link UtilityConstants::default_collision_masks | prototype:UtilityConstants::default_collision_masks} when indexed by `"allow_on_deep_oil_ocean"`.
6779
+ * Defaults to the mask from {@link UtilityConstants::default_collision_masks | prototype:UtilityConstants::default_collision_masks} when indexed by `"rail-ramp/allow_on_deep_oil_ocean"`.
6715
6780
  */
6716
6781
  collision_mask_allow_on_deep_oil_ocean?: CollisionMaskConnector;
6717
6782
  /**
@@ -6782,7 +6847,7 @@ interface RailSupportPrototype extends EntityWithOwnerPrototype {
6782
6847
  */
6783
6848
  build_grid_size?: 2;
6784
6849
  /**
6785
- * Defaults to the mask from {@link UtilityConstants::default_collision_masks | prototype:UtilityConstants::default_collision_masks} when indexed by `"allow_on_deep_oil_ocean"`.
6850
+ * Defaults to the mask from {@link UtilityConstants::default_collision_masks | prototype:UtilityConstants::default_collision_masks} when indexed by `"rail-support/allow_on_deep_oil_ocean"`.
6786
6851
  */
6787
6852
  collision_mask_allow_on_deep_oil_ocean?: CollisionMaskConnector;
6788
6853
  /**
@@ -6998,6 +7063,10 @@ interface RecipePrototype extends Prototype {
6998
7063
  * 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
7064
  */
7000
7065
  energy_required?: double;
7066
+ /**
7067
+ * Hides the recipe from crafting menus and other recipe selection lists.
7068
+ */
7069
+ hidden?: boolean;
7001
7070
  hide_from_bonus_gui?: boolean;
7002
7071
  /**
7003
7072
  * Hides the recipe from the player's crafting screen. The recipe will still show up for selection in machines.
@@ -7500,7 +7569,7 @@ interface RoboportPrototype extends EntityWithOwnerPrototype {
7500
7569
  max_logistic_slots?: LogisticFilterIndex;
7501
7570
  open_door_trigger_effect?: TriggerEffect;
7502
7571
  /**
7503
- * Defaults to the max of logistic range or construction range rounded up to chunks.
7572
+ * In chunks. The radius of how many chunks this roboport charts around itself. Defaults to the max of logistic range or construction range rounded up to chunks.
7504
7573
  */
7505
7574
  radar_range?: uint32;
7506
7575
  radar_visualisation_color?: Color;
@@ -7521,6 +7590,10 @@ interface RoboportPrototype extends EntityWithOwnerPrototype {
7521
7590
  * The light emitted when charging a robot.
7522
7591
  */
7523
7592
  recharging_light?: LightDefinition;
7593
+ /**
7594
+ * 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.
7595
+ */
7596
+ render_recharge_icon?: boolean;
7524
7597
  request_to_open_door_timeout: uint32;
7525
7598
  /**
7526
7599
  * Unused.
@@ -7568,6 +7641,12 @@ interface RobotWithLogisticInterfacePrototype extends FlyingRobotPrototype {
7568
7641
  * The robot's cargo carrying capacity. Can be increased by {@link worker robot cargo size research | prototype:WorkerRobotStorageModifier}.
7569
7642
  */
7570
7643
  max_payload_size: ItemCountType;
7644
+ /**
7645
+ * The robot's maximum possible cargo carrying capacity, including bonuses. Useful to limit the impact of {@link worker robot cargo size research | prototype:WorkerRobotStorageModifier}.
7646
+ *
7647
+ * Must be >= max_payload_size.
7648
+ */
7649
+ max_payload_size_after_bonus?: ItemCountType;
7571
7650
  /**
7572
7651
  * Only the first frame of the animation is drawn. This means that the graphics for the idle state cannot be animated.
7573
7652
  */
@@ -8148,7 +8227,7 @@ interface SimpleEntityPrototype extends EntityWithHealthPrototype {
8148
8227
  /**
8149
8228
  * 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
8229
  */
8151
- stateless_visualisation_variations?: StatelessVisualisations[];
8230
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
8152
8231
  }
8153
8232
  /**
8154
8233
  * 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 +8272,7 @@ interface SimpleEntityWithOwnerPrototype extends EntityWithOwnerPrototype {
8193
8272
  * 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
8273
  */
8195
8274
  secondary_draw_order?: int8;
8196
- stateless_visualisation_variations?: StatelessVisualisations[];
8275
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
8197
8276
  }
8198
8277
  /**
8199
8278
  * Abstract entity that has an animation.
@@ -8457,6 +8536,10 @@ interface SpaceLocationPrototype extends Prototype {
8457
8536
  * A value which modifies platform speed; is subtracted when traveling from this location and added when traveling to this location.
8458
8537
  */
8459
8538
  gravity_pull?: double;
8539
+ /**
8540
+ * Hides the space location from the planet selection lists and the space map.
8541
+ */
8542
+ hidden?: boolean;
8460
8543
  /**
8461
8544
  * Path to the icon file.
8462
8545
  *
@@ -8635,6 +8718,9 @@ interface SpiderUnitPrototype extends EntityWithOwnerPrototype {
8635
8718
  height: float;
8636
8719
  max_pursue_distance?: double;
8637
8720
  min_pursue_time?: uint32;
8721
+ /**
8722
+ * In chunks. The radius of how many chunks this spider unit charts around itself.
8723
+ */
8638
8724
  radar_range?: uint32;
8639
8725
  spawning_time_modifier?: double;
8640
8726
  spider_engine: SpiderEngineSpecification;
@@ -8712,6 +8798,22 @@ interface SpidertronRemotePrototype extends SelectionToolPrototype {
8712
8798
  * A {@link splitter | https://wiki.factorio.com/Splitter}.
8713
8799
  */
8714
8800
  interface SplitterPrototype extends TransportBeltConnectablePrototype {
8801
+ circuit_connector?: [
8802
+ CircuitConnectorDefinition,
8803
+ CircuitConnectorDefinition,
8804
+ CircuitConnectorDefinition,
8805
+ CircuitConnectorDefinition
8806
+ ];
8807
+ /**
8808
+ * The maximum circuit wire distance for this entity.
8809
+ */
8810
+ circuit_wire_max_distance?: double;
8811
+ default_input_left_condition?: CircuitConditionConnector;
8812
+ default_input_right_condition?: CircuitConditionConnector;
8813
+ default_output_left_condition?: CircuitConditionConnector;
8814
+ default_output_right_condition?: CircuitConditionConnector;
8815
+ draw_circuit_wires?: boolean;
8816
+ draw_copper_wires?: boolean;
8715
8817
  frozen_patch?: Sprite4Way;
8716
8818
  /**
8717
8819
  * The name of the {@link TransportBeltPrototype | prototype:TransportBeltPrototype} which is used for the sound of the underlying belt.
@@ -9159,6 +9261,10 @@ interface TechnologyPrototype extends Prototype {
9159
9261
  * Whether the technology should be shown in the technology tree GUI when "Show only essential technologies" is enabled.
9160
9262
  */
9161
9263
  essential?: boolean;
9264
+ /**
9265
+ * Hides the technology from the tech screen.
9266
+ */
9267
+ hidden?: boolean;
9162
9268
  /**
9163
9269
  * Path to the icon file.
9164
9270
  *
@@ -9234,7 +9340,13 @@ interface TemporaryContainerPrototype extends ContainerPrototype {
9234
9340
  destroy_on_empty?: boolean;
9235
9341
  time_to_live?: uint32;
9236
9342
  }
9343
+ /**
9344
+ * Consumes two fluids as fuel to produce thrust for a space platform.
9345
+ */
9237
9346
  interface ThrusterPrototype extends EntityWithOwnerPrototype {
9347
+ /**
9348
+ * If a {@link filter | prototype:FluidBox::filter} is set for this fluidbox it determines what the thruster considers the first fuel.
9349
+ */
9238
9350
  fuel_fluid_box: FluidBox;
9239
9351
  graphics_set?: ThrusterGraphicsSet;
9240
9352
  /**
@@ -9242,6 +9354,9 @@ interface ThrusterPrototype extends EntityWithOwnerPrototype {
9242
9354
  */
9243
9355
  max_performance: ThrusterPerformancePoint;
9244
9356
  min_performance: ThrusterPerformancePoint;
9357
+ /**
9358
+ * If a {@link filter | prototype:FluidBox::filter} is set for this fluidbox it determines what the thruster considers the second fuel.
9359
+ */
9245
9360
  oxidizer_fluid_box: FluidBox;
9246
9361
  plumes?: PlumesSpecification;
9247
9362
  }
@@ -9634,7 +9749,7 @@ interface TreePrototype extends EntityWithHealthPrototype {
9634
9749
  * Mandatory if `variations` is not defined.
9635
9750
  */
9636
9751
  pictures?: SpriteVariations;
9637
- stateless_visualisation_variations?: StatelessVisualisations[];
9752
+ stateless_visualisation_variations?: (StatelessVisualisation | StatelessVisualisation[])[];
9638
9753
  variation_weights?: float[];
9639
9754
  /**
9640
9755
  * If defined, it can't be empty.
@@ -9923,6 +10038,9 @@ interface UnitPrototype extends EntityWithOwnerPrototype {
9923
10038
  * Movement speed of the unit in the world, in tiles per tick. Must be equal to or greater than 0.
9924
10039
  */
9925
10040
  movement_speed: float;
10041
+ /**
10042
+ * In chunks. The radius of how many chunks this unit charts around itself.
10043
+ */
9926
10044
  radar_range?: uint32;
9927
10045
  render_layer?: RenderLayer;
9928
10046
  rotation_speed?: float;
@@ -10227,6 +10345,10 @@ interface UtilityConstants extends PrototypeBase {
10227
10345
  max_fluid_flow: FluidAmount;
10228
10346
  max_logistic_filter_count: LogisticFilterIndex;
10229
10347
  max_terrain_building_size: uint8;
10348
+ /**
10349
+ * Cap for how many steps of quality the output of something (miner/crafter) may be higher than the input (resource/ingredients). Must be >= 1.
10350
+ */
10351
+ maximum_quality_jump: uint8;
10230
10352
  maximum_recipe_overload_multiplier: uint32;
10231
10353
  medium_area_size: float;
10232
10354
  medium_blueprint_area_size: float;
@@ -10251,6 +10373,7 @@ interface UtilityConstants extends PrototypeBase {
10251
10373
  */
10252
10374
  player_colors: PlayerColorData[];
10253
10375
  probability_product_count_tint: Color;
10376
+ quality_selector_dropdown_threshold: uint8;
10254
10377
  rail_planner_count_button_color: Color;
10255
10378
  rail_segment_colors: Color[];
10256
10379
  recipe_step_limit: uint32;
@@ -11046,6 +11169,9 @@ interface VehiclePrototype extends EntityWithOwnerPrototype {
11046
11169
  * Must be positive. There is no functional difference between the two ways to set braking power/force.
11047
11170
  */
11048
11171
  braking_power: Energy | double;
11172
+ /**
11173
+ * In chunks. The radius of the radar range of the vehicle, so how many chunks it charts around itself.
11174
+ */
11049
11175
  chunk_exploration_radius?: uint32;
11050
11176
  crash_trigger?: TriggerEffect;
11051
11177
  /**