typed-factorio 0.19.0 → 0.20.0
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/Changelog.md +14 -8
- package/README.md +19 -14
- package/custom-index-template.d.ts +22 -0
- package/generated/classes.d.ts +241 -220
- package/generated/concepts.d.ts +9 -6
- package/generated/events.d.ts +137 -139
- package/generated/index-types.d.ts +49 -0
- package/package.json +2 -5
- package/runtime/index.d.ts +9 -1
- package/runtime/pairs.d.ts +4 -8
- package/strict-index-types.d.ts +3 -0
- package/generated/index.d.ts +0 -9
    
        package/generated/classes.d.ts
    CHANGED
    
    | @@ -300,7 +300,7 @@ interface LuaBootstrap { | |
| 300 300 | 
             
               * @returns The registration number. It is used to identify the entity in the {@link OnEntityDestroyedEvent on_entity_destroyed} event.
         | 
| 301 301 | 
             
               * @remarks Depending on when a given entity is destroyed, {@link OnEntityDestroyedEvent on_entity_destroyed} will either be fired at the end of the current tick or at the end of the next tick.
         | 
| 302 302 | 
             
               */
         | 
| 303 | 
            -
              register_on_entity_destroyed(entity: LuaEntity):  | 
| 303 | 
            +
              register_on_entity_destroyed(entity: LuaEntity): RegistrationNumber
         | 
| 304 304 | 
             
              /**
         | 
| 305 305 | 
             
               * Generate a new, unique event ID that can be used to raise custom events with {@link LuaBootstrap#raise_event LuaBootstrap::raise_event}.
         | 
| 306 306 | 
             
               *
         | 
| @@ -392,7 +392,7 @@ interface LuaBootstrap { | |
| 392 392 | 
             
                /**
         | 
| 393 393 | 
             
                 * The player doing the chatting.
         | 
| 394 394 | 
             
                 */
         | 
| 395 | 
            -
                readonly player_index:  | 
| 395 | 
            +
                readonly player_index: PlayerIndex
         | 
| 396 396 | 
             
                /**
         | 
| 397 397 | 
             
                 * The chat message to send.
         | 
| 398 398 | 
             
                 */
         | 
| @@ -413,7 +413,7 @@ interface LuaBootstrap { | |
| 413 413 | 
             
                /**
         | 
| 414 414 | 
             
                 * The player doing the crafting.
         | 
| 415 415 | 
             
                 */
         | 
| 416 | 
            -
                readonly player_index:  | 
| 416 | 
            +
                readonly player_index: PlayerIndex
         | 
| 417 417 | 
             
                /**
         | 
| 418 418 | 
             
                 * The recipe used to craft this item.
         | 
| 419 419 | 
             
                 */
         | 
| @@ -430,7 +430,7 @@ interface LuaBootstrap { | |
| 430 430 | 
             
                /**
         | 
| 431 431 | 
             
                 * The player transferred from or to.
         | 
| 432 432 | 
             
                 */
         | 
| 433 | 
            -
                readonly player_index:  | 
| 433 | 
            +
                readonly player_index: PlayerIndex
         | 
| 434 434 | 
             
                /**
         | 
| 435 435 | 
             
                 * The entity transferred from or to.
         | 
| 436 436 | 
             
                 */
         | 
| @@ -464,7 +464,7 @@ interface LuaBootstrap { | |
| 464 464 | 
             
                /**
         | 
| 465 465 | 
             
                 * The player who did the purchasing.
         | 
| 466 466 | 
             
                 */
         | 
| 467 | 
            -
                readonly player_index:  | 
| 467 | 
            +
                readonly player_index: PlayerIndex
         | 
| 468 468 | 
             
                /**
         | 
| 469 469 | 
             
                 * The market entity.
         | 
| 470 470 | 
             
                 */
         | 
| @@ -532,7 +532,7 @@ interface LuaBootstrap { | |
| 532 532 | 
             
                /**
         | 
| 533 533 | 
             
                 * The surface whose tiles have been changed.
         | 
| 534 534 | 
             
                 */
         | 
| 535 | 
            -
                readonly surface_index:  | 
| 535 | 
            +
                readonly surface_index: SurfaceIndex
         | 
| 536 536 | 
             
                /**
         | 
| 537 537 | 
             
                 * The tiles that have been changed.
         | 
| 538 538 | 
             
                 */
         | 
| @@ -725,7 +725,8 @@ interface LuaBurnerPrototype { | |
| 725 725 | 
             
             * {@link https://lua-api.factorio.com/latest/LuaChunkIterator.html View documentation}
         | 
| 726 726 | 
             
             * @noSelf
         | 
| 727 727 | 
             
             * @example
         | 
| 728 | 
            -
             | 
| 728 | 
            +
             *
         | 
| 729 | 
            +
             * ```
         | 
| 729 730 | 
             
             * for chunk in some_surface.get_chunks() do
         | 
| 730 731 | 
             
             *   game.player.print("x: " .. chunk.x .. ", y: " .. chunk.y)
         | 
| 731 732 | 
             
             *   game.player.print("area: " .. serpent.line(chunk.area))
         | 
| @@ -1170,7 +1171,7 @@ interface LuaControl { | |
| 1170 1171 | 
             
               *
         | 
| 1171 1172 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.is_flashlight_enabled View documentation}
         | 
| 1172 1173 | 
             
               */
         | 
| 1173 | 
            -
              is_flashlight_enabled():  | 
| 1174 | 
            +
              is_flashlight_enabled(): boolean
         | 
| 1174 1175 | 
             
              /**
         | 
| 1175 1176 | 
             
               * Gets the count of the given recipe that can be crafted.
         | 
| 1176 1177 | 
             
               *
         | 
| @@ -1529,14 +1530,15 @@ interface LuaControl { | |
| 1529 1530 | 
             
                readonly position: MapPosition
         | 
| 1530 1531 | 
             
              })
         | 
| 1531 1532 | 
             
              /**
         | 
| 1532 | 
            -
             | 
| 1533 | 
            -
             | 
| 1534 | 
            -
             | 
| 1535 | 
            -
             | 
| 1536 | 
            -
             | 
| 1537 | 
            -
             | 
| 1538 | 
            -
             | 
| 1539 | 
            -
             | 
| 1533 | 
            +
               * The player's cursor stack, or `nil` if the player controller is a spectator. Even though this property is marked as read-only, it returns a {@link LuaItemStack}, meaning it can be manipulated like so:
         | 
| 1534 | 
            +
               *
         | 
| 1535 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.cursor_stack View documentation}
         | 
| 1536 | 
            +
               * @example
         | 
| 1537 | 
            +
               *
         | 
| 1538 | 
            +
               * ```
         | 
| 1539 | 
            +
               * player.cursor_stack.clear()
         | 
| 1540 | 
            +
               * ```
         | 
| 1541 | 
            +
               */
         | 
| 1540 1542 | 
             
              readonly cursor_stack: LuaItemStack | undefined
         | 
| 1541 1543 | 
             
              /**
         | 
| 1542 1544 | 
             
               * The ghost prototype in the player's cursor.
         | 
| @@ -1936,7 +1938,7 @@ interface LuaCustomInputPrototype { | |
| 1936 1938 | 
             
              help(): string
         | 
| 1937 1939 | 
             
            }
         | 
| 1938 1940 |  | 
| 1939 | 
            -
            type  | 
| 1941 | 
            +
            type CustomTableIndexer<K extends string | number, V>
         | 
| 1940 1942 | 
             
            /**
         | 
| 1941 1943 | 
             
             * Access an element of this custom table.
         | 
| 1942 1944 | 
             
             *
         | 
| @@ -1997,8 +1999,13 @@ interface LuaCustomTableMembers { | |
| 1997 1999 | 
             
             * ```
         | 
| 1998 2000 | 
             
             */
         | 
| 1999 2001 | 
             
            type LuaCustomTable<K extends string | number, V> = LuaCustomTableMembers &
         | 
| 2000 | 
            -
               | 
| 2001 | 
            -
              LuaPairsIterable< | 
| 2002 | 
            +
              CustomTableIndexer<K, V> &
         | 
| 2003 | 
            +
              LuaPairsIterable<
         | 
| 2004 | 
            +
                // this convoluted expression gives a number type if K includes a number, even if it includes a string, and K otherwise.
         | 
| 2005 | 
            +
                // it also preserves number branding
         | 
| 2006 | 
            +
                [number] extends [K extends number & IndexBrand<infer A> ? number : K] ? (K extends string ? never : K) : K,
         | 
| 2007 | 
            +
                V
         | 
| 2008 | 
            +
              >
         | 
| 2002 2009 |  | 
| 2003 2010 | 
             
            /**
         | 
| 2004 2011 | 
             
             * Prototype of a damage.
         | 
| @@ -2465,13 +2472,13 @@ interface LuaEntity extends LuaControl { | |
| 2465 2472 | 
             
               */
         | 
| 2466 2473 | 
             
              clear_request_slot(slot: uint): void
         | 
| 2467 2474 | 
             
              /**
         | 
| 2468 | 
            -
               * Returns whether a craft is currently in process. It does not indicate whether progress is currently being made, but whether  | 
| 2475 | 
            +
               * Returns whether a craft is currently in process. It does not indicate whether progress is currently being made, but whether a crafting process has been started in this machine.
         | 
| 2469 2476 | 
             
               *
         | 
| 2470 2477 | 
             
               * _Can only be used if this is CraftingMachine_
         | 
| 2471 2478 | 
             
               *
         | 
| 2472 2479 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.is_crafting View documentation}
         | 
| 2473 2480 | 
             
               */
         | 
| 2474 | 
            -
              is_crafting():  | 
| 2481 | 
            +
              is_crafting(): boolean
         | 
| 2475 2482 | 
             
              /**
         | 
| 2476 2483 | 
             
               * _Can only be used if this is Gate_
         | 
| 2477 2484 | 
             
               *
         | 
| @@ -3487,15 +3494,16 @@ interface LuaEntity extends LuaControl { | |
| 3487 3494 | 
             
               */
         | 
| 3488 3495 | 
             
              selected_gun_index: uint | undefined
         | 
| 3489 3496 | 
             
              /**
         | 
| 3490 | 
            -
             | 
| 3491 | 
            -
             | 
| 3492 | 
            -
             | 
| 3493 | 
            -
             | 
| 3494 | 
            -
             | 
| 3495 | 
            -
             | 
| 3496 | 
            -
             | 
| 3497 | 
            -
             | 
| 3498 | 
            -
             | 
| 3497 | 
            +
               * Energy stored in the entity (heat in furnace, energy stored in electrical devices etc.). always 0 for entities that don't have the concept of energy stored inside.
         | 
| 3498 | 
            +
               *
         | 
| 3499 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.energy View documentation}
         | 
| 3500 | 
            +
               * @example
         | 
| 3501 | 
            +
               *
         | 
| 3502 | 
            +
               * ```
         | 
| 3503 | 
            +
               * game.player.print("Machine energy: " .. game.player.selected.energy .. "J")
         | 
| 3504 | 
            +
               * game.player.selected.energy = 3000
         | 
| 3505 | 
            +
               * ```
         | 
| 3506 | 
            +
               */
         | 
| 3499 3507 | 
             
              energy: double
         | 
| 3500 3508 | 
             
              /**
         | 
| 3501 3509 | 
             
               * The temperature of this entities heat energy source if this entity uses a heat energy source or `nil`.
         | 
| @@ -3790,7 +3798,7 @@ interface LuaEntity extends LuaControl { | |
| 3790 3798 | 
             
               *
         | 
| 3791 3799 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.unit_number View documentation}
         | 
| 3792 3800 | 
             
               */
         | 
| 3793 | 
            -
              readonly unit_number:  | 
| 3801 | 
            +
              readonly unit_number: UnitNumber | undefined
         | 
| 3794 3802 | 
             
              /**
         | 
| 3795 3803 | 
             
               * The {@link LuaEntity#unit_number unit_number} of the entity contained in this ghost. It is the same as the unit number of the {@link https://wiki.factorio.com/Prototype/EntityWithOwner EntityWithOwner} that was destroyed to create this ghost. If it was created by other means, or if the inner entity doesn not support unit numbers, this property is `nil`.
         | 
| 3796 3804 | 
             
               *
         | 
| @@ -3798,7 +3806,7 @@ interface LuaEntity extends LuaControl { | |
| 3798 3806 | 
             
               *
         | 
| 3799 3807 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.ghost_unit_number View documentation}
         | 
| 3800 3808 | 
             
               */
         | 
| 3801 | 
            -
              readonly ghost_unit_number:  | 
| 3809 | 
            +
              readonly ghost_unit_number: UnitNumber | undefined
         | 
| 3802 3810 | 
             
              /**
         | 
| 3803 3811 | 
             
               * The mining progress for this mining drill or `nil` if this isn't a mining drill. Is a number in range [0, mining_target.prototype.mineable_properties.mining_time]
         | 
| 3804 3812 | 
             
               *
         | 
| @@ -5200,15 +5208,16 @@ interface BaseEntity extends LuaControl { | |
| 5200 5208 | 
             
               */
         | 
| 5201 5209 | 
             
              drop_target: LuaEntity | undefined
         | 
| 5202 5210 | 
             
              /**
         | 
| 5203 | 
            -
             | 
| 5204 | 
            -
             | 
| 5205 | 
            -
             | 
| 5206 | 
            -
             | 
| 5207 | 
            -
             | 
| 5208 | 
            -
             | 
| 5209 | 
            -
             | 
| 5210 | 
            -
             | 
| 5211 | 
            -
             | 
| 5211 | 
            +
               * Energy stored in the entity (heat in furnace, energy stored in electrical devices etc.). always 0 for entities that don't have the concept of energy stored inside.
         | 
| 5212 | 
            +
               *
         | 
| 5213 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.energy View documentation}
         | 
| 5214 | 
            +
               * @example
         | 
| 5215 | 
            +
               *
         | 
| 5216 | 
            +
               * ```
         | 
| 5217 | 
            +
               * game.player.print("Machine energy: " .. game.player.selected.energy .. "J")
         | 
| 5218 | 
            +
               * game.player.selected.energy = 3000
         | 
| 5219 | 
            +
               * ```
         | 
| 5220 | 
            +
               */
         | 
| 5212 5221 | 
             
              energy: double
         | 
| 5213 5222 | 
             
              /**
         | 
| 5214 5223 | 
             
               * The temperature of this entities heat energy source if this entity uses a heat energy source or `nil`.
         | 
| @@ -5351,7 +5360,7 @@ interface BaseEntity extends LuaControl { | |
| 5351 5360 | 
             
               *
         | 
| 5352 5361 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.unit_number View documentation}
         | 
| 5353 5362 | 
             
               */
         | 
| 5354 | 
            -
              readonly unit_number:  | 
| 5363 | 
            +
              readonly unit_number: UnitNumber | undefined
         | 
| 5355 5364 | 
             
              /**
         | 
| 5356 5365 | 
             
               * The mining progress for this mining drill or `nil` if this isn't a mining drill. Is a number in range [0, mining_target.prototype.mineable_properties.mining_time]
         | 
| 5357 5366 | 
             
               *
         | 
| @@ -5768,7 +5777,7 @@ interface EntityGhostEntity extends BaseEntity { | |
| 5768 5777 | 
             
               *
         | 
| 5769 5778 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.ghost_unit_number View documentation}
         | 
| 5770 5779 | 
             
               */
         | 
| 5771 | 
            -
              readonly ghost_unit_number:  | 
| 5780 | 
            +
              readonly ghost_unit_number: UnitNumber | undefined
         | 
| 5772 5781 | 
             
            }
         | 
| 5773 5782 |  | 
| 5774 5783 | 
             
            /**
         | 
| @@ -5827,13 +5836,13 @@ interface MarketEntity extends BaseEntity { | |
| 5827 5836 | 
             
             */
         | 
| 5828 5837 | 
             
            interface CraftingMachineEntity extends BaseEntity {
         | 
| 5829 5838 | 
             
              /**
         | 
| 5830 | 
            -
               * Returns whether a craft is currently in process. It does not indicate whether progress is currently being made, but whether  | 
| 5839 | 
            +
               * Returns whether a craft is currently in process. It does not indicate whether progress is currently being made, but whether a crafting process has been started in this machine.
         | 
| 5831 5840 | 
             
               *
         | 
| 5832 5841 | 
             
               * _Can only be used if this is CraftingMachine_
         | 
| 5833 5842 | 
             
               *
         | 
| 5834 5843 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.is_crafting View documentation}
         | 
| 5835 5844 | 
             
               */
         | 
| 5836 | 
            -
              is_crafting():  | 
| 5845 | 
            +
              is_crafting(): boolean
         | 
| 5837 5846 | 
             
              /**
         | 
| 5838 5847 | 
             
               * Current recipe being assembled by this machine or `nil` if no recipe is set.
         | 
| 5839 5848 | 
             
               *
         | 
| @@ -11950,7 +11959,7 @@ interface LuaGameScript { | |
| 11950 11959 | 
             
               * @param player The player index or name.
         | 
| 11951 11960 | 
             
               * @remarks This is a shortcut for game.players[...]
         | 
| 11952 11961 | 
             
               */
         | 
| 11953 | 
            -
              get_player( | 
| 11962 | 
            +
              get_player(index: PlayerIndex | string): LuaPlayer | undefined
         | 
| 11954 11963 | 
             
              /**
         | 
| 11955 11964 | 
             
               * Gets the given surface or returns `nil` if no surface is found.
         | 
| 11956 11965 | 
             
               *
         | 
| @@ -11958,7 +11967,7 @@ interface LuaGameScript { | |
| 11958 11967 | 
             
               * @param surface The surface index or name.
         | 
| 11959 11968 | 
             
               * @remarks This is a shortcut for game.surfaces[...]
         | 
| 11960 11969 | 
             
               */
         | 
| 11961 | 
            -
              get_surface( | 
| 11970 | 
            +
              get_surface(index: SurfaceIndex | string): LuaSurface | undefined
         | 
| 11962 11971 | 
             
              /**
         | 
| 11963 11972 | 
             
               * Creates a {@link LuaProfiler}, which is used for measuring script performance.
         | 
| 11964 11973 | 
             
               *
         | 
| @@ -12151,7 +12160,7 @@ interface LuaGameScript { | |
| 12151 12160 | 
             
               *
         | 
| 12152 12161 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGameScript.html#LuaGameScript.players View documentation}
         | 
| 12153 12162 | 
             
               */
         | 
| 12154 | 
            -
              readonly players: LuaCustomTable< | 
| 12163 | 
            +
              readonly players: LuaCustomTable<PlayerIndex | string, LuaPlayer>
         | 
| 12155 12164 | 
             
              /**
         | 
| 12156 12165 | 
             
               * The currently active set of map settings. Even though this property is marked as read-only, the members of the dictionary that is returned can be modified mid-game.
         | 
| 12157 12166 | 
             
               *
         | 
| @@ -12418,7 +12427,7 @@ interface LuaGameScript { | |
| 12418 12427 | 
             
               *
         | 
| 12419 12428 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGameScript.html#LuaGameScript.surfaces View documentation}
         | 
| 12420 12429 | 
             
               */
         | 
| 12421 | 
            -
              readonly surfaces: LuaCustomTable< | 
| 12430 | 
            +
              readonly surfaces: LuaCustomTable<SurfaceIndex | string, LuaSurface>
         | 
| 12422 12431 | 
             
              /**
         | 
| 12423 12432 | 
             
               * The active mods versions. The keys are mod names, the values are the versions.
         | 
| 12424 12433 | 
             
               *
         | 
| @@ -12962,7 +12971,7 @@ interface CameraGuiSpec extends BaseGuiSpec { | |
| 12962 12971 | 
             
              /**
         | 
| 12963 12972 | 
             
               * The surface that the camera will render. Defaults to the player's current surface.
         | 
| 12964 12973 | 
             
               */
         | 
| 12965 | 
            -
              readonly surface_index?:  | 
| 12974 | 
            +
              readonly surface_index?: SurfaceIndex
         | 
| 12966 12975 | 
             
              /**
         | 
| 12967 12976 | 
             
               * The initial camera zoom. Defaults to `0.75`.
         | 
| 12968 12977 | 
             
               */
         | 
| @@ -13132,7 +13141,7 @@ interface MinimapGuiSpec extends BaseGuiSpec { | |
| 13132 13141 | 
             
              /**
         | 
| 13133 13142 | 
             
               * The surface the camera will render. Defaults to the player's current surface.
         | 
| 13134 13143 | 
             
               */
         | 
| 13135 | 
            -
              readonly surface_index?:  | 
| 13144 | 
            +
              readonly surface_index?: SurfaceIndex
         | 
| 13136 13145 | 
             
              /**
         | 
| 13137 13146 | 
             
               * The player index the map should use. Defaults to the current player.
         | 
| 13138 13147 | 
             
               */
         | 
| @@ -13214,7 +13223,7 @@ type GuiSpec = | |
| 13214 13223 | 
             
              | TabbedPaneGuiSpec
         | 
| 13215 13224 | 
             
              | LabelGuiSpec
         | 
| 13216 13225 |  | 
| 13217 | 
            -
            interface  | 
| 13226 | 
            +
            interface GuiElementIndexer {
         | 
| 13218 13227 | 
             
              /**
         | 
| 13219 13228 | 
             
               * The indexing operator. Gets children by name.
         | 
| 13220 13229 | 
             
               *
         | 
| @@ -13246,25 +13255,27 @@ interface BaseGuiElement { | |
| 13246 13255 | 
             
                }
         | 
| 13247 13256 | 
             
              >
         | 
| 13248 13257 | 
             
              /**
         | 
| 13249 | 
            -
             | 
| 13250 | 
            -
             | 
| 13251 | 
            -
             | 
| 13252 | 
            -
             | 
| 13253 | 
            -
             | 
| 13254 | 
            -
             | 
| 13255 | 
            -
             | 
| 13256 | 
            -
             | 
| 13258 | 
            +
               * Remove children of this element. Any {@link LuaGuiElement} objects referring to the destroyed elements become invalid after this operation.
         | 
| 13259 | 
            +
               *
         | 
| 13260 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.clear View documentation}
         | 
| 13261 | 
            +
               * @example
         | 
| 13262 | 
            +
               *
         | 
| 13263 | 
            +
               * ```
         | 
| 13264 | 
            +
               * game.player.gui.top.clear()
         | 
| 13265 | 
            +
               * ```
         | 
| 13266 | 
            +
               */
         | 
| 13257 13267 | 
             
              clear(): void
         | 
| 13258 13268 | 
             
              /**
         | 
| 13259 | 
            -
             | 
| 13260 | 
            -
             | 
| 13261 | 
            -
             | 
| 13262 | 
            -
             | 
| 13263 | 
            -
             | 
| 13264 | 
            -
             | 
| 13265 | 
            -
             | 
| 13266 | 
            -
             | 
| 13267 | 
            -
             | 
| 13269 | 
            +
               * Remove this element, along with its children. Any {@link LuaGuiElement} objects referring to the destroyed elements become invalid after this operation.
         | 
| 13270 | 
            +
               *
         | 
| 13271 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.destroy View documentation}
         | 
| 13272 | 
            +
               * @remarks The top-level GUI elements - {@link LuaGui#top LuaGui::top}, {@link LuaGui#left LuaGui::left}, {@link LuaGui#center LuaGui::center} and {@link LuaGui#screen LuaGui::screen} - can't be destroyed.
         | 
| 13273 | 
            +
               * @example
         | 
| 13274 | 
            +
               *
         | 
| 13275 | 
            +
               * ```
         | 
| 13276 | 
            +
               * game.player.gui.top.greeting.destroy()
         | 
| 13277 | 
            +
               * ```
         | 
| 13278 | 
            +
               */
         | 
| 13268 13279 | 
             
              destroy(): void
         | 
| 13269 13280 | 
             
              /**
         | 
| 13270 13281 | 
             
               * The mod that owns this Gui element or `nil` if it's owned by the scenario script.
         | 
| @@ -13306,7 +13317,7 @@ interface BaseGuiElement { | |
| 13306 13317 | 
             
               *
         | 
| 13307 13318 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.index View documentation}
         | 
| 13308 13319 | 
             
               */
         | 
| 13309 | 
            -
              readonly index:  | 
| 13320 | 
            +
              readonly index: GuiElementIndex
         | 
| 13310 13321 | 
             
              /**
         | 
| 13311 13322 | 
             
               * The GUI this element is a child of.
         | 
| 13312 13323 | 
             
               *
         | 
| @@ -13320,14 +13331,15 @@ interface BaseGuiElement { | |
| 13320 13331 | 
             
               */
         | 
| 13321 13332 | 
             
              readonly parent: LuaGuiElement | undefined
         | 
| 13322 13333 | 
             
              /**
         | 
| 13323 | 
            -
             | 
| 13324 | 
            -
             | 
| 13325 | 
            -
             | 
| 13326 | 
            -
             | 
| 13327 | 
            -
             | 
| 13328 | 
            -
             | 
| 13329 | 
            -
             | 
| 13330 | 
            -
             | 
| 13334 | 
            +
               * The name of this element.
         | 
| 13335 | 
            +
               *
         | 
| 13336 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.name View documentation}
         | 
| 13337 | 
            +
               * @example
         | 
| 13338 | 
            +
               *
         | 
| 13339 | 
            +
               * ```
         | 
| 13340 | 
            +
               * game.player.gui.top.greeting.name == "greeting"
         | 
| 13341 | 
            +
               * ```
         | 
| 13342 | 
            +
               */
         | 
| 13331 13343 | 
             
              name: string
         | 
| 13332 13344 | 
             
              /**
         | 
| 13333 13345 | 
             
               * The text displayed on this element. For frames, this is the "heading". For other elements, like buttons or labels, this is the content.
         | 
| @@ -13360,7 +13372,7 @@ interface BaseGuiElement { | |
| 13360 13372 | 
             
               *
         | 
| 13361 13373 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.player_index View documentation}
         | 
| 13362 13374 | 
             
               */
         | 
| 13363 | 
            -
              readonly player_index:  | 
| 13375 | 
            +
              readonly player_index: PlayerIndex
         | 
| 13364 13376 | 
             
              tooltip: LocalisedString
         | 
| 13365 13377 | 
             
              /**
         | 
| 13366 13378 | 
             
               * The type of this GUI element.
         | 
| @@ -13490,7 +13502,7 @@ interface ChooseElemButtonGuiElementMembers extends BaseGuiElement { | |
| 13490 13502 | 
             
              locked: boolean
         | 
| 13491 13503 | 
             
            }
         | 
| 13492 13504 |  | 
| 13493 | 
            -
            type ChooseElemButtonGuiElement = ChooseElemButtonGuiElementMembers &  | 
| 13505 | 
            +
            type ChooseElemButtonGuiElement = ChooseElemButtonGuiElementMembers & GuiElementIndexer
         | 
| 13494 13506 |  | 
| 13495 13507 | 
             
            /**
         | 
| 13496 13508 | 
             
             * @noSelf
         | 
| @@ -13552,7 +13564,7 @@ interface DropDownGuiElementMembers extends BaseGuiElement { | |
| 13552 13564 | 
             
              selected_index: uint
         | 
| 13553 13565 | 
             
            }
         | 
| 13554 13566 |  | 
| 13555 | 
            -
            type DropDownGuiElement = DropDownGuiElementMembers &  | 
| 13567 | 
            +
            type DropDownGuiElement = DropDownGuiElementMembers & GuiElementIndexer
         | 
| 13556 13568 |  | 
| 13557 13569 | 
             
            interface EmptyWidgetGuiElementMembers extends BaseGuiElement {
         | 
| 13558 13570 | 
             
              /**
         | 
| @@ -13580,7 +13592,7 @@ interface EmptyWidgetGuiElementMembers extends BaseGuiElement { | |
| 13580 13592 | 
             
              drag_target: LuaGuiElement | undefined
         | 
| 13581 13593 | 
             
            }
         | 
| 13582 13594 |  | 
| 13583 | 
            -
            type EmptyWidgetGuiElement = EmptyWidgetGuiElementMembers &  | 
| 13595 | 
            +
            type EmptyWidgetGuiElement = EmptyWidgetGuiElementMembers & GuiElementIndexer
         | 
| 13584 13596 |  | 
| 13585 13597 | 
             
            interface EntityPreviewGuiElementMembers extends BaseGuiElement {
         | 
| 13586 13598 | 
             
              /**
         | 
| @@ -13597,7 +13609,7 @@ interface EntityPreviewGuiElementMembers extends BaseGuiElement { | |
| 13597 13609 | 
             
              entity: LuaEntity | undefined
         | 
| 13598 13610 | 
             
            }
         | 
| 13599 13611 |  | 
| 13600 | 
            -
            type EntityPreviewGuiElement = EntityPreviewGuiElementMembers &  | 
| 13612 | 
            +
            type EntityPreviewGuiElement = EntityPreviewGuiElementMembers & GuiElementIndexer
         | 
| 13601 13613 |  | 
| 13602 13614 | 
             
            /**
         | 
| 13603 13615 | 
             
             * @noSelf
         | 
| @@ -13669,7 +13681,7 @@ interface ListBoxGuiElementMembers extends BaseGuiElement { | |
| 13669 13681 | 
             
              selected_index: uint
         | 
| 13670 13682 | 
             
            }
         | 
| 13671 13683 |  | 
| 13672 | 
            -
            type ListBoxGuiElement = ListBoxGuiElementMembers &  | 
| 13684 | 
            +
            type ListBoxGuiElement = ListBoxGuiElementMembers & GuiElementIndexer
         | 
| 13673 13685 |  | 
| 13674 13686 | 
             
            /**
         | 
| 13675 13687 | 
             
             * @noSelf
         | 
| @@ -13741,7 +13753,7 @@ interface ScrollPaneGuiElementMembers extends BaseGuiElement { | |
| 13741 13753 | 
             
              vertical_scroll_policy: "auto" | "never" | "always" | "auto-and-reserve-space" | "dont-show-but-allow-scrolling"
         | 
| 13742 13754 | 
             
            }
         | 
| 13743 13755 |  | 
| 13744 | 
            -
            type ScrollPaneGuiElement = ScrollPaneGuiElementMembers &  | 
| 13756 | 
            +
            type ScrollPaneGuiElement = ScrollPaneGuiElementMembers & GuiElementIndexer
         | 
| 13745 13757 |  | 
| 13746 13758 | 
             
            interface SpriteButtonGuiElementMembers extends BaseGuiElement {
         | 
| 13747 13759 | 
             
              /**
         | 
| @@ -13791,7 +13803,7 @@ interface SpriteButtonGuiElementMembers extends BaseGuiElement { | |
| 13791 13803 | 
             
              set mouse_button_filter(value: MouseButtonFlags)
         | 
| 13792 13804 | 
             
            }
         | 
| 13793 13805 |  | 
| 13794 | 
            -
            type SpriteButtonGuiElement = SpriteButtonGuiElementMembers &  | 
| 13806 | 
            +
            type SpriteButtonGuiElement = SpriteButtonGuiElementMembers & GuiElementIndexer
         | 
| 13795 13807 |  | 
| 13796 13808 | 
             
            /**
         | 
| 13797 13809 | 
             
             * @noSelf
         | 
| @@ -13839,7 +13851,7 @@ interface TabbedPaneGuiElementMembers extends BaseGuiElement { | |
| 13839 13851 | 
             
              readonly tabs: TabAndContent[]
         | 
| 13840 13852 | 
             
            }
         | 
| 13841 13853 |  | 
| 13842 | 
            -
            type TabbedPaneGuiElement = TabbedPaneGuiElementMembers &  | 
| 13854 | 
            +
            type TabbedPaneGuiElement = TabbedPaneGuiElementMembers & GuiElementIndexer
         | 
| 13843 13855 |  | 
| 13844 13856 | 
             
            /**
         | 
| 13845 13857 | 
             
             * @noSelf
         | 
| @@ -13953,7 +13965,7 @@ interface TextBoxGuiElementMembers extends BaseGuiElement { | |
| 13953 13965 | 
             
              clear_and_focus_on_right_click: boolean
         | 
| 13954 13966 | 
             
            }
         | 
| 13955 13967 |  | 
| 13956 | 
            -
            type TextBoxGuiElement = TextBoxGuiElementMembers &  | 
| 13968 | 
            +
            type TextBoxGuiElement = TextBoxGuiElementMembers & GuiElementIndexer
         | 
| 13957 13969 |  | 
| 13958 13970 | 
             
            interface ButtonGuiElementMembers extends BaseGuiElement {
         | 
| 13959 13971 | 
             
              /**
         | 
| @@ -13971,7 +13983,7 @@ interface ButtonGuiElementMembers extends BaseGuiElement { | |
| 13971 13983 | 
             
              set mouse_button_filter(value: MouseButtonFlags)
         | 
| 13972 13984 | 
             
            }
         | 
| 13973 13985 |  | 
| 13974 | 
            -
            type ButtonGuiElement = ButtonGuiElementMembers &  | 
| 13986 | 
            +
            type ButtonGuiElement = ButtonGuiElementMembers & GuiElementIndexer
         | 
| 13975 13987 |  | 
| 13976 13988 | 
             
            interface CameraGuiElementMembers extends BaseGuiElement {
         | 
| 13977 13989 | 
             
              /**
         | 
| @@ -13992,7 +14004,7 @@ interface CameraGuiElementMembers extends BaseGuiElement { | |
| 13992 14004 | 
             
               *
         | 
| 13993 14005 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.surface_index View documentation}
         | 
| 13994 14006 | 
             
               */
         | 
| 13995 | 
            -
              surface_index:  | 
| 14007 | 
            +
              surface_index: SurfaceIndex
         | 
| 13996 14008 | 
             
              /**
         | 
| 13997 14009 | 
             
               * The zoom this camera or minimap is using.
         | 
| 13998 14010 | 
             
               *
         | 
| @@ -14007,7 +14019,7 @@ interface CameraGuiElementMembers extends BaseGuiElement { | |
| 14007 14019 | 
             
              entity: LuaEntity | undefined
         | 
| 14008 14020 | 
             
            }
         | 
| 14009 14021 |  | 
| 14010 | 
            -
            type CameraGuiElement = CameraGuiElementMembers &  | 
| 14022 | 
            +
            type CameraGuiElement = CameraGuiElementMembers & GuiElementIndexer
         | 
| 14011 14023 |  | 
| 14012 14024 | 
             
            interface CheckboxGuiElementMembers extends BaseGuiElement {
         | 
| 14013 14025 | 
             
              /**
         | 
| @@ -14026,7 +14038,7 @@ interface CheckboxGuiElementMembers extends BaseGuiElement { | |
| 14026 14038 | 
             
              state: boolean
         | 
| 14027 14039 | 
             
            }
         | 
| 14028 14040 |  | 
| 14029 | 
            -
            type CheckboxGuiElement = CheckboxGuiElementMembers &  | 
| 14041 | 
            +
            type CheckboxGuiElement = CheckboxGuiElementMembers & GuiElementIndexer
         | 
| 14030 14042 |  | 
| 14031 14043 | 
             
            interface FlowGuiElementMembers extends BaseGuiElement {
         | 
| 14032 14044 | 
             
              /**
         | 
| @@ -14062,7 +14074,7 @@ interface FlowGuiElementMembers extends BaseGuiElement { | |
| 14062 14074 | 
             
              drag_target: LuaGuiElement | undefined
         | 
| 14063 14075 | 
             
            }
         | 
| 14064 14076 |  | 
| 14065 | 
            -
            type FlowGuiElement = FlowGuiElementMembers &  | 
| 14077 | 
            +
            type FlowGuiElement = FlowGuiElementMembers & GuiElementIndexer
         | 
| 14066 14078 |  | 
| 14067 14079 | 
             
            /**
         | 
| 14068 14080 | 
             
             * @noSelf
         | 
| @@ -14120,7 +14132,7 @@ interface FrameGuiElementMembers extends BaseGuiElement { | |
| 14120 14132 | 
             
              drag_target: LuaGuiElement | undefined
         | 
| 14121 14133 | 
             
            }
         | 
| 14122 14134 |  | 
| 14123 | 
            -
            type FrameGuiElement = FrameGuiElementMembers &  | 
| 14135 | 
            +
            type FrameGuiElement = FrameGuiElementMembers & GuiElementIndexer
         | 
| 14124 14136 |  | 
| 14125 14137 | 
             
            interface LabelGuiElementMembers extends BaseGuiElement {
         | 
| 14126 14138 | 
             
              /**
         | 
| @@ -14148,7 +14160,7 @@ interface LabelGuiElementMembers extends BaseGuiElement { | |
| 14148 14160 | 
             
              drag_target: LuaGuiElement | undefined
         | 
| 14149 14161 | 
             
            }
         | 
| 14150 14162 |  | 
| 14151 | 
            -
            type LabelGuiElement = LabelGuiElementMembers &  | 
| 14163 | 
            +
            type LabelGuiElement = LabelGuiElementMembers & GuiElementIndexer
         | 
| 14152 14164 |  | 
| 14153 14165 | 
             
            interface LineGuiElementMembers extends BaseGuiElement {
         | 
| 14154 14166 | 
             
              /**
         | 
| @@ -14167,7 +14179,7 @@ interface LineGuiElementMembers extends BaseGuiElement { | |
| 14167 14179 | 
             
              readonly direction: "horizontal" | "vertical"
         | 
| 14168 14180 | 
             
            }
         | 
| 14169 14181 |  | 
| 14170 | 
            -
            type LineGuiElement = LineGuiElementMembers &  | 
| 14182 | 
            +
            type LineGuiElement = LineGuiElementMembers & GuiElementIndexer
         | 
| 14171 14183 |  | 
| 14172 14184 | 
             
            interface MinimapGuiElementMembers extends BaseGuiElement {
         | 
| 14173 14185 | 
             
              /**
         | 
| @@ -14188,7 +14200,7 @@ interface MinimapGuiElementMembers extends BaseGuiElement { | |
| 14188 14200 | 
             
               *
         | 
| 14189 14201 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaGuiElement.html#LuaGuiElement.surface_index View documentation}
         | 
| 14190 14202 | 
             
               */
         | 
| 14191 | 
            -
              surface_index:  | 
| 14203 | 
            +
              surface_index: SurfaceIndex
         | 
| 14192 14204 | 
             
              /**
         | 
| 14193 14205 | 
             
               * The zoom this camera or minimap is using.
         | 
| 14194 14206 | 
             
               *
         | 
| @@ -14217,7 +14229,7 @@ interface MinimapGuiElementMembers extends BaseGuiElement { | |
| 14217 14229 | 
             
              entity: LuaEntity | undefined
         | 
| 14218 14230 | 
             
            }
         | 
| 14219 14231 |  | 
| 14220 | 
            -
            type MinimapGuiElement = MinimapGuiElementMembers &  | 
| 14232 | 
            +
            type MinimapGuiElement = MinimapGuiElementMembers & GuiElementIndexer
         | 
| 14221 14233 |  | 
| 14222 14234 | 
             
            interface ProgressBarGuiElementMembers extends BaseGuiElement {
         | 
| 14223 14235 | 
             
              /**
         | 
| @@ -14236,7 +14248,7 @@ interface ProgressBarGuiElementMembers extends BaseGuiElement { | |
| 14236 14248 | 
             
              value: double
         | 
| 14237 14249 | 
             
            }
         | 
| 14238 14250 |  | 
| 14239 | 
            -
            type ProgressBarGuiElement = ProgressBarGuiElementMembers &  | 
| 14251 | 
            +
            type ProgressBarGuiElement = ProgressBarGuiElementMembers & GuiElementIndexer
         | 
| 14240 14252 |  | 
| 14241 14253 | 
             
            interface RadioButtonGuiElementMembers extends BaseGuiElement {
         | 
| 14242 14254 | 
             
              /**
         | 
| @@ -14255,7 +14267,7 @@ interface RadioButtonGuiElementMembers extends BaseGuiElement { | |
| 14255 14267 | 
             
              state: boolean
         | 
| 14256 14268 | 
             
            }
         | 
| 14257 14269 |  | 
| 14258 | 
            -
            type RadioButtonGuiElement = RadioButtonGuiElementMembers &  | 
| 14270 | 
            +
            type RadioButtonGuiElement = RadioButtonGuiElementMembers & GuiElementIndexer
         | 
| 14259 14271 |  | 
| 14260 14272 | 
             
            /**
         | 
| 14261 14273 | 
             
             * @noSelf
         | 
| @@ -14333,7 +14345,7 @@ interface SliderGuiElementMembers extends BaseGuiElement { | |
| 14333 14345 | 
             
              slider_value: double
         | 
| 14334 14346 | 
             
            }
         | 
| 14335 14347 |  | 
| 14336 | 
            -
            type SliderGuiElement = SliderGuiElementMembers &  | 
| 14348 | 
            +
            type SliderGuiElement = SliderGuiElementMembers & GuiElementIndexer
         | 
| 14337 14349 |  | 
| 14338 14350 | 
             
            interface SpriteGuiElementMembers extends BaseGuiElement {
         | 
| 14339 14351 | 
             
              /**
         | 
| @@ -14356,7 +14368,7 @@ interface SpriteGuiElementMembers extends BaseGuiElement { | |
| 14356 14368 | 
             
              resize_to_sprite: boolean
         | 
| 14357 14369 | 
             
            }
         | 
| 14358 14370 |  | 
| 14359 | 
            -
            type SpriteGuiElement = SpriteGuiElementMembers &  | 
| 14371 | 
            +
            type SpriteGuiElement = SpriteGuiElementMembers & GuiElementIndexer
         | 
| 14360 14372 |  | 
| 14361 14373 | 
             
            interface SwitchGuiElementMembers extends BaseGuiElement {
         | 
| 14362 14374 | 
             
              /**
         | 
| @@ -14417,7 +14429,7 @@ interface SwitchGuiElementMembers extends BaseGuiElement { | |
| 14417 14429 | 
             
              right_label_tooltip: LocalisedString
         | 
| 14418 14430 | 
             
            }
         | 
| 14419 14431 |  | 
| 14420 | 
            -
            type SwitchGuiElement = SwitchGuiElementMembers &  | 
| 14432 | 
            +
            type SwitchGuiElement = SwitchGuiElementMembers & GuiElementIndexer
         | 
| 14421 14433 |  | 
| 14422 14434 | 
             
            interface TabGuiElementMembers extends BaseGuiElement {
         | 
| 14423 14435 | 
             
              /**
         | 
| @@ -14436,7 +14448,7 @@ interface TabGuiElementMembers extends BaseGuiElement { | |
| 14436 14448 | 
             
              badge_text: LocalisedString
         | 
| 14437 14449 | 
             
            }
         | 
| 14438 14450 |  | 
| 14439 | 
            -
            type TabGuiElement = TabGuiElementMembers &  | 
| 14451 | 
            +
            type TabGuiElement = TabGuiElementMembers & GuiElementIndexer
         | 
| 14440 14452 |  | 
| 14441 14453 | 
             
            interface TableGuiElementMembers extends BaseGuiElement {
         | 
| 14442 14454 | 
             
              /**
         | 
| @@ -14504,7 +14516,7 @@ interface TableGuiElementMembers extends BaseGuiElement { | |
| 14504 14516 | 
             
              drag_target: LuaGuiElement | undefined
         | 
| 14505 14517 | 
             
            }
         | 
| 14506 14518 |  | 
| 14507 | 
            -
            type TableGuiElement = TableGuiElementMembers &  | 
| 14519 | 
            +
            type TableGuiElement = TableGuiElementMembers & GuiElementIndexer
         | 
| 14508 14520 |  | 
| 14509 14521 | 
             
            /**
         | 
| 14510 14522 | 
             
             * @noSelf
         | 
| @@ -14602,7 +14614,7 @@ interface TextFieldGuiElementMembers extends BaseGuiElement { | |
| 14602 14614 | 
             
              clear_and_focus_on_right_click: boolean
         | 
| 14603 14615 | 
             
            }
         | 
| 14604 14616 |  | 
| 14605 | 
            -
            type TextFieldGuiElement = TextFieldGuiElementMembers &  | 
| 14617 | 
            +
            type TextFieldGuiElement = TextFieldGuiElementMembers & GuiElementIndexer
         | 
| 14606 14618 |  | 
| 14607 14619 | 
             
            type GuiElementMembers =
         | 
| 14608 14620 | 
             
              | ChooseElemButtonGuiElementMembers
         | 
| @@ -14684,7 +14696,7 @@ type GuiElementMembers = | |
| 14684 14696 | 
             
             * tabbed_pane.add_tab(tab2, label2)
         | 
| 14685 14697 | 
             
             * ```
         | 
| 14686 14698 | 
             
             */
         | 
| 14687 | 
            -
            type LuaGuiElement = GuiElementMembers &  | 
| 14699 | 
            +
            type LuaGuiElement = GuiElementMembers & GuiElementIndexer
         | 
| 14688 14700 |  | 
| 14689 14701 | 
             
            /**
         | 
| 14690 14702 | 
             
             * Prototype of a heat energy source.
         | 
| @@ -15017,7 +15029,8 @@ interface LuaInventory extends ReadonlyArray<LuaItemStack> { | |
| 15017 15029 | 
             
             * {@link https://lua-api.factorio.com/latest/LuaItemPrototype.html View documentation}
         | 
| 15018 15030 | 
             
             * @noSelf
         | 
| 15019 15031 | 
             
             * @example
         | 
| 15020 | 
            -
             | 
| 15032 | 
            +
             *
         | 
| 15033 | 
            +
             * ```
         | 
| 15021 15034 | 
             
             * game.item_prototypes["iron-plate"]
         | 
| 15022 15035 | 
             
             * ```
         | 
| 15023 15036 | 
             
             */
         | 
| @@ -19301,7 +19314,7 @@ interface LuaPlayer extends LuaControl { | |
| 19301 19314 | 
             
               *
         | 
| 19302 19315 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaPlayer.html#LuaPlayer.index View documentation}
         | 
| 19303 19316 | 
             
               */
         | 
| 19304 | 
            -
              readonly index:  | 
| 19317 | 
            +
              readonly index: PlayerIndex
         | 
| 19305 19318 | 
             
              readonly gui: LuaGui
         | 
| 19306 19319 | 
             
              /**
         | 
| 19307 19320 | 
             
               * `true` if the player opened itself. I.e. if they opened the character or god-controller GUI.
         | 
| @@ -21896,14 +21909,15 @@ interface LuaStyle { | |
| 21896 21909 | 
             
              get color(): ColorTable
         | 
| 21897 21910 | 
             
              set color(value: Color)
         | 
| 21898 21911 | 
             
              /**
         | 
| 21899 | 
            -
             | 
| 21900 | 
            -
             | 
| 21901 | 
            -
             | 
| 21902 | 
            -
             | 
| 21903 | 
            -
             | 
| 21904 | 
            -
             | 
| 21905 | 
            -
             | 
| 21906 | 
            -
             | 
| 21912 | 
            +
               * Array containing the alignment for every column of this table element. Even though this property is marked as read-only, the alignment can be changed by indexing the LuaCustomTable, like so:
         | 
| 21913 | 
            +
               *
         | 
| 21914 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaStyle.html#LuaStyle.column_alignments View documentation}
         | 
| 21915 | 
            +
               * @example
         | 
| 21916 | 
            +
               *
         | 
| 21917 | 
            +
               * ```
         | 
| 21918 | 
            +
               * table_element.style.column_alignments[1] = "center"
         | 
| 21919 | 
            +
               * ```
         | 
| 21920 | 
            +
               */
         | 
| 21907 21921 | 
             
              readonly column_alignments: LuaCustomTable<uint, Alignment>
         | 
| 21908 21922 | 
             
              /**
         | 
| 21909 21923 | 
             
               * _Can only be used if this is LabelStyle_
         | 
| @@ -22162,14 +22176,15 @@ interface BaseStyle { | |
| 22162 22176 | 
             
               */
         | 
| 22163 22177 | 
             
              vertically_squashable: boolean
         | 
| 22164 22178 | 
             
              /**
         | 
| 22165 | 
            -
             | 
| 22166 | 
            -
             | 
| 22167 | 
            -
             | 
| 22168 | 
            -
             | 
| 22169 | 
            -
             | 
| 22170 | 
            -
             | 
| 22171 | 
            -
             | 
| 22172 | 
            -
             | 
| 22179 | 
            +
               * Array containing the alignment for every column of this table element. Even though this property is marked as read-only, the alignment can be changed by indexing the LuaCustomTable, like so:
         | 
| 22180 | 
            +
               *
         | 
| 22181 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaStyle.html#LuaStyle.column_alignments View documentation}
         | 
| 22182 | 
            +
               * @example
         | 
| 22183 | 
            +
               *
         | 
| 22184 | 
            +
               * ```
         | 
| 22185 | 
            +
               * table_element.style.column_alignments[1] = "center"
         | 
| 22186 | 
            +
               * ```
         | 
| 22187 | 
            +
               */
         | 
| 22173 22188 | 
             
              readonly column_alignments: LuaCustomTable<uint, Alignment>
         | 
| 22174 22189 | 
             
              /**
         | 
| 22175 22190 | 
             
               * Sets both minimal and maximal width to the given value.
         | 
| @@ -22794,7 +22809,7 @@ interface ProgrammableSpeakerSurfaceCreateEntity extends BaseSurfaceCreateEntity | |
| 22794 22809 |  | 
| 22795 22810 | 
             
            interface CharacterCorpseSurfaceCreateEntity extends BaseSurfaceCreateEntity {
         | 
| 22796 22811 | 
             
              readonly inventory_size?: uint
         | 
| 22797 | 
            -
              readonly player_index?:  | 
| 22812 | 
            +
              readonly player_index?: PlayerIndex
         | 
| 22798 22813 | 
             
            }
         | 
| 22799 22814 |  | 
| 22800 22815 | 
             
            interface HighlightBoxSurfaceCreateEntity extends BaseSurfaceCreateEntity {
         | 
| @@ -22867,15 +22882,16 @@ type SurfaceCreateEntity = | |
| 22867 22882 | 
             
             */
         | 
| 22868 22883 | 
             
            interface LuaSurface {
         | 
| 22869 22884 | 
             
              /**
         | 
| 22870 | 
            -
             | 
| 22871 | 
            -
             | 
| 22872 | 
            -
             | 
| 22873 | 
            -
             | 
| 22874 | 
            -
             | 
| 22875 | 
            -
             | 
| 22876 | 
            -
             | 
| 22877 | 
            -
             | 
| 22878 | 
            -
             | 
| 22885 | 
            +
               * Get the pollution for a given position.
         | 
| 22886 | 
            +
               *
         | 
| 22887 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.get_pollution View documentation}
         | 
| 22888 | 
            +
               * @remarks Pollution is stored per chunk, so this will return the same value for all positions in one chunk.
         | 
| 22889 | 
            +
               * @example
         | 
| 22890 | 
            +
               *
         | 
| 22891 | 
            +
               * ```
         | 
| 22892 | 
            +
               * game.surfaces[1].get_pollution({1,2})
         | 
| 22893 | 
            +
               * ```
         | 
| 22894 | 
            +
               */
         | 
| 22879 22895 | 
             
              get_pollution(position: MapPosition): double
         | 
| 22880 22896 | 
             
              /**
         | 
| 22881 22897 | 
             
               * Check for collisions with terrain or other entities.
         | 
| @@ -22936,17 +22952,18 @@ interface LuaSurface { | |
| 22936 22952 | 
             
                readonly force?: ForceIdentification
         | 
| 22937 22953 | 
             
              }): boolean
         | 
| 22938 22954 | 
             
              /**
         | 
| 22939 | 
            -
             | 
| 22940 | 
            -
             | 
| 22941 | 
            -
             | 
| 22942 | 
            -
             | 
| 22943 | 
            -
             | 
| 22944 | 
            -
             | 
| 22945 | 
            -
             | 
| 22946 | 
            -
             | 
| 22947 | 
            -
             | 
| 22948 | 
            -
             | 
| 22949 | 
            -
             | 
| 22955 | 
            +
               * Find a specific entity at a specific position.
         | 
| 22956 | 
            +
               *
         | 
| 22957 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.find_entity View documentation}
         | 
| 22958 | 
            +
               * @param entity Entity to look for.
         | 
| 22959 | 
            +
               * @param position Coordinates to look at.
         | 
| 22960 | 
            +
               * @returns `nil` if no such entity is found.
         | 
| 22961 | 
            +
               * @example
         | 
| 22962 | 
            +
               *
         | 
| 22963 | 
            +
               * ```
         | 
| 22964 | 
            +
               * game.player.selected.surface.find_entity('filter-inserter', {0,0})
         | 
| 22965 | 
            +
               * ```
         | 
| 22966 | 
            +
               */
         | 
| 22950 22967 | 
             
              find_entity(entity: string, position: MapPosition): LuaEntity | undefined
         | 
| 22951 22968 | 
             
              /**
         | 
| 22952 22969 | 
             
               * Find entities in a given area.
         | 
| @@ -22962,23 +22979,24 @@ interface LuaSurface { | |
| 22962 22979 | 
             
               */
         | 
| 22963 22980 | 
             
              find_entities(area?: BoundingBox): LuaEntity[]
         | 
| 22964 22981 | 
             
              /**
         | 
| 22965 | 
            -
             | 
| 22966 | 
            -
             | 
| 22967 | 
            -
             | 
| 22968 | 
            -
             | 
| 22969 | 
            -
             | 
| 22970 | 
            -
             | 
| 22971 | 
            -
             | 
| 22972 | 
            -
             | 
| 22973 | 
            -
             | 
| 22974 | 
            -
             | 
| 22975 | 
            -
             | 
| 22976 | 
            -
             | 
| 22977 | 
            -
             | 
| 22978 | 
            -
             | 
| 22979 | 
            -
             | 
| 22980 | 
            -
             | 
| 22981 | 
            -
             | 
| 22982 | 
            +
               * Find all entities of the given type or name in the given area.
         | 
| 22983 | 
            +
               *
         | 
| 22984 | 
            +
               * If no filters (`name`, `type`, `force`, etc.) are given, this returns all entities in the search area. If multiple filters are specified, only entities matching all given filters are returned.
         | 
| 22985 | 
            +
               *
         | 
| 22986 | 
            +
               * If no `area` or `position` are given, the entire surface is searched. If `position` is given, this returns the entities colliding with that position (i.e the given position is within the entity's collision box). If `position` and `radius` are given, this returns the entities within the radius of the position. If `area` is specified, this returns the entities colliding with that area.
         | 
| 22987 | 
            +
               *
         | 
| 22988 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.find_entities_filtered View documentation}
         | 
| 22989 | 
            +
               * @example
         | 
| 22990 | 
            +
               *
         | 
| 22991 | 
            +
               * ```
         | 
| 22992 | 
            +
               * game.surfaces[1].find_entities_filtered{area = {{-10, -10}, {10, 10}}, type = "resource"} -- gets all resources in the rectangle
         | 
| 22993 | 
            +
               * game.surfaces[1].find_entities_filtered{area = {{-10, -10}, {10, 10}}, name = "iron-ore"} -- gets all iron ores in the rectangle
         | 
| 22994 | 
            +
               * game.surfaces[1].find_entities_filtered{area = {{-10, -10}, {10, 10}}, name = {"iron-ore", "copper-ore"}} -- gets all iron ore and copper ore in the rectangle
         | 
| 22995 | 
            +
               * game.surfaces[1].find_entities_filtered{area = {{-10, -10}, {10, 10}}, force = "player"}  -- gets player owned entities in the rectangle
         | 
| 22996 | 
            +
               * game.surfaces[1].find_entities_filtered{area = {{-10, -10}, {10, 10}}, limit = 5}  -- gets the first 5 entities in the rectangle
         | 
| 22997 | 
            +
               * game.surfaces[1].find_entities_filtered{position = {0, 0}, radius = 10}  -- gets all entities within 10 tiles of the position [0,0].
         | 
| 22998 | 
            +
               * ```
         | 
| 22999 | 
            +
               */
         | 
| 22982 23000 | 
             
              find_entities_filtered(params: {
         | 
| 22983 23001 | 
             
                readonly area?: BoundingBox
         | 
| 22984 23002 | 
             
                /**
         | 
| @@ -23241,50 +23259,52 @@ interface LuaSurface { | |
| 23241 23259 | 
             
                readonly unit_search_distance?: uint
         | 
| 23242 23260 | 
             
              }): uint
         | 
| 23243 23261 | 
             
              /**
         | 
| 23244 | 
            -
             | 
| 23245 | 
            -
             | 
| 23246 | 
            -
             | 
| 23247 | 
            -
             | 
| 23248 | 
            -
             | 
| 23249 | 
            -
             | 
| 23250 | 
            -
             | 
| 23251 | 
            -
             | 
| 23252 | 
            -
             | 
| 23253 | 
            -
             | 
| 23254 | 
            -
             | 
| 23255 | 
            -
             | 
| 23256 | 
            -
             | 
| 23257 | 
            -
             | 
| 23258 | 
            -
             | 
| 23259 | 
            -
             | 
| 23260 | 
            -
             | 
| 23261 | 
            -
             | 
| 23262 | 
            -
             | 
| 23263 | 
            -
             | 
| 23264 | 
            -
             | 
| 23265 | 
            -
             | 
| 23266 | 
            -
             | 
| 23267 | 
            -
             | 
| 23268 | 
            -
             | 
| 23269 | 
            -
             | 
| 23270 | 
            -
             | 
| 23271 | 
            -
             | 
| 23272 | 
            -
             | 
| 23273 | 
            -
             | 
| 23274 | 
            -
             | 
| 23275 | 
            -
             | 
| 23276 | 
            -
             | 
| 23277 | 
            -
             | 
| 23278 | 
            -
             | 
| 23279 | 
            -
             | 
| 23280 | 
            -
             | 
| 23281 | 
            -
             | 
| 23282 | 
            -
             | 
| 23283 | 
            -
             | 
| 23284 | 
            -
             | 
| 23285 | 
            -
             | 
| 23286 | 
            -
             | 
| 23287 | 
            -
             | 
| 23262 | 
            +
               * Create an entity on this surface.
         | 
| 23263 | 
            +
               *
         | 
| 23264 | 
            +
               * Other attributes may be specified depending on the type of entity:
         | 
| 23265 | 
            +
               *
         | 
| 23266 | 
            +
               * **Raised events:**
         | 
| 23267 | 
            +
               * - {@link ScriptRaisedBuiltEvent script_raised_built}? _instantly_ Raised if the `raise_built` flag was set and the entity was successfully created.
         | 
| 23268 | 
            +
               *
         | 
| 23269 | 
            +
               *
         | 
| 23270 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.create_entity View documentation}
         | 
| 23271 | 
            +
               * @returns The created entity or `nil` if the creation failed.
         | 
| 23272 | 
            +
               * @example
         | 
| 23273 | 
            +
               *
         | 
| 23274 | 
            +
               * ```
         | 
| 23275 | 
            +
               * asm = game.surfaces[1].create_entity{name = "assembling-machine-1", position = {15, 3}, force = game.forces.player, recipe = "iron-stick"}
         | 
| 23276 | 
            +
               * ```
         | 
| 23277 | 
            +
               * @example Creates a filter inserter with circuit conditions and a filter
         | 
| 23278 | 
            +
               *
         | 
| 23279 | 
            +
               * ```
         | 
| 23280 | 
            +
               * game.surfaces[1].create_entity{
         | 
| 23281 | 
            +
               *   name = "filter-inserter", position = {20, 15}, force = game.player.force,
         | 
| 23282 | 
            +
               *   conditions = {red = {name = "wood", count = 3, operator = ">"},
         | 
| 23283 | 
            +
               *               green = {name = "iron-ore", count = 1, operator = "<"},
         | 
| 23284 | 
            +
               *   logistics = {name = "wood", count = 3, operator = "="}},
         | 
| 23285 | 
            +
               *   filters = {{index = 1, name = "iron-ore"}}
         | 
| 23286 | 
            +
               * }
         | 
| 23287 | 
            +
               * ```
         | 
| 23288 | 
            +
               * @example Creates a requester chest already set to request 128 iron plates.
         | 
| 23289 | 
            +
               *
         | 
| 23290 | 
            +
               * ```
         | 
| 23291 | 
            +
               * game.surfaces[1].create_entity{
         | 
| 23292 | 
            +
               *   name = "logistic-chest-requester", position = {game.player.position.x+3, game.player.position.y},
         | 
| 23293 | 
            +
               *   force = game.player.force, request_filters = {{index = 1, name = "iron-plate", count = 128}}
         | 
| 23294 | 
            +
               * }
         | 
| 23295 | 
            +
               * ```
         | 
| 23296 | 
            +
               * @example
         | 
| 23297 | 
            +
               *
         | 
| 23298 | 
            +
               * ```
         | 
| 23299 | 
            +
               * game.surfaces[1].create_entity{name = "big-biter", position = {15, 3}, force = game.forces.player} -- Friendly biter
         | 
| 23300 | 
            +
               * game.surfaces[1].create_entity{name = "medium-biter", position = {15, 3}, force = game.forces.enemy} -- Enemy biter
         | 
| 23301 | 
            +
               * ```
         | 
| 23302 | 
            +
               * @example Creates a basic inserter at the player's location facing north
         | 
| 23303 | 
            +
               *
         | 
| 23304 | 
            +
               * ```
         | 
| 23305 | 
            +
               * game.surfaces[1].create_entity{name = "inserter", position = game.player.position, direction = defines.direction.north}
         | 
| 23306 | 
            +
               * ```
         | 
| 23307 | 
            +
               */
         | 
| 23288 23308 | 
             
              create_entity(params: SurfaceCreateEntity): LuaEntity | undefined
         | 
| 23289 23309 | 
             
              create_trivial_smoke(params: {
         | 
| 23290 23310 | 
             
                /**
         | 
| @@ -23646,17 +23666,18 @@ interface LuaSurface { | |
| 23646 23666 | 
             
                readonly decoratives: readonly Decorative[]
         | 
| 23647 23667 | 
             
              }): void
         | 
| 23648 23668 | 
             
              /**
         | 
| 23649 | 
            -
             | 
| 23650 | 
            -
             | 
| 23651 | 
            -
             | 
| 23652 | 
            -
             | 
| 23653 | 
            -
             | 
| 23654 | 
            -
             | 
| 23655 | 
            -
             | 
| 23656 | 
            -
             | 
| 23657 | 
            -
             | 
| 23658 | 
            -
             | 
| 23659 | 
            -
             | 
| 23669 | 
            +
               * Find decoratives of a given name in a given area.
         | 
| 23670 | 
            +
               *
         | 
| 23671 | 
            +
               * If no filters are given, returns all decoratives in the search area. If multiple filters are specified, returns only decoratives matching every given filter. If no area and no position are given, the entire surface is searched.
         | 
| 23672 | 
            +
               *
         | 
| 23673 | 
            +
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.find_decoratives_filtered View documentation}
         | 
| 23674 | 
            +
               * @example
         | 
| 23675 | 
            +
               *
         | 
| 23676 | 
            +
               * ```
         | 
| 23677 | 
            +
               * game.surfaces[1].find_decoratives_filtered{area = {{-10, -10}, {10, 10}}, name = "sand-decal"} -- gets all sand-decals in the rectangle
         | 
| 23678 | 
            +
               * game.surfaces[1].find_decoratives_filtered{area = {{-10, -10}, {10, 10}}, limit = 5}  -- gets the first 5 decoratives in the rectangle
         | 
| 23679 | 
            +
               * ```
         | 
| 23680 | 
            +
               */
         | 
| 23660 23681 | 
             
              find_decoratives_filtered(params: {
         | 
| 23661 23682 | 
             
                readonly area?: BoundingBox
         | 
| 23662 23683 | 
             
                readonly position?: TilePosition
         | 
| @@ -23839,7 +23860,7 @@ interface LuaSurface { | |
| 23839 23860 | 
             
               */
         | 
| 23840 23861 | 
             
              clear(ignore_characters?: boolean): void
         | 
| 23841 23862 | 
             
              /**
         | 
| 23842 | 
            -
               * Generates a path with the specified constraints (as an array of {@link PathfinderWaypoint PathfinderWaypoints}) using the unit pathfinding algorithm. This path can be used to emulate pathing behavior by script for non-unit entities. If you want to command actual units to move, use  | 
| 23863 | 
            +
               * Generates a path with the specified constraints (as an array of {@link PathfinderWaypoint PathfinderWaypoints}) using the unit pathfinding algorithm. This path can be used to emulate pathing behavior by script for non-unit entities, such as vehicles. If you want to command actual units (such as biters or spitters) to move, use {@link LuaEntity#set_command LuaEntity::set_command} instead.
         | 
| 23843 23864 | 
             
               *
         | 
| 23844 23865 | 
             
               * The resulting path is ultimately returned asynchronously via {@link OnScriptPathRequestFinishedEvent on_script_path_request_finished}.
         | 
| 23845 23866 | 
             
               *
         | 
| @@ -24055,7 +24076,7 @@ interface LuaSurface { | |
| 24055 24076 | 
             
               *
         | 
| 24056 24077 | 
             
               * {@link https://lua-api.factorio.com/latest/LuaSurface.html#LuaSurface.index View documentation}
         | 
| 24057 24078 | 
             
               */
         | 
| 24058 | 
            -
              readonly index:  | 
| 24079 | 
            +
              readonly index: SurfaceIndex
         | 
| 24059 24080 | 
             
              /**
         | 
| 24060 24081 | 
             
               * The generation settings for this surface. These can be modified to after surface generation, but note that this will not retroactively update the surface. To manually adjust it, {@link LuaSurface#regenerate_entity LuaSurface::regenerate_entity}, {@link LuaSurface#regenerate_decorative LuaSurface::regenerate_decorative} and {@link LuaSurface#delete_chunk LuaSurface::delete_chunk} can be used.
         | 
| 24061 24082 | 
             
               *
         |