Biblioteca utilitária para criação rápida de itens, receitas e outros protótipos Factorio.. local LDA = require('__LDA-LIB__/init') local PATH = LDA.setBasePath('Quantum-Teleporter')
Lua libraries for use by other mods and submods that are parts of a larger mod.
Version: 0.0.17
Date: 07/11/2026
features:
- Adicionado módulo de runtime LDARuntime.equipment_grid (runtime/modules/equipment_grid.lua) com utilitários para leitura e manipulação de energia em grades de equipamento (getEnergy, getMaxEnergy, hasEnergy, drainEnergy e addEnergy), suportando jogadores (armadura), veículos, entidades e itens de forma atômica e distribuída.
bugfixes:
- Corrigido erro fatal de colisão "A script command already exists with the name: lda-list" quando mods consumidores importam __LDA-LIB__/runtime.init. Agora o registro de comandos e on_init é restrito ao mod base (script.mod_name == "LDA-LIB") e commands.register() possui verificação de idempotência (commands.commands["lda-list"]).
- Corrigido resolver de objetos Factorio em runtime/modules/player.lua (player.get) e runtime/modules/world.lua (world.getSurface) que rejeitavam objetos nativos LuaPlayer e LuaSurface por checarem type(...) == "table" (no Factorio esses objetos são do tipo userdata). Agora todos os módulos de runtime aceitam diretamente instâncias nativas válidas (.valid) além de IDs e nomes.
Version: 0.0.16
Date: 24/10/2026
major_changes:
- Removidas as pastas e módulos legados (base-functions/, generic-functions/, functions/, utils/).
- Obrigatório o uso do padrão canônico via init.lua (require('__LDA-LIB__/init')) ou caminhos encapsulados (data-stage/builders/, shared/, runtime/).
- Estrutura do projeto totalmente limpa e modularizada.
features:
- Adicionado helper createSurfaceProperties e surfacePropertiesPresets (shared/planet-surface-properties.lua) com predefinições para o Space Age.
- Adicionado helper createMapGenSettings e createCliffSettings (shared/planet-mapgen-util.lua) para geração de mapa de planetas.
- Adicionado builder createSpaceConnection e gerador generateAsteroidSpawns (data-stage/builders/base/create-space-connection.lua).
- Adicionado builder createAccumulator (data-stage/builders/base/create-accumulator.lua) para criação de protótipos de acumuladores elétricos modulares, com suporte a limites de fluxo (inclusive "0kW"), buffer_capacity, chargable_graphics, sons de operação e resistências.
- Adicionado módulo de runtime LDARuntime.network (runtime/modules/network.lua) para registro e gerenciamento genérico de redes de entidades persistidas em storage (Factorio 2.0+), com suporte a consultas filtradas (por força, superfície e nome), renomeação, metadados arbitrários, busca de posição de spawn livre (findFreeSpawnPosition) e auto-limpeza de entidades inválidas.
- Adicionado módulo de runtime LDARuntime.gui (runtime/modules/gui.lua) com helpers de interface gráfica: busca recursiva de elementos (findElementByName e findElementsByType), padronização de janelas modais vinculadas ao ciclo de vida player.opened com titlebar arrastável e botão fechar, e barras de status de energia formatadas (createEnergyBar, updateEnergyBar, formatEnergy e formatPower).
Version: 0.0.15
Date: 24/10/2026
changes:
- 1. player-utils (runtime/modules/player.lua)
Obtenção e validação:
get(player_or_id): aceita índice numérico, nome ou objeto LuaPlayer.
isValid(player): checagem segura de validade.
getCharacter(player): retorna a entidade LuaEntity (character) do jogador.
getPosition(player) e getSurface(player).
getGps(player): gera a tag formatada de chat [gps=x,y,surface].
- Inventário e itens:
getItemCount(player, item_name, quality): contagem com suporte a qualidade do Factorio 2.0.
hasItem(player, item_name, count, quality): verificação booleana.
give(player, item_name, count, options): inserção segura no inventário principal/rápido com opção de derrubar no chão (spill_if_full = true).
remove(player, item_name, count, quality): remoção segura de itens.
- Interação & Feedback:
teleport(player, position, surface): teletransporte seguro entre coordenadas e superfícies.
flyingText(player, text, options): texto voador local visível apenas para o jogador.
notify(player, message, sound_path): envia mensagem no console e opcionalmente toca som.
- 2. entity-utils (runtime/modules/entity.lua)
Validação & Estado:
isValid(entity): checagem entity and entity.valid.
getHealth(entity), setHealth(entity, health), heal(entity, amount).
damage(entity, amount, force, damage_type): aplica dano respeitando forças e tipos.
getEnergy(entity), setEnergy(entity, energy): nível de Joules em máquinas e acumuladores.
- Posicionamento & Formato:
getPosition(entity), getSurface(entity), getForce(entity).
getBoundingBox(entity): retorna a área de colisão/seleção.
- Manipulação:
insert(entity, item_name, count, quality) e remove(entity, item_name, count, quality).
destroy(entity, options): destrói com segurança (com opção die = true ou disparar eventos raise_destroy).
isGhost(entity) e reviveGhost(ghost): suporte a fantasmas de construção.
- 3. world-utils (runtime/modules/world.lua)
- Superfícies & GPS:
getSurface(surface_or_id): resolve nomes, IDs ou padrão game.surfaces[1].
formatGps(position, surface): gera strings como [gps=10.5,-20.0,nauvis].
getDistance(pos1, pos2): cálculo de distância euclidiana.
- Busca e Spawning:
findEntitiesInRadius(surface, position, radius, filters): busca circular filtrada por nome, tipo ou força.
findEntitiesInBox(surface, area, filters): busca em caixa retangular.
findFreePosition(surface, entity_name, position, radius, precision): localiza posição desobstruída.
spawnEntity(surface, name, position, options): instancia entidades no mundo (direction, force, raise_built, quality).
- Edição de Terreno & Efeitos:
getTile(surface, position): consulta o piso/terreno.
setTile(surface, position, tile_name) e setTiles(surface, tiles_array): troca de tiles individual ou em lote.
createExplosion(surface, position, name): gera explosões ou efeitos na coordenada.
teleportEntity(entity, position, surface): teletransporte genérico para qualquer entidade móvel.
- 4. item-utils (runtime/modules/item.lua)
- Stacks & Inventário:
isValid(stack): valida se o stack é válido e tem conteúdo legível.
toTable(stack): converte stack em tabela simples (name, count, quality, health, ammo).
canFit(target, item_name, count, quality): verifica se inventário/entidade aguenta receber itens.
getEmptySlotCount(inventory): conta slots vazios disponíveis.
transfer(source_inv, target_inv, item_name, count, quality): transferência segura entre inventários.
spill(surface, position, item_name, count, options): derrama itens no chão.
Itens no Chão & Coleta:
findOnGround(surface, position, radius, item_name): localiza itens caídos no chão.
collectFromGround(surface, position, radius, target): recolhe itens caídos direto para o jogador ou baú.
- Protótipos (Factorio 2.0+):
getStackSize(item_name) e getSubgroup(item_name): consulta dados do protótipo em runtime.
Version: 0.0.14
Date: 24/10/2026
fixes:
- Falha ao carregar mods: Erro ao carregar o protótipo da receita "jogar na água" (receita): Em RecipePrototype, `category` e `additional_categories` foram mescladas na tabela `categories`. Por favor, use esta tabela em vez da anterior.
Version: 0.0.13
Date: 21/06/2026
changes:
- melhora o carregamento de caminhos de arquivos.
- alterado caminhos base
Version: 0.0.12
Date: 21/06/2026
changes:
- adiciona novas funções para criação de itens e receitas, remove função obsoleta e atualiza versão
- função adicionada createGraphicsSet(animation_progress,frozen_patch,always_draw_idle_animation,reset_animation_when_frozen)
- função adicionada createLayer(filename,width,height,frame_count,line_length,shift,scale,draw_as_shadow,priority,extra_props)
- corrigido erro do animations
Version: 0.0.11
Date: 06/04/2026
changes:
- função adicionada createTechnologyMineEntityTrigger(name, unlocksList, prerequisitesList, mine_entity)
- função adicionada createTechnologyCraftEntityTrigger(name, unlocksList, prerequisitesList, item, count)
- função utils adicionada getRandomPositionAround(centerX, centerY,SPAWN_RADIUS_MIN,SPAWN_RADIUS_MAX)
- função utilsAmbientEffects adicionada createExplosion(surface, position)
- função utilsAmbientEffects adicionada createCrashFire(surface, center, count)
- função utilsAmbientEffects adicionada createSecondaryExplosions(surface, center, count)
- função utilsAmbientEffects adicionada createScorchmark(surface, position)
- adicionado utils -> ambent-effects.lua
- local utilsAmbientEffects = LDA.utilsAmbientEffects
pendingBugs:
- entidade não esta renderizando
Version: 0.0.10
Date: 30/03/2026
changes:
- Map Generation:
- by factorio: função adicionada createResource(name, order, resource_parameters, autoplace_parameters)
- função adicionada createAutoplaceControl(name, order, tint, icon_size, icon_mipmaps)
fixes:
- corrigido bugs ao criar minerios
pendingBugs:
- entidade não esta renderizando
Version: 0.0.9
Date: 28/01/2026
changes:
- Funções adicionadas (CreateBaseAmbientSound,CreateInterludeAmbientSound,CreateMenuAmbientSound)
pendingBugs:
- entidade não esta renderizando
Version: 0.0.8
Date: 05/01/2026
fixes:
- locale translations updated
- remake da techUtil, todas as funções fora atualizadas e refeitas do 0 para buscar uma melhor eficiencia
pendingBugs:
- entidade não esta renderizando
Version: 0.0.7
Date: 01/01/2026
changes:
- Função createThrowInWaterItemWithRecipe adicionada
fixes:
- Adiciona suporte para 'pictures' na função createRecipe ou icon_size padrão devolvido para 128x128
Version: 0.0.6
Date: 31/12/2025
changes:
- Função Privada: Cria o objeto hr_version, calculando as dimensões.
- Função Pública: Cria uma única camada (layer) de animação.
- Função que Cria a estrutura completa de animação para um protótipo, a partir de uma ou mais layers. (Esta função permaneceu inalterada, pois já tinha responsabilidade única)
- throw-in-water adicionado
- Funções utils adicionado (getSequentialAudioList,getAudio)
- adicionado isEnabled nas receitas para que ja venha desbloqueadas ou não
- adicionado icon_size,pick_sound,drop_sound (opicional) com getAudio embutido para que tenha mais opções de modificações granular
- Funções utils adicionadas createModuleSpec, createBoundingBox
- Funções utils adicionadas createResistance, getFullResistance
- Funções utils adicionado (getSequentialPictureList,getPicture)
- removido icons_size das receitas (recipe),
- motivo:
- Inferência (O Mecanismo Padrão), Quando você omite icon_size em um protótipo de recipe O jogo assume que o ícone da receita (recipe.icon) tem a mesma forma e tamanho que o ícone do principal resultado (recipe.results[1].name).
- Exemplo: Se a sua receita produz iron-plate, e o ícone de iron-plate é definido como 32x32 pixels, o jogo renderizará o ícone da receita na mesma dimensão padrão para receitas.
- Atualiza receitas, ajusta changelog; adiciona suporte a novos itens e traduções para inglês e português.
Version: 0.0.5
Date: 24/12/2025
changes:
- Additional function for creating groups of items.
- Adds a function to format lists of results.
Version: 0.0.4
Date: 28/11/2025
changes:
- Create a function to generate equipment prototypes.
- Create a function to generate prototypes of equipment with a recipe.
- Optional added: alternative_unlock_methods
fixes:
- general bugs
- subgroup itens
- fixed functions create a equipment, incorrect equipment subgroup
- __LDA-LIB__/control.lua:32: attempt to index global 'game' (a nil value)
Version: 0.0.3
Date: 15/11/2025
fixes:
- Corrected processUnlockIngredients, a possible confusion in the use of the function, using it to create ingredients instead of science ingredients.
- attempt to call field 'anyFunction' (a nil value)
- Falha ao carregar mods: __Dyson-Sphere-Program-Lib__/data/recursos.lua:11: attempt to call field 'createOre' (a nil value) stack traceback: __Dyson-Sphere-Program-Lib__/data/recursos.lua:11: in main chunk [C]: in function 'require' __Dyson-Sphere-Program-Lib__/data.lua:5: in main chunk
Version: 0.0.2
Date: 15/11/2025
fixes:
- __LDA-LIB__/init.lua:26: module __LDA-LIB__/functions/create-item-with-recipe-matrix not found; no such file __LDA-LIB__/functions/create-item-with-recipe-matrix.luastack traceback: [C]: in function 'require' __LDA-LIB__/init.lua:26: in main chunk [C]: in function 'require' __LDA-LIB__/control.lua:2: in main chunk.
Version: 0.0.1
Date: 15/11/2025
Changes:
- initial commit.