factorio-types 1.2.16 → 1.2.17

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/classes.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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace runtime {
@@ -344,21 +344,25 @@ interface LuaAutoplaceControlPrototype extends LuaPrototypeBase {
344
344
  interface LuaBootstrap {
345
345
  /**
346
346
  * Generate a new, unique event ID that can be used to raise custom events with {@link LuaBootstrap::raise_event | runtime:LuaBootstrap::raise_event}.
347
- * @returns The newly generated event ID.
347
+ * @returns The newly generated event ID. This will be a new value that does not correspond to any named entry in defines.events.
348
348
  */
349
- generate_event_name(this: void): uint;
349
+ generate_event_name(this: void): defines.events;
350
350
  /**
351
351
  * Gets the filters for the given event.
352
352
  * @param event ID of the event to get.
353
353
  * @returns The filters or `nil` if none are defined.
354
354
  */
355
- get_event_filter(this: void, event: uint): EventFilter | null;
355
+ get_event_filter(this: void, event: LuaEventType): EventFilter | null;
356
356
  /**
357
357
  * Find the event handler for an event.
358
358
  * @param event The event identifier to get a handler for.
359
359
  * @returns Reference to the function currently registered as the handler, if it was found.
360
360
  */
361
- get_event_handler(this: void, event: uint): ((this: void, arg0: EventData) => any) | null;
361
+ get_event_handler(this: void, event: LuaEventType): ((this: void, arg0: EventData) => any) | null;
362
+ /**
363
+ * Converts LuaEventType into related value of defines.events. Value will be provided also if event was not given a constant inside of defines.events.
364
+ */
365
+ get_event_id(this: void, event: LuaEventType): defines.events;
362
366
  /**
363
367
  * Gets the mod event order as a string.
364
368
  */
@@ -3989,7 +3993,7 @@ interface LuaBootstrap {
3989
3993
  {{filter = "name", name = "fast-inserter"}})
3990
3994
  ```
3991
3995
  */
3992
- on_event(this: void, event: defines.events | string | (defines.events | string)[], handler: ((this: void, arg0: EventData) => any) | nil, filters?: EventFilter): void;
3996
+ on_event(this: void, event: LuaEventType | LuaEventType[], handler: ((this: void, arg0: EventData) => any) | nil, filters?: EventFilter): void;
3993
3997
  /**
3994
3998
  * Register a function to be run on mod initialization.
3995
3999
  *
@@ -4206,7 +4210,7 @@ interface LuaBootstrap {
4206
4210
  * @param event ID of the event to filter.
4207
4211
  * @param filters The filters or `nil` to clear them.
4208
4212
  */
4209
- set_event_filter(this: void, event: uint, filters?: EventFilter): void;
4213
+ set_event_filter(this: void, event: LuaEventType, filters?: EventFilter): void;
4210
4214
  /**
4211
4215
  * A dictionary listing the names of all currently active mods and mapping them to their version.
4212
4216
  * @example ```
@@ -4336,6 +4340,8 @@ interface LuaBurnerPrototype {
4336
4340
  */
4337
4341
  readonly fuel_categories: Record<string, true>;
4338
4342
  readonly fuel_inventory_size: uint;
4343
+ readonly initial_fuel?: LuaItemPrototype;
4344
+ readonly initial_fuel_percent: double;
4339
4345
  /**
4340
4346
  * The light flicker definition for this burner prototype.
4341
4347
  */
@@ -5259,6 +5265,10 @@ interface LuaCustomChartTag {
5259
5265
  * Prototype of a custom event.
5260
5266
  */
5261
5267
  interface LuaCustomEventPrototype extends LuaPrototypeBase {
5268
+ /**
5269
+ * Event identifier associated with this custom event.
5270
+ */
5271
+ readonly event_id: defines.events;
5262
5272
  /**
5263
5273
  * The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.
5264
5274
  */
@@ -5304,6 +5314,10 @@ interface LuaCustomInputPrototype extends LuaPrototypeBase {
5304
5314
  * Whether this custom input is enabled while using the spectator controller.
5305
5315
  */
5306
5316
  readonly enabled_while_spectating: boolean;
5317
+ /**
5318
+ * Event identifier associated with this custom input.
5319
+ */
5320
+ readonly event_id: defines.events;
5307
5321
  /**
5308
5322
  * Whether this custom input will include the selected prototype (if any) when triggered.
5309
5323
  */
@@ -6520,6 +6534,20 @@ interface LuaEntity extends LuaControl {
6520
6534
  * The current direction this entity is facing.
6521
6535
  */
6522
6536
  direction: defines.direction;
6537
+ /**
6538
+ * If the updatable entity is disabled by control behavior.
6539
+ */
6540
+ readonly disabled_by_control_behavior: boolean;
6541
+ /**
6542
+ * If the updatable entity is disabled by recipe.
6543
+ */
6544
+ readonly disabled_by_recipe: boolean;
6545
+ /**
6546
+ * If the updatable entity is disabled by script.
6547
+ *
6548
+ * Note: Some entities (Corpse, FireFlame, Roboport, RollingStock, dying entities) need to remain active and will ignore writes.
6549
+ */
6550
+ disabled_by_script: boolean;
6523
6551
  /**
6524
6552
  * Gives a draw data of the given entity if it supports such data.
6525
6553
  */
@@ -6622,6 +6650,10 @@ interface LuaEntity extends LuaControl {
6622
6650
  ```
6623
6651
  */
6624
6652
  friction_modifier: float;
6653
+ /**
6654
+ * If the freezable entity is currently frozen.
6655
+ */
6656
+ readonly frozen: boolean;
6625
6657
  readonly ghost_localised_description: LocalisedString;
6626
6658
  /**
6627
6659
  * Localised name of the entity or tile contained in this ghost.
@@ -6707,7 +6739,7 @@ interface LuaEntity extends LuaControl {
6707
6739
  */
6708
6740
  inserter_filter_mode?: 'whitelist' | 'blacklist';
6709
6741
  /**
6710
- * Sets the stack size limit on this inserter. If the stack size is > than the force stack size limit the value is ignored.
6742
+ * Sets the stack size limit on this inserter.
6711
6743
  *
6712
6744
  * Set to `0` to reset.
6713
6745
  */
@@ -6726,6 +6758,10 @@ interface LuaEntity extends LuaControl {
6726
6758
  * If this entity is EntityWithOwner
6727
6759
  */
6728
6760
  readonly is_entity_with_owner: boolean;
6761
+ /**
6762
+ * If the entity is freezable.
6763
+ */
6764
+ readonly is_freezable: boolean;
6729
6765
  /**
6730
6766
  * If the rolling stock is facing train's front.
6731
6767
  */
@@ -6734,6 +6770,10 @@ interface LuaEntity extends LuaControl {
6734
6770
  * Whether this entity is a MilitaryTarget. Can be written to if {@link LuaEntityPrototype::allow_run_time_change_of_is_military_target | runtime:LuaEntityPrototype::allow_run_time_change_of_is_military_target} returns `true`.
6735
6771
  */
6736
6772
  is_military_target: boolean;
6773
+ /**
6774
+ * If the entity is updatable.
6775
+ */
6776
+ readonly is_updatable: boolean;
6737
6777
  /**
6738
6778
  * Items this ghost will request when revived or items this item request proxy is requesting.
6739
6779
  */
@@ -6800,9 +6840,15 @@ interface LuaEntity extends LuaControl {
6800
6840
  /**
6801
6841
  * Not minable entities can still be destroyed.
6802
6842
  *
6803
- * Entities that are not minable naturally (like smoke, character, enemy units etc) can't be set to minable.
6843
+ * Tells if entity reports as being minable right now. This takes into account minable_flag and entity specific conditions (for example rail under rolling stocks is not minable, vehicle with passenger is not minable).
6844
+ *
6845
+ * Write to this field since 2.0.26 is deprecated and it will result in write to minable_flag instead.
6804
6846
  */
6805
6847
  minable: boolean;
6848
+ /**
6849
+ * Script controlled flag that allows entity to be mined.
6850
+ */
6851
+ minable_flag: boolean;
6806
6852
  /**
6807
6853
  * The filter mode for this mining drill. `nil` if this mining drill doesn't have filters.
6808
6854
  */
@@ -6816,7 +6862,7 @@ interface LuaEntity extends LuaControl {
6816
6862
  */
6817
6863
  readonly mining_target?: LuaEntity;
6818
6864
  /**
6819
- * If the entity is currently mirrored.
6865
+ * If the entity is currently mirrored. This state is referred to as `flipped` elsewhere, such as on the {@link on_player_flipped_entity | runtime:on_player_flipped_entity} event.
6820
6866
  */
6821
6867
  mirroring: boolean;
6822
6868
  /**
@@ -8606,14 +8652,14 @@ interface LuaFlowStatistics {
8606
8652
  * Use `sample_index` to access the data used to generate the statistics graphs. Each precision level contains 300 samples of data so at a precision of 1 minute, each sample contains data averaged across 60s / 300 = 0.2s = 12 ticks.
8607
8653
  *
8608
8654
  * All return values are normalized to be per-tick for electric networks and per-minute for all other types.
8609
- * @param table.id The prototype ID.
8655
+ * @param table.name The prototype ID.
8610
8656
  * @param table.category The statistics category to read from. Valid choices are `"input"`, `"output"` and `"storage"`.
8611
8657
  * @param table.precision_index The precision to read.
8612
8658
  * @param table.sample_index The sample index to read from within the precision range. If not provided, the entire precision range is read. Must be between 1 and 300 where 1 is the most recent sample and 300 is the oldest.
8613
8659
  * @param table.count If true, the count of items/fluids/entities is returned instead of the per-time-frame value.
8614
8660
  */
8615
8661
  get_flow_count(this: void, table: {
8616
- id: FlowStatisticsID;
8662
+ name: FlowStatisticsID;
8617
8663
  category: string;
8618
8664
  precision_index: defines.flow_precision_index;
8619
8665
  sample_index?: uint16;
@@ -10037,7 +10083,7 @@ interface LuaGenericOnOffControlBehavior extends LuaControlBehavior {
10037
10083
  /**
10038
10084
  * `true` if this should connect to the logistic network.
10039
10085
  */
10040
- readonly connect_to_logistic_network: boolean;
10086
+ connect_to_logistic_network: boolean;
10041
10087
  /**
10042
10088
  * If the entity is currently disabled because of the control behavior.
10043
10089
  */
@@ -10054,7 +10100,7 @@ interface LuaGenericOnOffControlBehavior extends LuaControlBehavior {
10054
10100
  }
10055
10101
  ```
10056
10102
  */
10057
- readonly logistic_condition: CircuitConditionDefinition;
10103
+ logistic_condition: CircuitConditionDefinition;
10058
10104
  }
10059
10105
  /**
10060
10106
  * Item group or subgroup.
@@ -15984,6 +16030,10 @@ interface LuaSpacePlatform {
15984
16030
  * The unique index of this space platform.
15985
16031
  */
15986
16032
  readonly index: uint;
16033
+ /**
16034
+ * The space location this space platform previously went through or stopped at.
16035
+ */
16036
+ readonly last_visited_space_location?: LuaSpaceLocationPrototype;
15987
16037
  /**
15988
16038
  * The name of this space platform.
15989
16039
  */
@@ -15992,6 +16042,10 @@ interface LuaSpacePlatform {
15992
16042
  * The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.
15993
16043
  */
15994
16044
  readonly object_name: string;
16045
+ /**
16046
+ * When `true`, the platform has paused thrust and does not advance its schedule.
16047
+ */
16048
+ paused: boolean;
15995
16049
  /**
15996
16050
  * This platform's current schedule, if any. Set to `nil` to clear.
15997
16051
  *
@@ -16012,7 +16066,7 @@ interface LuaSpacePlatform {
16012
16066
  /**
16013
16067
  * The starter pack used to create this space platform.
16014
16068
  */
16015
- readonly starter_pack: ItemIDAndQualityIDPair;
16069
+ readonly starter_pack?: ItemIDAndQualityIDPair;
16016
16070
  /**
16017
16071
  * The current state of this space platform.
16018
16072
  */
@@ -18774,7 +18828,7 @@ interface LuaWireConnector {
18774
18828
  */
18775
18829
  readonly is_ghost: boolean;
18776
18830
  /**
18777
- * Index of a CircuitNetwork or ElectricSubNetwork which is going through this wire connector. Returns 0 if there is no network associated with this wire connector right now. CircuitNetwork indexes are independent of indexes of ElectricSubNetwork so they may collide with each other
18831
+ * Index of a CircuitNetwork or ElectricSubNetwork which is going through this wire connector. Returns 0 if there is no network associated with this wire connector right now. CircuitNetwork indexes are independent of indexes of ElectricSubNetwork so they may collide with each other.
18778
18832
  */
18779
18833
  readonly network_id: uint;
18780
18834
  /**
@@ -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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace runtime {
@@ -3560,6 +3560,22 @@ interface LuaEntityMarkedForUpgradeEventFilterType extends BaseLuaEntityMarkedFo
3560
3560
  */
3561
3561
  'type': string;
3562
3562
  }
3563
+ /**
3564
+ * Event name may be specified in one of four ways.
3565
+ */
3566
+ type LuaEventType = /**
3567
+ * Custom event prototype.
3568
+ */
3569
+ LuaCustomEventPrototype | /**
3570
+ * Custom input prototype.
3571
+ */
3572
+ LuaCustomInputPrototype | /**
3573
+ * Event identifier.
3574
+ */
3575
+ defines.events | /**
3576
+ * Name of the event.
3577
+ */
3578
+ string;
3563
3579
  /**
3564
3580
  * Any LuaObject listed on the {@link Classes | runtime:classes} page.
3565
3581
  */
@@ -5293,15 +5309,14 @@ interface ModSettingPrototypeFilterType extends BaseModSettingPrototypeFilter {
5293
5309
  type ModifierType = 'inserter-stack-size-bonus' | 'bulk-inserter-capacity-bonus' | 'laboratory-speed' | 'character-logistic-trash-slots' | 'maximum-following-robots-count' | 'worker-robot-speed' | 'worker-robot-storage' | 'turret-attack' | 'ammo-damage' | 'give-item' | 'gun-speed' | 'unlock-recipe' | 'character-crafting-speed' | 'character-mining-speed' | 'character-running-speed' | 'character-build-distance' | 'character-item-drop-distance' | 'character-reach-distance' | 'character-resource-reach-distance' | 'character-item-pickup-distance' | 'character-loot-pickup-distance' | 'character-inventory-slots-bonus' | 'deconstruction-time-to-live' | 'max-failed-attempts-per-tick-per-construction-queue' | 'max-successful-attempts-per-tick-per-construction-queue' | 'character-health-bonus' | 'mining-drill-productivity-bonus' | 'train-braking-force-bonus' | 'worker-robot-battery' | 'laboratory-productivity' | 'follower-robot-lifetime' | 'artillery-range' | 'nothing' | 'character-logistic-requests' | 'unlock-space-location' | 'unlock-quality' | 'unlock-space-platforms' | 'unlock-circuit-network' | 'cargo-landing-pad-count' | 'change-recipe-productivity' | 'cliff-deconstruction-enabled' | 'mining-with-fluid' | 'rail-support-on-deep-oil-ocean' | 'rail-planner-allow-elevated-rails' | 'beacon-distribution' | 'create-ghost-on-entity-death' | 'belt-stack-size-bonus' | 'vehicle-logistics';
5294
5310
  /**
5295
5311
  * The percentual increase of the attribute. A value of `0.6` means a 60% increase.
5312
+ *
5313
+ * Quality values are divided by 10 internally, allowing for one more decimal of precision.
5296
5314
  */
5297
5315
  type ModuleEffectValue = float;
5298
5316
  /**
5299
5317
  * @example ```
5300
- -- These are the effects of the vanilla Productivity Module 3 (up to floating point imprecisions)
5301
- {consumption=0.6,
5302
- speed=-0.15,
5303
- productivity=0.06,
5304
- pollution=0.075}
5318
+ -- These are the effects of the vanilla Speed Module 3
5319
+ {speed = 0.5, consumption = 0.7, quality = -0.25}
5305
5320
  ```
5306
5321
  */
5307
5322
  interface ModuleEffects {
@@ -6650,6 +6665,10 @@ interface SignalID {
6650
6665
  * Name of the prototype.
6651
6666
  */
6652
6667
  name?: string;
6668
+ /**
6669
+ * The prototype name of the signal's quality. Defaults to `normal`.
6670
+ */
6671
+ quality?: QualityID;
6653
6672
  }
6654
6673
  type SignalIDType = 'item' | 'fluid' | 'virtual' | 'entity' | 'recipe' | 'space-location' | 'asteroid-chunk' | 'quality';
6655
6674
  /**
@@ -7501,7 +7520,7 @@ interface TriggerEffectItem {
7501
7520
  /**
7502
7521
  * Used by {@link TriggerEffectItem | runtime:TriggerEffectItem}.
7503
7522
  */
7504
- type TriggerEffectItemType = 'damage' | 'create-entity' | 'create-explosion' | 'create-fire' | 'create-smoke' | 'create-trivial-smoke' | 'create-asteroid-chunk' | 'create-particle' | 'create-sticker' | 'create-decorative' | 'nested-result' | 'play-sound' | 'push-back' | 'destroy-cliffs' | 'show-explosion-on-chart' | 'insert-item' | 'script' | 'set-tile' | 'invoke-tile-trigger' | 'destroy-decoratives' | 'camera-effect' | 'activate-impact';
7523
+ type TriggerEffectItemType = 'damage' | 'damage-tile' | 'create-entity' | 'create-explosion' | 'create-fire' | 'create-smoke' | 'create-trivial-smoke' | 'create-asteroid-chunk' | 'create-particle' | 'create-sticker' | 'create-decorative' | 'nested-result' | 'play-sound' | 'push-back' | 'destroy-cliffs' | 'show-explosion-on-chart' | 'insert-item' | 'script' | 'set-tile' | 'invoke-tile-trigger' | 'destroy-decoratives' | 'camera-effect' | 'activate-impact';
7505
7524
  interface TriggerItem {
7506
7525
  type: 'direct' | 'area' | 'line' | 'cluster';
7507
7526
  action_delivery?: TriggerDelivery[];
@@ -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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
package/dist/defines.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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace defines {
@@ -2078,7 +2078,7 @@ enum space_platform_state {
2078
2078
  */
2079
2079
  no_path = 6,
2080
2080
  /**
2081
- * Waiting for a starter pack
2081
+ * Doesn't have any stations in schedule.
2082
2082
  */
2083
2083
  no_schedule = 5,
2084
2084
  /**
package/dist/events.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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace runtime {
@@ -1422,9 +1422,9 @@ interface on_mod_item_opened {
1422
1422
  tick: uint;
1423
1423
  }
1424
1424
  /**
1425
- * Called after an object is destroyed that has been registered with {@link LuaBootstrap::register_on_object_destroyed | runtime:LuaBootstrap::register_on_object_destroyed}.
1425
+ * Called after an object is destroyed which was registered with {@link LuaBootstrap::register_on_object_destroyed | runtime:LuaBootstrap::register_on_object_destroyed} previously.
1426
1426
  *
1427
- * Depending on when a given object is destroyed, this event will be fired at the end of the current tick or at the end of the next tick.
1427
+ * Depending on when a given object is destroyed, this event will be fired at the end of the current tick or at the end of the next tick. The event's timing is independent of the in-world object being destroyed.
1428
1428
  */
1429
1429
  interface on_object_destroyed {
1430
1430
  /**
@@ -2184,7 +2184,9 @@ interface on_player_fast_transferred {
2184
2184
  tick: uint;
2185
2185
  }
2186
2186
  /**
2187
- * Called when the player flips an entity. This event is only fired when the entity actually changes its orientation or mirroring -- pressing the flip keys on an entity that can't be flipped won't fire this event.
2187
+ * Called when the player flips an entity. This event is only fired when the entity actually changes its orientation or mirroring, so it won't be triggered when pressing the flip keys on an entity that can't be flipped.
2188
+ *
2189
+ * This event reflects a change in the {@link LuaEntity::mirroring | runtime:LuaEntity::mirroring} property.
2188
2190
  */
2189
2191
  interface on_player_flipped_entity {
2190
2192
  /**
@@ -2192,7 +2194,7 @@ interface on_player_flipped_entity {
2192
2194
  */
2193
2195
  entity: LuaEntity;
2194
2196
  /**
2195
- * The enacted flip. true = Horizontal, false = Vertical
2197
+ * The enacted flip. `true` means a horizontal flip, `false` a vertical one.
2196
2198
  */
2197
2199
  horizontal: boolean;
2198
2200
  /**
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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  /**
@@ -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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
@@ -826,6 +826,9 @@ interface AssemblingMachinePrototype extends CraftingMachinePrototype {
826
826
  draw_circuit_wires?: bool;
827
827
  draw_copper_wires?: bool;
828
828
  enable_logistic_control_behavior?: bool;
829
+ /**
830
+ * Only loaded when fixed_recipe is provided.
831
+ */
829
832
  fixed_quality?: QualityID;
830
833
  /**
831
834
  * The preset recipe of this machine. This machine does not show a recipe selection if this is set. The base game uses this for the {@link rocket silo | https://wiki.factorio.com/Rocket_silo}.
@@ -1339,6 +1342,7 @@ interface CargoLandingPadPrototype extends EntityWithOwnerPrototype {
1339
1342
  graphics_set?: CargoBayConnectableGraphicsSet;
1340
1343
  inventory_size: ItemStackIndex;
1341
1344
  radar_range?: uint32;
1345
+ radar_visualisation_color?: Color;
1342
1346
  /**
1343
1347
  * Drawn when a robot brings/takes items from this landing pad.
1344
1348
  */
@@ -2712,6 +2716,7 @@ interface EditorControllerPrototype {
2712
2716
  generate_neighbor_chunks: bool;
2713
2717
  gun_inventory_size: ItemStackIndex;
2714
2718
  ignore_surface_conditions: bool;
2719
+ ignore_tile_conditions: bool;
2715
2720
  instant_blueprint_building: bool;
2716
2721
  instant_deconstruction: bool;
2717
2722
  instant_rail_planner: bool;
@@ -3782,6 +3787,9 @@ interface FluidTurretPrototype extends TurretPrototype {
3782
3787
  prepared_muzzle_animation_shift?: AnimatedVector;
3783
3788
  preparing_muzzle_animation_shift?: AnimatedVector;
3784
3789
  starting_attack_muzzle_animation_shift?: AnimatedVector;
3790
+ /**
3791
+ * Always `true`, forcing the turret's collision box to be affected by its rotation.
3792
+ */
3785
3793
  turret_base_has_direction: true;
3786
3794
  }
3787
3795
  /**
@@ -4194,6 +4202,10 @@ interface HeatPipePrototype extends EntityWithOwnerPrototype {
4194
4202
  connection_sprites?: ConnectableEntityGraphics;
4195
4203
  heat_buffer: HeatBuffer;
4196
4204
  heat_glow_sprites?: ConnectableEntityGraphics;
4205
+ /**
4206
+ * Must be >= 0.
4207
+ */
4208
+ heating_radius?: float;
4197
4209
  }
4198
4210
  /**
4199
4211
  * Used to attach graphics for {@link cursor boxes | prototype:CursorBoxType} to entities during runtime. HighlightBoxEntity can also be independent from entities so it is simply drawn somewhere in the world. See {@link LuaSurface::create_entity | runtime:LuaSurface::create_entity} for the available options for type "highlight-box".
@@ -4335,6 +4347,7 @@ interface InserterPrototype extends EntityWithOwnerPrototype {
4335
4347
  * Stack size bonus that is inherent to the prototype without having to be researched.
4336
4348
  */
4337
4349
  stack_size_bonus?: uint8;
4350
+ starting_distance?: double;
4338
4351
  /**
4339
4352
  * Whether the inserter should be able to fish {@link fish | https://wiki.factorio.com/Raw_fish}.
4340
4353
  */
@@ -6395,6 +6408,10 @@ interface ReactorPrototype extends EntityWithOwnerPrototype {
6395
6408
  */
6396
6409
  heat_connection_patches_disconnected?: SpriteVariations;
6397
6410
  heat_lower_layer_picture?: Sprite;
6411
+ /**
6412
+ * Must be >= 0.
6413
+ */
6414
+ heating_radius?: double;
6398
6415
  light?: LightDefinition;
6399
6416
  lower_layer_picture?: Sprite;
6400
6417
  /**
@@ -7020,6 +7037,7 @@ interface RoboportPrototype extends EntityWithOwnerPrototype {
7020
7037
  * Defaults to the max of logistic range or construction range rounded up to chunks.
7021
7038
  */
7022
7039
  radar_range?: uint32;
7040
+ radar_visualisation_color?: Color;
7023
7041
  /**
7024
7042
  * Minimum charge that the roboport has to have after a blackout (0 charge/buffered energy) to begin working again. Additionally, freshly placed roboports will have their energy buffer filled with `0.25 × recharge_minimum` energy.
7025
7043
  *
@@ -7825,7 +7843,7 @@ interface SoundPrototype {
7825
7843
  audible_distance_modifier?: double;
7826
7844
  category?: SoundType;
7827
7845
  /**
7828
- * Supported sound file formats are `.ogg` (Vorbis) and `.wav`.
7846
+ * Supported sound file formats are `.ogg` (Vorbis and Opus) and `.wav`.
7829
7847
  *
7830
7848
  * Only loaded, and mandatory if `variations` is not defined.
7831
7849
  */
@@ -9188,6 +9206,7 @@ interface TurretPrototype extends EntityWithOwnerPrototype {
9188
9206
  */
9189
9207
  attacking_speed?: float;
9190
9208
  call_for_help_radius: double;
9209
+ can_retarget_while_starting_attack?: bool;
9191
9210
  /**
9192
9211
  * Set of {@link circuit connector definitions | prototype:CircuitConnectorDefinition} for all directions used by this turret. Required amount of elements is based on other prototype values: 8 elements if building-direction-8-way flag is set, or 16 elements if building-direction-16-way flag is set, or 4 elements if turret_base_has_direction is set to true, or 1 element.
9193
9212
  */
@@ -9319,7 +9338,7 @@ interface TurretPrototype extends EntityWithOwnerPrototype {
9319
9338
  spawn_decorations_on_expansion?: bool;
9320
9339
  special_effect?: TurretSpecialEffect;
9321
9340
  /**
9322
- * When `false` turret will enter `starting_attack` state without checking its ammo or energy levels. {@link FluidTurretPrototype | prototype:FluidTurretPrototype} forces this to `true`.
9341
+ * When `false` the turret will enter `starting_attack` state without checking its ammo or energy levels. {@link FluidTurretPrototype | prototype:FluidTurretPrototype} forces this to `true`.
9323
9342
  */
9324
9343
  start_attacking_only_when_can_shoot?: bool;
9325
9344
  starting_attack_animation?: RotatedAnimation8Way;
@@ -9331,6 +9350,9 @@ interface TurretPrototype extends EntityWithOwnerPrototype {
9331
9350
  starting_attack_speed_secondary?: float;
9332
9351
  starting_attack_speed_when_killed?: float;
9333
9352
  starting_attack_starting_progress_when_killed?: float;
9353
+ /**
9354
+ * When `true` the turret's collision box will affected by its rotation.
9355
+ */
9334
9356
  turret_base_has_direction?: bool;
9335
9357
  unfolds_before_dying?: bool;
9336
9358
  }
@@ -9469,7 +9491,7 @@ interface UseEntityInEnergyProductionAchievementPrototype extends AchievementPro
9469
9491
  consumed_condition = "uranium-fuel-cell"
9470
9492
  ```
9471
9493
  */
9472
- consumed_condition?: ItemID;
9494
+ consumed_condition?: ItemIDFilter;
9473
9495
  /**
9474
9496
  * This entity is needed to produce energy, for the player to complete the achievement.
9475
9497
  * @example ```
@@ -9477,6 +9499,10 @@ interface UseEntityInEnergyProductionAchievementPrototype extends AchievementPro
9477
9499
  ```
9478
9500
  */
9479
9501
  entity: EntityID;
9502
+ /**
9503
+ * This item needs to be produced before gaining the achievement.
9504
+ */
9505
+ produced_condition?: ItemIDFilter;
9480
9506
  /**
9481
9507
  * This item need to be built before gaining the achievement.
9482
9508
  * @example ```
@@ -9833,6 +9859,9 @@ interface UtilitySounds extends PrototypeBase {
9833
9859
  rotated_medium: Sound;
9834
9860
  rotated_small: Sound;
9835
9861
  scenario_message: Sound;
9862
+ /**
9863
+ * Only present when the Space Age mod is loaded.
9864
+ */
9836
9865
  segment_dying_sound?: Sound;
9837
9866
  smart_pipette: Sound;
9838
9867
  switch_gun: Sound;
@@ -10277,7 +10306,10 @@ interface UtilitySprites extends PrototypeBase {
10277
10306
  pin_center: Sprite;
10278
10307
  pipeline_disabled_icon: Sprite;
10279
10308
  placement_indicator_leg: Sprite;
10280
- platform_entity_build_animations: EntityBuildAnimations;
10309
+ /**
10310
+ * Only present when the Space Age mod is loaded.
10311
+ */
10312
+ platform_entity_build_animations?: EntityBuildAnimations;
10281
10313
  play: Sprite;
10282
10314
  played_dark_green: Sprite;
10283
10315
  played_green: Sprite;
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.23
5
+ // Factorio version 2.0.26
6
6
  // API version 6
7
7
 
8
8
  declare namespace prototype {
@@ -2099,6 +2099,8 @@ interface BurnerEnergySource extends BaseEnergySource {
2099
2099
  */
2100
2100
  fuel_categories?: FuelCategoryID[];
2101
2101
  fuel_inventory_size: ItemStackIndex;
2102
+ initial_fuel?: ItemID;
2103
+ initial_fuel_percent?: double;
2102
2104
  light_flicker?: LightFlickeringDefinition;
2103
2105
  smoke?: SmokeSource[];
2104
2106
  type: 'burner';
@@ -2305,6 +2307,12 @@ interface CharacterArmorAnimation {
2305
2307
  idle_with_gun_in_air?: RotatedAnimation;
2306
2308
  landing?: RotatedAnimation;
2307
2309
  mining_with_tool: RotatedAnimation;
2310
+ /**
2311
+ * List of positions in the mining with tool animation when the mining sound and mining particles are created.
2312
+ *
2313
+ * Overrides {@link CharacterPrototype::mining_with_tool_particles_animation_positions | prototype:CharacterPrototype::mining_with_tool_particles_animation_positions} if defined
2314
+ */
2315
+ mining_with_tool_particles_animation_positions?: float[];
2308
2316
  running?: RotatedAnimation;
2309
2317
  /**
2310
2318
  * Must contain exactly 18 or 40 directions, so all of the combination of gun direction and moving direction can be covered. Some of these variations are used in reverse to save space. You can use the character animation in the base game for reference.
@@ -3404,6 +3412,11 @@ interface DamageParameters {
3404
3412
  */
3405
3413
  type: DamageTypeID;
3406
3414
  }
3415
+ interface DamageTileTriggerEffectItem extends TriggerEffectItem {
3416
+ damage: DamageParameters;
3417
+ radius?: float;
3418
+ type: 'damage';
3419
+ }
3407
3420
  interface DamageTriggerEffectItem extends TriggerEffectItem {
3408
3421
  apply_damage_to_trees?: bool;
3409
3422
  damage: DamageParameters;
@@ -3691,15 +3704,10 @@ interface DropItemTipTrigger extends CountBasedTipTrigger {
3691
3704
  type: 'drop-item';
3692
3705
  }
3693
3706
  /**
3694
- * When applied to {@link modules | prototype:ModulePrototype}, the resulting effect is a sum of all module effects, multiplied through calculations: `(1 + sum module effects)` or, for productivity `(0 + sum)`.
3707
+ * When applied to {@link modules | prototype:ModulePrototype}, the resulting effect is a sum of all module effects, multiplied through calculations: `(1 + sum module effects)`, or `(0 + sum)` for productivity. Quality calculations follow their own separate logic.
3695
3708
  * @example ```
3696
- effect =
3697
- {
3698
- productivity = 0.04,
3699
- consumption = 0.4,
3700
- pollution = 0.05,
3701
- speed = -0.05
3702
- }
3709
+ -- These are the effects of the vanilla Speed Module 3
3710
+ {speed = 0.5, consumption = 0.7, quality = -0.25}
3703
3711
  ```
3704
3712
  */
3705
3713
  interface Effect {
@@ -3715,6 +3723,9 @@ interface Effect {
3715
3723
  * Multiplied against work completed, adds to the bonus results of operating. E.g. an extra crafted recipe or immediate research bonus. The minimum possible sum is 0%.
3716
3724
  */
3717
3725
  productivity?: EffectValue;
3726
+ /**
3727
+ * Adds a bonus chance to increase a product's quality. The minimum possible sum is 0%. Quality is a special case because its effect value is divided by 10 internally for actual usage. This allows for one more decimal of precision, as anything beyond two decimals of effect value is ignored.
3728
+ */
3718
3729
  quality?: EffectValue;
3719
3730
  /**
3720
3731
  * Modifier to crafting speed, research speed, etc. The minimum possible sum is -80%.
@@ -3765,7 +3776,10 @@ type EffectTypeLimitation = (/**
3765
3776
  'consumption' | /**
3766
3777
  * Modules that make the machine produce more or less pollution.
3767
3778
  */
3768
- 'pollution' | 'quality') | (/**
3779
+ 'pollution' | /**
3780
+ * Modules that provide a bonus chance to increase a product's quality.
3781
+ */
3782
+ 'quality') | (/**
3769
3783
  * Modules that increase or decrease the machine's speed.
3770
3784
  */
3771
3785
  'speed' | /**
@@ -3777,11 +3791,19 @@ type EffectTypeLimitation = (/**
3777
3791
  'consumption' | /**
3778
3792
  * Modules that make the machine produce more or less pollution.
3779
3793
  */
3780
- 'pollution' | 'quality')[];
3794
+ 'pollution' | /**
3795
+ * Modules that provide a bonus chance to increase a product's quality.
3796
+ */
3797
+ 'quality')[];
3781
3798
  /**
3782
3799
  * Precision is ignored beyond two decimals - `0.567` results in `0.56` and means 56% etc. Values can range from `-327.68` to `327.67`. Numbers outside of this range will wrap around.
3800
+ *
3801
+ * Quality values are divided by 10 internally, allowing for one more decimal of precision.
3802
+ * @example ```
3803
+ {speed = 0.07} -- 7% bonus
3804
+ ```
3783
3805
  * @example ```
3784
- 0.07 -- 7% bonus
3806
+ {quality = 0.25} -- 2.5% bonus
3785
3807
  ```
3786
3808
  */
3787
3809
  type EffectValue = float;
@@ -4499,6 +4521,14 @@ interface FluidBox {
4499
4521
  ```
4500
4522
  */
4501
4523
  minimum_temperature?: float;
4524
+ /**
4525
+ * Pipe picture variation used when owner machine is flipped. If no picture is loaded, pipe_picture is used instead.
4526
+ */
4527
+ mirrored_pipe_picture?: Sprite4Way;
4528
+ /**
4529
+ * Frozen pipe picture variation used when owner machine is flipped. If no picture is loaded, pipe_picture_frozen is used instead.
4530
+ */
4531
+ mirrored_pipe_picture_frozen?: Sprite4Way;
4502
4532
  /**
4503
4533
  * Connection points to connect to other fluidboxes. This is also marked as blue arrows in alt mode. Fluid may flow in or out depending on the `type` field of each connection.
4504
4534
  *
@@ -9029,7 +9059,7 @@ type Sound = {
9029
9059
  audible_distance_modifier?: double;
9030
9060
  category?: SoundType;
9031
9061
  /**
9032
- * Supported sound file formats are `.ogg` (Vorbis) and `.wav`.
9062
+ * Supported sound file formats are `.ogg` (Vorbis and Opus) and `.wav`.
9033
9063
  *
9034
9064
  * Only loaded, and mandatory if `variations` is not defined.
9035
9065
  */
@@ -11497,6 +11527,9 @@ type TriggerEffect = (/**
11497
11527
  * Loaded when the `type` is `"damage"`.
11498
11528
  */
11499
11529
  DamageTriggerEffectItem | /**
11530
+ * Loaded when the `type` is `"damage-tile"`.
11531
+ */
11532
+ DamageTileTriggerEffectItem | /**
11500
11533
  * Loaded when the `type` is `"create-entity"`.
11501
11534
  */
11502
11535
  CreateEntityTriggerEffectItem | /**
@@ -11563,6 +11596,9 @@ ActivateImpactTriggerEffectItem) | (/**
11563
11596
  * Loaded when the `type` is `"damage"`.
11564
11597
  */
11565
11598
  DamageTriggerEffectItem | /**
11599
+ * Loaded when the `type` is `"damage-tile"`.
11600
+ */
11601
+ DamageTileTriggerEffectItem | /**
11566
11602
  * Loaded when the `type` is `"create-entity"`.
11567
11603
  */
11568
11604
  CreateEntityTriggerEffectItem | /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "factorio-types",
3
- "version": "1.2.16",
3
+ "version": "1.2.17",
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.23",
26
+ "factorioVersion": "2.0.26",
27
27
  "dependencies": {
28
28
  "lua-types": "^2.13.1"
29
29
  },